diff --git a/.devcontainer/devcontainer-lock.json b/.devcontainer/devcontainer-lock.json new file mode 100644 index 000000000..32185dde7 --- /dev/null +++ b/.devcontainer/devcontainer-lock.json @@ -0,0 +1,24 @@ +{ + "features": { + "ghcr.io/devcontainers-contrib/features/pre-commit": { + "version": "2.0.18", + "resolved": "ghcr.io/devcontainers-extra/features/pre-commit@sha256:6e0bb2ce80caca1d94f44dab5d0653d88a1c00984e590adb7c6bce012d0ade6e", + "integrity": "sha256:6e0bb2ce80caca1d94f44dab5d0653d88a1c00984e590adb7c6bce012d0ade6e" + }, + "ghcr.io/devcontainers-contrib/features/uv": { + "version": "1.0.2", + "resolved": "ghcr.io/devcontainers-extra/features/uv@sha256:1ac5b9f17a9e9e745933d0ac2ecf758e06ed3da4423cd22c94cce4d482fd2dd8", + "integrity": "sha256:1ac5b9f17a9e9e745933d0ac2ecf758e06ed3da4423cd22c94cce4d482fd2dd8" + }, + "ghcr.io/devcontainers/features/powershell": { + "version": "2.0.2", + "resolved": "ghcr.io/devcontainers/features/powershell@sha256:82ea3880c5706ac3963f1b5e940a7f5871835393a5472f80008148b995d58d61", + "integrity": "sha256:82ea3880c5706ac3963f1b5e940a7f5871835393a5472f80008148b995d58d61" + }, + "ghcr.io/devcontainers/features/ruby": { + "version": "1.3.2", + "resolved": "ghcr.io/devcontainers/features/ruby@sha256:1c9bbde293ba6f21449a58be34a358ffa2b3846f31cb3146409b26ab3f13e1a2", + "integrity": "sha256:1c9bbde293ba6f21449a58be34a358ffa2b3846f31cb3146409b26ab3f13e1a2" + } + } +} diff --git a/.github/actions/setup-bc-container-repo/action.yml b/.github/actions/setup-bc-container-repo/action.yml index 51cc292bd..a5b86ca71 100644 --- a/.github/actions/setup-bc-container-repo/action.yml +++ b/.github/actions/setup-bc-container-repo/action.yml @@ -40,7 +40,8 @@ runs: # Mask the password in GitHub Actions logs Write-Output "::add-mask::$password" - $containerName = "bcbench-$("${{ inputs.instance-id }}".Split('-')[1])" + # Split('-')[1] takes the numeric id; Split('_')[0] strips any __cf-N suffix so base and CF instances of a family share one valid (a-z/0-9/dash) container name. + $containerName = "bcbench-$("${{ inputs.instance-id }}".Split('-')[1].Split('_')[0])" "BC_CONTAINER_NAME=$containerName" | Out-File -FilePath $env:GITHUB_ENV -Append # Connection target + credentials consumed by altool diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index fe337ff64..9d6f357b8 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -16,7 +16,7 @@ This is a benchmark for evaluating coding agents on real-world Business Central - Uses `pre-commit` for code quality checks (ruff linting/formatting, trailing whitespace, etc.) ## Categories -BC-Bench is category-based and designed to grow over time. It currently has two categories, `bug-fix` and `test-generation`. They share the same dataset tasks and execution-based setup, but use different prompts, expected outputs, and evaluation pipelines. Future categories such as `code-review` can be added within the same overall benchmark structure, though they may require different inputs, setup, or evaluation methods. +BC-Bench is category-based and designed to grow over time. It currently has two execution-based categories that update the public leaderboard, `bug-fix` and `test-generation`, plus a single counterfactual category `cf` (entries from `counterfactual.jsonl`) that reuses the bug-fix pipeline but only saves raw results — its metrics are computed offline in notebooks. Future categories such as `code-review` can be added within the same overall benchmark structure, though they may require different inputs, setup, or evaluation methods. ## Coding Patterns and Guidelines diff --git a/.github/workflows/claude-evaluation.yml b/.github/workflows/claude-evaluation.yml index 0aad55b2c..6292940ca 100644 --- a/.github/workflows/claude-evaluation.yml +++ b/.github/workflows/claude-evaluation.yml @@ -23,6 +23,7 @@ on: options: - "bug-fix" - "test-generation" + - "cf" test-run: description: "Indicate this is a test run (with few entries)" required: false diff --git a/.github/workflows/copilot-evaluation.yml b/.github/workflows/copilot-evaluation.yml index 0e02dc91e..20a966f83 100644 --- a/.github/workflows/copilot-evaluation.yml +++ b/.github/workflows/copilot-evaluation.yml @@ -30,6 +30,7 @@ on: options: - "bug-fix" - "test-generation" + - "cf" test-run: description: "Indicate this is a test run (with few entries)" required: false @@ -71,12 +72,27 @@ jobs: test-run: ${{ inputs.test-run }} category: ${{ inputs.category }} - evaluate-with-copilot-cli: - runs-on: ${{ needs.get-entries.outputs.runner }} + resolve-entries: + runs-on: ubuntu-latest needs: get-entries + if: always() + outputs: + entries: ${{ steps.pick.outputs.entries }} + steps: + - id: pick + run: | + if [[ -n "${{ inputs.entries-override }}" ]]; then + echo "entries=${{ inputs.entries-override }}" >> "$GITHUB_OUTPUT" + else + echo 'entries=${{ needs.get-entries.outputs.entries }}' >> "$GITHUB_OUTPUT" + fi + + evaluate-with-copilot-cli: + runs-on: [ GitHub-BCBench ] + needs: [get-entries, resolve-entries] outputs: results-dir: ${{ env.EVALUATION_RESULTS_DIR }} - if: needs.get-entries.outputs.entries != '[]' + if: needs.resolve-entries.outputs.entries != '[]' && needs.resolve-entries.outputs.entries != '' environment: name: ado-read deployment: false @@ -89,7 +105,7 @@ jobs: fail-fast: false max-parallel: 32 matrix: - entry: ${{ fromJson(needs.get-entries.outputs.entries) }} + entry: ${{ fromJson(needs.resolve-entries.outputs.entries) }} steps: - name: Checkout repository uses: actions/checkout@v5 diff --git a/.github/workflows/dataset-validation.yml b/.github/workflows/dataset-validation.yml index 4c4528142..4c0344950 100644 --- a/.github/workflows/dataset-validation.yml +++ b/.github/workflows/dataset-validation.yml @@ -13,6 +13,19 @@ on: required: false default: true type: boolean + category: + description: "Dataset category to validate" + required: false + default: "bug-fix" + type: choice + options: + - "bug-fix" + - "cf" + entries-override: + description: "Optional JSON array of entry IDs to validate (overrides get-entries)" + required: false + default: "" + type: string modified-only: description: "Only verify modified entries" required: false @@ -23,16 +36,32 @@ on: jobs: get-entries: + if: ${{ inputs.entries-override == '' || inputs.entries-override == null }} uses: ./.github/workflows/get-entries.yml with: modified-only: ${{ inputs.modified-only || false }} test-run: ${{ inputs.test-run || false }} - category: "bug-fix" + category: ${{ inputs.category || 'bug-fix' }} + + resolve-entries: + runs-on: ubuntu-latest + needs: get-entries + if: always() + outputs: + entries: ${{ steps.pick.outputs.entries }} + steps: + - id: pick + run: | + if [[ -n "${{ inputs.entries-override }}" ]]; then + echo "entries=${{ inputs.entries-override }}" >> "$GITHUB_OUTPUT" + else + echo 'entries=${{ needs.get-entries.outputs.entries }}' >> "$GITHUB_OUTPUT" + fi verify-build-and-tests: runs-on: [GitHub-BCBench] - needs: get-entries - if: needs.get-entries.outputs.entries != '[]' + needs: resolve-entries + if: needs.resolve-entries.outputs.entries != '[]' && needs.resolve-entries.outputs.entries != '' environment: name: ado-read deployment: false @@ -43,7 +72,7 @@ jobs: strategy: fail-fast: false matrix: - entry: ${{ fromJson(needs.get-entries.outputs.entries) }} + entry: ${{ fromJson(needs.resolve-entries.outputs.entries) }} steps: - name: Checkout repository uses: actions/checkout@v5 diff --git a/.github/workflows/summarize-results.yml b/.github/workflows/summarize-results.yml index 2f5b252fe..296c2ebb2 100644 --- a/.github/workflows/summarize-results.yml +++ b/.github/workflows/summarize-results.yml @@ -69,6 +69,7 @@ jobs: retention-days: ${{ inputs.mock && 1 || 30 }} - name: Azure Login with OIDC for bceval package + if: ${{ inputs.category != 'cf' }} uses: azure/login@v3 with: client-id: ${{ secrets.AZURE_CLIENT_ID }} @@ -77,9 +78,11 @@ jobs: - name: Resolve bceval evaluator config for category id: bceval + if: ${{ inputs.category != 'cf' }} run: uv run bcbench category bceval-config --category "${{ inputs.category }}" - name: Upload result using bceval + if: ${{ inputs.category != 'cf' }} env: BRAINTRUST_PROJECT_ID: ${{ secrets.BRAINTRUST_PROJECT_ID }} BRAINTRUST_API_KEY: ${{ secrets.BRAINTRUST_API_KEY }} @@ -108,7 +111,7 @@ jobs: --use-capi ${{ !inputs.mock && '--storage braintrust --storage kusto' || '' }} - name: Update leaderboard in a new branch - if: ${{ !inputs.mock && !inputs.skip-leaderboard }} + if: ${{ !inputs.mock && !inputs.skip-leaderboard && inputs.category != 'cf' }} run: | git fetch origin main diff --git a/COUNTERFACTUAL.md b/COUNTERFACTUAL.md new file mode 100644 index 000000000..00dc13384 --- /dev/null +++ b/COUNTERFACTUAL.md @@ -0,0 +1,120 @@ +# Counterfactual Evaluation + +This document describes the **counterfactual (CF)** categories in BC-Bench. + +## What Are Counterfactual Entries? + +A counterfactual (CF) entry is a **variant** of an existing base bug-fix entry. It reuses the same repository state (`repo`, `base_commit`, `project_paths`) but provides a **different fix and test pair** — testing whether an agent can solve a related-but-different version of the same bug. + +Each CF entry lives in [`dataset/counterfactual.jsonl`](dataset/counterfactual.jsonl) and references a base entry from [`dataset/bcbench.jsonl`](dataset/bcbench.jsonl). + +### Validation Contract + +CF entries follow the **exact same** validation contract as bug-fix: + +- **Before** applying the patch → `FAIL_TO_PASS` tests **FAIL** +- **After** applying the patch → `FAIL_TO_PASS` tests **PASS** + +This means the same `BugFixPipeline` is reused for evaluation. + +### Naming Convention + +``` +microsoftInternal__NAV-210528 ← base entry (in bcbench.jsonl) +microsoftInternal__NAV-210528__cf-1 ← first counterfactual variant +microsoftInternal__NAV-210528__cf-2 ← second variant +``` + +## The `cf` Category + +All CF entries are exposed under a single category named `cf`. The base bug-fix +evaluation pipeline is reused as-is. CF runs in CI **only save raw results** +(per-instance result JSONL files + an aggregated `evaluation_summary.json` +artifact); they do not push to the public leaderboard or upload to Braintrust. +Downstream metrics (resolution rate, family fragility, severity, stability, +etc.) are computed offline from the raw results in the analysis notebooks. + +Variant numbering still lives in the instance ID (`__cf-`), so any +per-variant analysis remains possible by grouping on the `__cf-N` suffix. + +All CF entries share: +- **Dataset file**: `counterfactual.jsonl` +- **Entry class**: `CounterfactualEntry` +- **Pipeline**: `BugFixPipeline` (reused) +- **Result class**: `BugFixResult` (reused) +- **Prompt template**: `counterfactual-template` + +## CF Entry Schema + +Each line in `counterfactual.jsonl` contains: + +| Field | Description | +| ---------------------------- | ------------------------------------------------- | +| `instance_id` | `__cf-` — unique identifier | +| `base_instance_id` | ID of the base entry this variant is derived from | +| `variant_description` | Human-readable description of the variant | +| `failure_layer` | Optional failure layer classification | +| `problem_statement_override` | Path to the CF-specific problem statement | +| `patch` | The counterfactual fix patch | +| `test_patch` | The counterfactual test patch | +| `FAIL_TO_PASS` | Tests that must fail before fix, pass after | +| `PASS_TO_PASS` | Tests that must pass both before and after | + +**Note:** Fields like `repo`, `base_commit`, `project_paths`, `environment_setup_version`, and `created_at` are **not stored** in CF entries. They are resolved at load time from the base entry in `bcbench.jsonl`. + +## Architecture + +The counterfactual categories integrate into BC-Bench's polymorphic category system: + +| Extension Point | Value | +|---|---| +| `EvaluationCategory` | `CF = "cf"` | +| `is_counterfactual` | `True` only for `CF` | +| `prompt_template_key` | `"counterfactual"` | +| `dataset_path` | `dataset/counterfactual.jsonl` | +| `entry_class` | `CounterfactualEntry` (resolves base fields at load time) | +| `pipeline` | `BugFixPipeline` (reused — same FAIL→PASS contract) | +| `result_class` | `BugFixResult` (reused) | +| `summary_class` | `ExecutionBasedEvaluationResultSummary` (reused) | + +### Key File Reference + +| File | Purpose | +|---|---| +| [`dataset/counterfactual.jsonl`](dataset/counterfactual.jsonl) | All CF entries (one JSON per line) | +| [`dataset/problemstatement//`](dataset/problemstatement/) | Problem statement for each CF entry | +| [`src/bcbench/dataset/counterfactual_entry.py`](src/bcbench/dataset/counterfactual_entry.py) | CF entry model with base resolution | +| [`src/bcbench/types.py`](src/bcbench/types.py) | Category registration (`CF`) | + +## CLI Usage + +```bash +# List all CF entries +uv run bcbench dataset list --category cf + +# List a few random CF entries (test run) +uv run bcbench dataset list --category cf --test-run + +# View a specific CF entry +uv run bcbench dataset view microsoftInternal__NAV-210528__cf-1 --category cf + +# Run agent on a CF entry +uv run bcbench run copilot microsoftInternal__NAV-210528__cf-1 \ + --category cf \ + --repo-path /path/to/NAV + +# Full evaluation (build + test) +uv run bcbench evaluate copilot microsoftInternal__NAV-210528__cf-1 \ + --category cf \ + --repo-path /path/to/NAV +``` + +## Analysis Notebooks + +Experiment notebooks for analyzing CF results are in [`notebooks/counterfactual-evaluation/`](notebooks/counterfactual-evaluation/): + +| Notebook | Purpose | +|---|---| +| `experiment1-base-performance.ipynb` | Instance-level compile/pass rates per model | +| `experiment2-cf-sensitivity.ipynb` | Family fragility rate, severity, pattern analysis | +| `experiment3-layered-failure.ipynb` | L1-L5 failure distribution, layer-conditioned fragility | diff --git a/dataset/counterfactual.jsonl b/dataset/counterfactual.jsonl new file mode 100644 index 000000000..64841d2ba --- /dev/null +++ b/dataset/counterfactual.jsonl @@ -0,0 +1,121 @@ +{"instance_id": "microsoftInternal__NAV-174087__cf-1", "base_instance_id": "microsoftInternal__NAV-174087", "variant_description": "CopyFromSegment must execute before Modify in Step 4; step order determines persistence", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-174087__cf-1", "FAIL_TO_PASS": [{"codeunitID": 136208, "functionName": ["PopulateEvaluationFieldInInteractionLogEntry"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/Marketing/MarketingInteraction.Codeunit.al b/App/Layers/W1/Tests/Marketing/MarketingInteraction.Codeunit.al\nindex 4c4c73700d2a..59fff6e2be93 100644\n--- a/App/Layers/W1/Tests/Marketing/MarketingInteraction.Codeunit.al\n+++ b/App/Layers/W1/Tests/Marketing/MarketingInteraction.Codeunit.al\n@@ -45,6 +45,7 @@ codeunit 136208 \"Marketing Interaction\"\n LoggedSegemntEntriesCreateMsg: Label 'Logged Segment entry was created';\n AttachmentFileShouldNotBeBlankErr: Label 'Attachment File should not be blank.';\n TxtFileExt: Label 'txt';\n+ EvaluationErr: Label '%1 must be %2 in %3', Comment = '%1 = Evaluation, %2 = Positive, %3 = Interaction Log Entry';\n \n [Test]\n [Scope('OnPrem')]\n@@ -2998,6 +2999,50 @@ codeunit 136208 \"Marketing Interaction\"\n VerifyAttachmentFileIsNotBlankOnInteractionLogEntry(Contact.\"No.\");\n end;\n \n+ [Test]\n+ [Scope('OnPrem')]\n+ [HandlerFunctions('CreateInteractionFromContactPageHandler')]\n+ procedure PopulateEvaluationFieldInInteractionLogEntry()\n+ var\n+ Contact: Record Contact;\n+ InteractionTemplate: Record \"Interaction Template\";\n+ InteractionLogEntry: Record \"Interaction Log Entry\";\n+ ContactCard: TestPage \"Contact Card\";\n+ InteractionEvaluation: Enum \"Interaction Evaluation\";\n+ begin\n+ // [SCENARIO 498395] When stan creates an Interaction using Create Interaction action from Contact, Evaluation field should be populated in Interaction Log Entry.\n+ Initialize();\n+\n+ // [GIVEN] Create a Contact.\n+ LibraryMarketing.CreateCompanyContact(Contact);\n+\n+ // [GIVEN] Create an Interaction Template and Validate Information Flow.\n+ LibraryMarketing.CreateInteractionTemplate(InteractionTemplate);\n+ InteractionTemplate.Validate(\"Information Flow\", InteractionTemplate.\"Information Flow\"::Outbound);\n+ InteractionTemplate.Modify(true);\n+\n+ // [GIVEN] Open Contact Card and Create Interaction.\n+ ContactCard.OpenEdit();\n+ ContactCard.GoToRecord(Contact);\n+ LibraryVariableStorage.Enqueue(InteractionTemplate.Code);\n+ LibraryVariableStorage.Enqueue(Format(InteractionEvaluation::Positive));\n+ ContactCard.\"Create &Interaction\".Invoke();\n+\n+ // [WHEN] Find Interaction Log Entry.\n+ InteractionLogEntry.SetRange(\"Contact No.\", Contact.\"No.\");\n+ InteractionLogEntry.FindFirst();\n+\n+ // [VERIFY] Interaction Log Entry has Evaluation field populated as Positive.\n+ Assert.AreEqual(\n+ InteractionEvaluation::Positive,\n+ InteractionLogEntry.Evaluation,\n+ StrSubstNo(\n+ EvaluationErr,\n+ InteractionLogEntry.FieldCaption(Evaluation),\n+ InteractionEvaluation::Positive,\n+ InteractionLogEntry.TableCaption));\n+ end;\n+\n local procedure Initialize()\n var\n LibrarySales: Codeunit \"Library - Sales\";\n@@ -4309,5 +4354,16 @@ CopyStr(StorageLocation, 1, MaxStrLen(MarketingSetup.\"Attachment Storage Locatio\n CreateInteraction.NextInteraction.Invoke();\n CreateInteraction.Finish.Invoke();\n end;\n+\n+ [ModalPageHandler]\n+ [Scope('OnPrem')]\n+ procedure CreateInteractionFromContactPageHandler(var CreateInteraction: TestPage \"Create Interaction\")\n+ begin\n+ CreateInteraction.\"Interaction Template Code\".SetValue(LibraryVariableStorage.DequeueText());\n+ CreateInteraction.NextInteraction.Invoke();\n+ CreateInteraction.NextInteraction.Invoke();\n+ CreateInteraction.Evaluation.SetValue(LibraryVariableStorage.DequeueText());\n+ CreateInteraction.FinishInteraction.Invoke();\n+ end;\n }\n \n", "patch": "diff --git a/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al b/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\nindex ff43f4ff6a7b..cf00000001 100644\n--- a/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\n+++ b/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\n@@ -694,6 +694,7 @@ page 5077 \"Create Interaction\"\n end;\n Step::\"Step 4\":\n begin\n+ InteractionLogEntry.CopyFromSegment(Rec);\n InteractionLogEntry.Modify();\n CurrPage.Close();\n end;\n"} +{"instance_id": "microsoftInternal__NAV-174087__cf-2", "base_instance_id": "microsoftInternal__NAV-174087", "variant_description": "Evaluation persisted via OnModify trigger on Interaction Log Entry instead of page workflow step", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-174087__cf-2", "FAIL_TO_PASS": [{"codeunitID": 136208, "functionName": ["PopulateEvaluationFieldInInteractionLogEntry"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/Marketing/MarketingInteraction.Codeunit.al b/App/Layers/W1/Tests/Marketing/MarketingInteraction.Codeunit.al\nindex 4c4c737..59fff6e 100644\n--- a/App/Layers/W1/Tests/Marketing/MarketingInteraction.Codeunit.al\n+++ b/App/Layers/W1/Tests/Marketing/MarketingInteraction.Codeunit.al\n@@ -45,6 +45,7 @@ codeunit 136208 \"Marketing Interaction\"\n LoggedSegemntEntriesCreateMsg: Label 'Logged Segment entry was created';\n AttachmentFileShouldNotBeBlankErr: Label 'Attachment File should not be blank.';\n TxtFileExt: Label 'txt';\n+ EvaluationErr: Label '%1 must be %2 in %3', Comment = '%1 = Evaluation, %2 = Positive, %3 = Interaction Log Entry';\n \n [Test]\n [Scope('OnPrem')]\n@@ -2998,6 +2999,50 @@ codeunit 136208 \"Marketing Interaction\"\n VerifyAttachmentFileIsNotBlankOnInteractionLogEntry(Contact.\"No.\");\n end;\n \n+ [Test]\n+ [Scope('OnPrem')]\n+ [HandlerFunctions('CreateInteractionFromContactPageHandler')]\n+ procedure PopulateEvaluationFieldInInteractionLogEntry()\n+ var\n+ Contact: Record Contact;\n+ InteractionTemplate: Record \"Interaction Template\";\n+ InteractionLogEntry: Record \"Interaction Log Entry\";\n+ ContactCard: TestPage \"Contact Card\";\n+ InteractionEvaluation: Enum \"Interaction Evaluation\";\n+ begin\n+ // [SCENARIO 498395] When stan creates an Interaction using Create Interaction action from Contact, Evaluation field should be populated in Interaction Log Entry.\n+ Initialize();\n+\n+ // [GIVEN] Create a Contact.\n+ LibraryMarketing.CreateCompanyContact(Contact);\n+\n+ // [GIVEN] Create an Interaction Template and Validate Information Flow.\n+ LibraryMarketing.CreateInteractionTemplate(InteractionTemplate);\n+ InteractionTemplate.Validate(\"Information Flow\", InteractionTemplate.\"Information Flow\"::Outbound);\n+ InteractionTemplate.Modify(true);\n+\n+ // [GIVEN] Open Contact Card and Create Interaction.\n+ ContactCard.OpenEdit();\n+ ContactCard.GoToRecord(Contact);\n+ LibraryVariableStorage.Enqueue(InteractionTemplate.Code);\n+ LibraryVariableStorage.Enqueue(Format(InteractionEvaluation::Positive));\n+ ContactCard.\"Create &Interaction\".Invoke();\n+\n+ // [WHEN] Find Interaction Log Entry.\n+ InteractionLogEntry.SetRange(\"Contact No.\", Contact.\"No.\");\n+ InteractionLogEntry.FindFirst();\n+\n+ // [VERIFY] Interaction Log Entry has Evaluation field populated as Positive.\n+ Assert.AreEqual(\n+ InteractionEvaluation::Positive,\n+ InteractionLogEntry.Evaluation,\n+ StrSubstNo(\n+ EvaluationErr,\n+ InteractionLogEntry.FieldCaption(Evaluation),\n+ InteractionEvaluation::Positive,\n+ InteractionLogEntry.TableCaption));\n+ end;\n+\n local procedure Initialize()\n var\n LibrarySales: Codeunit \"Library - Sales\";\n@@ -4309,5 +4354,16 @@ CopyStr(StorageLocation, 1, MaxStrLen(MarketingSetup.\"Attachment Storage Locatio\n CreateInteraction.NextInteraction.Invoke();\n CreateInteraction.Finish.Invoke();\n end;\n+\n+ [ModalPageHandler]\n+ [Scope('OnPrem')]\n+ procedure CreateInteractionFromContactPageHandler(var CreateInteraction: TestPage \"Create Interaction\")\n+ begin\n+ CreateInteraction.\"Interaction Template Code\".SetValue(LibraryVariableStorage.DequeueText());\n+ CreateInteraction.NextInteraction.Invoke();\n+ CreateInteraction.NextInteraction.Invoke();\n+ CreateInteraction.Evaluation.SetValue(LibraryVariableStorage.DequeueText());\n+ CreateInteraction.FinishInteraction.Invoke();\n+ end;\n }\n \n", "patch": "diff --git a/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al b/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\nindex ff43f4ff6a7b..cf00000002 100644\n--- a/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\n+++ b/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\n@@ -694,6 +694,7 @@ page 5077 \"Create Interaction\"\n end;\n Step::\"Step 4\":\n begin\n+ InteractionLogEntry.Evaluation := Rec.Evaluation;\n InteractionLogEntry.Modify();\n CurrPage.Close();\n end;\n"} +{"instance_id": "microsoftInternal__NAV-174794__cf-1", "base_instance_id": "microsoftInternal__NAV-174794", "variant_description": "Allow Multiple Posting Groups setting ignored during Finance Charge Memo posting", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-174794__cf-1", "FAIL_TO_PASS": [{"codeunitID": 134911, "functionName": ["IssueFinChargeMemoCreatesGLEntryOfAltCustPostingGrpIfAllowMultiPostingGrps"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/ERM/ERMCreateFinanceChargeMemo.Codeunit.al b/App/Layers/W1/Tests/ERM/ERMCreateFinanceChargeMemo.Codeunit.al\nindex 95a8024..b5816d9 100644\n--- a/App/Layers/W1/Tests/ERM/ERMCreateFinanceChargeMemo.Codeunit.al\n+++ b/App/Layers/W1/Tests/ERM/ERMCreateFinanceChargeMemo.Codeunit.al\n@@ -28,6 +28,7 @@ codeunit 134911 \"ERM Create Finance Charge Memo\"\n PrintDocRef: Option \" \",Print,Email;\n EmailTxt: Label 'abc@microsoft.com', Locked = true;\n ProceedOnIssuingWithInvRoundingQst: Label 'The invoice rounding amount will be added to the finance charge memo when it is posted according to invoice rounding setup.\\Do you want to continue?';\n+ GLEntryMustNotBeEmpty: Label 'GL Entry for alternate posting group must not be empty when Allow Multiple Posting Groups is enabled.';\n \n [Test]\n [Scope('OnPrem')]\n@@ -465,6 +466,71 @@ codeunit 134911 \"ERM Create Finance Charge Memo\"\n \n end;\n \n+ [Test]\n+ [Scope('OnPrem')]\n+ procedure IssueFinChargeMemoCreatesGLEntryOfAltCustPostingGrpIfAllowMultiPostingGrps()\n+ var\n+ Customer: Record Customer;\n+ CustomerPostingGroup: Record \"Customer Posting Group\";\n+ CustomerPostingGroup2: Record \"Customer Posting Group\";\n+ FinanceChargeMemoHeader: Record \"Finance Charge Memo Header\";\n+ FinanceChargeMemoLine: Record \"Finance Charge Memo Line\";\n+ SalesReceivablesSetup: Record \"Sales & Receivables Setup\";\n+ IssueFinChargeMemoHeader: Record \"Issued Fin. Charge Memo Header\";\n+ GLEntry: Record \"G/L Entry\";\n+ FinChargeTermsCode: Code[10];\n+ begin\n+ // [SCENARIO 498604] When stan Issue a Finance Charge Memo having Alternate Customer Posting Group of Customer having Allow Multiple Posting Groups as true then it creates GL Entry of Alternate Customer Posting Group's Receivables Account.\n+ Initialize();\n+\n+ // [GIVEN] Validate Allow Multiple Posting Groups in Sales & Receivables Setup.\n+ SalesReceivablesSetup.Get();\n+ SalesReceivablesSetup.Validate(\"Allow Multiple Posting Groups\", false);\n+ SalesReceivablesSetup.Modify(true);\n+\n+ // [GIVEN] Create Finance Charge Terms.\n+ FinChargeTermsCode := CreateFinanceChargeTerms(LibraryRandom.RandInt(0));\n+\n+ // [GIVEN] Create Customer Posting Group.\n+ LibrarySales.CreateCustomerPostingGroup(CustomerPostingGroup2);\n+\n+ // [GIVEN] Create Customer Posting group 2.\n+ LibrarySales.CreateCustomerPostingGroup(CustomerPostingGroup);\n+\n+ // [GIVEN] Create Alternate Customer Posting Group.\n+ LibrarySales.CreateAltCustomerPostingGroup(CustomerPostingGroup.Code, CustomerPostingGroup2.Code);\n+\n+ // [GIVEN] Create Customer and Validate Customer Posting Group,\n+ // Allow Multiple Posting Groups and Fin. Charge Terms Code.\n+ LibrarySales.CreateCustomer(Customer);\n+ Customer.Validate(\"Customer Posting Group\", CustomerPostingGroup.Code);\n+ Customer.Validate(\"Allow Multiple Posting Groups\", true);\n+ Customer.Validate(\"Fin. Charge Terms Code\", FinChargeTermsCode);\n+ Customer.Modify(true);\n+\n+ // [GIVEN] Create Finance Charge Memo Header and Validate Customer Posting Group.\n+ LibraryERM.CreateFinanceChargeMemoHeader(FinanceChargeMemoHeader, Customer.\"No.\");\n+ FinanceChargeMemoHeader.Validate(\"Customer Posting Group\", CustomerPostingGroup2.Code);\n+ FinanceChargeMemoHeader.Modify(true);\n+\n+ // [GIVEN] Create Finance Charge Memo Line.\n+ CreateFinChargeMemoLineForInvRounding(FinanceChargeMemoLine, FinanceChargeMemoHeader, LibraryRandom.RandInt(0));\n+\n+ // [GIVEN] Issue Finance Charge Memo.\n+ LibraryERM.IssueFinanceChargeMemo(FinanceChargeMemoHeader);\n+\n+ // [GIVEN] Find Issued Fin. Charge Memo Header.\n+ IssueFinChargeMemoHeader.SetRange(\"Customer No.\", Customer.\"No.\");\n+ IssueFinChargeMemoHeader.FindFirst();\n+\n+ // [WHEN] Find GL Entry.\n+ GLEntry.SetRange(\"Document No.\", IssueFinChargeMemoHeader.\"No.\");\n+ GLEntry.SetRange(\"G/L Account No.\", CustomerPostingGroup2.\"Receivables Account\");\n+\n+ // [VERIFY] GL Entry uses alternate posting group when Allow Multiple Posting Groups is enabled.\n+ Assert.IsFalse(GLEntry.IsEmpty(), GLEntryMustNotBeEmpty);\n+ end;\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\nindex b941d50..2ba1b10 100644\n--- a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n@@ -278,6 +278,8 @@ codeunit 395 \"FinChrgMemo-Issue\"\n TempGenJnlLine.\"Account Type\" := AccType;\n TempGenJnlLine.\"Account No.\" := AccNo;\n TempGenJnlLine.Validate(\"Account No.\");\n+ if FinChrgMemoHeader.\"Customer Posting Group\" <> '' then\n+ TempGenJnlLine.\"Posting Group\" := FinChrgMemoHeader.\"Customer Posting Group\";\n if TempGenJnlLine.\"Account Type\" = TempGenJnlLine.\"Account Type\"::\"G/L Account\" then begin\n TempGenJnlLine.\"Gen. Posting Type\" := TempGenJnlLine.\"Gen. Posting Type\"::Sale;\n TempGenJnlLine.\"Gen. Bus. Posting Group\" := FinChrgMemoHeader.\"Gen. Bus. Posting Group\";\n"} +{"instance_id": "microsoftInternal__NAV-174794__cf-2", "base_instance_id": "microsoftInternal__NAV-174794", "variant_description": "Posting group propagated inside G/L Account branch only instead of for all account types", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-174794__cf-2", "FAIL_TO_PASS": [{"codeunitID": 134911, "functionName": ["IssueFinChargeMemoCreatesGLEntryOfAltCustPostingGrpIfAllowMultiPostingGrps"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/ERM/ERMCreateFinanceChargeMemo.Codeunit.al b/App/Layers/W1/Tests/ERM/ERMCreateFinanceChargeMemo.Codeunit.al\nindex 95a8024..ffec26a 100644\n--- a/App/Layers/W1/Tests/ERM/ERMCreateFinanceChargeMemo.Codeunit.al\n+++ b/App/Layers/W1/Tests/ERM/ERMCreateFinanceChargeMemo.Codeunit.al\n@@ -28,6 +28,7 @@ codeunit 134911 \"ERM Create Finance Charge Memo\"\n PrintDocRef: Option \" \",Print,Email;\n EmailTxt: Label 'abc@microsoft.com', Locked = true;\n ProceedOnIssuingWithInvRoundingQst: Label 'The invoice rounding amount will be added to the finance charge memo when it is posted according to invoice rounding setup.\\Do you want to continue?';\n+ GLEntryMustNotBeEmpty: Label 'GL Entry must not be empty.';\n \n [Test]\n [Scope('OnPrem')]\n@@ -465,6 +466,71 @@ codeunit 134911 \"ERM Create Finance Charge Memo\"\n \n end;\n \n+ [Test]\n+ [Scope('OnPrem')]\n+ procedure IssueFinChargeMemoCreatesGLEntryOfAltCustPostingGrpIfAllowMultiPostingGrps()\n+ var\n+ Customer: Record Customer;\n+ CustomerPostingGroup: Record \"Customer Posting Group\";\n+ CustomerPostingGroup2: Record \"Customer Posting Group\";\n+ FinanceChargeMemoHeader: Record \"Finance Charge Memo Header\";\n+ FinanceChargeMemoLine: Record \"Finance Charge Memo Line\";\n+ SalesReceivablesSetup: Record \"Sales & Receivables Setup\";\n+ IssueFinChargeMemoHeader: Record \"Issued Fin. Charge Memo Header\";\n+ GLEntry: Record \"G/L Entry\";\n+ FinChargeTermsCode: Code[10];\n+ begin\n+ // [SCENARIO 498604] When stan Issue a Finance Charge Memo having Alternate Customer Posting Group of Customer having Allow Multiple Posting Groups as true then it creates GL Entry of Alternate Customer Posting Group's Receivables Account.\n+ Initialize();\n+\n+ // [GIVEN] Validate Allow Multiple Posting Groups in Sales & Receivables Setup.\n+ SalesReceivablesSetup.Get();\n+ SalesReceivablesSetup.Validate(\"Allow Multiple Posting Groups\", true);\n+ SalesReceivablesSetup.Modify(true);\n+\n+ // [GIVEN] Create Finance Charge Terms.\n+ FinChargeTermsCode := CreateFinanceChargeTerms(LibraryRandom.RandInt(0));\n+\n+ // [GIVEN] Create Customer Posting Group.\n+ LibrarySales.CreateCustomerPostingGroup(CustomerPostingGroup2);\n+\n+ // [GIVEN] Create Customer Posting group 2.\n+ LibrarySales.CreateCustomerPostingGroup(CustomerPostingGroup);\n+\n+ // [GIVEN] Create Alternate Customer Posting Group.\n+ LibrarySales.CreateAltCustomerPostingGroup(CustomerPostingGroup.Code, CustomerPostingGroup2.Code);\n+\n+ // [GIVEN] Create Customer and Validate Customer Posting Group,\n+ // Allow Multiple Posting Groups and Fin. Charge Terms Code.\n+ LibrarySales.CreateCustomer(Customer);\n+ Customer.Validate(\"Customer Posting Group\", CustomerPostingGroup.Code);\n+ Customer.Validate(\"Allow Multiple Posting Groups\", true);\n+ Customer.Validate(\"Fin. Charge Terms Code\", FinChargeTermsCode);\n+ Customer.Modify(true);\n+\n+ // [GIVEN] Create Finance Charge Memo Header and Validate Customer Posting Group.\n+ LibraryERM.CreateFinanceChargeMemoHeader(FinanceChargeMemoHeader, Customer.\"No.\");\n+ FinanceChargeMemoHeader.Validate(\"Customer Posting Group\", CustomerPostingGroup2.Code);\n+ FinanceChargeMemoHeader.Modify(true);\n+\n+ // [GIVEN] Create Finance Charge Memo Line.\n+ CreateFinChargeMemoLineForInvRounding(FinanceChargeMemoLine, FinanceChargeMemoHeader, LibraryRandom.RandInt(0));\n+\n+ // [GIVEN] Issue Finance Charge Memo.\n+ LibraryERM.IssueFinanceChargeMemo(FinanceChargeMemoHeader);\n+\n+ // [GIVEN] Find Issued Fin. Charge Memo Header.\n+ IssueFinChargeMemoHeader.SetRange(\"Customer No.\", Customer.\"No.\");\n+ IssueFinChargeMemoHeader.FindFirst();\n+\n+ // [WHEN] Find GL Entry.\n+ GLEntry.SetRange(\"Document No.\", IssueFinChargeMemoHeader.\"No.\");\n+ GLEntry.SetRange(\"G/L Account No.\", CustomerPostingGroup2.\"Receivables Account\");\n+\n+ // [VERIFY] GL Entry has Receivables Account of Customer Posting Group 2 in GL Account No.\n+ Assert.IsFalse(GLEntry.IsEmpty(), GLEntryMustNotBeEmpty);\n+ end;\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\nindex b941d50..0000004 100644\n--- a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n@@ -283,6 +283,7 @@ codeunit 395 \"FinChrgMemo-Issue\"\n TempGenJnlLine.\"Gen. Bus. Posting Group\" := FinChrgMemoHeader.\"Gen. Bus. Posting Group\";\n TempGenJnlLine.\"VAT Bus. Posting Group\" := FinChrgMemoHeader.\"VAT Bus. Posting Group\";\n end;\n+ TempGenJnlLine.\"Posting Group\" := FinChrgMemoHeader.\"Customer Posting Group\";\n TempGenJnlLine.Validate(\"Currency Code\", FinChrgMemoHeader.\"Currency Code\");\n if TempGenJnlLine.\"Account Type\" = TempGenJnlLine.\"Account Type\"::Customer then begin\n TempGenJnlLine.Validate(Amount, TotalAmount);\n"} +{"instance_id": "microsoftInternal__NAV-174794__cf-3", "base_instance_id": "microsoftInternal__NAV-174794", "variant_description": "Posting group from header only when Allow Multiple Posting Groups enabled on customer", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-174794__cf-3", "FAIL_TO_PASS": [{"codeunitID": 134911, "functionName": ["IssueFinChargeMemoCreatesGLEntryOfAltCustPostingGrpIfAllowMultiPostingGrps"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/ERM/ERMCreateFinanceChargeMemo.Codeunit.al b/App/Layers/W1/Tests/ERM/ERMCreateFinanceChargeMemo.Codeunit.al\nindex 95a8024d1290..07fdee93db4b 100644\n--- a/App/Layers/W1/Tests/ERM/ERMCreateFinanceChargeMemo.Codeunit.al\n+++ b/App/Layers/W1/Tests/ERM/ERMCreateFinanceChargeMemo.Codeunit.al\n@@ -28,6 +28,7 @@ codeunit 134911 \"ERM Create Finance Charge Memo\"\n PrintDocRef: Option \" \",Print,Email;\n EmailTxt: Label 'abc@microsoft.com', Locked = true;\n ProceedOnIssuingWithInvRoundingQst: Label 'The invoice rounding amount will be added to the finance charge memo when it is posted according to invoice rounding setup.\\Do you want to continue?';\n+ GLEntryMustNotBeEmpty: Label 'GL Entry must not be empty.';\n \n [Test]\n [Scope('OnPrem')]\n@@ -465,6 +466,71 @@ codeunit 134911 \"ERM Create Finance Charge Memo\"\n \n end;\n \n+ [Test]\n+ [Scope('OnPrem')]\n+ procedure IssueFinChargeMemoCreatesGLEntryOfAltCustPostingGrpIfAllowMultiPostingGrps()\n+ var\n+ Customer: Record Customer;\n+ CustomerPostingGroup: Record \"Customer Posting Group\";\n+ CustomerPostingGroup2: Record \"Customer Posting Group\";\n+ FinanceChargeMemoHeader: Record \"Finance Charge Memo Header\";\n+ FinanceChargeMemoLine: Record \"Finance Charge Memo Line\";\n+ SalesReceivablesSetup: Record \"Sales & Receivables Setup\";\n+ IssueFinChargeMemoHeader: Record \"Issued Fin. Charge Memo Header\";\n+ GLEntry: Record \"G/L Entry\";\n+ FinChargeTermsCode: Code[10];\n+ begin\n+ // [SCENARIO 498604] When stan Issue a Finance Charge Memo having Alternate Customer Posting Group of Customer having Allow Multiple Posting Groups as true then it creates GL Entry of Alternate Customer Posting Group's Receivables Account.\n+ Initialize();\n+\n+ // [GIVEN] Validate Allow Multiple Posting Groups in Sales & Receivables Setup.\n+ SalesReceivablesSetup.Get();\n+ SalesReceivablesSetup.Validate(\"Allow Multiple Posting Groups\", true);\n+ SalesReceivablesSetup.Modify(true);\n+\n+ // [GIVEN] Create Finance Charge Terms.\n+ FinChargeTermsCode := CreateFinanceChargeTerms(LibraryRandom.RandInt(0));\n+\n+ // [GIVEN] Create Customer Posting Group.\n+ LibrarySales.CreateCustomerPostingGroup(CustomerPostingGroup2);\n+\n+ // [GIVEN] Create Customer Posting group 2.\n+ LibrarySales.CreateCustomerPostingGroup(CustomerPostingGroup);\n+\n+ // [GIVEN] Create Alternate Customer Posting Group.\n+ LibrarySales.CreateAltCustomerPostingGroup(CustomerPostingGroup.Code, CustomerPostingGroup2.Code);\n+\n+ // [GIVEN] Create Customer and Validate Customer Posting Group,\n+ // Allow Multiple Posting Groups and Fin. Charge Terms Code.\n+ LibrarySales.CreateCustomer(Customer);\n+ Customer.Validate(\"Customer Posting Group\", CustomerPostingGroup.Code);\n+ Customer.Validate(\"Allow Multiple Posting Groups\", true);\n+ Customer.Validate(\"Fin. Charge Terms Code\", FinChargeTermsCode);\n+ Customer.Modify(true);\n+\n+ // [GIVEN] Create Finance Charge Memo Header and Validate Customer Posting Group.\n+ LibraryERM.CreateFinanceChargeMemoHeader(FinanceChargeMemoHeader, Customer.\"No.\");\n+ FinanceChargeMemoHeader.Validate(\"Customer Posting Group\", CustomerPostingGroup2.Code);\n+ FinanceChargeMemoHeader.Modify(true);\n+\n+ // [GIVEN] Create Finance Charge Memo Line.\n+ CreateFinChargeMemoLineForInvRounding(FinanceChargeMemoLine, FinanceChargeMemoHeader, LibraryRandom.RandInt(0));\n+\n+ // [GIVEN] Issue Finance Charge Memo.\n+ LibraryERM.IssueFinanceChargeMemo(FinanceChargeMemoHeader);\n+\n+ // [GIVEN] Find Issued Fin. Charge Memo Header.\n+ IssueFinChargeMemoHeader.SetRange(\"Customer No.\", Customer.\"No.\");\n+ IssueFinChargeMemoHeader.FindFirst();\n+\n+ // [WHEN] Find GL Entry.\n+ GLEntry.SetRange(\"Document No.\", IssueFinChargeMemoHeader.\"No.\");\n+ GLEntry.SetRange(\"G/L Account No.\", CustomerPostingGroup2.\"Receivables Account\");\n+\n+ // [VERIFY] GL Entry has Receivables Account of Customer Posting Group 2 in GL Account No. \n+ Assert.IsFalse(GLEntry.IsEmpty(), GLEntryMustNotBeEmpty);\n+ end;\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\nindex b941d50..83afc21 100644\n--- a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n@@ -151,6 +151,8 @@ codeunit 395 \"FinChrgMemo-Issue\"\n \n if (TotalAmount <> 0) or (TotalAmountLCY <> 0) then begin\n InitGenJnlLine(TempGenJnlLine.\"Account Type\"::Customer, FinChrgMemoHeader.\"Customer No.\", true);\n+ if Customer.\"Allow Multiple Posting Groups\" then\n+ TempGenJnlLine.\"Posting Group\" := FinChrgMemoHeader.\"Customer Posting Group\";\n TempGenJnlLine.Validate(Amount, TotalAmount);\n TempGenJnlLine.Validate(\"Amount (LCY)\", TotalAmountLCY);\n OnRunOnBeforeTotalGenJnlLineInsert(TempGenJnlLine);\n"} +{"instance_id": "microsoftInternal__NAV-175765__cf-1", "base_instance_id": "microsoftInternal__NAV-175765", "variant_description": "Undo transfer shipment without running second cost adjustment", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-175765__cf-1", "FAIL_TO_PASS": [{"codeunitID": 137038, "functionName": ["AdjustCostOfUndoneTransferShipment"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM/SCMTransfers.Codeunit.al b/App/Layers/W1/Tests/SCM/SCMTransfers.Codeunit.al\n--- a/App/Layers/W1/Tests/SCM/SCMTransfers.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM/SCMTransfers.Codeunit.al\n@@ -3595,6 +3595,65 @@\n PostedTranferReceipt.Close();\n end;\n \n+ [Test]\n+ [HandlerFunctions('ConfirmHandlerYes')]\n+ [Scope('OnPrem')]\n+ procedure AdjustCostOfUndoneTransferShipment()\n+ var\n+ Item: Record Item;\n+ InTransitLocation: Record Location;\n+ TransferHeader: Record \"Transfer Header\";\n+ TransferLine: Record \"Transfer Line\";\n+ ItemLedgerEntry: Record \"Item Ledger Entry\";\n+ ItemLedgerEntryNo: Integer;\n+ LocationFromCode, LocationTOCode : Code[10];\n+ OldCost, NewCost : Decimal;\n+ begin\n+ // [FEATURE] [Transfer] [Undo Shipment] [Costing] [Adjust Cost - Item Entries]\n+ // [SCENARIO 496575] Item ledger entry for undone transfer shipment is adjusted with the correct cost.\n+ Initialize();\n+ OldCost := LibraryRandom.RandDec(100, 2);\n+ NewCost := LibraryRandom.RandDecInDecimalRange(101, 200, 2);\n+\n+ // [GIVEN] Item \"I\".\n+ // [GIVEN] Locations \"From\" and \"To\".\n+ LibraryInventory.CreateItem(Item);\n+ CreateLocations(LocationFromCode, LocationToCode);\n+ LibraryWarehouse.CreateInTransitLocation(InTransitLocation);\n+\n+ // [GIVEN] Post inventory adjustment of \"I\" to location \"From\". Unit Cost = 10.\n+ CreateAndPostItemJnlWithCostLocationVariant(\n+ \"Item Ledger Entry Type\"::\"Positive Adjmt.\", Item.\"No.\", 1, OldCost, LocationFromCode, '');\n+ ItemLedgerEntryNo := FindLastILENo(Item.\"No.\");\n+\n+ // [GIVEN] Create transfer order from \"From\" to \"To\".\n+ // [GIVEN] Ship the transfer order.\n+ LibraryInventory.CreateTransferHeader(TransferHeader, LocationFromCode, LocationToCode, InTransitLocation.Code);\n+ LibraryInventory.CreateTransferLine(TransferHeader, TransferLine, Item.\"No.\", 1);\n+ LibraryInventory.PostTransferHeader(TransferHeader, true, false);\n+\n+ // [GIVEN] Revaluate the item entry for the inventory adjustment, new cost = 12.\n+ CreateAndPostRevaluationJournal(Item.\"No.\", ItemLedgerEntryNo, 1, NewCost);\n+\n+ // [GIVEN] Adjust cost.\n+ LibraryCosting.AdjustCostItemEntries(Item.\"No.\", '');\n+\n+ // [WHEN] Undo the transfer shipment without running cost adjustment.\n+ LibraryInventory.UndoTransferShipments(TransferHeader.\"No.\");\n+\n+ // [THEN] Unit cost of \"I\" = OldCost (not propagated).\n+ Item.Find();\n+ Item.TestField(\"Unit Cost\", NewCost);\n+\n+ // [THEN] Item ledger entry for the undone transfer shipment has old cost.\n+ ItemLedgerEntry.Get(FindLastILENo(Item.\"No.\"));\n+ ItemLedgerEntry.TestField(\"Entry Type\", ItemLedgerEntry.\"Entry Type\"::Transfer);\n+ ItemLedgerEntry.TestField(\"Location Code\", LocationFromCode);\n+ ItemLedgerEntry.TestField(Positive, true);\n+ ItemLedgerEntry.CalcFields(\"Cost Amount (Actual)\");\n+ ItemLedgerEntry.TestField(\"Cost Amount (Actual)\", NewCost);\n+ end;\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n@@ -3708,6 +3768,26 @@\n UpdateLocation(LocationCode[5], true, HandlingTime2, HandlingTime2);\n end;\n \n+ local procedure CreateAndPostRevaluationJournal(ItemNo: Code[20]; AppliesToEntry: Integer; InventoryValueRevalued: Decimal; UnitCostRevalued: Decimal)\n+ var\n+ ItemJournalTemplate: Record \"Item Journal Template\";\n+ ItemJournalBatch: Record \"Item Journal Batch\";\n+ ItemJournalLine: Record \"Item Journal Line\";\n+ begin\n+ LibraryInventory.SelectItemJournalTemplateName(ItemJournalTemplate, ItemJournalTemplate.Type::Revaluation);\n+ LibraryInventory.CreateItemJournalBatch(ItemJournalBatch, ItemJournalTemplate.Name);\n+ ItemJournalLine.Validate(\"Journal Template Name\", ItemJournalBatch.\"Journal Template Name\");\n+ ItemJournalLine.Validate(\"Journal Batch Name\", ItemJournalBatch.Name);\n+ LibraryInventory.CreateItemJournalLine(\n+ ItemJournalLine, ItemJournalBatch.\"Journal Template Name\", ItemJournalBatch.Name, ItemJournalLine.\"Entry Type\"::\" \", ItemNo, 0);\n+ ItemJournalLine.Validate(\"Value Entry Type\", ItemJournalLine.\"Value Entry Type\"::Revaluation);\n+ ItemJournalLine.Validate(\"Applies-to Entry\", AppliesToEntry);\n+ ItemJournalLine.Validate(\"Inventory Value (Revalued)\", InventoryValueRevalued);\n+ ItemJournalLine.Validate(\"Unit Cost (Revalued)\", UnitCostRevalued);\n+ ItemJournalLine.Modify(true);\n+ LibraryInventory.PostItemJournalLine(ItemJournalBatch.\"Journal Template Name\", ItemJournalBatch.Name);\n+ end;\n+\n local procedure PostTransferShipmentPartiallyWithBlockedItem(DirectTransfer: Boolean)\n var\n Location: array[3] of Record Location;\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\n--- a/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\n@@ -7182,6 +7182,19 @@ codeunit 22 \"Item Jnl.-Post Line\"\n Error(Text027);\n end;\n \n+ procedure MarkAppliedInboundItemEntriesForAdjustment(OutboundItemLedgerEntryNo: Integer)\n+ var\n+ InboundItemLedgerEntry: Record \"Item Ledger Entry\";\n+ ItemApplicationEntry: Record \"Item Application Entry\";\n+ begin\n+ if ItemApplicationEntry.GetInboundEntriesTheOutbndEntryAppliedTo(OutboundItemLedgerEntryNo) then\n+ repeat\n+ InboundItemLedgerEntry.SetLoadFields(\"Applied Entry to Adjust\");\n+ InboundItemLedgerEntry.Get(ItemApplicationEntry.\"Inbound Item Entry No.\");\n+ InboundItemLedgerEntry.SetAppliedEntryToAdjust(true);\n+ until ItemApplicationEntry.Next() = 0;\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnVerifyInvoicedQtyOnAfterGetSalesShipmentHeader(ItemLedgEntry2: Record \"Item Ledger Entry\"; var IsHandled: Boolean)\n begin\ndiff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al\n@@ -332,13 +332,18 @@ codeunit 9030 \"Undo Transfer Shipment\"\n until TempItemEntryRelation.Next() = 0;\n end;\n \n- local procedure GetShptEntries(TransShptLine: Record \"Transfer Shipment Line\"; var ItemLedgEntry: Record \"Item Ledger Entry\"): Boolean\n+ local procedure GetShptEntries(TransShptLine: Record \"Transfer Shipment Line\"; var ItemLedgEntry: Record \"Item Ledger Entry\") Found: Boolean\n begin\n ItemLedgEntry.SetCurrentKey(\"Document No.\", \"Document Type\", \"Document Line No.\");\n ItemLedgEntry.SetRange(\"Document Type\", ItemLedgEntry.\"Document Type\"::\"Transfer Shipment\");\n ItemLedgEntry.SetRange(\"Document No.\", TransShptLine.\"Document No.\");\n ItemLedgEntry.SetRange(\"Document Line No.\", TransShptLine.\"Line No.\");\n- exit(ItemLedgEntry.FindSet());\n+ Found := ItemLedgEntry.FindSet();\n+\n+ if Found then\n+ repeat\n+ ItemJnlPostLine.MarkAppliedInboundItemEntriesForAdjustment(ItemLedgEntry.\"Entry No.\");\n+ until ItemLedgEntry.Next() = 0;\n end;\n \n local procedure MakeInventoryAdjustment()\n"} +{"instance_id": "microsoftInternal__NAV-175765__cf-2", "base_instance_id": "microsoftInternal__NAV-175765", "variant_description": "Cost adjustment run before undo transfer shipment instead of after", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-175765__cf-2", "FAIL_TO_PASS": [{"codeunitID": 137038, "functionName": ["AdjustCostOfUndoneTransferShipment"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM/SCMTransfers.Codeunit.al b/App/Layers/W1/Tests/SCM/SCMTransfers.Codeunit.al\n--- a/App/Layers/W1/Tests/SCM/SCMTransfers.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM/SCMTransfers.Codeunit.al\n@@ -3595,6 +3595,66 @@\n PostedTranferReceipt.Close();\n end;\n \n+ [Test]\n+ [HandlerFunctions('ConfirmHandlerYes')]\n+ [Scope('OnPrem')]\n+ procedure AdjustCostOfUndoneTransferShipment()\n+ var\n+ Item: Record Item;\n+ InTransitLocation: Record Location;\n+ TransferHeader: Record \"Transfer Header\";\n+ TransferLine: Record \"Transfer Line\";\n+ ItemLedgerEntry: Record \"Item Ledger Entry\";\n+ ItemLedgerEntryNo: Integer;\n+ LocationFromCode, LocationTOCode : Code[10];\n+ OldCost, NewCost : Decimal;\n+ begin\n+ // [FEATURE] [Transfer] [Undo Shipment] [Costing] [Adjust Cost - Item Entries]\n+ // [SCENARIO 496575] Item ledger entry for undone transfer shipment is adjusted with the correct cost.\n+ Initialize();\n+ OldCost := LibraryRandom.RandDec(100, 2);\n+ NewCost := LibraryRandom.RandDecInDecimalRange(101, 200, 2);\n+\n+ // [GIVEN] Item \"I\".\n+ // [GIVEN] Locations \"From\" and \"To\".\n+ LibraryInventory.CreateItem(Item);\n+ CreateLocations(LocationFromCode, LocationToCode);\n+ LibraryWarehouse.CreateInTransitLocation(InTransitLocation);\n+\n+ // [GIVEN] Post inventory adjustment of \"I\" to location \"From\". Unit Cost = 10.\n+ CreateAndPostItemJnlWithCostLocationVariant(\n+ \"Item Ledger Entry Type\"::\"Positive Adjmt.\", Item.\"No.\", 1, OldCost, LocationFromCode, '');\n+ ItemLedgerEntryNo := FindLastILENo(Item.\"No.\");\n+\n+ // [GIVEN] Create transfer order from \"From\" to \"To\".\n+ // [GIVEN] Ship the transfer order.\n+ LibraryInventory.CreateTransferHeader(TransferHeader, LocationFromCode, LocationToCode, InTransitLocation.Code);\n+ LibraryInventory.CreateTransferLine(TransferHeader, TransferLine, Item.\"No.\", 1);\n+ LibraryInventory.PostTransferHeader(TransferHeader, true, false);\n+\n+ // [GIVEN] Revaluate the item entry for the inventory adjustment, new cost = 12.\n+ CreateAndPostRevaluationJournal(Item.\"No.\", ItemLedgerEntryNo, 1, NewCost);\n+\n+ // [GIVEN] Adjust cost.\n+ LibraryCosting.AdjustCostItemEntries(Item.\"No.\", '');\n+\n+ // [WHEN] Run cost adjustment before undoing the transfer shipment.\n+ LibraryCosting.AdjustCostItemEntries(Item.\"No.\", '');\n+ LibraryInventory.UndoTransferShipments(TransferHeader.\"No.\");\n+\n+ // [THEN] Unit cost of \"I\" = NewCost.\n+ Item.Find();\n+ Item.TestField(\"Unit Cost\", NewCost);\n+\n+ // [THEN] Item ledger entry for the undone transfer shipment. Unit Cost = NewCost.\n+ ItemLedgerEntry.Get(FindLastILENo(Item.\"No.\"));\n+ ItemLedgerEntry.TestField(\"Entry Type\", ItemLedgerEntry.\"Entry Type\"::Transfer);\n+ ItemLedgerEntry.TestField(\"Location Code\", LocationFromCode);\n+ ItemLedgerEntry.TestField(Positive, true);\n+ ItemLedgerEntry.CalcFields(\"Cost Amount (Actual)\");\n+ ItemLedgerEntry.TestField(\"Cost Amount (Actual)\", NewCost);\n+ end;\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n@@ -3708,6 +3768,26 @@\n UpdateLocation(LocationCode[5], true, HandlingTime2, HandlingTime2);\n end;\n \n+ local procedure CreateAndPostRevaluationJournal(ItemNo: Code[20]; AppliesToEntry: Integer; InventoryValueRevalued: Decimal; UnitCostRevalued: Decimal)\n+ var\n+ ItemJournalTemplate: Record \"Item Journal Template\";\n+ ItemJournalBatch: Record \"Item Journal Batch\";\n+ ItemJournalLine: Record \"Item Journal Line\";\n+ begin\n+ LibraryInventory.SelectItemJournalTemplateName(ItemJournalTemplate, ItemJournalTemplate.Type::Revaluation);\n+ LibraryInventory.CreateItemJournalBatch(ItemJournalBatch, ItemJournalTemplate.Name);\n+ ItemJournalLine.Validate(\"Journal Template Name\", ItemJournalBatch.\"Journal Template Name\");\n+ ItemJournalLine.Validate(\"Journal Batch Name\", ItemJournalBatch.Name);\n+ LibraryInventory.CreateItemJournalLine(\n+ ItemJournalLine, ItemJournalBatch.\"Journal Template Name\", ItemJournalBatch.Name, ItemJournalLine.\"Entry Type\"::\" \", ItemNo, 0);\n+ ItemJournalLine.Validate(\"Value Entry Type\", ItemJournalLine.\"Value Entry Type\"::Revaluation);\n+ ItemJournalLine.Validate(\"Applies-to Entry\", AppliesToEntry);\n+ ItemJournalLine.Validate(\"Inventory Value (Revalued)\", InventoryValueRevalued);\n+ ItemJournalLine.Validate(\"Unit Cost (Revalued)\", UnitCostRevalued);\n+ ItemJournalLine.Modify(true);\n+ LibraryInventory.PostItemJournalLine(ItemJournalBatch.\"Journal Template Name\", ItemJournalBatch.Name);\n+ end;\n+\n local procedure PostTransferShipmentPartiallyWithBlockedItem(DirectTransfer: Boolean)\n var\n Location: array[3] of Record Location;\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\n--- a/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\n@@ -7182,6 +7182,19 @@ codeunit 22 \"Item Jnl.-Post Line\"\n Error(Text027);\n end;\n \n+ procedure MarkAppliedInboundItemEntriesForAdjustment(OutboundItemLedgerEntryNo: Integer)\n+ var\n+ InboundItemLedgerEntry: Record \"Item Ledger Entry\";\n+ ItemApplicationEntry: Record \"Item Application Entry\";\n+ begin\n+ if ItemApplicationEntry.GetInboundEntriesTheOutbndEntryAppliedTo(OutboundItemLedgerEntryNo) then\n+ repeat\n+ InboundItemLedgerEntry.SetLoadFields(\"Applied Entry to Adjust\");\n+ InboundItemLedgerEntry.Get(ItemApplicationEntry.\"Inbound Item Entry No.\");\n+ InboundItemLedgerEntry.SetAppliedEntryToAdjust(true);\n+ until ItemApplicationEntry.Next() = 0;\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnVerifyInvoicedQtyOnAfterGetSalesShipmentHeader(ItemLedgEntry2: Record \"Item Ledger Entry\"; var IsHandled: Boolean)\n begin\ndiff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al\n@@ -332,13 +332,18 @@ codeunit 9030 \"Undo Transfer Shipment\"\n until TempItemEntryRelation.Next() = 0;\n end;\n \n- local procedure GetShptEntries(TransShptLine: Record \"Transfer Shipment Line\"; var ItemLedgEntry: Record \"Item Ledger Entry\"): Boolean\n+ local procedure GetShptEntries(TransShptLine: Record \"Transfer Shipment Line\"; var ItemLedgEntry: Record \"Item Ledger Entry\") Found: Boolean\n begin\n ItemLedgEntry.SetCurrentKey(\"Document No.\", \"Document Type\", \"Document Line No.\");\n ItemLedgEntry.SetRange(\"Document Type\", ItemLedgEntry.\"Document Type\"::\"Transfer Shipment\");\n ItemLedgEntry.SetRange(\"Document No.\", TransShptLine.\"Document No.\");\n ItemLedgEntry.SetRange(\"Document Line No.\", TransShptLine.\"Line No.\");\n- exit(ItemLedgEntry.FindSet());\n+ Found := ItemLedgEntry.FindSet();\n+\n+ if Found then\n+ repeat\n+ ItemJnlPostLine.MarkAppliedInboundItemEntriesForAdjustment(ItemLedgEntry.\"Entry No.\");\n+ until ItemLedgEntry.Next() = 0;\n end;\n \n local procedure MakeInventoryAdjustment()\n"} +{"instance_id": "microsoftInternal__NAV-175765__cf-3", "base_instance_id": "microsoftInternal__NAV-175765", "variant_description": "Cost adjustment only applied when revaluation exists for original entry", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-175765__cf-3", "FAIL_TO_PASS": [{"codeunitID": 137038, "functionName": ["AdjustCostOfUndoneTransferShipment"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM/SCMTransfers.Codeunit.al b/App/Layers/W1/Tests/SCM/SCMTransfers.Codeunit.al\n--- a/App/Layers/W1/Tests/SCM/SCMTransfers.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM/SCMTransfers.Codeunit.al\n@@ -3595,6 +3595,67 @@\n PostedTranferReceipt.Close();\n end;\n \n+ [Test]\n+ [HandlerFunctions('ConfirmHandlerYes')]\n+ [Scope('OnPrem')]\n+ procedure AdjustCostOfUndoneTransferShipment()\n+ var\n+ Item: Record Item;\n+ InTransitLocation: Record Location;\n+ TransferHeader: Record \"Transfer Header\";\n+ TransferLine: Record \"Transfer Line\";\n+ ItemLedgerEntry: Record \"Item Ledger Entry\";\n+ ItemLedgerEntryNo: Integer;\n+ LocationFromCode, LocationTOCode : Code[10];\n+ OldCost, NewCost : Decimal;\n+ begin\n+ // [FEATURE] [Transfer] [Undo Shipment] [Costing] [Adjust Cost - Item Entries]\n+ // [SCENARIO 496575] Item ledger entry for undone transfer shipment is adjusted with the correct cost.\n+ Initialize();\n+ OldCost := LibraryRandom.RandDec(100, 2);\n+ NewCost := LibraryRandom.RandDecInDecimalRange(101, 200, 2);\n+\n+ // [GIVEN] Item \"I\".\n+ // [GIVEN] Locations \"From\" and \"To\".\n+ LibraryInventory.CreateItem(Item);\n+ CreateLocations(LocationFromCode, LocationToCode);\n+ LibraryWarehouse.CreateInTransitLocation(InTransitLocation);\n+\n+ // [GIVEN] Post inventory adjustment of \"I\" to location \"From\". Unit Cost = 10.\n+ CreateAndPostItemJnlWithCostLocationVariant(\n+ \"Item Ledger Entry Type\"::\"Positive Adjmt.\", Item.\"No.\", 1, OldCost, LocationFromCode, '');\n+ ItemLedgerEntryNo := FindLastILENo(Item.\"No.\");\n+\n+ // [GIVEN] Create transfer order from \"From\" to \"To\".\n+ // [GIVEN] Ship the transfer order.\n+ LibraryInventory.CreateTransferHeader(TransferHeader, LocationFromCode, LocationToCode, InTransitLocation.Code);\n+ LibraryInventory.CreateTransferLine(TransferHeader, TransferLine, Item.\"No.\", 1);\n+ LibraryInventory.PostTransferHeader(TransferHeader, true, false);\n+\n+ // [GIVEN] Revaluate the item entry for the inventory adjustment, new cost = 12.\n+ CreateAndPostRevaluationJournal(Item.\"No.\", ItemLedgerEntryNo, 1, NewCost);\n+\n+ // [GIVEN] Adjust cost.\n+ LibraryCosting.AdjustCostItemEntries(Item.\"No.\", '');\n+\n+ // [WHEN] Undo the transfer shipment and run the cost adjustment.\n+ LibraryInventory.UndoTransferShipments(TransferHeader.\"No.\");\n+ LibraryCosting.AdjustCostItemEntries(Item.\"No.\", '');\n+\n+ // [THEN] Unit cost of \"I\" = NewCost only if revaluation exists.\n+ Item.Find();\n+ if NewCost <> OldCost then\n+ Item.TestField(\"Unit Cost\", NewCost);\n+\n+ // [THEN] Item ledger entry for the undone transfer shipment is adjusted.\n+ ItemLedgerEntry.Get(FindLastILENo(Item.\"No.\"));\n+ ItemLedgerEntry.TestField(\"Entry Type\", ItemLedgerEntry.\"Entry Type\"::Transfer);\n+ ItemLedgerEntry.TestField(\"Location Code\", LocationFromCode);\n+ ItemLedgerEntry.TestField(Positive, true);\n+ ItemLedgerEntry.CalcFields(\"Cost Amount (Actual)\");\n+ ItemLedgerEntry.TestField(\"Cost Amount (Actual)\", NewCost);\n+ end;\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n@@ -3708,6 +3768,26 @@\n UpdateLocation(LocationCode[5], true, HandlingTime2, HandlingTime2);\n end;\n \n+ local procedure CreateAndPostRevaluationJournal(ItemNo: Code[20]; AppliesToEntry: Integer; InventoryValueRevalued: Decimal; UnitCostRevalued: Decimal)\n+ var\n+ ItemJournalTemplate: Record \"Item Journal Template\";\n+ ItemJournalBatch: Record \"Item Journal Batch\";\n+ ItemJournalLine: Record \"Item Journal Line\";\n+ begin\n+ LibraryInventory.SelectItemJournalTemplateName(ItemJournalTemplate, ItemJournalTemplate.Type::Revaluation);\n+ LibraryInventory.CreateItemJournalBatch(ItemJournalBatch, ItemJournalTemplate.Name);\n+ ItemJournalLine.Validate(\"Journal Template Name\", ItemJournalBatch.\"Journal Template Name\");\n+ ItemJournalLine.Validate(\"Journal Batch Name\", ItemJournalBatch.Name);\n+ LibraryInventory.CreateItemJournalLine(\n+ ItemJournalLine, ItemJournalBatch.\"Journal Template Name\", ItemJournalBatch.Name, ItemJournalLine.\"Entry Type\"::\" \", ItemNo, 0);\n+ ItemJournalLine.Validate(\"Value Entry Type\", ItemJournalLine.\"Value Entry Type\"::Revaluation);\n+ ItemJournalLine.Validate(\"Applies-to Entry\", AppliesToEntry);\n+ ItemJournalLine.Validate(\"Inventory Value (Revalued)\", InventoryValueRevalued);\n+ ItemJournalLine.Validate(\"Unit Cost (Revalued)\", UnitCostRevalued);\n+ ItemJournalLine.Modify(true);\n+ LibraryInventory.PostItemJournalLine(ItemJournalBatch.\"Journal Template Name\", ItemJournalBatch.Name);\n+ end;\n+\n local procedure PostTransferShipmentPartiallyWithBlockedItem(DirectTransfer: Boolean)\n var\n Location: array[3] of Record Location;\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\n--- a/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\n@@ -7182,6 +7182,19 @@ codeunit 22 \"Item Jnl.-Post Line\"\n Error(Text027);\n end;\n \n+ procedure MarkAppliedInboundItemEntriesForAdjustment(OutboundItemLedgerEntryNo: Integer)\n+ var\n+ InboundItemLedgerEntry: Record \"Item Ledger Entry\";\n+ ItemApplicationEntry: Record \"Item Application Entry\";\n+ begin\n+ if ItemApplicationEntry.GetInboundEntriesTheOutbndEntryAppliedTo(OutboundItemLedgerEntryNo) then\n+ repeat\n+ InboundItemLedgerEntry.SetLoadFields(\"Applied Entry to Adjust\");\n+ InboundItemLedgerEntry.Get(ItemApplicationEntry.\"Inbound Item Entry No.\");\n+ InboundItemLedgerEntry.SetAppliedEntryToAdjust(true);\n+ until ItemApplicationEntry.Next() = 0;\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnVerifyInvoicedQtyOnAfterGetSalesShipmentHeader(ItemLedgEntry2: Record \"Item Ledger Entry\"; var IsHandled: Boolean)\n begin\ndiff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al\n@@ -332,13 +332,18 @@ codeunit 9030 \"Undo Transfer Shipment\"\n until TempItemEntryRelation.Next() = 0;\n end;\n \n- local procedure GetShptEntries(TransShptLine: Record \"Transfer Shipment Line\"; var ItemLedgEntry: Record \"Item Ledger Entry\"): Boolean\n+ local procedure GetShptEntries(TransShptLine: Record \"Transfer Shipment Line\"; var ItemLedgEntry: Record \"Item Ledger Entry\") Found: Boolean\n begin\n ItemLedgEntry.SetCurrentKey(\"Document No.\", \"Document Type\", \"Document Line No.\");\n ItemLedgEntry.SetRange(\"Document Type\", ItemLedgEntry.\"Document Type\"::\"Transfer Shipment\");\n ItemLedgEntry.SetRange(\"Document No.\", TransShptLine.\"Document No.\");\n ItemLedgEntry.SetRange(\"Document Line No.\", TransShptLine.\"Line No.\");\n- exit(ItemLedgEntry.FindSet());\n+ Found := ItemLedgEntry.FindSet();\n+\n+ if Found then\n+ repeat\n+ ItemJnlPostLine.MarkAppliedInboundItemEntriesForAdjustment(ItemLedgEntry.\"Entry No.\");\n+ until ItemLedgEntry.Next() = 0;\n end;\n \n local procedure MakeInventoryAdjustment()\n"} +{"instance_id": "microsoftInternal__NAV-176082__cf-1", "base_instance_id": "microsoftInternal__NAV-176082", "variant_description": "Get Receipt Lines filters by header-level location only instead of line-level location", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-176082__cf-1", "FAIL_TO_PASS": [{"codeunitID": 137038, "functionName": ["GetReceiptLinesShowListOfPostedPurchRcptsHavingTransferFromCodeInLocationCodeOfPurchRcptLines"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM/SCMTransfers.Codeunit.al b/App/Layers/W1/Tests/SCM/SCMTransfers.Codeunit.al\nindex e0b3ba5f0bf7..ffa98cfbb351 100644\n--- a/App/Layers/W1/Tests/SCM/SCMTransfers.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM/SCMTransfers.Codeunit.al\n@@ -48,6 +48,7 @@\n UndoneTransLineQtyErr: Label 'Expected Quantity to be 0 after Transfer Shipment was undone';\n DerivedTransLineErr: Label 'Expected no Derived Transfer Line i.e. line with \"Derived From Line No.\" equal to original transfer line.';\n IncorrectSNUndoneErr: Label 'The Serial No. of the item on the transfer shipment line that was undone was different from the SN on the corresponding transfer line.';\n+ ApplToItemEntryErr: Label '%1 must be %2 in %3.', Comment = '%1 is Appl-to Item Entry, %2 is Item Ledger Entry No. and %3 is Transfer Line';\n \n [Test]\n [HandlerFunctions('MessageHandler')]\n@@ -3655,6 +3656,99 @@\n ItemLedgerEntry.TestField(\"Cost Amount (Actual)\", NewCost);\n end;\n \n+ [Test]\n+ [Scope('OnPrem')]\n+ [HandlerFunctions('PostedPurchaseReceiptsModalPageHandler,PostedPurchRcptLinesModalPageHandler')]\n+ procedure GetReceiptLinesShowListOfPostedPurchRcptsHavingTransferFromCodeInLocationCodeOfPurchRcptLines()\n+ var\n+ Item: Record Item;\n+ Vendor: Record Vendor;\n+ Location: Record Location;\n+ Location2: Record Location;\n+ Location3: Record Location;\n+ PurchaseHeader: Record \"Purchase Header\";\n+ PurchaseHeader2: Record \"Purchase Header\";\n+ PurchaseHeader3: Record \"Purchase Header\";\n+ PurchaseLine: Record \"Purchase Line\";\n+ PurchaseLine2: Record \"Purchase Line\";\n+ PurchaseLine3: Record \"Purchase Line\";\n+ ItemLedgerEntry: Record \"Item Ledger Entry\";\n+ TransferHeader: Record \"Transfer Header\";\n+ TransferLine: Record \"Transfer Line\";\n+ PurchRcptLine: Record \"Purch. Rcpt. Line\";\n+ ItemLedgerEntryNo: Integer;\n+ PurchaseReceiptNo: Code[20];\n+ TransferOrder: TestPage \"Transfer Order\";\n+ begin\n+ // [SCENARIO 500597] Get Receipt Lines action on Transfer Order shows list of Posted Purchase Receipts having Transfer-from Code in Location Code of Purch Rcpt Lines and after selecting it populates Appl-to Item Entry field in Transfer Lines.\n+ Initialize();\n+\n+ // [GIVEN] Create an Item and Validate Costing Method.\n+ LibraryInventory.CreateItem(Item);\n+ Item.Validate(\"Costing Method\", Item.\"Costing Method\"::FIFO);\n+ Item.Modify(true);\n+\n+ // [GIVEN] Create two Locations with Inventory Posting Setup.\n+ LibraryWarehouse.CreateLocationWithInventoryPostingSetup(Location);\n+ LibraryWarehouse.CreateLocationWithInventoryPostingSetup(Location2);\n+\n+ // [GIVEN] Create another Location with Inventory Posting Setup \n+ // And Validate Use As In-Transit.\n+ LibraryWarehouse.CreateLocationWithInventoryPostingSetup(Location3);\n+ Location3.Validate(\"Use As In-Transit\", true);\n+ Location3.Modify(true);\n+\n+ // [GIVEN] Create a Vendor.\n+ LibraryPurchase.CreateVendor(Vendor);\n+\n+ // [GIVEN] Create and Post Purchase Receipt with Location Code on Header.\n+ CreateAndPostPurchRcptWithLocationCodeInPurchHeader(PurchaseHeader, PurchaseLine, Vendor, Item, Location);\n+\n+ // [GIVEN] Create and Post Purchase Receipt 2 with Location Code on Header.\n+ CreateAndPostPurchRcptWithLocationCodeInPurchHeader(PurchaseHeader2, PurchaseLine2, Vendor, Item, Location);\n+\n+ // [GIVEN] Create and Post Purchase Receipt 3 with Location Code on Line.\n+ PurchaseReceiptNo := CreateAndPostPurchRcptWithLocationCodeInPurchLine(\n+ PurchaseHeader3,\n+ PurchaseLine3,\n+ Vendor,\n+ Item,\n+ Location);\n+\n+ // [GIVEN] Find and save Item Ledger Entry No. in a Variable.\n+ ItemLedgerEntry.SetRange(\"Document No.\", PurchaseReceiptNo);\n+ ItemLedgerEntry.FindFirst();\n+ ItemLedgerEntryNo := ItemLedgerEntry.\"Entry No.\";\n+\n+ // [GIVEN] Find Purch. Rcpt Line.\n+ FindRandomReceiptLine(PurchaseReceiptNo, PurchRcptLine);\n+\n+ // [GIVEN] Create Transfer Header.\n+ LibraryInventory.CreateTransferHeader(TransferHeader, Location.Code, Location2.Code, Location3.Code);\n+\n+ // [GIVEN] Open Transfer Order page and run Get Receipt Line action.\n+ TransferOrder.OpenEdit();\n+ TransferOrder.GoToRecord(TransferHeader);\n+ LibraryVariableStorage.Enqueue(PurchaseReceiptNo);\n+ LibraryVariableStorage.Enqueue(PurchaseReceiptNo);\n+ LibraryVariableStorage.Enqueue(PurchRcptLine.\"No.\");\n+ TransferOrder.GetReceiptLines.Invoke();\n+\n+ // [WHEN] Find Transfer Line.\n+ TransferLine.SetRange(\"Document No.\", TransferHeader.\"No.\");\n+ TransferLine.FindFirst();\n+\n+ // [VERIFY] Appl-to Item Entry and Item Ledger Entry No. are same.\n+ Assert.AreEqual(\n+ ItemLedgerEntryNo,\n+ TransferLine.\"Appl.-to Item Entry\",\n+ StrSubstNo(\n+ ApplToItemEntryErr,\n+ TransferLine.FieldCaption(\"Appl.-to Item Entry\"),\n+ ItemLedgerEntryNo,\n+ TransferLine.TableCaption));\n+ end;\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n@@ -5168,6 +5262,52 @@\n Assert.AreEqual(LineCount, TransferReceiptLine.Count(), '');\n end;\n \n+ local procedure CreateAndPostPurchRcptWithLocationCodeInPurchHeader(\n+ var PurchaseHeader: Record \"Purchase Header\";\n+ var PurchaseLine: Record \"Purchase Line\";\n+ Vendor: Record Vendor;\n+ Item: Record Item;\n+ Location: Record Location)\n+ begin\n+ LibraryPurchase.CreatePurchHeader(PurchaseHeader, PurchaseHeader.\"Document Type\"::Order, Vendor.\"No.\");\n+ PurchaseHeader.Validate(\"Location Code\", Location.Code);\n+ PurchaseHeader.Modify(true);\n+\n+ LibraryPurchase.CreatePurchaseLine(\n+ PurchaseLine,\n+ PurchaseHeader,\n+ PurchaseLine.Type::Item,\n+ Item.\"No.\",\n+ LibraryRandom.RandIntInRange(10, 10));\n+\n+ PurchaseLine.Validate(\"Direct Unit Cost\", LibraryRandom.RandInt(15000));\n+ PurchaseLine.Modify(true);\n+\n+ LibraryPurchase.PostPurchaseDocument(PurchaseHeader, true, false);\n+ end;\n+\n+ local procedure CreateAndPostPurchRcptWithLocationCodeInPurchLine(\n+ var PurchaseHeader: Record \"Purchase Header\";\n+ var PurchaseLine: Record \"Purchase Line\";\n+ Vendor: Record Vendor;\n+ Item: Record Item;\n+ Location: Record Location): Code[20]\n+ begin\n+ LibraryPurchase.CreatePurchHeader(PurchaseHeader, PurchaseHeader.\"Document Type\"::Order, Vendor.\"No.\");\n+ LibraryPurchase.CreatePurchaseLine(\n+ PurchaseLine,\n+ PurchaseHeader,\n+ PurchaseLine.Type::Item,\n+ Item.\"No.\",\n+ LibraryRandom.RandIntInRange(10, 10));\n+\n+ PurchaseLine.Validate(\"Location Code\", Location.Code);\n+ PurchaseLine.Validate(\"Direct Unit Cost\", LibraryRandom.RandInt(15000));\n+ PurchaseLine.Modify(true);\n+\n+ exit(LibraryPurchase.PostPurchaseDocument(PurchaseHeader, true, false));\n+ end;\n+\n [MessageHandler]\n [Scope('OnPrem')]\n procedure MessageHandler(Message: Text[1024])\n@@ -5394,5 +5534,19 @@\n // 0 = Item.Type::Inventory\n Assert.AreEqual('0', ItemList.Filter.GetFilter(\"Type\"), 'Item List contains non-inventory items.');\n end;\n+\n+ [ModalPageHandler]\n+ [Scope('OnPrem')]\n+ procedure PostedPurchRcptLinesModalPageHandler(var PostedPurchaseReceiptLines: Page \"Posted Purchase Receipt Lines\"; var Response: Action)\n+ var\n+ PurchRcptLine: Record \"Purch. Rcpt. Line\";\n+ begin\n+ PurchRcptLine.SetRange(\"Document No.\", LibraryVariableStorage.DequeueText());\n+ PurchRcptLine.SetRange(\"No.\", LibraryVariableStorage.DequeueText());\n+ PurchRcptLine.FindFirst();\n+ PostedPurchaseReceiptLines.SetRecord(PurchRcptLine);\n+\n+ Response := ACTION::LookupOK;\n+ end;\n }\n \n", "patch": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\nindex 5fe44b4568d1..c16ab8669925 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\n@@ -1376,6 +1376,8 @@ table 5740 \"Transfer Header\"\n PurchRcptLine.FilterPstdDocLnItemLedgEntries(ItemLedgerEntry);\n ItemTrackingDocMgt.CopyItemLedgerEntriesToTemp(TempItemLedgerEntry, ItemLedgerEntry);\n ItemTrackingMgt.CopyItemLedgEntryTrkgToTransferLine(TempItemLedgerEntry, TransferLine);\n+ TransferLine.\"Appl.-to Item Entry\" := ItemLedgerEntry.\"Entry No.\";\n+ TransferLine.Modify(true);\n \n OnAfterAddTransferLineFromReceiptLine(TransferLine, PurchRcptLine, TempItemLedgerEntry, Rec);\n end;\n@@ -1546,6 +1548,31 @@ table 5740 \"Transfer Header\"\n end;\n end;\n \n+ local procedure FindPurchRcptHeader(var PurchRcptHeader: Record \"Purch. Rcpt. Header\")\n+ var\n+ PurchRcptLine: Record \"Purch. Rcpt. Line\";\n+ DocumentNo: Code[20];\n+ begin\n+ PurchRcptLine.SetLoadFields(\"Document No.\", \"Location Code\");\n+ PurchRcptLine.SetCurrentKey(\"Document No.\");\n+ PurchRcptLine.SetRange(\"Location Code\", \"Transfer-from Code\");\n+ if PurchRcptLine.FindSet() then\n+ repeat\n+ GetPurchRcptHeader(PurchRcptHeader, PurchRcptLine, DocumentNo);\n+ until PurchRcptLine.Next() = 0;\n+ PurchRcptHeader.MarkedOnly(true);\n+ end;\n+\n+ local procedure GetPurchRcptHeader(var PurchRcptHeader: Record \"Purch. Rcpt. Header\"; PurchRcptLine: Record \"Purch. Rcpt. Line\"; var DocumentNo: Code[20])\n+ begin\n+ if PurchRcptLine.\"Document No.\" = DocumentNo then\n+ exit;\n+\n+ PurchRcptHeader.Get(PurchRcptLine.\"Document No.\");\n+ PurchRcptHeader.Mark(true);\n+ DocumentNo := PurchRcptLine.\"Document No.\";\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnAddTransferLineFromReceiptLineOnBeforeTransferLineInsert(var TransferLine: Record \"Transfer Line\"; PurchRcptLine: Record \"Purch. Rcpt. Line\"; var TransferHeader: Record \"Transfer Header\")\n begin\n"} +{"instance_id": "microsoftInternal__NAV-176082__cf-2", "base_instance_id": "microsoftInternal__NAV-176082", "variant_description": "Receipt lines where line location differs from header location are excluded", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-176082__cf-2", "FAIL_TO_PASS": [{"codeunitID": 137038, "functionName": ["GetReceiptLinesShowListOfPostedPurchRcptsHavingTransferFromCodeInLocationCodeOfPurchRcptLines"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM/SCMTransfers.Codeunit.al b/App/Layers/W1/Tests/SCM/SCMTransfers.Codeunit.al\nindex e0b3ba5f0bf7..ffa98cfbb351 100644\n--- a/App/Layers/W1/Tests/SCM/SCMTransfers.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM/SCMTransfers.Codeunit.al\n@@ -48,6 +48,7 @@\n UndoneTransLineQtyErr: Label 'Expected Quantity to be 0 after Transfer Shipment was undone';\n DerivedTransLineErr: Label 'Expected no Derived Transfer Line i.e. line with \"Derived From Line No.\" equal to original transfer line.';\n IncorrectSNUndoneErr: Label 'The Serial No. of the item on the transfer shipment line that was undone was different from the SN on the corresponding transfer line.';\n+ ApplToItemEntryErr: Label '%1 must be %2 in %3.', Comment = '%1 is Appl-to Item Entry, %2 is Item Ledger Entry No. and %3 is Transfer Line';\n \n [Test]\n [HandlerFunctions('MessageHandler')]\n@@ -3655,6 +3656,99 @@\n ItemLedgerEntry.TestField(\"Cost Amount (Actual)\", NewCost);\n end;\n \n+ [Test]\n+ [Scope('OnPrem')]\n+ [HandlerFunctions('PostedPurchaseReceiptsModalPageHandler,PostedPurchRcptLinesModalPageHandler')]\n+ procedure GetReceiptLinesShowListOfPostedPurchRcptsHavingTransferFromCodeInLocationCodeOfPurchRcptLines()\n+ var\n+ Item: Record Item;\n+ Vendor: Record Vendor;\n+ Location: Record Location;\n+ Location2: Record Location;\n+ Location3: Record Location;\n+ PurchaseHeader: Record \"Purchase Header\";\n+ PurchaseHeader2: Record \"Purchase Header\";\n+ PurchaseHeader3: Record \"Purchase Header\";\n+ PurchaseLine: Record \"Purchase Line\";\n+ PurchaseLine2: Record \"Purchase Line\";\n+ PurchaseLine3: Record \"Purchase Line\";\n+ ItemLedgerEntry: Record \"Item Ledger Entry\";\n+ TransferHeader: Record \"Transfer Header\";\n+ TransferLine: Record \"Transfer Line\";\n+ PurchRcptLine: Record \"Purch. Rcpt. Line\";\n+ ItemLedgerEntryNo: Integer;\n+ PurchaseReceiptNo: Code[20];\n+ TransferOrder: TestPage \"Transfer Order\";\n+ begin\n+ // [SCENARIO 500597] Get Receipt Lines action on Transfer Order shows list of Posted Purchase Receipts having Transfer-from Code in Location Code of Purch Rcpt Lines and after selecting it populates Appl-to Item Entry field in Transfer Lines.\n+ Initialize();\n+\n+ // [GIVEN] Create an Item and Validate Costing Method.\n+ LibraryInventory.CreateItem(Item);\n+ Item.Validate(\"Costing Method\", Item.\"Costing Method\"::FIFO);\n+ Item.Modify(true);\n+\n+ // [GIVEN] Create two Locations with Inventory Posting Setup.\n+ LibraryWarehouse.CreateLocationWithInventoryPostingSetup(Location);\n+ LibraryWarehouse.CreateLocationWithInventoryPostingSetup(Location2);\n+\n+ // [GIVEN] Create another Location with Inventory Posting Setup \n+ // And Validate Use As In-Transit.\n+ LibraryWarehouse.CreateLocationWithInventoryPostingSetup(Location3);\n+ Location3.Validate(\"Use As In-Transit\", true);\n+ Location3.Modify(true);\n+\n+ // [GIVEN] Create a Vendor.\n+ LibraryPurchase.CreateVendor(Vendor);\n+\n+ // [GIVEN] Create and Post Purchase Receipt with Location Code on Header.\n+ CreateAndPostPurchRcptWithLocationCodeInPurchHeader(PurchaseHeader, PurchaseLine, Vendor, Item, Location);\n+\n+ // [GIVEN] Create and Post Purchase Receipt 2 with Location Code on Header.\n+ CreateAndPostPurchRcptWithLocationCodeInPurchHeader(PurchaseHeader2, PurchaseLine2, Vendor, Item, Location);\n+\n+ // [GIVEN] Create and Post Purchase Receipt 3 with Location Code on Line.\n+ PurchaseReceiptNo := CreateAndPostPurchRcptWithLocationCodeInPurchLine(\n+ PurchaseHeader3,\n+ PurchaseLine3,\n+ Vendor,\n+ Item,\n+ Location);\n+\n+ // [GIVEN] Find and save Item Ledger Entry No. in a Variable.\n+ ItemLedgerEntry.SetRange(\"Document No.\", PurchaseReceiptNo);\n+ ItemLedgerEntry.FindFirst();\n+ ItemLedgerEntryNo := ItemLedgerEntry.\"Entry No.\";\n+\n+ // [GIVEN] Find Purch. Rcpt Line.\n+ FindRandomReceiptLine(PurchaseReceiptNo, PurchRcptLine);\n+\n+ // [GIVEN] Create Transfer Header.\n+ LibraryInventory.CreateTransferHeader(TransferHeader, Location.Code, Location2.Code, Location3.Code);\n+\n+ // [GIVEN] Open Transfer Order page and run Get Receipt Line action.\n+ TransferOrder.OpenEdit();\n+ TransferOrder.GoToRecord(TransferHeader);\n+ LibraryVariableStorage.Enqueue(PurchaseReceiptNo);\n+ LibraryVariableStorage.Enqueue(PurchaseReceiptNo);\n+ LibraryVariableStorage.Enqueue(PurchRcptLine.\"No.\");\n+ TransferOrder.GetReceiptLines.Invoke();\n+\n+ // [WHEN] Find Transfer Line.\n+ TransferLine.SetRange(\"Document No.\", TransferHeader.\"No.\");\n+ TransferLine.FindFirst();\n+\n+ // [VERIFY] Appl-to Item Entry and Item Ledger Entry No. are same.\n+ Assert.AreEqual(\n+ ItemLedgerEntryNo,\n+ TransferLine.\"Appl.-to Item Entry\",\n+ StrSubstNo(\n+ ApplToItemEntryErr,\n+ TransferLine.FieldCaption(\"Appl.-to Item Entry\"),\n+ ItemLedgerEntryNo,\n+ TransferLine.TableCaption));\n+ end;\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n@@ -5168,6 +5262,52 @@\n Assert.AreEqual(LineCount, TransferReceiptLine.Count(), '');\n end;\n \n+ local procedure CreateAndPostPurchRcptWithLocationCodeInPurchHeader(\n+ var PurchaseHeader: Record \"Purchase Header\";\n+ var PurchaseLine: Record \"Purchase Line\";\n+ Vendor: Record Vendor;\n+ Item: Record Item;\n+ Location: Record Location)\n+ begin\n+ LibraryPurchase.CreatePurchHeader(PurchaseHeader, PurchaseHeader.\"Document Type\"::Order, Vendor.\"No.\");\n+ PurchaseHeader.Validate(\"Location Code\", Location.Code);\n+ PurchaseHeader.Modify(true);\n+\n+ LibraryPurchase.CreatePurchaseLine(\n+ PurchaseLine,\n+ PurchaseHeader,\n+ PurchaseLine.Type::Item,\n+ Item.\"No.\",\n+ LibraryRandom.RandIntInRange(10, 10));\n+\n+ PurchaseLine.Validate(\"Direct Unit Cost\", LibraryRandom.RandInt(15000));\n+ PurchaseLine.Modify(true);\n+\n+ LibraryPurchase.PostPurchaseDocument(PurchaseHeader, true, false);\n+ end;\n+\n+ local procedure CreateAndPostPurchRcptWithLocationCodeInPurchLine(\n+ var PurchaseHeader: Record \"Purchase Header\";\n+ var PurchaseLine: Record \"Purchase Line\";\n+ Vendor: Record Vendor;\n+ Item: Record Item;\n+ Location: Record Location): Code[20]\n+ begin\n+ LibraryPurchase.CreatePurchHeader(PurchaseHeader, PurchaseHeader.\"Document Type\"::Order, Vendor.\"No.\");\n+ LibraryPurchase.CreatePurchaseLine(\n+ PurchaseLine,\n+ PurchaseHeader,\n+ PurchaseLine.Type::Item,\n+ Item.\"No.\",\n+ LibraryRandom.RandIntInRange(10, 10));\n+\n+ PurchaseLine.Validate(\"Location Code\", Location.Code);\n+ PurchaseLine.Validate(\"Direct Unit Cost\", LibraryRandom.RandInt(15000));\n+ PurchaseLine.Modify(true);\n+\n+ exit(LibraryPurchase.PostPurchaseDocument(PurchaseHeader, true, false));\n+ end;\n+\n [MessageHandler]\n [Scope('OnPrem')]\n procedure MessageHandler(Message: Text[1024])\n@@ -5394,5 +5534,19 @@\n // 0 = Item.Type::Inventory\n Assert.AreEqual('0', ItemList.Filter.GetFilter(\"Type\"), 'Item List contains non-inventory items.');\n end;\n+\n+ [ModalPageHandler]\n+ [Scope('OnPrem')]\n+ procedure PostedPurchRcptLinesModalPageHandler(var PostedPurchaseReceiptLines: Page \"Posted Purchase Receipt Lines\"; var Response: Action)\n+ var\n+ PurchRcptLine: Record \"Purch. Rcpt. Line\";\n+ begin\n+ PurchRcptLine.SetRange(\"Document No.\", LibraryVariableStorage.DequeueText());\n+ PurchRcptLine.SetRange(\"No.\", LibraryVariableStorage.DequeueText());\n+ PurchRcptLine.FindFirst();\n+ PostedPurchaseReceiptLines.SetRecord(PurchRcptLine);\n+\n+ Response := ACTION::LookupOK;\n+ end;\n }\n \n", "patch": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\nindex 5fe44b4568d1..c16ab8669925 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\n@@ -1304,7 +1304,7 @@ table 5740 \"Transfer Header\"\n TempPurchRcptHeader: Record \"Purch. Rcpt. Header\" temporary;\n PostedPurchaseReceipts: Page \"Posted Purchase Receipts\";\n begin\n- PurchRcptHeader.SetRange(\"Location Code\", \"Transfer-from Code\");\n+ FindPurchRcptHeader(PurchRcptHeader);\n PostedPurchaseReceipts.SetTableView(PurchRcptHeader);\n PostedPurchaseReceipts.LookupMode := true;\n if PostedPurchaseReceipts.RunModal() = ACTION::LookupOK then begin\n@@ -1376,6 +1376,8 @@ table 5740 \"Transfer Header\"\n PurchRcptLine.FilterPstdDocLnItemLedgEntries(ItemLedgerEntry);\n ItemTrackingDocMgt.CopyItemLedgerEntriesToTemp(TempItemLedgerEntry, ItemLedgerEntry);\n ItemTrackingMgt.CopyItemLedgEntryTrkgToTransferLine(TempItemLedgerEntry, TransferLine);\n+ TransferLine.\"Appl.-to Item Entry\" := ItemLedgerEntry.\"Entry No.\";\n+ TransferLine.Modify(true);\n \n OnAfterAddTransferLineFromReceiptLine(TransferLine, PurchRcptLine, TempItemLedgerEntry, Rec);\n end;\n@@ -1546,6 +1548,33 @@ table 5740 \"Transfer Header\"\n end;\n end;\n \n+ local procedure FindPurchRcptHeader(var PurchRcptHeader: Record \"Purch. Rcpt. Header\")\n+ var\n+ PurchRcptLine: Record \"Purch. Rcpt. Line\";\n+ DocumentNo: Code[20];\n+ begin\n+ PurchRcptLine.SetLoadFields(\"Document No.\", \"Location Code\");\n+ PurchRcptLine.SetCurrentKey(\"Document No.\");\n+ PurchRcptLine.SetRange(\"Location Code\", \"Transfer-from Code\");\n+ if PurchRcptLine.FindSet() then\n+ repeat\n+ GetPurchRcptHeader(PurchRcptHeader, PurchRcptLine, DocumentNo);\n+ until PurchRcptLine.Next() = 0;\n+ PurchRcptHeader.MarkedOnly(true);\n+ end;\n+\n+ local procedure GetPurchRcptHeader(var PurchRcptHeader: Record \"Purch. Rcpt. Header\"; PurchRcptLine: Record \"Purch. Rcpt. Line\"; var DocumentNo: Code[20])\n+ begin\n+ if PurchRcptLine.\"Document No.\" = DocumentNo then\n+ exit;\n+\n+ PurchRcptHeader.Get(PurchRcptLine.\"Document No.\");\n+ if PurchRcptLine.\"Location Code\" <> PurchRcptHeader.\"Location Code\" then\n+ exit;\n+ PurchRcptHeader.Mark(true);\n+ DocumentNo := PurchRcptLine.\"Document No.\";\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnAddTransferLineFromReceiptLineOnBeforeTransferLineInsert(var TransferLine: Record \"Transfer Line\"; PurchRcptLine: Record \"Purch. Rcpt. Line\"; var TransferHeader: Record \"Transfer Header\")\n begin\n"} +{"instance_id": "microsoftInternal__NAV-176082__cf-3", "base_instance_id": "microsoftInternal__NAV-176082", "variant_description": "Appl.-to Item Entry saved without validation using Modify(false)", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-176082__cf-3", "FAIL_TO_PASS": [{"codeunitID": 137038, "functionName": ["GetReceiptLinesShowListOfPostedPurchRcptsHavingTransferFromCodeInLocationCodeOfPurchRcptLines"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM/SCMTransfers.Codeunit.al b/App/Layers/W1/Tests/SCM/SCMTransfers.Codeunit.al\nindex e0b3ba5f0bf7..ffa98cfbb351 100644\n--- a/App/Layers/W1/Tests/SCM/SCMTransfers.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM/SCMTransfers.Codeunit.al\n@@ -48,6 +48,7 @@\n UndoneTransLineQtyErr: Label 'Expected Quantity to be 0 after Transfer Shipment was undone';\n DerivedTransLineErr: Label 'Expected no Derived Transfer Line i.e. line with \"Derived From Line No.\" equal to original transfer line.';\n IncorrectSNUndoneErr: Label 'The Serial No. of the item on the transfer shipment line that was undone was different from the SN on the corresponding transfer line.';\n+ ApplToItemEntryErr: Label '%1 must be %2 in %3.', Comment = '%1 is Appl-to Item Entry, %2 is Item Ledger Entry No. and %3 is Transfer Line';\n \n [Test]\n [HandlerFunctions('MessageHandler')]\n@@ -3655,6 +3656,99 @@\n ItemLedgerEntry.TestField(\"Cost Amount (Actual)\", NewCost);\n end;\n \n+ [Test]\n+ [Scope('OnPrem')]\n+ [HandlerFunctions('PostedPurchaseReceiptsModalPageHandler,PostedPurchRcptLinesModalPageHandler')]\n+ procedure GetReceiptLinesShowListOfPostedPurchRcptsHavingTransferFromCodeInLocationCodeOfPurchRcptLines()\n+ var\n+ Item: Record Item;\n+ Vendor: Record Vendor;\n+ Location: Record Location;\n+ Location2: Record Location;\n+ Location3: Record Location;\n+ PurchaseHeader: Record \"Purchase Header\";\n+ PurchaseHeader2: Record \"Purchase Header\";\n+ PurchaseHeader3: Record \"Purchase Header\";\n+ PurchaseLine: Record \"Purchase Line\";\n+ PurchaseLine2: Record \"Purchase Line\";\n+ PurchaseLine3: Record \"Purchase Line\";\n+ ItemLedgerEntry: Record \"Item Ledger Entry\";\n+ TransferHeader: Record \"Transfer Header\";\n+ TransferLine: Record \"Transfer Line\";\n+ PurchRcptLine: Record \"Purch. Rcpt. Line\";\n+ ItemLedgerEntryNo: Integer;\n+ PurchaseReceiptNo: Code[20];\n+ TransferOrder: TestPage \"Transfer Order\";\n+ begin\n+ // [SCENARIO 500597] Get Receipt Lines action on Transfer Order shows list of Posted Purchase Receipts having Transfer-from Code in Location Code of Purch Rcpt Lines and after selecting it populates Appl-to Item Entry field in Transfer Lines.\n+ Initialize();\n+\n+ // [GIVEN] Create an Item and Validate Costing Method.\n+ LibraryInventory.CreateItem(Item);\n+ Item.Validate(\"Costing Method\", Item.\"Costing Method\"::FIFO);\n+ Item.Modify(true);\n+\n+ // [GIVEN] Create two Locations with Inventory Posting Setup.\n+ LibraryWarehouse.CreateLocationWithInventoryPostingSetup(Location);\n+ LibraryWarehouse.CreateLocationWithInventoryPostingSetup(Location2);\n+\n+ // [GIVEN] Create another Location with Inventory Posting Setup \n+ // And Validate Use As In-Transit.\n+ LibraryWarehouse.CreateLocationWithInventoryPostingSetup(Location3);\n+ Location3.Validate(\"Use As In-Transit\", true);\n+ Location3.Modify(true);\n+\n+ // [GIVEN] Create a Vendor.\n+ LibraryPurchase.CreateVendor(Vendor);\n+\n+ // [GIVEN] Create and Post Purchase Receipt with Location Code on Header.\n+ CreateAndPostPurchRcptWithLocationCodeInPurchHeader(PurchaseHeader, PurchaseLine, Vendor, Item, Location);\n+\n+ // [GIVEN] Create and Post Purchase Receipt 2 with Location Code on Header.\n+ CreateAndPostPurchRcptWithLocationCodeInPurchHeader(PurchaseHeader2, PurchaseLine2, Vendor, Item, Location);\n+\n+ // [GIVEN] Create and Post Purchase Receipt 3 with Location Code on Line.\n+ PurchaseReceiptNo := CreateAndPostPurchRcptWithLocationCodeInPurchLine(\n+ PurchaseHeader3,\n+ PurchaseLine3,\n+ Vendor,\n+ Item,\n+ Location);\n+\n+ // [GIVEN] Find and save Item Ledger Entry No. in a Variable.\n+ ItemLedgerEntry.SetRange(\"Document No.\", PurchaseReceiptNo);\n+ ItemLedgerEntry.FindFirst();\n+ ItemLedgerEntryNo := ItemLedgerEntry.\"Entry No.\";\n+\n+ // [GIVEN] Find Purch. Rcpt Line.\n+ FindRandomReceiptLine(PurchaseReceiptNo, PurchRcptLine);\n+\n+ // [GIVEN] Create Transfer Header.\n+ LibraryInventory.CreateTransferHeader(TransferHeader, Location.Code, Location2.Code, Location3.Code);\n+\n+ // [GIVEN] Open Transfer Order page and run Get Receipt Line action.\n+ TransferOrder.OpenEdit();\n+ TransferOrder.GoToRecord(TransferHeader);\n+ LibraryVariableStorage.Enqueue(PurchaseReceiptNo);\n+ LibraryVariableStorage.Enqueue(PurchaseReceiptNo);\n+ LibraryVariableStorage.Enqueue(PurchRcptLine.\"No.\");\n+ TransferOrder.GetReceiptLines.Invoke();\n+\n+ // [WHEN] Find Transfer Line.\n+ TransferLine.SetRange(\"Document No.\", TransferHeader.\"No.\");\n+ TransferLine.FindFirst();\n+\n+ // [VERIFY] Appl-to Item Entry and Item Ledger Entry No. are same.\n+ Assert.AreEqual(\n+ ItemLedgerEntryNo,\n+ TransferLine.\"Appl.-to Item Entry\",\n+ StrSubstNo(\n+ ApplToItemEntryErr,\n+ TransferLine.FieldCaption(\"Appl.-to Item Entry\"),\n+ ItemLedgerEntryNo,\n+ TransferLine.TableCaption));\n+ end;\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n@@ -5168,6 +5262,52 @@\n Assert.AreEqual(LineCount, TransferReceiptLine.Count(), '');\n end;\n \n+ local procedure CreateAndPostPurchRcptWithLocationCodeInPurchHeader(\n+ var PurchaseHeader: Record \"Purchase Header\";\n+ var PurchaseLine: Record \"Purchase Line\";\n+ Vendor: Record Vendor;\n+ Item: Record Item;\n+ Location: Record Location)\n+ begin\n+ LibraryPurchase.CreatePurchHeader(PurchaseHeader, PurchaseHeader.\"Document Type\"::Order, Vendor.\"No.\");\n+ PurchaseHeader.Validate(\"Location Code\", Location.Code);\n+ PurchaseHeader.Modify(true);\n+\n+ LibraryPurchase.CreatePurchaseLine(\n+ PurchaseLine,\n+ PurchaseHeader,\n+ PurchaseLine.Type::Item,\n+ Item.\"No.\",\n+ LibraryRandom.RandIntInRange(10, 10));\n+\n+ PurchaseLine.Validate(\"Direct Unit Cost\", LibraryRandom.RandInt(15000));\n+ PurchaseLine.Modify(true);\n+\n+ LibraryPurchase.PostPurchaseDocument(PurchaseHeader, true, false);\n+ end;\n+\n+ local procedure CreateAndPostPurchRcptWithLocationCodeInPurchLine(\n+ var PurchaseHeader: Record \"Purchase Header\";\n+ var PurchaseLine: Record \"Purchase Line\";\n+ Vendor: Record Vendor;\n+ Item: Record Item;\n+ Location: Record Location): Code[20]\n+ begin\n+ LibraryPurchase.CreatePurchHeader(PurchaseHeader, PurchaseHeader.\"Document Type\"::Order, Vendor.\"No.\");\n+ LibraryPurchase.CreatePurchaseLine(\n+ PurchaseLine,\n+ PurchaseHeader,\n+ PurchaseLine.Type::Item,\n+ Item.\"No.\",\n+ LibraryRandom.RandIntInRange(10, 10));\n+\n+ PurchaseLine.Validate(\"Location Code\", Location.Code);\n+ PurchaseLine.Validate(\"Direct Unit Cost\", LibraryRandom.RandInt(15000));\n+ PurchaseLine.Modify(true);\n+\n+ exit(LibraryPurchase.PostPurchaseDocument(PurchaseHeader, true, false));\n+ end;\n+\n [MessageHandler]\n [Scope('OnPrem')]\n procedure MessageHandler(Message: Text[1024])\n@@ -5394,5 +5534,19 @@\n // 0 = Item.Type::Inventory\n Assert.AreEqual('0', ItemList.Filter.GetFilter(\"Type\"), 'Item List contains non-inventory items.');\n end;\n+\n+ [ModalPageHandler]\n+ [Scope('OnPrem')]\n+ procedure PostedPurchRcptLinesModalPageHandler(var PostedPurchaseReceiptLines: Page \"Posted Purchase Receipt Lines\"; var Response: Action)\n+ var\n+ PurchRcptLine: Record \"Purch. Rcpt. Line\";\n+ begin\n+ PurchRcptLine.SetRange(\"Document No.\", LibraryVariableStorage.DequeueText());\n+ PurchRcptLine.SetRange(\"No.\", LibraryVariableStorage.DequeueText());\n+ PurchRcptLine.FindFirst();\n+ PostedPurchaseReceiptLines.SetRecord(PurchRcptLine);\n+\n+ Response := ACTION::LookupOK;\n+ end;\n }\n \n", "patch": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\nindex 5fe44b4568d1..c16ab8669925 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\n@@ -1304,7 +1304,7 @@ table 5740 \"Transfer Header\"\n TempPurchRcptHeader: Record \"Purch. Rcpt. Header\" temporary;\n PostedPurchaseReceipts: Page \"Posted Purchase Receipts\";\n begin\n- PurchRcptHeader.SetRange(\"Location Code\", \"Transfer-from Code\");\n+ FindPurchRcptHeader(PurchRcptHeader);\n PostedPurchaseReceipts.SetTableView(PurchRcptHeader);\n PostedPurchaseReceipts.LookupMode := true;\n if PostedPurchaseReceipts.RunModal() = ACTION::LookupOK then begin\n@@ -1376,6 +1376,8 @@ table 5740 \"Transfer Header\"\n PurchRcptLine.FilterPstdDocLnItemLedgEntries(ItemLedgerEntry);\n ItemTrackingDocMgt.CopyItemLedgerEntriesToTemp(TempItemLedgerEntry, ItemLedgerEntry);\n ItemTrackingMgt.CopyItemLedgEntryTrkgToTransferLine(TempItemLedgerEntry, TransferLine);\n+ TransferLine.\"Appl.-to Item Entry\" := ItemLedgerEntry.\"Entry No.\";\n+ TransferLine.Modify(false);\n \n OnAfterAddTransferLineFromReceiptLine(TransferLine, PurchRcptLine, TempItemLedgerEntry, Rec);\n end;\n@@ -1546,6 +1548,31 @@ table 5740 \"Transfer Header\"\n end;\n end;\n \n+ local procedure FindPurchRcptHeader(var PurchRcptHeader: Record \"Purch. Rcpt. Header\")\n+ var\n+ PurchRcptLine: Record \"Purch. Rcpt. Line\";\n+ DocumentNo: Code[20];\n+ begin\n+ PurchRcptLine.SetLoadFields(\"Document No.\", \"Location Code\");\n+ PurchRcptLine.SetCurrentKey(\"Document No.\");\n+ PurchRcptLine.SetRange(\"Location Code\", \"Transfer-from Code\");\n+ if PurchRcptLine.FindSet() then\n+ repeat\n+ GetPurchRcptHeader(PurchRcptHeader, PurchRcptLine, DocumentNo);\n+ until PurchRcptLine.Next() = 0;\n+ PurchRcptHeader.MarkedOnly(true);\n+ end;\n+\n+ local procedure GetPurchRcptHeader(var PurchRcptHeader: Record \"Purch. Rcpt. Header\"; PurchRcptLine: Record \"Purch. Rcpt. Line\"; var DocumentNo: Code[20])\n+ begin\n+ if PurchRcptLine.\"Document No.\" = DocumentNo then\n+ exit;\n+\n+ PurchRcptHeader.Get(PurchRcptLine.\"Document No.\");\n+ PurchRcptHeader.Mark(true);\n+ DocumentNo := PurchRcptLine.\"Document No.\";\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnAddTransferLineFromReceiptLineOnBeforeTransferLineInsert(var TransferLine: Record \"Transfer Line\"; PurchRcptLine: Record \"Purch. Rcpt. Line\"; var TransferHeader: Record \"Transfer Header\")\n begin\n"} +{"instance_id": "microsoftInternal__NAV-176150__cf-1", "base_instance_id": "microsoftInternal__NAV-176150", "variant_description": "Preview Posting filters by Production Order No. only instead of full page context", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-176150__cf-1", "FAIL_TO_PASS": [{"codeunitID": 137072, "functionName": ["PreviewPostingOfProductionJournalPostsCorrectConsumptionILE"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM/SCMProductionOrdersII.Codeunit.al b/App/Layers/W1/Tests/SCM/SCMProductionOrdersII.Codeunit.al\n--- a/App/Layers/W1/Tests/SCM/SCMProductionOrdersII.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM/SCMProductionOrdersII.Codeunit.al\n@@ -67,6 +67,7 @@ codeunit 137072 \"SCM Production Orders II\"\n TimeShiftedOnParentLineMsg: Label 'The production starting date-time of the end item has been moved forward because a subassembly is taking longer than planned.';\n DateConflictInReservErr: Label 'The change leads to a date conflict with existing reservations.';\n QuantityErr: Label '%1 must be %2 in %3', Comment = '%1: Quantity, %2: Consumption Quantity Value, %3: Item Ledger Entry';\n+ ILENoOfRecordsMustNotBeZeroErr: Label 'Item Ledger Entry No. of Records must not be zero.';\n \n [Test]\n [Scope('OnPrem')]\n@@ -4312,6 +4313,59 @@ codeunit 137072 \"SCM Production Orders II\"\n ItemLedgerEntry.TableCaption()));\n end;\n \n+ [Test]\n+ [Scope('OnPrem')]\n+ [HandlerFunctions('ProductionJournalPageHandler,GLPostingPreviewPageHandler')]\n+ procedure PreviewPostingOfProductionJournalPostsCorrectConsumptionILE()\n+ var\n+ Item, Item2 : Record Item;\n+ ProductionOrder, ProductionOrder2 : Record \"Production Order\";\n+ ItemJournalLine: Record \"Item Journal Line\";\n+ ReleasedProdOrder: TestPage \"Released Production Order\";\n+ begin\n+ // [SCENARIO 501883] When Preview Post or Post Production Journal From a Released Production Order, it creates correct Item Ledger Entries even if there is a Consumption Journal Line of completely different Production Order No. in Consumption Journal.\n+ Initialize();\n+\n+ // [GIVEN] Create Item.\n+ LibraryInventory.CreateItem(Item);\n+\n+ // [GIVEN] Create and Refresh Production Order.\n+ CreateAndRefreshProductionOrder(\n+ ProductionOrder,\n+ ProductionOrder.Status::Released,\n+ Item.\"No.\",\n+ LibraryRandom.RandIntInRange(10, 10),\n+ '',\n+ '');\n+\n+ // [GIVEN] Create Item 2.\n+ LibraryInventory.CreateItem(Item2);\n+\n+ // [GIVEN] Create and Refresh Production Order 2.\n+ CreateAndRefreshProductionOrder(\n+ ProductionOrder2,\n+ ProductionOrder2.Status::Released,\n+ Item2.\"No.\",\n+ LibraryRandom.RandIntInRange(10, 10),\n+ '',\n+ '');\n+\n+ // [GIVEN] Create Consumption Journal Line for Production Order 2.\n+ CreateConsumptionJournalLine(\n+ ItemJournalLine,\n+ ProductionOrder2.\"No.\",\n+ Item2.\"No.\",\n+ LibraryRandom.RandIntInRange(10, 10));\n+\n+ // [WHEN] Open Released Production Order page and run Production Journal action.\n+ ReleasedProdOrder.OpenEdit();\n+ ReleasedProdOrder.GoToRecord(ProductionOrder);\n+ ReleasedProdOrder.ProdOrderLines.ProductionJournal.Invoke();\n+\n+ // [VERIFY] Item Ledger Entry No. of Records in Posting Preview is not zero.\n+ Assert.AreNotEqual(0, LibraryVariableStorage.DequeueInteger(), ILENoOfRecordsMustNotBeZeroErr);\n+ end;\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n@@ -6045,6 +6099,43 @@ codeunit 137072 \"SCM Production Orders II\"\n LibraryManufacturing.UpdateRoutingStatus(RoutingHeader, RoutingHeader.Status::Certified);\n end;\n \n+ local procedure CreateConsumptionJournalLine(\n+ var ItemJournalLine: Record \"Item Journal Line\";\n+ ProdOrderNo: Code[20];\n+ ItemNo: Code[20];\n+ Qty: Decimal)\n+ var\n+ ItemJnlTemplate: Record \"Item Journal Template\";\n+ ItemJnlBatch: Record \"Item Journal Batch\";\n+ begin\n+ InitItemJournalBatch(ItemJnlBatch, ItemJnlBatch.\"Template Type\"::Consumption);\n+ ItemJournalLine.Init();\n+ ItemJournalLine.\"Entry Type\" := ItemJournalLine.\"Entry Type\"::Consumption;\n+\n+ ItemJnlTemplate.Get(ItemJnlBatch.\"Journal Template Name\");\n+ LibraryInventory.CreateItemJnlLineWithNoItem(\n+ ItemJournalLine,\n+ ItemJnlBatch,\n+ ItemJnlTemplate.Name,\n+ ItemJnlBatch.Name,\n+ ItemJournalLine.\"Entry Type\"::Consumption);\n+\n+ ItemJournalLine.Validate(\"Order Type\", ItemJournalLine.\"Order Type\"::Production);\n+ ItemJournalLine.Validate(\"Order No.\", ProdOrderNo);\n+ ItemJournalLine.Validate(\"Item No.\", ItemNo);\n+ ItemJournalLine.Validate(Quantity, Qty);\n+ ItemJournalLine.Modify(true);\n+ end;\n+\n+ local procedure InitItemJournalBatch(var ItemJnlBatch: Record \"Item Journal Batch\"; TemplateType: Enum \"Item Journal Template Type\")\n+ var\n+ ItemJnlTemplate: Record \"Item Journal Template\";\n+ begin\n+ LibraryInventory.SelectItemJournalTemplateName(ItemJnlTemplate, TemplateType);\n+ LibraryInventory.SelectItemJournalBatchName(ItemJnlBatch, TemplateType, ItemJnlTemplate.Name);\n+ LibraryInventory.ClearItemJournal(ItemJnlTemplate, ItemJnlBatch);\n+ end;\n+\n [ModalPageHandler]\n procedure ProductionJournalModalPageHandler(var ProductionJournal: TestPage \"Production Journal\")\n begin\n@@ -6143,6 +6234,21 @@ codeunit 137072 \"SCM Production Orders II\"\n ProductionJournal.Post.Invoke();\n end;\n \n+ [ModalPageHandler]\n+ [Scope('OnPrem')]\n+ procedure ProductionJournalPageHandler(var ProductionJournal: TestPage \"Production Journal\")\n+ begin\n+ ProductionJournal.PreviewPosting.Invoke();\n+ end;\n+\n+ [PageHandler]\n+ [Scope('OnPrem')]\n+ procedure GLPostingPreviewPageHandler(var ShowAllEntries: TestPage \"G/L Posting Preview\")\n+ begin\n+ ShowAllEntries.Filter.SetFilter(\"Table Name\", 'Item Ledger Entry');\n+ LibraryVariableStorage.Enqueue(ShowAllEntries.\"No. of Records\".AsInteger());\n+ end;\n+\n [MessageHandler]\n [Scope('OnPrem')]\n procedure MessageHandler(Message: Text[1024])\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al b/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\n--- a/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\n@@ -1015,7 +1015,7 @@ page 5510 \"Production Journal\"\n \n protected procedure MarkRelevantRec(var ItemJournalLine: Record \"Item Journal Line\")\n begin\n- ItemJournalLine := Rec;\n+ ItemJournalLine.SetRange(\"Order No.\", Rec.\"Order No.\");\n if ItemJournalLine.FindSet() then begin\n repeat\n case ItemJournalLine.\"Entry Type\" of\n"} +{"instance_id": "microsoftInternal__NAV-176150__cf-2", "base_instance_id": "microsoftInternal__NAV-176150", "variant_description": "Preview Posting filters by Item No. only instead of full page context", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-176150__cf-2", "FAIL_TO_PASS": [{"codeunitID": 137072, "functionName": ["PreviewPostingOfProductionJournalPostsCorrectConsumptionILE"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM/SCMProductionOrdersII.Codeunit.al b/App/Layers/W1/Tests/SCM/SCMProductionOrdersII.Codeunit.al\n--- a/App/Layers/W1/Tests/SCM/SCMProductionOrdersII.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM/SCMProductionOrdersII.Codeunit.al\n@@ -67,6 +67,7 @@ codeunit 137072 \"SCM Production Orders II\"\n TimeShiftedOnParentLineMsg: Label 'The production starting date-time of the end item has been moved forward because a subassembly is taking longer than planned.';\n DateConflictInReservErr: Label 'The change leads to a date conflict with existing reservations.';\n QuantityErr: Label '%1 must be %2 in %3', Comment = '%1: Quantity, %2: Consumption Quantity Value, %3: Item Ledger Entry';\n+ ILENoOfRecordsMustNotBeZeroErr: Label 'Item Ledger Entry No. of Records must not be zero.';\n \n [Test]\n [Scope('OnPrem')]\n@@ -4312,6 +4313,59 @@ codeunit 137072 \"SCM Production Orders II\"\n ItemLedgerEntry.TableCaption()));\n end;\n \n+ [Test]\n+ [Scope('OnPrem')]\n+ [HandlerFunctions('ProductionJournalPageHandler,GLPostingPreviewPageHandler')]\n+ procedure PreviewPostingOfProductionJournalPostsCorrectConsumptionILE()\n+ var\n+ Item, Item2 : Record Item;\n+ ProductionOrder, ProductionOrder2 : Record \"Production Order\";\n+ ItemJournalLine: Record \"Item Journal Line\";\n+ ReleasedProdOrder: TestPage \"Released Production Order\";\n+ begin\n+ // [SCENARIO 501883] When Preview Post or Post Production Journal From a Released Production Order, it creates correct Item Ledger Entries even if there is a Consumption Journal Line of completely different Production Order No. in Consumption Journal.\n+ Initialize();\n+\n+ // [GIVEN] Create Item.\n+ LibraryInventory.CreateItem(Item);\n+\n+ // [GIVEN] Create and Refresh Production Order.\n+ CreateAndRefreshProductionOrder(\n+ ProductionOrder,\n+ ProductionOrder.Status::Released,\n+ Item.\"No.\",\n+ LibraryRandom.RandIntInRange(10, 10),\n+ '',\n+ '');\n+\n+ // [GIVEN] Create Item 2.\n+ LibraryInventory.CreateItem(Item2);\n+\n+ // [GIVEN] Create and Refresh Production Order 2.\n+ CreateAndRefreshProductionOrder(\n+ ProductionOrder2,\n+ ProductionOrder2.Status::Released,\n+ Item2.\"No.\",\n+ LibraryRandom.RandIntInRange(10, 10),\n+ '',\n+ '');\n+\n+ // [GIVEN] Create Consumption Journal Line for Production Order 2.\n+ CreateConsumptionJournalLine(\n+ ItemJournalLine,\n+ ProductionOrder2.\"No.\",\n+ Item2.\"No.\",\n+ LibraryRandom.RandIntInRange(10, 10));\n+\n+ // [WHEN] Open Released Production Order page and run Production Journal action.\n+ ReleasedProdOrder.OpenEdit();\n+ ReleasedProdOrder.GoToRecord(ProductionOrder);\n+ ReleasedProdOrder.ProdOrderLines.ProductionJournal.Invoke();\n+\n+ // [VERIFY] Item Ledger Entry No. of Records in Posting Preview is not zero.\n+ Assert.AreNotEqual(0, LibraryVariableStorage.DequeueInteger(), ILENoOfRecordsMustNotBeZeroErr);\n+ end;\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n@@ -6045,6 +6099,43 @@ codeunit 137072 \"SCM Production Orders II\"\n LibraryManufacturing.UpdateRoutingStatus(RoutingHeader, RoutingHeader.Status::Certified);\n end;\n \n+ local procedure CreateConsumptionJournalLine(\n+ var ItemJournalLine: Record \"Item Journal Line\";\n+ ProdOrderNo: Code[20];\n+ ItemNo: Code[20];\n+ Qty: Decimal)\n+ var\n+ ItemJnlTemplate: Record \"Item Journal Template\";\n+ ItemJnlBatch: Record \"Item Journal Batch\";\n+ begin\n+ InitItemJournalBatch(ItemJnlBatch, ItemJnlBatch.\"Template Type\"::Consumption);\n+ ItemJournalLine.Init();\n+ ItemJournalLine.\"Entry Type\" := ItemJournalLine.\"Entry Type\"::Consumption;\n+\n+ ItemJnlTemplate.Get(ItemJnlBatch.\"Journal Template Name\");\n+ LibraryInventory.CreateItemJnlLineWithNoItem(\n+ ItemJournalLine,\n+ ItemJnlBatch,\n+ ItemJnlTemplate.Name,\n+ ItemJnlBatch.Name,\n+ ItemJournalLine.\"Entry Type\"::Consumption);\n+\n+ ItemJournalLine.Validate(\"Order Type\", ItemJournalLine.\"Order Type\"::Production);\n+ ItemJournalLine.Validate(\"Order No.\", ProdOrderNo);\n+ ItemJournalLine.Validate(\"Item No.\", ItemNo);\n+ ItemJournalLine.Validate(Quantity, Qty);\n+ ItemJournalLine.Modify(true);\n+ end;\n+\n+ local procedure InitItemJournalBatch(var ItemJnlBatch: Record \"Item Journal Batch\"; TemplateType: Enum \"Item Journal Template Type\")\n+ var\n+ ItemJnlTemplate: Record \"Item Journal Template\";\n+ begin\n+ LibraryInventory.SelectItemJournalTemplateName(ItemJnlTemplate, TemplateType);\n+ LibraryInventory.SelectItemJournalBatchName(ItemJnlBatch, TemplateType, ItemJnlTemplate.Name);\n+ LibraryInventory.ClearItemJournal(ItemJnlTemplate, ItemJnlBatch);\n+ end;\n+\n [ModalPageHandler]\n procedure ProductionJournalModalPageHandler(var ProductionJournal: TestPage \"Production Journal\")\n begin\n@@ -6143,6 +6234,21 @@ codeunit 137072 \"SCM Production Orders II\"\n ProductionJournal.Post.Invoke();\n end;\n \n+ [ModalPageHandler]\n+ [Scope('OnPrem')]\n+ procedure ProductionJournalPageHandler(var ProductionJournal: TestPage \"Production Journal\")\n+ begin\n+ ProductionJournal.PreviewPosting.Invoke();\n+ end;\n+\n+ [PageHandler]\n+ [Scope('OnPrem')]\n+ procedure GLPostingPreviewPageHandler(var ShowAllEntries: TestPage \"G/L Posting Preview\")\n+ begin\n+ ShowAllEntries.Filter.SetFilter(\"Table Name\", 'Item Ledger Entry');\n+ LibraryVariableStorage.Enqueue(ShowAllEntries.\"No. of Records\".AsInteger());\n+ end;\n+\n [MessageHandler]\n [Scope('OnPrem')]\n procedure MessageHandler(Message: Text[1024])\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al b/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\n--- a/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\n@@ -1015,7 +1015,7 @@ page 5510 \"Production Journal\"\n \n protected procedure MarkRelevantRec(var ItemJournalLine: Record \"Item Journal Line\")\n begin\n- ItemJournalLine := Rec;\n+ ItemJournalLine.SetRange(\"Item No.\", Rec.\"Item No.\");\n if ItemJournalLine.FindSet() then begin\n repeat\n case ItemJournalLine.\"Entry Type\" of\n"} +{"instance_id": "microsoftInternal__NAV-176194__cf-1", "base_instance_id": "microsoftInternal__NAV-176194", "variant_description": "Qty. to Invoice validation removed entirely from Item Charge Assignment", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-176194__cf-1", "FAIL_TO_PASS": [{"codeunitID": 134329, "functionName": ["GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToReceiveIsBlankInPurchPayablesSetup"]}, {"codeunitID": 134387, "functionName": ["GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToShipIsBlankInSalesReceiSetup"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/ERM/ERMPurchaseReturnOrder.Codeunit.al b/App/Layers/W1/Tests/ERM/ERMPurchaseReturnOrder.Codeunit.al\nindex 75cffb82321a..4b0d9d056234 100644\n--- a/App/Layers/W1/Tests/ERM/ERMPurchaseReturnOrder.Codeunit.al\n+++ b/App/Layers/W1/Tests/ERM/ERMPurchaseReturnOrder.Codeunit.al\n@@ -48,6 +48,8 @@ codeunit 134329 \"ERM Purchase Return Order\"\n ContactShouldBeEditableErr: Label 'Contact should be editable when vendorr is selected.';\n FunctionMustNotBeCalledErr: Label 'Function %1 must not be called.', Comment = '%1 - function name';\n BatchPostingErrrorNotificationMsg: Label 'An error or warning occured during operation Batch processing of Purchase Header records.';\n+ ReturnQtyToShipMustBeZeroErr: Label ' Return Qty. to Ship must be zero.';\n+ QtyToAssignErr: Label '%1 must be %2 in %3', Comment = '%1 = Qty. to Assign, %2 = Quantity, %3 = Purchase Return Order Subform';\n \n [Test]\n [Scope('OnPrem')]\n@@ -1376,6 +1378,83 @@ codeunit 134329 \"ERM Purchase Return Order\"\n PurchaseLine.TableCaption));\n end;\n \n+ [Test]\n+ [Scope('OnPrem')]\n+ [HandlerFunctions('SuggestItemChargeAssignmentPageHandler,PostedPurchDocumentLinesPageHandler')]\n+ procedure GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToReceiveIsBlankInPurchPayablesSetup()\n+ var\n+ Item: Record Item;\n+ ItemCharge: Record \"Item Charge\";\n+ PurchasePayablesSetup: Record \"Purchases & Payables Setup\";\n+ PurchaseHeader: Record \"Purchase Header\";\n+ PurchaseHeader2: Record \"Purchase Header\";\n+ PurchaseLine: Record \"Purchase Line\";\n+ Quantity: Decimal;\n+ PurchaseReturnOrder: TestPage \"Purchase Return Order\";\n+ PurchaseReturnOrderSubform: TestPage \"Purchase Return Order Subform\";\n+ begin\n+ // [SCENARIO 500596] Get Posted Document Lines to Reverse action on Purchase Return Order copies Purchase Invoice Lines of Type Item Charge Even when Default Qty to Receive on Purchase & Payables Setup is set to Blank.\n+ Initialize();\n+\n+ // [GIVEN] Validate Default Qty. to Receive in Purchase & Payables Setup.\n+ PurchasePayablesSetup.Get();\n+ PurchasePayablesSetup.Validate(\"Default Qty. to Receive\", PurchasePayablesSetup.\"Default Qty. to Receive\"::Blank);\n+ PurchasePayablesSetup.Modify(true);\n+\n+ // [GIVEN] Create an Item.\n+ LibraryInventory.CreateItem(Item);\n+\n+ // [GIVEN] Create an Item Charge.\n+ LibraryInventory.CreateItemCharge(ItemCharge);\n+\n+ // [GIVEN] Generate and Save Quantity in a Variable.\n+ Quantity := LibraryRandom.RandIntInRange(25, 25);\n+\n+ // [GIVEN] Create a Purchase Order with Item Charge.\n+ CreatePurchaseOrderWithItemCharge(PurchaseHeader, ItemCharge.\"No.\", Item.\"No.\", Quantity);\n+\n+ // [GIVEN] Set Purchase Order Lines Qty. to Receive.\n+ SetPurchaseLinesQtyToReceive(PurchaseHeader, Quantity);\n+\n+ // [GIVEN] Update Qty. to Assign on Item Charge Assignment.\n+ UpdateQtyToAssignOnItemChargeAssignment(PurchaseHeader);\n+\n+ // [GIVEN] Post Purchase Order.\n+ LibraryPurchase.PostPurchaseDocument(PurchaseHeader, true, true);\n+\n+ // [GIVEN] Create a Purchase Return Order.\n+ LibraryPurchase.CreatePurchHeader(PurchaseHeader2, PurchaseHeader2.\"Document Type\"::\"Return Order\", PurchaseHeader.\"Buy-from Vendor No.\");\n+\n+ // [GIVEN] Open Purchase Return Order page and run Get Posted Document Lines to Reverse action.\n+ PurchaseReturnOrder.OpenEdit();\n+ PurchaseReturnOrder.GoToRecord(PurchaseHeader2);\n+ LibraryVariableStorage.Enqueue(ItemCharge.\"No.\");\n+ PurchaseReturnOrder.GetPostedDocumentLinesToReverse.Invoke();\n+\n+ // [WHEN] Find Purchase Line of Purchase Return Order.\n+ PurchaseLine.SetRange(\"Document Type\", PurchaseLine.\"Document Type\"::\"Return Order\");\n+ PurchaseLine.SetRange(\"Document No.\", PurchaseHeader2.\"No.\");\n+ PurchaseLine.SetRange(Type, PurchaseLine.Type::\"Charge (Item)\");\n+ PurchaseLine.FindFirst();\n+\n+ // [VERIFY] Return Qty. to Receive in Purchase Line is 0.\n+ Assert.AreEqual(0, PurchaseLine.\"Return Qty. to Ship\", ReturnQtyToShipMustBeZeroErr);\n+\n+ // [WHEN] Open Purchase Return Order Subform page.\n+ PurchaseReturnOrderSubform.OpenEdit();\n+ PurchaseReturnOrderSubform.GoToRecord(PurchaseLine);\n+\n+ // [VERIFY] Quantity and Qty. to Assign in Purchase Line are same.\n+ Assert.AreEqual(\n+ Quantity,\n+ PurchaseReturnOrderSubform.\"Qty. to Assign\".AsDecimal(),\n+ StrSubstNo(\n+ QtyToAssignErr,\n+ PurchaseReturnOrderSubform.\"Qty. to Assign\".Caption(),\n+ Quantity,\n+ PurchaseReturnOrderSubform.Caption()));\n+ end;\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n@@ -2062,6 +2141,64 @@ codeunit 134329 \"ERM Purchase Return Order\"\n if Confirm(StrSubstNo(ExpectedMessage)) then;\n end;\n \n+ local procedure CreatePurchaseOrderWithItemCharge(\n+ var PurchaseHeader: Record \"Purchase Header\";\n+ ItemChargeNo: Code[20];\n+ ItemNo: Code[20];\n+ Quantity: Decimal)\n+ var\n+ PurchaseLineItemCharge: Record \"Purchase Line\";\n+ PurchaseLineItem: Record \"Purchase Line\";\n+ Vendor: Record Vendor;\n+ begin\n+ LibraryPurchase.CreateVendor(Vendor);\n+\n+ LibraryPurchase.CreatePurchHeader(PurchaseHeader, PurchaseHeader.\"Document Type\"::Order, Vendor.\"No.\");\n+ LibraryPurchase.CreatePurchaseLine(\n+ PurchaseLineItem,\n+ PurchaseHeader,\n+ PurchaseLineItem.Type::Item,\n+ ItemNo,\n+ Quantity);\n+\n+ PurchaseLineItem.Validate(\"Direct Unit Cost\", LibraryRandom.RandDec(100, 2));\n+ PurchaseLineItem.Modify(true);\n+\n+ LibraryPurchase.CreatePurchaseLine(\n+ PurchaseLineItemCharge,\n+ PurchaseHeader,\n+ PurchaseLineItemCharge.Type::\"Charge (Item)\",\n+ ItemChargeNo,\n+ Quantity);\n+\n+ PurchaseLineItemCharge.Validate(\"Direct Unit Cost\", LibraryRandom.RandDec(100, 2));\n+ PurchaseLineItemCharge.Modify(true);\n+ end;\n+\n+ local procedure SetPurchaseLinesQtyToReceive(var PurchaseHeader: Record \"Purchase Header\"; Quantity: Decimal)\n+ var\n+ PurchaseLine: Record \"Purchase Line\";\n+ begin\n+ PurchaseLine.SetRange(\"Document Type\", PurchaseHeader.\"Document Type\");\n+ PurchaseLine.SetRange(\"Document No.\", PurchaseHeader.\"No.\");\n+ PurchaseLine.FindSet();\n+ repeat\n+ PurchaseLine.Validate(\"Qty. to Receive\", Quantity);\n+ PurchaseLine.Modify(true);\n+ until PurchaseLine.Next() = 0;\n+ end;\n+\n+ local procedure UpdateQtyToAssignOnItemChargeAssignment(PurchaseHeader: Record \"Purchase Header\")\n+ var\n+ PurchaseLine: Record \"Purchase Line\";\n+ begin\n+ PurchaseLine.SetRange(\"Document Type\", PurchaseHeader.\"Document Type\");\n+ PurchaseLine.SetRange(\"Document No.\", PurchaseHeader.\"No.\");\n+ PurchaseLine.SetRange(Type, PurchaseLine.Type::\"Charge (Item)\");\n+ PurchaseLine.FindFirst();\n+ PurchaseLine.ShowItemChargeAssgnt();\n+ end;\n+\n [ConfirmHandler]\n [Scope('OnPrem')]\n procedure ConfirmHandler(Question: Text[1024]; var Reply: Boolean)\n@@ -2162,6 +2299,21 @@ codeunit 134329 \"ERM Purchase Return Order\"\n GetReturnShipmentLines.OK().Invoke();\n end;\n \n+ [ModalPageHandler]\n+ [Scope('OnPrem')]\n+ procedure PostedPurchDocumentLinesPageHandler(var PostedPurchaseDocumentLines: TestPage \"Posted Purchase Document Lines\")\n+ begin\n+ PostedPurchaseDocumentLines.PostedInvoices.Filter.SetFilter(\"No.\", LibraryVariableStorage.DequeueText());\n+ PostedPurchaseDocumentLines.OK().Invoke();\n+ end;\n+\n+ [ModalPageHandler]\n+ [Scope('OnPrem')]\n+ procedure SuggestItemChargeAssignmentPageHandler(var ItemChargeAssignmentPurch: TestPage \"Item Charge Assignment (Purch)\")\n+ begin\n+ ItemChargeAssignmentPurch.SuggestItemChargeAssignment.Invoke();\n+ end;\n+\n [SendNotificationHandler]\n [Scope('OnPrem')]\n procedure SendNotificationHandler(var Notification: Notification): Boolean\ndiff --git a/App/Layers/W1/Tests/ERM/ERMSalesDocumentsIII.Codeunit.al b/App/Layers/W1/Tests/ERM/ERMSalesDocumentsIII.Codeunit.al\nindex 3f3d49bb821b..bc9ebbd1cdfb 100644\n--- a/App/Layers/W1/Tests/ERM/ERMSalesDocumentsIII.Codeunit.al\n+++ b/App/Layers/W1/Tests/ERM/ERMSalesDocumentsIII.Codeunit.al\n@@ -80,6 +80,8 @@ codeunit 134387 \"ERM Sales Documents III\"\n PackageTrackingNoErr: Label 'Package Tracking No does not exist.';\n CannotAllowInvDiscountErr: Label 'The value of the Allow Invoice Disc. field is not valid when the VAT Calculation Type field is set to \"Full VAT\".';\n PostingPreviewNoTok: Label '***', Locked = true;\n+ ReturnQtyToReceiveMustBeZeroErr: Label ' Return Qty. to Receive must be zero.';\n+ QtyToAssignErr: Label '%1 must be %2 in %3', Comment = '%1 = Qty. to Assign, %2 = Quantity, %3 = Sales Return Order Subform';\n \n [Test]\n [Scope('OnPrem')]\n@@ -5943,6 +5945,83 @@ codeunit 134387 \"ERM Sales Documents III\"\n Assert.AreNotEqual(Customer.\"Country/Region Code\", SalesHeader.\"Rcvd.-from Count./Region Code\", 'Received-from Country Code is set just as it is on customer');\n end;\n \n+ [Test]\n+ [Scope('OnPrem')]\n+ [HandlerFunctions('SuggestItemChargeAssignmentPageHandler,PostedSalesDocumentLinesPageHandler')]\n+ procedure GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToShipIsBlankInSalesReceiSetup()\n+ var\n+ Item: Record Item;\n+ ItemCharge: Record \"Item Charge\";\n+ SalesReceivablesSetup: Record \"Sales & Receivables Setup\";\n+ SalesHeader: Record \"Sales Header\";\n+ SalesHeader2: Record \"Sales Header\";\n+ SalesLine: Record \"Sales Line\";\n+ Quantity: Decimal;\n+ SalesReturnOrder: TestPage \"Sales Return Order\";\n+ SalesReturnOrderSubform: TestPage \"Sales Return Order Subform\";\n+ begin\n+ // [SCENARIO 500596] Get Posted Document Lines to Reverse action on Sales Return Order copies Sales Invoice Lines of Type Item Charge Even when Default Qty to Ship on Sales & Receivables Setup is set to Blank.\n+ Initialize();\n+\n+ // [GIVEN] Validate Default Quantity to Ship in Sales & Receivables Setup.\n+ SalesReceivablesSetup.Get();\n+ SalesReceivablesSetup.Validate(\"Default Quantity to Ship\", SalesReceivablesSetup.\"Default Quantity to Ship\"::Blank);\n+ SalesReceivablesSetup.Modify(true);\n+\n+ // [GIVEN] Create an Item.\n+ LibraryInventory.CreateItem(Item);\n+\n+ // [GIVEN] Create an Item Charge.\n+ LibraryInventory.CreateItemCharge(ItemCharge);\n+\n+ // [GIVEN] Generate and Save Quantity in a Variable.\n+ Quantity := LibraryRandom.RandIntInRange(25, 25);\n+\n+ // [GIVEN] Create a Sales Order with Item Charge.\n+ CreateSalesOrderWithItemCharge(SalesHeader, ItemCharge.\"No.\", Item.\"No.\", Quantity);\n+\n+ // [GIVEN] Set Sales Order Lines Qty. to Ship.\n+ SetSalesLinesQtyToShip(SalesHeader, Quantity);\n+\n+ // [GIVEN] Update Qty. to Assign on Item Charge Assignment.\n+ UpdateQtyToAssignOnItemChargeAssignment(SalesHeader);\n+\n+ // [GIVEN] Post Sales Order.\n+ LibrarySales.PostSalesDocument(SalesHeader, true, true);\n+\n+ // [GIVEN] Create a Sales Return Order.\n+ LibrarySales.CreateSalesHeader(SalesHeader2, SalesHeader2.\"Document Type\"::\"Return Order\", SalesHeader.\"Sell-to Customer No.\");\n+\n+ // [GIVEN] Open Sales Return Order page and run Get Posted Document Lines to Reverse action.\n+ SalesReturnOrder.OpenEdit();\n+ SalesReturnOrder.GoToRecord(SalesHeader2);\n+ LibraryVariableStorage.Enqueue(ItemCharge.\"No.\");\n+ SalesReturnOrder.GetPostedDocumentLinesToReverse.Invoke();\n+\n+ // [WHEN] Find Sales Line of Sales Return Order.\n+ SalesLine.SetRange(\"Document Type\", SalesLine.\"Document Type\"::\"Return Order\");\n+ SalesLine.SetRange(\"Document No.\", SalesHeader2.\"No.\");\n+ SalesLine.SetRange(Type, SalesLine.Type::\"Charge (Item)\");\n+ SalesLine.FindFirst();\n+\n+ // [VERIFY] Return Qty. to Receive in Sales Line is 0.\n+ Assert.AreEqual(0, SalesLine.\"Return Qty. to Receive\", ReturnQtyToReceiveMustBeZeroErr);\n+\n+ // [WHEN] Open Sales Return Order Subform page.\n+ SalesReturnOrderSubform.OpenEdit();\n+ SalesReturnOrderSubform.GoToRecord(SalesLine);\n+\n+ // [VERIFY] Quantity and Qty. to Assign in Sales Line are same.\n+ Assert.AreEqual(\n+ Quantity,\n+ SalesReturnOrderSubform.\"Qty. to Assign\".AsDecimal(),\n+ StrSubstNo(\n+ QtyToAssignErr,\n+ SalesReturnOrderSubform.\"Qty. to Assign\".Caption(),\n+ Quantity,\n+ SalesReturnOrderSubform.Caption()));\n+ end;\n+\n local procedure Initialize()\n var\n ReportSelections: Record \"Report Selections\";\n@@ -7148,6 +7227,64 @@ codeunit 134387 \"ERM Sales Documents III\"\n SalesReceivablesSetup.Modify();\n end;\n \n+ local procedure CreateSalesOrderWithItemCharge(\n+ var SalesHeader: Record \"Sales Header\";\n+ ItemChargeNo: Code[20];\n+ ItemNo: Code[20];\n+ Quantity: Decimal)\n+ var\n+ SalesLineItemCharge: Record \"Sales Line\";\n+ SalesLineItem: Record \"Sales Line\";\n+ Customer: Record Customer;\n+ begin\n+ LibrarySales.CreateCustomer(Customer);\n+\n+ LibrarySales.CreateSalesHeader(SalesHeader, SalesHeader.\"Document Type\"::Order, Customer.\"No.\");\n+ LibrarySales.CreateSalesLine(\n+ SalesLineItem,\n+ SalesHeader,\n+ SalesLineItem.Type::Item,\n+ ItemNo,\n+ Quantity);\n+\n+ SalesLineItem.Validate(\"Unit Price\", LibraryRandom.RandDec(100, 2));\n+ SalesLineItem.Modify(true);\n+\n+ LibrarySales.CreateSalesLine(\n+ SalesLineItemCharge,\n+ SalesHeader,\n+ SalesLineItemCharge.Type::\"Charge (Item)\",\n+ ItemChargeNo,\n+ Quantity);\n+\n+ SalesLineItemCharge.Validate(\"Unit Price\", LibraryRandom.RandDec(100, 2));\n+ SalesLineItemCharge.Modify(true);\n+ end;\n+\n+ local procedure SetSalesLinesQtyToShip(var SalesHeader: Record \"Sales Header\"; Quantity: Decimal)\n+ var\n+ SalesLine: Record \"Sales Line\";\n+ begin\n+ SalesLine.SetRange(\"Document Type\", SalesHeader.\"Document Type\");\n+ SalesLine.SetRange(\"Document No.\", SalesHeader.\"No.\");\n+ SalesLine.FindSet();\n+ repeat\n+ SalesLine.Validate(\"Qty. to Ship\", Quantity);\n+ SalesLine.Modify(true);\n+ until SalesLine.Next() = 0;\n+ end;\n+\n+ local procedure UpdateQtyToAssignOnItemChargeAssignment(SalesHeader: Record \"Sales Header\")\n+ var\n+ SalesLine: Record \"Sales Line\";\n+ begin\n+ SalesLine.SetRange(\"Document Type\", SalesHeader.\"Document Type\");\n+ SalesLine.SetRange(\"Document No.\", SalesHeader.\"No.\");\n+ SalesLine.SetRange(Type, SalesLine.Type::\"Charge (Item)\");\n+ SalesLine.FindFirst();\n+ SalesLine.ShowItemChargeAssgnt();\n+ end;\n+\n [ConfirmHandler]\n [Scope('OnPrem')]\n procedure CreateEmptyPostedInvConfirmHandler(Question: Text[1024]; var Reply: Boolean)\n@@ -7426,5 +7563,20 @@ codeunit 134387 \"ERM Sales Documents III\"\n Assert.AreEqual(LibraryVariableStorage.DequeueText(), ChangeLogEntries.\"New Value\".Value(), ChangeLogEntries.\"New Value\".Caption());\n ChangeLogEntries.OK().Invoke();\n end;\n+\n+ [ModalPageHandler]\n+ [Scope('OnPrem')]\n+ procedure PostedSalesDocumentLinesPageHandler(var PostedSalesDocumentLines: TestPage \"Posted Sales Document Lines\")\n+ begin\n+ PostedSalesDocumentLines.PostedInvoices.Filter.SetFilter(\"No.\", LibraryVariableStorage.DequeueText());\n+ PostedSalesDocumentLines.OK().Invoke();\n+ end;\n+\n+ [ModalPageHandler]\n+ [Scope('OnPrem')]\n+ procedure SuggestItemChargeAssignmentPageHandler(var ItemChargeAssignmentSales: TestPage \"Item Charge Assignment (Sales)\")\n+ begin\n+ ItemChargeAssignmentSales.SuggestItemChargeAssignment.Invoke();\n+ end;\n }\n \n", "patch": "diff --git a/App/Layers/W1/BaseApp/Purchases/Document/ItemChargeAssignmentPurch.Table.al b/App/Layers/W1/BaseApp/Purchases/Document/ItemChargeAssignmentPurch.Table.al\n--- a/App/Layers/W1/BaseApp/Purchases/Document/ItemChargeAssignmentPurch.Table.al\n+++ b/App/Layers/W1/BaseApp/Purchases/Document/ItemChargeAssignmentPurch.Table.al\n@@ -53,10 +53,9 @@ table 5805 \"Item Charge Assignment (Purch)\"\n DecimalPlaces = 0 : 5;\n \n trigger OnValidate()\n begin\n PurchLine.Get(\"Document Type\", \"Document No.\", \"Document Line No.\");\n- if Rec.\"Qty. to Assign\" <> xRec.\"Qty. to Assign\" then\n- PurchLine.TestField(\"Qty. to Invoice\");\n+ // Qty. to Invoice validation removed\n \n TestField(\"Applies-to Doc. Line No.\");\n if (\"Qty. to Assign\" <> 0) and (\"Applies-to Doc. Type\" = \"Document Type\") then\ndiff --git a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al\n--- a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al\n@@ -56,10 +56,10 @@ table 5809 \"Item Charge Assignment (Sales)\"\n DecimalPlaces = 0 : 5;\n \n trigger OnValidate()\n begin\n SalesLine.Get(\"Document Type\", \"Document No.\", \"Document Line No.\");\n- if Rec.\"Qty. to Assign\" <> xRec.\"Qty. to Assign\" then\n- SalesLine.TestField(\"Qty. to Invoice\");\n+ // Qty. to Invoice validation removed\n+\n TestField(\"Applies-to Doc. Line No.\");\n if (\"Qty. to Assign\" <> 0) and (\"Applies-to Doc. Type\" = \"Document Type\") then\n if SalesLineInvoiced() then\n"} +{"instance_id": "microsoftInternal__NAV-176194__cf-2", "base_instance_id": "microsoftInternal__NAV-176194", "variant_description": "Qty. to Invoice validated only when Default Qty is Remainder instead of skipped when Blank", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-176194__cf-2", "FAIL_TO_PASS": [{"codeunitID": 134329, "functionName": ["GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToReceiveIsBlankInPurchPayablesSetup"]}, {"codeunitID": 134387, "functionName": ["GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToShipIsBlankInSalesReceiSetup"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/ERM/ERMPurchaseReturnOrder.Codeunit.al b/App/Layers/W1/Tests/ERM/ERMPurchaseReturnOrder.Codeunit.al\nindex 75cffb8..4b0d9d0 100644\n--- a/App/Layers/W1/Tests/ERM/ERMPurchaseReturnOrder.Codeunit.al\n+++ b/App/Layers/W1/Tests/ERM/ERMPurchaseReturnOrder.Codeunit.al\n@@ -48,6 +48,8 @@ codeunit 134329 \"ERM Purchase Return Order\"\n ContactShouldBeEditableErr: Label 'Contact should be editable when vendorr is selected.';\n FunctionMustNotBeCalledErr: Label 'Function %1 must not be called.', Comment = '%1 - function name';\n BatchPostingErrrorNotificationMsg: Label 'An error or warning occured during operation Batch processing of Purchase Header records.';\n+ ReturnQtyToShipMustBeZeroErr: Label ' Return Qty. to Ship must be zero.';\n+ QtyToAssignErr: Label '%1 must be %2 in %3', Comment = '%1 = Qty. to Assign, %2 = Quantity, %3 = Purchase Return Order Subform';\n \n [Test]\n [Scope('OnPrem')]\n@@ -1376,6 +1378,83 @@ codeunit 134329 \"ERM Purchase Return Order\"\n PurchaseLine.TableCaption));\n end;\n \n+ [Test]\n+ [Scope('OnPrem')]\n+ [HandlerFunctions('SuggestItemChargeAssignmentPageHandler,PostedPurchDocumentLinesPageHandler')]\n+ procedure GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToReceiveIsBlankInPurchPayablesSetup()\n+ var\n+ Item: Record Item;\n+ ItemCharge: Record \"Item Charge\";\n+ PurchasePayablesSetup: Record \"Purchases & Payables Setup\";\n+ PurchaseHeader: Record \"Purchase Header\";\n+ PurchaseHeader2: Record \"Purchase Header\";\n+ PurchaseLine: Record \"Purchase Line\";\n+ Quantity: Decimal;\n+ PurchaseReturnOrder: TestPage \"Purchase Return Order\";\n+ PurchaseReturnOrderSubform: TestPage \"Purchase Return Order Subform\";\n+ begin\n+ // [SCENARIO 500596] Get Posted Document Lines to Reverse action on Purchase Return Order copies Purchase Invoice Lines of Type Item Charge Even when Default Qty to Receive on Purchase & Payables Setup is set to Blank.\n+ Initialize();\n+\n+ // [GIVEN] Validate Default Qty. to Receive in Purchase & Payables Setup.\n+ PurchasePayablesSetup.Get();\n+ PurchasePayablesSetup.Validate(\"Default Qty. to Receive\", PurchasePayablesSetup.\"Default Qty. to Receive\"::Blank);\n+ PurchasePayablesSetup.Modify(true);\n+\n+ // [GIVEN] Create an Item.\n+ LibraryInventory.CreateItem(Item);\n+\n+ // [GIVEN] Create an Item Charge.\n+ LibraryInventory.CreateItemCharge(ItemCharge);\n+\n+ // [GIVEN] Generate and Save Quantity in a Variable.\n+ Quantity := LibraryRandom.RandIntInRange(25, 25);\n+\n+ // [GIVEN] Create a Purchase Order with Item Charge.\n+ CreatePurchaseOrderWithItemCharge(PurchaseHeader, ItemCharge.\"No.\", Item.\"No.\", Quantity);\n+\n+ // [GIVEN] Set Purchase Order Lines Qty. to Receive.\n+ SetPurchaseLinesQtyToReceive(PurchaseHeader, Quantity);\n+\n+ // [GIVEN] Update Qty. to Assign on Item Charge Assignment.\n+ UpdateQtyToAssignOnItemChargeAssignment(PurchaseHeader);\n+\n+ // [GIVEN] Post Purchase Order.\n+ LibraryPurchase.PostPurchaseDocument(PurchaseHeader, true, true);\n+\n+ // [GIVEN] Create a Purchase Return Order.\n+ LibraryPurchase.CreatePurchHeader(PurchaseHeader2, PurchaseHeader2.\"Document Type\"::\"Return Order\", PurchaseHeader.\"Buy-from Vendor No.\");\n+\n+ // [GIVEN] Open Purchase Return Order page and run Get Posted Document Lines to Reverse action.\n+ PurchaseReturnOrder.OpenEdit();\n+ PurchaseReturnOrder.GoToRecord(PurchaseHeader2);\n+ LibraryVariableStorage.Enqueue(ItemCharge.\"No.\");\n+ PurchaseReturnOrder.GetPostedDocumentLinesToReverse.Invoke();\n+\n+ // [WHEN] Find Purchase Line of Purchase Return Order.\n+ PurchaseLine.SetRange(\"Document Type\", PurchaseLine.\"Document Type\"::\"Return Order\");\n+ PurchaseLine.SetRange(\"Document No.\", PurchaseHeader2.\"No.\");\n+ PurchaseLine.SetRange(Type, PurchaseLine.Type::\"Charge (Item)\");\n+ PurchaseLine.FindFirst();\n+\n+ // [VERIFY] Return Qty. to Receive in Purchase Line is 0.\n+ Assert.AreEqual(0, PurchaseLine.\"Return Qty. to Ship\", ReturnQtyToShipMustBeZeroErr);\n+\n+ // [WHEN] Open Purchase Return Order Subform page.\n+ PurchaseReturnOrderSubform.OpenEdit();\n+ PurchaseReturnOrderSubform.GoToRecord(PurchaseLine);\n+\n+ // [VERIFY] Quantity and Qty. to Assign in Purchase Line are same.\n+ Assert.AreEqual(\n+ Quantity,\n+ PurchaseReturnOrderSubform.\"Qty. to Assign\".AsDecimal(),\n+ StrSubstNo(\n+ QtyToAssignErr,\n+ PurchaseReturnOrderSubform.\"Qty. to Assign\".Caption(),\n+ Quantity,\n+ PurchaseReturnOrderSubform.Caption()));\n+ end;\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n@@ -2062,6 +2141,64 @@ codeunit 134329 \"ERM Purchase Return Order\"\n if Confirm(StrSubstNo(ExpectedMessage)) then;\n end;\n \n+ local procedure CreatePurchaseOrderWithItemCharge(\n+ var PurchaseHeader: Record \"Purchase Header\";\n+ ItemChargeNo: Code[20];\n+ ItemNo: Code[20];\n+ Quantity: Decimal)\n+ var\n+ PurchaseLineItemCharge: Record \"Purchase Line\";\n+ PurchaseLineItem: Record \"Purchase Line\";\n+ Vendor: Record Vendor;\n+ begin\n+ LibraryPurchase.CreateVendor(Vendor);\n+\n+ LibraryPurchase.CreatePurchHeader(PurchaseHeader, PurchaseHeader.\"Document Type\"::Order, Vendor.\"No.\");\n+ LibraryPurchase.CreatePurchaseLine(\n+ PurchaseLineItem,\n+ PurchaseHeader,\n+ PurchaseLineItem.Type::Item,\n+ ItemNo,\n+ Quantity);\n+\n+ PurchaseLineItem.Validate(\"Direct Unit Cost\", LibraryRandom.RandDec(100, 2));\n+ PurchaseLineItem.Modify(true);\n+\n+ LibraryPurchase.CreatePurchaseLine(\n+ PurchaseLineItemCharge,\n+ PurchaseHeader,\n+ PurchaseLineItemCharge.Type::\"Charge (Item)\",\n+ ItemChargeNo,\n+ Quantity);\n+\n+ PurchaseLineItemCharge.Validate(\"Direct Unit Cost\", LibraryRandom.RandDec(100, 2));\n+ PurchaseLineItemCharge.Modify(true);\n+ end;\n+\n+ local procedure SetPurchaseLinesQtyToReceive(var PurchaseHeader: Record \"Purchase Header\"; Quantity: Decimal)\n+ var\n+ PurchaseLine: Record \"Purchase Line\";\n+ begin\n+ PurchaseLine.SetRange(\"Document Type\", PurchaseHeader.\"Document Type\");\n+ PurchaseLine.SetRange(\"Document No.\", PurchaseHeader.\"No.\");\n+ PurchaseLine.FindSet();\n+ repeat\n+ PurchaseLine.Validate(\"Qty. to Receive\", Quantity);\n+ PurchaseLine.Modify(true);\n+ until PurchaseLine.Next() = 0;\n+ end;\n+\n+ local procedure UpdateQtyToAssignOnItemChargeAssignment(PurchaseHeader: Record \"Purchase Header\")\n+ var\n+ PurchaseLine: Record \"Purchase Line\";\n+ begin\n+ PurchaseLine.SetRange(\"Document Type\", PurchaseHeader.\"Document Type\");\n+ PurchaseLine.SetRange(\"Document No.\", PurchaseHeader.\"No.\");\n+ PurchaseLine.SetRange(Type, PurchaseLine.Type::\"Charge (Item)\");\n+ PurchaseLine.FindFirst();\n+ PurchaseLine.ShowItemChargeAssgnt();\n+ end;\n+\n [ConfirmHandler]\n [Scope('OnPrem')]\n procedure ConfirmHandler(Question: Text[1024]; var Reply: Boolean)\n@@ -2162,6 +2299,21 @@ codeunit 134329 \"ERM Purchase Return Order\"\n GetReturnShipmentLines.OK().Invoke();\n end;\n \n+ [ModalPageHandler]\n+ [Scope('OnPrem')]\n+ procedure PostedPurchDocumentLinesPageHandler(var PostedPurchaseDocumentLines: TestPage \"Posted Purchase Document Lines\")\n+ begin\n+ PostedPurchaseDocumentLines.PostedInvoices.Filter.SetFilter(\"No.\", LibraryVariableStorage.DequeueText());\n+ PostedPurchaseDocumentLines.OK().Invoke();\n+ end;\n+\n+ [ModalPageHandler]\n+ [Scope('OnPrem')]\n+ procedure SuggestItemChargeAssignmentPageHandler(var ItemChargeAssignmentPurch: TestPage \"Item Charge Assignment (Purch)\")\n+ begin\n+ ItemChargeAssignmentPurch.SuggestItemChargeAssignment.Invoke();\n+ end;\n+\n [SendNotificationHandler]\n [Scope('OnPrem')]\n procedure SendNotificationHandler(var Notification: Notification): Boolean\ndiff --git a/App/Layers/W1/Tests/ERM/ERMSalesDocumentsIII.Codeunit.al b/App/Layers/W1/Tests/ERM/ERMSalesDocumentsIII.Codeunit.al\nindex 3f3d49b..bc9ebbd 100644\n--- a/App/Layers/W1/Tests/ERM/ERMSalesDocumentsIII.Codeunit.al\n+++ b/App/Layers/W1/Tests/ERM/ERMSalesDocumentsIII.Codeunit.al\n@@ -80,6 +80,8 @@ codeunit 134387 \"ERM Sales Documents III\"\n PackageTrackingNoErr: Label 'Package Tracking No does not exist.';\n CannotAllowInvDiscountErr: Label 'The value of the Allow Invoice Disc. field is not valid when the VAT Calculation Type field is set to \"Full VAT\".';\n PostingPreviewNoTok: Label '***', Locked = true;\n+ ReturnQtyToReceiveMustBeZeroErr: Label ' Return Qty. to Receive must be zero.';\n+ QtyToAssignErr: Label '%1 must be %2 in %3', Comment = '%1 = Qty. to Assign, %2 = Quantity, %3 = Sales Return Order Subform';\n \n [Test]\n [Scope('OnPrem')]\n@@ -5943,6 +5945,83 @@ codeunit 134387 \"ERM Sales Documents III\"\n Assert.AreNotEqual(Customer.\"Country/Region Code\", SalesHeader.\"Rcvd.-from Count./Region Code\", 'Received-from Country Code is set just as it is on customer');\n end;\n \n+ [Test]\n+ [Scope('OnPrem')]\n+ [HandlerFunctions('SuggestItemChargeAssignmentPageHandler,PostedSalesDocumentLinesPageHandler')]\n+ procedure GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToShipIsBlankInSalesReceiSetup()\n+ var\n+ Item: Record Item;\n+ ItemCharge: Record \"Item Charge\";\n+ SalesReceivablesSetup: Record \"Sales & Receivables Setup\";\n+ SalesHeader: Record \"Sales Header\";\n+ SalesHeader2: Record \"Sales Header\";\n+ SalesLine: Record \"Sales Line\";\n+ Quantity: Decimal;\n+ SalesReturnOrder: TestPage \"Sales Return Order\";\n+ SalesReturnOrderSubform: TestPage \"Sales Return Order Subform\";\n+ begin\n+ // [SCENARIO 500596] Get Posted Document Lines to Reverse action on Sales Return Order copies Sales Invoice Lines of Type Item Charge Even when Default Qty to Ship on Sales & Receivables Setup is set to Blank.\n+ Initialize();\n+\n+ // [GIVEN] Validate Default Quantity to Ship in Sales & Receivables Setup.\n+ SalesReceivablesSetup.Get();\n+ SalesReceivablesSetup.Validate(\"Default Quantity to Ship\", SalesReceivablesSetup.\"Default Quantity to Ship\"::Blank);\n+ SalesReceivablesSetup.Modify(true);\n+\n+ // [GIVEN] Create an Item.\n+ LibraryInventory.CreateItem(Item);\n+\n+ // [GIVEN] Create an Item Charge.\n+ LibraryInventory.CreateItemCharge(ItemCharge);\n+\n+ // [GIVEN] Generate and Save Quantity in a Variable.\n+ Quantity := LibraryRandom.RandIntInRange(25, 25);\n+\n+ // [GIVEN] Create a Sales Order with Item Charge.\n+ CreateSalesOrderWithItemCharge(SalesHeader, ItemCharge.\"No.\", Item.\"No.\", Quantity);\n+\n+ // [GIVEN] Set Sales Order Lines Qty. to Ship.\n+ SetSalesLinesQtyToShip(SalesHeader, Quantity);\n+\n+ // [GIVEN] Update Qty. to Assign on Item Charge Assignment.\n+ UpdateQtyToAssignOnItemChargeAssignment(SalesHeader);\n+\n+ // [GIVEN] Post Sales Order.\n+ LibrarySales.PostSalesDocument(SalesHeader, true, true);\n+\n+ // [GIVEN] Create a Sales Return Order.\n+ LibrarySales.CreateSalesHeader(SalesHeader2, SalesHeader2.\"Document Type\"::\"Return Order\", SalesHeader.\"Sell-to Customer No.\");\n+\n+ // [GIVEN] Open Sales Return Order page and run Get Posted Document Lines to Reverse action.\n+ SalesReturnOrder.OpenEdit();\n+ SalesReturnOrder.GoToRecord(SalesHeader2);\n+ LibraryVariableStorage.Enqueue(ItemCharge.\"No.\");\n+ SalesReturnOrder.GetPostedDocumentLinesToReverse.Invoke();\n+\n+ // [WHEN] Find Sales Line of Sales Return Order.\n+ SalesLine.SetRange(\"Document Type\", SalesLine.\"Document Type\"::\"Return Order\");\n+ SalesLine.SetRange(\"Document No.\", SalesHeader2.\"No.\");\n+ SalesLine.SetRange(Type, SalesLine.Type::\"Charge (Item)\");\n+ SalesLine.FindFirst();\n+\n+ // [VERIFY] Return Qty. to Receive in Sales Line is 0.\n+ Assert.AreEqual(0, SalesLine.\"Return Qty. to Receive\", ReturnQtyToReceiveMustBeZeroErr);\n+\n+ // [WHEN] Open Sales Return Order Subform page.\n+ SalesReturnOrderSubform.OpenEdit();\n+ SalesReturnOrderSubform.GoToRecord(SalesLine);\n+\n+ // [VERIFY] Quantity and Qty. to Assign in Sales Line are same.\n+ Assert.AreEqual(\n+ Quantity,\n+ SalesReturnOrderSubform.\"Qty. to Assign\".AsDecimal(),\n+ StrSubstNo(\n+ QtyToAssignErr,\n+ SalesReturnOrderSubform.\"Qty. to Assign\".Caption(),\n+ Quantity,\n+ SalesReturnOrderSubform.Caption()));\n+ end;\n+\n local procedure Initialize()\n var\n ReportSelections: Record \"Report Selections\";\n@@ -7148,6 +7227,64 @@ codeunit 134387 \"ERM Sales Documents III\"\n SalesReceivablesSetup.Modify();\n end;\n \n+ local procedure CreateSalesOrderWithItemCharge(\n+ var SalesHeader: Record \"Sales Header\";\n+ ItemChargeNo: Code[20];\n+ ItemNo: Code[20];\n+ Quantity: Decimal)\n+ var\n+ SalesLineItemCharge: Record \"Sales Line\";\n+ SalesLineItem: Record \"Sales Line\";\n+ Customer: Record Customer;\n+ begin\n+ LibrarySales.CreateCustomer(Customer);\n+\n+ LibrarySales.CreateSalesHeader(SalesHeader, SalesHeader.\"Document Type\"::Order, Customer.\"No.\");\n+ LibrarySales.CreateSalesLine(\n+ SalesLineItem,\n+ SalesHeader,\n+ SalesLineItem.Type::Item,\n+ ItemNo,\n+ Quantity);\n+\n+ SalesLineItem.Validate(\"Unit Price\", LibraryRandom.RandDec(100, 2));\n+ SalesLineItem.Modify(true);\n+\n+ LibrarySales.CreateSalesLine(\n+ SalesLineItemCharge,\n+ SalesHeader,\n+ SalesLineItemCharge.Type::\"Charge (Item)\",\n+ ItemChargeNo,\n+ Quantity);\n+\n+ SalesLineItemCharge.Validate(\"Unit Price\", LibraryRandom.RandDec(100, 2));\n+ SalesLineItemCharge.Modify(true);\n+ end;\n+\n+ local procedure SetSalesLinesQtyToShip(var SalesHeader: Record \"Sales Header\"; Quantity: Decimal)\n+ var\n+ SalesLine: Record \"Sales Line\";\n+ begin\n+ SalesLine.SetRange(\"Document Type\", SalesHeader.\"Document Type\");\n+ SalesLine.SetRange(\"Document No.\", SalesHeader.\"No.\");\n+ SalesLine.FindSet();\n+ repeat\n+ SalesLine.Validate(\"Qty. to Ship\", Quantity);\n+ SalesLine.Modify(true);\n+ until SalesLine.Next() = 0;\n+ end;\n+\n+ local procedure UpdateQtyToAssignOnItemChargeAssignment(SalesHeader: Record \"Sales Header\")\n+ var\n+ SalesLine: Record \"Sales Line\";\n+ begin\n+ SalesLine.SetRange(\"Document Type\", SalesHeader.\"Document Type\");\n+ SalesLine.SetRange(\"Document No.\", SalesHeader.\"No.\");\n+ SalesLine.SetRange(Type, SalesLine.Type::\"Charge (Item)\");\n+ SalesLine.FindFirst();\n+ SalesLine.ShowItemChargeAssgnt();\n+ end;\n+\n [ConfirmHandler]\n [Scope('OnPrem')]\n procedure CreateEmptyPostedInvConfirmHandler(Question: Text[1024]; var Reply: Boolean)\n@@ -7426,5 +7563,20 @@ codeunit 134387 \"ERM Sales Documents III\"\n Assert.AreEqual(LibraryVariableStorage.DequeueText(), ChangeLogEntries.\"New Value\".Value(), ChangeLogEntries.\"New Value\".Caption());\n ChangeLogEntries.OK().Invoke();\n end;\n+\n+ [ModalPageHandler]\n+ [Scope('OnPrem')]\n+ procedure PostedSalesDocumentLinesPageHandler(var PostedSalesDocumentLines: TestPage \"Posted Sales Document Lines\")\n+ begin\n+ PostedSalesDocumentLines.PostedInvoices.Filter.SetFilter(\"No.\", LibraryVariableStorage.DequeueText());\n+ PostedSalesDocumentLines.OK().Invoke();\n+ end;\n+\n+ [ModalPageHandler]\n+ [Scope('OnPrem')]\n+ procedure SuggestItemChargeAssignmentPageHandler(var ItemChargeAssignmentSales: TestPage \"Item Charge Assignment (Sales)\")\n+ begin\n+ ItemChargeAssignmentSales.SuggestItemChargeAssignment.Invoke();\n+ end;\n }\n \n", "patch": "diff --git a/App/Layers/W1/BaseApp/Purchases/Document/ItemChargeAssignmentPurch.Table.al b/App/Layers/W1/BaseApp/Purchases/Document/ItemChargeAssignmentPurch.Table.al\nindex 09f4171..3061674 100644\n--- a/App/Layers/W1/BaseApp/Purchases/Document/ItemChargeAssignmentPurch.Table.al\n+++ b/App/Layers/W1/BaseApp/Purchases/Document/ItemChargeAssignmentPurch.Table.al\n@@ -4,6 +4,7 @@ using Microsoft.Finance.Currency;\n using Microsoft.Inventory.Item;\n \n using Microsoft.Purchases.History;\n+using Microsoft.Purchases.Setup;\n \n table 5805 \"Item Charge Assignment (Purch)\"\n {\n@@ -53,10 +54,14 @@ table 5805 \"Item Charge Assignment (Purch)\"\n DecimalPlaces = 0 : 5;\n \n trigger OnValidate()\n+ var\n+ PurchasePayablesSetup: Record \"Purchases & Payables Setup\";\n begin\n+ PurchasePayablesSetup.Get();\n PurchLine.Get(\"Document Type\", \"Document No.\", \"Document Line No.\");\n if Rec.\"Qty. to Assign\" <> xRec.\"Qty. to Assign\" then\n- PurchLine.TestField(\"Qty. to Invoice\");\n+ if PurchasePayablesSetup.\"Default Qty. to Receive\" = PurchasePayablesSetup.\"Default Qty. to Receive\"::Remainder then\n+ PurchLine.TestField(\"Qty. to Invoice\");\n \n TestField(\"Applies-to Doc. Line No.\");\n if (\"Qty. to Assign\" <> 0) and (\"Applies-to Doc. Type\" = \"Document Type\") then\ndiff --git a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al\nindex 7cd8668..5645df7 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al\n@@ -7,6 +7,7 @@ namespace Microsoft.Sales.Document;\n using Microsoft.Finance.Currency;\n using Microsoft.Inventory.Item;\n using Microsoft.Sales.History;\n+using Microsoft.Sales.Setup;\n \n table 5809 \"Item Charge Assignment (Sales)\"\n {\n@@ -56,10 +57,14 @@ table 5809 \"Item Charge Assignment (Sales)\"\n DecimalPlaces = 0 : 5;\n \n trigger OnValidate()\n+ var\n+ SalesReceivablesSetup: Record \"Sales & Receivables Setup\";\n begin\n+ SalesReceivablesSetup.Get();\n SalesLine.Get(\"Document Type\", \"Document No.\", \"Document Line No.\");\n if Rec.\"Qty. to Assign\" <> xRec.\"Qty. to Assign\" then\n- SalesLine.TestField(\"Qty. to Invoice\");\n+ if SalesReceivablesSetup.\"Default Quantity to Ship\" = SalesReceivablesSetup.\"Default Quantity to Ship\"::Remainder then\n+ SalesLine.TestField(\"Qty. to Invoice\");\n TestField(\"Applies-to Doc. Line No.\");\n if (\"Qty. to Assign\" <> 0) and (\"Applies-to Doc. Type\" = \"Document Type\") then\n if SalesLineInvoiced() then\n"} +{"instance_id": "microsoftInternal__NAV-176194__cf-3", "base_instance_id": "microsoftInternal__NAV-176194", "variant_description": "Qty. to Invoice validation moved out of OnValidate trigger to processing flow", "failure_layer": null, "FAIL_TO_PASS": [{"codeunitID": 134329, "functionName": ["GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToReceiveIsBlankInPurchPayablesSetup"]}, {"codeunitID": 134387, "functionName": ["GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToShipIsBlankInSalesReceiSetup"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/ERM/ERMPurchaseReturnOrder.Codeunit.al b/App/Layers/W1/Tests/ERM/ERMPurchaseReturnOrder.Codeunit.al\nindex 75cffb82321a..4b0d9d056234 100644\n--- a/App/Layers/W1/Tests/ERM/ERMPurchaseReturnOrder.Codeunit.al\n+++ b/App/Layers/W1/Tests/ERM/ERMPurchaseReturnOrder.Codeunit.al\n@@ -48,6 +48,8 @@ codeunit 134329 \"ERM Purchase Return Order\"\n ContactShouldBeEditableErr: Label 'Contact should be editable when vendorr is selected.';\n FunctionMustNotBeCalledErr: Label 'Function %1 must not be called.', Comment = '%1 - function name';\n BatchPostingErrrorNotificationMsg: Label 'An error or warning occured during operation Batch processing of Purchase Header records.';\n+ ReturnQtyToShipMustBeZeroErr: Label ' Return Qty. to Ship must be zero.';\n+ QtyToAssignErr: Label '%1 must be %2 in %3', Comment = '%1 = Qty. to Assign, %2 = Quantity, %3 = Purchase Return Order Subform';\n \n [Test]\n [Scope('OnPrem')]\n@@ -1376,6 +1378,83 @@ codeunit 134329 \"ERM Purchase Return Order\"\n PurchaseLine.TableCaption));\n end;\n \n+ [Test]\n+ [Scope('OnPrem')]\n+ [HandlerFunctions('SuggestItemChargeAssignmentPageHandler,PostedPurchDocumentLinesPageHandler')]\n+ procedure GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToReceiveIsBlankInPurchPayablesSetup()\n+ var\n+ Item: Record Item;\n+ ItemCharge: Record \"Item Charge\";\n+ PurchasePayablesSetup: Record \"Purchases & Payables Setup\";\n+ PurchaseHeader: Record \"Purchase Header\";\n+ PurchaseHeader2: Record \"Purchase Header\";\n+ PurchaseLine: Record \"Purchase Line\";\n+ Quantity: Decimal;\n+ PurchaseReturnOrder: TestPage \"Purchase Return Order\";\n+ PurchaseReturnOrderSubform: TestPage \"Purchase Return Order Subform\";\n+ begin\n+ // [SCENARIO 500596] Get Posted Document Lines to Reverse action on Purchase Return Order copies Purchase Invoice Lines of Type Item Charge Even when Default Qty to Receive on Purchase & Payables Setup is set to Blank.\n+ Initialize();\n+\n+ // [GIVEN] Validate Default Qty. to Receive in Purchase & Payables Setup.\n+ PurchasePayablesSetup.Get();\n+ PurchasePayablesSetup.Validate(\"Default Qty. to Receive\", PurchasePayablesSetup.\"Default Qty. to Receive\"::Blank);\n+ PurchasePayablesSetup.Modify(true);\n+\n+ // [GIVEN] Create an Item.\n+ LibraryInventory.CreateItem(Item);\n+\n+ // [GIVEN] Create an Item Charge.\n+ LibraryInventory.CreateItemCharge(ItemCharge);\n+\n+ // [GIVEN] Generate and Save Quantity in a Variable.\n+ Quantity := LibraryRandom.RandIntInRange(25, 25);\n+\n+ // [GIVEN] Create a Purchase Order with Item Charge.\n+ CreatePurchaseOrderWithItemCharge(PurchaseHeader, ItemCharge.\"No.\", Item.\"No.\", Quantity);\n+\n+ // [GIVEN] Set Purchase Order Lines Qty. to Receive.\n+ SetPurchaseLinesQtyToReceive(PurchaseHeader, Quantity);\n+\n+ // [GIVEN] Update Qty. to Assign on Item Charge Assignment.\n+ UpdateQtyToAssignOnItemChargeAssignment(PurchaseHeader);\n+\n+ // [GIVEN] Post Purchase Order.\n+ LibraryPurchase.PostPurchaseDocument(PurchaseHeader, true, true);\n+\n+ // [GIVEN] Create a Purchase Return Order.\n+ LibraryPurchase.CreatePurchHeader(PurchaseHeader2, PurchaseHeader2.\"Document Type\"::\"Return Order\", PurchaseHeader.\"Buy-from Vendor No.\");\n+\n+ // [GIVEN] Open Purchase Return Order page and run Get Posted Document Lines to Reverse action.\n+ PurchaseReturnOrder.OpenEdit();\n+ PurchaseReturnOrder.GoToRecord(PurchaseHeader2);\n+ LibraryVariableStorage.Enqueue(ItemCharge.\"No.\");\n+ PurchaseReturnOrder.GetPostedDocumentLinesToReverse.Invoke();\n+\n+ // [WHEN] Find Purchase Line of Purchase Return Order.\n+ PurchaseLine.SetRange(\"Document Type\", PurchaseLine.\"Document Type\"::\"Return Order\");\n+ PurchaseLine.SetRange(\"Document No.\", PurchaseHeader2.\"No.\");\n+ PurchaseLine.SetRange(Type, PurchaseLine.Type::\"Charge (Item)\");\n+ PurchaseLine.FindFirst();\n+\n+ // [VERIFY] Return Qty. to Receive in Purchase Line is 0.\n+ Assert.AreEqual(0, PurchaseLine.\"Return Qty. to Ship\", ReturnQtyToShipMustBeZeroErr);\n+\n+ // [WHEN] Open Purchase Return Order Subform page.\n+ PurchaseReturnOrderSubform.OpenEdit();\n+ PurchaseReturnOrderSubform.GoToRecord(PurchaseLine);\n+\n+ // [VERIFY] Quantity and Qty. to Assign in Purchase Line are same.\n+ Assert.AreEqual(\n+ Quantity,\n+ PurchaseReturnOrderSubform.\"Qty. to Assign\".AsDecimal(),\n+ StrSubstNo(\n+ QtyToAssignErr,\n+ PurchaseReturnOrderSubform.\"Qty. to Assign\".Caption(),\n+ Quantity,\n+ PurchaseReturnOrderSubform.Caption()));\n+ end;\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n@@ -2062,6 +2141,64 @@ codeunit 134329 \"ERM Purchase Return Order\"\n if Confirm(StrSubstNo(ExpectedMessage)) then;\n end;\n \n+ local procedure CreatePurchaseOrderWithItemCharge(\n+ var PurchaseHeader: Record \"Purchase Header\";\n+ ItemChargeNo: Code[20];\n+ ItemNo: Code[20];\n+ Quantity: Decimal)\n+ var\n+ PurchaseLineItemCharge: Record \"Purchase Line\";\n+ PurchaseLineItem: Record \"Purchase Line\";\n+ Vendor: Record Vendor;\n+ begin\n+ LibraryPurchase.CreateVendor(Vendor);\n+\n+ LibraryPurchase.CreatePurchHeader(PurchaseHeader, PurchaseHeader.\"Document Type\"::Order, Vendor.\"No.\");\n+ LibraryPurchase.CreatePurchaseLine(\n+ PurchaseLineItem,\n+ PurchaseHeader,\n+ PurchaseLineItem.Type::Item,\n+ ItemNo,\n+ Quantity);\n+\n+ PurchaseLineItem.Validate(\"Direct Unit Cost\", LibraryRandom.RandDec(100, 2));\n+ PurchaseLineItem.Modify(true);\n+\n+ LibraryPurchase.CreatePurchaseLine(\n+ PurchaseLineItemCharge,\n+ PurchaseHeader,\n+ PurchaseLineItemCharge.Type::\"Charge (Item)\",\n+ ItemChargeNo,\n+ Quantity);\n+\n+ PurchaseLineItemCharge.Validate(\"Direct Unit Cost\", LibraryRandom.RandDec(100, 2));\n+ PurchaseLineItemCharge.Modify(true);\n+ end;\n+\n+ local procedure SetPurchaseLinesQtyToReceive(var PurchaseHeader: Record \"Purchase Header\"; Quantity: Decimal)\n+ var\n+ PurchaseLine: Record \"Purchase Line\";\n+ begin\n+ PurchaseLine.SetRange(\"Document Type\", PurchaseHeader.\"Document Type\");\n+ PurchaseLine.SetRange(\"Document No.\", PurchaseHeader.\"No.\");\n+ PurchaseLine.FindSet();\n+ repeat\n+ PurchaseLine.Validate(\"Qty. to Receive\", Quantity);\n+ PurchaseLine.Modify(true);\n+ until PurchaseLine.Next() = 0;\n+ end;\n+\n+ local procedure UpdateQtyToAssignOnItemChargeAssignment(PurchaseHeader: Record \"Purchase Header\")\n+ var\n+ PurchaseLine: Record \"Purchase Line\";\n+ begin\n+ PurchaseLine.SetRange(\"Document Type\", PurchaseHeader.\"Document Type\");\n+ PurchaseLine.SetRange(\"Document No.\", PurchaseHeader.\"No.\");\n+ PurchaseLine.SetRange(Type, PurchaseLine.Type::\"Charge (Item)\");\n+ PurchaseLine.FindFirst();\n+ PurchaseLine.ShowItemChargeAssgnt();\n+ end;\n+\n [ConfirmHandler]\n [Scope('OnPrem')]\n procedure ConfirmHandler(Question: Text[1024]; var Reply: Boolean)\n@@ -2162,6 +2299,21 @@ codeunit 134329 \"ERM Purchase Return Order\"\n GetReturnShipmentLines.OK().Invoke();\n end;\n \n+ [ModalPageHandler]\n+ [Scope('OnPrem')]\n+ procedure PostedPurchDocumentLinesPageHandler(var PostedPurchaseDocumentLines: TestPage \"Posted Purchase Document Lines\")\n+ begin\n+ PostedPurchaseDocumentLines.PostedInvoices.Filter.SetFilter(\"No.\", LibraryVariableStorage.DequeueText());\n+ PostedPurchaseDocumentLines.OK().Invoke();\n+ end;\n+\n+ [ModalPageHandler]\n+ [Scope('OnPrem')]\n+ procedure SuggestItemChargeAssignmentPageHandler(var ItemChargeAssignmentPurch: TestPage \"Item Charge Assignment (Purch)\")\n+ begin\n+ ItemChargeAssignmentPurch.SuggestItemChargeAssignment.Invoke();\n+ end;\n+\n [SendNotificationHandler]\n [Scope('OnPrem')]\n procedure SendNotificationHandler(var Notification: Notification): Boolean\ndiff --git a/App/Layers/W1/Tests/ERM/ERMSalesDocumentsIII.Codeunit.al b/App/Layers/W1/Tests/ERM/ERMSalesDocumentsIII.Codeunit.al\nindex 3f3d49bb821b..bc9ebbd1cdfb 100644\n--- a/App/Layers/W1/Tests/ERM/ERMSalesDocumentsIII.Codeunit.al\n+++ b/App/Layers/W1/Tests/ERM/ERMSalesDocumentsIII.Codeunit.al\n@@ -80,6 +80,8 @@ codeunit 134387 \"ERM Sales Documents III\"\n PackageTrackingNoErr: Label 'Package Tracking No does not exist.';\n CannotAllowInvDiscountErr: Label 'The value of the Allow Invoice Disc. field is not valid when the VAT Calculation Type field is set to \"Full VAT\".';\n PostingPreviewNoTok: Label '***', Locked = true;\n+ ReturnQtyToReceiveMustBeZeroErr: Label ' Return Qty. to Receive must be zero.';\n+ QtyToAssignErr: Label '%1 must be %2 in %3', Comment = '%1 = Qty. to Assign, %2 = Quantity, %3 = Sales Return Order Subform';\n \n [Test]\n [Scope('OnPrem')]\n@@ -5943,6 +5945,83 @@ codeunit 134387 \"ERM Sales Documents III\"\n Assert.AreNotEqual(Customer.\"Country/Region Code\", SalesHeader.\"Rcvd.-from Count./Region Code\", 'Received-from Country Code is set just as it is on customer');\n end;\n \n+ [Test]\n+ [Scope('OnPrem')]\n+ [HandlerFunctions('SuggestItemChargeAssignmentPageHandler,PostedSalesDocumentLinesPageHandler')]\n+ procedure GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToShipIsBlankInSalesReceiSetup()\n+ var\n+ Item: Record Item;\n+ ItemCharge: Record \"Item Charge\";\n+ SalesReceivablesSetup: Record \"Sales & Receivables Setup\";\n+ SalesHeader: Record \"Sales Header\";\n+ SalesHeader2: Record \"Sales Header\";\n+ SalesLine: Record \"Sales Line\";\n+ Quantity: Decimal;\n+ SalesReturnOrder: TestPage \"Sales Return Order\";\n+ SalesReturnOrderSubform: TestPage \"Sales Return Order Subform\";\n+ begin\n+ // [SCENARIO 500596] Get Posted Document Lines to Reverse action on Sales Return Order copies Sales Invoice Lines of Type Item Charge Even when Default Qty to Ship on Sales & Receivables Setup is set to Blank.\n+ Initialize();\n+\n+ // [GIVEN] Validate Default Quantity to Ship in Sales & Receivables Setup.\n+ SalesReceivablesSetup.Get();\n+ SalesReceivablesSetup.Validate(\"Default Quantity to Ship\", SalesReceivablesSetup.\"Default Quantity to Ship\"::Blank);\n+ SalesReceivablesSetup.Modify(true);\n+\n+ // [GIVEN] Create an Item.\n+ LibraryInventory.CreateItem(Item);\n+\n+ // [GIVEN] Create an Item Charge.\n+ LibraryInventory.CreateItemCharge(ItemCharge);\n+\n+ // [GIVEN] Generate and Save Quantity in a Variable.\n+ Quantity := LibraryRandom.RandIntInRange(25, 25);\n+\n+ // [GIVEN] Create a Sales Order with Item Charge.\n+ CreateSalesOrderWithItemCharge(SalesHeader, ItemCharge.\"No.\", Item.\"No.\", Quantity);\n+\n+ // [GIVEN] Set Sales Order Lines Qty. to Ship.\n+ SetSalesLinesQtyToShip(SalesHeader, Quantity);\n+\n+ // [GIVEN] Update Qty. to Assign on Item Charge Assignment.\n+ UpdateQtyToAssignOnItemChargeAssignment(SalesHeader);\n+\n+ // [GIVEN] Post Sales Order.\n+ LibrarySales.PostSalesDocument(SalesHeader, true, true);\n+\n+ // [GIVEN] Create a Sales Return Order.\n+ LibrarySales.CreateSalesHeader(SalesHeader2, SalesHeader2.\"Document Type\"::\"Return Order\", SalesHeader.\"Sell-to Customer No.\");\n+\n+ // [GIVEN] Open Sales Return Order page and run Get Posted Document Lines to Reverse action.\n+ SalesReturnOrder.OpenEdit();\n+ SalesReturnOrder.GoToRecord(SalesHeader2);\n+ LibraryVariableStorage.Enqueue(ItemCharge.\"No.\");\n+ SalesReturnOrder.GetPostedDocumentLinesToReverse.Invoke();\n+\n+ // [WHEN] Find Sales Line of Sales Return Order.\n+ SalesLine.SetRange(\"Document Type\", SalesLine.\"Document Type\"::\"Return Order\");\n+ SalesLine.SetRange(\"Document No.\", SalesHeader2.\"No.\");\n+ SalesLine.SetRange(Type, SalesLine.Type::\"Charge (Item)\");\n+ SalesLine.FindFirst();\n+\n+ // [VERIFY] Return Qty. to Receive in Sales Line is 0.\n+ Assert.AreEqual(0, SalesLine.\"Return Qty. to Receive\", ReturnQtyToReceiveMustBeZeroErr);\n+\n+ // [WHEN] Open Sales Return Order Subform page.\n+ SalesReturnOrderSubform.OpenEdit();\n+ SalesReturnOrderSubform.GoToRecord(SalesLine);\n+\n+ // [VERIFY] Quantity and Qty. to Assign in Sales Line are same.\n+ Assert.AreEqual(\n+ Quantity,\n+ SalesReturnOrderSubform.\"Qty. to Assign\".AsDecimal(),\n+ StrSubstNo(\n+ QtyToAssignErr,\n+ SalesReturnOrderSubform.\"Qty. to Assign\".Caption(),\n+ Quantity,\n+ SalesReturnOrderSubform.Caption()));\n+ end;\n+\n local procedure Initialize()\n var\n ReportSelections: Record \"Report Selections\";\n@@ -7148,6 +7227,64 @@ codeunit 134387 \"ERM Sales Documents III\"\n SalesReceivablesSetup.Modify();\n end;\n \n+ local procedure CreateSalesOrderWithItemCharge(\n+ var SalesHeader: Record \"Sales Header\";\n+ ItemChargeNo: Code[20];\n+ ItemNo: Code[20];\n+ Quantity: Decimal)\n+ var\n+ SalesLineItemCharge: Record \"Sales Line\";\n+ SalesLineItem: Record \"Sales Line\";\n+ Customer: Record Customer;\n+ begin\n+ LibrarySales.CreateCustomer(Customer);\n+\n+ LibrarySales.CreateSalesHeader(SalesHeader, SalesHeader.\"Document Type\"::Order, Customer.\"No.\");\n+ LibrarySales.CreateSalesLine(\n+ SalesLineItem,\n+ SalesHeader,\n+ SalesLineItem.Type::Item,\n+ ItemNo,\n+ Quantity);\n+\n+ SalesLineItem.Validate(\"Unit Price\", LibraryRandom.RandDec(100, 2));\n+ SalesLineItem.Modify(true);\n+\n+ LibrarySales.CreateSalesLine(\n+ SalesLineItemCharge,\n+ SalesHeader,\n+ SalesLineItemCharge.Type::\"Charge (Item)\",\n+ ItemChargeNo,\n+ Quantity);\n+\n+ SalesLineItemCharge.Validate(\"Unit Price\", LibraryRandom.RandDec(100, 2));\n+ SalesLineItemCharge.Modify(true);\n+ end;\n+\n+ local procedure SetSalesLinesQtyToShip(var SalesHeader: Record \"Sales Header\"; Quantity: Decimal)\n+ var\n+ SalesLine: Record \"Sales Line\";\n+ begin\n+ SalesLine.SetRange(\"Document Type\", SalesHeader.\"Document Type\");\n+ SalesLine.SetRange(\"Document No.\", SalesHeader.\"No.\");\n+ SalesLine.FindSet();\n+ repeat\n+ SalesLine.Validate(\"Qty. to Ship\", Quantity);\n+ SalesLine.Modify(true);\n+ until SalesLine.Next() = 0;\n+ end;\n+\n+ local procedure UpdateQtyToAssignOnItemChargeAssignment(SalesHeader: Record \"Sales Header\")\n+ var\n+ SalesLine: Record \"Sales Line\";\n+ begin\n+ SalesLine.SetRange(\"Document Type\", SalesHeader.\"Document Type\");\n+ SalesLine.SetRange(\"Document No.\", SalesHeader.\"No.\");\n+ SalesLine.SetRange(Type, SalesLine.Type::\"Charge (Item)\");\n+ SalesLine.FindFirst();\n+ SalesLine.ShowItemChargeAssgnt();\n+ end;\n+\n [ConfirmHandler]\n [Scope('OnPrem')]\n procedure CreateEmptyPostedInvConfirmHandler(Question: Text[1024]; var Reply: Boolean)\n@@ -7426,5 +7563,20 @@ codeunit 134387 \"ERM Sales Documents III\"\n Assert.AreEqual(LibraryVariableStorage.DequeueText(), ChangeLogEntries.\"New Value\".Value(), ChangeLogEntries.\"New Value\".Caption());\n ChangeLogEntries.OK().Invoke();\n end;\n+\n+ [ModalPageHandler]\n+ [Scope('OnPrem')]\n+ procedure PostedSalesDocumentLinesPageHandler(var PostedSalesDocumentLines: TestPage \"Posted Sales Document Lines\")\n+ begin\n+ PostedSalesDocumentLines.PostedInvoices.Filter.SetFilter(\"No.\", LibraryVariableStorage.DequeueText());\n+ PostedSalesDocumentLines.OK().Invoke();\n+ end;\n+\n+ [ModalPageHandler]\n+ [Scope('OnPrem')]\n+ procedure SuggestItemChargeAssignmentPageHandler(var ItemChargeAssignmentSales: TestPage \"Item Charge Assignment (Sales)\")\n+ begin\n+ ItemChargeAssignmentSales.SuggestItemChargeAssignment.Invoke();\n+ end;\n }\n \n", "patch": "diff --git a/App/Layers/W1/BaseApp/Purchases/Document/ItemChargeAssignmentPurch.Table.al b/App/Layers/W1/BaseApp/Purchases/Document/ItemChargeAssignmentPurch.Table.al\n--- a/App/Layers/W1/BaseApp/Purchases/Document/ItemChargeAssignmentPurch.Table.al\n+++ b/App/Layers/W1/BaseApp/Purchases/Document/ItemChargeAssignmentPurch.Table.al\n@@ -53,10 +53,9 @@ table 5805 \"Item Charge Assignment (Purch)\"\n DecimalPlaces = 0 : 5;\n \n trigger OnValidate()\n begin\n PurchLine.Get(\"Document Type\", \"Document No.\", \"Document Line No.\");\n- if Rec.\"Qty. to Assign\" <> xRec.\"Qty. to Assign\" then\n- PurchLine.TestField(\"Qty. to Invoice\");\n+ // validation moved out of OnValidate trigger\n \n TestField(\"Applies-to Doc. Line No.\");\n if (\"Qty. to Assign\" <> 0) and (\"Applies-to Doc. Type\" = \"Document Type\") then\ndiff --git a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al\n--- a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al\n@@ -56,10 +56,10 @@ table 5809 \"Item Charge Assignment (Sales)\"\n DecimalPlaces = 0 : 5;\n \n trigger OnValidate()\n begin\n SalesLine.Get(\"Document Type\", \"Document No.\", \"Document Line No.\");\n- if Rec.\"Qty. to Assign\" <> xRec.\"Qty. to Assign\" then\n- SalesLine.TestField(\"Qty. to Invoice\");\n+ // validation moved out of OnValidate trigger\n+\n TestField(\"Applies-to Doc. Line No.\");\n if (\"Qty. to Assign\" <> 0) and (\"Applies-to Doc. Type\" = \"Document Type\") then\n if SalesLineInvoiced() then\n"} +{"instance_id": "microsoftInternal__NAV-176426__cf-1", "base_instance_id": "microsoftInternal__NAV-176426", "variant_description": "GetItemUnitCost does not update Rolled-up Material Cost", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-176426__cf-2", "FAIL_TO_PASS": [{"codeunitID": 137391, "functionName": ["RolledUpMaterialAndCapacityCostWithRoutingAndNoBOM"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM/SCMBOMCostSharesReport.Codeunit.al b/App/Layers/W1/Tests/SCM/SCMBOMCostSharesReport.Codeunit.al\n--- a/App/Layers/W1/Tests/SCM/SCMBOMCostSharesReport.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM/SCMBOMCostSharesReport.Codeunit.al\n@@ -652,6 +652,45 @@ codeunit 137391 \"SCM - BOM Cost Shares Report\"\n BOMCostShares.Close();\n end;\n \n+ [Test]\n+ procedure RolledUpMaterialAndCapacityCostWithRoutingAndNoBOM()\n+ var\n+ FinalItem: Record Item;\n+ InterimItem: Record Item;\n+ ProductionBOMHeader: Record \"Production BOM Header\";\n+ ProductionBOMLine: Record \"Production BOM Line\";\n+ BOMBuffer: Record \"BOM Buffer\";\n+ BOMCostShares: TestPage \"BOM Cost Shares\";\n+ TotalLeafsRolledUpCapacityCost: Decimal;\n+ QtyPer: Decimal;\n+ begin\n+ // [FEATURE] [BOM Cost Share]\n+ // [SCENARIO 500356] Only Unit Cost should fallback, rolled-up material cost remains unchanged.\n+ Initialize();\n+ QtyPer := LibraryRandom.RandIntInRange(5, 10);\n+\n+ LibraryAssembly.CreateItem(InterimItem, InterimItem.\"Costing Method\"::FIFO, InterimItem.\"Replenishment System\"::\"Prod. Order\", '', '');\n+ InterimItem.Validate(\"Unit Cost\", LibraryRandom.RandDecInRange(50, 100, 2));\n+ InterimItem.Modify(true);\n+ LibraryAssembly.CreateRouting(InterimItem, LibraryRandom.RandInt(2));\n+ UpdateRoutingCostValues(InterimItem.\"Routing No.\");\n+\n+ LibraryAssembly.CreateItem(FinalItem, FinalItem.\"Costing Method\"::FIFO, FinalItem.\"Replenishment System\"::\"Prod. Order\", '', '');\n+ LibraryManufacturing.CreateProductionBOMHeader(ProductionBOMHeader, FinalItem.\"Base Unit of Measure\");\n+ LibraryManufacturing.CreateProductionBOMLine(\n+ ProductionBOMHeader, ProductionBOMLine, '', ProductionBOMLine.Type::Item, InterimItem.\"No.\", QtyPer);\n+ LibraryManufacturing.UpdateProductionBOMStatus(ProductionBOMHeader, ProductionBOMHeader.Status::Certified);\n+ FinalItem.Validate(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n+ FinalItem.Modify(true);\n+\n+ BOMCostShares.Trap();\n+ RunBOMCostSharesPage(FinalItem);\n+ TotalLeafsRolledUpCapacityCost += GetRolledUpCapacityCostValue(BOMCostShares, BOMBuffer.Type::\"Machine Center\");\n+ TotalLeafsRolledUpCapacityCost += GetRolledUpCapacityCostValue(BOMCostShares, BOMBuffer.Type::\"Work Center\");\n+ VerifyParentItemMaterialAndCapacityCost(BOMCostShares, InterimItem.\"No.\", 0, TotalLeafsRolledUpCapacityCost);\n+ BOMCostShares.Close();\n+ end;\n+\n local procedure CreateRoutingWithWorkCenter(WorkCenterNo: Code[20]; SetupTime: Decimal; RunTime: Decimal; LotSize: Decimal): Code[20]\n var\n RoutingHeader: Record \"Routing Header\";\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Inventory/BOM/BOMBuffer.Table.al b/App/Layers/W1/BaseApp/Inventory/BOM/BOMBuffer.Table.al\n--- a/App/Layers/W1/BaseApp/Inventory/BOM/BOMBuffer.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/BOM/BOMBuffer.Table.al\n@@ -872,6 +872,18 @@ table 5870 \"BOM Buffer\"\n OnAfterGetItemCosts(Rec, Item);\n end;\n \n+ procedure GetItemUnitCost()\n+ var\n+ Item: Record Item;\n+ begin\n+ TestField(Type, Type::Item);\n+ Item.Get(\"No.\");\n+\n+ \"Unit Cost\" := Item.\"Unit Cost\";\n+ \"Single-Level Material Cost\" :=\n+ RoundUnitAmt(Item.\"Unit Cost\", UOMMgt.GetQtyPerUnitOfMeasure(Item, \"Unit of Measure Code\") * \"Qty. per Top Item\");\n+ end;\n+\n procedure GetResCosts()\n var\n Res: Record Resource;\ndiff --git a/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\n--- a/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\n@@ -714,9 +714,11 @@ codeunit 5870 \"Calculate BOM Tree\"\n end;\n BOMBuffer.RoundCosts(1 / LotSize);\n end else\n- if HasBomStructure(BOMBuffer.\"No.\") then begin\n+ if IsProductionOrAssemblyItem(BOMBuffer.\"No.\") then begin\n BOMBuffer.CalcOvhdCost();\n BOMBuffer.RoundCosts(1 / LotSize);\n+ if not HasBomStructure(BOMBuffer.\"No.\") then\n+ BOMBuffer.GetItemUnitCost();\n end else\n if BOMBuffer.Type = BOMBuffer.Type::Item then begin\n BOMBuffer.RoundCosts(1 / LotSize);\n@@ -998,6 +1000,16 @@ codeunit 5870 \"Calculate BOM Tree\"\n end;\n end;\n \n+ local procedure IsProductionOrAssemblyItem(ItemNo: Code[20]): Boolean\n+ var\n+ Item: Record Item;\n+ begin\n+ if not Item.Get(ItemNo) then\n+ exit(false);\n+\n+ exit(Item.IsMfgItem() or Item.IsAssemblyItem());\n+ end;\n+\n procedure SetItemFilter(var Item: Record Item)\n begin\n ItemFilter.CopyFilters(Item);\n"} +{"instance_id": "microsoftInternal__NAV-176426__cf-2", "base_instance_id": "microsoftInternal__NAV-176426", "variant_description": "Fallback triggered after item cost retrieval instead of during BOM tree calculation", "failure_layer": null, "FAIL_TO_PASS": [{"codeunitID": 137391, "functionName": ["RolledUpMaterialAndCapacityCostWithRoutingAndNoBOM"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM/SCMBOMCostSharesReport.Codeunit.al b/App/Layers/W1/Tests/SCM/SCMBOMCostSharesReport.Codeunit.al\nindex b8748ee..b41186d 100644\n--- a/App/Layers/W1/Tests/SCM/SCMBOMCostSharesReport.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM/SCMBOMCostSharesReport.Codeunit.al\n@@ -652,6 +652,45 @@ codeunit 137391 \"SCM - BOM Cost Shares Report\"\n BOMCostShares.Close();\n end;\n \n+ [Test]\n+ procedure RolledUpMaterialAndCapacityCostWithRoutingAndNoBOM()\n+ var\n+ FinalItem: Record Item;\n+ InterimItem: Record Item;\n+ ProductionBOMHeader: Record \"Production BOM Header\";\n+ ProductionBOMLine: Record \"Production BOM Line\";\n+ BOMBuffer: Record \"BOM Buffer\";\n+ BOMCostShares: TestPage \"BOM Cost Shares\";\n+ TotalLeafsRolledUpCapacityCost: Decimal;\n+ QtyPer: Decimal;\n+ begin\n+ // [FEATURE] [BOM Cost Share]\n+ // [SCENARIO 500356] Rolled-up Material Cost and Rolled-up Capacity Cost for a interim production item with no BOM, cost determined after item cost retrieval.\n+ Initialize();\n+ QtyPer := LibraryRandom.RandIntInRange(5, 10);\n+\n+ LibraryAssembly.CreateItem(InterimItem, InterimItem.\"Costing Method\"::FIFO, InterimItem.\"Replenishment System\"::\"Prod. Order\", '', '');\n+ InterimItem.Validate(\"Unit Cost\", LibraryRandom.RandDecInRange(50, 100, 2));\n+ InterimItem.Modify(true);\n+ LibraryAssembly.CreateRouting(InterimItem, LibraryRandom.RandInt(2));\n+ UpdateRoutingCostValues(InterimItem.\"Routing No.\");\n+\n+ LibraryAssembly.CreateItem(FinalItem, FinalItem.\"Costing Method\"::FIFO, FinalItem.\"Replenishment System\"::\"Prod. Order\", '', '');\n+ LibraryManufacturing.CreateProductionBOMHeader(ProductionBOMHeader, FinalItem.\"Base Unit of Measure\");\n+ LibraryManufacturing.CreateProductionBOMLine(\n+ ProductionBOMHeader, ProductionBOMLine, '', ProductionBOMLine.Type::Item, InterimItem.\"No.\", QtyPer);\n+ LibraryManufacturing.UpdateProductionBOMStatus(ProductionBOMHeader, ProductionBOMHeader.Status::Certified);\n+ FinalItem.Validate(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n+ FinalItem.Modify(true);\n+\n+ BOMCostShares.Trap();\n+ RunBOMCostSharesPage(FinalItem);\n+ TotalLeafsRolledUpCapacityCost += GetRolledUpCapacityCostValue(BOMCostShares, BOMBuffer.Type::\"Machine Center\");\n+ TotalLeafsRolledUpCapacityCost += GetRolledUpCapacityCostValue(BOMCostShares, BOMBuffer.Type::\"Work Center\");\n+ VerifyParentItemMaterialAndCapacityCost(BOMCostShares, InterimItem.\"No.\", InterimItem.\"Unit Cost\" * QtyPer, TotalLeafsRolledUpCapacityCost);\n+ BOMCostShares.Close();\n+ end;\n+\n local procedure CreateRoutingWithWorkCenter(WorkCenterNo: Code[20]; SetupTime: Decimal; RunTime: Decimal; LotSize: Decimal): Code[20]\n var\n RoutingHeader: Record \"Routing Header\";\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Inventory/BOM/BOMBuffer.Table.al b/App/Layers/W1/BaseApp/Inventory/BOM/BOMBuffer.Table.al\nindex ab93f2c..55d1cb4 100644\n--- a/App/Layers/W1/BaseApp/Inventory/BOM/BOMBuffer.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/BOM/BOMBuffer.Table.al\n@@ -870,6 +870,29 @@ table 5870 \"BOM Buffer\"\n RoundCosts(UOMMgt.GetQtyPerUnitOfMeasure(Item, \"Unit of Measure Code\") * \"Qty. per Top Item\");\n \n OnAfterGetItemCosts(Rec, Item);\n+\n+ if not HasBomStructure(Item) then\n+ GetItemUnitCostFallback();\n+ end;\n+\n+ procedure GetItemUnitCostFallback()\n+ var\n+ Item: Record Item;\n+ UOMMgt: Codeunit \"Unit of Measure Management\";\n+ begin\n+ TestField(Type, Type::Item);\n+ Item.Get(\"No.\");\n+\n+ \"Unit Cost\" := Item.\"Unit Cost\";\n+ \"Single-Level Material Cost\" :=\n+ RoundUnitAmt(Item.\"Unit Cost\", UOMMgt.GetQtyPerUnitOfMeasure(Item, \"Unit of Measure Code\") * \"Qty. per Top Item\");\n+ \"Rolled-up Material Cost\" :=\n+ RoundUnitAmt(Item.\"Unit Cost\", UOMMgt.GetQtyPerUnitOfMeasure(Item, \"Unit of Measure Code\") * \"Qty. per Top Item\");\n+ end;\n+\n+ local procedure HasBomStructure(Item: Record Item): Boolean\n+ begin\n+ exit((Item.\"Production BOM No.\" <> '') or (Item.\"Assembly BOM\" = true));\n end;\n \n procedure GetResCosts()\ndiff --git a/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\nindex d639a56..984666d 100644\n--- a/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\n@@ -714,9 +714,11 @@ codeunit 5870 \"Calculate BOM Tree\"\n end;\n BOMBuffer.RoundCosts(1 / LotSize);\n end else\n- if HasBomStructure(BOMBuffer.\"No.\") then begin\n+ if IsProductionOrAssemblyItem(BOMBuffer.\"No.\") then begin\n BOMBuffer.CalcOvhdCost();\n BOMBuffer.RoundCosts(1 / LotSize);\n+ if not HasBomStructure(BOMBuffer.\"No.\") then\n+ BOMBuffer.GetItemUnitCostFallback();\n end else\n if BOMBuffer.Type = BOMBuffer.Type::Item then begin\n BOMBuffer.RoundCosts(1 / LotSize);\n@@ -998,6 +1000,16 @@ codeunit 5870 \"Calculate BOM Tree\"\n end;\n end;\n \n+ local procedure IsProductionOrAssemblyItem(ItemNo: Code[20]): Boolean\n+ var\n+ Item: Record Item;\n+ begin\n+ if not Item.Get(ItemNo) then\n+ exit(false);\n+\n+ exit(Item.IsMfgItem() or Item.IsAssemblyItem());\n+ end;\n+\n procedure SetItemFilter(var Item: Record Item)\n begin\n ItemFilter.CopyFilters(Item);\n"} +{"instance_id": "microsoftInternal__NAV-177493__cf-1", "base_instance_id": "microsoftInternal__NAV-177493", "variant_description": "Reserve=Never filtering deferred to post-processing instead of source-level filtering for Sales demand", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-177493__cf-1", "FAIL_TO_PASS": [{"codeunitID": 137023, "functionName": ["ItemWithReserveNeverNotInReservationWorksheet"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM/SCMReservationWorksheet.Codeunit.al b/App/Layers/W1/Tests/SCM/SCMReservationWorksheet.Codeunit.al\nindex 6c7feca..fa163b5 100644\n--- a/App/Layers/W1/Tests/SCM/SCMReservationWorksheet.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM/SCMReservationWorksheet.Codeunit.al\n@@ -13,6 +13,7 @@ codeunit 137023 \"SCM Reservation Worksheet\"\n LibraryInventory: Codeunit \"Library - Inventory\";\n LibrarySales: Codeunit \"Library - Sales\";\n LibraryWarehouse: Codeunit \"Library - Warehouse\";\n+ LibraryAssembly: Codeunit \"Library - Assembly\";\n LibrarySetupStorage: Codeunit \"Library - Setup Storage\";\n LibraryVariableStorage: Codeunit \"Library - Variable Storage\";\n Assert: Codeunit Assert;\n@@ -943,6 +944,63 @@ codeunit 137023 \"SCM Reservation Worksheet\"\n VerifyQtyToReserveOnReservWkshLine(ReservationWkshLine, SalesOrderList.Get(3), GetOutstandingQtyOnSalesLine(SalesOrderList.Get(3)));\n end;\n \n+ [Test]\n+ [HandlerFunctions('GetDemandToReserveRequestPageHandler')]\n+ procedure ItemWithReserveNeverNotInReservationWorksheet()\n+ var\n+ Item: Record Item;\n+ Location: Record Location;\n+ SalesHeader: Record \"Sales Header\";\n+ SalesLine: Record \"Sales Line\";\n+ AssemblyHeader: Record \"Assembly Header\";\n+ AssemblyLine: Record \"Assembly Line\";\n+ ReservationWkshBatch: Record \"Reservation Wksh. Batch\";\n+ ItemJournalLine: Record \"Item Journal Line\";\n+ ReservationWkshLine: Record \"Reservation Wksh. Line\";\n+ ItemList: List of [Code[20]];\n+ Qty: Decimal;\n+ begin\n+ // [Reservation Worksheet]\n+ // [SCENARIO 502388] Item with \"Reserve\" = \"Never\" should not be included in the reservation worksheet.\n+ Initialize();\n+\n+ // [GIVEN] Item \"X\" with \"Reserve\" = \"Never\".\n+ LibraryInventory.CreateItem(Item);\n+ Item.Validate(\"Reserve\", Item.\"Reserve\"::Never);\n+ Item.Modify(true);\n+ ItemList.Add(Item.\"No.\");\n+\n+ // [GIVEN] New location\n+ LibraryWarehouse.CreateLocationWithInventoryPostingSetup(Location);\n+\n+ // [GIVEN] Item \"X\" available in the inventory.\n+ Qty := Random(100);\n+ LibraryInventory.CreateItemJournalLineInItemTemplate(ItemJournalLine, Item.\"No.\", Location.Code, '', Qty);\n+ LibraryInventory.PostItemJournalLine(ItemJournalLine.\"Journal Template Name\", ItemJournalLine.\"Journal Batch Name\");\n+\n+ // [GIVEN] Sales order for the item \"X\" with \"Reserve\" = \"Never\".\n+ LibrarySales.CreateSalesDocumentWithItem(SalesHeader, SalesLine, SalesHeader.\"Document Type\"::Order, '', Item.\"No.\", Qty / 2, Location.Code, WorkDate());\n+ SalesLine.TestField(Reserve, SalesLine.Reserve::Never);\n+\n+ // [GIVEN] Assembly order with line - item \"X\" with \"Reserve\" = \"Never\".\n+ LibraryAssembly.CreateAssemblyHeader(AssemblyHeader, WorkDate(), LibraryInventory.CreateItemNo(), Location.Code, Qty / 2, '');\n+ LibraryAssembly.CreateAssemblyLine(AssemblyHeader, AssemblyLine, \"BOM Component Type\"::Item, Item.\"No.\", '', 1, 1, '');\n+ AssemblyLine.TestField(Reserve, AssemblyLine.Reserve::Never);\n+\n+ // [WHEN] Run CalculateDemand for item \"X\" to fill ReservationWorksheetLine.\n+ LibraryVariableStorage.Enqueue(Item.\"No.\");\n+ ReservationWkshBatch.FindFirst();\n+ GetDemand(ReservationWkshBatch.Name, ItemList);\n+\n+ // [THEN] Verify that reservation worksheet line for the item with \"Reserve\" = \"Never\" should not be created.\n+ ReservationWkshLine.SetRange(\"Journal Batch Name\", ReservationWkshBatch.Name);\n+ ReservationWkshLine.SetRange(\"Item No.\", Item.\"No.\");\n+ ReservationWkshLine.SetRange(\"Source Type\", Database::\"Sales Line\");\n+ Assert.IsFalse(ReservationWkshLine.IsEmpty, 'Sales demand with Reserve=Never should appear (filtering deferred to post-processing).');\n+ ReservationWkshLine.SetRange(\"Source Type\", Database::\"Assembly Line\");\n+ Assert.IsTrue(ReservationWkshLine.IsEmpty, 'Assembly demand with Reserve=Never should still be filtered at source.');\n+ end;\n+\n local procedure Initialize()\n begin\n LibraryTestInitialize.OnTestInitialize(CODEUNIT::\"SCM Reservation Worksheet\");\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\nindex bb47904..69a8d61 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n@@ -40,6 +40,7 @@ report 302 \"Get Demand To Reserve\"\n SetFilter(\"Variant Code\", FilterItem.GetFilter(\"Variant Filter\"));\n SetFilter(\"Location Code\", FilterItem.GetFilter(\"Location Filter\"));\n SetFilter(\"Shipment Date\", FilterItem.GetFilter(\"Date Filter\"));\n+ // Reserve filtering deferred to post-processing stage\n \n FilterGroup(2);\n if DateFilter <> '' then\n@@ -140,6 +141,7 @@ report 302 \"Get Demand To Reserve\"\n SetFilter(\"Variant Code\", FilterItem.GetFilter(\"Variant Filter\"));\n SetFilter(\"Location Code\", FilterItem.GetFilter(\"Location Filter\"));\n SetFilter(\"Needed by Date\", FilterItem.GetFilter(\"Date Filter\"));\n+ SetFilter(Reserve, '<>%1', ServiceOrderLine.Reserve::Never);\n \n FilterGroup(2);\n if DateFilter <> '' then\n@@ -190,6 +192,7 @@ report 302 \"Get Demand To Reserve\"\n SetFilter(\"Variant Code\", FilterItem.GetFilter(\"Variant Filter\"));\n SetFilter(\"Location Code\", FilterItem.GetFilter(\"Location Filter\"));\n SetFilter(\"Planning Date\", FilterItem.GetFilter(\"Date Filter\"));\n+ SetFilter(Reserve, '<>%1', JobPlanningLine.Reserve::Never);\n \n FilterGroup(2);\n if DateFilter <> '' then\n@@ -241,6 +244,7 @@ report 302 \"Get Demand To Reserve\"\n SetFilter(\"Variant Code\", FilterItem.GetFilter(\"Variant Filter\"));\n SetFilter(\"Location Code\", FilterItem.GetFilter(\"Location Filter\"));\n SetFilter(\"Due Date\", FilterItem.GetFilter(\"Date Filter\"));\n+ SetFilter(Reserve, '<>%1', AssemblyLine.Reserve::Never);\n \n FilterGroup(2);\n if DateFilter <> '' then\n"} +{"instance_id": "microsoftInternal__NAV-177493__cf-2", "base_instance_id": "microsoftInternal__NAV-177493", "variant_description": "Reserve=Never restriction applies only to Sales and Service demand, not Assembly or Job Planning", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-177493__cf-2", "FAIL_TO_PASS": [{"codeunitID": 137023, "functionName": ["ItemWithReserveNeverNotInReservationWorksheet"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM/SCMReservationWorksheet.Codeunit.al b/App/Layers/W1/Tests/SCM/SCMReservationWorksheet.Codeunit.al\nindex 6c7feca..1e379fe 100644\n--- a/App/Layers/W1/Tests/SCM/SCMReservationWorksheet.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM/SCMReservationWorksheet.Codeunit.al\n@@ -467,7 +467,54 @@ codeunit 137023 \"SCM Reservation Worksheet\"\n VerifyQtyToReserveOnReservWkshLine(ReservationWkshLine, SalesOrderList.Get(14), 0);\n VerifyQtyToReserveOnReservWkshLine(ReservationWkshLine, SalesOrderList.Get(15), 0);\n end;\n \n+ [Test]\n+ [HandlerFunctions('GetDemandToReserveRequestPageHandler')]\n+ procedure ItemWithReserveNeverNotInReservationWorksheet()\n+ var\n+ Item: Record Item;\n+ Location: Record Location;\n+ SalesHeader: Record \"Sales Header\";\n+ SalesLine: Record \"Sales Line\";\n+ ReservationWkshBatch: Record \"Reservation Wksh. Batch\";\n+ ItemJournalLine: Record \"Item Journal Line\";\n+ ReservationWkshLine: Record \"Reservation Wksh. Line\";\n+ ItemList: List of [Code[20]];\n+ Qty: Decimal;\n+ begin\n+ // [Reservation Worksheet]\n+ // [SCENARIO 502388] Item with \"Reserve\" = \"Never\" should not be included in the reservation worksheet.\n+ Initialize();\n+\n+ // [GIVEN] Item \"X\" with \"Reserve\" = \"Never\".\n+ LibraryInventory.CreateItem(Item);\n+ Item.Validate(\"Reserve\", Item.\"Reserve\"::Never);\n+ Item.Modify(true);\n+ ItemList.Add(Item.\"No.\");\n+\n+ // [GIVEN] New location\n+ LibraryWarehouse.CreateLocationWithInventoryPostingSetup(Location);\n+\n+ // [GIVEN] Item \"X\" available in the inventory.\n+ Qty := Random(100);\n+ LibraryInventory.CreateItemJournalLineInItemTemplate(ItemJournalLine, Item.\"No.\", Location.Code, '', Qty);\n+ LibraryInventory.PostItemJournalLine(ItemJournalLine.\"Journal Template Name\", ItemJournalLine.\"Journal Batch Name\");\n+\n+ // [GIVEN] Sales order for the item \"X\" with \"Reserve\" = \"Never\".\n+ LibrarySales.CreateSalesDocumentWithItem(SalesHeader, SalesLine, SalesHeader.\"Document Type\"::Order, '', Item.\"No.\", Qty / 2, Location.Code, WorkDate());\n+ SalesLine.TestField(Reserve, SalesLine.Reserve::Never);\n+\n+ // [WHEN] Run CalculateDemand for item \"X\" to fill ReservationWorksheetLine.\n+ LibraryVariableStorage.Enqueue(Item.\"No.\");\n+ ReservationWkshBatch.FindFirst();\n+ GetDemand(ReservationWkshBatch.Name, ItemList);\n+\n+ // [THEN] Verify that reservation worksheet line for the item with \"Reserve\" = \"Never\" should not be created.\n+ ReservationWkshLine.SetRange(\"Journal Batch Name\", ReservationWkshBatch.Name);\n+ ReservationWkshLine.SetRange(\"Item No.\", Item.\"No.\");\n+ Assert.IsTrue(ReservationWkshLine.IsEmpty, 'Reservation Worksheet line for the item with \"Reserve\" = \"Never\" should not be created.');\n+ end;\n+\n [Test]\n [HandlerFunctions('GetDemandToReserveRequestPageHandler')]\n procedure AllocatingQuantityWithNoRules()\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\nindex bb47904..51b56b0 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n@@ -40,6 +40,7 @@ report 302 \"Get Demand To Reserve\"\n SetFilter(\"Variant Code\", FilterItem.GetFilter(\"Variant Filter\"));\n SetFilter(\"Location Code\", FilterItem.GetFilter(\"Location Filter\"));\n SetFilter(\"Shipment Date\", FilterItem.GetFilter(\"Date Filter\"));\n+ SetFilter(Reserve, '<>%1', SalesOrderLine.Reserve::Never);\n \n FilterGroup(2);\n if DateFilter <> '' then\n@@ -140,6 +141,7 @@ report 302 \"Get Demand To Reserve\"\n SetFilter(\"Variant Code\", FilterItem.GetFilter(\"Variant Filter\"));\n SetFilter(\"Location Code\", FilterItem.GetFilter(\"Location Filter\"));\n SetFilter(\"Needed by Date\", FilterItem.GetFilter(\"Date Filter\"));\n+ SetFilter(Reserve, '<>%1', ServiceOrderLine.Reserve::Never);\n \n FilterGroup(2);\n if DateFilter <> '' then\n@@ -190,6 +192,7 @@ report 302 \"Get Demand To Reserve\"\n SetFilter(\"Variant Code\", FilterItem.GetFilter(\"Variant Filter\"));\n SetFilter(\"Location Code\", FilterItem.GetFilter(\"Location Filter\"));\n SetFilter(\"Planning Date\", FilterItem.GetFilter(\"Date Filter\"));\n+ // Assembly demand allowed regardless of Reserve setting\n \n FilterGroup(2);\n if DateFilter <> '' then\n@@ -241,6 +244,7 @@ report 302 \"Get Demand To Reserve\"\n SetFilter(\"Variant Code\", FilterItem.GetFilter(\"Variant Filter\"));\n SetFilter(\"Location Code\", FilterItem.GetFilter(\"Location Filter\"));\n SetFilter(\"Due Date\", FilterItem.GetFilter(\"Date Filter\"));\n+ // Assembly demand allowed regardless of Reserve setting\n \n FilterGroup(2);\n if DateFilter <> '' then\n"} +{"instance_id": "microsoftInternal__NAV-177493__cf-3", "base_instance_id": "microsoftInternal__NAV-177493", "variant_description": "Reserve filter uses Item enum source instead of demand-line-specific enum source", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-177493__cf-3", "FAIL_TO_PASS": [{"codeunitID": 137023, "functionName": ["ItemWithReserveNeverNotInReservationWorksheet"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM/SCMReservationWorksheet.Codeunit.al b/App/Layers/W1/Tests/SCM/SCMReservationWorksheet.Codeunit.al\nindex 6c7fecaffcd2..fa163b5a789b 100644\n--- a/App/Layers/W1/Tests/SCM/SCMReservationWorksheet.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM/SCMReservationWorksheet.Codeunit.al\n@@ -13,6 +13,7 @@ codeunit 137023 \"SCM Reservation Worksheet\"\n LibraryInventory: Codeunit \"Library - Inventory\";\n LibrarySales: Codeunit \"Library - Sales\";\n LibraryWarehouse: Codeunit \"Library - Warehouse\";\n+ LibraryAssembly: Codeunit \"Library - Assembly\";\n LibrarySetupStorage: Codeunit \"Library - Setup Storage\";\n LibraryVariableStorage: Codeunit \"Library - Variable Storage\";\n Assert: Codeunit Assert;\n@@ -943,6 +944,60 @@ codeunit 137023 \"SCM Reservation Worksheet\"\n VerifyQtyToReserveOnReservWkshLine(ReservationWkshLine, SalesOrderList.Get(3), GetOutstandingQtyOnSalesLine(SalesOrderList.Get(3)));\n end;\n \n+ [Test]\n+ [HandlerFunctions('GetDemandToReserveRequestPageHandler')]\n+ procedure ItemWithReserveNeverNotInReservationWorksheet()\n+ var\n+ Item: Record Item;\n+ Location: Record Location;\n+ SalesHeader: Record \"Sales Header\";\n+ SalesLine: Record \"Sales Line\";\n+ AssemblyHeader: Record \"Assembly Header\";\n+ AssemblyLine: Record \"Assembly Line\";\n+ ReservationWkshBatch: Record \"Reservation Wksh. Batch\";\n+ ItemJournalLine: Record \"Item Journal Line\";\n+ ReservationWkshLine: Record \"Reservation Wksh. Line\";\n+ ItemList: List of [Code[20]];\n+ Qty: Decimal;\n+ begin\n+ // [Reservation Worksheet]\n+ // [SCENARIO 502388] Item with \"Reserve\" = \"Never\" should not be included in the reservation worksheet.\n+ Initialize();\n+\n+ // [GIVEN] Item \"X\" with \"Reserve\" = \"Never\".\n+ LibraryInventory.CreateItem(Item);\n+ Item.Validate(\"Reserve\", Item.\"Reserve\"::Never);\n+ Item.Modify(true);\n+ ItemList.Add(Item.\"No.\");\n+\n+ // [GIVEN] New location\n+ LibraryWarehouse.CreateLocationWithInventoryPostingSetup(Location);\n+\n+ // [GIVEN] Item \"X\" available in the inventory.\n+ Qty := Random(100);\n+ LibraryInventory.CreateItemJournalLineInItemTemplate(ItemJournalLine, Item.\"No.\", Location.Code, '', Qty);\n+ LibraryInventory.PostItemJournalLine(ItemJournalLine.\"Journal Template Name\", ItemJournalLine.\"Journal Batch Name\");\n+\n+ // [GIVEN] Sales order for the item \"X\" with \"Reserve\" = \"Never\".\n+ LibrarySales.CreateSalesDocumentWithItem(SalesHeader, SalesLine, SalesHeader.\"Document Type\"::Order, '', Item.\"No.\", Qty / 2, Location.Code, WorkDate());\n+ SalesLine.TestField(Reserve, SalesLine.Reserve::Never);\n+\n+ // [GIVEN] Assembly order with line - item \"X\" with \"Reserve\" = \"Never\".\n+ LibraryAssembly.CreateAssemblyHeader(AssemblyHeader, WorkDate(), LibraryInventory.CreateItemNo(), Location.Code, Qty / 2, '');\n+ LibraryAssembly.CreateAssemblyLine(AssemblyHeader, AssemblyLine, \"BOM Component Type\"::Item, Item.\"No.\", '', 1, 1, '');\n+ AssemblyLine.TestField(Reserve, AssemblyLine.Reserve::Never);\n+\n+ // [WHEN] Run CalculateDemand for item \"X\" to fill ReservationWorksheetLine.\n+ LibraryVariableStorage.Enqueue(Item.\"No.\");\n+ ReservationWkshBatch.FindFirst();\n+ GetDemand(ReservationWkshBatch.Name, ItemList);\n+\n+ // [THEN] Verify that reservation worksheet line for the item with \"Reserve\" = \"Never\" should not be created.\n+ ReservationWkshLine.SetRange(\"Journal Batch Name\", ReservationWkshBatch.Name);\n+ ReservationWkshLine.SetRange(\"Item No.\", Item.\"No.\");\n+ Assert.IsTrue(ReservationWkshLine.IsEmpty, 'Reservation Worksheet line for the item with \"Reserve\" = \"Never\" should not be created.');\n+ end;\n+\n local procedure Initialize()\n begin\n LibraryTestInitialize.OnTestInitialize(CODEUNIT::\"SCM Reservation Worksheet\");\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n@@ -40,6 +40,7 @@ report 302 \"Get Demand To Reserve\"\n SetFilter(\"Variant Code\", FilterItem.GetFilter(\"Variant Filter\"));\n SetFilter(\"Location Code\", FilterItem.GetFilter(\"Location Filter\"));\n SetFilter(\"Shipment Date\", FilterItem.GetFilter(\"Date Filter\"));\n+ SetFilter(Reserve, '<>%1', FilterItem.Reserve::Never);\n \n FilterGroup(2);\n if DateFilter <> '' then\n@@ -140,6 +141,7 @@ report 302 \"Get Demand To Reserve\"\n SetFilter(\"Variant Code\", FilterItem.GetFilter(\"Variant Filter\"));\n SetFilter(\"Location Code\", FilterItem.GetFilter(\"Location Filter\"));\n SetFilter(\"Needed by Date\", FilterItem.GetFilter(\"Date Filter\"));\n+ SetFilter(Reserve, '<>%1', FilterItem.Reserve::Never);\n \n FilterGroup(2);\n if DateFilter <> '' then\n@@ -190,6 +192,7 @@ report 302 \"Get Demand To Reserve\"\n SetFilter(\"Variant Code\", FilterItem.GetFilter(\"Variant Filter\"));\n SetFilter(\"Location Code\", FilterItem.GetFilter(\"Location Filter\"));\n SetFilter(\"Planning Date\", FilterItem.GetFilter(\"Date Filter\"));\n+ SetFilter(Reserve, '<>%1', FilterItem.Reserve::Never);\n \n FilterGroup(2);\n if DateFilter <> '' then\n@@ -241,6 +244,7 @@ report 302 \"Get Demand To Reserve\"\n SetFilter(\"Variant Code\", FilterItem.GetFilter(\"Variant Filter\"));\n SetFilter(\"Location Code\", FilterItem.GetFilter(\"Location Filter\"));\n SetFilter(\"Due Date\", FilterItem.GetFilter(\"Date Filter\"));\n+ SetFilter(Reserve, '<>%1', FilterItem.Reserve::Never);\n \n FilterGroup(2);\n if DateFilter <> '' then\n"} +{"instance_id": "microsoftInternal__NAV-178045__cf-1", "base_instance_id": "microsoftInternal__NAV-178045", "variant_description": "Fix only applies when multiple ILEs exist for the lot; test uses 2 journal lines instead of 3", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-178045__cf-1", "FAIL_TO_PASS": [{"codeunitID": 137404, "functionName": ["ConsumptionIsPostedForMultipleILEsOfSameLotNo"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM/SCMManufacturing.Codeunit.al b/App/Layers/W1/Tests/SCM/SCMManufacturing.Codeunit.al\nindex 9467380d9f9b..e1036e0420d9 100644\n--- a/App/Layers/W1/Tests/SCM/SCMManufacturing.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM/SCMManufacturing.Codeunit.al\n@@ -47,6 +47,7 @@ codeunit 137404 \"SCM Manufacturing\"\n Capacity2: Decimal;\n GLB_ItemTrackingQty: Integer;\n GLB_SerialNo: Code[50];\n+ ItemTrackingMode: Option \" \",\"Assign Lot No.\",\"Select Entries\",\"Update Quantity\",\"Manual Lot No.\"; \n DocumentNoDoesNotExistErr: Label 'Document No. %1 does not exist.', Comment = '%1: Document number (Code)';\n ExpectedQuantityErr: Label 'Quantity must be %1.', Comment = '%1: Quantity (decimal value)';\n ModifyRtngErr: Label 'You cannot modify Routing No. %1 because there is at least one %2 associated with it.';\n@@ -80,6 +81,7 @@ codeunit 137404 \"SCM Manufacturing\"\n DidntExpectWhsePickMsg: Label 'Did not expect a Warehouse Pick Request associated with the Production Order Component Line, since the line doesn''t have a postitive remaining quantity';\n ProdOrderNoHandlerErr: Label 'Prod. Order No. must be %1, actual value is %2.', Comment = '%1: Expected Prod. Order No. Value; %2: Actual Prod. Order No. Value.';\n ProdOrderStatusHandlerErr: Label 'Prod. Order Status must be %1, actual value is %2.', Comment = '%1: Expected Prod. Order Status Value; %2: Actual Prod. Order Status Value.';\n+ ItemLedgerEntryMustBeFoundErr: Label 'Item Ledger Entry must be found.';\n \n [Test]\n [HandlerFunctions('ConfirmHandlerTrue,OutputJournalItemtrackingPageHandler,MessageHandler')]\n@@ -4149,6 +4151,104 @@ codeunit 137404 \"SCM Manufacturing\"\n LibraryInventory.PostItemJournalLine(ItemJournalBatch.\"Journal Template Name\", ItemJournalBatch.Name);\n end;\n \n+ [Test]\n+ [Scope('OnPrem')]\n+ [HandlerFunctions('ItemTrackingAssignLotNoPageHandler,ProductionJournalPageHandlerOnlyConsumption,ConfirmHandlerTrue,MessageHandler')]\n+ procedure ConsumptionIsPostedForMultipleILEsOfSameLotNo()\n+ var\n+ CompItem, ProdItem : Record Item;\n+ Location: Record Location;\n+ UnitOfMeasure: Record \"Unit of Measure\";\n+ ItemUnitOfMeasure: Record \"Item Unit of Measure\";\n+ ItemTrackingCode: Record \"Item Tracking Code\";\n+ ProductionBOMHeader: Record \"Production BOM Header\";\n+ ProductionBOMLine: Record \"Production BOM Line\";\n+ ProductionOrder: Record \"Production Order\";\n+ ItemLedgerEntry: Record \"Item Ledger Entry\";\n+ LotNo: Code[10];\n+ Quantity: Decimal;\n+ ReleasedProdOrder: TestPage \"Released Production Order\";\n+ begin\n+ // [SCENARIO 501830] Consumption is posted against multiple Item Ledger Entries of same Lot No. when you post Production Journal from a Released Production Order.\n+ Initialize();\n+\n+ // [GIVEN] Create Item Tracking Code.\n+ LibraryItemTracking.CreateItemTrackingCode(ItemTrackingCode, false, true);\n+\n+ // [GIVEN] Create Unit of Measure.\n+ LibraryInventory.CreateUnitOfMeasureCode(UnitOfMeasure);\n+\n+ // [GIVEN] Create Component Item with Unit of Measure.\n+ CreateItemWithUOM(CompItem, UnitOfMeasure, ItemUnitOfMeasure);\n+ CompItem.Validate(\"Replenishment System\", CompItem.\"Replenishment System\"::Purchase);\n+ CompItem.Validate(Reserve, CompItem.Reserve::Always);\n+ CompItem.Validate(\"Flushing Method\", CompItem.\"Flushing Method\"::Manual);\n+ CompItem.Validate(\"Item Tracking Code\", ItemTrackingCode.Code);\n+ CompItem.Modify(true);\n+\n+ // [GIVEN] Create Location with Inventory Posting Setup.\n+ LibraryWarehouse.CreateLocationWithInventoryPostingSetup(Location);\n+\n+ // [GIVEN] Create Production Item with Unit of Measure.\n+ CreateItemWithUOM(ProdItem, UnitOfMeasure, ItemUnitOfMeasure);\n+\n+ // [GIVEN] Generate and save Lot No. and Quantity in two different Variable.\n+ LotNo := Format(LibraryRandom.RandText(4));\n+ Quantity := LibraryRandom.RandIntInRange(15, 15);\n+\n+ // [GIVEN] Create and Post three Item Journal Lines with same Lot No.\n+ // [GIVEN] Create and Post two Item Journal Lines with same Lot No.\n+ CreateAndPostItemJournalLineWithLotNo(CompItem.\"No.\", LibraryRandom.RandIntInRange(5, 5), LotNo, '', Location.Code, true);\n+ CreateAndPostItemJournalLineWithLotNo(CompItem.\"No.\", LibraryRandom.RandIntInRange(10, 10), LotNo, '', Location.Code, true);\n+\n+ // [GIVEN] Create a production BOM for the Production Item.\n+ LibraryManufacturing.CreateProductionBOMHeader(ProductionBOMHeader, ItemUnitOfMeasure.Code);\n+ LibraryManufacturing.CreateProductionBOMLine(\n+ ProductionBOMHeader,\n+ ProductionBOMLine,\n+ '',\n+ ProductionBOMLine.Type::Item,\n+ CompItem.\"No.\",\n+ LibraryRandom.RandIntInRange(1, 1));\n+\n+ // [GIVEN] Validate Unit of Measure in Production BOM.\n+ ProductionBOMLine.Validate(\"Unit of Measure Code\", ItemUnitOfMeasure.Code);\n+ ProductionBOMLine.Modify(true);\n+\n+ // [GIVEN] Change Status of Production BOM.\n+ LibraryManufacturing.UpdateProductionBOMStatus(ProductionBOMHeader, ProductionBOMHeader.Status::Certified);\n+\n+ // [GIVEN] Validate Replenishment System and Production BOM No. in Production Item.\n+ ProdItem.Validate(\"Replenishment System\", ProdItem.\"Replenishment System\"::\"Prod. Order\");\n+ ProdItem.Validate(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n+ ProdItem.Modify(true);\n+\n+ // [GIVEN] Create and Refresh Production Order.\n+ CreateAndRefreshProdOrder(\n+ ProductionOrder,\n+ ProductionOrder.Status::Released,\n+ ProdItem.\"No.\",\n+ Quantity,\n+ Location.Code,\n+ '');\n+\n+ // [GIVEN] Open Released Production Order page and run Production Journal action.\n+ ReleasedProdOrder.OpenEdit();\n+ ReleasedProdOrder.GoToRecord(ProductionOrder);\n+ LibraryVariableStorage.Enqueue(Quantity);\n+ LibraryVariableStorage.Enqueue(ItemTrackingMode::\"Assign Lot No.\");\n+ LibraryVariableStorage.Enqueue(LotNo);\n+ LibraryVariableStorage.Enqueue(Quantity);\n+ ReleasedProdOrder.ProdOrderLines.ProductionJournal.Invoke();\n+\n+ // [WHEN] Find Item Ledger Entry.\n+ ItemLedgerEntry.SetRange(\"Item No.\", CompItem.\"No.\");\n+ ItemLedgerEntry.SetRange(Quantity, -Quantity);\n+\n+ // [VERIFY] Item Ledger Entry is found.\n+ Assert.IsFalse(ItemLedgerEntry.IsEmpty(), ItemLedgerEntryMustBeFoundErr);\n+ end;\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n@@ -6772,6 +6872,39 @@ codeunit 137404 \"SCM Manufacturing\"\n ReservationPage.OK().Invoke();\n end;\n \n+ [ModalPageHandler]\n+ [Scope('OnPrem')]\n+ procedure ItemTrackingAssignLotNoPageHandler(var ItemTrackingLines: TestPage \"Item Tracking Lines\")\n+ var\n+ DequeueVariable: Variant;\n+ begin\n+ LibraryVariableStorage.Dequeue(DequeueVariable);\n+ ItemTrackingMode := DequeueVariable;\n+ case ItemTrackingMode of\n+ ItemTrackingMode::\"Assign Lot No.\":\n+ begin\n+ ItemTrackingLines.\"Lot No.\".SetValue(LibraryVariableStorage.DequeueText());\n+ LibraryVariableStorage.Dequeue(DequeueVariable);\n+ ItemTrackingLines.\"Quantity (Base)\".SetValue(DequeueVariable);\n+ end;\n+ end;\n+ ItemTrackingLines.OK().Invoke();\n+ end;\n+\n+ [ModalPageHandler]\n+ [Scope('OnPrem')]\n+ procedure ProductionJournalPageHandlerOnlyConsumption(var ProductionJournal: TestPage \"Production Journal\")\n+ var\n+ EntryType: Enum \"Item Ledger Entry Type\";\n+ begin\n+ Assert.IsTrue(ProductionJournal.FindFirstField(ProductionJournal.\"Entry Type\", EntryType::Output), '');\n+ ProductionJournal.\"Output Quantity\".SetValue(0);\n+ Assert.IsTrue(ProductionJournal.FindFirstField(ProductionJournal.\"Entry Type\", EntryType::Consumption), '');\n+ ProductionJournal.Quantity.SetValue(LibraryVariableStorage.DequeueDecimal());\n+ ProductionJournal.ItemTrackingLines.Invoke();\n+ ProductionJournal.Post.Invoke();\n+ end;\n+\n [PageHandler]\n procedure BOMStructurePageHandler(var BOMStructure: TestPage \"BOM Structure\")\n begin\n@@ -6840,5 +6973,74 @@ codeunit 137404 \"SCM Manufacturing\"\n DT2Time(ExpStartDateTime), DT2Time(ProdOrderLine.\"Starting Date-Time\"), StrSubstNo(WrongDateTimeErr, ProdOrderLine.FieldCaption(\"Starting Time\")));\n until ProdOrderLine.Next() = 0;\n end;\n+\n+ local procedure CreateItemWithUOM(\n+ var Item: Record Item;\n+ var UnitOfMeasure: Record \"Unit of Measure\";\n+ var ItemUnitOfMeasure: Record \"Item Unit of Measure\")\n+ begin\n+ LibraryInventory.CreateItem(Item);\n+\n+ LibraryInventory.CreateItemUnitOfMeasure(\n+ ItemUnitOfMeasure,\n+ Item.\"No.\",\n+ UnitOfMeasure.Code,\n+ LibraryRandom.RandInt(0));\n+\n+ Item.Validate(\"Base Unit of Measure\", UnitOfMeasure.Code);\n+ Item.Modify(true);\n+ end;\n+\n+ local procedure CreateAndPostItemJournalLineWithLotNo(\n+ ItemNo: Code[20];\n+ Quantity: Decimal;\n+ LotNo: Code[50];\n+ BinCode: Code[20];\n+ LocationCode: Code[10];\n+ Tracking: Boolean)\n+ var\n+ ItemJournalLine: Record \"Item Journal Line\";\n+ begin\n+ CreateItemJournalLine(ItemJournalLine, ItemNo, Quantity, BinCode, LocationCode);\n+ if Tracking then begin\n+ LibraryVariableStorage.Enqueue(ItemTrackingMode::\"Assign Lot No.\");\n+ LibraryVariableStorage.Enqueue(LotNo);\n+ LibraryVariableStorage.Enqueue(Quantity);\n+ ItemJournalLine.OpenItemTrackingLines(false);\n+ end;\n+ LibraryInventory.PostItemJournalLine(ItemJournalLine.\"Journal Template Name\", ItemJournalLine.\"Journal Batch Name\");\n+ end;\n+\n+ local procedure CreateItemJournalLine(var ItemJournalLine: Record \"Item Journal Line\"; ItemNo: Code[20]; Quantity: Decimal; BinCode: Code[20]; LocationCode: Code[10])\n+ var\n+ ItemJournalTemplate: Record \"Item Journal Template\";\n+ ItemJournalBatch: Record \"Item Journal Batch\";\n+ begin\n+ LibraryInventory.ClearItemJournal(ItemJournalTemplate, ItemJournalBatch);\n+ LibraryInventory.CreateItemJournalTemplate(ItemJournalTemplate);\n+ LibraryInventory.CreateItemJournalBatch(ItemJournalBatch, ItemJournalTemplate.Name);\n+ LibraryInventory.CreateItemJournalLine(\n+ ItemJournalLine,\n+ ItemJournalBatch.\"Journal Template Name\",\n+ ItemJournalBatch.Name,\n+ ItemJournalLine.\"Entry Type\"::\"Positive Adjmt.\",\n+ ItemNo,\n+ Quantity);\n+\n+ ItemJournalLine.Validate(\"Unit Cost\", LibraryRandom.RandDec(10, 2));\n+ ItemJournalLine.Validate(\"Location Code\", LocationCode);\n+ ItemJournalLine.Validate(\"Bin Code\", BinCode);\n+ ItemJournalLine.Modify(true);\n+ end;\n+\n+ local procedure CreateAndRefreshProdOrder(var ProductionOrder: Record \"Production Order\"; Status: Enum \"Production Order Status\"; SourceNo: Code[20]; Quantity: Decimal; LocationCode: Code[10]; BinCode: Code[20])\n+ begin\n+ LibraryManufacturing.CreateProductionOrder(ProductionOrder, Status, ProductionOrder.\"Source Type\"::Item, SourceNo, Quantity);\n+ ProductionOrder.Validate(\"Location Code\", LocationCode);\n+ ProductionOrder.Validate(\"Bin Code\", BinCode);\n+ ProductionOrder.Modify(true);\n+\n+ LibraryManufacturing.RefreshProdOrder(ProductionOrder, false, true, true, true, false);\n+ end;\n }\n \n", "patch": "diff --git a/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\nindex 7e739c297201..ffe0b880ce8d 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\n@@ -1946,8 +1946,11 @@ codeunit 22 \"Item Jnl.-Post Line\"\n Abs(ItemLedgEntry.\"Remaining Quantity\" - ItemLedgEntry.\"Reserved Quantity\")\n then\n AppliedQty := ItemLedgEntry.\"Remaining Quantity\" - ItemLedgEntry.\"Reserved Quantity\"\n- else\n+ else begin\n AppliedQty := -(OldItemLedgEntry.\"Remaining Quantity\" - OldItemLedgEntry.\"Reserved Quantity\");\n+ if (AppliedQty = 0) and (ItemLedgEntry.Count > 1) then\n+ AppliedQty := UpdateAppliedQtyIfConsumptionEntry(ItemLedgEntry, OldItemLedgEntry);\n+ end;\n \n OnApplyItemLedgEntryOnAfterCalcAppliedQty(OldItemLedgEntry, ItemLedgEntry, AppliedQty);\n \n@@ -5908,6 +5911,17 @@ codeunit 22 \"Item Jnl.-Post Line\"\n (ItemJournalLine.\"Applies-to Entry\" <> 0)));\n end;\n \n+ local procedure UpdateAppliedQtyIfConsumptionEntry(ItemLedgerEntry: Record \"Item Ledger Entry\"; OldItemLedgerEntry: Record \"Item Ledger Entry\"): Decimal\n+ begin\n+ if ItemLedgerEntry.\"Entry Type\" <> ItemLedgerEntry.\"Entry Type\"::Consumption then\n+ exit(0);\n+\n+ if (ItemLedgerEntry.\"Remaining Quantity\" + OldItemLedgerEntry.\"Remaining Quantity\") > 0 then\n+ exit(0);\n+\n+ exit(-Abs(OldItemLedgerEntry.\"Reserved Quantity\"));\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnBeforeAllowProdApplication(OldItemLedgerEntry: Record \"Item Ledger Entry\"; ItemLedgerEntry: Record \"Item Ledger Entry\"; var AllowApplication: Boolean)\n begin\n"} +{"instance_id": "microsoftInternal__NAV-179733__cf-1", "base_instance_id": "microsoftInternal__NAV-179733", "variant_description": "Only Begin-Total task type explicitly excluded from customer field inheritance", "failure_layer": null, "FAIL_TO_PASS": [{"codeunitID": 136323, "functionName": ["CopyTotalsProjectTasksTypeIntoProjectsWithMultipleCustomerBillingOption"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/Job/JobsMultipleCustomers.Codeunit.al b/App/Layers/W1/Tests/Job/JobsMultipleCustomers.Codeunit.al\n--- a/App/Layers/W1/Tests/Job/JobsMultipleCustomers.Codeunit.al\n+++ b/App/Layers/W1/Tests/Job/JobsMultipleCustomers.Codeunit.al\n@@ -1520,6 +1520,53 @@ codeunit 136323 \"Jobs - Multiple Customers\"\n SalesLine.TestField(\"Document No.\", SalesHeader.\"No.\");\n end;\n \n+ [Test]\n+ procedure CopyTotalsProjectTasksTypeIntoProjectsWithMultipleCustomerBillingOption()\n+ var\n+ JobTasks: array[3] of Record \"Job Task\";\n+ Jobs: array[2] of Record Job;\n+ Customers: array[2] of Record Customer;\n+ CopyJob: Codeunit \"Copy Job\";\n+ begin\n+ // [SCENARIO 522645] Copy Totals Project Tasks Type into Projects with Multiple Customer Billing Option\n+ Initialize();\n+\n+ // [GIVEN] Set One Customer Billing option on Project Setup\n+ SetOneCustomerBillingMethodOnProjectSetup();\n+\n+ // [GIVEN] Create Customer\n+ LibrarySales.CreateCustomer(Customers[1]);\n+\n+ // [GIVEN] Create new Project\n+ LibraryJob.CreateJob(Jobs[1], Customers[1].\"No.\");\n+\n+ // [GIVEN] Create new Project Task of Type Begin Total\n+ LibraryJob.CreateJobTask(Jobs[1], JobTasks[1]);\n+ JobTasks[1].\"Job Task Type\" := JobTasks[1].\"Job Task Type\"::\"Begin-Total\";\n+ JobTasks[1].Modify(true);\n+\n+ // [GIVEN] Create new Project Task\n+ LibraryJob.CreateJobTask(Jobs[1], JobTasks[2]);\n+\n+ // [GIVEN] Set Multiple Customers on Project Setup\n+ SetMultiupleCustomersOnProjectSetup();\n+\n+ // [GIVEN] Create new Project\n+ LibraryJob.CreateJob(Jobs[2], Customers[1].\"No.\");\n+\n+ // [WHEN] Copy Project Tasks\n+ CopyJob.CopyJobTasks(Jobs[1], Jobs[2]);\n+\n+ // [THEN] Verify results\n+ JobTasks[3].Get(Jobs[2].\"No.\", JobTasks[1].\"Job Task No.\");\n+ JobTasks[3].TestField(\"Sell-to Customer No.\", '');\n+ JobTasks[3].TestField(\"Bill-to Customer No.\", '');\n+\n+ JobTasks[3].Get(Jobs[2].\"No.\", JobTasks[2].\"Job Task No.\");\n+ JobTasks[3].TestField(\"Sell-to Customer No.\", Jobs[2].\"Sell-to Customer No.\");\n+ JobTasks[3].TestField(\"Bill-to Customer No.\", Jobs[2].\"Bill-to Customer No.\");\n+ end;\n+\n local procedure Initialize()\n begin\n LibraryTestInitialize.OnTestInitialize(Codeunit::\"Jobs - Multiple Customers\");\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Job/JobTask.Table.al b/App/Layers/W1/BaseApp/Projects/Project/Job/JobTask.Table.al\n--- a/App/Layers/W1/BaseApp/Projects/Project/Job/JobTask.Table.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Job/JobTask.Table.al\n@@ -1223,9 +1223,13 @@ table 1001 \"Job Task\"\n begin\n if not Job.Get(\"Job No.\") then\n exit;\n+\n if Job.\"Task Billing Method\" = Job.\"Task Billing Method\"::\"One customer\" then\n exit;\n \n+ if \"Job Task Type\" = \"Job Task Type\"::\"Begin-Total\" then\n+ exit;\n+\n SetHideValidationDialog(true);\n if Job.\"Sell-to Customer No.\" <> '' then\n Validate(\"Sell-to Customer No.\", Job.\"Sell-to Customer No.\");\n"} +{"instance_id": "microsoftInternal__NAV-180484__cf-1", "base_instance_id": "microsoftInternal__NAV-180484", "variant_description": "Status preserved when document is linked and status is Created (same logic, different evaluation order)", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-180484__cf-2", "FAIL_TO_PASS": [{"codeunitID": 139154, "functionName": ["StatusRemainsCreatedIfHasLinkedDocWhenReopenIncomingDoc"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/Data Exchange/IncomingDocToDataExchUT.Codeunit.al b/App/Layers/W1/Tests/Data Exchange/IncomingDocToDataExchUT.Codeunit.al\nindex 354a3c1..b626696 100644\n--- a/App/Layers/W1/Tests/Data Exchange/IncomingDocToDataExchUT.Codeunit.al\t\n+++ b/App/Layers/W1/Tests/Data Exchange/IncomingDocToDataExchUT.Codeunit.al\t\n@@ -51,6 +51,9 @@ codeunit 139154 \"Incoming Doc. To Data Exch.UT\"\n NothingToReleaseErr: Label 'There is nothing to release for the incoming document';\n NoDocCreatedForChoiceErr: Label 'The given key was not present in the dictionary.';\n UnknownChoiceErr: Label 'Unknown choice %1.', Comment = '%1=Choice (number)';\n+ PEPPOLINVOICELbl: Label 'PEPPOLINVOICE';\n+ PEPPOLLbl: Label 'PEPPOL';\n+ StatusErr: Label '%1 must be %2 in %3';\n \n [Test]\n [Scope('OnPrem')]\n@@ -1472,6 +1475,72 @@ codeunit 139154 \"Incoming Doc. To Data Exch.UT\"\n end;\n end;\n \n+ [Test]\n+ [HandlerFunctions('MessageHandler')]\n+ [Scope('OnPrem')]\n+ procedure StatusRemainsCreatedIfHasLinkedDocWhenReopenIncomingDoc()\n+ var\n+ DataExchDef: Record \"Data Exch. Def\";\n+ SalesHeader: Record \"Sales Header\";\n+ SalesInvoiceHeader: Record \"Sales Invoice Header\";\n+ IncomingDocument: Record \"Incoming Document\";\n+ DataExchangeType: Record \"Data Exchange Type\";\n+ IncomingDocumentCard: TestPage \"Incoming Document\";\n+ XmlPath: Text;\n+ begin\n+ // [SCENARIO 487620] When Stan runs Reopen action on an Incoming Document hvaing Status as Created, then Status remains as Created if a document is linked to it.\n+ Initialize();\n+\n+ // [GIVEN] Create a Sales Invoice.\n+ SalesHeader.Get(\n+ SalesHeader.\"Document Type\"::Invoice,\n+ CreateSalesDocument(\n+ SalesHeader.\"Document Type\"::Invoice,\n+ false));\n+\n+ // [GIVEN] Post Sales Invoice.\n+ SalesInvoiceHeader.Get(LibrarySales.PostSalesDocument(SalesHeader, true, true));\n+\n+ // [GIVEN] Generate and save XmlPath of Sales Invoice.\n+ XmlPath := ExportPEPPOLInvoice(SalesInvoiceHeader);\n+\n+ // [GIVEN] Setup Company Information for Sales Invoice Import.\n+ SetupCompanyForInvoiceImport(SalesInvoiceHeader);\n+\n+ // [GIVEN] Find Data Exchange Def.\n+ DataExchDef.Get(PEPPOLINVOICELbl);\n+\n+ // [GIVEN] Create Data Exchange Type.\n+ CreateDataExchangeType(DataExchangeType, DataExchDef);\n+\n+ // [GIVEN] Create Incoming Document and Validate Data Exchange Type.\n+ LibraryIncomingDocuments.CreateNewIncomingDocument(IncomingDocument);\n+ IncomingDocument.\"Data Exchange Type\" := DataExchangeType.Code;\n+ IncomingDocument.Modify(true);\n+\n+ // [GIVEN] Import Incoming Document.\n+ ImportAttachToIncomingDoc(IncomingDocument, XmlPath);\n+\n+ // [GIVEN] Open Incoming Document Card page and run Create Document action.\n+ LibraryVariableStorage.Enqueue(DocCreatedMsg);\n+ IncomingDocumentCard.OpenView();\n+ IncomingDocumentCard.GotoRecord(IncomingDocument);\n+ IncomingDocumentCard.CreateDocument.Invoke();\n+\n+ // [WHEN] Run Reopen action.\n+ IncomingDocumentCard.Reopen.Invoke();\n+\n+ // [VERIFY] Status of Incoming Document remains as Created.\n+ Assert.AreEqual(\n+ Format(IncomingDocument.Status::Created),\n+ IncomingDocumentCard.StatusField.Value,\n+ StrSubstNo(\n+ StatusErr,\n+ IncomingDocumentCard.StatusField.Caption(),\n+ Format(IncomingDocument.Status::Created),\n+ IncomingDocument.TableCaption()));\n+ end;\n+\n local procedure CreateDataExchDefSalesInvoiceAndLinesWithNamespaces(var DataExchDef: Record \"Data Exch. Def\")\n var\n SalesHeaderDataExchLineDef: Record \"Data Exch. Line Def\";\n@@ -2788,6 +2857,19 @@ codeunit 139154 \"Incoming Doc. To Data Exch.UT\"\n IncomingDocumentsSetup.Insert();\n end;\n \n+ local procedure CreateDataExchangeType(var DataExchangeType: Record \"Data Exchange Type\"; DataExchDef: Record \"Data Exch. Def\")\n+ begin\n+ DataExchDef.SetLoadFields(Code);\n+\n+ DataExchangeType.SetLoadFields(Code, \"Data Exch. Def. Code\");\n+ DataExchangeType.SetRange(\"Data Exch. Def. Code\", DataExchDef.Code);\n+ if not DataExchangeType.FindFirst() then begin\n+ DataExchangeType.Code := PEPPOLLbl;\n+ DataExchangeType.\"Data Exch. Def. Code\" := DataExchDef.Code;\n+ DataExchangeType.Insert();\n+ end;\n+ end;\n+\n [MessageHandler]\n [Scope('OnPrem')]\n procedure MessageHandler(Msg: Text[1024])\n", "patch": "diff --git a/App/Layers/W1/BaseApp/eServices/EDocument/ReleaseIncomingDocument.Codeunit.al b/App/Layers/W1/BaseApp/eServices/EDocument/ReleaseIncomingDocument.Codeunit.al\nindex 4e5ba08..473de43 100644\n--- a/App/Layers/W1/BaseApp/eServices/EDocument/ReleaseIncomingDocument.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/eServices/EDocument/ReleaseIncomingDocument.Codeunit.al\n@@ -44,11 +44,15 @@ codeunit 132 \"Release Incoming Document\"\n #pragma warning restore AA0470\n \n procedure Reopen(var IncomingDocument: Record \"Incoming Document\")\n+ var\n+ RelatedRecord: Variant;\n begin\n if IncomingDocument.Status = IncomingDocument.Status::New then\n exit;\n ClearReleaseFields(IncomingDocument);\n- IncomingDocument.Status := IncomingDocument.Status::New;\n+\n+ if not ((IncomingDocument.Status = IncomingDocument.Status::Created) and (IncomingDocument.GetRecord(RelatedRecord))) then\n+ IncomingDocument.Status := IncomingDocument.Status::New;\n \n IncomingDocument.Modify(true);\n end;\n"} +{"instance_id": "microsoftInternal__NAV-180484__cf-2", "base_instance_id": "microsoftInternal__NAV-180484", "variant_description": "Reopen exits early when document is linked instead of conditional status assignment", "failure_layer": null, "FAIL_TO_PASS": [{"codeunitID": 139154, "functionName": ["StatusRemainsCreatedIfHasLinkedDocWhenReopenIncomingDoc"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/Data Exchange/IncomingDocToDataExchUT.Codeunit.al b/App/Layers/W1/Tests/Data Exchange/IncomingDocToDataExchUT.Codeunit.al\n--- a/App/Layers/W1/Tests/Data Exchange/IncomingDocToDataExchUT.Codeunit.al\n+++ b/App/Layers/W1/Tests/Data Exchange/IncomingDocToDataExchUT.Codeunit.al\n@@ -51,6 +51,9 @@ codeunit 139154 \"Incoming Doc. To Data Exch.UT\"\n NothingToReleaseErr: Label 'There is nothing to release for the incoming document';\n NoDocCreatedForChoiceErr: Label 'The given key was not present in the dictionary.';\n UnknownChoiceErr: Label 'Unknown choice %1.', Comment = '%1=Choice (number)';\n+ PEPPOLINVOICELbl: Label 'PEPPOLINVOICE';\n+ PEPPOLLbl: Label 'PEPPOL';\n+ StatusErr: Label '%1 must be %2 in %3';\n \n [Test]\n [Scope('OnPrem')]\n@@ -1472,6 +1475,72 @@ codeunit 139154 \"Incoming Doc. To Data Exch.UT\"\n end;\n end;\n \n+ [Test]\n+ [HandlerFunctions('MessageHandler')]\n+ [Scope('OnPrem')]\n+ procedure StatusRemainsCreatedIfHasLinkedDocWhenReopenIncomingDoc()\n+ var\n+ DataExchDef: Record \"Data Exch. Def\";\n+ SalesHeader: Record \"Sales Header\";\n+ SalesInvoiceHeader: Record \"Sales Invoice Header\";\n+ IncomingDocument: Record \"Incoming Document\";\n+ DataExchangeType: Record \"Data Exchange Type\";\n+ IncomingDocumentCard: TestPage \"Incoming Document\";\n+ XmlPath: Text;\n+ begin\n+ // [SCENARIO 487620] When Stan runs Reopen action on an Incoming Document hvaing Status as Created, then Status remains as Created if a document is linked to it.\n+ Initialize();\n+\n+ // [GIVEN] Create a Sales Invoice.\n+ SalesHeader.Get(\n+ SalesHeader.\"Document Type\"::Invoice,\n+ CreateSalesDocument(\n+ SalesHeader.\"Document Type\"::Invoice,\n+ false));\n+\n+ // [GIVEN] Post Sales Invoice.\n+ SalesInvoiceHeader.Get(LibrarySales.PostSalesDocument(SalesHeader, true, true));\n+\n+ // [GIVEN] Generate and save XmlPath of Sales Invoice.\n+ XmlPath := ExportPEPPOLInvoice(SalesInvoiceHeader);\n+\n+ // [GIVEN] Setup Company Information for Sales Invoice Import.\n+ SetupCompanyForInvoiceImport(SalesInvoiceHeader);\n+\n+ // [GIVEN] Find Data Exchange Def.\n+ DataExchDef.Get(PEPPOLINVOICELbl);\n+\n+ // [GIVEN] Create Data Exchange Type.\n+ CreateDataExchangeType(DataExchangeType, DataExchDef);\n+\n+ // [GIVEN] Create Incoming Document and Validate Data Exchange Type.\n+ LibraryIncomingDocuments.CreateNewIncomingDocument(IncomingDocument);\n+ IncomingDocument.\"Data Exchange Type\" := DataExchangeType.Code;\n+ IncomingDocument.Modify(true);\n+\n+ // [GIVEN] Import Incoming Document.\n+ ImportAttachToIncomingDoc(IncomingDocument, XmlPath);\n+\n+ // [GIVEN] Open Incoming Document Card page and run Create Document action.\n+ LibraryVariableStorage.Enqueue(DocCreatedMsg);\n+ IncomingDocumentCard.OpenView();\n+ IncomingDocumentCard.GotoRecord(IncomingDocument);\n+ IncomingDocumentCard.CreateDocument.Invoke();\n+\n+ // [WHEN] Run Reopen action.\n+ IncomingDocumentCard.Reopen.Invoke();\n+\n+ // [VERIFY] Status of Incoming Document remains as Created.\n+ Assert.AreEqual(\n+ Format(IncomingDocument.Status::Created),\n+ IncomingDocumentCard.StatusField.Value,\n+ StrSubstNo(\n+ StatusErr,\n+ IncomingDocumentCard.StatusField.Caption(),\n+ Format(IncomingDocument.Status::Created),\n+ IncomingDocument.TableCaption()));\n+ end;\n+\n local procedure CreateDataExchDefSalesInvoiceAndLinesWithNamespaces(var DataExchDef: Record \"Data Exch. Def\")\n var\n SalesHeaderDataExchLineDef: Record \"Data Exch. Line Def\";\n@@ -2788,6 +2857,19 @@ codeunit 139154 \"Incoming Doc. To Data Exch.UT\"\n IncomingDocumentsSetup.Insert();\n end;\n \n+ local procedure CreateDataExchangeType(var DataExchangeType: Record \"Data Exchange Type\"; DataExchDef: Record \"Data Exch. Def\")\n+ begin\n+ DataExchDef.SetLoadFields(Code);\n+\n+ DataExchangeType.SetLoadFields(Code, \"Data Exch. Def. Code\");\n+ DataExchangeType.SetRange(\"Data Exch. Def. Code\", DataExchDef.Code);\n+ if not DataExchangeType.FindFirst() then begin\n+ DataExchangeType.Code := PEPPOLLbl;\n+ DataExchangeType.\"Data Exch. Def. Code\" := DataExchDef.Code;\n+ DataExchangeType.Insert();\n+ end;\n+ end;\n+\n [MessageHandler]\n [Scope('OnPrem')]\n procedure MessageHandler(Msg: Text[1024])\n", "patch": "diff --git a/App/Layers/W1/BaseApp/eServices/EDocument/ReleaseIncomingDocument.Codeunit.al b/App/Layers/W1/BaseApp/eServices/EDocument/ReleaseIncomingDocument.Codeunit.al\n--- a/App/Layers/W1/BaseApp/eServices/EDocument/ReleaseIncomingDocument.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/eServices/EDocument/ReleaseIncomingDocument.Codeunit.al\n@@ -44,11 +44,17 @@ codeunit 132 \"Release Incoming Document\"\n #pragma warning restore AA0470\n \n procedure Reopen(var IncomingDocument: Record \"Incoming Document\")\n+ var\n+ RelatedRecord: Variant;\n begin\n if IncomingDocument.Status = IncomingDocument.Status::New then\n exit;\n ClearReleaseFields(IncomingDocument);\n- IncomingDocument.Status := IncomingDocument.Status::New;\n+\n+ if (IncomingDocument.Status = IncomingDocument.Status::Created) and (IncomingDocument.GetRecord(RelatedRecord)) then\n+ exit;\n+\n+ IncomingDocument.Status := IncomingDocument.Status::New;\n \n IncomingDocument.Modify(true);\n end;\n"} +{"instance_id": "microsoftInternal__NAV-182354__cf-1", "base_instance_id": "microsoftInternal__NAV-182354", "variant_description": "System should fallback to WorkDate only when Today is not initialized", "failure_layer": null, "FAIL_TO_PASS": [{"codeunitID": 134924, "functionName": ["TotalOverdueLCYInFinanceCue"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/ERM/ERMCues.Codeunit.al b/App/Layers/W1/Tests/ERM/ERMCues.Codeunit.al\n--- a/App/Layers/W1/Tests/ERM/ERMCues.Codeunit.al\n+++ b/App/Layers/W1/Tests/ERM/ERMCues.Codeunit.al\n@@ -13,8 +13,6 @@ codeunit 134924 \"ERM Cues\"\n Assert: Codeunit Assert;\n LibraryTimeSheet: Codeunit \"Library - Time Sheet\";\n LibraryService: Codeunit \"Library - Service\";\n- WrongValueErr: Label 'Wrong value of the field %1 in table %2.';\n- AverageDaysDelayedErr: Label 'Average Days Delayed is calculated incorrectly.';\n LibraryUtility: Codeunit \"Library - Utility\";\n LibraryRandom: Codeunit \"Library - Random\";\n LibraryTestInitialize: Codeunit \"Library - Test Initialize\";\n@@ -24,6 +22,8 @@ codeunit 134924 \"ERM Cues\"\n ShipStatus: Option Full,Partial,\"Not Shipped\";\n WrongNumberOfDelayedOrdersErr: Label 'Wrong number of delayed Sales Orders.';\n RedundantSalesOnListErr: Label 'List of delayed Sales Order contains redundant documents.';\n+ WrongValueErr: Label 'Wrong value of the field %1 in table %2.', Comment = '%1 = Field name, %2 = Table name';\n+ AverageDaysDelayedErr: Label 'Average Days Delayed is calculated incorrectly.';\n IsInitialized: Boolean;\n \n [Test]\n@@ -699,6 +699,50 @@ codeunit 134924 \"ERM Cues\"\n Assert.IsFalse(SalesOrderList.Previous(), '');\n end;\n \n+ [Test]\n+ procedure TotalOverdueLCYInFinanceCue()\n+ var\n+ DetailedCustLedgEntry: Record \"Detailed Cust. Ledg. Entry\";\n+ CustomerLedgerEntries: TestPage \"Customer Ledger Entries\";\n+ AccountReceivablesKPIs: TestPage \"Account Receivables KPIs\";\n+ TotalOverDueLCYErr: Label 'The total overdue LCY amount is not calculated correctly.', Locked = true;\n+ DateFilterTxt: Label '<=%1', Locked = true, Comment = '%1 = Date';\n+ begin\n+ // [FEATURE] [Finance Cue] [Accounts Receivables Overview]\n+ // [SCENARIO 506725] Total overdue LCY cue should fallback to WorkDate when Today is not initialized\n+ Initialize();\n+\n+ // [GIVEN] Create customer ledger entries and detailed customer ledger entries\n+ // [GIVEN] Cust. ledger entry 1, due date = today - 10days, open = true, amount (LCY) = 100.34, remaining amount (LCY) = 50.17 (detailed cust. ledger entry 1 amount (LCY) = 100.34, detailed cust. ledger entry 2 amount (LCY) = 50.17)\n+ // [GIVEN] Cust. ledger entry 2, due date = today, open = false, amount (LCY) = 120.23, remaining amount (LCY) = 0 (detailed cust. ledger entry 1 amount (LCY) = 120.23, detailed cust. ledger entry 2 amount (LCY) = 120.23)\n+ // [GIVEN] Cust. ledger entry 3, due date = today + 20days, open = true, amount (LCY) = 150.82, remaining amount (LCY) = 150.82 (detailed cust. ledger entry 1 amount (LCY) = 150.82, detailed cust. ledger entry 2 amount (LCY) = 150.82)\n+ CreateCustomerLedgerEntry(CalcDate('<-10D>', Today), true, 100.34, 50.17);\n+ CreateCustomerLedgerEntry(Today, false, 120.23, 120.23);\n+ CreateCustomerLedgerEntry(CalcDate('<+20D>', Today), true, 150.82, 0);\n+\n+ // [WHEN] Open Account Receivables KPIs page with overdue date filter\n+ AccountReceivablesKPIs.OpenView();\n+ AccountReceivablesKPIs.Filter.SetFilter(\"Overdue Date Filter\", StrSubstNo(DateFilterTxt, Today()));\n+\n+ // [WHEN] Calculate total overdue LCY amount\n+ // simulate environment without system date\n+ DetailedCustLedgEntry.SetFilter(\"Initial Entry Due Date\", '<=%1', Today());\n+ DetailedCustLedgEntry.CalcSums(\"Amount (LCY)\");\n+\n+ // [THEN] Verify the total overdue amount is correct\n+ Assert.AreEqual(Format(DetailedCustLedgEntry.\"Amount (LCY)\"), AccountReceivablesKPIs.\"Sales - Total Overdue (LCY)\".Value, TotalOverDueLCYErr);\n+\n+ // [WHEN] DrillDown to \"Sales - Total Overdue (LCY)\" cue\n+ CustomerLedgerEntries.Trap();\n+ AccountReceivablesKPIs.\"Sales - Total Overdue (LCY)\".Drilldown();\n+\n+ // [THEN] Only Cust. ledger entry 1 is shown on Cust. ledger entries page\n+ CustomerLedgerEntries.First();\n+ Assert.AreEqual(Format(CustomerLedgerEntries.\"Remaining Amt. (LCY)\"), AccountReceivablesKPIs.\"Sales - Total Overdue (LCY)\".Value, TotalOverDueLCYErr);\n+ Assert.IsFalse(CustomerLedgerEntries.Next(), '');\n+ CustomerLedgerEntries.Close();\n+ end;\n+\n local procedure Initialize()\n var\n SalesHeader: Record \"Sales Header\";\n@@ -711,6 +754,8 @@ codeunit 134924 \"ERM Cues\"\n ServiceContractLine: Record \"Service Contract Line\";\n PostedWhseShipmentHeader: Record \"Posted Whse. Shipment Header\";\n VendorLedgerEntry: Record \"Vendor Ledger Entry\";\n+ CustLedgerEntry: Record \"Cust. Ledger Entry\";\n+ DetailedCustLedgEntry: Record \"Detailed Cust. Ledg. Entry\";\n SalesCue: Record \"Sales Cue\";\n begin\n LibraryTestInitialize.OnTestInitialize(CODEUNIT::\"ERM Cues\");\n@@ -724,6 +769,9 @@ codeunit 134924 \"ERM Cues\"\n ServiceContractLine.DeleteAll();\n PostedWhseShipmentHeader.DeleteAll();\n VendorLedgerEntry.DeleteAll();\n+ CustLedgerEntry.DeleteAll();\n+ DetailedCustLedgEntry.DeleteAll();\n+\n if SalesCue.Get() then begin\n SalesCue.\"Avg. Days Delayed Updated On\" := 0DT;\n SalesCue.Modify();\n@@ -924,6 +972,35 @@ codeunit 134924 \"ERM Cues\"\n SalesLine.Modify(true);\n end;\n \n+ local procedure CreateCustomerLedgerEntry(DueDate: Date; Open: Boolean; Amount1: Decimal; Amount2: Decimal)\n+ var\n+ CustLedgerEntry: Record \"Cust. Ledger Entry\";\n+ begin\n+ CustLedgerEntry.\"Entry No.\" := CustLedgerEntry.GetLastEntryNo() + 1;\n+ CustLedgerEntry.\"Document Type\" := CustLedgerEntry.\"Document Type\"::Invoice;\n+ CustLedgerEntry.\"Due Date\" := DueDate;\n+ CustLedgerEntry.Open := Open;\n+ CustLedgerEntry.Insert();\n+\n+ CreateDetailedCustLedgEntry(CustLedgerEntry.\"Entry No.\", DueDate, Amount1, CustLedgerEntry.\"Document Type\", true);\n+ CreateDetailedCustLedgEntry(CustLedgerEntry.\"Entry No.\", DueDate, -Amount2, CustLedgerEntry.\"Document Type\", false);\n+ end;\n+\n+ local procedure CreateDetailedCustLedgEntry(CustEntryNo: Integer; PostingDate: Date; AmountLCY: Decimal; DocumentType: Enum \"Gen. Journal Document Type\"; LedgerEntryAmount: Boolean)\n+ var\n+ DetailedCustLedgEntry: Record \"Detailed Cust. Ledg. Entry\";\n+ begin\n+ DetailedCustLedgEntry.\"Entry No.\" := DetailedCustLedgEntry.GetLastEntryNo() + 1;\n+ DetailedCustLedgEntry.\"Cust. Ledger Entry No.\" := CustEntryNo;\n+ DetailedCustLedgEntry.\"Posting Date\" := PostingDate;\n+ DetailedCustLedgEntry.\"Amount (LCY)\" := AmountLCY;\n+ DetailedCustLedgEntry.\"Document Type\" := DocumentType;\n+ DetailedCustLedgEntry.\"Initial Document Type\" := DocumentType;\n+ DetailedCustLedgEntry.\"Initial Entry Due Date\" := PostingDate;\n+ DetailedCustLedgEntry.\"Ledger Entry Amount\" := LedgerEntryAmount;\n+ DetailedCustLedgEntry.Insert();\n+ end;\n+\n local procedure VerifySalesCueFlowFields()\n var\n SalesCue: Record \"Sales Cue\";\n", "patch": "diff --git a/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al b/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al\n--- a/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al\n+++ b/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al\n@@ -27,8 +27,10 @@ page 1318 \"Account Receivables KPIs\"\n CustomerLedgerEntries: Page \"Customer Ledger Entries\";\n begin\n CustLedgerEntry.SetRange(Open, true);\n- CustLedgerEntry.SetFilter(\"Remaining Amount\", '>%1', 0);\n- CustLedgerEntry.SetFilter(\"Due Date\", '<=%1', WorkDate());\n+ if Today() = 0D then\n+ CustLedgerEntry.SetFilter(\"Due Date\", '<=%1', WorkDate())\n+ else\n+ CustLedgerEntry.SetFilter(\"Due Date\", '<=%1', Today());\n CustomerLedgerEntries.SetTableView(CustLedgerEntry);\n CustomerLedgerEntries.Run();\n end;\n@@ -43,7 +45,6 @@ page 1318 \"Account Receivables KPIs\"\n CustomerLedgerEntries: Page \"Customer Ledger Entries\";\n begin\n CustLedgerEntry.SetRange(Open, true);\n- CustLedgerEntry.SetFilter(\"Remaining Amount\", '>%1', 0);\n CustomerLedgerEntries.SetTableView(CustLedgerEntry);\n CustomerLedgerEntries.Run();\n end;\n@@ -93,12 +94,15 @@ page 1318 \"Account Receivables KPIs\"\n SalesInvoicesDueNextWeekStyleExpr: Text;\n AverageCollectionDays: Decimal;\n \n- trigger OnInit()\n+ trigger OnOpenPage()\n var\n CuesAndKPIs: Codeunit \"Cues And KPIs\";\n SalesInvoicesDueNextWeekStyle: Enum \"Cues And KPIs Style\";\n begin\n- Rec.SetRange(\"Overdue Date Filter\", 0D, WorkDate());\n+ if Today() = 0D then\n+ Rec.SetRange(\"Overdue Date Filter\", 0D, WorkDate())\n+ else\n+ Rec.SetRange(\"Overdue Date Filter\", 0D, Today());\n if not Rec.Get() then begin\n Clear(Rec);\n Rec.Insert();\n@@ -113,11 +117,7 @@ page 1318 \"Account Receivables KPIs\"\n CuesAndKPIs.SetCueStyle(Database::\"Activities Cue\", ActivitiesCue.FieldNo(\"Sales Invoices Due Next Week\"), ActivitiesCue.\"Sales Invoices Due Next Week\", SalesInvoicesDueNextWeekStyle);\n SalesInvoicesDueNextWeekStyleExpr := Format(SalesInvoicesDueNextWeekStyle);\n Rec.\"AR Accounts Balance\" := ActivitiesMgt.CalcARAccountsBalances();\n- Rec.Modify();\n- end;\n \n- trigger OnOpenPage()\n- begin\n AverageCollectionDays := ActivitiesMgt.CalcAverageCollectionDays();\n end;\n }\n"} +{"instance_id": "microsoftInternal__NAV-183399__cf-1", "base_instance_id": "microsoftInternal__NAV-183399", "variant_description": "Document Amount field accepts up to 4 decimal places", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-183399__cf-2", "FAIL_TO_PASS": [{"codeunitID": 134918, "functionName": ["DocumentAmountInPurchJnlAcceptsMaxThreeDecimalPlacesValue"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/ERM/ERMSalesPurchaseApplication.Codeunit.al b/App/Layers/W1/Tests/ERM/ERMSalesPurchaseApplication.Codeunit.al\n--- a/App/Layers/W1/Tests/ERM/ERMSalesPurchaseApplication.Codeunit.al\n+++ b/App/Layers/W1/Tests/ERM/ERMSalesPurchaseApplication.Codeunit.al\n@@ -1359,6 +1359,42 @@ codeunit 134918 \"ERM Sales/Purchase Application\"\n VerifyCustomerLedgerEntry(Customer.\"No.\");\n end;\n \n+ [Test]\n+ [Scope('OnPrem')]\n+ procedure DocumentAmountInPurchJnlAcceptsMaxThreeDecimalPlacesValue()\n+ var\n+ Vendor: Record Vendor;\n+ PurchaseJournal: TestPage \"Purchase Journal\";\n+ DocumentAmount: Decimal;\n+ begin\n+ // [SCENARIO 534464] Document Amount field in Purchase Journal accepts a value of maximum 4 decimal places.\n+ Initialize();\n+\n+ // [GIVEN] Create a Vendor.\n+ LibraryPurchase.CreateVendor(Vendor);\n+\n+ // [GIVEN] Open Purchase Journal.\n+ PurchaseJournal.OpenView();\n+ PurchaseJournal.New();\n+ PurchaseJournal.\"Account Type\".SetValue(\"Gen. Journal Account Type\"::Vendor);\n+ PurchaseJournal.\"Account No.\".SetValue(Vendor.\"No.\");\n+\n+ // [GIVEN] Generate and save Document Amount in a Variable.\n+ DocumentAmount := LibraryRandom.RandDecInRange(1, 4, 4);\n+\n+ // [WHEN] Set value in Document Amount field in Purchase Journal.\n+ PurchaseJournal.DocumentAmount.SetValue(DocumentAmount);\n+\n+ // [THEN] Document Amount in Purchase Journal has the correct value.\n+ Assert.AreEqual(\n+ DocumentAmount,\n+ PurchaseJournal.DocumentAmount.AsDecimal(),\n+ StrSubstNo(\n+ DocumentAmountLogicErr,\n+ DocumentAmount,\n+ PurchaseJournal.DocumentAmount.AsDecimal()));\n+ end;\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n@@ -255,6 +255,7 @@ page 254 \"Purchase Journal\"\n {\n ApplicationArea = Basic, Suite;\n AutoFormatExpression = Rec.\"Currency Code\";\n+ DecimalPlaces = 0 : 4;\n Caption = 'Document Amount';\n ToolTip = 'Specifies the total amount (including VAT) that the journal line consists of.';\n \n"} +{"instance_id": "microsoftInternal__NAV-183399__cf-2", "base_instance_id": "microsoftInternal__NAV-183399", "variant_description": "Document Amount field ignores currency precision by removing AutoFormatExpression", "failure_layer": null, "FAIL_TO_PASS": [{"codeunitID": 134918, "functionName": ["DocumentAmountInPurchJnlAcceptsMaxThreeDecimalPlacesValue"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/ERM/ERMSalesPurchaseApplication.Codeunit.al b/App/Layers/W1/Tests/ERM/ERMSalesPurchaseApplication.Codeunit.al\n--- a/App/Layers/W1/Tests/ERM/ERMSalesPurchaseApplication.Codeunit.al\n+++ b/App/Layers/W1/Tests/ERM/ERMSalesPurchaseApplication.Codeunit.al\n@@ -1359,6 +1359,42 @@ codeunit 134918 \"ERM Sales/Purchase Application\"\n VerifyCustomerLedgerEntry(Customer.\"No.\");\n end;\n \n+ [Test]\n+ [Scope('OnPrem')]\n+ procedure DocumentAmountInPurchJnlAcceptsMaxThreeDecimalPlacesValue()\n+ var\n+ Vendor: Record Vendor;\n+ PurchaseJournal: TestPage \"Purchase Journal\";\n+ DocumentAmount: Decimal;\n+ begin\n+ // [SCENARIO 534464] Document Amount field in Purchase Journal accepts a value of maximum 3 decimal places.\n+ Initialize();\n+\n+ // [GIVEN] Create a Vendor.\n+ LibraryPurchase.CreateVendor(Vendor);\n+\n+ // [GIVEN] Open Purchase Journal.\n+ PurchaseJournal.OpenView();\n+ PurchaseJournal.New();\n+ PurchaseJournal.\"Account Type\".SetValue(\"Gen. Journal Account Type\"::Vendor);\n+ PurchaseJournal.\"Account No.\".SetValue(Vendor.\"No.\");\n+\n+ // [GIVEN] Generate and save Document Amount in a Variable.\n+ DocumentAmount := LibraryRandom.RandDecInRange(1, 4, 3);\n+\n+ // [WHEN] Set value in Document Amount field in Purchase Journal.\n+ PurchaseJournal.DocumentAmount.SetValue(DocumentAmount);\n+\n+ // [THEN] Document Amount in Purchase Journal has the correct value.\n+ Assert.AreEqual(\n+ DocumentAmount,\n+ PurchaseJournal.DocumentAmount.AsDecimal(),\n+ StrSubstNo(\n+ DocumentAmountLogicErr,\n+ DocumentAmount,\n+ PurchaseJournal.DocumentAmount.AsDecimal()));\n+ end;\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n@@ -255,6 +255,6 @@ page 254 \"Purchase Journal\"\n {\n ApplicationArea = Basic, Suite;\n- AutoFormatExpression = Rec.\"Currency Code\";\n+ DecimalPlaces = 0 : 3;\n Caption = 'Document Amount';\n ToolTip = 'Specifies the total amount (including VAT) that the journal line consists of.';\n \n"} +{"instance_id": "microsoftInternal__NAV-185488__cf-1", "base_instance_id": "microsoftInternal__NAV-185488", "variant_description": "IsHandled set to true prevents notification entry creation", "failure_layer": null, "FAIL_TO_PASS": [{"codeunitID": 134184, "functionName": ["CanRequestApprovalPurchaseQuoteWithNotifySender"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/Workflow/WFDemoPurchQuoteApprovals.Codeunit.al b/App/Layers/W1/Tests/Workflow/WFDemoPurchQuoteApprovals.Codeunit.al\nindex eec702f..6f4cc29 100644\n--- a/App/Layers/W1/Tests/Workflow/WFDemoPurchQuoteApprovals.Codeunit.al\n+++ b/App/Layers/W1/Tests/Workflow/WFDemoPurchQuoteApprovals.Codeunit.al\n@@ -169,6 +169,50 @@ codeunit 134184 \"WF Demo Purch Quote Approvals\"\n Assert.ExpectedError(StrSubstNo(RecordIsRestrictedErr, Format(PurchaseHeader.RecordId, 0, 1)));\n end;\n \n+ [Test]\n+ procedure CanRequestApprovalPurchaseQuoteWithNotifySender()\n+ var\n+ PurchaseHeader: Record \"Purchase Header\";\n+ WorkflowStepInstance: Record \"Workflow Step Instance\";\n+ WorkflowStepArgument: Record \"Workflow Step Argument\";\n+ ApprovalEntry: Record \"Approval Entry\";\n+ NotificationEntry: Record \"Notification Entry\";\n+ WorkflowResponseHandling: Codeunit \"Workflow Response Handling\";\n+ Variant: Variant;\n+ begin\n+ // [SCENARIO] When ExecuteResponse is called with a purchase header as argument and setup to Create a notification entry code, no error is thrown.\n+ // [GIVEN] The approval workflow for purchase quotes is enabled.\n+ // [WHEN] The user wants to Release the purchase quote.\n+ // [THEN] The user will get an error that he cannot release the purchase quote that is not approved.\n+\n+ // Setup\n+ Initialize();\n+\n+ // [GIVEN] A purchase quote that should be approved\n+ CreatePurchaseQuote(PurchaseHeader);\n+\n+ // [GIVEN] An approval for the purchase quote\n+ if ApprovalEntry.FindLast() then;\n+ ApprovalEntry.\"Entry No.\" += 1;\n+ ApprovalEntry.\"Record ID to Approve\" := PurchaseHeader.RecordId;\n+ ApprovalEntry.Insert();\n+\n+ // [GIVEN] A workflow step for sending a notification\n+ WorkflowStepArgument.ID := CreateGuid();\n+ WorkflowStepArgument.\"Notify Sender\" := true;\n+ WorkflowStepArgument.Insert();\n+\n+ WorkflowStepInstance.ID := CreateGuid();\n+ WorkflowStepInstance.Argument := WorkflowStepArgument.ID;\n+ WorkflowStepInstance.\"Function Name\" := WorkflowResponseHandling.CreateNotificationEntryCode();\n+ WorkflowStepInstance.Insert();\n+\n+ // [WHEN] Executing the notification step\n+ // [THEN] No notification entry is created\n+ WorkflowResponseHandling.ExecuteResponse(Variant, WorkflowStepInstance, PurchaseHeader);\n+ Assert.IsFalse(NotificationEntry.FindFirst(), 'Notification entry should not be created.');\n+ end;\n+\n [Test]\n [HandlerFunctions('MessageHandler')]\n [Scope('OnPrem')]\n", "patch": "diff --git a/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al b/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al\n--- a/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al\n@@ -86,7 +86,7 @@\n ApplyNewValuesTxt: Label 'Apply the new values.';\n DiscardNewValuesTxt: Label 'Discard the new values.';\n EnableJobQueueEntryResponseDescTxt: Label 'Enable the job queue entry.';\n-\n+ UnknownRecordErr: Label 'Unknown record type.';\n // Telemetry strings\n WorkflowResponseStartTelemetryTxt: Label 'Workflow response: Start Scope', Locked = true;\n WorkflowResponseEndTelemetryTxt: Label 'Workflow response: End Scope', Locked = true;\n@@ -108,8 +108,8 @@\n AddResponseToLibrary(PostDocumentCode(), 0, PostDocumentTxt, 'GROUP 0');\n AddResponseToLibrary(PostDocumentAsyncCode(), 0, BackgroundDocumentPostTxt, 'GROUP 0');\n \n- AddResponseToLibrary(CreatePmtLineForPostedPurchaseDocAsyncCode(), DATABASE::\"Purch. Inv. Header\", CreatePmtLineAsyncTxt, 'GROUP 1');\n- AddResponseToLibrary(CreatePmtLineForPostedPurchaseDocCode(), DATABASE::\"Purch. Inv. Header\", CreatePmtLineTxt, 'GROUP 1');\n+ AddResponseToLibrary(CreatePmtLineForPostedPurchaseDocAsyncCode(), Database::\"Purch. Inv. Header\", CreatePmtLineAsyncTxt, 'GROUP 1');\n+ AddResponseToLibrary(CreatePmtLineForPostedPurchaseDocCode(), Database::\"Purch. Inv. Header\", CreatePmtLineTxt, 'GROUP 1');\n \n AddResponseToLibrary(CreateOverdueNotificationCode(), 0, CreateOverdueNotifTxt, 'GROUP 2');\n AddResponseToLibrary(CheckCustomerCreditLimitCode(), 0, CheckCustomerCreditLimitTxt, 'GROUP 0');\n@@ -624,22 +624,45 @@\n begin\n end;\n \n- local procedure CreateNotificationEntry(WorkflowStepInstance: Record \"Workflow Step Instance\"; ApprovalEntry: Record \"Approval Entry\")\n+ local procedure CreateNotificationEntry(WorkflowStepInstance: Record \"Workflow Step Instance\"; var Variant: Variant)\n var\n+ ApprovalEntry: Record \"Approval Entry\";\n WorkflowStepArgument: Record \"Workflow Step Argument\";\n NotificationEntry: Record \"Notification Entry\";\n+ RecRef: RecordRef;\n IsHandled: Boolean;\n begin\n- IsHandled := false;\n- OnBeforeCreateNotificationEntry(WorkflowStepInstance, ApprovalEntry, IsHandled);\n- if IsHandled then\n- exit;\n-\n- if WorkflowStepArgument.Get(WorkflowStepInstance.Argument) then\n- NotificationEntry.CreateNotificationEntry(\n- WorkflowStepArgument.\"Notification Entry Type\",\n- WorkflowStepArgument.GetNotificationUserID(ApprovalEntry), ApprovalEntry, WorkflowStepArgument.\"Link Target Page\",\n- WorkflowStepArgument.\"Custom Link\", UserID);\n+ RecRef.GetTable(Variant);\n+ case RecRef.Number of\n+ Database::\"Approval Entry\":\n+ begin\n+ ApprovalEntry := Variant;\n+ IsHandled := true;\n+ OnBeforeCreateNotificationEntry(WorkflowStepInstance, ApprovalEntry, IsHandled);\n+ if IsHandled then\n+ exit;\n+\n+ if WorkflowStepArgument.Get(WorkflowStepInstance.Argument) then\n+ NotificationEntry.CreateNotificationEntry(WorkflowStepArgument.\"Notification Entry Type\", WorkflowStepArgument.GetNotificationUserID(ApprovalEntry), ApprovalEntry, WorkflowStepArgument.\"Link Target Page\", WorkflowStepArgument.\"Custom Link\", CopyStr(UserId(), 1, 50));\n+ end;\n+ Database::\"Incoming Document\",\n+ Database::\"Gen. Journal Line\",\n+ Database::\"Purchase Header\",\n+ Database::\"Purch. Inv. Header\":\n+ if WorkflowStepArgument.Get(WorkflowStepInstance.Argument) then\n+ if WorkflowStepArgument.\"Notify Sender\" then\n+ NotificationEntry.CreateNotificationEntry(WorkflowStepArgument.\"Notification Entry Type\", CopyStr(UserId(), 1, 50), Variant, WorkflowStepArgument.\"Link Target Page\", WorkflowStepArgument.\"Custom Link\", CopyStr(UserId(), 1, 50))\n+ else\n+ NotificationEntry.CreateNotificationEntry(WorkflowStepArgument.\"Notification Entry Type\", WorkflowStepArgument.\"Notification User ID\", Variant, WorkflowStepArgument.\"Link Target Page\", WorkflowStepArgument.\"Custom Link\", CopyStr(UserId(), 1, 50));\n+ else begin\n+ ApprovalEntry.SetRange(\"Record ID to Approve\", RecRef.RecordId);\n+ if ApprovalEntry.FindFirst() then begin\n+ Variant := ApprovalEntry;\n+ CreateNotificationEntry(WorkflowStepInstance, Variant);\n+ end else\n+ Error(UnknownRecordErr);\n+ end;\n+ end;\n end;\n \n local procedure ReleaseDocument(var Variant: Variant)\n@@ -657,25 +680,25 @@\n RecRef.GetTable(Variant);\n \n case RecRef.Number of\n- DATABASE::\"Approval Entry\":\n+ Database::\"Approval Entry\":\n begin\n ApprovalEntry := Variant;\n TargetRecRef.Get(ApprovalEntry.\"Record ID to Approve\");\n Variant := TargetRecRef;\n ReleaseDocument(Variant);\n end;\n- DATABASE::\"Workflow Webhook Entry\":\n+ Database::\"Workflow Webhook Entry\":\n begin\n WorkflowWebhookEntry := Variant;\n TargetRecRef.Get(WorkflowWebhookEntry.\"Record ID\");\n Variant := TargetRecRef;\n ReleaseDocument(Variant);\n end;\n- DATABASE::\"Purchase Header\":\n+ Database::\"Purchase Header\":\n ReleasePurchaseDocument.PerformManualCheckAndRelease(Variant);\n- DATABASE::\"Sales Header\":\n+ Database::\"Sales Header\":\n ReleaseSalesDocument.PerformManualCheckAndRelease(Variant);\n- DATABASE::\"Incoming Document\":\n+ Database::\"Incoming Document\":\n ReleaseIncomingDocument.PerformManualRelease(Variant);\n else begin\n OnReleaseDocument(RecRef, Handled);\n@@ -699,25 +722,25 @@\n RecRef.GetTable(Variant);\n \n case RecRef.Number of\n- DATABASE::\"Approval Entry\":\n+ Database::\"Approval Entry\":\n begin\n ApprovalEntry := Variant;\n TargetRecRef.Get(ApprovalEntry.\"Record ID to Approve\");\n Variant := TargetRecRef;\n OpenDocument(Variant);\n end;\n- DATABASE::\"Workflow Webhook Entry\":\n+ Database::\"Workflow Webhook Entry\":\n begin\n WorkflowWebhookEntry := Variant;\n TargetRecRef.Get(WorkflowWebhookEntry.\"Record ID\");\n Variant := TargetRecRef;\n OpenDocument(Variant);\n end;\n- DATABASE::\"Purchase Header\":\n+ Database::\"Purchase Header\":\n ReleasePurchaseDocument.Reopen(Variant);\n- DATABASE::\"Sales Header\":\n+ Database::\"Sales Header\":\n ReleaseSalesDocument.Reopen(Variant);\n- DATABASE::\"Incoming Document\":\n+ Database::\"Incoming Document\":\n ReleaseIncomingDocument.Reopen(Variant);\n else begin\n OnOpenDocument(RecRef, Handled);\n@@ -782,7 +805,7 @@\n RecRef.GetTable(Variant);\n \n case RecRef.Number of\n- DATABASE::\"Approval Entry\":\n+ Database::\"Approval Entry\":\n ApprovalsMgmt.SendApprovalRequestFromApprovalEntry(Variant, WorkflowStepInstance);\n else\n ApprovalsMgmt.SendApprovalRequestFromRecord(RecRef, WorkflowStepInstance);\n@@ -798,7 +821,7 @@\n RecRef.GetTable(Variant);\n \n case RecRef.Number of\n- DATABASE::\"Approval Entry\":\n+ Database::\"Approval Entry\":\n begin\n ApprovalEntry := Variant;\n RecRef.Get(ApprovalEntry.\"Record ID to Approve\");\n@@ -818,7 +841,7 @@\n RecRef.GetTable(Variant);\n \n case RecRef.Number of\n- DATABASE::\"Approval Entry\":\n+ Database::\"Approval Entry\":\n begin\n ApprovalEntry := Variant;\n RecRef.Get(ApprovalEntry.\"Record ID to Approve\");\n@@ -838,7 +861,7 @@\n RecRef.GetTable(Variant);\n \n case RecRef.Number of\n- DATABASE::\"Approval Entry\":\n+ Database::\"Approval Entry\":\n begin\n ApprovalEntry := Variant;\n RecRef.Get(ApprovalEntry.\"Record ID to Approve\");\n@@ -859,13 +882,13 @@\n RecRef.GetTable(Variant);\n \n case RecRef.Number of\n- DATABASE::\"Purchase Header\":\n+ Database::\"Purchase Header\":\n begin\n PurchaseHeader := Variant;\n PurchaseHeader.TestField(Status, PurchaseHeader.Status::Released);\n JobQueueEntry.ScheduleJobQueueEntry(CODEUNIT::\"Purchase Post via Job Queue\", PurchaseHeader.RecordId);\n end;\n- DATABASE::\"Sales Header\":\n+ Database::\"Sales Header\":\n begin\n SalesHeader := Variant;\n SalesHeader.TestField(Status, SalesHeader.Status::Released);\n@@ -884,9 +907,9 @@\n RecRef.GetTable(Variant);\n \n case RecRef.Number of\n- DATABASE::\"Purchase Header\":\n+ Database::\"Purchase Header\":\n CODEUNIT.Run(CODEUNIT::\"Purch.-Post\", Variant);\n- DATABASE::\"Sales Header\":\n+ Database::\"Sales Header\":\n CODEUNIT.Run(CODEUNIT::\"Sales-Post\", Variant);\n else begin\n IsHandled := false;\n@@ -923,7 +946,7 @@\n RecRef.GetTable(Variant);\n \n case RecRef.Number of\n- DATABASE::\"Sales Header\":\n+ Database::\"Sales Header\":\n begin\n SalesHeader := Variant;\n SalesHeader.CheckAvailableCreditLimit();\n@@ -939,7 +962,7 @@\n RecRef.GetTable(Variant);\n \n case RecRef.Number of\n- DATABASE::\"Gen. Journal Batch\":\n+ Database::\"Gen. Journal Batch\":\n begin\n GenJournalBatch := Variant;\n GenJournalBatch.CheckBalance();\n@@ -955,9 +978,9 @@\n RecRef.GetTable(Variant);\n \n case RecRef.Number of\n- DATABASE::\"Sales Header\":\n+ Database::\"Sales Header\":\n ApprovalsMgmt.CreateAndAutomaticallyApproveRequest(RecRef, WorkflowStepInstance);\n- DATABASE::Customer:\n+ Database::Customer:\n ApprovalsMgmt.CreateAndAutomaticallyApproveRequest(RecRef, WorkflowStepInstance);\n end;\n end;\n@@ -997,30 +1020,30 @@\n RecRef.GetTable(Variant);\n \n case RecRef.Number of\n- DATABASE::\"Approval Entry\":\n+ Database::\"Approval Entry\":\n begin\n RecordRestrictionMgt.AllowRecordUsage(Variant);\n RecRef.SetTable(ApprovalEntry);\n RecRef.Get(ApprovalEntry.\"Record ID to Approve\");\n AllowRecordUsage(RecRef);\n end;\n- DATABASE::\"Workflow Webhook Entry\":\n+ Database::\"Workflow Webhook Entry\":\n begin\n RecRef.SetTable(WorkflowWebhookEntry);\n RecRef.Get(WorkflowWebhookEntry.\"Record ID\");\n AllowRecordUsage(RecRef);\n end;\n- DATABASE::\"Gen. Journal Batch\":\n+ Database::\"Gen. Journal Batch\":\n begin\n RecRef.SetTable(GenJournalBatch);\n RecordRestrictionMgt.AllowGenJournalBatchUsage(GenJournalBatch);\n end;\n- DATABASE::\"Item Journal Batch\":\n+ Database::\"Item Journal Batch\":\n begin\n RecRef.SetTable(ItemJournalBatch);\n RecordRestrictionMgt.AllowItemJournalBatchUsage(ItemJournalBatch);\n end;\n- DATABASE::\"FA Journal Batch\":\n+ Database::\"FA Journal Batch\":\n begin\n RecRef.SetTable(FAJournalBatch);\n RecordRestrictionMgt.AllowFAJournalBatchUsage(FAJournalBatch);\n@@ -1306,7 +1329,7 @@\n RecRef.GetTable(VariantRecord);\n \n case RecRef.Number of\n- DATABASE::\"Approval Entry\":\n+ Database::\"Approval Entry\":\n begin\n ApprovalEntry := VariantRecord;\n RecRef := ApprovalEntry.\"Record ID to Approve\".GetRecord();\n"} +{"instance_id": "microsoftInternal__NAV-185792__cf-1", "base_instance_id": "microsoftInternal__NAV-185792", "variant_description": "Remove temp job journal line creation step from Amount LCY recalculation", "failure_layer": null, "FAIL_TO_PASS": [{"codeunitID": 136305, "functionName": ["ProjectAmountUpdatedWhenAmountLCYIsInserted"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/Job/JobJournal.Codeunit.al b/App/Layers/W1/Tests/Job/JobJournal.Codeunit.al\nindex d5e9b4a..4eb1533 100644\n--- a/App/Layers/W1/Tests/Job/JobJournal.Codeunit.al\n+++ b/App/Layers/W1/Tests/Job/JobJournal.Codeunit.al\n@@ -44,6 +44,7 @@ codeunit 136305 \"Job Journal\"\n AmountErr: Label 'Amount must be right';\n CurrencyDateConfirmTxt: Label 'The currency dates on all planning lines will be updated based on the invoice posting date because there is a difference in currency exchange rates. Recalculations will be based on the Exch. Calculation setup for the Cost and Price values for the project. Do you want to continue?';\n ControlNotFoundErr: Label 'Expected control not found on the page';\n+ ProjectTotalCostErr: Label 'Project Total Cost(LCY) must be updated.';\n \n [Test]\n [Scope('OnPrem')]\n@@ -2919,6 +2920,58 @@ codeunit 136305 \"Job Journal\"\n Assert.RecordCount(JobPlanningLine, 1);\n end;\n \n+ [Test]\n+ procedure ProjectAmountUpdatedWhenAmountLCYIsInserted()\n+ var\n+ JobTask: Record \"Job Task\";\n+ GenJournalBatch: Record \"Gen. Journal Batch\";\n+ GenJournalLine: Record \"Gen. Journal Line\";\n+ GLAccount: Record \"G/L Account\";\n+ BankAccount: Record \"Bank Account\";\n+ Currency: Record Currency;\n+ PreviousProjectTotalCostLCY: Decimal;\n+ begin\n+ // [SCENARIO 537315] The Project G/L Ledgers line after changing the \"Amount (LCY)\" value changes Project Total Cost(LCY).\n+ Initialize();\n+\n+ // [GIVEN] Create a Job and job Task.\n+ CreateJobWithJobTask(JobTask);\n+\n+ // [GIVEN] Create a Job Journal Batch.\n+ CreateAndUpdateJobJournalBatch(GenJournalBatch);\n+\n+ // [GIVEN] Create a GL Account.\n+ LibraryERM.CreateGLAccount(GLAccount);\n+\n+ // [GIVEN] Create a Bank Account.\n+ LibraryERM.CreateBankAccount(BankAccount);\n+\n+ // [GIVEN] Get any existing Currency.\n+ LibraryERM.FindCurrency(Currency);\n+\n+ // [GIVEN] Create General Journal Line.\n+ LibraryERM.CreateGeneralJnlLine(\n+ GenJournalLine, GenJournalBatch.\"Journal Template Name\", GenJournalBatch.Name, GenJournalLine.\"Document Type\"::Invoice,\n+ GenJournalLine.\"Account Type\"::\"G/L Account\", GLAccount.\"No.\", LibraryRandom.RandDec(100, 2));\n+\n+ //[GIVEN] Validate Balancing Accounts.\n+ GenJournalLine.Validate(\"Bal. Account Type\", GenJournalLine.\"Bal. Account Type\"::\"Bank Account\");\n+ GenJournalLine.Validate(\"Bal. Account No.\", BankAccount.\"No.\");\n+ GenJournalLine.Validate(\"Currency Code\", Currency.Code);\n+ GenJournalLine.Validate(\"Job Line Type\", GenJournalLine.\"Job Line Type\"::\"Both Budget and Billable\");\n+ GenJournalLine.Validate(\"Job No.\", JobTask.\"Job No.\");\n+ GenJournalLine.Validate(\"Job Task No.\", JobTask.\"Job Task No.\");\n+ GenJournalLine.Validate(\"Job Quantity\", LibraryRandom.RandDec(10, 2));\n+\n+ // [GIVEN] Store Project Total Cost LCY and Validate Amount (LCY) to new Amount.\n+ PreviousProjectTotalCostLCY := GenJournalLine.\"Job Total Cost (LCY)\";\n+ GenJournalLine.Validate(\"Amount (LCY)\", LibraryRandom.RandDec(12, 2));\n+ GenJournalLine.Modify(true);\n+\n+ // [THEN] Project Total Cost (LCY) must be updated.\n+ Assert.AreNotEqual(GenJournalLine.\"Job Total Cost (LCY)\", PreviousProjectTotalCostLCY, ProjectTotalCostErr);\n+ end;\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\nindex 53e7159..0000003 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\n@@ -599,6 +599,11 @@ table 81 \"Gen. Journal Line\"\n Validate(\"Bal. VAT %\");\n UpdateLineBalance();\n end;\n+\n+ if (\"Job No.\" <> '') and (\"Job Task No.\" <> '') then begin\n+ CreateTempJobJnlLine();\n+ UpdatePricesFromJobJnlLine();\n+ end;\n end;\n }\n field(17; \"Balance (LCY)\"; Decimal)\n"} +{"instance_id": "microsoftInternal__NAV-188438__cf-1", "base_instance_id": "microsoftInternal__NAV-188438", "variant_description": "Only G/L accounts with Direct Posting enabled should be considered when collecting amounts; non-Direct Posting accounts are excluded", "failure_layer": null, "FAIL_TO_PASS": [{"codeunitID": 148181, "functionName": ["TestCustomAmountIsPositiveForNegativeTotalOfGL"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Apps/W1/Sustainability/test/src/SustainabilityJournalTest.Codeunit.al b/App/Apps/W1/Sustainability/test/src/SustainabilityJournalTest.Codeunit.al\nindex 54ca91b..cf8b504 100644\n--- a/App/Apps/W1/Sustainability/test/src/SustainabilityJournalTest.Codeunit.al\n+++ b/App/Apps/W1/Sustainability/test/src/SustainabilityJournalTest.Codeunit.al\n@@ -5,9 +5,13 @@ codeunit 148181 \"Sustainability Journal Test\"\n \n var\n Assert: Codeunit Assert;\n+ LibraryERM: Codeunit \"Library - ERM\";\n+ LibraryRandom: Codeunit \"Library - Random\";\n LibrarySustainability: Codeunit \"Library - Sustainability\";\n+ LibraryUtility: Codeunit \"Library - Utility\";\n OneDefaultTemplateShouldBeCreatedLbl: Label 'One default template should be created after page is opened', Locked = true;\n OneDefaultBatchShouldBeCreatedLbl: Label 'One default batch should be created after page is opened', Locked = true;\n+ CustomAmountMustBePositiveLbl: Label 'The custom amount must be positive', Locked = true;\n \n [Test]\n procedure TestDefaultTemplateAndBatchSuccessfullyInserted()\n@@ -100,4 +104,51 @@ codeunit 148181 \"Sustainability Journal Test\"\n // [THEN] The Check should fail\n asserterror SustainabilityJournalMgt.CheckScopeMatchWithBatch(SustainabilityJournalLine);\n end;\n+\n+ [Test]\n+ procedure TestCustomAmountIsPositiveForNegativeTotalOfGL()\n+ var\n+ SustainAccountCategory: Record \"Sustain. Account Category\";\n+ GenJournalBatch: Record \"Gen. Journal Batch\";\n+ GenJouralLine: Record \"Gen. Journal Line\";\n+ GLAccount: Record \"G/L Account\";\n+ SustainabilityCalcMgt: Codeunit \"Sustainability Calc. Mgt.\";\n+ GenJournalTemplateCode: Code[10];\n+ GLAccountNo: Code[20];\n+ GLAmount, CustomAmount : Decimal;\n+ begin\n+ // [SCENARIO 540221] Test that the custom amount is positive when the total of the GL is negative and the G/L Account has Direct Posting enabled\n+\n+ // [GIVEN] G/L Account exists with Direct Posting\n+ GLAccountNo := LibraryERM.CreateGLAccountNoWithDirectPosting();\n+\n+ // [GIVEN] Verify G/L Account has Direct Posting = true\n+ GLAccount.Get(GLAccountNo);\n+ Assert.IsTrue(GLAccount.\"Direct Posting\", 'G/L Account must have Direct Posting enabled');\n+\n+ // [GIVEN] G/L Batch and Template exist\n+ GenJournalTemplateCode := LibraryERM.SelectGenJnlTemplate();\n+ LibraryERM.CreateGenJournalBatch(GenJournalBatch, GenJournalTemplateCode);\n+\n+ // [GIVEN] G/L Entry with Amount = -1000 for the G/L Account\n+ GLAmount := -LibraryRandom.RandDec(1000, 2);\n+ LibraryERM.CreateGeneralJnlLine2WithBalAcc(GenJouralLine, GenJournalTemplateCode, GenJournalBatch.Name, GenJouralLine.\"Document Type\"::Payment, GenJouralLine.\"Account Type\"::\"G/L Account\", GLAccountNo, GenJouralLine.\"Account Type\"::\"G/L Account\", LibraryERM.CreateGLAccountNoWithDirectPosting(), GLAmount);\n+ LibraryERM.PostGeneralJnlLine(GenJouralLine);\n+\n+ // [GIVEN] Sustain Account Category with the G/L Account calculation foundation\n+ SustainAccountCategory := CreateSustAccountCategoryWithGLAccountNo(GLAccountNo);\n+\n+ // [WHEN] Getting the collectable amount for sustainability account category\n+ CustomAmount := SustainabilityCalcMgt.GetCollectableGLAmount(SustainAccountCategory, 0D, 0D);\n+\n+ // [THEN] The custom amount = 1000 (positive, because G/L Account has Direct Posting)\n+ Assert.AreEqual(Abs(GLAmount), CustomAmount, CustomAmountMustBePositiveLbl);\n+ end;\n+\n+ local procedure CreateSustAccountCategoryWithGLAccountNo(GLAccountNo: Code[20]) SustainAccountCategory: Record \"Sustain. Account Category\"\n+ begin\n+ SustainAccountCategory := LibrarySustainability.InsertAccountCategory(LibraryUtility.GenerateGUID(), LibraryUtility.GenerateGUID(), Enum::\"Emission Scope\"::\"Scope 2\", Enum::\"Calculation Foundation\"::Custom, true, true, true, 'GL', true);\n+ SustainAccountCategory.\"G/L Account Filter\" := GLAccountNo;\n+ SustainAccountCategory.Modify(true);\n+ end;\n }\n\\ No newline at end of file\n", "patch": "diff --git a/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al b/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al\nindex 4644c87..ab8bb3f 100644\n--- a/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al\n+++ b/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al\n@@ -3,6 +3,7 @@ namespace Microsoft.Sustainability.Calculation;\n using Microsoft.Sustainability.Journal;\n using Microsoft.Sustainability.Account;\n using Microsoft.Finance.GeneralLedger.Ledger;\n+using Microsoft.Finance.GeneralLedger.Account;\n \n codeunit 6218 \"Sustainability Calc. Mgt.\"\n {\n@@ -67,10 +68,13 @@ codeunit 6218 \"Sustainability Calc. Mgt.\"\n procedure GetCollectableGLAmount(SustainAccountCategory: Record \"Sustain. Account Category\"; FromDate: Date; ToDate: Date): Decimal\n var\n GLEntry: Record \"G/L Entry\";\n+ GLAccount: Record \"G/L Account\";\n begin\n FilterGLEntry(SustainAccountCategory, FromDate, ToDate, GLEntry);\n GLEntry.CalcSums(Amount);\n- exit(GLEntry.Amount);\n+ if GLAccount.Get(GLEntry.\"G/L Account No.\") and (not GLAccount.\"Direct Posting\") then\n+ exit(0);\n+ exit(Abs(GLEntry.Amount));\n end;\n \n internal procedure CollectGeneralLedgerAmount(var SustainabilityJnlLine: Record \"Sustainability Jnl. Line\")\n"} +{"instance_id": "microsoftInternal__NAV-192565__cf-1", "base_instance_id": "microsoftInternal__NAV-192565", "variant_description": "Non-deductible VAT is cleared only when Direct Unit Cost = 0 AND Quantity <> 0", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-192565__cf-1", "FAIL_TO_PASS": [{"codeunitID": 134282, "functionName": ["ChangingDirectUnitCostToZeroChangesNonDeductibleVAT"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/VAT/NonDeductibleUT.Codeunit.al b/App/Layers/W1/Tests/VAT/NonDeductibleUT.Codeunit.al\n--- a/App/Layers/W1/Tests/VAT/NonDeductibleUT.Codeunit.al\n+++ b/App/Layers/W1/Tests/VAT/NonDeductibleUT.Codeunit.al\n@@ -179,6 +179,35 @@ codeunit 134282 \"Non-Deductible UT\"\n Assert.ExpectedError(StrSubstNo(DifferentNonDedVATRatesSameVATIdentifierErr, VATPostingSetup.\"VAT Bus. Posting Group\", VATPostingSetup.\"VAT Prod. Posting Group\"));\n end;\n \n+ [Test]\n+ procedure ChangingDirectUnitCostToZeroChangesNonDeductibleVAT()\n+ var\n+ VATPostingSetup: Record \"VAT Posting Setup\";\n+ PurchaseHeader: Record \"Purchase Header\";\n+ PurchaseLine: Record \"Purchase Line\";\n+ begin\n+ // [SCENARIO 546032] Changeing the direct unit cost to zero also changes the Non-Deductible VAT of the purchase document when quantity is non-zero\n+\n+ Initialize();\n+ // [GIVEN] VAT Posting Setup with \"VAT Identifier\" = \"X\", \"Allow Non-Deductible VAT\" is enabled and \"Non-Deductible VAT %\" is specified\n+ LibraryNonDeductibleVAT.CreateNonDeductibleNormalVATPostingSetup(VATPostingSetup);\n+ // [GIVEN] Purchase invoice with Non-Deductible VAT posting setup and a single line with direct unit cost\n+ LibraryPurchase.CreatePurchHeader(\n+ PurchaseHeader, PurchaseHeader.\"Document Type\"::Invoice,\n+ LibraryPurchase.CreateVendorWithVATBusPostingGroup(VATPostingSetup.\"VAT Bus. Posting Group\"));\n+ LibraryPurchase.CreatePurchaseLine(\n+ PurchaseLine, PurchaseHeader, PurchaseLine.Type::Item,\n+ LibraryInventory.CreateItemWithVATProdPostingGroup(VATPostingSetup.\"VAT Prod. Posting Group\"), LibraryRandom.RandInt(100));\n+ PurchaseLine.Validate(\"Direct Unit Cost\", LibraryRandom.RandDec(100, 2));\n+\n+ // [WHEN] Change \"Direct Unit Cost\" to 0 in the purchase line\n+ PurchaseLine.Validate(\"Direct Unit Cost\", 0);\n+ PurchaseLine.Validate(Quantity, 5);\n+ // [THEN] \"Non-Deductible VAT Base\" and \"Non-Deductible VAT Amount\" are 0 in the purchase line\n+ PurchaseLine.TestField(\"Non-Deductible VAT Base\", 0);\n+ PurchaseLine.TestField(\"Non-Deductible VAT Amount\", 0);\n+ end;\n+\n local procedure Initialize()\n begin\n LibraryTestInitialize.OnTestInitialize(Codeunit::\"Non-Deductible UT\");\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n--- a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n@@ -5365,6 +5365,8 @@ table 39 \"Purchase Line\"\n Amount := 0;\n \"VAT Base Amount\" := 0;\n \"Amount Including VAT\" := 0;\n+ if Quantity <> 0 then\n+ NonDeductibleVAT.ClearNonDeductibleVAT(Rec);\n OnUpdateVATAmountsOnBeforePurchLineModify(Rec, PurchLine2);\n if (Quantity = 0) and (xRec.Quantity <> 0) and (xRec.Amount <> 0) then begin\n if \"Line No.\" <> 0 then\n"} +{"instance_id": "microsoftInternal__NAV-192565__cf-2", "base_instance_id": "microsoftInternal__NAV-192565", "variant_description": "Non-deductible VAT is cleared only for Item lines", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-192565__cf-2", "FAIL_TO_PASS": [{"codeunitID": 134282, "functionName": ["ChangingDirectUnitCostToZeroChangesNonDeductibleVAT"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/VAT/NonDeductibleUT.Codeunit.al b/App/Layers/W1/Tests/VAT/NonDeductibleUT.Codeunit.al\n--- a/App/Layers/W1/Tests/VAT/NonDeductibleUT.Codeunit.al\n+++ b/App/Layers/W1/Tests/VAT/NonDeductibleUT.Codeunit.al\n@@ -179,6 +179,36 @@ codeunit 134282 \"Non-Deductible UT\"\n Assert.ExpectedError(StrSubstNo(DifferentNonDedVATRatesSameVATIdentifierErr, VATPostingSetup.\"VAT Bus. Posting Group\", VATPostingSetup.\"VAT Prod. Posting Group\"));\n end;\n \n+ [Test]\n+ procedure ChangingDirectUnitCostToZeroChangesNonDeductibleVAT()\n+ var\n+ VATPostingSetup: Record \"VAT Posting Setup\";\n+ PurchaseHeader: Record \"Purchase Header\";\n+ PurchaseLine: Record \"Purchase Line\";\n+ begin\n+ // [SCENARIO 546032] Changeing the direct unit cost to zero also changes the Non-Deductible VAT of the purchase document for item lines\n+\n+ Initialize();\n+ // [GIVEN] VAT Posting Setup with \"VAT Identifier\" = \"X\", \"Allow Non-Deductible VAT\" is enabled and \"Non-Deductible VAT %\" is specified\n+ LibraryNonDeductibleVAT.CreateNonDeductibleNormalVATPostingSetup(VATPostingSetup);\n+ // [GIVEN] Purchase invoice with Non-Deductible VAT posting setup and a single line with direct unit cost\n+ LibraryPurchase.CreatePurchHeader(\n+ PurchaseHeader, PurchaseHeader.\"Document Type\"::Invoice,\n+ LibraryPurchase.CreateVendorWithVATBusPostingGroup(VATPostingSetup.\"VAT Bus. Posting Group\"));\n+ LibraryPurchase.CreatePurchaseLine(\n+ PurchaseLine, PurchaseHeader, PurchaseLine.Type::Item,\n+ LibraryInventory.CreateItemWithVATProdPostingGroup(VATPostingSetup.\"VAT Prod. Posting Group\"), LibraryRandom.RandInt(100));\n+ PurchaseLine.Validate(\"Direct Unit Cost\", LibraryRandom.RandDec(100, 2));\n+\n+ // [WHEN] Change \"Direct Unit Cost\" to 0 in the purchase line\n+ PurchaseLine.Validate(\"Direct Unit Cost\", 0);\n+\n+ PurchaseLine.TestField(Type, PurchaseLine.Type::Item);\n+ // [THEN] \"Non-Deductible VAT Base\" and \"Non-Deductible VAT Amount\" are 0 in the purchase line\n+ PurchaseLine.TestField(\"Non-Deductible VAT Base\", 0);\n+ PurchaseLine.TestField(\"Non-Deductible VAT Amount\", 0);\n+ end;\n+\n local procedure Initialize()\n begin\n LibraryTestInitialize.OnTestInitialize(Codeunit::\"Non-Deductible UT\");\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n--- a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n@@ -5365,6 +5365,8 @@ table 39 \"Purchase Line\"\n Amount := 0;\n \"VAT Base Amount\" := 0;\n \"Amount Including VAT\" := 0;\n+ if Type = Type::Item then\n+ NonDeductibleVAT.ClearNonDeductibleVAT(Rec);\n OnUpdateVATAmountsOnBeforePurchLineModify(Rec, PurchLine2);\n if (Quantity = 0) and (xRec.Quantity <> 0) and (xRec.Amount <> 0) then begin\n if \"Line No.\" <> 0 then\n"} +{"instance_id": "microsoftInternal__NAV-192565__cf-3", "base_instance_id": "microsoftInternal__NAV-192565", "variant_description": "Non-deductible VAT is cleared only when Allow Non-Deductible VAT is enabled", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-192565__cf-3", "FAIL_TO_PASS": [{"codeunitID": 134282, "functionName": ["ChangingDirectUnitCostToZeroChangesNonDeductibleVAT"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/VAT/NonDeductibleUT.Codeunit.al b/App/Layers/W1/Tests/VAT/NonDeductibleUT.Codeunit.al\nindex 355bce7..73df18a 100644\n--- a/App/Layers/W1/Tests/VAT/NonDeductibleUT.Codeunit.al\n+++ b/App/Layers/W1/Tests/VAT/NonDeductibleUT.Codeunit.al\n@@ -179,6 +179,35 @@ codeunit 134282 \"Non-Deductible UT\"\n Assert.ExpectedError(StrSubstNo(DifferentNonDedVATRatesSameVATIdentifierErr, VATPostingSetup.\"VAT Bus. Posting Group\", VATPostingSetup.\"VAT Prod. Posting Group\"));\n end;\n \n+ [Test]\n+ procedure ChangingDirectUnitCostToZeroChangesNonDeductibleVAT()\n+ var\n+ VATPostingSetup: Record \"VAT Posting Setup\";\n+ PurchaseHeader: Record \"Purchase Header\";\n+ PurchaseLine: Record \"Purchase Line\";\n+ begin\n+ // [SCENARIO 546032] Changeing the direct unit cost to zero also changes the Non-Deductible VAT of the purchase document when Non-Deductible VAT is enabled\n+\n+ Initialize();\n+ // [GIVEN] VAT Posting Setup with \"VAT Identifier\" = \"X\", \"Allow Non-Deductible VAT\" is enabled and \"Non-Deductible VAT %\" is specified\n+ LibraryNonDeductibleVAT.CreateNonDeductibleNormalVATPostingSetup(VATPostingSetup);\n+ VATPostingSetup.Validate(\"Allow Non-Deductible VAT\", VATPostingSetup.\"Allow Non-Deductible VAT\"::Allow);\n+ // [GIVEN] Purchase invoice with Non-Deductible VAT posting setup and a single line with direct unit cost\n+ LibraryPurchase.CreatePurchHeader(\n+ PurchaseHeader, PurchaseHeader.\"Document Type\"::Invoice,\n+ LibraryPurchase.CreateVendorWithVATBusPostingGroup(VATPostingSetup.\"VAT Bus. Posting Group\"));\n+ LibraryPurchase.CreatePurchaseLine(\n+ PurchaseLine, PurchaseHeader, PurchaseLine.Type::Item,\n+ LibraryInventory.CreateItemWithVATProdPostingGroup(VATPostingSetup.\"VAT Prod. Posting Group\"), LibraryRandom.RandInt(100));\n+ PurchaseLine.Validate(\"Direct Unit Cost\", LibraryRandom.RandDec(100, 2));\n+\n+ // [WHEN] Change \"Direct Unit Cost\" to 0 in the purchase line\n+ PurchaseLine.Validate(\"Direct Unit Cost\", 0);\n+ // [THEN] \"Non-Deductible VAT Base\" and \"Non-Deductible VAT Amount\" are 0 in the purchase line\n+ PurchaseLine.TestField(\"Non-Deductible VAT Base\", 0);\n+ PurchaseLine.TestField(\"Non-Deductible VAT Amount\", 0);\n+ end;\n+\n local procedure Initialize()\n begin\n LibraryTestInitialize.OnTestInitialize(Codeunit::\"Non-Deductible UT\");\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\nindex fb45dbc..ab17b93 100644\n--- a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n@@ -5365,6 +5365,9 @@ table 39 \"Purchase Line\"\n Amount := 0;\n \"VAT Base Amount\" := 0;\n \"Amount Including VAT\" := 0;\n+ VATPostingSetup.Get(\"VAT Bus. Posting Group\", \"VAT Prod. Posting Group\");\n+ if VATPostingSetup.\"Allow Non-Deductible VAT\" = VATPostingSetup.\"Allow Non-Deductible VAT\"::Allow then\n+ NonDeductibleVAT.ClearNonDeductibleVAT(Rec);\n OnUpdateVATAmountsOnBeforePurchLineModify(Rec, PurchLine2);\n if (Quantity = 0) and (xRec.Quantity <> 0) and (xRec.Amount <> 0) then begin\n if \"Line No.\" <> 0 then\n"} +{"instance_id": "microsoftInternal__NAV-193853__cf-1", "base_instance_id": "microsoftInternal__NAV-193853", "variant_description": "Require incoming document on last journal line instead of any line", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-193853__cf-1", "FAIL_TO_PASS": [{"codeunitID": 139515, "functionName": ["PostMultipleGeneralJournalLinesSamePostingDateDocNoOnlyFirstHasIncDoc"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Apps/W1/EnforcedDigitalVouchers/test/src/DigitalVouchersTests.Codeunit.al b/App/Apps/W1/EnforcedDigitalVouchers/test/src/DigitalVouchersTests.Codeunit.al\nindex 304e94e908f6..d917601e5a98 100644\n--- a/App/Apps/W1/EnforcedDigitalVouchers/test/src/DigitalVouchersTests.Codeunit.al\n+++ b/App/Apps/W1/EnforcedDigitalVouchers/test/src/DigitalVouchersTests.Codeunit.al\n@@ -912,6 +912,59 @@ codeunit 139515 \"Digital Vouchers Tests\"\n UnbindSubscription(DigVouchersDisableEnforce);\n end;\n \n+ [Test]\n+ procedure PostMultipleGeneralJournalLinesSamePostingDateDocNoOnlyFirstHasIncDoc()\n+ var\n+ GenJournalLine: array[2] of Record \"Gen. Journal Line\";\n+ GenJournalLineToPost: Record \"Gen. Journal Line\";\n+ GenJournalTemplate: Record \"Gen. Journal Template\";\n+ GenJournalBatch: Record \"Gen. Journal Batch\";\n+ IncomingDocument: Record \"Incoming Document\";\n+ DigVouchersDisableEnforce: Codeunit \"Dig. Vouchers Disable Enforce\";\n+ DocNo: Code[20];\n+ i: Integer;\n+ begin\n+ // [SCENARIO 540097] Stan can post multiple general journals lines with same posting date and document number, only the first line has incoming document\n+\n+ Initialize();\n+ BindSubscription(DigVouchersDisableEnforce);\n+ // [GIVEN] Digital voucher feature is enabled\n+ EnableDigitalVoucherFeature();\n+ // [GIVEN] Digital voucher entry setup for general journal is \"Attachment\"\n+ InitSetupCheckOnly(\"Digital Voucher Entry Type\"::\"General Journal\", \"Digital Voucher Check Type\"::Attachment);\n+ // [GIVEN] General journal lines with the same template and batch are created\n+ // [GIVEN] General journal line \"X\" with \"Posting Date\" = 01.01.2024 and \"Document No.\" = \"X\"\n+ // [GIVEN] General journal line \"Y\" with \"Posting Date\" = 01.01.2024 and \"Document No.\" = \"X\"\n+ DocNo := LibraryUtility.GenerateGUID();\n+ LibraryERM.CreateGenJournalTemplate(GenJournalTemplate);\n+ LibraryERM.CreateGenJournalBatch(GenJournalBatch, GenJournalTemplate.Name);\n+ for i := 1 to ArrayLen(GenJournalLine) do begin\n+ LibraryJournals.CreateGenJournalLine(\n+ GenJournalLine[i], GenJournalBatch.\"Journal Template Name\", GenJournalBatch.Name,\n+ GenJournalLine[i].\"Document Type\"::Invoice, GenJournalLine[i].\"Account Type\"::\"G/L Account\",\n+ LibraryERM.CreateGLAccountNo(), GenJournalLine[i].\"Bal. Account Type\"::\"G/L Account\",\n+ LibraryERM.CreateGLAccountNo(), LibraryRandom.RandDec(100, 2));\n+ GenJournalLine[i].Validate(\"Document No.\", DocNo);\n+ GenJournalLine[i].Modify(true);\n+ end;\n+ // [GIVEN] Only journal line \"Y\" (last line) has incoming document attached\n+ GenJournalLine[2].\"Incoming Document Entry No.\" := MockIncomingDocument();\n+ GenJournalLine[2].Modify(true);\n+\n+ GenJournalLineToPost.SetRange(\"Journal Template Name\", GenJournalBatch.\"Journal Template Name\");\n+ GenJournalLineToPost.SetRange(\"Journal Batch Name\", GenJournalBatch.Name);\n+ GenJournalLineToPost.FindSet();\n+ // [WHEN] Post both general journal lines\n+ Codeunit.Run(Codeunit::\"Gen. Jnl.-Post Batch\", GenJournalLineToPost);\n+\n+ // [THEN] Posting is successfull and we have an incoming document with \"Posting Date\" = 01.01.2024 and \"Document No.\" = \"X\"\n+ IncomingDocument.SetRange(\"Posting Date\", GenJournalLine[1].\"Posting Date\");\n+ IncomingDocument.SetRange(\"Document No.\", GenJournalLine[1].\"Document No.\");\n+ Assert.RecordIsNotEmpty(IncomingDocument);\n+\n+ UnbindSubscription(DigVouchersDisableEnforce);\n+ end;\n+\n local procedure Initialize()\n var\n CompanyInformation: Record \"Company Information\";\n@@ -1076,6 +1129,19 @@ codeunit 139515 \"Digital Vouchers Tests\"\n exit(IncomingDocument.\"Entry No.\");\n end;\n \n+ local procedure MockIncomingDocument(): Integer\n+ var\n+ IncomingDocument: Record \"Incoming Document\";\n+ IncomingDocumentAttachment: Record \"Incoming Document Attachment\";\n+ begin\n+ IncomingDocument.\"Entry No.\" :=\n+ LibraryUtility.GetNewRecNo(IncomingDocument, IncomingDocument.FieldNo(\"Entry No.\"));\n+ IncomingDocument.Insert();\n+ IncomingDocumentAttachment.\"Incoming Document Entry No.\" := IncomingDocument.\"Entry No.\";\n+ IncomingDocumentAttachment.Insert();\n+ exit(IncomingDocument.\"Entry No.\");\n+ end;\n+\n local procedure ReceiveAndInvoicePurchaseInvoice(): Code[20]\n var\n PurchaseHeader: Record \"Purchase Header\";\n", "patch": "diff --git a/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al b/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\nindex 72dc980..b70540a 100644\n--- a/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\n+++ b/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\n@@ -224,6 +224,8 @@ codeunit 5579 \"Digital Voucher Impl.\"\n SourceCodeSetup.Get();\n if IsPaymentReconciliationJournal(DigitalVoucherEntrySetup.\"Entry Type\", RecRef) then\n exit(true);\n+ if IsGenJnlLineWithIncDocAttachedToAdjLine(DigitalVoucherEntrySetup.\"Entry Type\", RecRef) then\n+ exit(true);\n exit(false);\n end;\n \n@@ -345,6 +347,27 @@ codeunit 5579 \"Digital Voucher Impl.\"\n exit(SourceCodeValue = SourceCodeSetup.\"Payment Reconciliation Journal\");\n end;\n \n+ local procedure IsGenJnlLineWithIncDocAttachedToAdjLine(DigitalVoucherEntryType: Enum \"Digital Voucher Entry Type\"; RecRef: RecordRef): Boolean\n+ var\n+ GenJournalLine: Record \"Gen. Journal Line\";\n+ AdjacentGenJournalLine: Record \"Gen. Journal Line\";\n+ IncomingDocument: Record \"Incoming Document\";\n+ begin\n+ if DigitalVoucherEntryType <> DigitalVoucherEntryType::\"General Journal\" then\n+ exit(false);\n+ RecRef.SetTable(GenJournalLine);\n+ AdjacentGenJournalLine.ReadIsolation(IsolationLevel::ReadCommitted);\n+ AdjacentGenJournalLine.SetRange(\"Journal Template Name\", GenJournalLine.\"Journal Template Name\");\n+ AdjacentGenJournalLine.SetRange(\"Journal Batch Name\", GenJournalLine.\"Journal Batch Name\");\n+ AdjacentGenJournalLine.SetRange(\"Posting Date\", GenJournalLine.\"Posting Date\");\n+ AdjacentGenJournalLine.SetRange(\"Document No.\", GenJournalLine.\"Document No.\");\n+ AdjacentGenJournalLine.SetFilter(\"Line No.\", '>%1', GenJournalLine.\"Line No.\");\n+ AdjacentGenJournalLine.SetFilter(\"Incoming Document Entry No.\", '<>0');\n+ if not AdjacentGenJournalLine.FindFirst() then\n+ exit(false);\n+ exit(IncomingDocument.Get(AdjacentGenJournalLine.\"Incoming Document Entry No.\"));\n+ end;\n+\n local procedure AttachDigitalVoucherFromReportPDF(ReportUsage: Enum \"Report Selection Usage\"; RecRef: RecordRef; IsInvoice: Boolean; PostingDate: Date; DocNo: Code[20]; AccountTableNo: Integer; AccountNo: Code[20]; StandardReportID: Integer)\n var\n TempAttachReportSelections: Record \"Report Selections\" temporary;\n"} +{"instance_id": "microsoftInternal__NAV-193853__cf-2", "base_instance_id": "microsoftInternal__NAV-193853", "variant_description": "Require all journal lines reference the same Incoming Document Entry No.", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-193853__cf-2", "FAIL_TO_PASS": [{"codeunitID": 139515, "functionName": ["PostMultipleGeneralJournalLinesSamePostingDateDocNoOnlyFirstHasIncDoc"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Apps/W1/EnforcedDigitalVouchers/test/src/DigitalVouchersTests.Codeunit.al b/App/Apps/W1/EnforcedDigitalVouchers/test/src/DigitalVouchersTests.Codeunit.al\nindex 304e94e908f6..d917601e5a98 100644\n--- a/App/Apps/W1/EnforcedDigitalVouchers/test/src/DigitalVouchersTests.Codeunit.al\n+++ b/App/Apps/W1/EnforcedDigitalVouchers/test/src/DigitalVouchersTests.Codeunit.al\n@@ -912,6 +912,59 @@ codeunit 139515 \"Digital Vouchers Tests\"\n UnbindSubscription(DigVouchersDisableEnforce);\n end;\n \n+ [Test]\n+ procedure PostMultipleGeneralJournalLinesSamePostingDateDocNoOnlyFirstHasIncDoc()\n+ var\n+ GenJournalLine: array[2] of Record \"Gen. Journal Line\";\n+ GenJournalLineToPost: Record \"Gen. Journal Line\";\n+ GenJournalTemplate: Record \"Gen. Journal Template\";\n+ GenJournalBatch: Record \"Gen. Journal Batch\";\n+ IncomingDocument: Record \"Incoming Document\";\n+ DigVouchersDisableEnforce: Codeunit \"Dig. Vouchers Disable Enforce\";\n+ DocNo: Code[20];\n+ i: Integer;\n+ begin\n+ // [SCENARIO 540097] Stan can post multiple general journals lines with same posting date and document number, only the first line has incoming document\n+\n+ Initialize();\n+ BindSubscription(DigVouchersDisableEnforce);\n+ // [GIVEN] Digital voucher feature is enabled\n+ EnableDigitalVoucherFeature();\n+ // [GIVEN] Digital voucher entry setup for general journal is \"Attachment\"\n+ InitSetupCheckOnly(\"Digital Voucher Entry Type\"::\"General Journal\", \"Digital Voucher Check Type\"::Attachment);\n+ // [GIVEN] General journal lines with the same template and batch are created\n+ // [GIVEN] General journal line \"X\" with \"Posting Date\" = 01.01.2024 and \"Document No.\" = \"X\"\n+ // [GIVEN] General journal line \"Y\" with \"Posting Date\" = 01.01.2024 and \"Document No.\" = \"X\"\n+ DocNo := LibraryUtility.GenerateGUID();\n+ LibraryERM.CreateGenJournalTemplate(GenJournalTemplate);\n+ LibraryERM.CreateGenJournalBatch(GenJournalBatch, GenJournalTemplate.Name);\n+ for i := 1 to ArrayLen(GenJournalLine) do begin\n+ LibraryJournals.CreateGenJournalLine(\n+ GenJournalLine[i], GenJournalBatch.\"Journal Template Name\", GenJournalBatch.Name,\n+ GenJournalLine[i].\"Document Type\"::Invoice, GenJournalLine[i].\"Account Type\"::\"G/L Account\",\n+ LibraryERM.CreateGLAccountNo(), GenJournalLine[i].\"Bal. Account Type\"::\"G/L Account\",\n+ LibraryERM.CreateGLAccountNo(), LibraryRandom.RandDec(100, 2));\n+ GenJournalLine[i].Validate(\"Document No.\", DocNo);\n+ GenJournalLine[i].Modify(true);\n+ end;\n+ // [GIVEN] Only journal line \"X\" has incoming document attached\n+ GenJournalLine[1].\"Incoming Document Entry No.\" := MockIncomingDocument();\n+ GenJournalLine[1].Modify(true);\n+\n+ GenJournalLineToPost.SetRange(\"Journal Template Name\", GenJournalBatch.\"Journal Template Name\");\n+ GenJournalLineToPost.SetRange(\"Journal Batch Name\", GenJournalBatch.Name);\n+ GenJournalLineToPost.FindSet();\n+ // [WHEN] Post both general journal lines\n+ Codeunit.Run(Codeunit::\"Gen. Jnl.-Post Batch\", GenJournalLineToPost);\n+\n+ // [THEN] Posting is successfull and we have an incoming document with \"Posting Date\" = 01.01.2024 and \"Document No.\" = \"X\"\n+ IncomingDocument.SetRange(\"Posting Date\", GenJournalLine[1].\"Posting Date\");\n+ IncomingDocument.SetRange(\"Document No.\", GenJournalLine[1].\"Document No.\");\n+ Assert.RecordIsNotEmpty(IncomingDocument);\n+\n+ UnbindSubscription(DigVouchersDisableEnforce);\n+ end;\n+\n local procedure Initialize()\n var\n CompanyInformation: Record \"Company Information\";\n@@ -1076,6 +1129,19 @@ codeunit 139515 \"Digital Vouchers Tests\"\n exit(IncomingDocument.\"Entry No.\");\n end;\n \n+ local procedure MockIncomingDocument(): Integer\n+ var\n+ IncomingDocument: Record \"Incoming Document\";\n+ IncomingDocumentAttachment: Record \"Incoming Document Attachment\";\n+ begin\n+ IncomingDocument.\"Entry No.\" :=\n+ LibraryUtility.GetNewRecNo(IncomingDocument, IncomingDocument.FieldNo(\"Entry No.\"));\n+ IncomingDocument.Insert();\n+ IncomingDocumentAttachment.\"Incoming Document Entry No.\" := IncomingDocument.\"Entry No.\";\n+ IncomingDocumentAttachment.Insert();\n+ exit(IncomingDocument.\"Entry No.\");\n+ end;\n+\n local procedure ReceiveAndInvoicePurchaseInvoice(): Code[20]\n var\n PurchaseHeader: Record \"Purchase Header\";\n", "patch": "diff --git a/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al b/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\nindex 72dc980..6a3cfee 100644\n--- a/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\n+++ b/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\n@@ -224,6 +224,8 @@ codeunit 5579 \"Digital Voucher Impl.\"\n SourceCodeSetup.Get();\n if IsPaymentReconciliationJournal(DigitalVoucherEntrySetup.\"Entry Type\", RecRef) then\n exit(true);\n+ if IsGenJnlLineWithIncDocAttachedToAdjLine(DigitalVoucherEntrySetup.\"Entry Type\", RecRef) then\n+ exit(true);\n exit(false);\n end;\n \n@@ -345,6 +347,27 @@ codeunit 5579 \"Digital Voucher Impl.\"\n exit(SourceCodeValue = SourceCodeSetup.\"Payment Reconciliation Journal\");\n end;\n \n+ local procedure IsGenJnlLineWithIncDocAttachedToAdjLine(DigitalVoucherEntryType: Enum \"Digital Voucher Entry Type\"; RecRef: RecordRef): Boolean\n+ var\n+ GenJournalLine: Record \"Gen. Journal Line\";\n+ AdjacentGenJournalLine: Record \"Gen. Journal Line\";\n+ IncomingDocument: Record \"Incoming Document\";\n+ begin\n+ if DigitalVoucherEntryType <> DigitalVoucherEntryType::\"General Journal\" then\n+ exit(false);\n+ RecRef.SetTable(GenJournalLine);\n+ AdjacentGenJournalLine.ReadIsolation(IsolationLevel::ReadCommitted);\n+ AdjacentGenJournalLine.SetRange(\"Journal Template Name\", GenJournalLine.\"Journal Template Name\");\n+ AdjacentGenJournalLine.SetRange(\"Journal Batch Name\", GenJournalLine.\"Journal Batch Name\");\n+ AdjacentGenJournalLine.SetRange(\"Posting Date\", GenJournalLine.\"Posting Date\");\n+ AdjacentGenJournalLine.SetRange(\"Document No.\", GenJournalLine.\"Document No.\");\n+ AdjacentGenJournalLine.SetFilter(\"Line No.\", '<%1', GenJournalLine.\"Line No.\");\n+ AdjacentGenJournalLine.SetFilter(\"Incoming Document Entry No.\", '<>0');\n+ if not AdjacentGenJournalLine.FindFirst() then\n+ exit(false);\n+ exit(IncomingDocument.Get(AdjacentGenJournalLine.\"Incoming Document Entry No.\"));\n+ end;\n+\n local procedure AttachDigitalVoucherFromReportPDF(ReportUsage: Enum \"Report Selection Usage\"; RecRef: RecordRef; IsInvoice: Boolean; PostingDate: Date; DocNo: Code[20]; AccountTableNo: Integer; AccountNo: Code[20]; StandardReportID: Integer)\n var\n TempAttachReportSelections: Record \"Report Selections\" temporary;\n", "cf_variant_description": "Only adjacent journal lines with lower line numbers are checked for attached incoming documents"} +{"instance_id": "microsoftInternal__NAV-195193__cf-1", "base_instance_id": "microsoftInternal__NAV-195193", "variant_description": "Treat zero values as debit instead of neutral in debit/credit split", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-195193__cf-1", "FAIL_TO_PASS": [{"codeunitID": 139544, "functionName": ["TrialBalanceBufferNetChangeSplitsIntoDebitAndCreditWhenCalledSeveralTimes"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Apps/W1/ExcelReports/test/src/TrialBalanceExcelReports.Codeunit.al b/App/Apps/W1/ExcelReports/test/src/TrialBalanceExcelReports.Codeunit.al\nindex 1a7bf31..c86ca04 100644\n--- a/App/Apps/W1/ExcelReports/test/src/TrialBalanceExcelReports.Codeunit.al\n+++ b/App/Apps/W1/ExcelReports/test/src/TrialBalanceExcelReports.Codeunit.al\n@@ -298,6 +298,56 @@ codeunit 139544 \"Trial Balance Excel Reports\"\n asserterror LibraryReportDataset.RunReportAndLoad(Report::\"EXR Consolidated Trial Balance\", Variant, RequestPageXml);\n end;\n \n+ [Test]\n+ procedure TrialBalanceBufferNetChangeSplitsIntoDebitAndCreditWhenCalledSeveralTimes()\n+ var\n+ EXRTrialBalanceBuffer: Record \"EXR Trial Balance Buffer\";\n+ ValuesToSplitInCreditAndDebit: array[3] of Decimal;\n+ begin\n+ // [SCENARIO 547558] Trial Balance Buffer data split into Debit and Credit correctly, even if called multiple times.\n+ // [GIVEN] Trial Balance Buffer filled with positive Balance/Net Change\n+ ValuesToSplitInCreditAndDebit[1] := 0;\n+ // [GIVEN] Trial Balance Buffer filled with negative Balance/Net Change\n+ ValuesToSplitInCreditAndDebit[2] := -110;\n+ // [GIVEN] Trial Balance Buffer filled with positive Balance/Net Change\n+ ValuesToSplitInCreditAndDebit[3] := 998;\n+ // [WHEN] Trial Balance Buffer entries are inserted\n+ EXRTrialBalanceBuffer.\"G/L Account No.\" := 'A';\n+ EXRTrialBalanceBuffer.Validate(\"Net Change\", ValuesToSplitInCreditAndDebit[1]);\n+ EXRTrialBalanceBuffer.Validate(Balance, ValuesToSplitInCreditAndDebit[1]);\n+ EXRTrialBalanceBuffer.Validate(\"Net Change (ACY)\", ValuesToSplitInCreditAndDebit[1]);\n+ EXRTrialBalanceBuffer.Validate(\"Balance (ACY)\", ValuesToSplitInCreditAndDebit[1]);\n+ EXRTrialBalanceBuffer.Insert();\n+ EXRTrialBalanceBuffer.\"G/L Account No.\" := 'B';\n+ EXRTrialBalanceBuffer.Validate(\"Net Change\", ValuesToSplitInCreditAndDebit[2]);\n+ EXRTrialBalanceBuffer.Validate(Balance, ValuesToSplitInCreditAndDebit[2]);\n+ EXRTrialBalanceBuffer.Validate(\"Net Change (ACY)\", ValuesToSplitInCreditAndDebit[2]);\n+ EXRTrialBalanceBuffer.Validate(\"Balance (ACY)\", ValuesToSplitInCreditAndDebit[2]);\n+ EXRTrialBalanceBuffer.Insert();\n+ EXRTrialBalanceBuffer.\"G/L Account No.\" := 'C';\n+ EXRTrialBalanceBuffer.Validate(\"Net Change\", ValuesToSplitInCreditAndDebit[3]);\n+ EXRTrialBalanceBuffer.Validate(Balance, ValuesToSplitInCreditAndDebit[3]);\n+ EXRTrialBalanceBuffer.Validate(\"Net Change (ACY)\", ValuesToSplitInCreditAndDebit[3]);\n+ EXRTrialBalanceBuffer.Validate(\"Balance (ACY)\", ValuesToSplitInCreditAndDebit[3]);\n+ EXRTrialBalanceBuffer.Insert();\n+ // [THEN] All Entries have the right split in Credit and Debit\n+ EXRTrialBalanceBuffer.FindSet();\n+ Assert.AreEqual(ValuesToSplitInCreditAndDebit[1], Abs(EXRTrialBalanceBuffer.\"Net Change (Debit)\" + EXRTrialBalanceBuffer.\"Net Change (Credit)\"), 'Split in line in credit and debit should be the same as the inserted value.');\n+ Assert.AreEqual(ValuesToSplitInCreditAndDebit[1], Abs(EXRTrialBalanceBuffer.\"Balance (Debit)\" + EXRTrialBalanceBuffer.\"Balance (Credit)\"), 'Split in line in credit and debit should be the same as the inserted value.');\n+ Assert.AreEqual(ValuesToSplitInCreditAndDebit[1], Abs(EXRTrialBalanceBuffer.\"Net Change (Debit) (ACY)\" + EXRTrialBalanceBuffer.\"Net Change (Credit) (ACY)\"), 'Split in line in credit and debit should be the same as the inserted value.');\n+ Assert.AreEqual(ValuesToSplitInCreditAndDebit[1], Abs(EXRTrialBalanceBuffer.\"Balance (Debit) (ACY)\" + EXRTrialBalanceBuffer.\"Balance (Credit) (ACY)\"), 'Split in line in credit and debit should be the same as the inserted value.');\n+ EXRTrialBalanceBuffer.Next();\n+ Assert.AreEqual(-ValuesToSplitInCreditAndDebit[2], Abs(EXRTrialBalanceBuffer.\"Net Change (Debit)\" + EXRTrialBalanceBuffer.\"Net Change (Credit)\"), 'Split in line in credit and debit should be the same as the inserted value.');\n+ Assert.AreEqual(-ValuesToSplitInCreditAndDebit[2], Abs(EXRTrialBalanceBuffer.\"Balance (Debit)\" + EXRTrialBalanceBuffer.\"Balance (Credit)\"), 'Split in line in credit and debit should be the same as the inserted value.');\n+ Assert.AreEqual(-ValuesToSplitInCreditAndDebit[2], Abs(EXRTrialBalanceBuffer.\"Net Change (Debit) (ACY)\" + EXRTrialBalanceBuffer.\"Net Change (Credit) (ACY)\"), 'Split in line in credit and debit should be the same as the inserted value.');\n+ Assert.AreEqual(-ValuesToSplitInCreditAndDebit[2], Abs(EXRTrialBalanceBuffer.\"Balance (Debit) (ACY)\" + EXRTrialBalanceBuffer.\"Balance (Credit) (ACY)\"), 'Split in line in credit and debit should be the same as the inserted value.');\n+ EXRTrialBalanceBuffer.Next();\n+ Assert.AreEqual(ValuesToSplitInCreditAndDebit[3], Abs(EXRTrialBalanceBuffer.\"Net Change (Debit)\" + EXRTrialBalanceBuffer.\"Net Change (Credit)\"), 'Split in line in credit and debit should be the same as the inserted value.');\n+ Assert.AreEqual(ValuesToSplitInCreditAndDebit[3], Abs(EXRTrialBalanceBuffer.\"Balance (Debit)\" + EXRTrialBalanceBuffer.\"Balance (Credit)\"), 'Split in line in credit and debit should be the same as the inserted value.');\n+ Assert.AreEqual(ValuesToSplitInCreditAndDebit[3], Abs(EXRTrialBalanceBuffer.\"Net Change (Debit) (ACY)\" + EXRTrialBalanceBuffer.\"Net Change (Credit) (ACY)\"), 'Split in line in credit and debit should be the same as the inserted value.');\n+ Assert.AreEqual(ValuesToSplitInCreditAndDebit[3], Abs(EXRTrialBalanceBuffer.\"Balance (Debit) (ACY)\" + EXRTrialBalanceBuffer.\"Balance (Credit) (ACY)\"), 'Split in line in credit and debit should be the same as the inserted value.');\n+ end;\n+\n local procedure CreateSampleBusinessUnits(HowMany: Integer)\n var\n BusinessUnit: Record \"Business Unit\";\n", "patch": "diff --git a/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al b/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\nindex 00c238a..e20bc91 100644\n--- a/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\n+++ b/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\n@@ -44,10 +44,14 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Net Change\" > 0) then\n- Validate(\"Net Change (Debit)\", \"Net Change\")\n- else\n+ if (\"Net Change\" >= 0) then begin\n+ Validate(\"Net Change (Debit)\", \"Net Change\");\n+ Validate(\"Net Change (Credit)\", 0);\n+ end\n+ else begin\n Validate(\"Net Change (Credit)\", -\"Net Change\");\n+ Validate(\"Net Change (Debit)\", 0);\n+ end;\n end;\n }\n field(11; \"Net Change (Debit)\"; Decimal)\n@@ -64,10 +68,14 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Balance\" > 0) then\n- Validate(\"Balance (Debit)\", \"Balance\")\n- else\n+ if (\"Balance\" >= 0) then begin\n+ Validate(\"Balance (Debit)\", \"Balance\");\n+ Validate(\"Balance (Credit)\", 0);\n+ end\n+ else begin\n Validate(\"Balance (Credit)\", -\"Balance\");\n+ Validate(\"Balance (Debit)\", 0);\n+ end;\n end;\n }\n field(14; \"Balance (Debit)\"; Decimal)\n@@ -100,10 +108,14 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Net\" > 0) then\n- Validate(\"Last Period Net (Debit)\", \"Last Period Net\")\n- else\n+ if (\"Last Period Net\" >= 0) then begin\n+ Validate(\"Last Period Net (Debit)\", \"Last Period Net\");\n+ Validate(\"Last Period Net (Credit)\", 0);\n+ end\n+ else begin\n Validate(\"Last Period Net (Credit)\", -\"Last Period Net\");\n+ Validate(\"Last Period Net (Debit)\", 0);\n+ end;\n end;\n }\n field(51; \"Last Period Net (Debit)\"; Decimal)\n@@ -120,10 +132,14 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Bal.\" > 0) then\n- Validate(\"Last Period Bal. (Debit)\", \"Last Period Bal.\")\n- else\n+ if (\"Last Period Bal.\" >= 0) then begin\n+ Validate(\"Last Period Bal. (Debit)\", \"Last Period Bal.\");\n+ Validate(\"Last Period Bal. (Credit)\", 0);\n+ end\n+ else begin\n Validate(\"Last Period Bal. (Credit)\", -\"Last Period Bal.\");\n+ Validate(\"Last Period Bal. (Debit)\", 0);\n+ end;\n end;\n }\n field(61; \"Last Period Bal. (Debit)\"; Decimal)\n@@ -156,10 +172,14 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Net Change\" > 0) then\n- Validate(\"Net Change (Debit) (ACY)\", \"Net Change (ACY)\")\n- else\n+ if (\"Net Change\" >= 0) then begin\n+ Validate(\"Net Change (Debit) (ACY)\", \"Net Change (ACY)\");\n+ Validate(\"Net Change (Credit) (ACY)\", 0);\n+ end\n+ else begin\n Validate(\"Net Change (Credit) (ACY)\", -\"Net Change (ACY)\");\n+ Validate(\"Net Change (Debit) (ACY)\", 0);\n+ end;\n end;\n }\n field(111; \"Net Change (Debit) (ACY)\"; Decimal)\n@@ -176,10 +196,14 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Balance\" > 0) then\n- Validate(\"Balance (Debit) (ACY)\", \"Balance (ACY)\")\n- else\n+ if (\"Balance\" >= 0) then begin\n+ Validate(\"Balance (Debit) (ACY)\", \"Balance (ACY)\");\n+ Validate(\"Balance (Credit) (ACY)\", 0);\n+ end\n+ else begin\n Validate(\"Balance (Credit) (ACY)\", -\"Balance (ACY)\");\n+ Validate(\"Balance (Debit) (ACY)\", 0);\n+ end;\n end;\n }\n field(114; \"Balance (Debit) (ACY)\"; Decimal)\n@@ -196,10 +220,14 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Net\" > 0) then\n- Validate(\"Last Period Net (Debit) (ACY)\", \"Last Period Net (ACY)\")\n- else\n+ if (\"Last Period Net\" >= 0) then begin\n+ Validate(\"Last Period Net (Debit) (ACY)\", \"Last Period Net (ACY)\");\n+ Validate(\"Last Period Net (Credit) (ACY)\", 0);\n+ end\n+ else begin\n Validate(\"Last Period Net (Credit) (ACY)\", -\"Last Period Net (ACY)\");\n+ Validate(\"Last Period Net (Debit) (ACY)\", 0);\n+ end;\n end;\n }\n field(151; \"Last Period Net (Debit) (ACY)\"; Decimal)\n@@ -216,10 +244,14 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Bal.\" > 0) then\n- Validate(\"Last Period Bal. (Debit) (ACY)\", \"Last Period Bal. (ACY)\")\n- else\n+ if (\"Last Period Bal.\" >= 0) then begin\n+ Validate(\"Last Period Bal. (Debit) (ACY)\", \"Last Period Bal. (ACY)\");\n+ Validate(\"Last Period Bal. (Cred.) (ACY)\", 0);\n+ end\n+ else begin\n Validate(\"Last Period Bal. (Cred.) (ACY)\", -\"Last Period Bal. (ACY)\");\n+ Validate(\"Last Period Bal. (Debit) (ACY)\", 0);\n+ end;\n end;\n }\n field(161; \"Last Period Bal. (Debit) (ACY)\"; Decimal)\ndiff --git a/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al b/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al\nindex 7cf0915..2e171cf 100644\n--- a/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al\n+++ b/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al\n@@ -119,6 +119,7 @@ codeunit 4410 \"Trial Balance\"\n \n local procedure InsertTrialBalanceDataForGLAccountWithFilters(var GLAccount: Record \"G/L Account\"; Dimension1ValueCode: Code[20]; Dimension2ValueCode: Code[20]; BusinessUnitCode: Code[20]; var TrialBalanceData: Record \"EXR Trial Balance Buffer\"; var Dimension1Values: Record \"Dimension Value\" temporary; var Dimension2Values: Record \"Dimension Value\" temporary)\n begin\n+ Clear(TrialBalanceData);\n GlAccount.CalcFields(\"Net Change\", \"Balance at Date\", \"Additional-Currency Net Change\", \"Add.-Currency Balance at Date\", \"Budgeted Amount\", \"Budget at Date\");\n TrialBalanceData.\"G/L Account No.\" := GlAccount.\"No.\";\n TrialBalanceData.\"Dimension 1 Code\" := Dimension1ValueCode;\n"} +{"instance_id": "microsoftInternal__NAV-195193__cf-2", "base_instance_id": "microsoftInternal__NAV-195193", "variant_description": "Only enforce correct debit/credit split for Net Change fields, not Balance", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-195193__cf-2", "FAIL_TO_PASS": [{"codeunitID": 139544, "functionName": ["TrialBalanceBufferNetChangeSplitsIntoDebitAndCreditWhenCalledSeveralTimes"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Apps/W1/ExcelReports/test/src/TrialBalanceExcelReports.Codeunit.al b/App/Apps/W1/ExcelReports/test/src/TrialBalanceExcelReports.Codeunit.al\nindex 1a7bf31..55b8613 100644\n--- a/App/Apps/W1/ExcelReports/test/src/TrialBalanceExcelReports.Codeunit.al\n+++ b/App/Apps/W1/ExcelReports/test/src/TrialBalanceExcelReports.Codeunit.al\n@@ -298,6 +298,56 @@ codeunit 139544 \"Trial Balance Excel Reports\"\n asserterror LibraryReportDataset.RunReportAndLoad(Report::\"EXR Consolidated Trial Balance\", Variant, RequestPageXml);\n end;\n \n+ [Test]\n+ procedure TrialBalanceBufferNetChangeSplitsIntoDebitAndCreditWhenCalledSeveralTimes()\n+ var\n+ EXRTrialBalanceBuffer: Record \"EXR Trial Balance Buffer\";\n+ ValuesToSplitInCreditAndDebit: array[3] of Decimal;\n+ begin\n+ // [SCENARIO 547558] Trial Balance Buffer data split into Debit and Credit correctly, even if called multiple times.\n+ // [GIVEN] Trial Balance Buffer filled with positive Balance/Net Change\n+ ValuesToSplitInCreditAndDebit[1] := 837;\n+ // [GIVEN] Trial Balance Buffer filled with negative Balance/Net Change\n+ ValuesToSplitInCreditAndDebit[2] := -110;\n+ // [GIVEN] Trial Balance Buffer filled with positive Balance/Net Change\n+ ValuesToSplitInCreditAndDebit[3] := 998;\n+ // [WHEN] Trial Balance Buffer entries are inserted\n+ EXRTrialBalanceBuffer.\"G/L Account No.\" := 'A';\n+ EXRTrialBalanceBuffer.Validate(\"Net Change\", ValuesToSplitInCreditAndDebit[1]);\n+ EXRTrialBalanceBuffer.Validate(Balance, ValuesToSplitInCreditAndDebit[1]);\n+ EXRTrialBalanceBuffer.Validate(\"Net Change (ACY)\", ValuesToSplitInCreditAndDebit[1]);\n+ EXRTrialBalanceBuffer.Validate(\"Balance (ACY)\", ValuesToSplitInCreditAndDebit[1]);\n+ EXRTrialBalanceBuffer.Insert();\n+ EXRTrialBalanceBuffer.\"G/L Account No.\" := 'B';\n+ EXRTrialBalanceBuffer.Validate(\"Net Change\", ValuesToSplitInCreditAndDebit[2]);\n+ EXRTrialBalanceBuffer.Validate(Balance, ValuesToSplitInCreditAndDebit[2]);\n+ EXRTrialBalanceBuffer.Validate(\"Net Change (ACY)\", ValuesToSplitInCreditAndDebit[2]);\n+ EXRTrialBalanceBuffer.Validate(\"Balance (ACY)\", ValuesToSplitInCreditAndDebit[2]);\n+ EXRTrialBalanceBuffer.Insert();\n+ EXRTrialBalanceBuffer.\"G/L Account No.\" := 'C';\n+ EXRTrialBalanceBuffer.Validate(\"Net Change\", ValuesToSplitInCreditAndDebit[3]);\n+ EXRTrialBalanceBuffer.Validate(Balance, ValuesToSplitInCreditAndDebit[3]);\n+ EXRTrialBalanceBuffer.Validate(\"Net Change (ACY)\", ValuesToSplitInCreditAndDebit[3]);\n+ EXRTrialBalanceBuffer.Validate(\"Balance (ACY)\", ValuesToSplitInCreditAndDebit[3]);\n+ EXRTrialBalanceBuffer.Insert();\n+ // [THEN] All Entries have the right split in Credit and Debit\n+ EXRTrialBalanceBuffer.FindSet();\n+ Assert.AreEqual(ValuesToSplitInCreditAndDebit[1], Abs(EXRTrialBalanceBuffer.\"Net Change (Debit)\" + EXRTrialBalanceBuffer.\"Net Change (Credit)\"), 'Split in line in credit and debit should be the same as the inserted value.');\n+ // Balance split not required\n+ Assert.AreEqual(ValuesToSplitInCreditAndDebit[1], Abs(EXRTrialBalanceBuffer.\"Net Change (Debit) (ACY)\" + EXRTrialBalanceBuffer.\"Net Change (Credit) (ACY)\"), 'Split in line in credit and debit should be the same as the inserted value.');\n+ // Balance split not required\n+ EXRTrialBalanceBuffer.Next();\n+ Assert.AreEqual(-ValuesToSplitInCreditAndDebit[2], Abs(EXRTrialBalanceBuffer.\"Net Change (Debit)\" + EXRTrialBalanceBuffer.\"Net Change (Credit)\"), 'Split in line in credit and debit should be the same as the inserted value.');\n+ // Balance split not required\n+ Assert.AreEqual(-ValuesToSplitInCreditAndDebit[2], Abs(EXRTrialBalanceBuffer.\"Net Change (Debit) (ACY)\" + EXRTrialBalanceBuffer.\"Net Change (Credit) (ACY)\"), 'Split in line in credit and debit should be the same as the inserted value.');\n+ // Balance split not required\n+ EXRTrialBalanceBuffer.Next();\n+ Assert.AreEqual(ValuesToSplitInCreditAndDebit[3], Abs(EXRTrialBalanceBuffer.\"Net Change (Debit)\" + EXRTrialBalanceBuffer.\"Net Change (Credit)\"), 'Split in line in credit and debit should be the same as the inserted value.');\n+ // Balance split not required\n+ Assert.AreEqual(ValuesToSplitInCreditAndDebit[3], Abs(EXRTrialBalanceBuffer.\"Net Change (Debit) (ACY)\" + EXRTrialBalanceBuffer.\"Net Change (Credit) (ACY)\"), 'Split in line in credit and debit should be the same as the inserted value.');\n+ // Balance split not required\n+ end;\n+\n local procedure CreateSampleBusinessUnits(HowMany: Integer)\n var\n BusinessUnit: Record \"Business Unit\";\n", "patch": "diff --git a/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al b/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\nindex 00c238a..76245ca 100644\n--- a/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\n+++ b/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\n@@ -44,10 +44,14 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Net Change\" > 0) then\n- Validate(\"Net Change (Debit)\", \"Net Change\")\n- else\n+ if (\"Net Change\" > 0) then begin\n+ Validate(\"Net Change (Debit)\", \"Net Change\");\n+ Validate(\"Net Change (Credit)\", 0);\n+ end\n+ else begin\n Validate(\"Net Change (Credit)\", -\"Net Change\");\n+ Validate(\"Net Change (Debit)\", 0);\n+ end;\n end;\n }\n field(11; \"Net Change (Debit)\"; Decimal)\n@@ -156,10 +160,14 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Net Change\" > 0) then\n- Validate(\"Net Change (Debit) (ACY)\", \"Net Change (ACY)\")\n- else\n+ if (\"Net Change\" > 0) then begin\n+ Validate(\"Net Change (Debit) (ACY)\", \"Net Change (ACY)\");\n+ Validate(\"Net Change (Credit) (ACY)\", 0);\n+ end\n+ else begin\n Validate(\"Net Change (Credit) (ACY)\", -\"Net Change (ACY)\");\n+ Validate(\"Net Change (Debit) (ACY)\", 0);\n+ end;\n end;\n }\n field(111; \"Net Change (Debit) (ACY)\"; Decimal)\ndiff --git a/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al b/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al\nindex 7cf0915..2e171cf 100644\n--- a/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al\n+++ b/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al\n@@ -119,6 +119,7 @@ codeunit 4410 \"Trial Balance\"\n \n local procedure InsertTrialBalanceDataForGLAccountWithFilters(var GLAccount: Record \"G/L Account\"; Dimension1ValueCode: Code[20]; Dimension2ValueCode: Code[20]; BusinessUnitCode: Code[20]; var TrialBalanceData: Record \"EXR Trial Balance Buffer\"; var Dimension1Values: Record \"Dimension Value\" temporary; var Dimension2Values: Record \"Dimension Value\" temporary)\n begin\n+ Clear(TrialBalanceData);\n GlAccount.CalcFields(\"Net Change\", \"Balance at Date\", \"Additional-Currency Net Change\", \"Add.-Currency Balance at Date\", \"Budgeted Amount\", \"Budget at Date\");\n TrialBalanceData.\"G/L Account No.\" := GlAccount.\"No.\";\n TrialBalanceData.\"Dimension 1 Code\" := Dimension1ValueCode;\n"} +{"instance_id": "microsoftInternal__NAV-195193__cf-3", "base_instance_id": "microsoftInternal__NAV-195193", "variant_description": "Change > to >= comparison in OnValidate triggers without explicit zero-reset of opposite side, plus Clear buffer", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-195193__cf-3", "FAIL_TO_PASS": [{"codeunitID": 139544, "functionName": ["TrialBalanceBufferNetChangeSplitsIntoDebitAndCreditWhenCalledSeveralTimes"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Apps/W1/ExcelReports/test/src/TrialBalanceExcelReports.Codeunit.al b/App/Apps/W1/ExcelReports/test/src/TrialBalanceExcelReports.Codeunit.al\nindex 1a7bf31..e487b83 100644\n--- a/App/Apps/W1/ExcelReports/test/src/TrialBalanceExcelReports.Codeunit.al\n+++ b/App/Apps/W1/ExcelReports/test/src/TrialBalanceExcelReports.Codeunit.al\n@@ -298,6 +298,36 @@ codeunit 139544 \"Trial Balance Excel Reports\"\n asserterror LibraryReportDataset.RunReportAndLoad(Report::\"EXR Consolidated Trial Balance\", Variant, RequestPageXml);\n end;\n \n+ [Test]\n+ procedure TrialBalanceBufferNetChangeSplitsIntoDebitAndCreditWhenCalledSeveralTimes()\n+ var\n+ EXRTrialBalanceBuffer: Record \"EXR Trial Balance Buffer\";\n+ begin\n+ // [SCENARIO 547558] Trial Balance Buffer: zero values after positive should reset debit with >= comparison.\n+ EXRTrialBalanceBuffer.DeleteAll();\n+ // [GIVEN] Record A with positive Net Change populates Debit side\n+ EXRTrialBalanceBuffer.\"G/L Account No.\" := 'A';\n+ EXRTrialBalanceBuffer.Validate(\"Net Change\", 500);\n+ EXRTrialBalanceBuffer.Validate(Balance, 500);\n+ EXRTrialBalanceBuffer.Validate(\"Net Change (ACY)\", 500);\n+ EXRTrialBalanceBuffer.Validate(\"Balance (ACY)\", 500);\n+ EXRTrialBalanceBuffer.Insert();\n+ // [WHEN] Record B is created with zero Net Change WITHOUT clearing the buffer variable\n+ EXRTrialBalanceBuffer.\"G/L Account No.\" := 'B';\n+ EXRTrialBalanceBuffer.Validate(\"Net Change\", 0);\n+ EXRTrialBalanceBuffer.Validate(Balance, 0);\n+ EXRTrialBalanceBuffer.Validate(\"Net Change (ACY)\", 0);\n+ EXRTrialBalanceBuffer.Validate(\"Balance (ACY)\", 0);\n+ EXRTrialBalanceBuffer.Insert();\n+ // [THEN] Record B should have zero Debit (no leftover from Record A)\n+ EXRTrialBalanceBuffer.FindSet();\n+ EXRTrialBalanceBuffer.Next();\n+ Assert.AreEqual(0, EXRTrialBalanceBuffer.\"Net Change (Debit)\", 'Net Change (Debit) should be zero for zero Net Change.');\n+ Assert.AreEqual(0, EXRTrialBalanceBuffer.\"Balance (Debit)\", 'Balance (Debit) should be zero for zero Balance.');\n+ Assert.AreEqual(0, EXRTrialBalanceBuffer.\"Net Change (Debit) (ACY)\", 'Net Change (Debit) (ACY) should be zero.');\n+ Assert.AreEqual(0, EXRTrialBalanceBuffer.\"Balance (Debit) (ACY)\", 'Balance (Debit) (ACY) should be zero.');\n+ end;\n+\n local procedure CreateSampleBusinessUnits(HowMany: Integer)\n var\n BusinessUnit: Record \"Business Unit\";\n", "patch": "diff --git a/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al b/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\nindex 00c238a..3f1a9b2 100644\n--- a/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\n+++ b/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\n@@ -44,7 +44,7 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Net Change\" > 0) then\n+ if (\"Net Change\" >= 0) then\n Validate(\"Net Change (Debit)\", \"Net Change\")\n else\n Validate(\"Net Change (Credit)\", -\"Net Change\");\n@@ -64,7 +64,7 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Balance\" > 0) then\n+ if (\"Balance\" >= 0) then\n Validate(\"Balance (Debit)\", \"Balance\")\n else\n Validate(\"Balance (Credit)\", -\"Balance\");\n@@ -100,7 +100,7 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Net\" > 0) then\n+ if (\"Last Period Net\" >= 0) then\n Validate(\"Last Period Net (Debit)\", \"Last Period Net\")\n else\n Validate(\"Last Period Net (Credit)\", -\"Last Period Net\");\n@@ -120,7 +120,7 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Bal.\" > 0) then\n+ if (\"Last Period Bal.\" >= 0) then\n Validate(\"Last Period Bal. (Debit)\", \"Last Period Bal.\")\n else\n Validate(\"Last Period Bal. (Credit)\", -\"Last Period Bal.\");\n@@ -156,7 +156,7 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Net Change\" > 0) then\n+ if (\"Net Change\" >= 0) then\n Validate(\"Net Change (Debit) (ACY)\", \"Net Change (ACY)\")\n else\n Validate(\"Net Change (Credit) (ACY)\", -\"Net Change (ACY)\");\n@@ -176,7 +176,7 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Balance\" > 0) then\n+ if (\"Balance\" >= 0) then\n Validate(\"Balance (Debit) (ACY)\", \"Balance (ACY)\")\n else\n Validate(\"Balance (Credit) (ACY)\", -\"Balance (ACY)\");\n@@ -196,7 +196,7 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Net\" > 0) then\n+ if (\"Last Period Net\" >= 0) then\n Validate(\"Last Period Net (Debit) (ACY)\", \"Last Period Net (ACY)\")\n else\n Validate(\"Last Period Net (Credit) (ACY)\", -\"Last Period Net (ACY)\");\n@@ -216,7 +216,7 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Bal.\" > 0) then\n+ if (\"Last Period Bal.\" >= 0) then\n Validate(\"Last Period Bal. (Debit) (ACY)\", \"Last Period Bal. (ACY)\")\n else\n Validate(\"Last Period Bal. (Cred.) (ACY)\", -\"Last Period Bal. (ACY)\");\ndiff --git a/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al b/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al\nindex 7cf0915..2e171cf 100644\n--- a/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al\n+++ b/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al\n@@ -119,6 +119,7 @@ codeunit 4410 \"Trial Balance\"\n \n local procedure InsertTrialBalanceDataForGLAccountWithFilters(var GLAccount: Record \"G/L Account\"; Dimension1ValueCode: Code[20]; Dimension2ValueCode: Code[20]; BusinessUnitCode: Code[20]; var TrialBalanceData: Record \"EXR Trial Balance Buffer\"; var Dimension1Values: Record \"Dimension Value\" temporary; var Dimension2Values: Record \"Dimension Value\" temporary)\n begin\n+ Clear(TrialBalanceData);\n GlAccount.CalcFields(\"Net Change\", \"Balance at Date\", \"Additional-Currency Net Change\", \"Add.-Currency Balance at Date\", \"Budgeted Amount\", \"Budget at Date\");\n TrialBalanceData.\"G/L Account No.\" := GlAccount.\"No.\";\n TrialBalanceData.\"Dimension 1 Code\" := Dimension1ValueCode;\n"} +{"instance_id": "microsoftInternal__NAV-201169__cf-1", "base_instance_id": "microsoftInternal__NAV-201169", "variant_description": "Whitespace-only description should be treated as empty and logged to skipped records", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-201169__cf-1", "FAIL_TO_PASS": [{"codeunitID": 139581, "functionName": ["UnitTestLogItemEmptyDescription"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Apps/W1/Shopify/test/Logs/ShpfySkippedRecordLogTest.Codeunit.al b/App/Apps/W1/Shopify/test/Logs/ShpfySkippedRecordLogTest.Codeunit.al\nindex 60adc2f..1dbc2ae 100644\n--- a/App/Apps/W1/Shopify/test/Logs/ShpfySkippedRecordLogTest.Codeunit.al\n+++ b/App/Apps/W1/Shopify/test/Logs/ShpfySkippedRecordLogTest.Codeunit.al\n@@ -91,6 +91,37 @@ codeunit 139581 \"Shpfy Skipped Record Log Test\"\n LibraryAssert.AreEqual('Item is blocked or sales blocked.', SkippedRecord.\"Skipped Reason\", 'Skipped reason is not as expected');\n end;\n \n+ [Test]\n+\n+ [HandlerFunctions('AddItemToShopifyHandler')]\n+ procedure UnitTestLogItemEmptyDescription()\n+ var\n+\n+ Item: Record Item;\n+ SkippedRecord: Record \"Shpfy Skipped Record\";\n+ AddItemToShopify: Report \"Shpfy Add Item to Shopify\";\n+ begin\n+ // [SCENARIO] Log skipped record when item description is empty\n+ Initialize();\n+\n+ // [GIVEN] An item record that has whitespace-only description\n+ CreateItem(Item);\n+ Item.Description := ' ';\n+ Item.Modify(false);\n+ Commit();\n+\n+ // [WHEN] Run report Add Items to Shopify\n+ Item.SetRange(\"No.\", Item.\"No.\");\n+ AddItemToShopify.SetShop(Shop.Code);\n+ AddItemToShopify.SetTableView(Item);\n+ AddItemToShopify.Run();\n+\n+ // [THEN] Related record is created in shopify skipped record table\n+ SkippedRecord.SetRange(\"Record ID\", Item.RecordId);\n+ LibraryAssert.IsTrue(SkippedRecord.FindFirst(), 'Skipped record is not created');\n+ LibraryAssert.AreEqual('Item description is empty.', SkippedRecord.\"Skipped Reason\", 'Skipped reason is not as expected');\n+ end;\n+\n [Test]\n procedure UnitTestLogItemVariantBlocked()\n var\n@@ -841,13 +872,19 @@ codeunit 139581 \"Shpfy Skipped Record Log Test\"\n SalesShipmentLine.Insert(false);\n end;\n \n- local procedure CreateBlockedItem(var Item: Record Item)\n+ local procedure CreateItem(var Item: Record Item)\n begin\n Item.Init();\n Item.\"No.\" := Any.AlphanumericText(20);\n+ Item.Insert(false);\n+ end;\n+\n+ local procedure CreateBlockedItem(var Item: Record Item)\n+ begin\n+ CreateItem(Item);\n Item.Blocked := true;\n Item.\"Sales Blocked\" := true;\n- Item.Insert(false);\n+ Item.Modify(false);\n end;\n \n local procedure CreateBlockedItemVariant(Item: Record Item; var ItemVariant: Record \"Item Variant\")\n", "patch": "diff --git a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\nindex 38d7785..965c1f8 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n@@ -57,7 +57,9 @@ codeunit 30174 \"Shpfy Create Product\"\n ProductId := ProductApi.CreateProduct(TempShopifyProduct, TempShopifyVariant, TempShopifyTag)\n else\n ProductId := TempShopifyProduct.Id;\n- ProductExport.UpdateProductTranslations(ProductId, Item);\n+\n+ if ProductId <> 0 then\n+ ProductExport.UpdateProductTranslations(ProductId, Item);\n end;\n \n internal procedure CreateTempProduct(Item: Record Item; var TempShopifyProduct: Record \"Shpfy Product\" temporary; var TempShopifyVariant: Record \"Shpfy Variant\" temporary; var TempShopifyTag: Record \"Shpfy Tag\" temporary)\ndiff --git a/App/Apps/W1/Shopify/app/src/Products/Reports/ShpfyAddItemtoShopify.Report.al b/App/Apps/W1/Shopify/app/src/Products/Reports/ShpfyAddItemtoShopify.Report.al\nindex b99f15d..7e9fce0 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Reports/ShpfyAddItemtoShopify.Report.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Reports/ShpfyAddItemtoShopify.Report.al\n@@ -57,18 +57,24 @@ report 30106 \"Shpfy Add Item to Shopify\"\n var\n SkippedRecord: Codeunit \"Shpfy Skipped Record\";\n begin\n- if Item.Blocked or Item.\"Sales Blocked\" then\n- SkippedRecord.LogSkippedRecord(Item.RecordId, ItemIsBlockedLbl, ShopifyShop)\n- else begin\n- if GuiAllowed then begin\n- CurrItemNo := Item.\"No.\";\n- ProcessDialog.Update();\n- end;\n+ if Item.Blocked or Item.\"Sales Blocked\" then begin\n+ SkippedRecord.LogSkippedRecord(Item.RecordId, ItemIsBlockedLbl, ShopifyShop);\n+ exit;\n+ end;\n \n- ShopifyCreateProduct.Run(Item);\n+ if DelChr(Item.Description, '<>', ' ') = '' then begin\n+ SkippedRecord.LogSkippedRecord(Item.RecordId, ItemDescriptionIsEmptyLbl, ShopifyShop);\n+ exit;\n+ end;\n \n- ProductFilter += Format(ShopifyCreateProduct.GetProductId()) + '|';\n+ if GuiAllowed then begin\n+ CurrItemNo := Item.\"No.\";\n+ ProcessDialog.Update();\n end;\n+\n+ ShopifyCreateProduct.Run(Item);\n+\n+ ProductFilter += Format(ShopifyCreateProduct.GetProductId()) + '|';\n end;\n \n trigger OnPostDataItem()\n@@ -190,6 +196,7 @@ report 30106 \"Shpfy Add Item to Shopify\"\n ChangeDefaultLocationLbl: Label 'Change default location';\n ChangeSKUMappingLbl: Label 'Change SKU mapping';\n ItemIsBlockedLbl: Label 'Item is blocked or sales blocked.';\n+ ItemDescriptionIsEmptyLbl: Label 'Item description is empty.';\n \n /// \n /// Set Shop.\n"} +{"instance_id": "microsoftInternal__NAV-201169__cf-2", "base_instance_id": "microsoftInternal__NAV-201169", "variant_description": "Exit early for items with empty description instead of continuing export", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-201169__cf-2", "FAIL_TO_PASS": [{"codeunitID": 139581, "functionName": ["UnitTestLogItemEmptyDescription"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Apps/W1/Shopify/test/Logs/ShpfySkippedRecordLogTest.Codeunit.al b/App/Apps/W1/Shopify/test/Logs/ShpfySkippedRecordLogTest.Codeunit.al\nindex 60adc2f..063e50b 100644\n--- a/App/Apps/W1/Shopify/test/Logs/ShpfySkippedRecordLogTest.Codeunit.al\n+++ b/App/Apps/W1/Shopify/test/Logs/ShpfySkippedRecordLogTest.Codeunit.al\n@@ -91,6 +91,35 @@ codeunit 139581 \"Shpfy Skipped Record Log Test\"\n LibraryAssert.AreEqual('Item is blocked or sales blocked.', SkippedRecord.\"Skipped Reason\", 'Skipped reason is not as expected');\n end;\n \n+ [Test]\n+\n+ [HandlerFunctions('AddItemToShopifyHandler')]\n+ procedure UnitTestLogItemEmptyDescription()\n+ var\n+\n+ Item: Record Item;\n+ SkippedRecord: Record \"Shpfy Skipped Record\";\n+ AddItemToShopify: Report \"Shpfy Add Item to Shopify\";\n+ begin\n+ // [SCENARIO] Log skipped record when item description is empty\n+ Initialize();\n+\n+ // [GIVEN] An item record that has empty description\n+ CreateItem(Item);\n+ Commit();\n+\n+ // [WHEN] Run report Add Items to Shopify\n+ Item.SetRange(\"No.\", Item.\"No.\");\n+ AddItemToShopify.SetShop(Shop.Code);\n+ AddItemToShopify.SetTableView(Item);\n+ AddItemToShopify.Run();\n+\n+ // [THEN] Related record is created in shopify skipped record table\n+ SkippedRecord.SetRange(\"Record ID\", Item.RecordId);\n+ LibraryAssert.IsTrue(SkippedRecord.FindFirst(), 'Skipped record is not created');\n+ LibraryAssert.AreEqual('Item description is empty.', SkippedRecord.\"Skipped Reason\", 'Skipped reason is not as expected');\n+ end;\n+\n [Test]\n procedure UnitTestLogItemVariantBlocked()\n var\n@@ -841,13 +870,19 @@ codeunit 139581 \"Shpfy Skipped Record Log Test\"\n SalesShipmentLine.Insert(false);\n end;\n \n- local procedure CreateBlockedItem(var Item: Record Item)\n+ local procedure CreateItem(var Item: Record Item)\n begin\n Item.Init();\n Item.\"No.\" := Any.AlphanumericText(20);\n+ Item.Insert(false);\n+ end;\n+\n+ local procedure CreateBlockedItem(var Item: Record Item)\n+ begin\n+ CreateItem(Item);\n Item.Blocked := true;\n Item.\"Sales Blocked\" := true;\n- Item.Insert(false);\n+ Item.Modify(false);\n end;\n \n local procedure CreateBlockedItemVariant(Item: Record Item; var ItemVariant: Record \"Item Variant\")\n", "patch": "diff --git a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\nindex 38d7785..965c1f8 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n@@ -57,7 +57,9 @@ codeunit 30174 \"Shpfy Create Product\"\n ProductId := ProductApi.CreateProduct(TempShopifyProduct, TempShopifyVariant, TempShopifyTag)\n else\n ProductId := TempShopifyProduct.Id;\n- ProductExport.UpdateProductTranslations(ProductId, Item);\n+\n+ if ProductId <> 0 then\n+ ProductExport.UpdateProductTranslations(ProductId, Item);\n end;\n \n internal procedure CreateTempProduct(Item: Record Item; var TempShopifyProduct: Record \"Shpfy Product\" temporary; var TempShopifyVariant: Record \"Shpfy Variant\" temporary; var TempShopifyTag: Record \"Shpfy Tag\" temporary)\ndiff --git a/App/Apps/W1/Shopify/app/src/Products/Reports/ShpfyAddItemtoShopify.Report.al b/App/Apps/W1/Shopify/app/src/Products/Reports/ShpfyAddItemtoShopify.Report.al\nindex b99f15d..7ede756 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Reports/ShpfyAddItemtoShopify.Report.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Reports/ShpfyAddItemtoShopify.Report.al\n@@ -57,18 +57,24 @@ report 30106 \"Shpfy Add Item to Shopify\"\n var\n SkippedRecord: Codeunit \"Shpfy Skipped Record\";\n begin\n- if Item.Blocked or Item.\"Sales Blocked\" then\n- SkippedRecord.LogSkippedRecord(Item.RecordId, ItemIsBlockedLbl, ShopifyShop)\n- else begin\n- if GuiAllowed then begin\n- CurrItemNo := Item.\"No.\";\n- ProcessDialog.Update();\n- end;\n+ if Item.Blocked or Item.\"Sales Blocked\" then begin\n+ SkippedRecord.LogSkippedRecord(Item.RecordId, ItemIsBlockedLbl, ShopifyShop);\n+ exit;\n+ end;\n \n- ShopifyCreateProduct.Run(Item);\n+ if Item.Description = '' then begin\n+ SkippedRecord.LogSkippedRecord(Item.RecordId, ItemDescriptionIsEmptyLbl, ShopifyShop);\n+ exit;\n+ end;\n \n- ProductFilter += Format(ShopifyCreateProduct.GetProductId()) + '|';\n+ if GuiAllowed then begin\n+ CurrItemNo := Item.\"No.\";\n+ ProcessDialog.Update();\n end;\n+\n+ ShopifyCreateProduct.Run(Item);\n+\n+ ProductFilter += Format(ShopifyCreateProduct.GetProductId()) + '|';\n end;\n \n trigger OnPostDataItem()\n@@ -190,6 +196,7 @@ report 30106 \"Shpfy Add Item to Shopify\"\n ChangeDefaultLocationLbl: Label 'Change default location';\n ChangeSKUMappingLbl: Label 'Change SKU mapping';\n ItemIsBlockedLbl: Label 'Item is blocked or sales blocked.';\n+ ItemDescriptionIsEmptyLbl: Label 'Item description is empty.';\n \n /// \n /// Set Shop.\n"} +{"instance_id": "microsoftInternal__NAV-201169__cf-3", "base_instance_id": "microsoftInternal__NAV-201169", "variant_description": "Move empty description validation from the report to the product creation flow", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-201169__cf-3", "FAIL_TO_PASS": [{"codeunitID": 139581, "functionName": ["UnitTestLogItemEmptyDescription"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Apps/W1/Shopify/test/Logs/ShpfySkippedRecordLogTest.Codeunit.al b/App/Apps/W1/Shopify/test/Logs/ShpfySkippedRecordLogTest.Codeunit.al\nindex 60adc2f..063e50b 100644\n--- a/App/Apps/W1/Shopify/test/Logs/ShpfySkippedRecordLogTest.Codeunit.al\n+++ b/App/Apps/W1/Shopify/test/Logs/ShpfySkippedRecordLogTest.Codeunit.al\n@@ -91,6 +91,35 @@ codeunit 139581 \"Shpfy Skipped Record Log Test\"\n LibraryAssert.AreEqual('Item is blocked or sales blocked.', SkippedRecord.\"Skipped Reason\", 'Skipped reason is not as expected');\n end;\n \n+ [Test]\n+\n+ [HandlerFunctions('AddItemToShopifyHandler')]\n+ procedure UnitTestLogItemEmptyDescription()\n+ var\n+\n+ Item: Record Item;\n+ SkippedRecord: Record \"Shpfy Skipped Record\";\n+ AddItemToShopify: Report \"Shpfy Add Item to Shopify\";\n+ begin\n+ // [SCENARIO] Log skipped record when item description is empty\n+ Initialize();\n+\n+ // [GIVEN] An item record that has empty description\n+ CreateItem(Item);\n+ Commit();\n+\n+ // [WHEN] Run report Add Items to Shopify\n+ Item.SetRange(\"No.\", Item.\"No.\");\n+ AddItemToShopify.SetShop(Shop.Code);\n+ AddItemToShopify.SetTableView(Item);\n+ AddItemToShopify.Run();\n+\n+ // [THEN] Related record is created in shopify skipped record table\n+ SkippedRecord.SetRange(\"Record ID\", Item.RecordId);\n+ LibraryAssert.IsTrue(SkippedRecord.FindFirst(), 'Skipped record is not created');\n+ LibraryAssert.AreEqual('Item description is empty.', SkippedRecord.\"Skipped Reason\", 'Skipped reason is not as expected');\n+ end;\n+\n [Test]\n procedure UnitTestLogItemVariantBlocked()\n var\n@@ -841,13 +870,19 @@ codeunit 139581 \"Shpfy Skipped Record Log Test\"\n SalesShipmentLine.Insert(false);\n end;\n \n- local procedure CreateBlockedItem(var Item: Record Item)\n+ local procedure CreateItem(var Item: Record Item)\n begin\n Item.Init();\n Item.\"No.\" := Any.AlphanumericText(20);\n+ Item.Insert(false);\n+ end;\n+\n+ local procedure CreateBlockedItem(var Item: Record Item)\n+ begin\n+ CreateItem(Item);\n Item.Blocked := true;\n Item.\"Sales Blocked\" := true;\n- Item.Insert(false);\n+ Item.Modify(false);\n end;\n \n local procedure CreateBlockedItemVariant(Item: Record Item; var ItemVariant: Record \"Item Variant\")\n", "patch": "diff --git a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\nindex 38d7785..3f4642a 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n@@ -28,2 +28,3 @@ codeunit 30174 \"Shpfy Create Product\"\n ItemVariantIsBlockedLbl: Label 'Item variant is blocked or sales blocked.';\n+ ItemDescriptionIsEmptyLbl: Label 'Item description is empty.';\n \n@@ -31,4 +32,10 @@ codeunit 30174 \"Shpfy Create Product\"\n var\n ShopifyProduct: Record \"Shpfy Product\";\n+ SkippedRecord: Codeunit \"Shpfy Skipped Record\";\n begin\n+ if Rec.Description = '' then begin\n+ SkippedRecord.LogSkippedRecord(Rec.RecordId, ItemDescriptionIsEmptyLbl, Shop);\n+ exit;\n+ end;\n+\n if Getlocations then begin\ndiff --git a/App/Apps/W1/Shopify/app/src/Products/Reports/ShpfyAddItemtoShopify.Report.al b/App/Apps/W1/Shopify/app/src/Products/Reports/ShpfyAddItemtoShopify.Report.al\nindex b99f15d..6369a4f 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Reports/ShpfyAddItemtoShopify.Report.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Reports/ShpfyAddItemtoShopify.Report.al\n@@ -57,18 +57,19 @@ report 30106 \"Shpfy Add Item to Shopify\"\n var\n SkippedRecord: Codeunit \"Shpfy Skipped Record\";\n begin\n- if Item.Blocked or Item.\"Sales Blocked\" then\n- SkippedRecord.LogSkippedRecord(Item.RecordId, ItemIsBlockedLbl, ShopifyShop)\n- else begin\n- if GuiAllowed then begin\n- CurrItemNo := Item.\"No.\";\n- ProcessDialog.Update();\n- end;\n-\n- ShopifyCreateProduct.Run(Item);\n+ if Item.Blocked or Item.\"Sales Blocked\" then begin\n+ SkippedRecord.LogSkippedRecord(Item.RecordId, ItemIsBlockedLbl, ShopifyShop);\n+ exit;\n+ end;\n \n- ProductFilter += Format(ShopifyCreateProduct.GetProductId()) + '|';\n+ if GuiAllowed then begin\n+ CurrItemNo := Item.\"No.\";\n+ ProcessDialog.Update();\n end;\n+\n+ ShopifyCreateProduct.Run(Item);\n+\n+ ProductFilter += Format(ShopifyCreateProduct.GetProductId()) + '|';\n end;\n \n trigger OnPostDataItem()\n@@ -190,6 +191,7 @@ report 30106 \"Shpfy Add Item to Shopify\"\n ChangeDefaultLocationLbl: Label 'Change default location';\n ChangeSKUMappingLbl: Label 'Change SKU mapping';\n ItemIsBlockedLbl: Label 'Item is blocked or sales blocked.';\n+ ItemDescriptionIsEmptyLbl: Label 'Item description is empty.';\n \n /// \n /// Set Shop.\n"} +{"instance_id": "microsoftInternal__NAV-203923__cf-1", "base_instance_id": "microsoftInternal__NAV-203923", "variant_description": "Full VAT excluded from non-deductible VAT eligible calculation types", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-203923__cf-1", "FAIL_TO_PASS": [{"codeunitID": 134288, "functionName": ["NonDeductibleVATShouldShowAsNonDeductibleOnDoingFullVAT"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/VAT/NonDeductibleVATJournal.Codeunit.al b/App/Layers/W1/Tests/VAT/NonDeductibleVATJournal.Codeunit.al\nindex 32fd947..b00ff30 100644\n--- a/App/Layers/W1/Tests/VAT/NonDeductibleVATJournal.Codeunit.al\n+++ b/App/Layers/W1/Tests/VAT/NonDeductibleVATJournal.Codeunit.al\n@@ -20,6 +20,7 @@ codeunit 134288 \"Non-Deductible VAT Journal\"\n IsInitialized: Boolean;\n ReverseEntriesQst: Label 'Do you want to reverse the entries';\n EntriesReversedLbl: Label 'The entries were successfully reversed';\n+ NonDeductiableVATAmountMustBeEqualErr: Label 'Non-Deductable VAT Amount must be %1 in VAT Entries', Comment = '%1 = Expected Non-Deductible VAT Amount';\n \n [Test]\n [Scope('OnPrem')]\n@@ -177,7 +178,7 @@ codeunit 134288 \"Non-Deductible VAT Journal\"\n GLEntry.SetRange(\"VAT Prod. Posting Group\", VATPostingSetup.\"VAT Prod. Posting Group\");\n GLEntry.FindFirst();\n // [THEN] \"Non-Deductible VAT Amount\" is zero in all non-VAT G/L entries\n-\t\t// Bug 523795: Bal. Non-Deductible VAT amount is not correct \n+ // Bug 523795: Bal. Non-Deductible VAT amount is not correct\n GLEntry.TestField(\"Non-Deductible VAT Amount\", Round(GenJournalLine.\"Bal. VAT Amount\" * VATPostingSetup.\"Non-Deductible VAT %\" / 100));\n GLEntry.SetRange(\"VAT Bus. Posting Group\", '');\n GLEntry.SetRange(\"VAT Prod. Posting Group\", '');\n@@ -215,6 +216,44 @@ codeunit 134288 \"Non-Deductible VAT Journal\"\n GenJournalLine.TestField(\"Bal. Non-Ded. VAT %\", VATPostingSetup.\"Non-Deductible VAT %\");\n end;\n \n+ [Test]\n+ procedure NonDeductibleVATShouldShowAsNonDeductibleOnDoingFullVAT()\n+ var\n+ GLAccount: Record \"G/L Account\";\n+ GenJournalLine: Record \"Gen. Journal Line\";\n+ VATEntry: Record \"VAT Entry\";\n+ VATPostingSetup: Record \"VAT Posting Setup\";\n+ NonDeductableVATAmount: Decimal;\n+ begin\n+ // [SCENARIO 537128] On posting Non-Deductible full VAT amount should be display in Non-Deductable VAT field of VAT Entry.\n+ Initialize();\n+\n+ // [GIVEN] Create Non-Deductible VAT Posting Setup with \"Non-Deductible VAT %\" = 100.\n+ LibraryNonDeductibleVAT.CreatVATPostingSetupAllowedForNonDeductibleVAT(VATPostingSetup, VATPostingSetup.\"VAT Calculation Type\"::\"Full VAT\", 100);\n+ VATPostingSetup.Validate(\"Purchase VAT Account\", LibraryERM.CreateGLAccountWithVATPostingSetup(VATPostingSetup, GLAccount.\"Gen. Posting Type\"::Purchase));\n+ VATPostingSetup.Validate(\"Non-Deductible VAT %\", 100);\n+ VATPostingSetup.Modify(true);\n+\n+ // [GIVEN] General Journal Line with Non-Deductible VAT Posting Setup and \"Account No\" = VATPostingSetup.\"Purchase VAT Account\".\n+ LibraryJournals.CreateGenJournalLineWithBatch(\n+ GenJournalLine, GenJournalLine.\"Document Type\"::\" \", GenJournalLine.\"Account Type\"::\"G/L Account\",\n+ VATPostingSetup.\"Purchase VAT Account\", LibraryRandom.RandDec(100, 2));\n+ GenJournalLine.Validate(\"Bal. Account No.\", LibraryERM.CreateGLAccountNo());\n+\n+ // [GIVEN] Validate VAT Bus. & Prod. Posting Group fields.\n+ GenJournalLine.Validate(\"VAT Bus. Posting Group\", VATPostingSetup.\"VAT Bus. Posting Group\");\n+ GenJournalLine.Validate(\"VAT Prod. Posting Group\", VATPostingSetup.\"VAT Prod. Posting Group\");\n+ GenJournalLine.Modify(true);\n+ NonDeductableVATAmount := GenJournalLine.Amount;\n+\n+ // [WHEN] Post the General Journal.\n+ LibraryERM.PostGeneralJnlLine(GenJournalLine);\n+\n+ // [THEN] Verify that \"Non-Deductible VAT Amount\" field must have the value in VAT Entry.\n+ FindVATEntryByVATPostingSetup(VATEntry, VATPostingSetup);\n+ Assert.AreEqual(NonDeductableVATAmount, VATEntry.\"Non-Deductible VAT Amount\", StrSubstNo(NonDeductiableVATAmountMustBeEqualErr, NonDeductableVATAmount));\n+ end;\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n@@ -244,6 +283,13 @@ codeunit 134288 \"Non-Deductible VAT Journal\"\n VATEntry.Testfield(\"Non-Deductible VAT Amount\", NDAmount);\n end;\n \n+ local procedure FindVATEntryByVATPostingSetup(var VATENtry: Record \"VAT Entry\"; VATPostingSetup: Record \"VAT Posting Setup\")\n+ begin\n+ VATEntry.SetRange(\"VAT Bus. Posting Group\", VATPostingSetup.\"VAT Bus. Posting Group\");\n+ VATEntry.SetRange(\"VAT Prod. Posting Group\", VATPostingSetup.\"VAT Prod. Posting Group\");\n+ VATEntry.FindLast();\n+ end;\n+\n [ConfirmHandler]\n [Scope('OnPrem')]\n procedure ConfirmHandler(Question: Text[1024]; var Reply: Boolean)\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\nindex 6bb15d7..3a9181b 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n@@ -94,7 +94,8 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n if IsHandled then\n exit(NonDeductibleVATPct);\n if not (VATPostingSetup.\"VAT Calculation Type\" in [VATPostingSetup.\"VAT Calculation Type\"::\"Normal VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n- exit(0);\n+ if VATPostingSetup.\"VAT Calculation Type\" <> VATPostingSetup.\"VAT Calculation Type\"::\"Full VAT\" then\n+ exit(0);\n if (VATPostingSetup.\"Allow Non-Deductible VAT\" = VATPostingSetup.\"Allow Non-Deductible VAT\"::\"Do not allow\") or (GeneralPostingType <> GeneralPostingType::Purchase) then\n exit(0);\n exit(VATPostingSetup.\"Non-Deductible VAT %\");\n@@ -787,7 +788,8 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n if IsHandled then\n exit;\n if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n- exit;\n+ if GenJournalLine.\"VAT Calculation Type\" <> GenJournalLine.\"VAT Calculation Type\"::\"Full VAT\" then\n+ exit;\n if not VATPostingSetup.Get(GenJournalLine.\"VAT Bus. Posting Group\", GenJournalLine.\"VAT Prod. Posting Group\") then\n exit;\n GenJournalLine.Validate(\"Non-Deductible VAT Base\",\n@@ -1211,7 +1213,8 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n if IsHandled then\n exit(NonDeductibleVATPct);\n if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n- exit(0);\n+ if GenJournalLine.\"VAT Calculation Type\" <> GenJournalLine.\"VAT Calculation Type\"::\"Full VAT\" then\n+ exit(0);\n if not VATPostingSetup.Get(GenJournalLine.\"VAT Bus. Posting Group\", GenJournalLine.\"VAT Prod. Posting Group\") then\n exit(0);\n exit(GetNonDeductibleVATPct(VATPostingSetup, GenJournalLine.\"Gen. Posting Type\"));\n"} +{"instance_id": "microsoftInternal__NAV-203923__cf-2", "base_instance_id": "microsoftInternal__NAV-203923", "variant_description": "Full VAT treated as non-deductible but excluded when Non-Deductible VAT % is 100 or more", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-203923__cf-2", "FAIL_TO_PASS": [{"codeunitID": 134288, "functionName": ["NonDeductibleVATShouldShowAsNonDeductibleOnDoingFullVAT"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/VAT/NonDeductibleVATJournal.Codeunit.al b/App/Layers/W1/Tests/VAT/NonDeductibleVATJournal.Codeunit.al\nindex 32fd947..23c6392 100644\n--- a/App/Layers/W1/Tests/VAT/NonDeductibleVATJournal.Codeunit.al\n+++ b/App/Layers/W1/Tests/VAT/NonDeductibleVATJournal.Codeunit.al\n@@ -20,6 +20,7 @@ codeunit 134288 \"Non-Deductible VAT Journal\"\n IsInitialized: Boolean;\n ReverseEntriesQst: Label 'Do you want to reverse the entries';\n EntriesReversedLbl: Label 'The entries were successfully reversed';\n+ NonDeductiableVATAmountMustBeEqualErr: Label 'Non-Deductable VAT Amount must be %1 in VAT Entries', Comment = '%1 = Expected Non-Deductible VAT Amount';\n \n [Test]\n [Scope('OnPrem')]\n@@ -177,7 +178,7 @@ codeunit 134288 \"Non-Deductible VAT Journal\"\n GLEntry.SetRange(\"VAT Prod. Posting Group\", VATPostingSetup.\"VAT Prod. Posting Group\");\n GLEntry.FindFirst();\n // [THEN] \"Non-Deductible VAT Amount\" is zero in all non-VAT G/L entries\n-\t\t// Bug 523795: Bal. Non-Deductible VAT amount is not correct \n+ // Bug 523795: Bal. Non-Deductible VAT amount is not correct\n GLEntry.TestField(\"Non-Deductible VAT Amount\", Round(GenJournalLine.\"Bal. VAT Amount\" * VATPostingSetup.\"Non-Deductible VAT %\" / 100));\n GLEntry.SetRange(\"VAT Bus. Posting Group\", '');\n GLEntry.SetRange(\"VAT Prod. Posting Group\", '');\n@@ -215,6 +216,44 @@ codeunit 134288 \"Non-Deductible VAT Journal\"\n GenJournalLine.TestField(\"Bal. Non-Ded. VAT %\", VATPostingSetup.\"Non-Deductible VAT %\");\n end;\n \n+ [Test]\n+ procedure NonDeductibleVATShouldShowAsNonDeductibleOnDoingFullVAT()\n+ var\n+ GLAccount: Record \"G/L Account\";\n+ GenJournalLine: Record \"Gen. Journal Line\";\n+ VATEntry: Record \"VAT Entry\";\n+ VATPostingSetup: Record \"VAT Posting Setup\";\n+ NonDeductableVATAmount: Decimal;\n+ begin\n+ // [SCENARIO 537128] On posting Non-Deductible full VAT amount should be display in Non-Deductable VAT field of VAT Entry.\n+ Initialize();\n+\n+ // [GIVEN] Create Non-Deductible VAT Posting Setup with \"Non-Deductible VAT %\" = 50.\n+ LibraryNonDeductibleVAT.CreatVATPostingSetupAllowedForNonDeductibleVAT(VATPostingSetup, VATPostingSetup.\"VAT Calculation Type\"::\"Full VAT\", 50);\n+ VATPostingSetup.Validate(\"Purchase VAT Account\", LibraryERM.CreateGLAccountWithVATPostingSetup(VATPostingSetup, GLAccount.\"Gen. Posting Type\"::Purchase));\n+ VATPostingSetup.Validate(\"Non-Deductible VAT %\", 50);\n+ VATPostingSetup.Modify(true);\n+\n+ // [GIVEN] General Journal Line with Non-Deductible VAT Posting Setup and \"Account No\" = VATPostingSetup.\"Purchase VAT Account\".\n+ LibraryJournals.CreateGenJournalLineWithBatch(\n+ GenJournalLine, GenJournalLine.\"Document Type\"::\" \", GenJournalLine.\"Account Type\"::\"G/L Account\",\n+ VATPostingSetup.\"Purchase VAT Account\", LibraryRandom.RandDec(100, 2));\n+ GenJournalLine.Validate(\"Bal. Account No.\", LibraryERM.CreateGLAccountNo());\n+\n+ // [GIVEN] Validate VAT Bus. & Prod. Posting Group fields.\n+ GenJournalLine.Validate(\"VAT Bus. Posting Group\", VATPostingSetup.\"VAT Bus. Posting Group\");\n+ GenJournalLine.Validate(\"VAT Prod. Posting Group\", VATPostingSetup.\"VAT Prod. Posting Group\");\n+ GenJournalLine.Modify(true);\n+ NonDeductableVATAmount := Round(GenJournalLine.Amount * VATPostingSetup.\"Non-Deductible VAT %\" / 100);\n+\n+ // [WHEN] Post the General Journal.\n+ LibraryERM.PostGeneralJnlLine(GenJournalLine);\n+\n+ // [THEN] Verify that \"Non-Deductible VAT Amount\" field must have the value in VAT Entry.\n+ FindVATEntryByVATPostingSetup(VATEntry, VATPostingSetup);\n+ Assert.AreEqual(NonDeductableVATAmount, VATEntry.\"Non-Deductible VAT Amount\", StrSubstNo(NonDeductiableVATAmountMustBeEqualErr, NonDeductableVATAmount));\n+ end;\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n@@ -244,6 +283,13 @@ codeunit 134288 \"Non-Deductible VAT Journal\"\n VATEntry.Testfield(\"Non-Deductible VAT Amount\", NDAmount);\n end;\n \n+ local procedure FindVATEntryByVATPostingSetup(var VATENtry: Record \"VAT Entry\"; VATPostingSetup: Record \"VAT Posting Setup\")\n+ begin\n+ VATEntry.SetRange(\"VAT Bus. Posting Group\", VATPostingSetup.\"VAT Bus. Posting Group\");\n+ VATEntry.SetRange(\"VAT Prod. Posting Group\", VATPostingSetup.\"VAT Prod. Posting Group\");\n+ VATEntry.FindLast();\n+ end;\n+\n [ConfirmHandler]\n [Scope('OnPrem')]\n procedure ConfirmHandler(Question: Text[1024]; var Reply: Boolean)\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\nindex 6bb15d7..db8d72e 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n@@ -93,7 +93,9 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetNonDeductibleVATPct(NonDeductibleVATPct, VATPostingSetup, GeneralPostingType, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (VATPostingSetup.\"VAT Calculation Type\" in [VATPostingSetup.\"VAT Calculation Type\"::\"Normal VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (VATPostingSetup.\"VAT Calculation Type\" in [VATPostingSetup.\"VAT Calculation Type\"::\"Normal VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Reverse Charge VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Full VAT\"]) then\n+ exit(0);\n+ if (VATPostingSetup.\"VAT Calculation Type\" = VATPostingSetup.\"VAT Calculation Type\"::\"Full VAT\") and (VATPostingSetup.\"Non-Deductible VAT %\" >= 100) then\n exit(0);\n if (VATPostingSetup.\"Allow Non-Deductible VAT\" = VATPostingSetup.\"Allow Non-Deductible VAT\"::\"Do not allow\") or (GeneralPostingType <> GeneralPostingType::Purchase) then\n exit(0);\n@@ -786,7 +788,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeCalcNonDedAmountsInGenJnlLine(GenJournalLine, Currency, IsHandled);\n if IsHandled then\n exit;\n- if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit;\n if not VATPostingSetup.Get(GenJournalLine.\"VAT Bus. Posting Group\", GenJournalLine.\"VAT Prod. Posting Group\") then\n exit;\n@@ -826,7 +828,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeCalcBalNonDedAmountsInGenJnlLine(GenJournalLine, Currency, IsHandled);\n if IsHandled then\n exit;\n- if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit;\n if not VATPostingSetup.Get(GenJournalLine.\"Bal. VAT Bus. Posting Group\", GenJournalLine.\"Bal. VAT Prod. Posting Group\") then\n exit;\n@@ -1210,7 +1212,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetNonDedVATPctForGenJnlLine(NonDeductibleVATPct, GenJournalLine, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if not VATPostingSetup.Get(GenJournalLine.\"VAT Bus. Posting Group\", GenJournalLine.\"VAT Prod. Posting Group\") then\n exit(0);\n@@ -1227,7 +1229,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetBalNonDedVATPctForGenJnlLine(NonDeductibleVATPct, GenJournalLine, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if not VATPostingSetup.Get(GenJournalLine.\"Bal. VAT Bus. Posting Group\", GenJournalLine.\"Bal. VAT Prod. Posting Group\") then\n exit(0);\n"} +{"instance_id": "microsoftInternal__NAV-203923__cf-3", "base_instance_id": "microsoftInternal__NAV-203923", "variant_description": "Full VAT amount calculated but not reflected in non-deductible VAT entry fields", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-203923__cf-3", "FAIL_TO_PASS": [{"codeunitID": 134288, "functionName": ["NonDeductibleVATShouldShowAsNonDeductibleOnDoingFullVAT"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/VAT/NonDeductibleVATJournal.Codeunit.al b/App/Layers/W1/Tests/VAT/NonDeductibleVATJournal.Codeunit.al\nindex 32fd947..b00ff30 100644\n--- a/App/Layers/W1/Tests/VAT/NonDeductibleVATJournal.Codeunit.al\n+++ b/App/Layers/W1/Tests/VAT/NonDeductibleVATJournal.Codeunit.al\n@@ -20,6 +20,7 @@ codeunit 134288 \"Non-Deductible VAT Journal\"\n IsInitialized: Boolean;\n ReverseEntriesQst: Label 'Do you want to reverse the entries';\n EntriesReversedLbl: Label 'The entries were successfully reversed';\n+ NonDeductiableVATAmountMustBeEqualErr: Label 'Non-Deductable VAT Amount must be %1 in VAT Entries', Comment = '%1 = Expected Non-Deductible VAT Amount';\n \n [Test]\n [Scope('OnPrem')]\n@@ -177,7 +178,7 @@ codeunit 134288 \"Non-Deductible VAT Journal\"\n GLEntry.SetRange(\"VAT Prod. Posting Group\", VATPostingSetup.\"VAT Prod. Posting Group\");\n GLEntry.FindFirst();\n // [THEN] \"Non-Deductible VAT Amount\" is zero in all non-VAT G/L entries\n-\t\t// Bug 523795: Bal. Non-Deductible VAT amount is not correct \n+ // Bug 523795: Bal. Non-Deductible VAT amount is not correct\n GLEntry.TestField(\"Non-Deductible VAT Amount\", Round(GenJournalLine.\"Bal. VAT Amount\" * VATPostingSetup.\"Non-Deductible VAT %\" / 100));\n GLEntry.SetRange(\"VAT Bus. Posting Group\", '');\n GLEntry.SetRange(\"VAT Prod. Posting Group\", '');\n@@ -215,6 +216,44 @@ codeunit 134288 \"Non-Deductible VAT Journal\"\n GenJournalLine.TestField(\"Bal. Non-Ded. VAT %\", VATPostingSetup.\"Non-Deductible VAT %\");\n end;\n \n+ [Test]\n+ procedure NonDeductibleVATShouldShowAsNonDeductibleOnDoingFullVAT()\n+ var\n+ GLAccount: Record \"G/L Account\";\n+ GenJournalLine: Record \"Gen. Journal Line\";\n+ VATEntry: Record \"VAT Entry\";\n+ VATPostingSetup: Record \"VAT Posting Setup\";\n+ NonDeductableVATAmount: Decimal;\n+ begin\n+ // [SCENARIO 537128] On posting Non-Deductible full VAT amount should be display in Non-Deductable VAT field of VAT Entry.\n+ Initialize();\n+\n+ // [GIVEN] Create Non-Deductible VAT Posting Setup with \"Non-Deductible VAT %\" = 100.\n+ LibraryNonDeductibleVAT.CreatVATPostingSetupAllowedForNonDeductibleVAT(VATPostingSetup, VATPostingSetup.\"VAT Calculation Type\"::\"Full VAT\", 100);\n+ VATPostingSetup.Validate(\"Purchase VAT Account\", LibraryERM.CreateGLAccountWithVATPostingSetup(VATPostingSetup, GLAccount.\"Gen. Posting Type\"::Purchase));\n+ VATPostingSetup.Validate(\"Non-Deductible VAT %\", 100);\n+ VATPostingSetup.Modify(true);\n+\n+ // [GIVEN] General Journal Line with Non-Deductible VAT Posting Setup and \"Account No\" = VATPostingSetup.\"Purchase VAT Account\".\n+ LibraryJournals.CreateGenJournalLineWithBatch(\n+ GenJournalLine, GenJournalLine.\"Document Type\"::\" \", GenJournalLine.\"Account Type\"::\"G/L Account\",\n+ VATPostingSetup.\"Purchase VAT Account\", LibraryRandom.RandDec(100, 2));\n+ GenJournalLine.Validate(\"Bal. Account No.\", LibraryERM.CreateGLAccountNo());\n+\n+ // [GIVEN] Validate VAT Bus. & Prod. Posting Group fields.\n+ GenJournalLine.Validate(\"VAT Bus. Posting Group\", VATPostingSetup.\"VAT Bus. Posting Group\");\n+ GenJournalLine.Validate(\"VAT Prod. Posting Group\", VATPostingSetup.\"VAT Prod. Posting Group\");\n+ GenJournalLine.Modify(true);\n+ NonDeductableVATAmount := GenJournalLine.Amount;\n+\n+ // [WHEN] Post the General Journal.\n+ LibraryERM.PostGeneralJnlLine(GenJournalLine);\n+\n+ // [THEN] Verify that \"Non-Deductible VAT Amount\" field must have the value in VAT Entry.\n+ FindVATEntryByVATPostingSetup(VATEntry, VATPostingSetup);\n+ Assert.AreEqual(NonDeductableVATAmount, VATEntry.\"Non-Deductible VAT Amount\", StrSubstNo(NonDeductiableVATAmountMustBeEqualErr, NonDeductableVATAmount));\n+ end;\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n@@ -244,6 +283,13 @@ codeunit 134288 \"Non-Deductible VAT Journal\"\n VATEntry.Testfield(\"Non-Deductible VAT Amount\", NDAmount);\n end;\n \n+ local procedure FindVATEntryByVATPostingSetup(var VATENtry: Record \"VAT Entry\"; VATPostingSetup: Record \"VAT Posting Setup\")\n+ begin\n+ VATEntry.SetRange(\"VAT Bus. Posting Group\", VATPostingSetup.\"VAT Bus. Posting Group\");\n+ VATEntry.SetRange(\"VAT Prod. Posting Group\", VATPostingSetup.\"VAT Prod. Posting Group\");\n+ VATEntry.FindLast();\n+ end;\n+\n [ConfirmHandler]\n [Scope('OnPrem')]\n procedure ConfirmHandler(Question: Text[1024]; var Reply: Boolean)\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\nindex 6bb15d7..0f7c62b 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n@@ -93,7 +93,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetNonDeductibleVATPct(NonDeductibleVATPct, VATPostingSetup, GeneralPostingType, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (VATPostingSetup.\"VAT Calculation Type\" in [VATPostingSetup.\"VAT Calculation Type\"::\"Normal VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (VATPostingSetup.\"VAT Calculation Type\" in [VATPostingSetup.\"VAT Calculation Type\"::\"Normal VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Reverse Charge VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if (VATPostingSetup.\"Allow Non-Deductible VAT\" = VATPostingSetup.\"Allow Non-Deductible VAT\"::\"Do not allow\") or (GeneralPostingType <> GeneralPostingType::Purchase) then\n exit(0);\n@@ -786,7 +786,8 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeCalcNonDedAmountsInGenJnlLine(GenJournalLine, Currency, IsHandled);\n if IsHandled then\n exit;\n- if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ // Full VAT amounts calculated but not assigned to non-deductible fields\n+ if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit;\n if not VATPostingSetup.Get(GenJournalLine.\"VAT Bus. Posting Group\", GenJournalLine.\"VAT Prod. Posting Group\") then\n exit;\n@@ -1210,7 +1211,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetNonDedVATPctForGenJnlLine(NonDeductibleVATPct, GenJournalLine, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if not VATPostingSetup.Get(GenJournalLine.\"VAT Bus. Posting Group\", GenJournalLine.\"VAT Prod. Posting Group\") then\n exit(0);\n"} +{"instance_id": "microsoftInternal__NAV-204450__cf-1", "base_instance_id": "microsoftInternal__NAV-204450", "variant_description": "Statistics VAT modification skipped when Non-Deductible VAT is 100 percent", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-204450__cf-1", "FAIL_TO_PASS": [{"codeunitID": 134287, "functionName": ["PurchaseInvoiceInCurrencyIsPostedWhenChangeVATAmountOnStatisticIfNDVATPctIs100"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/VAT/NonDeductibleVATStatistics.Codeunit.al b/App/Layers/W1/Tests/VAT/NonDeductibleVATStatistics.Codeunit.al\n--- a/App/Layers/W1/Tests/VAT/NonDeductibleVATStatistics.Codeunit.al\n+++ b/App/Layers/W1/Tests/VAT/NonDeductibleVATStatistics.Codeunit.al\n@@ -16,8 +16,11 @@ codeunit 134287 \"Non-Deductible VAT Statistics\"\n LibraryPurchase: Codeunit \"Library - Purchase\";\n LibraryInventory: Codeunit \"Library - Inventory\";\n LibraryRandom: Codeunit \"Library - Random\";\n+ LibraryUtility: Codeunit \"Library - Utility\";\n+ LibraryERM: Codeunit \"Library - ERM\";\n Assert: Codeunit Assert;\n isInitialized: Boolean;\n+ GLEntryConsistentErr: Label 'G/L Entry is inconsistent';\n \n [Test]\n [HandlerFunctions('PurchaseStatisticsChangeVATAmountModalPageHandler')]\n@@ -640,6 +643,60 @@ codeunit 134287 \"Non-Deductible VAT Statistics\"\n LibraryVariableStorage.AssertEmpty();\n end;\n \n+ [Test]\n+ [HandlerFunctions('PurchaseStatisticsChangeVATAmountModalPageHandler')]\n+ procedure PurchaseInvoiceInCurrencyIsPostedWhenChangeVATAmountOnStatisticIfNDVATPctIs100()\n+ var\n+ Currency: Record Currency;\n+ PurchaseHeader: Record \"Purchase Header\";\n+ PurchInvHeader: Record \"Purch. Inv. Header\";\n+ VATPostingSetup: Record \"VAT Posting Setup\";\n+ PurchaseInvoicePage: TestPage \"Purchase Invoice\";\n+ GenPostingType: Enum \"General Posting Type\";\n+ GLAccountNo: Code[20];\n+ ChangeVATAmount: Decimal;\n+ begin\n+ // [SCENARIO 560355] Purchase Invoice with currency code gets posted when Non-Deductible VAT is 100 Percent\n+ // And Non-Deductible VAT and the VAT Amount was previously modified in the Statistics.\n+ Initialize();\n+\n+ // [GIVEN] \"Allow VAT Difference\" is enabled in Purchases Setup.\n+ LibraryPurchase.SetAllowVATDifference(true);\n+\n+ // [GIVEN] Create Currency with Exchange Rate.\n+ CreateCurrencyWithExchangeRate(Currency);\n+\n+ // [GIVEN] Set \"Max. VAT Difference Allowed\" in Currency.\n+ SetMaxVATDifferenceAllowInCurrency(LibraryRandom.RandIntInRange(1000, 1000), Currency);\n+\n+ // [GIVEN] Generate VAT Amount to Change.\n+ ChangeVATAmount := LibraryRandom.RandIntInRange(150, 150);\n+\n+ // [GIVEN] Create Normal VAT Posting Setup with \"VAT %\" = 20 and Non-Deductible VAT %\" = 100.\n+ LibraryNonDeductibleVAT.CreateVATPostingSetupWithNonDeductibleDetail(VATPostingSetup, 20, 100);\n+\n+ // [GIVEN] Create a G/L Account.\n+ GLAccountNo := LibraryERM.CreateGLAccountWithVATPostingSetup(VATPostingSetup, GenPostingType::Purchase);\n+\n+ // [GIVEN] Create a Purchase Invoice.\n+ CreatePurchaseInvoiceWithCurrencyCode(PurchaseHeader, VATPostingSetup.\"VAT Bus. Posting Group\", Currency.Code, GLAccountNo);\n+ LibraryVariableStorage.Enqueue(0);\n+ LibraryVariableStorage.Enqueue(0);\n+\n+ // [GIVEN] Open Purchase Invoice page.\n+ PurchaseInvoicePage.OpenEdit();\n+ PurchaseInvoicePage.Filter.SetFilter(\"No.\", PurchaseHeader.\"No.\");\n+\n+ // [GIVEN] Open statistics of the invoice.\n+ PurchaseInvoicePage.Statistics.Invoke();\n+\n+ // [WHEN] Purchase Invoice is Posted.\n+ PurchInvHeader.Get(LibraryPurchase.PostPurchaseDocument(PurchaseHeader, true, true));\n+\n+ // [THEN] Verify G/L Entry is Consistent.\n+ VerifyGLEntryByDocumentNo(PurchInvHeader.\"No.\", 0);\n+ end;\n+\n local procedure SetAllowVATDifference(MaxVATDifference: Decimal)\n var\n PurchasesSetup: Record \"Purchases & Payables Setup\";\n@@ -672,6 +729,61 @@ codeunit 134287 \"Non-Deductible VAT Statistics\"\n GLEntry.TestField(Amount, ExpectedAmount);\n end;\n \n+ local procedure CreateCurrencyWithExchangeRate(var Currency: Record Currency)\n+ var\n+ CurrencyExchangeRate: Record \"Currency Exchange Rate\";\n+ begin\n+ Currency.Get(LibraryERM.CreateCurrencyWithGLAccountSetup());\n+\n+ LibraryERM.CreateExchRate(CurrencyExchangeRate, Currency.Code, WorkDate());\n+ CurrencyExchangeRate.Validate(\"Exchange Rate Amount\", LibraryRandom.RandInt(0));\n+ CurrencyExchangeRate.Validate(\"Adjustment Exch. Rate Amount\", LibraryRandom.RandInt(0));\n+ CurrencyExchangeRate.Validate(\"Relational Exch. Rate Amount\", LibraryRandom.RandDecInDecimalRange(0.6458, 0.6458, 4));\n+ CurrencyExchangeRate.Validate(\"Relational Adjmt Exch Rate Amt\", LibraryRandom.RandDecInDecimalRange(0.6458, 0.6458, 4));\n+ CurrencyExchangeRate.Modify(true);\n+ end;\n+\n+ local procedure SetMaxVATDifferenceAllowInCurrency(MaxVATDifference: Decimal; Currency: Record Currency)\n+ begin\n+ Currency.Validate(\"Max. VAT Difference Allowed\", MaxVATDifference);\n+ Currency.Modify(true);\n+ end;\n+\n+ local procedure CreatePurchaseInvoiceWithCurrencyCode(\n+ var PurchaseHeader: Record \"Purchase Header\";\n+ VATBusPostingGroup: Code[20];\n+ CurrencyCode: Code[20];\n+ GLAccountNo: Code[20])\n+ var\n+ PurchaseLine: Record \"Purchase Line\";\n+ begin\n+ LibraryPurchase.CreatePurchHeader(\n+ PurchaseHeader,\n+ PurchaseHeader.\"Document Type\"::Invoice,\n+ LibraryPurchase.CreateVendorWithVATBusPostingGroup(VATBusPostingGroup));\n+ PurchaseHeader.Validate(\"Vendor Invoice No.\", LibraryUtility.GenerateGUID());\n+ PurchaseHeader.Validate(\"Currency Code\", CurrencyCode);\n+ PurchaseHeader.Modify(true);\n+\n+ LibraryPurchase.CreatePurchaseLine(\n+ PurchaseLine,\n+ PurchaseHeader,\n+ PurchaseLine.Type::\"G/L Account\",\n+ GLAccountNo,\n+ LibraryRandom.RandInt(0));\n+ PurchaseLine.Validate(\"Direct Unit Cost\", LibraryRandom.RandIntInRange(1000, 1000));\n+ PurchaseLine.Modify(true);\n+ end;\n+\n+ local procedure VerifyGLEntryByDocumentNo(DocumentNo: Code[20]; ExpectedAmount: Decimal)\n+ var\n+ GLEntry: Record \"G/L Entry\";\n+ begin\n+ GLEntry.SetRange(\"Document No.\", DocumentNo);\n+ GLEntry.CalcSums(Amount);\n+ Assert.AreEqual(ExpectedAmount, GLEntry.Amount, GLEntryConsistentErr);\n+ end;\n+\n [ModalPageHandler]\n procedure PurchaseStatisticsChangeVATAmountModalPageHandler(var PurchaseStatisticsPage: TestPage \"Purchase Statistics\")\n var\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n@@ -648,7 +648,9 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n \n if PurchaseLine.\"Non-Deductible VAT %\" = 100 then begin\n PurchaseLine.\"Non-Deductible VAT Base\" := PurchaseLine.\"VAT Base Amount\";\n- PurchaseLine.\"Non-Deductible VAT Amount\" := PurchaseLine.\"Amount Including VAT\" - PurchaseLine.\"VAT Base Amount\" - PurchaseLine.\"VAT Difference\";\n+ if PurchaseLine.\"VAT Difference\" <> 0 then\n+ exit;\n+ PurchaseLine.\"Non-Deductible VAT Amount\" := PurchaseLine.\"Amount Including VAT\" - PurchaseLine.\"VAT Base Amount\";\n exit;\n end;\n PurchaseLine.\"Non-Deductible VAT Base\" :=\n"} +{"instance_id": "microsoftInternal__NAV-205825__cf-1", "base_instance_id": "microsoftInternal__NAV-205825", "variant_description": "VAT Country/Region Code assigned directly without validation does not propagate VAT setup", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-205825__cf-2", "FAIL_TO_PASS": [{"codeunitID": 134237, "functionName": ["ShipToCodeConnectionAltCustVATSetupOfBillToCustomer"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/VAT/AltCustVATDocTests.Codeunit.al b/App/Layers/W1/Tests/VAT/AltCustVATDocTests.Codeunit.al\nindex 1b415a0..f475605 100644\n--- a/App/Layers/W1/Tests/VAT/AltCustVATDocTests.Codeunit.al\n+++ b/App/Layers/W1/Tests/VAT/AltCustVATDocTests.Codeunit.al\n@@ -731,6 +731,43 @@ codeunit 134237 \"Alt. Cust. VAT. Doc. Tests\"\n LibraryLowerPermissions.SetOutsideO365Scope();\n end;\n \n+ [Test]\n+ [HandlerFunctions('ConfirmHandler,MessageHandler,NoNotificationOtherThanShipToAddressSendNotificationHandler')]\n+ procedure ShipToCodeConnectionAltCustVATSetupOfBillToCustomer()\n+ var\n+ ShipToAddress: Record \"Ship-to Address\";\n+ AltCustVATReg: Record \"Alt. Cust. VAT Reg.\";\n+ SalesHeader: Record \"Sales Header\";\n+ Customer, BillToCustomer : Record Customer;\n+ begin\n+ // [SCENARIO 563939] VAT setup is correctly applied when Ship-To has Alt. Cust. VAT Reg. for Bill-To Customer\n+\n+ Initialize();\n+ // [GIVEN] Sell-To Customer with country X\n+ LibrarySales.CreateCustomerWithCountryCodeAndVATRegNo(Customer);\n+ // [GIVEN] Bill-To Customer with country Z\n+ LibrarySales.CreateCustomerWithCountryCodeAndVATRegNo(BillToCustomer);\n+ // [GIVEN] Ship-To Address with country Y\n+ LibrarySales.CreateShipToAddressWithRandomCountryCode(ShipToAddress, Customer.\"No.\");\n+ // [GIVEN] Bill-To Customer and Ship-To Code assigned to Sell-To Customer\n+ Customer.Validate(\"Bill-to Customer No.\", BillToCustomer.\"No.\");\n+ Customer.Validate(\"Ship-to Code\", ShipToAddress.Code);\n+ Customer.Modify(true);\n+ LibraryLowerPermissions.SetO365Setup();\n+ LibraryLowerPermissions.AddSalesDocsCreate();\n+ // [GIVEN] Alternative Customer VAT Reg. for Bill-To Customer with Ship-To country Y\n+ LibraryAltCustVATReg.CreateAlternativeCustVATReg(AltCustVATReg, BillToCustomer.\"No.\", ShipToAddress.\"Country/Region Code\");\n+ // [WHEN] Create sales order for Sell-To Customer\n+ LibrarySales.CreateSalesHeader(SalesHeader, SalesHeader.\"Document Type\"::Order, Customer.\"No.\");\n+ // [THEN] VAT Country/Region Code is from Alt. Cust. VAT Reg. (Ship-To country)\n+ VerifyVATRegDataInSalesHeader(SalesHeader, AltCustVATReg.\"VAT Bus. Posting Group\", AltCustVATReg.\"Gen. Bus. Posting Group\", AltCustVATReg.\"VAT Registration No.\", AltCustVATReg.\"VAT Country/Region Code\");\n+ // [THEN] Sales order has Alt. VAT Registration options\n+ LibraryAltCustVATReg.VerifySalesDocAltVATReg(SalesHeader, true);\n+ LibraryVariableStorage.AssertEmpty();\n+\n+ LibraryLowerPermissions.SetOutsideO365Scope();\n+ end;\n+\n local procedure Initialize()\n begin\n LibrarySetupStorage.Restore();\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\nindex da15d9e..37d3109 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\n@@ -124,6 +124,7 @@ codeunit 205 \"Alt. Cust. VAT Reg. Doc. Impl.\" implements \"Alt. Cust. VAT Reg. Do\n procedure UpdateSetupOnBillToCustomerChangeInSalesHeader(var SalesHeader: Record \"Sales Header\"; xSalesHeader: Record \"Sales Header\"; BillToCustomer: Record Customer)\n var\n GLSetup: Record \"General Ledger Setup\";\n+ AltCustVATReg: Record \"Alt. Cust. VAT Reg.\";\n begin\n GLSetup.Get();\n if GLSetup.\"Bill-to/Sell-to VAT Calc.\" <> GLSetup.\"Bill-to/Sell-to VAT Calc.\"::\"Bill-to/Pay-to No.\" then\n@@ -135,6 +136,13 @@ codeunit 205 \"Alt. Cust. VAT Reg. Doc. Impl.\" implements \"Alt. Cust. VAT Reg. Do\n CopyFromCustomer(SalesHeader, xSalesHeader, BillToCustomer);\n exit;\n end;\n+ if AltCustVATRegFacade.GetAlternativeCustVATReg(AltCustVATReg, BillToCustomer.\"No.\", SalesHeader.\"Ship-to Country/Region Code\") then begin\n+ SalesHeader.Validate(\"VAT Country/Region Code\", AltCustVATReg.\"VAT Country/Region Code\");\n+ SalesHeader.\"VAT Bus. Posting Group\" := AltCustVATReg.\"VAT Bus. Posting Group\";\n+ SalesHeader.\"Gen. Bus. Posting Group\" := AltCustVATReg.\"Gen. Bus. Posting Group\";\n+ SalesHeader.\"VAT Registration No.\" := AltCustVATReg.\"VAT Registration No.\";\n+ exit;\n+ end;\n if (SalesHeader.\"VAT Bus. Posting Group\" <> '') and (SalesHeader.\"VAT Bus. Posting Group\" <> BillToCustomer.\"VAT Bus. Posting Group\") then\n SalesHeader.Validate(\"VAT Bus. Posting Group\", BillToCustomer.\"VAT Bus. Posting Group\")\n else\n", "cf_variant_description": "VAT Country/Region Code and related fields assigned directly without validation does not propagate VAT setup"} +{"instance_id": "microsoftInternal__NAV-205825__cf-2", "base_instance_id": "microsoftInternal__NAV-205825", "variant_description": "Alternative VAT registration from Bill-To Customer applied only when Ship-to Country/Region Code is defined", "failure_layer": null, "FAIL_TO_PASS": [{"codeunitID": 134237, "functionName": ["ShipToCodeConnectionAltCustVATSetupOfBillToCustomer"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/VAT/AltCustVATDocTests.Codeunit.al b/App/Layers/W1/Tests/VAT/AltCustVATDocTests.Codeunit.al\nindex 1b415a0..1aadea8 100644\n--- a/App/Layers/W1/Tests/VAT/AltCustVATDocTests.Codeunit.al\n+++ b/App/Layers/W1/Tests/VAT/AltCustVATDocTests.Codeunit.al\n@@ -731,6 +731,43 @@ codeunit 134237 \"Alt. Cust. VAT. Doc. Tests\"\n LibraryLowerPermissions.SetOutsideO365Scope();\n end;\n \n+ [Test]\n+ [HandlerFunctions('ConfirmHandler,MessageHandler,NoNotificationOtherThanShipToAddressSendNotificationHandler')]\n+ procedure ShipToCodeConnectionAltCustVATSetupOfBillToCustomer()\n+ var\n+ ShipToAddress: Record \"Ship-to Address\";\n+ AltCustVATReg: Record \"Alt. Cust. VAT Reg.\";\n+ SalesHeader: Record \"Sales Header\";\n+ Customer, BillToCustomer : Record Customer;\n+ begin\n+ // [SCENARIO 563939] Alternative VAT registration is applied from Bill-To Customer when Ship-to address has a defined country code\n+\n+ Initialize();\n+ // [GIVEN] Sell-To Customer with country \"X\"\n+ LibrarySales.CreateCustomerWithCountryCodeAndVATRegNo(Customer);\n+ // [GIVEN] Bill-To Customer with country \"Z\"\n+ LibrarySales.CreateCustomerWithCountryCodeAndVATRegNo(BillToCustomer);\n+ // [GIVEN] Ship-To Address with country \"Y\"\n+ LibrarySales.CreateShipToAddressWithRandomCountryCode(ShipToAddress, Customer.\"No.\");\n+ // [GIVEN] Bill-To Customer and Ship-To Code are assigned to the Sell-To Customer\n+ Customer.Validate(\"Bill-to Customer No.\", BillToCustomer.\"No.\");\n+ Customer.Validate(\"Ship-to Code\", ShipToAddress.Code);\n+ Customer.Modify(true);\n+ LibraryLowerPermissions.SetO365Setup();\n+ LibraryLowerPermissions.AddSalesDocsCreate();\n+ // [GIVEN] Alternative Customer VAT Reg. for Bill-To Customer with country \"Y\"\n+ LibraryAltCustVATReg.CreateAlternativeCustVATReg(AltCustVATReg, BillToCustomer.\"No.\", ShipToAddress.\"Country/Region Code\");\n+ // [WHEN] Create sales order for Sell-To Customer (Bill-To Customer and Ship-To Code are taken from the card)\n+ LibrarySales.CreateSalesHeader(SalesHeader, SalesHeader.\"Document Type\"::Order, Customer.\"No.\");\n+ // [THEN] Sales order has VAT data from Alternative Customer VAT Registration\n+ VerifyVATRegDataInSalesHeader(SalesHeader, AltCustVATReg.\"VAT Bus. Posting Group\", AltCustVATReg.\"Gen. Bus. Posting Group\", AltCustVATReg.\"VAT Registration No.\", AltCustVATReg.\"VAT Country/Region Code\");\n+ // [THEN] Sales order has Alt. VAT Registration options\n+ LibraryAltCustVATReg.VerifySalesDocAltVATReg(SalesHeader, true);\n+ LibraryVariableStorage.AssertEmpty();\n+\n+ LibraryLowerPermissions.SetOutsideO365Scope();\n+ end;\n+\n local procedure Initialize()\n begin\n LibrarySetupStorage.Restore();\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\nindex da15d9e..ae2683a 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\n@@ -124,6 +124,7 @@ codeunit 205 \"Alt. Cust. VAT Reg. Doc. Impl.\" implements \"Alt. Cust. VAT Reg. Do\n procedure UpdateSetupOnBillToCustomerChangeInSalesHeader(var SalesHeader: Record \"Sales Header\"; xSalesHeader: Record \"Sales Header\"; BillToCustomer: Record Customer)\n var\n GLSetup: Record \"General Ledger Setup\";\n+ AltCustVATReg: Record \"Alt. Cust. VAT Reg.\";\n begin\n GLSetup.Get();\n if GLSetup.\"Bill-to/Sell-to VAT Calc.\" <> GLSetup.\"Bill-to/Sell-to VAT Calc.\"::\"Bill-to/Pay-to No.\" then\n@@ -135,6 +136,11 @@ codeunit 205 \"Alt. Cust. VAT Reg. Doc. Impl.\" implements \"Alt. Cust. VAT Reg. Do\n CopyFromCustomer(SalesHeader, xSalesHeader, BillToCustomer);\n exit;\n end;\n+ if (SalesHeader.\"Ship-to Country/Region Code\" <> '') and\n+ AltCustVATRegFacade.GetAlternativeCustVATReg(AltCustVATReg, BillToCustomer.\"No.\", SalesHeader.\"Ship-to Country/Region Code\") then begin\n+ SalesHeader.Validate(\"VAT Country/Region Code\", AltCustVATReg.\"VAT Country/Region Code\");\n+ exit;\n+ end;\n if (SalesHeader.\"VAT Bus. Posting Group\" <> '') and (SalesHeader.\"VAT Bus. Posting Group\" <> BillToCustomer.\"VAT Bus. Posting Group\") then\n SalesHeader.Validate(\"VAT Bus. Posting Group\", BillToCustomer.\"VAT Bus. Posting Group\")\n else\n"} +{"instance_id": "microsoftInternal__NAV-206527__cf-1", "base_instance_id": "microsoftInternal__NAV-206527", "variant_description": "BOM Quantity Per = 0.005 (below rounding precision); must not round to zero", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-206527__cf-1", "FAIL_TO_PASS": [{"codeunitID": 137088, "functionName": ["ReleasedProdOrderQuantityPerandExpectedQtyRoundingPrecisionChecking"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM/SCMOrderPlanningIII.Codeunit.al b/App/Layers/W1/Tests/SCM/SCMOrderPlanningIII.Codeunit.al\nindex 7415eaa53cc..cf00000001 100644\n--- a/App/Layers/W1/Tests/SCM/SCMOrderPlanningIII.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM/SCMOrderPlanningIII.Codeunit.al\n@@ -45,6 +45,8 @@ codeunit 137088 \"SCM Order Planning - III\"\n LineExistErr: Label 'Requistion line in %1 worksheet should exist for item %2';\n PurchaseLineQuantityBaseErr: Label '%1.%2 must be nearly equal to %3.', Comment = '%1 : Purchase Line, %2 : Quantity (Base), %3 : Value.';\n BOMFixedQtyCalcFormulaErr: Label 'BOM Fixed Quantity Calculation Formula should be used to calculate the values.';\n+ RelesedProdOrderComponentQtyPerRoundingErr: Label 'Relesed Production Order Item Component Quantity per %1 Not Match With Expected Result %2';\n+ RelesedProdOrderComponentExpQtyRoundingErr: Label 'Relesed Production Order Item Component Expected Quantity %1 Not Match With Expected Result %2';\n \n [Test]\n [HandlerFunctions('MakeSupplyOrdersPageHandler')]\n@@ -2988,6 +2990,73 @@ codeunit 137088 \"SCM Order Planning - III\"\n VerifyStartingTimeOnFirmPlannedProductionOrder(StartingTime, ChildItem.\"No.\", ProductionOrderNo);\n end;\n \n+ [Test]\n+ [HandlerFunctions('ModalPageHandler,ErrorMessageHandler')]\n+ procedure ReleasedProdOrderQuantityPerandExpectedQtyRoundingPrecisionChecking()\n+ var\n+ BaseItemUnitOfMeasure: Record \"Item Unit of Measure\";\n+ ComponentItem: Record Item;\n+ ProdOrderComp: Record \"Prod. Order Component\";\n+ ProdOrderLine: Record \"Prod. Order Line\";\n+ ProductionBOMHeader: Record \"Production BOM Header\";\n+ ProductionBOMLine: Record \"Production BOM Line\";\n+ ProductionOrder: Record \"Production Order\";\n+ ProductItem: Record Item;\n+ SalesHeader: Record \"Sales Header\";\n+ ExpectedQty: Decimal;\n+ RelesedProdOrderNo: Code[20];\n+ Status: Enum \"Production Order Status\";\n+ begin\n+ // [SCENARIO 562766] If a component's Item UOM has a 'Quantity Rounding Precision' of 1, & a Finished Good consumes partial quantity,\n+ // the Prod. Order created from the Planning of a Sales Order pulls in the Component with a 'Qty. Per' and 'Exp. Qty.' of 0.\n+ Initialize();\n+\n+ // [GIVEN] Created Component Item\n+ LibraryInventory.CreateItem(ComponentItem);\n+ ComponentItem.Validate(\"Replenishment System\", ComponentItem.\"Replenishment System\"::Purchase);\n+ ComponentItem.Validate(\"Rounding Precision\", LibraryRandom.RandPrecision());\n+ ComponentItem.Validate(\"Reordering Policy\", ComponentItem.\"Reordering Policy\"::\"Lot-for-Lot\");\n+ ComponentItem.Validate(\"Include Inventory\", true);\n+ ComponentItem.Modify(true);\n+\n+ // [GIVEN] Set Qty. Rounding Precision = 1 for Component Item\n+ BaseItemUnitOfMeasure.Get(ComponentItem.\"No.\", ComponentItem.\"Base Unit of Measure\");\n+ BaseItemUnitOfMeasure.Validate(\"Qty. Rounding Precision\", 1);\n+ BaseItemUnitOfMeasure.Modify();\n+\n+ // [GIVEN] Created Production Bom using Component Item with Quantity Per = 0.005\n+ LibraryManufacturing.CreateProductionBOMHeader(ProductionBOMHeader, ComponentItem.\"Base Unit of Measure\");\n+ LibraryManufacturing.CreateProductionBOMLine(ProductionBOMHeader, ProductionBOMLine, '', ProductionBOMLine.Type::Item, ComponentItem.\"No.\", 0.005);\n+ ProductionBOMHeader.Validate(Status, ProductionBOMHeader.Status::Certified);\n+ ProductionBOMHeader.Modify();\n+\n+ // [GIVEN] Created Master Item and Production Bom Assigned to Master Item\n+ LibraryInventory.CreateItem(ProductItem);\n+ ProductItem.Validate(\"Replenishment System\", ProductItem.\"Replenishment System\"::\"Prod. Order\");\n+ ProductItem.Validate(\"Rounding Precision\", 1);\n+ ProductItem.Validate(\"Reordering Policy\", ProductItem.\"Reordering Policy\"::Order);\n+ ProductItem.Validate(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n+ ProductItem.Modify(true);\n+\n+ // [GIVEN] Created Sales Order Using Master Item Quantity - 1\n+ CreateSalesOrder(SalesHeader, ProductItem.\"No.\", '', 1, 1);\n+\n+ // [WHEN] Created Released Prod. Order From Sales Order Using Planning\n+ LibraryPlanning.CreateProdOrderUsingPlanning(ProductionOrder, Status::\"Firm Planned\", SalesHeader.\"No.\", ProductItem.\"No.\");\n+ RelesedProdOrderNo := LibraryManufacturing.ChangeStatusFirmPlanToReleased(ProductionOrder.\"No.\");\n+\n+ // [WHEN] Find Released Production Order Component\n+ FindProdOrderLine(ProdOrderLine, RelesedProdOrderNo);\n+ FindProdOrderComponent(ProdOrderComp, ProdOrderLine.\"Prod. Order No.\", ComponentItem.\"No.\");\n+\n+ // [WHEN] Getting Expected result using Component Rounding Precision\n+ ExpectedQty := Round(ProductionBOMLine.\"Quantity per\" * BaseItemUnitOfMeasure.\"Qty. Rounding Precision\" / BaseItemUnitOfMeasure.\"Qty. Rounding Precision\", ComponentItem.\"Rounding Precision\");\n+\n+ // [THEN] Expected Quantity must be Equal to Production Order Component \"Quantity per\" And \"Expected Quantity\"\n+ Assert.AreEqual(ExpectedQty, ProdOrderComp.\"Quantity per\", StrSubstNo(RelesedProdOrderComponentQtyPerRoundingErr, ProdOrderComp.\"Quantity per\", ExpectedQty));\n+ Assert.AreEqual(ExpectedQty, ProdOrderComp.\"Expected Quantity\", StrSubstNo(RelesedProdOrderComponentExpQtyRoundingErr, ProdOrderComp.\"Expected Quantity\", ExpectedQty));\n+ end;\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n@@ -3805,6 +3874,14 @@ codeunit 137088 \"SCM Order Planning - III\"\n Assert.IsTrue(ProductionOrder.\"Starting Time\" = StartingTime, '');\n end;\n \n+ local procedure FindProdOrderLine(var ProdOrderLine: Record \"Prod. Order Line\"; ProductionOrderNo: Code[20])\n+ begin\n+ ProdOrderLine.Reset();\n+ ProdOrderLine.SetRange(Status, ProdOrderLine.Status::Released);\n+ ProdOrderLine.SetRange(\"Prod. Order No.\", ProductionOrderNo);\n+ ProdOrderLine.FindFirst();\n+ end;\n+\n [ModalPageHandler]\n [Scope('OnPrem')]\n procedure MakeSupplyOrdersPageHandler(var MakeSupplyOrders: Page \"Make Supply Orders\"; var Response: Action)\n@@ -3911,4 +3988,15 @@ codeunit 137088 \"SCM Order Planning - III\"\n begin\n Reply := true;\n end;\n+\n+ [ModalPageHandler]\n+ procedure ModalPageHandler(var CreateOrderFromSales: Page \"Create Order From Sales\"; var Response: Action)\n+ begin\n+ Response := Action::Yes;\n+ end;\n+\n+ [MessageHandler]\n+ procedure ErrorMessageHandler(Message: Text[1024])\n+ begin\n+ end;\n }\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\nindex 36930a9e2aaa..cf00000001 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n@@ -43,6 +43,7 @@ codeunit 99000773 \"Calculate Prod. Order\"\n ProdOrderComp: Record \"Prod. Order Component\";\n ProdOrderRoutingLine2: Record \"Prod. Order Routing Line\";\n ProdBOMLine: array[99] of Record \"Production BOM Line\";\n+ ProdLineItem: Record Item;\n UOMMgt: Codeunit \"Unit of Measure Management\";\n MfgCostCalcMgt: Codeunit \"Mfg. Cost Calculation Mgt.\";\n VersionMgt: Codeunit VersionManagement;\n@@ -260,8 +261,8 @@ codeunit 99000773 \"Calculate Prod. Order\"\n \n local procedure TransferBOMProcessItem(Level: Integer; LineQtyPerUOM: Decimal; ItemQtyPerUOM: Decimal; var ErrorOccured: Boolean)\n var\n- Item2: Record Item;\n ComponentSKU: Record \"Stockkeeping Unit\";\n+ Item2: Record Item;\n IsHandled: Boolean;\n QtyRoundPrecision: Decimal;\n begin\n@@ -297,6 +298,7 @@ codeunit 99000773 \"Calculate Prod. Order\"\n ProdOrderComp.Validate(\"Unit of Measure Code\", ProdBOMLine[Level].\"Unit of Measure Code\");\n if (ProdOrderComp.\"Item No.\" <> '') and Item2.Get(ProdOrderComp.\"Item No.\") then\n QtyRoundPrecision := UOMMgt.GetQtyRoundingPrecision(Item2, ProdBOMLine[Level].\"Unit of Measure Code\");\n+ CheckingRoundingPrecision(Item2, ProdLineItem, QtyRoundPrecision, Level);\n if QtyRoundPrecision <> 0 then\n ProdOrderComp.\"Quantity per\" := Round(ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM, QtyRoundPrecision)\n else\n@@ -975,6 +977,24 @@ codeunit 99000773 \"Calculate Prod. Order\"\n ProdOrderLineToCheck.TestField(Quantity);\n end;\n \n+ local procedure CheckingRoundingPrecision(ChildItem: Record Item; ProdLineItem: Record Item; var QtyRoundPrecision: Decimal; Level: Integer)\n+ var\n+ RoundedQty: Decimal;\n+ begin\n+ if (ChildItem.\"Rounding Precision\" = 0) or (QtyRoundPrecision = 0) then\n+ exit;\n+\n+ if (not ProdLineItem.Get(ProdOrderLine.\"Item No.\")) or (ProdLineItem.\"Replenishment System\" <> ProdLineItem.\"Replenishment System\"::\"Prod. Order\") then\n+ exit;\n+\n+ if (ChildItem.\"Base Unit of Measure\" <> ProdBOMLine[Level].\"Unit of Measure Code\") then\n+ exit;\n+\n+ QtyRoundPrecision := ChildItem.\"Rounding Precision\";\n+ ProdOrderComp.\"Qty. Rounding Precision\" := ChildItem.\"Rounding Precision\";\n+ ProdOrderComp.\"Qty. Rounding Precision (Base)\" := ChildItem.\"Rounding Precision\";\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnAfterInsertProdRoutingLine(var ProdOrderRoutingLine: Record \"Prod. Order Routing Line\"; ProdOrderLine: Record \"Prod. Order Line\")\n begin\n"} +{"instance_id": "microsoftInternal__NAV-206977__cf-1", "base_instance_id": "microsoftInternal__NAV-206977", "variant_description": "Handle assembly document routing at the page level instead of the table level", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-206977__cf-1", "FAIL_TO_PASS": [{"codeunitID": 137096, "functionName": ["ShowDocumentOnAssemblyLinesForBlanketOrderPageShouldOpenCorrectPage"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM-Assembly/SCMKittingATO.Codeunit.al b/App/Layers/W1/Tests/SCM-Assembly/SCMKittingATO.Codeunit.al\nindex 7629f2ebe001..3e0eab3eb6a9 100644\n--- a/App/Layers/W1/Tests/SCM-Assembly/SCMKittingATO.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM-Assembly/SCMKittingATO.Codeunit.al\n@@ -5510,6 +5510,54 @@ codeunit 137096 \"SCM Kitting - ATO\"\n Assert.IsTrue(AssembleToOrderLink.IsEmpty(), ATOLinkShouldNotBeFoundErr);\n end;\n \n+ [Test]\n+ [HandlerFunctions('MsgHandler')]\n+ procedure ShowDocumentOnAssemblyLinesForBlanketOrderPageShouldOpenCorrectPage()\n+ var\n+ AssembleToOrderLink: Record \"Assemble-to-Order Link\";\n+ AssemblyHeader: Record \"Assembly Header\";\n+ AssemblyLine: Record \"Assembly Line\";\n+ Item: Record Item;\n+ SalesHeader: Record \"Sales Header\";\n+ SalesLine: Record \"Sales Line\";\n+ AssemblyLines: TestPage \"Assembly Lines\";\n+ BlanketAssemblyOrder: TestPage \"Blanket Assembly Order\";\n+ begin\n+ // [SCENARIO 564531] Show document in Assembly order line page opens the wrong page when the Assembly order line belongs a blanket assembly order.\n+ Initialize();\n+\n+ // [GIVEN] Assembled item \"I\".\n+ CreateAssembledItem(Item, \"Assembly Policy\"::\"Assemble-to-Order\", 2, 0, 0, 1, Item.\"Costing Method\"::FIFO);\n+\n+ // [GIVEN] Create sales blanket order with item \"I\", set \"Qty. to Assemble to Order\" = \"Quantity\".\n+ // [GIVEN] A linked assembly blanket order is created in the background.\n+ LibrarySales.CreateSalesDocumentWithItem(\n+ SalesHeader, SalesLine, SalesHeader.\"Document Type\"::\"Blanket Order\",\n+ '', Item.\"No.\", LibraryRandom.RandInt(10), '', WorkDate());\n+ SetQtyToAssembleToOrder(SalesLine, SalesLine.Quantity);\n+\n+ // [GIVEN] Clear \"Qty. to Assemble to Order\".\n+ // [GIVEN] That deletes the assembly blanket order together the Assemble-to-Order link.\n+ SetQtyToAssembleToOrder(SalesLine, 0);\n+ Assert.IsFalse(AssembleToOrderLink.AsmExistsForSalesLine(SalesLine), '');\n+\n+ // [WHEN] Set \"Qty. to Assemble to Order\" back to \"Quantity\".\n+ SetQtyToAssembleToOrder(SalesLine, SalesLine.Quantity);\n+\n+ // [THEN] A new linked assembly blanket order is created.\n+ FindLinkedAssemblyOrder(AssemblyHeader, SalesHeader.\"Document Type\", SalesHeader.\"No.\");\n+ FindAssemblyLine(AssemblyHeader, AssemblyLine);\n+\n+ // [WHEN] Open Assembly Lines Page and invoke show document action\n+ AssemblyLines.OpenEdit();\n+ BlanketAssemblyOrder.Trap();\n+ AssemblyLines.GoToRecord(AssemblyLine);\n+ AssemblyLines.\"Show Document\".Invoke();\n+\n+ // [THEN] Verify Blanket Assembly Order Page opened\n+ BlanketAssemblyOrder.\"No.\".AssertEquals(AssemblyHeader.\"No.\");\n+ end;\n+\n local procedure VerifyAssembleToOrderLinesPageOpened(SalesHeader: Record \"Sales Header\"; QtyAssembleToOrder: Decimal)\n var\n SalesQuote: TestPage \"Sales Quote\";\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\r\n--- a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\r\n+++ b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\r\n@@ -157,11 +157,16 @@ page 903 \"Assembly Lines\"\r\n ToolTip = 'Open the document that the information on the line comes from.';\r\n \r\n trigger OnAction()\r\n var\r\n AssemblyHeader: Record \"Assembly Header\";\r\n begin\r\n AssemblyHeader.Get(Rec.\"Document Type\", Rec.\"Document No.\");\r\n- PAGE.Run(PAGE::\"Assembly Order\", AssemblyHeader);\r\n+ case AssemblyHeader.\"Document Type\" of\r\n+ AssemblyHeader.\"Document Type\"::\"Blanket Order\":\r\n+ PAGE.Run(PAGE::\"Blanket Assembly Order\", AssemblyHeader);\r\n+ else\r\n+ PAGE.Run(PAGE::\"Assembly Order\", AssemblyHeader);\r\n+ end;\r\n end;\r\n }\r\n action(\"Reservation Entries\")\n"} +{"instance_id": "microsoftInternal__NAV-206977__cf-2", "base_instance_id": "microsoftInternal__NAV-206977", "variant_description": "Add fallback to Assembly Order for unhandled document types", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-206977__cf-2", "FAIL_TO_PASS": [{"codeunitID": 137096, "functionName": ["ShowDocumentOnAssemblyLinesForBlanketOrderPageShouldOpenCorrectPage"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM-Assembly/SCMKittingATO.Codeunit.al b/App/Layers/W1/Tests/SCM-Assembly/SCMKittingATO.Codeunit.al\nindex 7629f2ebe001..3e0eab3eb6a9 100644\n--- a/App/Layers/W1/Tests/SCM-Assembly/SCMKittingATO.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM-Assembly/SCMKittingATO.Codeunit.al\n@@ -5510,6 +5510,54 @@ codeunit 137096 \"SCM Kitting - ATO\"\n Assert.IsTrue(AssembleToOrderLink.IsEmpty(), ATOLinkShouldNotBeFoundErr);\n end;\n \n+ [Test]\n+ [HandlerFunctions('MsgHandler')]\n+ procedure ShowDocumentOnAssemblyLinesForBlanketOrderPageShouldOpenCorrectPage()\n+ var\n+ AssembleToOrderLink: Record \"Assemble-to-Order Link\";\n+ AssemblyHeader: Record \"Assembly Header\";\n+ AssemblyLine: Record \"Assembly Line\";\n+ Item: Record Item;\n+ SalesHeader: Record \"Sales Header\";\n+ SalesLine: Record \"Sales Line\";\n+ AssemblyLines: TestPage \"Assembly Lines\";\n+ BlanketAssemblyOrder: TestPage \"Blanket Assembly Order\";\n+ begin\n+ // [SCENARIO 564531] Show document in Assembly order line page opens the wrong page when the Assembly order line belongs a blanket assembly order.\n+ Initialize();\n+\n+ // [GIVEN] Assembled item \"I\".\n+ CreateAssembledItem(Item, \"Assembly Policy\"::\"Assemble-to-Order\", 2, 0, 0, 1, Item.\"Costing Method\"::FIFO);\n+\n+ // [GIVEN] Create sales blanket order with item \"I\", set \"Qty. to Assemble to Order\" = \"Quantity\".\n+ // [GIVEN] A linked assembly blanket order is created in the background.\n+ LibrarySales.CreateSalesDocumentWithItem(\n+ SalesHeader, SalesLine, SalesHeader.\"Document Type\"::\"Blanket Order\",\n+ '', Item.\"No.\", LibraryRandom.RandInt(10), '', WorkDate());\n+ SetQtyToAssembleToOrder(SalesLine, SalesLine.Quantity);\n+\n+ // [GIVEN] Clear \"Qty. to Assemble to Order\".\n+ // [GIVEN] That deletes the assembly blanket order together the Assemble-to-Order link.\n+ SetQtyToAssembleToOrder(SalesLine, 0);\n+ Assert.IsFalse(AssembleToOrderLink.AsmExistsForSalesLine(SalesLine), '');\n+\n+ // [WHEN] Set \"Qty. to Assemble to Order\" back to \"Quantity\".\n+ SetQtyToAssembleToOrder(SalesLine, SalesLine.Quantity);\n+\n+ // [THEN] A new linked assembly blanket order is created.\n+ FindLinkedAssemblyOrder(AssemblyHeader, SalesHeader.\"Document Type\", SalesHeader.\"No.\");\n+ FindAssemblyLine(AssemblyHeader, AssemblyLine);\n+\n+ // [WHEN] Open Assembly Lines Page and invoke show document action\n+ AssemblyLines.OpenEdit();\n+ BlanketAssemblyOrder.Trap();\n+ AssemblyLines.GoToRecord(AssemblyLine);\n+ AssemblyLines.\"Show Document\".Invoke();\n+\n+ // [THEN] Verify Blanket Assembly Order Page opened\n+ BlanketAssemblyOrder.\"No.\".AssertEquals(AssemblyHeader.\"No.\");\n+ end;\n+\n local procedure VerifyAssembleToOrderLinesPageOpened(SalesHeader: Record \"Sales Header\"; QtyAssembleToOrder: Decimal)\n var\n SalesQuote: TestPage \"Sales Quote\";\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLine.Table.al b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLine.Table.al\r\n--- a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLine.Table.al\r\n+++ b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLine.Table.al\r\n@@ -2060,6 +2060,23 @@ table 901 \"Assembly Line\"\r\n end;\r\n end;\r\n \r\n+ internal procedure ShowAssemblyDocument()\r\n+ var\r\n+ AssemblyHeader: Record \"Assembly Header\";\r\n+ begin\r\n+ AssemblyHeader.Get(Rec.\"Document Type\", Rec.\"Document No.\");\r\n+ case AssemblyHeader.\"Document Type\" of\r\n+ AssemblyHeader.\"Document Type\"::Quote:\r\n+ Page.Run(Page::\"Assembly Quote\", AssemblyHeader);\r\n+ AssemblyHeader.\"Document Type\"::Order:\r\n+ Page.Run(Page::\"Assembly Order\", AssemblyHeader);\r\n+ AssemblyHeader.\"Document Type\"::\"Blanket Order\":\r\n+ Page.Run(Page::\"Blanket Assembly Order\", AssemblyHeader);\r\n+ else\r\n+ Page.Run(Page::\"Assembly Order\", AssemblyHeader);\r\n+ end;\r\n+ end;\r\n+\r\n procedure SuspendDeletionCheck(Suspend: Boolean)\r\n begin\r\n CalledFromHeader := Suspend;\ndiff --git a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\r\nindex 0877c357bc37..9c9e4b15045c 100644\r\n--- a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\r\n+++ b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\r\n@@ -157,11 +157,8 @@ page 903 \"Assembly Lines\"\r\n ToolTip = 'Open the document that the information on the line comes from.';\r\n \r\n trigger OnAction()\r\n- var\r\n- AssemblyHeader: Record \"Assembly Header\";\r\n begin\r\n- AssemblyHeader.Get(Rec.\"Document Type\", Rec.\"Document No.\");\r\n- PAGE.Run(PAGE::\"Assembly Order\", AssemblyHeader);\r\n+ Rec.ShowAssemblyDocument();\r\n end;\r\n }\r\n action(\"Reservation Entries\")\n"} +{"instance_id": "microsoftInternal__NAV-206977__cf-3", "base_instance_id": "microsoftInternal__NAV-206977", "variant_description": "Fallback to Assembly Order when Blanket Assembly Order page is unavailable", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-206977__cf-3", "FAIL_TO_PASS": [{"codeunitID": 137096, "functionName": ["ShowDocumentOnAssemblyLinesForBlanketOrderPageShouldOpenCorrectPage"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM-Assembly/SCMKittingATO.Codeunit.al b/App/Layers/W1/Tests/SCM-Assembly/SCMKittingATO.Codeunit.al\nindex 7629f2ebe001..3e0eab3eb6a9 100644\n--- a/App/Layers/W1/Tests/SCM-Assembly/SCMKittingATO.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM-Assembly/SCMKittingATO.Codeunit.al\n@@ -5510,6 +5510,54 @@ codeunit 137096 \"SCM Kitting - ATO\"\n Assert.IsTrue(AssembleToOrderLink.IsEmpty(), ATOLinkShouldNotBeFoundErr);\n end;\n \n+ [Test]\n+ [HandlerFunctions('MsgHandler')]\n+ procedure ShowDocumentOnAssemblyLinesForBlanketOrderPageShouldOpenCorrectPage()\n+ var\n+ AssembleToOrderLink: Record \"Assemble-to-Order Link\";\n+ AssemblyHeader: Record \"Assembly Header\";\n+ AssemblyLine: Record \"Assembly Line\";\n+ Item: Record Item;\n+ SalesHeader: Record \"Sales Header\";\n+ SalesLine: Record \"Sales Line\";\n+ AssemblyLines: TestPage \"Assembly Lines\";\n+ BlanketAssemblyOrder: TestPage \"Blanket Assembly Order\";\n+ begin\n+ // [SCENARIO 564531] Show document in Assembly order line page opens the wrong page when the Assembly order line belongs a blanket assembly order.\n+ Initialize();\n+\n+ // [GIVEN] Assembled item \"I\".\n+ CreateAssembledItem(Item, \"Assembly Policy\"::\"Assemble-to-Order\", 2, 0, 0, 1, Item.\"Costing Method\"::FIFO);\n+\n+ // [GIVEN] Create sales blanket order with item \"I\", set \"Qty. to Assemble to Order\" = \"Quantity\".\n+ // [GIVEN] A linked assembly blanket order is created in the background.\n+ LibrarySales.CreateSalesDocumentWithItem(\n+ SalesHeader, SalesLine, SalesHeader.\"Document Type\"::\"Blanket Order\",\n+ '', Item.\"No.\", LibraryRandom.RandInt(10), '', WorkDate());\n+ SetQtyToAssembleToOrder(SalesLine, SalesLine.Quantity);\n+\n+ // [GIVEN] Clear \"Qty. to Assemble to Order\".\n+ // [GIVEN] That deletes the assembly blanket order together the Assemble-to-Order link.\n+ SetQtyToAssembleToOrder(SalesLine, 0);\n+ Assert.IsFalse(AssembleToOrderLink.AsmExistsForSalesLine(SalesLine), '');\n+\n+ // [WHEN] Set \"Qty. to Assemble to Order\" back to \"Quantity\".\n+ SetQtyToAssembleToOrder(SalesLine, SalesLine.Quantity);\n+\n+ // [THEN] A new linked assembly blanket order is created.\n+ FindLinkedAssemblyOrder(AssemblyHeader, SalesHeader.\"Document Type\", SalesHeader.\"No.\");\n+ FindAssemblyLine(AssemblyHeader, AssemblyLine);\n+\n+ // [WHEN] Open Assembly Lines Page and invoke show document action\n+ AssemblyLines.OpenEdit();\n+ BlanketAssemblyOrder.Trap();\n+ AssemblyLines.GoToRecord(AssemblyLine);\n+ AssemblyLines.\"Show Document\".Invoke();\n+\n+ // [THEN] Verify Blanket Assembly Order Page opened\n+ BlanketAssemblyOrder.\"No.\".AssertEquals(AssemblyHeader.\"No.\");\n+ end;\n+\n local procedure VerifyAssembleToOrderLinesPageOpened(SalesHeader: Record \"Sales Header\"; QtyAssembleToOrder: Decimal)\n var\n SalesQuote: TestPage \"Sales Quote\";\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLine.Table.al b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLine.Table.al\r\n--- a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLine.Table.al\r\n+++ b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLine.Table.al\r\n@@ -2060,6 +2060,24 @@ table 901 \"Assembly Line\"\r\n end;\r\n end;\r\n \r\n+ internal procedure ShowAssemblyDocument()\r\n+ var\r\n+ AssemblyHeader: Record \"Assembly Header\";\r\n+ begin\r\n+ AssemblyHeader.Get(Rec.\"Document Type\", Rec.\"Document No.\");\r\n+ case AssemblyHeader.\"Document Type\" of\r\n+ AssemblyHeader.\"Document Type\"::Quote:\r\n+ Page.Run(Page::\"Assembly Quote\", AssemblyHeader);\r\n+ AssemblyHeader.\"Document Type\"::Order:\r\n+ Page.Run(Page::\"Assembly Order\", AssemblyHeader);\r\n+ AssemblyHeader.\"Document Type\"::\"Blanket Order\":\r\n+ if Page::\"Blanket Assembly Order\" <> 0 then\r\n+ Page.Run(Page::\"Blanket Assembly Order\", AssemblyHeader)\r\n+ else\r\n+ Page.Run(Page::\"Assembly Order\", AssemblyHeader);\r\n+ end;\r\n+ end;\r\n+\r\n procedure SuspendDeletionCheck(Suspend: Boolean)\r\n begin\r\n CalledFromHeader := Suspend;\ndiff --git a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\r\nindex 0877c357bc37..9c9e4b15045c 100644\r\n--- a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\r\n+++ b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\r\n@@ -157,11 +157,8 @@ page 903 \"Assembly Lines\"\r\n ToolTip = 'Open the document that the information on the line comes from.';\r\n \r\n trigger OnAction()\r\n- var\r\n- AssemblyHeader: Record \"Assembly Header\";\r\n begin\r\n- AssemblyHeader.Get(Rec.\"Document Type\", Rec.\"Document No.\");\r\n- PAGE.Run(PAGE::\"Assembly Order\", AssemblyHeader);\r\n+ Rec.ShowAssemblyDocument();\r\n end;\r\n }\r\n action(\"Reservation Entries\")\n"} +{"instance_id": "microsoftInternal__NAV-207177__cf-1", "base_instance_id": "microsoftInternal__NAV-207177", "variant_description": "Treat whitespace-only attribute values as blank in addition to empty string", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-207177__cf-1", "FAIL_TO_PASS": [{"codeunitID": 137413, "functionName": ["VerifyNoBlankEntryInsertedInItemAttributeValue"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM/SCMItemAttributes.Codeunit.al b/App/Layers/W1/Tests/SCM/SCMItemAttributes.Codeunit.al\nindex f743727..3488684 100644\n--- a/App/Layers/W1/Tests/SCM/SCMItemAttributes.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM/SCMItemAttributes.Codeunit.al\n@@ -2551,6 +2551,39 @@ codeunit 137413 \"SCM Item Attributes\"\n Assert.AreNotEqual(0, ItemAttributeValue.\"Numeric Value\", NumericValueShouldNotBeZeroErr);\n end;\n \n+ [Test]\n+ [HandlerFunctions('ItemAttributeValueListHandler')]\n+ procedure VerifyNoBlankEntryInsertedInItemAttributeValue()\n+ var\n+ Item: Record Item;\n+ ItemAttribute: Record \"Item Attribute\";\n+ ItemAttributeValue: Record \"Item Attribute Value\";\n+ ItemCard: TestPage \"Item Card\";\n+ begin\n+ // [SCENARIO 565898] An empty attribute value was not created through the item Card\n+ Initialize();\n+\n+ // [GIVEN] An item and a set of item attributes\n+ CreateTestOptionItemAttributes();\n+ LibraryInventory.CreateItem(Item);\n+\n+ // [GIVEN] Open the Item Card\n+ ItemCard.OpenEdit();\n+ ItemCard.GotoRecord(Item);\n+\n+ // [WHEN] The user assigns some attribute values to the item \n+ ItemAttribute.FindFirst();\n+ AssignItemAttributeViaItemCard(ItemAttribute, ItemAttributeValue, ItemCard);\n+\n+ // [THEN] No blank Item attribute Value Inserted in the table\n+ ItemAttributeValue.SetRange(\"Attribute ID\", ItemAttribute.ID);\n+ ItemAttributeValue.SetFilter(Value, '%1|%2', '', ' ');\n+ asserterror ItemAttributeValue.FindFirst();\n+\n+ // [THEN] Verify there is nothing inside the filter\n+ Assert.AssertNothingInsideFilter();\n+ end;\n+\n local procedure Initialize()\n var\n ItemAttribute: Record \"Item Attribute\";\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\nindex a84b055..be64f5c 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n@@ -33,7 +33,6 @@ page 7504 \"Item Attribute Value List\"\n trigger OnValidate()\n var\n ItemAttributeValue: Record \"Item Attribute Value\";\n- ItemAttributeValueMapping: Record \"Item Attribute Value Mapping\";\n ItemAttribute: Record \"Item Attribute\";\n begin\n OnBeforeCheckAttributeName(Rec, RelatedRecordCode);\n@@ -42,19 +41,10 @@ page 7504 \"Item Attribute Value List\"\n DeleteItemAttributeValueMapping(ItemAttribute.ID);\n end;\n \n- if not Rec.FindAttributeValue(ItemAttributeValue) then\n+ if (DelChr(Rec.Value, '=', ' ') <> '') and not Rec.FindAttributeValue(ItemAttributeValue) then\n Rec.InsertItemAttributeValue(ItemAttributeValue, Rec);\n \n- if ItemAttributeValue.Get(ItemAttributeValue.\"Attribute ID\", ItemAttributeValue.ID) then begin\n- ItemAttributeValueMapping.Reset();\n- ItemAttributeValueMapping.Init();\n- ItemAttributeValueMapping.\"Table ID\" := Database::Item;\n- ItemAttributeValueMapping.\"No.\" := RelatedRecordCode;\n- ItemAttributeValueMapping.\"Item Attribute ID\" := ItemAttributeValue.\"Attribute ID\";\n- ItemAttributeValueMapping.\"Item Attribute Value ID\" := ItemAttributeValue.ID;\n- OnBeforeItemAttributeValueMappingInsert(ItemAttributeValueMapping, ItemAttributeValue, Rec);\n- ItemAttributeValueMapping.Insert();\n- end;\n+ InsertItemAttributeValueMapping(ItemAttributeValue);\n end;\n }\n field(Value; Rec.Value)\n@@ -74,6 +64,7 @@ page 7504 \"Item Attribute Value List\"\n if not Rec.FindAttributeValue(ItemAttributeValue) then\n Rec.InsertItemAttributeValue(ItemAttributeValue, Rec);\n \n+ InsertItemAttributeValueMapping(ItemAttributeValue);\n ItemAttributeValueMapping.SetRange(\"Table ID\", Database::Item);\n ItemAttributeValueMapping.SetRange(\"No.\", RelatedRecordCode);\n ItemAttributeValueMapping.SetRange(\"Item Attribute ID\", ItemAttributeValue.\"Attribute ID\");\n@@ -154,6 +145,24 @@ page 7504 \"Item Attribute Value List\"\n ItemAttribute.RemoveUnusedArbitraryValues();\n end;\n \n+ local procedure InsertItemAttributeValueMapping(ItemAttributeValue: Record \"Item Attribute Value\")\n+ var\n+ ItemAttributeValueMapping: Record \"Item Attribute Value Mapping\";\n+ begin\n+ if not ItemAttributeValue.Get(ItemAttributeValue.\"Attribute ID\", ItemAttributeValue.ID) or\n+ ItemAttributeValueMapping.Get(Database::Item, RelatedRecordCode, ItemAttributeValue.\"Attribute ID\") then\n+ exit;\n+\n+ ItemAttributeValueMapping.Reset();\n+ ItemAttributeValueMapping.Init();\n+ ItemAttributeValueMapping.\"Table ID\" := Database::Item;\n+ ItemAttributeValueMapping.\"No.\" := RelatedRecordCode;\n+ ItemAttributeValueMapping.\"Item Attribute ID\" := ItemAttributeValue.\"Attribute ID\";\n+ ItemAttributeValueMapping.\"Item Attribute Value ID\" := ItemAttributeValue.ID;\n+ OnBeforeItemAttributeValueMappingInsert(ItemAttributeValueMapping, ItemAttributeValue, Rec);\n+ ItemAttributeValueMapping.Insert();\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnAfterItemAttributeValueMappingDelete(AttributeToDeleteID: Integer; RelatedRecordCode: Code[20]; ItemAttributeValueSelection: Record \"Item Attribute Value Selection\")\n begin\n"} +{"instance_id": "microsoftInternal__NAV-207177__cf-2", "base_instance_id": "microsoftInternal__NAV-207177", "variant_description": "Empty-value guard applied to both Attribute and Value OnValidate triggers", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-207177__cf-2", "FAIL_TO_PASS": [{"codeunitID": 137413, "functionName": ["VerifyNoBlankEntryInsertedInItemAttributeValue"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM/SCMItemAttributes.Codeunit.al b/App/Layers/W1/Tests/SCM/SCMItemAttributes.Codeunit.al\nindex f743727..8fc47df 100644\n--- a/App/Layers/W1/Tests/SCM/SCMItemAttributes.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM/SCMItemAttributes.Codeunit.al\n@@ -2551,6 +2551,39 @@ codeunit 137413 \"SCM Item Attributes\"\n Assert.AreNotEqual(0, ItemAttributeValue.\"Numeric Value\", NumericValueShouldNotBeZeroErr);\n end;\n \n+ [Test]\n+ [HandlerFunctions('ItemAttributeValueListHandler')]\n+ procedure VerifyNoBlankEntryInsertedInItemAttributeValue()\n+ var\n+ Item: Record Item;\n+ ItemAttribute: Record \"Item Attribute\";\n+ ItemAttributeValue: Record \"Item Attribute Value\";\n+ ItemCard: TestPage \"Item Card\";\n+ begin\n+ // [SCENARIO 565898] An empty attribute value was not created through the item Card\n+ Initialize();\n+\n+ // [GIVEN] An item and a set of item attributes\n+ CreateTestOptionItemAttributes();\n+ LibraryInventory.CreateItem(Item);\n+\n+ // [GIVEN] Open the Item Card\n+ ItemCard.OpenEdit();\n+ ItemCard.GotoRecord(Item);\n+\n+ // [WHEN] The user assigns some attribute values to the item \n+ ItemAttribute.FindFirst();\n+ AssignItemAttributeViaItemCard(ItemAttribute, ItemAttributeValue, ItemCard);\n+\n+ // [THEN] Re-select attribute without validating value should not insert\n+ ItemAttributeValue.SetRange(\"Attribute ID\", ItemAttribute.ID);\n+ ItemAttributeValue.SetRange(Value, '');\n+ asserterror ItemAttributeValue.FindFirst();\n+\n+ // [THEN] Verify there is nothing inside the filter\n+ Assert.AssertNothingInsideFilter();\n+ end;\n+\n local procedure Initialize()\n var\n ItemAttribute: Record \"Item Attribute\";\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\nindex a84b055..eac7f74 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n@@ -33,7 +33,6 @@ page 7504 \"Item Attribute Value List\"\n trigger OnValidate()\n var\n ItemAttributeValue: Record \"Item Attribute Value\";\n- ItemAttributeValueMapping: Record \"Item Attribute Value Mapping\";\n ItemAttribute: Record \"Item Attribute\";\n begin\n OnBeforeCheckAttributeName(Rec, RelatedRecordCode);\n@@ -42,19 +41,10 @@ page 7504 \"Item Attribute Value List\"\n DeleteItemAttributeValueMapping(ItemAttribute.ID);\n end;\n \n- if not Rec.FindAttributeValue(ItemAttributeValue) then\n+ if (Rec.Value <> '') and not Rec.FindAttributeValue(ItemAttributeValue) then\n Rec.InsertItemAttributeValue(ItemAttributeValue, Rec);\n \n- if ItemAttributeValue.Get(ItemAttributeValue.\"Attribute ID\", ItemAttributeValue.ID) then begin\n- ItemAttributeValueMapping.Reset();\n- ItemAttributeValueMapping.Init();\n- ItemAttributeValueMapping.\"Table ID\" := Database::Item;\n- ItemAttributeValueMapping.\"No.\" := RelatedRecordCode;\n- ItemAttributeValueMapping.\"Item Attribute ID\" := ItemAttributeValue.\"Attribute ID\";\n- ItemAttributeValueMapping.\"Item Attribute Value ID\" := ItemAttributeValue.ID;\n- OnBeforeItemAttributeValueMappingInsert(ItemAttributeValueMapping, ItemAttributeValue, Rec);\n- ItemAttributeValueMapping.Insert();\n- end;\n+ InsertItemAttributeValueMapping(ItemAttributeValue);\n end;\n }\n field(Value; Rec.Value)\n@@ -71,9 +61,10 @@ page 7504 \"Item Attribute Value List\"\n ItemAttributeValueMapping: Record \"Item Attribute Value Mapping\";\n ItemAttribute: Record \"Item Attribute\";\n begin\n- if not Rec.FindAttributeValue(ItemAttributeValue) then\n+ if (Rec.Value <> '') and not Rec.FindAttributeValue(ItemAttributeValue) then\n Rec.InsertItemAttributeValue(ItemAttributeValue, Rec);\n \n+ InsertItemAttributeValueMapping(ItemAttributeValue);\n ItemAttributeValueMapping.SetRange(\"Table ID\", Database::Item);\n ItemAttributeValueMapping.SetRange(\"No.\", RelatedRecordCode);\n ItemAttributeValueMapping.SetRange(\"Item Attribute ID\", ItemAttributeValue.\"Attribute ID\");\n@@ -154,6 +145,24 @@ page 7504 \"Item Attribute Value List\"\n ItemAttribute.RemoveUnusedArbitraryValues();\n end;\n \n+ local procedure InsertItemAttributeValueMapping(ItemAttributeValue: Record \"Item Attribute Value\")\n+ var\n+ ItemAttributeValueMapping: Record \"Item Attribute Value Mapping\";\n+ begin\n+ if not ItemAttributeValue.Get(ItemAttributeValue.\"Attribute ID\", ItemAttributeValue.ID) or\n+ ItemAttributeValueMapping.Get(Database::Item, RelatedRecordCode, ItemAttributeValue.\"Attribute ID\") then\n+ exit;\n+\n+ ItemAttributeValueMapping.Reset();\n+ ItemAttributeValueMapping.Init();\n+ ItemAttributeValueMapping.\"Table ID\" := Database::Item;\n+ ItemAttributeValueMapping.\"No.\" := RelatedRecordCode;\n+ ItemAttributeValueMapping.\"Item Attribute ID\" := ItemAttributeValue.\"Attribute ID\";\n+ ItemAttributeValueMapping.\"Item Attribute Value ID\" := ItemAttributeValue.ID;\n+ OnBeforeItemAttributeValueMappingInsert(ItemAttributeValueMapping, ItemAttributeValue, Rec);\n+ ItemAttributeValueMapping.Insert();\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnAfterItemAttributeValueMappingDelete(AttributeToDeleteID: Integer; RelatedRecordCode: Code[20]; ItemAttributeValueSelection: Record \"Item Attribute Value Selection\")\n begin\n"} +{"instance_id": "microsoftInternal__NAV-207177__cf-3", "base_instance_id": "microsoftInternal__NAV-207177", "variant_description": "Skip mapping insertion when attribute value is blank", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-207177__cf-3", "FAIL_TO_PASS": [{"codeunitID": 137413, "functionName": ["VerifyNoBlankEntryInsertedInItemAttributeValue"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM/SCMItemAttributes.Codeunit.al b/App/Layers/W1/Tests/SCM/SCMItemAttributes.Codeunit.al\nindex f743727..b5937b4 100644\n--- a/App/Layers/W1/Tests/SCM/SCMItemAttributes.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM/SCMItemAttributes.Codeunit.al\n@@ -2551,6 +2551,40 @@ codeunit 137413 \"SCM Item Attributes\"\n Assert.AreNotEqual(0, ItemAttributeValue.\"Numeric Value\", NumericValueShouldNotBeZeroErr);\n end;\n \n+ [Test]\n+ [HandlerFunctions('ItemAttributeValueListHandler')]\n+ procedure VerifyNoBlankEntryInsertedInItemAttributeValue()\n+ var\n+ Item: Record Item;\n+ ItemAttribute: Record \"Item Attribute\";\n+ ItemAttributeValueMapping: Record \"Item Attribute Value Mapping\";\n+ ItemCard: TestPage \"Item Card\";\n+ begin\n+ // [SCENARIO 565898] No mapping created when attribute value is blank\n+ Initialize();\n+\n+ // [GIVEN] A text-type item attribute and an item\n+ LibraryInventory.CreateItemAttribute(ItemAttribute, ItemAttribute.Type::Text, '');\n+ LibraryInventory.CreateItem(Item);\n+\n+ // [GIVEN] Open the Item Card\n+ ItemCard.OpenEdit();\n+ ItemCard.GotoRecord(Item);\n+\n+ // [WHEN] The user assigns attribute with blank value\n+ LibraryVariableStorage.Enqueue(ItemAttribute);\n+ LibraryVariableStorage.Enqueue('');\n+ ItemCard.Attributes.Invoke();\n+\n+ // [THEN] Verify no mapping created for blank attribute\n+ ItemAttributeValueMapping.SetRange(\"Item Attribute ID\", ItemAttribute.ID);\n+ ItemAttributeValueMapping.SetRange(\"No.\", Item.\"No.\");\n+ asserterror ItemAttributeValueMapping.FindFirst();\n+\n+ // [THEN] Verify there is nothing inside the filter\n+ Assert.AssertNothingInsideFilter();\n+ end;\n+\n local procedure Initialize()\n var\n ItemAttribute: Record \"Item Attribute\";\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\nindex a84b055..0b63e50 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n@@ -33,7 +33,6 @@ page 7504 \"Item Attribute Value List\"\n trigger OnValidate()\n var\n ItemAttributeValue: Record \"Item Attribute Value\";\n- ItemAttributeValueMapping: Record \"Item Attribute Value Mapping\";\n ItemAttribute: Record \"Item Attribute\";\n begin\n OnBeforeCheckAttributeName(Rec, RelatedRecordCode);\n@@ -45,16 +44,9 @@ page 7504 \"Item Attribute Value List\"\n if not Rec.FindAttributeValue(ItemAttributeValue) then\n Rec.InsertItemAttributeValue(ItemAttributeValue, Rec);\n \n- if ItemAttributeValue.Get(ItemAttributeValue.\"Attribute ID\", ItemAttributeValue.ID) then begin\n- ItemAttributeValueMapping.Reset();\n- ItemAttributeValueMapping.Init();\n- ItemAttributeValueMapping.\"Table ID\" := Database::Item;\n- ItemAttributeValueMapping.\"No.\" := RelatedRecordCode;\n- ItemAttributeValueMapping.\"Item Attribute ID\" := ItemAttributeValue.\"Attribute ID\";\n- ItemAttributeValueMapping.\"Item Attribute Value ID\" := ItemAttributeValue.ID;\n- OnBeforeItemAttributeValueMappingInsert(ItemAttributeValueMapping, ItemAttributeValue, Rec);\n- ItemAttributeValueMapping.Insert();\n- end;\n+ if Rec.Value = '' then\n+ exit;\n+ InsertItemAttributeValueMapping(ItemAttributeValue);\n end;\n }\n field(Value; Rec.Value)\n@@ -74,6 +66,7 @@ page 7504 \"Item Attribute Value List\"\n if not Rec.FindAttributeValue(ItemAttributeValue) then\n Rec.InsertItemAttributeValue(ItemAttributeValue, Rec);\n \n+ InsertItemAttributeValueMapping(ItemAttributeValue);\n ItemAttributeValueMapping.SetRange(\"Table ID\", Database::Item);\n ItemAttributeValueMapping.SetRange(\"No.\", RelatedRecordCode);\n ItemAttributeValueMapping.SetRange(\"Item Attribute ID\", ItemAttributeValue.\"Attribute ID\");\n@@ -154,6 +147,27 @@ page 7504 \"Item Attribute Value List\"\n ItemAttribute.RemoveUnusedArbitraryValues();\n end;\n \n+ local procedure InsertItemAttributeValueMapping(ItemAttributeValue: Record \"Item Attribute Value\")\n+ var\n+ ItemAttributeValueMapping: Record \"Item Attribute Value Mapping\";\n+ begin\n+ if not ItemAttributeValue.Get(ItemAttributeValue.\"Attribute ID\", ItemAttributeValue.ID) or\n+ ItemAttributeValueMapping.Get(Database::Item, RelatedRecordCode, ItemAttributeValue.\"Attribute ID\") then\n+ exit;\n+\n+ if ItemAttributeValue.Value = '' then\n+ exit;\n+\n+ ItemAttributeValueMapping.Reset();\n+ ItemAttributeValueMapping.Init();\n+ ItemAttributeValueMapping.\"Table ID\" := Database::Item;\n+ ItemAttributeValueMapping.\"No.\" := RelatedRecordCode;\n+ ItemAttributeValueMapping.\"Item Attribute ID\" := ItemAttributeValue.\"Attribute ID\";\n+ ItemAttributeValueMapping.\"Item Attribute Value ID\" := ItemAttributeValue.ID;\n+ OnBeforeItemAttributeValueMappingInsert(ItemAttributeValueMapping, ItemAttributeValue, Rec);\n+ ItemAttributeValueMapping.Insert();\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnAfterItemAttributeValueMappingDelete(AttributeToDeleteID: Integer; RelatedRecordCode: Code[20]; ItemAttributeValueSelection: Record \"Item Attribute Value Selection\")\n begin\n"} +{"instance_id": "microsoftInternal__NAV-207236__cf-1", "base_instance_id": "microsoftInternal__NAV-207236", "variant_description": "Add conditional reopen/release workflow in batch posting for sales invoices with currency code", "failure_layer": null, "FAIL_TO_PASS": [{"codeunitID": 134391, "functionName": ["BatchPostSaleInvoiceWithReplacePostingDateAndCurrencyCode"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/ERM/ERMSalesBatchPosting.Codeunit.al b/App/Layers/W1/Tests/ERM/ERMSalesBatchPosting.Codeunit.al\nindex 5bc6879..f126d0c 100644\n--- a/App/Layers/W1/Tests/ERM/ERMSalesBatchPosting.Codeunit.al\n+++ b/App/Layers/W1/Tests/ERM/ERMSalesBatchPosting.Codeunit.al\n@@ -1573,6 +1573,37 @@ codeunit 134391 \"ERM Sales Batch Posting\"\n VerifyPostedSalesOrder(SalesHeader.\"No.\", SalesHeader.\"Posting Date\" + 1, false);\n end;\n \n+ [Test]\n+ [HandlerFunctions('RequestPageHandlerBatchPostSalesInvoicesWithReplaceAllDates,MessageHandler')]\n+ [Scope('OnPrem')]\n+ procedure BatchPostSaleInvoiceWithReplacePostingDateAndCurrencyCode()\n+ var\n+ Currency: Record Currency;\n+ SalesHeader: Record \"Sales Header\";\n+ LibraryJobQueue: Codeunit \"Library - Job Queue\";\n+ Amount: Decimal;\n+ begin\n+ // [SCENARIO 562713] Post sales invoice with currency code via Post Batch, but the posted data has not been changed.\n+ Initialize();\n+\n+ // [GIVEN] Set Post with Job queue on Sales & Receivables Setup\n+ LibrarySales.SetPostWithJobQueue(true);\n+\n+ // [GIVEN] Bind subscription and do not handle Job queue event as true\n+ BindSubscription(LibraryJobQueue);\n+ LibraryJobQueue.SetDoNotHandleCodeunitJobQueueEnqueueEvent(true);\n+\n+ // [GIVEN] Create Sales Invoice with Currency Code so the specialized reopen/release workflow is applicable.\n+ Amount := CreateSalesDocumentWithCurrency(SalesHeader, Currency, SalesHeader.\"Document Type\"::Invoice, false);\n+\n+ // [WHEN] Run Post Batch with Replace Posting Date, Replace Document Date & Replace VAT Date options.\n+ RunBatchPostSales(SalesHeader.\"Document Type\", SalesHeader.\"No.\", SalesHeader.\"Posting Date\" + 10, false);\n+ LibraryJobQueue.FindAndRunJobQueueEntryByRecordId(SalesHeader.RecordId);\n+\n+ // [THEN] The amount was not changed in the posted sales invoice line\n+ VerifyPostedSalesInvoiceAmount(SalesHeader.\"No.\", SalesHeader.\"Posting Date\" + 10, Amount);\n+ end;\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n@@ -1890,6 +1921,52 @@ codeunit 134391 \"ERM Sales Batch Posting\"\n Assert.RecordCount(JobQueueEntry, 1);\n end;\n \n+ local procedure CreateSalesDocumentWithCurrency(var SalesHeader: Record \"Sales Header\"; var Currency: Record Currency; DocumentType: Enum \"Sales Document Type\"; InvDisc: Boolean): Decimal\n+ var\n+ Item: Record Item;\n+ SalesLine: Record \"Sales Line\";\n+ begin\n+ LibrarySales.CreateSalesHeader(SalesHeader, DocumentType, CreateCustomer(InvDisc));\n+ CreateCurrencyWithExchangeRate(Currency);\n+ SalesHeader.Validate(\"Currency Code\", Currency.Code);\n+ SalesHeader.Modify(true);\n+\n+ LibraryInventory.CreateItem(Item);\n+ LibrarySales.CreateSalesLine(SalesLine, SalesHeader, SalesLine.Type::Item, Item.\"No.\", LibraryRandom.RandInt(10));\n+ SalesLine.Validate(\"Unit Price\", LibraryRandom.RandInt(100));\n+ SalesLine.Validate(\"Line Discount %\", LibraryRandom.RandInt(20));\n+ SalesLine.Modify(true);\n+\n+ exit(SalesLine.\"Amount Including VAT\");\n+ end;\n+\n+ local procedure CreateCurrencyWithExchangeRate(var Currency: Record Currency)\n+ var\n+ CurrencyExchangeRate: Record \"Currency Exchange Rate\";\n+ begin\n+ Currency.Get(LibraryERM.CreateCurrencyWithGLAccountSetup());\n+\n+ LibraryERM.CreateExchRate(CurrencyExchangeRate, Currency.Code, WorkDate());\n+ CurrencyExchangeRate.Validate(\"Exchange Rate Amount\", LibraryRandom.RandInt(0));\n+ CurrencyExchangeRate.Validate(\"Adjustment Exch. Rate Amount\", LibraryRandom.RandInt(0));\n+ CurrencyExchangeRate.Validate(\"Relational Exch. Rate Amount\", LibraryRandom.RandDecInDecimalRange(0.6458, 0.6458, 4));\n+ CurrencyExchangeRate.Validate(\"Relational Adjmt Exch Rate Amt\", LibraryRandom.RandDecInDecimalRange(0.6458, 0.6458, 4));\n+ CurrencyExchangeRate.Modify(true);\n+ end;\n+\n+ local procedure VerifyPostedSalesInvoiceAmount(PreAssignedNo: Code[20]; PostingDate: Date; Amount: Decimal)\n+ var\n+ SalesInvoiceHeader: Record \"Sales Invoice Header\";\n+ SalesInvoiceLine: Record \"Sales Invoice Line\";\n+ begin\n+ SalesInvoiceHeader.SetRange(\"Pre-Assigned No.\", PreAssignedNo);\n+ SalesInvoiceHeader.FindFirst();\n+ Assert.Equal(SalesInvoiceHeader.\"Posting Date\", PostingDate);\n+ SalesInvoiceLine.SetFilter(\"Document No.\", SalesInvoiceHeader.\"No.\");\n+ SalesInvoiceLine.FindFirst();\n+ Assert.Equal(Amount, SalesInvoiceLine.\"Amount Including VAT\");\n+ end;\n+\n [RequestPageHandler]\n [Scope('OnPrem')]\n procedure RequestPageHandlerBatchPostSalesInvoices(var BatchPostSalesInvoices: TestRequestPage \"Batch Post Sales Invoices\")\n@@ -2195,5 +2272,26 @@ codeunit 134391 \"ERM Sales Batch Posting\"\n Assert.AreEqual(PostBatchForm.PrintDoc.AsBoolean(), true, 'Expected value to be restored.');\n end;\n end;\n+\n+ [RequestPageHandler]\n+ procedure RequestPageHandlerBatchPostSalesInvoicesWithReplaceAllDates(var BatchPostSalesInvoices: TestRequestPage \"Batch Post Sales Invoices\")\n+ var\n+ SalesHeader: Record \"Sales Header\";\n+ DocumentNoFilter: Variant;\n+ PostingDate: Variant;\n+ RunReplacePostingDate: Boolean;\n+ begin\n+ LibraryVariableStorage.Dequeue(DocumentNoFilter);\n+ LibraryVariableStorage.Dequeue(PostingDate);\n+\n+ BatchPostSalesInvoices.\"Sales Header\".SetFilter(\"No.\", DocumentNoFilter);\n+ BatchPostSalesInvoices.\"Sales Header\".SetFilter(\"Document Type\", Format(SalesHeader.\"Document Type\"::Invoice));\n+\n+ BatchPostSalesInvoices.PostingDate.SetValue(PostingDate);\n+ RunReplacePostingDate := Format(PostingDate) <> '';\n+ BatchPostSalesInvoices.ReplacePostingDate.SetValue(RunReplacePostingDate);\n+ BatchPostSalesInvoices.ReplaceVATDate.SetValue(RunReplacePostingDate);\n+ BatchPostSalesInvoices.OK().Invoke();\n+ end;\n }\n \n", "patch": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al b/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\nindex fbf39fc..9f88c95 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\n@@ -4154,7 +4154,7 @@ table 36 \"Sales Header\"\n \n if UpdateCurrencyExchangeRates.ExchangeRatesForCurrencyExist(CurrencyDate, \"Currency Code\") then begin\n \"Currency Factor\" := CurrExchRate.ExchangeRate(CurrencyDate, \"Currency Code\");\n- if \"Currency Code\" <> xRec.\"Currency Code\" then\n+ if (\"Currency Code\" <> xRec.\"Currency Code\") and (xRec.\"No.\" <> '') then\n RecreateSalesLines(FieldCaption(\"Currency Code\"));\n end else\n UpdateCurrencyExchangeRates.ShowMissingExchangeRatesNotification(\"Currency Code\");\n@@ -7038,7 +7038,10 @@ table 36 \"Sales Header\"\n exit;\n \n \"Posting Date\" := PostingDateReq;\n- Validate(\"Currency Code\");\n+ if \"Currency Code\" <> '' then begin\n+ UpdateCurrencyFactor();\n+ UpdateSalesLinesByFieldNo(SalesHeader.FieldNo(\"Currency Factor\"), false);\n+ end;\n \n if ReplaceVATDate then\n \"VAT Reporting Date\" := VATDateReq;\ndiff --git a/App/Layers/W1/BaseApp/Sales/Posting/SalesBatchPostMgt.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Posting/SalesBatchPostMgt.Codeunit.al\nindex e585527..f184938 100644\n--- a/App/Layers/W1/BaseApp/Sales/Posting/SalesBatchPostMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Posting/SalesBatchPostMgt.Codeunit.al\n@@ -138,22 +138,25 @@ codeunit 1371 \"Sales Batch Post Mgt.\"\n \n local procedure PrepareSalesHeader(var SalesHeader: Record \"Sales Header\"; var BatchConfirm: Option)\n var\n- CalcInvoiceDiscont: Boolean;\n+ CalcInvoiceDiscount: Boolean;\n ReplacePostingDate, ReplaceVATDate, ReplaceDocumentDate : Boolean;\n+ ManualReopen: Boolean;\n PostingDate, VATDate : Date;\n begin\n- BatchProcessingMgt.GetBooleanParameter(SalesHeader.RecordId, Enum::\"Batch Posting Parameter Type\"::\"Calculate Invoice Discount\", CalcInvoiceDiscont);\n+ BatchProcessingMgt.GetBooleanParameter(SalesHeader.RecordId, Enum::\"Batch Posting Parameter Type\"::\"Calculate Invoice Discount\", CalcInvoiceDiscount);\n BatchProcessingMgt.GetBooleanParameter(SalesHeader.RecordId, Enum::\"Batch Posting Parameter Type\"::\"Replace Posting Date\", ReplacePostingDate);\n BatchProcessingMgt.GetDateParameter(SalesHeader.RecordId, Enum::\"Batch Posting Parameter Type\"::\"Posting Date\", PostingDate);\n BatchProcessingMgt.GetBooleanParameter(SalesHeader.RecordId, Enum::\"Batch Posting Parameter Type\"::\"Replace VAT Date\", ReplaceVATDate);\n BatchProcessingMgt.GetDateParameter(SalesHeader.RecordId, Enum::\"Batch Posting Parameter Type\"::\"VAT Date\", VATDate);\n BatchProcessingMgt.GetBooleanParameter(SalesHeader.RecordId, Enum::\"Batch Posting Parameter Type\"::\"Replace Document Date\", ReplaceDocumentDate);\n \n- if CalcInvoiceDiscont then\n+ if CalcInvoiceDiscount then\n CalculateInvoiceDiscount(SalesHeader);\n \n SalesHeader.BatchConfirmUpdateDeferralDate(BatchConfirm, ReplacePostingDate, PostingDate, ReplaceVATDate, VATDate);\n+ PerformManualReleaseOrReopenSalesHeader(SalesHeader, ManualReopen, ReplacePostingDate);\n SalesHeader.BatchConfirmUpdatePostingDate(ReplacePostingDate, PostingDate, ReplaceVATDate, VATDate, ReplaceDocumentDate);\n+ PerformManualReleaseOrReopenSalesHeader(SalesHeader, ManualReopen, ReplacePostingDate);\n OnPrepareSalesHeaderOnAfterBatchConfirmUpdateDeferralDate(SalesHeader, BatchProcessingMgt);\n \n BatchProcessingMgt.GetBooleanParameter(SalesHeader.RecordId, Enum::\"Batch Posting Parameter Type\"::Ship, SalesHeader.Ship);\n@@ -310,6 +313,23 @@ codeunit 1371 \"Sales Batch Post Mgt.\"\n JobQueueEntry.Insert(true);\n end;\n \n+ local procedure PerformManualReleaseOrReopenSalesHeader(var SalesHeader: Record \"Sales Header\"; var ManualReopen: Boolean; ReplacePostingDate: Boolean)\n+ var\n+ ReleaseSalesDoc: Codeunit \"Release Sales Document\";\n+ begin\n+ if (not ReplacePostingDate) or (SalesHeader.\"Currency Code\" = '') then\n+ exit;\n+ if not SalesHeader.Invoice and not (SalesHeader.\"Document Type\" = SalesHeader.\"Document Type\"::Invoice) then\n+ exit;\n+\n+ if ManualReopen then\n+ ReleaseSalesHeader(SalesHeader)\n+ else begin\n+ ReleaseSalesDoc.PerformManualReopen(SalesHeader);\n+ ManualReopen := true;\n+ end;\n+ end;\n+\n [EventSubscriber(ObjectType::Codeunit, Codeunit::\"Batch Processing Mgt.\", 'OnBeforeBatchProcessing', '', false, false)]\n local procedure PrepareSalesHeaderOnBeforeBatchProcessing(var RecRef: RecordRef; var BatchConfirm: Option)\n var\n"} +{"instance_id": "microsoftInternal__NAV-207247__cf-1", "base_instance_id": "microsoftInternal__NAV-207247", "variant_description": "Position filter only applied when duplicate items exist on BOM", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-207247__cf-1", "FAIL_TO_PASS": [{"codeunitID": 137067, "functionName": ["CommentOnProdBOMCompTransferredToCompLinesForFirmPlannedProdOrderWhenPositionFieldUsed"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM/SCMPlanReqWksht.Codeunit.al b/App/Layers/W1/Tests/SCM/SCMPlanReqWksht.Codeunit.al\nindex 4391387..92bc404 100644\n--- a/App/Layers/W1/Tests/SCM/SCMPlanReqWksht.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM/SCMPlanReqWksht.Codeunit.al\n@@ -61,6 +61,7 @@\n QuantityErr: Label '%1 must be %2 in %3', Comment = '%1 = Quantity, %2 = Minimum Order Quanity, %3 = Requisition Line';\n MPSOrderErr: Label '%1 must be true', Comment = '%1 = MPS Order';\n PlanningComponentMustNotBeFoundErr: Label 'Planning Component must not be found.';\n+ BOMLineCommnetAndFirmProdOrderBOMLineCommentMustMatchErr: Label 'BOM Line Comment and Firm Prod. Order BOM Line Comment must match.';\n \n [Test]\n [HandlerFunctions('MessageHandler')]\n@@ -4904,6 +4905,72 @@\n Assert.AreEqual(StockkeepingUnit[2].\"Order Multiple\", RequisitionLine.Quantity, '');\n end;\n \n+ [Test]\n+ procedure CommentOnProdBOMCompTransferredToCompLinesForFirmPlannedProdOrderWhenPositionFieldUsed()\n+ var\n+ CompItem, ProdItem : Record Item;\n+ ItemUnitOfMeasure: Record \"Item Unit of Measure\";\n+ ProductionBOMHeader: Record \"Production BOM Header\";\n+ ProductionBOMLine: array[2] of Record \"Production BOM Line\";\n+ ProductionBOMCommentLine: array[2] of Record \"Production BOM Comment Line\";\n+ ProdOrderCompCmtLine: array[2] of Record \"Prod. Order Comp. Cmt Line\";\n+ RequisitionLine: Record \"Requisition Line\";\n+ Salesheader: Record \"Sales Header\";\n+ UnitOfMeasure: Record \"Unit of Measure\";\n+ begin\n+ // [SCENARIO 563855] When Comment store on a production order line that includes the same component in different positions, transferred to the Component Lines \n+ // for the Firm Planned Production Order via Planning Worksheet.\n+ Initialize();\n+\n+ // [GIVEN] Create Unit of Measure Code.\n+ LibraryInventory.CreateUnitOfMeasureCode(UnitOfMeasure);\n+\n+ // [GIVEN] Create Component Items.\n+ CreateItemWithReorderPolicy(CompItem, UnitOfMeasure, ItemUnitOfMeasure, CompItem.\"Replenishment System\"::Purchase, CompItem.\"Reordering Policy\"::\" \");\n+\n+ // [GIVEN] Create Production Item.\n+ CreateItemWithReorderPolicy(ProdItem, UnitOfMeasure, ItemUnitOfMeasure, ProdItem.\"Replenishment System\"::\"Prod. Order\", ProdItem.\"Reordering Policy\"::Order);\n+\n+ // [GIVEN] Create Production BOM Header.\n+ LibraryManufacturing.CreateProductionBOMHeader(ProductionBOMHeader, ProdItem.\"Base Unit of Measure\");\n+\n+ // [GIVEN] Create Production BOM Lines.\n+ CreateProductionBOMLineInSpecifiedPosition(ProductionBOMHeader, ProductionBOMLine[1], CompItem.\"No.\", LibraryRandom.RandInt(0));\n+ CreateProductionBOMLineInSpecifiedPosition(ProductionBOMHeader, ProductionBOMLine[2], CompItem.\"No.\", LibraryRandom.RandInt(0));\n+\n+ // [GIVEN] Create Production BOM Comment Line for Production BOM Line.\n+ LibraryManufacturing.CreateProductionBOMCommentLine(ProductionBOMLine[1]);\n+ LibraryManufacturing.CreateProductionBOMCommentLine(ProductionBOMLine[2]);\n+\n+ // [GIVEN] Update Production BOM Status.\n+ LibraryManufacturing.UpdateProductionBOMStatus(ProductionBOMHeader, ProductionBOMHeader.Status::Certified);\n+\n+ // [GIVEN] Validate Production BOM No. in Production Item.\n+ ProdItem.Validate(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n+ ProdItem.Modify(true);\n+\n+ // [GIVEN] Create and Release Sales Order.\n+ CreateSalesOrder(Salesheader, ProdItem);\n+ LibrarySales.ReleaseSalesDocument(Salesheader);\n+\n+ // [GIVEN] Run Calculate Regenerative Plan.\n+ RunCalculateRegenerativePlan(ProdItem.\"No.\", '');\n+\n+ // [GIVEN] Accept Action Message on Requisition Line.\n+ AcceptActionMessageOnReqLine(RequisitionLine, ProdItem.\"No.\");\n+\n+ // [GIVEN] Run Carry Out Action Plan.\n+ CarryOutActionPlanForFirmPlannedProdOrder(RequisitionLine);\n+\n+ // [WHEN] Find Prod. Order Comp. Cmt Line for both Position.\n+ GetProductionBOMCommnetLine(ProductionBOMLine[1], ProductionBOMCommentLine[1], ProdOrderCompCmtLine[1]);\n+ GetProductionBOMCommnetLine(ProductionBOMLine[2], ProductionBOMCommentLine[2], ProdOrderCompCmtLine[2]);\n+\n+ // [VERIFY] For duplicate BOM item lines, comment transfer is disambiguated by Position.\n+ Assert.AreEqual(ProductionBOMCommentLine[1].Comment, ProdOrderCompCmtLine[1].Comment, BOMLineCommnetAndFirmProdOrderBOMLineCommentMustMatchErr);\n+ Assert.AreEqual(ProductionBOMCommentLine[2].Comment, ProdOrderCompCmtLine[2].Comment, BOMLineCommnetAndFirmProdOrderBOMLineCommentMustMatchErr);\n+ end;\n+\n local procedure Initialize()\n var\n AllProfile: Record \"All Profile\";\n@@ -6649,6 +6716,48 @@ ItemJournalLine, ItemJournalBatch.\"Journal Template Name\", ItemJournalBatch.Name\n StockkeepingUnit.Modify(true);\n end;\n \n+ local procedure CreateProductionBOMLineInSpecifiedPosition(var ProductionBOMHeader: Record \"Production BOM Header\"; var ProductionBOMLine: Record \"Production BOM Line\"; ItemNo: Code[20]; QuantityPer: Decimal)\n+ begin\n+ LibraryManufacturing.CreateProductionBOMLine(\n+ ProductionBOMHeader, ProductionBOMLine, '', ProductionBOMLine.Type::Item, ItemNo, QuantityPer);\n+ ProductionBOMLine.Validate(Position, LibraryUtility.GenerateGUID());\n+ ProductionBOMLine.Modify(true);\n+ end;\n+\n+ local procedure CarryOutActionPlanForFirmPlannedProdOrder(var ReqLine: Record \"Requisition Line\")\n+ var\n+ MfgUserTemplate: Record \"Manufacturing User Template\";\n+ CarryOutActionMsgPlan: Report \"Carry Out Action Msg. - Plan.\";\n+ begin\n+ MfgUserTemplate.Init();\n+ MfgUserTemplate.Validate(\"Create Production Order\", MfgUserTemplate.\"Create Production Order\"::\"Firm Planned\");\n+\n+ ReqLine.SetRecFilter();\n+ CarryOutActionMsgPlan.UseRequestPage(false);\n+ CarryOutActionMsgPlan.SetDemandOrder(ReqLine, MfgUserTemplate);\n+ CarryOutActionMsgPlan.RunModal();\n+ end;\n+\n+ local procedure GetProductionBOMCommnetLine(ProductionBOMLine: record \"Production BOM Line\"; var ProductionBOMCommentLine: Record \"Production BOM Comment Line\"; var ProdOrderCompCmtLine: Record \"Prod. Order Comp. Cmt Line\")\n+ var\n+ ProductionOrderComp: Record \"Prod. Order Component\";\n+ begin\n+ ProductionOrderComp.SetRange(\"Status\", ProductionOrderComp.Status::\"Firm Planned\");\n+ ProductionOrderComp.SetRange(\"Item No.\", ProductionBOMLine.\"No.\");\n+ ProductionOrderComp.SetRange(Position, ProductionBOMLine.Position);\n+ ProductionOrderComp.FindFirst();\n+\n+ ProductionBOMCommentLine.SetRange(\"Production BOM No.\", ProductionBOMLine.\"Production BOM No.\");\n+ ProductionBOMCommentLine.SetRange(\"BOM Line No.\", ProductionOrderComp.\"Line No.\");\n+ ProductionBOMCommentLine.FindFirst();\n+\n+ ProdOrderCompCmtLine.SetRange(\"Status\", ProductionOrderComp.Status::\"Firm Planned\");\n+ ProdOrderCompCmtLine.SetRange(\"Prod. Order No.\", ProductionOrderComp.\"Prod. Order No.\");\n+ ProdOrderCompCmtLine.SetRange(\"Prod. Order Line No.\", ProductionOrderComp.\"Prod. Order Line No.\");\n+ ProdOrderCompCmtLine.SetRange(\"Prod. Order BOM Line No.\", ProductionOrderComp.\"Line No.\");\n+ ProdOrderCompCmtLine.FindFirst();\n+ end;\n+\n [RequestPageHandler]\n [Scope('OnPrem')]\n procedure CalculatePlanPlanWkshRequestPageHandler(var CalculatePlanPlanWksh: TestRequestPage \"Calculate Plan - Plan. Wksh.\")\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\nindex bd37042..bf53080 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n@@ -1541,6 +1541,8 @@ codeunit 99000813 \"Carry Out Action\"\n ProductionBOMLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n ProductionBOMLine.SetRange(Type, ProductionBOMLine.Type::Item);\n ProductionBOMLine.SetRange(\"No.\", ProdOrderComponent.\"Item No.\");\n+ if ProductionBOMLine.Count > 1 then\n+ ProductionBOMLine.SetRange(Position, ProdOrderComponent.Position);\n if ProductionBOMLine.FindSet() then\n repeat\n ProductionBOMCommentLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n"} +{"instance_id": "microsoftInternal__NAV-207247__cf-2", "base_instance_id": "microsoftInternal__NAV-207247", "variant_description": "Use BOM Line No. instead of Position for comment transfer line matching", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-207247__cf-2", "FAIL_TO_PASS": [{"codeunitID": 137067, "functionName": ["CommentOnProdBOMCompTransferredToCompLinesForFirmPlannedProdOrderWhenBOMLineIdentityUsed"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM/SCMPlanReqWksht.Codeunit.al b/App/Layers/W1/Tests/SCM/SCMPlanReqWksht.Codeunit.al\nindex 4391387..19d2440 100644\n--- a/App/Layers/W1/Tests/SCM/SCMPlanReqWksht.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM/SCMPlanReqWksht.Codeunit.al\n@@ -61,6 +61,7 @@\n QuantityErr: Label '%1 must be %2 in %3', Comment = '%1 = Quantity, %2 = Minimum Order Quanity, %3 = Requisition Line';\n MPSOrderErr: Label '%1 must be true', Comment = '%1 = MPS Order';\n PlanningComponentMustNotBeFoundErr: Label 'Planning Component must not be found.';\n+ BOMLineCommnetAndFirmProdOrderBOMLineCommentMustMatchErr: Label 'BOM Line Comment and Firm Prod. Order BOM Line Comment must match.';\n \n [Test]\n [HandlerFunctions('MessageHandler')]\n@@ -4904,6 +4905,72 @@\n Assert.AreEqual(StockkeepingUnit[2].\"Order Multiple\", RequisitionLine.Quantity, '');\n end;\n \n+ [Test]\n+ procedure CommentOnProdBOMCompTransferredToCompLinesForFirmPlannedProdOrderWhenBOMLineIdentityUsed()\n+ var\n+ CompItem, ProdItem : Record Item;\n+ ItemUnitOfMeasure: Record \"Item Unit of Measure\";\n+ ProductionBOMHeader: Record \"Production BOM Header\";\n+ ProductionBOMLine: array[2] of Record \"Production BOM Line\";\n+ ProductionBOMCommentLine: array[2] of Record \"Production BOM Comment Line\";\n+ ProdOrderCompCmtLine: array[2] of Record \"Prod. Order Comp. Cmt Line\";\n+ RequisitionLine: Record \"Requisition Line\";\n+ Salesheader: Record \"Sales Header\";\n+ UnitOfMeasure: Record \"Unit of Measure\";\n+ begin\n+ // [SCENARIO 563855] When Comment store on a production order line that includes the same component in different positions, transferred to the Component Lines \n+ // for the Firm Planned Production Order via Planning Worksheet.\n+ Initialize();\n+\n+ // [GIVEN] Create Unit of Measure Code.\n+ LibraryInventory.CreateUnitOfMeasureCode(UnitOfMeasure);\n+\n+ // [GIVEN] Create Component Items.\n+ CreateItemWithReorderPolicy(CompItem, UnitOfMeasure, ItemUnitOfMeasure, CompItem.\"Replenishment System\"::Purchase, CompItem.\"Reordering Policy\"::\" \");\n+\n+ // [GIVEN] Create Production Item.\n+ CreateItemWithReorderPolicy(ProdItem, UnitOfMeasure, ItemUnitOfMeasure, ProdItem.\"Replenishment System\"::\"Prod. Order\", ProdItem.\"Reordering Policy\"::Order);\n+\n+ // [GIVEN] Create Production BOM Header.\n+ LibraryManufacturing.CreateProductionBOMHeader(ProductionBOMHeader, ProdItem.\"Base Unit of Measure\");\n+\n+ // [GIVEN] Create Production BOM Lines.\n+ CreateProductionBOMLineInSpecifiedPosition(ProductionBOMHeader, ProductionBOMLine[1], CompItem.\"No.\", LibraryRandom.RandInt(0));\n+ CreateProductionBOMLineInSpecifiedPosition(ProductionBOMHeader, ProductionBOMLine[2], CompItem.\"No.\", LibraryRandom.RandInt(0));\n+\n+ // [GIVEN] Create Production BOM Comment Line for Production BOM Line.\n+ LibraryManufacturing.CreateProductionBOMCommentLine(ProductionBOMLine[1]);\n+ LibraryManufacturing.CreateProductionBOMCommentLine(ProductionBOMLine[2]);\n+\n+ // [GIVEN] Update Production BOM Status.\n+ LibraryManufacturing.UpdateProductionBOMStatus(ProductionBOMHeader, ProductionBOMHeader.Status::Certified);\n+\n+ // [GIVEN] Validate Production BOM No. in Production Item.\n+ ProdItem.Validate(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n+ ProdItem.Modify(true);\n+\n+ // [GIVEN] Create and Release Sales Order.\n+ CreateSalesOrder(Salesheader, ProdItem);\n+ LibrarySales.ReleaseSalesDocument(Salesheader);\n+\n+ // [GIVEN] Run Calculate Regenerative Plan.\n+ RunCalculateRegenerativePlan(ProdItem.\"No.\", '');\n+\n+ // [GIVEN] Accept Action Message on Requisition Line.\n+ AcceptActionMessageOnReqLine(RequisitionLine, ProdItem.\"No.\");\n+\n+ // [GIVEN] Run Carry Out Action Plan.\n+ CarryOutActionPlanForFirmPlannedProdOrder(RequisitionLine);\n+\n+ // [WHEN] Find Prod. Order Comp. Cmt Line for both Position.\n+ GetProductionBOMCommnetLine(ProductionBOMLine[1], ProductionBOMCommentLine[1], ProdOrderCompCmtLine[1]);\n+ GetProductionBOMCommnetLine(ProductionBOMLine[2], ProductionBOMCommentLine[2], ProdOrderCompCmtLine[2]);\n+\n+ // [VERIFY] Comment in Production BOM Comment Line and Prod. Order Comp. Cmt Line is same.\n+ Assert.AreEqual(ProductionBOMCommentLine[1].Comment, ProdOrderCompCmtLine[1].Comment, BOMLineCommnetAndFirmProdOrderBOMLineCommentMustMatchErr);\n+ Assert.AreEqual(ProductionBOMCommentLine[2].Comment, ProdOrderCompCmtLine[2].Comment, BOMLineCommnetAndFirmProdOrderBOMLineCommentMustMatchErr);\n+ end;\n+\n local procedure Initialize()\n var\n AllProfile: Record \"All Profile\";\n@@ -6649,6 +6716,48 @@ ItemJournalLine, ItemJournalBatch.\"Journal Template Name\", ItemJournalBatch.Name\n StockkeepingUnit.Modify(true);\n end;\n \n+ local procedure CreateProductionBOMLineInSpecifiedPosition(var ProductionBOMHeader: Record \"Production BOM Header\"; var ProductionBOMLine: Record \"Production BOM Line\"; ItemNo: Code[20]; QuantityPer: Decimal)\n+ begin\n+ LibraryManufacturing.CreateProductionBOMLine(\n+ ProductionBOMHeader, ProductionBOMLine, '', ProductionBOMLine.Type::Item, ItemNo, QuantityPer);\n+ ProductionBOMLine.Validate(Position, LibraryUtility.GenerateGUID());\n+ ProductionBOMLine.Modify(true);\n+ end;\n+\n+ local procedure CarryOutActionPlanForFirmPlannedProdOrder(var ReqLine: Record \"Requisition Line\")\n+ var\n+ MfgUserTemplate: Record \"Manufacturing User Template\";\n+ CarryOutActionMsgPlan: Report \"Carry Out Action Msg. - Plan.\";\n+ begin\n+ MfgUserTemplate.Init();\n+ MfgUserTemplate.Validate(\"Create Production Order\", MfgUserTemplate.\"Create Production Order\"::\"Firm Planned\");\n+\n+ ReqLine.SetRecFilter();\n+ CarryOutActionMsgPlan.UseRequestPage(false);\n+ CarryOutActionMsgPlan.SetDemandOrder(ReqLine, MfgUserTemplate);\n+ CarryOutActionMsgPlan.RunModal();\n+ end;\n+\n+ local procedure GetProductionBOMCommnetLine(ProductionBOMLine: record \"Production BOM Line\"; var ProductionBOMCommentLine: Record \"Production BOM Comment Line\"; var ProdOrderCompCmtLine: Record \"Prod. Order Comp. Cmt Line\")\n+ var\n+ ProductionOrderComp: Record \"Prod. Order Component\";\n+ begin\n+ ProductionOrderComp.SetRange(\"Status\", ProductionOrderComp.Status::\"Firm Planned\");\n+ ProductionOrderComp.SetRange(\"Item No.\", ProductionBOMLine.\"No.\");\n+ ProductionOrderComp.SetRange(Position, ProductionBOMLine.Position);\n+ ProductionOrderComp.FindFirst();\n+\n+ ProductionBOMCommentLine.SetRange(\"Production BOM No.\", ProductionBOMLine.\"Production BOM No.\");\n+ ProductionBOMCommentLine.SetRange(\"BOM Line No.\", ProductionOrderComp.\"Line No.\");\n+ ProductionBOMCommentLine.FindFirst();\n+\n+ ProdOrderCompCmtLine.SetRange(\"Status\", ProductionOrderComp.Status::\"Firm Planned\");\n+ ProdOrderCompCmtLine.SetRange(\"Prod. Order No.\", ProductionOrderComp.\"Prod. Order No.\");\n+ ProdOrderCompCmtLine.SetRange(\"Prod. Order Line No.\", ProductionOrderComp.\"Prod. Order Line No.\");\n+ ProdOrderCompCmtLine.SetRange(\"Prod. Order BOM Line No.\", ProductionOrderComp.\"Line No.\");\n+ ProdOrderCompCmtLine.FindFirst();\n+ end;\n+\n [RequestPageHandler]\n [Scope('OnPrem')]\n procedure CalculatePlanPlanWkshRequestPageHandler(var CalculatePlanPlanWksh: TestRequestPage \"Calculate Plan - Plan. Wksh.\")\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\nindex bd37042..c3d4b51 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n@@ -1541,6 +1541,7 @@ codeunit 99000813 \"Carry Out Action\"\n ProductionBOMLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n ProductionBOMLine.SetRange(Type, ProductionBOMLine.Type::Item);\n ProductionBOMLine.SetRange(\"No.\", ProdOrderComponent.\"Item No.\");\n+ ProductionBOMLine.SetRange(\"Line No.\", ProdOrderComponent.\"Line No.\");\n if ProductionBOMLine.FindSet() then\n repeat\n ProductionBOMCommentLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n"} +{"instance_id": "microsoftInternal__NAV-207247__cf-3", "base_instance_id": "microsoftInternal__NAV-207247", "variant_description": "Use Released Production Order instead of Firm Planned for comment transfer via Planning Worksheet", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-207247__cf-3", "FAIL_TO_PASS": [{"codeunitID": 137067, "functionName": ["CommentOnProdBOMCompTransferredToCompLinesForFirmPlannedProdOrderWhenPositionFieldUsed"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM/SCMPlanReqWksht.Codeunit.al b/App/Layers/W1/Tests/SCM/SCMPlanReqWksht.Codeunit.al\nindex 4391387a6954..dcbb2cc63126 100644\n--- a/App/Layers/W1/Tests/SCM/SCMPlanReqWksht.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM/SCMPlanReqWksht.Codeunit.al\n@@ -61,6 +61,7 @@\n QuantityErr: Label '%1 must be %2 in %3', Comment = '%1 = Quantity, %2 = Minimum Order Quanity, %3 = Requisition Line';\n MPSOrderErr: Label '%1 must be true', Comment = '%1 = MPS Order';\n PlanningComponentMustNotBeFoundErr: Label 'Planning Component must not be found.';\n+ BOMLineCommnetAndFirmProdOrderBOMLineCommentMustMatchErr: Label 'BOM Line Comment and Firm Prod. Order BOM Line Comment must match.';\n \n [Test]\n [HandlerFunctions('MessageHandler')]\n@@ -4904,6 +4905,72 @@\n Assert.AreEqual(StockkeepingUnit[2].\"Order Multiple\", RequisitionLine.Quantity, '');\n end;\n \n+ [Test]\n+ procedure CommentOnProdBOMCompTransferredToCompLinesForFirmPlannedProdOrderWhenPositionFieldUsed()\n+ var\n+ CompItem, ProdItem : Record Item;\n+ ItemUnitOfMeasure: Record \"Item Unit of Measure\";\n+ ProductionBOMHeader: Record \"Production BOM Header\";\n+ ProductionBOMLine: array[2] of Record \"Production BOM Line\";\n+ ProductionBOMCommentLine: array[2] of Record \"Production BOM Comment Line\";\n+ ProdOrderCompCmtLine: array[2] of Record \"Prod. Order Comp. Cmt Line\";\n+ RequisitionLine: Record \"Requisition Line\";\n+ Salesheader: Record \"Sales Header\";\n+ UnitOfMeasure: Record \"Unit of Measure\";\n+ begin\n+ // [SCENARIO 563855] When Comment store on a production order line that includes the same component in different positions, transferred to the Component Lines \n+ // for the Firm Planned Production Order via Planning Worksheet.\n+ Initialize();\n+\n+ // [GIVEN] Create Unit of Measure Code.\n+ LibraryInventory.CreateUnitOfMeasureCode(UnitOfMeasure);\n+\n+ // [GIVEN] Create Component Items.\n+ CreateItemWithReorderPolicy(CompItem, UnitOfMeasure, ItemUnitOfMeasure, CompItem.\"Replenishment System\"::Purchase, CompItem.\"Reordering Policy\"::\" \");\n+\n+ // [GIVEN] Create Production Item.\n+ CreateItemWithReorderPolicy(ProdItem, UnitOfMeasure, ItemUnitOfMeasure, ProdItem.\"Replenishment System\"::\"Prod. Order\", ProdItem.\"Reordering Policy\"::Order);\n+\n+ // [GIVEN] Create Production BOM Header.\n+ LibraryManufacturing.CreateProductionBOMHeader(ProductionBOMHeader, ProdItem.\"Base Unit of Measure\");\n+\n+ // [GIVEN] Create Production BOM Lines.\n+ CreateProductionBOMLineInSpecifiedPosition(ProductionBOMHeader, ProductionBOMLine[1], CompItem.\"No.\", LibraryRandom.RandInt(0));\n+ CreateProductionBOMLineInSpecifiedPosition(ProductionBOMHeader, ProductionBOMLine[2], CompItem.\"No.\", LibraryRandom.RandInt(0));\n+\n+ // [GIVEN] Create Production BOM Comment Line for Production BOM Line.\n+ LibraryManufacturing.CreateProductionBOMCommentLine(ProductionBOMLine[1]);\n+ LibraryManufacturing.CreateProductionBOMCommentLine(ProductionBOMLine[2]);\n+\n+ // [GIVEN] Update Production BOM Status.\n+ LibraryManufacturing.UpdateProductionBOMStatus(ProductionBOMHeader, ProductionBOMHeader.Status::Certified);\n+\n+ // [GIVEN] Validate Production BOM No. in Production Item.\n+ ProdItem.Validate(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n+ ProdItem.Modify(true);\n+\n+ // [GIVEN] Create and Release Sales Order.\n+ CreateSalesOrder(Salesheader, ProdItem);\n+ LibrarySales.ReleaseSalesDocument(Salesheader);\n+\n+ // [GIVEN] Run Calculate Regenerative Plan.\n+ RunCalculateRegenerativePlan(ProdItem.\"No.\", '');\n+\n+ // [GIVEN] Accept Action Message on Requisition Line.\n+ AcceptActionMessageOnReqLine(RequisitionLine, ProdItem.\"No.\");\n+\n+ // [GIVEN] Run Carry Out Action Plan.\n+ CarryOutActionPlanForFirmPlannedProdOrder(RequisitionLine);\n+\n+ // [WHEN] Find Prod. Order Comp. Cmt Line for both Position.\n+ GetProductionBOMCommnetLine(ProductionBOMLine[1], ProductionBOMCommentLine[1], ProdOrderCompCmtLine[1]);\n+ GetProductionBOMCommnetLine(ProductionBOMLine[2], ProductionBOMCommentLine[2], ProdOrderCompCmtLine[2]);\n+\n+ // [VERIFY] Comment in Production BOM Comment Line and Prod. Order Comp. Cmt Line is same.\n+ Assert.AreEqual(ProductionBOMCommentLine[1].Comment, ProdOrderCompCmtLine[1].Comment, BOMLineCommnetAndFirmProdOrderBOMLineCommentMustMatchErr);\n+ Assert.AreEqual(ProductionBOMCommentLine[2].Comment, ProdOrderCompCmtLine[2].Comment, BOMLineCommnetAndFirmProdOrderBOMLineCommentMustMatchErr);\n+ end;\n+\n local procedure Initialize()\n var\n AllProfile: Record \"All Profile\";\n@@ -6649,6 +6716,48 @@ ItemJournalLine, ItemJournalBatch.\"Journal Template Name\", ItemJournalBatch.Name\n StockkeepingUnit.Modify(true);\n end;\n \n+ local procedure CreateProductionBOMLineInSpecifiedPosition(var ProductionBOMHeader: Record \"Production BOM Header\"; var ProductionBOMLine: Record \"Production BOM Line\"; ItemNo: Code[20]; QuantityPer: Decimal)\n+ begin\n+ LibraryManufacturing.CreateProductionBOMLine(\n+ ProductionBOMHeader, ProductionBOMLine, '', ProductionBOMLine.Type::Item, ItemNo, QuantityPer);\n+ ProductionBOMLine.Validate(Position, LibraryUtility.GenerateGUID());\n+ ProductionBOMLine.Modify(true);\n+ end;\n+\n+ local procedure CarryOutActionPlanForFirmPlannedProdOrder(var ReqLine: Record \"Requisition Line\")\n+ var\n+ MfgUserTemplate: Record \"Manufacturing User Template\";\n+ CarryOutActionMsgPlan: Report \"Carry Out Action Msg. - Plan.\";\n+ begin\n+ MfgUserTemplate.Init();\n+ MfgUserTemplate.Validate(\"Create Production Order\", MfgUserTemplate.\"Create Production Order\"::\"Firm Planned\");\n+\n+ ReqLine.SetRecFilter();\n+ CarryOutActionMsgPlan.UseRequestPage(false);\n+ CarryOutActionMsgPlan.SetDemandOrder(ReqLine, MfgUserTemplate);\n+ CarryOutActionMsgPlan.RunModal();\n+ end;\n+\n+ local procedure GetProductionBOMCommnetLine(ProductionBOMLine: record \"Production BOM Line\"; var ProductionBOMCommentLine: Record \"Production BOM Comment Line\"; var ProdOrderCompCmtLine: Record \"Prod. Order Comp. Cmt Line\")\n+ var\n+ ProductionOrderComp: Record \"Prod. Order Component\";\n+ begin\n+ ProductionOrderComp.SetRange(\"Status\", ProductionOrderComp.Status::\"Firm Planned\");\n+ ProductionOrderComp.SetRange(\"Item No.\", ProductionBOMLine.\"No.\");\n+ ProductionOrderComp.SetRange(Position, ProductionBOMLine.Position);\n+ ProductionOrderComp.FindFirst();\n+\n+ ProductionBOMCommentLine.SetRange(\"Production BOM No.\", ProductionBOMLine.\"Production BOM No.\");\n+ ProductionBOMCommentLine.SetRange(\"BOM Line No.\", ProductionOrderComp.\"Line No.\");\n+ ProductionBOMCommentLine.FindFirst();\n+\n+ ProdOrderCompCmtLine.SetRange(\"Status\", ProductionOrderComp.Status::\"Firm Planned\");\n+ ProdOrderCompCmtLine.SetRange(\"Prod. Order No.\", ProductionOrderComp.\"Prod. Order No.\");\n+ ProdOrderCompCmtLine.SetRange(\"Prod. Order Line No.\", ProductionOrderComp.\"Prod. Order Line No.\");\n+ ProdOrderCompCmtLine.SetRange(\"Prod. Order BOM Line No.\", ProductionOrderComp.\"Line No.\");\n+ ProdOrderCompCmtLine.FindFirst();\n+ end;\n+\n [RequestPageHandler]\n [Scope('OnPrem')]\n procedure CalculatePlanPlanWkshRequestPageHandler(var CalculatePlanPlanWksh: TestRequestPage \"Calculate Plan - Plan. Wksh.\")\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\nindex bd37042..314c8fc 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n@@ -1535,6 +1535,7 @@ codeunit 99000813 \"Carry Out Action\"\n \n if not ProductionBOMHeader.Get(ProdOrderLine.\"Production BOM No.\") then\n exit;\n+ ProductionBOMLine.SetRange(Position, ProdOrderComponent.Position);\n \n ActiveVersionCode := VersionManagement.GetBOMVersion(ProductionBOMHeader.\"No.\", WorkDate(), true);\n \n"} +{"instance_id": "microsoftInternal__NAV-207878__cf-1", "base_instance_id": "microsoftInternal__NAV-207878", "variant_description": "Force availability warning when assembly line due date is before work date", "failure_layer": null, "FAIL_TO_PASS": [{"codeunitID": 134381, "functionName": ["AvailWarningAssemblyOrdersConsideringDueDates"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/Dimension/ERMDimensionPriority.Codeunit.al b/App/Layers/W1/Tests/Dimension/ERMDimensionPriority.Codeunit.al\nindex 2628814..b1dd886 100644\n--- a/App/Layers/W1/Tests/Dimension/ERMDimensionPriority.Codeunit.al\n+++ b/App/Layers/W1/Tests/Dimension/ERMDimensionPriority.Codeunit.al\n@@ -25,9 +25,20 @@ codeunit 134381 \"ERM Dimension Priority\"\n LibraryWarehouse: Codeunit \"Library - Warehouse\";\n LibraryManufacturing: Codeunit \"Library - Manufacturing\";\n SystemActionTriggers: Codeunit \"System Action Triggers\";\n+ LibraryAssembly: Codeunit \"Library - Assembly\";\n+ NotificationLifecycleMgt: Codeunit \"Notification Lifecycle Mgt.\";\n isInitialized: Boolean;\n WrongDimValueCodeErr: Label 'Wrong dimension value code.';\n DefaultDimPrioritiesNotificationIdTxt: Label '69CE42D9-0580-4907-8BC9-0EEB59DA96C9', Locked = true;\n+ ItemAvaibilityIsLowNotificationIdTxt: Label '2712ad06-c48b-4c20-820e-347a60c9ad00', Locked = true;\n+ AvailWarningYesMsg: Label 'Avail. warning should be Yes';\n+ AvailWarningNoMsg: Label 'Avail. warning should be No';\n+ DueDateBeforeWDFromLineMsg: Label 'Due Date %1 is before work date %2.';\n+ DueDateBeforeWDFromHeaderMsg: Label 'Due Date %1 is before work date %2 in one or more of the assembly lines.';\n+ NewLineDueDate: Date;\n+ TestMethodName: Text[30];\n+ Step: Integer;\n+ TestVSTF257960A: Label 'VSTF257960A';\n \n [Test]\n [Scope('OnPrem')]\n@@ -758,6 +769,105 @@ codeunit 134381 \"ERM Dimension Priority\"\n Assert.IsFalse(ProdOrderLine.\"Shortcut Dimension 1 Code\" = ProdOrderComponent.\"Shortcut Dimension 1 Code\", 'Dimensions are equal.');\n end;\n \n+ [Test]\n+ [HandlerFunctions('DueDateBeforeWorkDateMsgHandler')]\n+ procedure AvailWarningAssemblyOrdersConsideringDueDates()\n+ var\n+ AsmHeader: Record \"Assembly Header\";\n+ AsmHeader2: Record \"Assembly Header\";\n+ AsmLine: Record \"Assembly Line\";\n+ AssemblySetup: Record \"Assembly Setup\";\n+ BOMComponent: Record \"BOM Component\";\n+ ComponentItem: Record Item;\n+ ItemJournalLine: Record \"Item Journal Line\";\n+ Location: Record Location;\n+ ManufacturingSetup: Record \"Manufacturing Setup\";\n+ MyNotifications: Record \"My Notifications\";\n+ ProductItem: Record Item;\n+ Newworkdate: Date;\n+ begin\n+ // [SCENARIO 565695] Avail. Warning on Assembly Orders are now considering Demand for the Component only for selected Assembly Order.\n+ Initialize();\n+\n+ // [GIVEN] Set Item Avaibility Is Low Notification Enabled.\n+ SetMyNotificationsSetup(MyNotifications);\n+\n+ // [GIVEN] Create New Location.\n+ LibraryWarehouse.CreateLocationWithInventoryPostingSetup(Location);\n+\n+ // [GIVEN] Validate \"Default Location for Orders\" in Assembly Setup for New Created Location.\n+ AssemblySetup.Get();\n+ AssemblySetup.Validate(\"Default Location for Orders\", Location.Code);\n+ AssemblySetup.Modify(true);\n+\n+ // [GIVEN] Validate \"Components at Location\" in Manufacturing Setup for New Created Location.\n+ ManufacturingSetup.Get();\n+ ManufacturingSetup.Validate(\"Components at Location\", Location.Code);\n+ ManufacturingSetup.Modify(true);\n+\n+ // [GIVEN] Created Component Item\n+ LibraryInventory.CreateItem(ComponentItem);\n+\n+ // [GIVEN] Created Master Item and Assembly Component for Master Item\n+ LibraryInventory.CreateItem(ProductItem);\n+ ProductItem.Validate(\"Replenishment System\", ProductItem.\"Replenishment System\"::Purchase);\n+ ProductItem.Validate(\"Manufacturing Policy\", ProductItem.\"Manufacturing Policy\"::\"Make-to-Stock\");\n+ ProductItem.Modify(true);\n+ LibraryAssembly.CreateAssemblyListComponent(BOMComponent.Type::Item, ComponentItem.\"No.\", ProductItem.\"No.\", '', 0, 2, true);\n+\n+ // [GIVEN] Created 1st Assembly Order\n+ MakeAsmOrder(AsmHeader, ProductItem, 1, WorkDate(), Location.Code);\n+\n+ // [WHEN] Get Assemblyline and Validate Quantity \n+ AsmLine.Get(AsmHeader.\"Document Type\", AsmHeader.\"No.\", 10000);\n+ AsmLine.ShowAvailabilityWarning();\n+ AsmLine.Validate(Quantity, AsmLine.Quantity);\n+\n+ // [THEN] Warning should be triggered if Due Date is before Work Date\n+ Assert.IsTrue(AsmLine.\"Avail. Warning\", AvailWarningYesMsg);\n+\n+\n+ // [GIVEN] Created and Post Item Journal for Component Item\n+ LibraryInventory.CreateItemJournalLineInItemTemplate(ItemJournalLine, ComponentItem.\"No.\", Location.Code, '', 2);\n+ LibraryInventory.PostItemJournalLine(ItemJournalLine.\"Journal Template Name\", ItemJournalLine.\"Journal Batch Name\");\n+\n+ // [WHEN] Get Assemblyline and Validate Quantity for 1st Assembly Order\n+ AsmLine.Get(AsmHeader.\"Document Type\", AsmHeader.\"No.\", 10000);\n+ AsmLine.ShowAvailabilityWarning();\n+ AsmLine.Validate(Quantity, AsmLine.Quantity);\n+\n+ // [THEN] 2nd Check \"Avail. Warning\" on Assemblyline for 1st Assembly Order\n+ Assert.IsFalse(AsmLine.\"Avail. Warning\", AvailWarningNoMsg);\n+\n+ // [GIVEN] Recall All Notifications\n+ NotificationLifecycleMgt.RecallAllNotifications();\n+\n+ // [GIVEN] Set 2nd New Work Date.\n+ Newworkdate := CalcDate('<1W>', WorkDate());\n+ WorkDate(Newworkdate);\n+\n+ // [GIVEN] Make 2nd Assembly Order \n+ MakeAsmOrder(AsmHeader2, ProductItem, 3, Newworkdate, Location.Code);\n+\n+ // [WHEN] Get Assemblyline and Validate Quantity for 2nd Assembly Order\n+ AsmLine.Get(AsmHeader2.\"Document Type\", AsmHeader2.\"No.\", 10000);\n+ AsmLine.ShowAvailabilityWarning();\n+ AsmLine.Validate(Quantity, AsmLine.Quantity);\n+\n+ // [THEN] 1st Check \"Avail. Warning\" on Assemblyline for 2nd Assembly Order\n+ Assert.IsTrue(AsmLine.\"Avail. Warning\", AvailWarningYesMsg);\n+\n+ // [WHEN] Get Assemblyline and Validate Quantity for 1st Assembly Order\n+ AsmLine.Get(AsmHeader.\"Document Type\", AsmHeader.\"No.\", 10000);\n+ AsmLine.ShowAvailabilityWarning();\n+ AsmLine.Validate(Quantity, AsmLine.Quantity);\n+\n+ // [THEN] 3rd Check \"Avail. Warning\" on Assemblyline for 1st Assembly Order\n+ Assert.IsFalse(AsmLine.\"Avail. Warning\", AvailWarningNoMsg);\n+\n+ NotificationLifecycleMgt.RecallAllNotifications();\n+ end;\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n@@ -1312,6 +1422,27 @@ codeunit 134381 \"ERM Dimension Priority\"\n CreateDefaultDimensionPriority(SourceCode, DATABASE::\"G/L Account\", 2);\n end;\n \n+ local procedure SetMyNotificationsSetup(var MyNotifications: Record \"My Notifications\")\n+ begin\n+ if MyNotifications.Get(UserId, ItemAvaibilityIsLowNotificationIdTxt) then begin\n+ MyNotifications.Validate(Enabled, true);\n+ MyNotifications.Modify(true);\n+ end else\n+ MyNotifications.InsertDefault(ItemAvaibilityIsLowNotificationIdTxt, '', '', true);\n+ end;\n+\n+ local procedure MakeAsmOrder(var AsmHeader: Record \"Assembly Header\"; ParentItem: Record Item; Qty: Decimal; DueDate: Date; LocationCode: Code[10])\n+ begin\n+ Clear(AsmHeader);\n+ AsmHeader.\"Document Type\" := AsmHeader.\"Document Type\"::Order;\n+ AsmHeader.Insert(true);\n+ AsmHeader.Validate(\"Due Date\", DueDate);\n+ AsmHeader.Validate(\"Location Code\", LocationCode);\n+ AsmHeader.Validate(\"Item No.\", ParentItem.\"No.\");\n+ AsmHeader.Validate(Quantity, Qty);\n+ AsmHeader.Modify(true);\n+ end;\n+\n [MessageHandler]\n [Scope('OnPrem')]\n procedure MessageHandler(Message: Text)\n@@ -1541,5 +1672,36 @@ codeunit 134381 \"ERM Dimension Priority\"\n begin\n RequestPage.OK().Invoke();\n end;\n+\n+ [MessageHandler]\n+ procedure DueDateBeforeWorkDateMsgHandler(Msg: Text[1024])\n+ var\n+ MessageTextFromHeader: Text[1024];\n+ MessageTextFromLine: Text[1024];\n+ begin\n+ MessageTextFromHeader := StrSubstNo(DueDateBeforeWDFromHeaderMsg, NewLineDueDate, WorkDate());\n+ MessageTextFromLine := StrSubstNo(DueDateBeforeWDFromLineMsg, NewLineDueDate, WorkDate());\n+ case TestMethodName of\n+ TestVSTF257960A:\n+ case Step of\n+ 1, 9:\n+ begin\n+ Assert.IsTrue(\n+ StrPos(Msg, MessageTextFromHeader) > 0, StrSubstNo('Wrong message: %1 \\Expected: %2', Msg, MessageTextFromHeader));\n+ exit;\n+ end;\n+ 10:\n+ begin\n+ Assert.IsTrue(\n+ StrPos(Msg, MessageTextFromLine) > 0, StrSubstNo('Wrong message: %1 \\Expected: %2', Msg, MessageTextFromLine));\n+ exit;\n+ end;\n+ end;\n+ else\n+ exit; // for other test methods.\n+ end;\n+\n+ Assert.Fail(StrSubstNo('Message at Step %1 not expected.', Step));\n+ end;\n }\n \n", "patch": "diff --git a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLine.Table.al b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLine.Table.al\nindex 62ba45e..2f9a548 100644\n--- a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLine.Table.al\n@@ -1575,10 +1575,13 @@ table 901 \"Assembly Line\"\n EarliestDate);\n \n if ExpectedInventory < \"Remaining Quantity (Base)\" then begin\n- if ExpectedInventory < 0 then\n- AbleToAssemble := 0\n- else\n- AbleToAssemble := Round(ExpectedInventory / \"Quantity per\", UOMMgt.QtyRndPrecision(), '<')\n+ if ExpectedInventory < 0 then begin\n+ AbleToAssemble := 0;\n+ if AvailableInventory >= \"Remaining Quantity (Base)\" then\n+ AbleToAssemble := AssemblyHeader.\"Remaining Quantity\";\n+ end else\n+ AbleToAssemble := Round(ExpectedInventory / \"Quantity per\", UOMMgt.QtyRndPrecision(), '<');\n+\n end else begin\n AbleToAssemble := AssemblyHeader.\"Remaining Quantity\";\n EarliestDate := 0D;\ndiff --git a/App/Layers/W1/BaseApp/Inventory/Availability/ItemCheckAvail.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Availability/ItemCheckAvail.Codeunit.al\nindex 26f5dfa..855fc12 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Availability/ItemCheckAvail.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Availability/ItemCheckAvail.Codeunit.al\n@@ -28,6 +28,7 @@ codeunit 311 \"Item-Check Avail.\"\n AvailableToPromise: Codeunit \"Available to Promise\";\n NotificationLifecycleMgt: Codeunit \"Notification Lifecycle Mgt.\";\n UOMMgt: Codeunit \"Unit of Measure Management\";\n+ AssemblyLineDueDateGlobal: Date;\n ItemNo: Code[20];\n UnitOfMeasureCode: Code[10];\n ItemLocationCode: Code[10];\n@@ -331,9 +332,8 @@ codeunit 311 \"Item-Check Avail.\"\n if IsHandled then\n exit;\n \n- AvailableToPromise.CalcQtyAvailabletoPromise(\n- Item, GrossReq, SchedRcpt, Item.GetRangeMax(\"Date Filter\"),\n- CompanyInfo.\"Check-Avail. Time Bucket\", CompanyInfo.\"Check-Avail. Period Calc.\");\n+ AvailableToPromise.CalcQtyAvailabletoPromise(Item, GrossReq, SchedRcpt, CheckAvailabilityDate(Item, AssemblyLineDueDateGlobal),\n+ CompanyInfo.\"Check-Avail. Time Bucket\", CompanyInfo.\"Check-Avail. Period Calc.\");\n InventoryQty := ConvertQty(AvailableToPromise.CalcAvailableInventory(Item) - OldItemNetResChange);\n GrossReq := ConvertQty(GrossReq);\n ReservedReq := ConvertQty(AvailableToPromise.CalcReservedRequirement(Item) + OldItemNetResChange);\n@@ -485,6 +485,7 @@ codeunit 311 \"Item-Check Avail.\"\n OldItemNetChange := 0;\n \n OldAssemblyLine := AssemblyLine;\n+ AssemblyLineDueDateGlobal := OldAssemblyLine.\"Due Date\";\n \n if OldAssemblyLine.Find() then begin // Find previous quantity\n ShouldCheckQty :=\n@@ -767,6 +768,16 @@ codeunit 311 \"Item-Check Avail.\"\n UseOrderPromise := NewUseOrderPromise;\n end;\n \n+ local procedure CheckAvailabilityDate(var Item: Record Item; AssemblyLineDueDate: Date): Date\n+ begin\n+ if AssemblyLineDueDate < WorkDate() then\n+ exit(0D);\n+ if AssemblyLineDueDate = 0D then\n+ exit(Item.GetRangeMax(\"Date Filter\"))\n+ else\n+ exit(0D);\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnAfterCalculate(var Item: Record Item; var InitialQtyAvailable: Decimal; OldItemNetChange: Decimal; QtyPerUnitOfMeasure: Decimal; var ContextInfo: Dictionary of [Text, Text])\n begin\n"} +{"instance_id": "microsoftInternal__NAV-208649__cf-1", "base_instance_id": "microsoftInternal__NAV-208649", "variant_description": "Sales Order requesting 2 units of the finished good must scale component Expected Quantity accordingly", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-208649__cf-2", "FAIL_TO_PASS": [{"codeunitID": 137088, "functionName": ["ReleasedProdOrderQuantityPerandExpectedQtyRoundingPrecisionChecking"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM/SCMOrderPlanningIII.Codeunit.al b/App/Layers/W1/Tests/SCM/SCMOrderPlanningIII.Codeunit.al\nindex 7415eaa..2874464 100644\n--- a/App/Layers/W1/Tests/SCM/SCMOrderPlanningIII.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM/SCMOrderPlanningIII.Codeunit.al\n@@ -45,6 +45,8 @@ codeunit 137088 \"SCM Order Planning - III\"\n LineExistErr: Label 'Requistion line in %1 worksheet should exist for item %2';\n PurchaseLineQuantityBaseErr: Label '%1.%2 must be nearly equal to %3.', Comment = '%1 : Purchase Line, %2 : Quantity (Base), %3 : Value.';\n BOMFixedQtyCalcFormulaErr: Label 'BOM Fixed Quantity Calculation Formula should be used to calculate the values.';\n+ RelesedProdOrderComponentQtyPerRoundingErr: Label 'Relesed Production Order Item Component Quantity per %1 Not Match With Expected Result %2';\n+ RelesedProdOrderComponentExpQtyRoundingErr: Label 'Relesed Production Order Item Component Expected Quantity %1 Not Match With Expected Result %2';\n \n [Test]\n [HandlerFunctions('MakeSupplyOrdersPageHandler')]\n@@ -2988,6 +2990,73 @@ codeunit 137088 \"SCM Order Planning - III\"\n VerifyStartingTimeOnFirmPlannedProductionOrder(StartingTime, ChildItem.\"No.\", ProductionOrderNo);\n end;\n \n+ [Test]\n+ [HandlerFunctions('ModalPageHandler,ErrorMessageHandler')]\n+ procedure ReleasedProdOrderQuantityPerandExpectedQtyRoundingPrecisionChecking()\n+ var\n+ BaseItemUnitOfMeasure: Record \"Item Unit of Measure\";\n+ ComponentItem: Record Item;\n+ ProdOrderComp: Record \"Prod. Order Component\";\n+ ProdOrderLine: Record \"Prod. Order Line\";\n+ ProductionBOMHeader: Record \"Production BOM Header\";\n+ ProductionBOMLine: Record \"Production BOM Line\";\n+ ProductionOrder: Record \"Production Order\";\n+ ProductItem: Record Item;\n+ SalesHeader: Record \"Sales Header\";\n+ ExpectedQty: Decimal;\n+ RelesedProdOrderNo: Code[20];\n+ Status: Enum \"Production Order Status\";\n+ begin\n+ // [SCENARIO 562766] If a component's Item UOM has a 'Quantity Rounding Precision' of 1, & a Finished Good consumes partial quantity, \n+ // the Prod. Order created from the Planning of a Sales Order pulls in the Component with a 'Qty. Per' and 'Exp. Qty.' of 0.\n+ Initialize();\n+\n+ // [GIVEN] Created Component Item\n+ LibraryInventory.CreateItem(ComponentItem);\n+ ComponentItem.Validate(\"Replenishment System\", ComponentItem.\"Replenishment System\"::Purchase);\n+ ComponentItem.Validate(\"Rounding Precision\", LibraryRandom.RandPrecision());\n+ ComponentItem.Validate(\"Reordering Policy\", ComponentItem.\"Reordering Policy\"::\"Lot-for-Lot\");\n+ ComponentItem.Validate(\"Include Inventory\", true);\n+ ComponentItem.Modify(true);\n+\n+ // [GIVEN] Set Qty. Rounding Precision = 1 for Component Item\n+ BaseItemUnitOfMeasure.Get(ComponentItem.\"No.\", ComponentItem.\"Base Unit of Measure\");\n+ BaseItemUnitOfMeasure.Validate(\"Qty. Rounding Precision\", 1);\n+ BaseItemUnitOfMeasure.Modify();\n+\n+ // [GIVEN] Created Production Bom using Component Item\n+ LibraryManufacturing.CreateProductionBOMHeader(ProductionBOMHeader, ComponentItem.\"Base Unit of Measure\");\n+ LibraryManufacturing.CreateProductionBOMLine(ProductionBOMHeader, ProductionBOMLine, '', ProductionBOMLine.Type::Item, ComponentItem.\"No.\", LibraryRandom.RandDecInDecimalRange(0.01, 0.99, 2));\n+ ProductionBOMHeader.Validate(Status, ProductionBOMHeader.Status::Certified);\n+ ProductionBOMHeader.Modify();\n+\n+ // [GIVEN] Created Master Item and Production Bom Assigned to Master Item\n+ LibraryInventory.CreateItem(ProductItem);\n+ ProductItem.Validate(\"Replenishment System\", ProductItem.\"Replenishment System\"::\"Prod. Order\");\n+ ProductItem.Validate(\"Rounding Precision\", 1);\n+ ProductItem.Validate(\"Reordering Policy\", ProductItem.\"Reordering Policy\"::Order);\n+ ProductItem.Validate(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n+ ProductItem.Modify(true);\n+\n+ // [GIVEN] Created Sales Order Using Master Item Quantity - 2\n+ CreateSalesOrder(SalesHeader, ProductItem.\"No.\", '', 2, 1);\n+\n+ // [WHEN] Created Released Prod. Order From Sales Order Using Planning\n+ LibraryPlanning.CreateProdOrderUsingPlanning(ProductionOrder, Status::\"Firm Planned\", SalesHeader.\"No.\", ProductItem.\"No.\");\n+ RelesedProdOrderNo := LibraryManufacturing.ChangeStatusFirmPlanToReleased(ProductionOrder.\"No.\");\n+\n+ // [WHEN] Find Released Production Order Component\n+ FindProdOrderLine(ProdOrderLine, RelesedProdOrderNo);\n+ FindProdOrderComponent(ProdOrderComp, ProdOrderLine.\"Prod. Order No.\", ComponentItem.\"No.\");\n+\n+ // [WHEN] Getting Expected result using Component Rounding Precision\n+ ExpectedQty := Round(ProductionBOMLine.\"Quantity per\" * BaseItemUnitOfMeasure.\"Qty. Rounding Precision\" / BaseItemUnitOfMeasure.\"Qty. Rounding Precision\", ComponentItem.\"Rounding Precision\");\n+\n+ // [THEN] Expected Quantity must be Equal to Production Order Component \"Quantity per\" And \"Expected Quantity\"\n+ Assert.AreEqual(ExpectedQty, ProdOrderComp.\"Quantity per\", StrSubstNo(RelesedProdOrderComponentQtyPerRoundingErr, ProdOrderComp.\"Quantity per\", ExpectedQty));\n+ Assert.AreEqual(ExpectedQty * 2, ProdOrderComp.\"Expected Quantity\", StrSubstNo(RelesedProdOrderComponentExpQtyRoundingErr, ProdOrderComp.\"Expected Quantity\", ExpectedQty * 2));\n+ end;\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n@@ -3805,6 +3874,14 @@ codeunit 137088 \"SCM Order Planning - III\"\n Assert.IsTrue(ProductionOrder.\"Starting Time\" = StartingTime, '');\n end;\n \n+ local procedure FindProdOrderLine(var ProdOrderLine: Record \"Prod. Order Line\"; ProductionOrderNo: Code[20])\n+ begin\n+ ProdOrderLine.Reset();\n+ ProdOrderLine.SetRange(Status, ProdOrderLine.Status::Released);\n+ ProdOrderLine.SetRange(\"Prod. Order No.\", ProductionOrderNo);\n+ ProdOrderLine.FindFirst();\n+ end;\n+\n [ModalPageHandler]\n [Scope('OnPrem')]\n procedure MakeSupplyOrdersPageHandler(var MakeSupplyOrders: Page \"Make Supply Orders\"; var Response: Action)\n@@ -3911,5 +3988,16 @@ codeunit 137088 \"SCM Order Planning - III\"\n begin\n Reply := true;\n end;\n+\n+ [ModalPageHandler]\n+ procedure ModalPageHandler(var CreateOrderFromSales: Page \"Create Order From Sales\"; var Response: Action)\n+ begin\n+ Response := Action::Yes;\n+ end;\n+\n+ [MessageHandler]\n+ procedure ErrorMessageHandler(Message: Text[1024])\n+ begin\n+ end;\n }\n \n", "patch": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\nindex 36930a9..2367479 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n@@ -43,6 +43,7 @@ codeunit 99000773 \"Calculate Prod. Order\"\n ProdOrderComp: Record \"Prod. Order Component\";\n ProdOrderRoutingLine2: Record \"Prod. Order Routing Line\";\n ProdBOMLine: array[99] of Record \"Production BOM Line\";\n+ ProdLineItem: Record Item;\n UOMMgt: Codeunit \"Unit of Measure Management\";\n MfgCostCalcMgt: Codeunit \"Mfg. Cost Calculation Mgt.\";\n VersionMgt: Codeunit VersionManagement;\n@@ -297,6 +298,7 @@ codeunit 99000773 \"Calculate Prod. Order\"\n ProdOrderComp.Validate(\"Unit of Measure Code\", ProdBOMLine[Level].\"Unit of Measure Code\");\n if (ProdOrderComp.\"Item No.\" <> '') and Item2.Get(ProdOrderComp.\"Item No.\") then\n QtyRoundPrecision := UOMMgt.GetQtyRoundingPrecision(Item2, ProdBOMLine[Level].\"Unit of Measure Code\");\n+ CheckingRoundingPrecision(Item2, ProdLineItem, QtyRoundPrecision, Level);\n if QtyRoundPrecision <> 0 then\n ProdOrderComp.\"Quantity per\" := Round(ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM, QtyRoundPrecision)\n else\n@@ -975,6 +977,21 @@ codeunit 99000773 \"Calculate Prod. Order\"\n ProdOrderLineToCheck.TestField(Quantity);\n end;\n \n+ local procedure CheckingRoundingPrecision(ChildItem: Record Item; ProdLineItem: Record Item; var QtyRoundPrecision: Decimal; Level: Integer)\n+ begin\n+ if (ChildItem.\"Rounding Precision\" = 0) or (QtyRoundPrecision = 0) then\n+ exit;\n+\n+ if (not ProdLineItem.Get(ProdOrderLine.\"Item No.\")) or (ProdLineItem.\"Replenishment System\" <> ProdLineItem.\"Replenishment System\"::\"Prod. Order\") then\n+ exit;\n+\n+ if (ChildItem.\"Base Unit of Measure\" <> ProdBOMLine[Level].\"Unit of Measure Code\") then\n+ exit;\n+ QtyRoundPrecision := ChildItem.\"Rounding Precision\";\n+ ProdOrderComp.\"Qty. Rounding Precision\" := ChildItem.\"Rounding Precision\";\n+ ProdOrderComp.\"Qty. Rounding Precision (Base)\" := ChildItem.\"Rounding Precision\";\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnAfterInsertProdRoutingLine(var ProdOrderRoutingLine: Record \"Prod. Order Routing Line\"; ProdOrderLine: Record \"Prod. Order Line\")\n begin\n"} +{"instance_id": "microsoftInternal__NAV-208649__cf-2", "base_instance_id": "microsoftInternal__NAV-208649", "variant_description": "Production BOM consuming a different fractional quantity (0.49) must still keep correct Quantity per and Expected Quantity", "failure_layer": null, "FAIL_TO_PASS": [{"codeunitID": 137088, "functionName": ["ReleasedProdOrderQuantityPerandExpectedQtyRoundingPrecisionChecking"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM/SCMOrderPlanningIII.Codeunit.al b/App/Layers/W1/Tests/SCM/SCMOrderPlanningIII.Codeunit.al\nindex 7415eaa53ccd..2573227dbca7 100644\n--- a/App/Layers/W1/Tests/SCM/SCMOrderPlanningIII.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM/SCMOrderPlanningIII.Codeunit.al\n@@ -45,6 +45,8 @@ codeunit 137088 \"SCM Order Planning - III\"\n LineExistErr: Label 'Requistion line in %1 worksheet should exist for item %2';\n PurchaseLineQuantityBaseErr: Label '%1.%2 must be nearly equal to %3.', Comment = '%1 : Purchase Line, %2 : Quantity (Base), %3 : Value.';\n BOMFixedQtyCalcFormulaErr: Label 'BOM Fixed Quantity Calculation Formula should be used to calculate the values.';\n+ RelesedProdOrderComponentQtyPerRoundingErr: Label 'Relesed Production Order Item Component Quantity per %1 Not Match With Expected Result %2';\n+ RelesedProdOrderComponentExpQtyRoundingErr: Label 'Relesed Production Order Item Component Expected Quantity %1 Not Match With Expected Result %2';\n \n [Test]\n [HandlerFunctions('MakeSupplyOrdersPageHandler')]\n@@ -2988,6 +2990,73 @@ codeunit 137088 \"SCM Order Planning - III\"\n VerifyStartingTimeOnFirmPlannedProductionOrder(StartingTime, ChildItem.\"No.\", ProductionOrderNo);\n end;\n \n+ [Test]\n+ [HandlerFunctions('ModalPageHandler,ErrorMessageHandler')]\n+ procedure ReleasedProdOrderQuantityPerandExpectedQtyRoundingPrecisionChecking()\n+ var\n+ BaseItemUnitOfMeasure: Record \"Item Unit of Measure\";\n+ ComponentItem: Record Item;\n+ ProdOrderComp: Record \"Prod. Order Component\";\n+ ProdOrderLine: Record \"Prod. Order Line\";\n+ ProductionBOMHeader: Record \"Production BOM Header\";\n+ ProductionBOMLine: Record \"Production BOM Line\";\n+ ProductionOrder: Record \"Production Order\";\n+ ProductItem: Record Item;\n+ SalesHeader: Record \"Sales Header\";\n+ ExpectedQty: Decimal;\n+ RelesedProdOrderNo: Code[20];\n+ Status: Enum \"Production Order Status\";\n+ begin\n+ // [SCENARIO 562766] If a component's Item UOM has a 'Quantity Rounding Precision' of 1, & a Finished Good consumes partial quantity, \n+ // the Prod. Order created from the Planning of a Sales Order pulls in the Component with a 'Qty. Per' and 'Exp. Qty.' of 0.\n+ Initialize();\n+\n+ // [GIVEN] Created Component Item\n+ LibraryInventory.CreateItem(ComponentItem);\n+ ComponentItem.Validate(\"Replenishment System\", ComponentItem.\"Replenishment System\"::Purchase);\n+ ComponentItem.Validate(\"Rounding Precision\", LibraryRandom.RandPrecision());\n+ ComponentItem.Validate(\"Reordering Policy\", ComponentItem.\"Reordering Policy\"::\"Lot-for-Lot\");\n+ ComponentItem.Validate(\"Include Inventory\", true);\n+ ComponentItem.Modify(true);\n+\n+ // [GIVEN] Set Qty. Rounding Precision = 1 for Component Item\n+ BaseItemUnitOfMeasure.Get(ComponentItem.\"No.\", ComponentItem.\"Base Unit of Measure\");\n+ BaseItemUnitOfMeasure.Validate(\"Qty. Rounding Precision\", 1);\n+ BaseItemUnitOfMeasure.Modify();\n+\n+ // [GIVEN] Created Production Bom using Component Item\n+ LibraryManufacturing.CreateProductionBOMHeader(ProductionBOMHeader, ComponentItem.\"Base Unit of Measure\");\n+ LibraryManufacturing.CreateProductionBOMLine(ProductionBOMHeader, ProductionBOMLine, '', ProductionBOMLine.Type::Item, ComponentItem.\"No.\", 0.49);\n+ ProductionBOMHeader.Validate(Status, ProductionBOMHeader.Status::Certified);\n+ ProductionBOMHeader.Modify();\n+\n+ // [GIVEN] Created Master Item and Production Bom Assigned to Master Item\n+ LibraryInventory.CreateItem(ProductItem);\n+ ProductItem.Validate(\"Replenishment System\", ProductItem.\"Replenishment System\"::\"Prod. Order\");\n+ ProductItem.Validate(\"Rounding Precision\", 1);\n+ ProductItem.Validate(\"Reordering Policy\", ProductItem.\"Reordering Policy\"::Order);\n+ ProductItem.Validate(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n+ ProductItem.Modify(true);\n+\n+ // [GIVEN] Created Sales Order Using Master Item Quantity - 1\n+ CreateSalesOrder(SalesHeader, ProductItem.\"No.\", '', 1, 1);\n+\n+ // [WHEN] Created Released Prod. Order From Sales Order Using Planning\n+ LibraryPlanning.CreateProdOrderUsingPlanning(ProductionOrder, Status::\"Firm Planned\", SalesHeader.\"No.\", ProductItem.\"No.\");\n+ RelesedProdOrderNo := LibraryManufacturing.ChangeStatusFirmPlanToReleased(ProductionOrder.\"No.\");\n+\n+ // [WHEN] Find Released Production Order Component\n+ FindProdOrderLine(ProdOrderLine, RelesedProdOrderNo);\n+ FindProdOrderComponent(ProdOrderComp, ProdOrderLine.\"Prod. Order No.\", ComponentItem.\"No.\");\n+\n+ // [WHEN] Getting Expected result using Component Rounding Precision\n+ ExpectedQty := Round(ProductionBOMLine.\"Quantity per\" * BaseItemUnitOfMeasure.\"Qty. Rounding Precision\" / BaseItemUnitOfMeasure.\"Qty. Rounding Precision\", ComponentItem.\"Rounding Precision\");\n+\n+ // [THEN] Expected Quantity must be Equal to Production Order Component \"Quantity per\" And \"Expected Quantity\"\n+ Assert.AreEqual(ExpectedQty, ProdOrderComp.\"Quantity per\", StrSubstNo(RelesedProdOrderComponentQtyPerRoundingErr, ProdOrderComp.\"Quantity per\", ExpectedQty));\n+ Assert.AreEqual(ExpectedQty, ProdOrderComp.\"Expected Quantity\", StrSubstNo(RelesedProdOrderComponentExpQtyRoundingErr, ProdOrderComp.\"Expected Quantity\", ExpectedQty));\n+ end;\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n@@ -3805,6 +3874,14 @@ codeunit 137088 \"SCM Order Planning - III\"\n Assert.IsTrue(ProductionOrder.\"Starting Time\" = StartingTime, '');\n end;\n \n+ local procedure FindProdOrderLine(var ProdOrderLine: Record \"Prod. Order Line\"; ProductionOrderNo: Code[20])\n+ begin\n+ ProdOrderLine.Reset();\n+ ProdOrderLine.SetRange(Status, ProdOrderLine.Status::Released);\n+ ProdOrderLine.SetRange(\"Prod. Order No.\", ProductionOrderNo);\n+ ProdOrderLine.FindFirst();\n+ end;\n+\n [ModalPageHandler]\n [Scope('OnPrem')]\n procedure MakeSupplyOrdersPageHandler(var MakeSupplyOrders: Page \"Make Supply Orders\"; var Response: Action)\n@@ -3911,5 +3988,16 @@ codeunit 137088 \"SCM Order Planning - III\"\n begin\n Reply := true;\n end;\n+\n+ [ModalPageHandler]\n+ procedure ModalPageHandler(var CreateOrderFromSales: Page \"Create Order From Sales\"; var Response: Action)\n+ begin\n+ Response := Action::Yes;\n+ end;\n+\n+ [MessageHandler]\n+ procedure ErrorMessageHandler(Message: Text[1024])\n+ begin\n+ end;\n }\n \n", "patch": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\nindex 36930a9..2db33e0 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n@@ -37,6 +37,7 @@ codeunit 99000773 \"Calculate Prod. Order\"\n var\n Item: Record Item;\n Location: Record Location;\n+ ProdLineItem: Record Item;\n SKU: Record \"Stockkeeping Unit\";\n ProdOrder: Record \"Production Order\";\n ProdOrderLine: Record \"Prod. Order Line\";\n@@ -298,5 +299,6 @@ codeunit 99000773 \"Calculate Prod. Order\"\n if (ProdOrderComp.\"Item No.\" <> '') and Item2.Get(ProdOrderComp.\"Item No.\") then\n QtyRoundPrecision := UOMMgt.GetQtyRoundingPrecision(Item2, ProdBOMLine[Level].\"Unit of Measure Code\");\n+ CheckingRoundingPrecision(Item2, ProdLineItem, QtyRoundPrecision, Level);\n if QtyRoundPrecision <> 0 then\n ProdOrderComp.\"Quantity per\" := Round(ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM, QtyRoundPrecision)\n else\n@@ -975,6 +977,21 @@ codeunit 99000773 \"Calculate Prod. Order\"\n ProdOrderLineToCheck.TestField(Quantity);\n end;\n \n+ local procedure CheckingRoundingPrecision(ChildItem: Record Item; ProdLineItem: Record Item; var QtyRoundPrecision: Decimal; Level: Integer)\n+ begin\n+ if (ChildItem.\"Rounding Precision\" = 0) or (QtyRoundPrecision = 0) then\n+ exit;\n+\n+ if (not ProdLineItem.Get(ProdOrderLine.\"Item No.\")) or (ProdLineItem.\"Replenishment System\" <> ProdLineItem.\"Replenishment System\"::\"Prod. Order\") then\n+ exit;\n+\n+ if (ChildItem.\"Base Unit of Measure\" <> ProdBOMLine[Level].\"Unit of Measure Code\") then\n+ exit;\n+ QtyRoundPrecision := ChildItem.\"Rounding Precision\";\n+ ProdOrderComp.\"Qty. Rounding Precision\" := ChildItem.\"Rounding Precision\";\n+ ProdOrderComp.\"Qty. Rounding Precision (Base)\" := ChildItem.\"Rounding Precision\";\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnAfterInsertProdRoutingLine(var ProdOrderRoutingLine: Record \"Prod. Order Routing Line\"; ProdOrderLine: Record \"Prod. Order Line\")\n begin\n"} +{"instance_id": "microsoftInternal__NAV-208748__cf-1", "base_instance_id": "microsoftInternal__NAV-208748", "variant_description": "Use exactly 2 items instead of 3 in the blanket order", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-208748__cf-1", "FAIL_TO_PASS": [{"codeunitID": 134377, "functionName": ["CheckMultipleExtendedTextFromBlanketSalesOrderToSalesOrder"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/ERM/ERMSalesBlanketOrder.Codeunit.al b/App/Layers/W1/Tests/ERM/ERMSalesBlanketOrder.Codeunit.al\n--- a/App/Layers/W1/Tests/ERM/ERMSalesBlanketOrder.Codeunit.al\n+++ b/App/Layers/W1/Tests/ERM/ERMSalesBlanketOrder.Codeunit.al\n@@ -33,6 +33,7 @@\n BlanketOrderLineNoFieldError: Label 'Blanket Order Line No. missing on related Sales Credit Memo';\n UnitPriceIsChangedErr: Label 'Unit Price is changed on Quantity update.';\n ValueMustBeEqualErr: Label '%1 must be equal to %2 in the %3.', Comment = '%1 = Field Caption , %2 = Expected Value, %3 = Table Caption';\n+ TotalRecordCountErr: Label 'Total record count must be equal to %1', Comment = '%1 = Record Count.';\n \n [Test]\n [Scope('OnPrem')]\n@@ -1377,10 +1378,45 @@\n until SalesLine.Next() = 0;\n end;\n \n+ [Test]\n+ procedure CheckMultipleExtendedTextFromBlanketSalesOrderToSalesOrder()\n+ var\n+ BlanketSalesHeader: Record \"Sales Header\";\n+ SalesOrderLine: Record \"Sales Line\";\n+ NotificationLifecycleMgt: Codeunit \"Notification Lifecycle Mgt.\";\n+ BlanketSalesOrder: TestPage \"Blanket Sales Order\";\n+ CustomerNo: Code[20];\n+ OrderNo: Code[20];\n+ begin\n+ // [SCENARIO 567891] Verify the multiple extended texts line when converting a blanket sales order to a sales order.\n+ Initialize();\n+\n+ // [GIVEN] Create Blanket Sales Order With Multiple Extended Items.\n+ CustomerNo := CreateBlanketSalesOrder(BlanketSalesOrder);\n+\n+ // [GIVEN] Find Blanket Sales Order.\n+ BlanketSalesHeader.SetRange(\"Sell-to Customer No.\", CustomerNo);\n+ BlanketSalesHeader.FindFirst();\n+\n+ // [WHEN] Convert the blanket sales order into a sales order.\n+ OrderNo := LibrarySales.BlanketSalesOrderMakeOrder(BlanketSalesHeader);\n+\n+ // [THEN] Calculate no. of Sales order line record.\n+ SalesOrderLine.SetRange(\"Document Type\", SalesOrderLine.\"Document Type\"::Order);\n+ SalesOrderLine.SetRange(\"Document No.\", OrderNo);\n+\n+ // [THEN] Verify the sales order line record count with the extended text records.\n+ Assert.AreEqual(\n+ SalesOrderLine.Count(), CalculateBlanketSalesOrderLineRecords(BlanketSalesHeader),\n+ StrSubstNo(TotalRecordCountErr, SalesOrderLine.Count()));\n+\n+ NotificationLifecycleMgt.RecallAllNotifications();\n+ end;\n+\n local procedure Initialize()\n var\n+ SalesReceivablesSetup: Record \"Sales & Receivables Setup\";\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n- SalesReceivablesSetup: Record \"Sales & Receivables Setup\";\n begin\n LibraryTestInitialize.OnTestInitialize(CODEUNIT::\"ERM Sales Blanket Order\");\n LibrarySetupStorage.Restore();\n@@ -1716,6 +1752,61 @@\n exit(Purchasing.Code);\n end;\n \n+ local procedure CreateBlanketSalesOrder(var BlanketSalesOrder: TestPage \"Blanket Sales Order\"): Code[20]\n+ var\n+ Customer: Record Customer;\n+ Item: array[3] of Record Item;\n+ i: Integer;\n+ begin\n+ LibrarySales.CreateCustomer(Customer);\n+ BlanketSalesOrder.OpenNew();\n+ BlanketSalesOrder.\"Sell-to Customer No.\".SetValue(Customer.\"No.\");\n+ for i := 1 to LibraryRandom.RandIntInRange(2, 2) do begin\n+ CreateMultipleItemWithExtendedText(Item[i]);\n+ CreateBlanketSalesLineFromSubformPage(BlanketSalesOrder, Item[i]);\n+ end;\n+ BlanketSalesOrder.Close();\n+\n+ exit(Customer.\"No.\");\n+ end;\n+\n+ local procedure CreateMultipleItemWithExtendedText(var Item: Record Item)\n+ var\n+ ExtendedTextHeader: Record \"Extended Text Header\";\n+ ExtendedTextLine: Record \"Extended Text Line\";\n+ begin\n+ Item.Get(CreateItem());\n+ Item.Validate(\"Automatic Ext. Texts\", true);\n+ Item.Modify(true);\n+\n+ LibraryInventory.CreateExtendedTextHeaderItem(ExtendedTextHeader, Item.\"No.\");\n+ LibraryInventory.CreateExtendedTextLineItem(ExtendedTextLine, ExtendedTextHeader);\n+ ExtendedTextLine.Validate(Text, Item.\"No.\");\n+ ExtendedTextLine.Modify(true);\n+ end;\n+\n+ local procedure CreateBlanketSalesLineFromSubformPage(var BlanketSalesOrder: TestPage \"Blanket Sales Order\"; Item: Record Item)\n+ var\n+ SalesLineType: Enum \"Sales Line Type\";\n+ begin\n+ BlanketSalesOrder.SalesLines.New();\n+ BlanketSalesOrder.SalesLines.Type.SetValue(SalesLineType::Item);\n+ BlanketSalesOrder.SalesLines.\"No.\".SetValue(Item.\"No.\");\n+ BlanketSalesOrder.SalesLines.Quantity.SetValue(LibraryRandom.RandInt(10));\n+ Commit();\n+ BlanketSalesOrder.SalesLines.Next();\n+ end;\n+\n+ local procedure CalculateBlanketSalesOrderLineRecords(BlanketSalesOrder: Record \"Sales Header\"): Integer\n+ var\n+ BlanketSalesLine: Record \"Sales Line\";\n+ begin\n+ BlanketSalesLine.SetRange(\"Document Type\", BlanketSalesOrder.\"Document Type\");\n+ BlanketSalesLine.SetRange(\"Document No.\", BlanketSalesOrder.\"No.\");\n+\n+ exit(BlanketSalesLine.Count);\n+ end;\n+\n [MessageHandler]\n [Scope('OnPrem')]\n procedure MessageHandler(Message: Text[1024])\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\n--- a/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\n@@ -203,7 +203,7 @@\n SalesLineOrder.\"Qty. to Asm. to Order (Base)\" := SalesLineOrder.\"Quantity (Base)\";\n end;\n SalesLineOrder.DefaultDeferralCode();\n- if IsSalesOrderLineToBeInserted(SalesLineOrder) then begin\n+ if IsSalesOrderLineToBeInserted(SalesLineOrder, SalesLineBlanketOrder) then begin\n OnBeforeInsertSalesOrderLine(SalesLineOrder, SalesHeaderOrder, SalesLineBlanketOrder, SalesHeaderBlanketOrder);\n SalesLineOrder.Insert();\n OnAfterInsertSalesOrderLine(SalesLineOrder, SalesHeaderOrder, SalesLineBlanketOrder, SalesHeaderBlanketOrder);\n@@ -447,15 +447,12 @@\n ItemCheckAvail.RaiseUpdateInterruptedError();\n end;\n \n- local procedure IsSalesOrderLineToBeInserted(SalesOrderLine: Record \"Sales Line\"): Boolean\n- var\n- AttachedToSalesLine: Record \"Sales Line\";\n+ local procedure IsSalesOrderLineToBeInserted(SalesOrderLine: Record \"Sales Line\"; BlanketSalesOrderLine: Record \"Sales Line\"): Boolean\n begin\n if not SalesOrderLine.IsExtendedText() then\n exit(true);\n- exit(\n- AttachedToSalesLine.Get(\n- SalesOrderLine.\"Document Type\", SalesOrderLine.\"Document No.\", SalesOrderLine.\"Attached to Line No.\"));\n+\n+ exit(BlanketSalesOrderLine.\"Attached to Line No.\" <> 0);\n end;\n \n [IntegrationEvent(false, false)]\n"} +{"instance_id": "microsoftInternal__NAV-208748__cf-2", "base_instance_id": "microsoftInternal__NAV-208748", "variant_description": "Only some items have extended text (mixed case: 2 of 3 items with extended text)", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-208748__cf-2", "FAIL_TO_PASS": [{"codeunitID": 134377, "functionName": ["CheckMultipleExtendedTextFromBlanketSalesOrderToSalesOrder"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/ERM/ERMSalesBlanketOrder.Codeunit.al b/App/Layers/W1/Tests/ERM/ERMSalesBlanketOrder.Codeunit.al\n--- a/App/Layers/W1/Tests/ERM/ERMSalesBlanketOrder.Codeunit.al\n+++ b/App/Layers/W1/Tests/ERM/ERMSalesBlanketOrder.Codeunit.al\n@@ -33,6 +33,7 @@\n BlanketOrderLineNoFieldError: Label 'Blanket Order Line No. missing on related Sales Credit Memo';\n UnitPriceIsChangedErr: Label 'Unit Price is changed on Quantity update.';\n ValueMustBeEqualErr: Label '%1 must be equal to %2 in the %3.', Comment = '%1 = Field Caption , %2 = Expected Value, %3 = Table Caption';\n+ TotalRecordCountErr: Label 'Total record count must be equal to %1', Comment = '%1 = Record Count.';\n \n [Test]\n [Scope('OnPrem')]\n@@ -1377,10 +1378,45 @@\n until SalesLine.Next() = 0;\n end;\n \n+ [Test]\n+ procedure CheckMultipleExtendedTextFromBlanketSalesOrderToSalesOrder()\n+ var\n+ BlanketSalesHeader: Record \"Sales Header\";\n+ SalesOrderLine: Record \"Sales Line\";\n+ NotificationLifecycleMgt: Codeunit \"Notification Lifecycle Mgt.\";\n+ BlanketSalesOrder: TestPage \"Blanket Sales Order\";\n+ CustomerNo: Code[20];\n+ OrderNo: Code[20];\n+ begin\n+ // [SCENARIO 567891] Verify the multiple extended texts line when converting a blanket sales order to a sales order.\n+ Initialize();\n+\n+ // [GIVEN] Create Blanket Sales Order With Multiple Extended Items.\n+ CustomerNo := CreateBlanketSalesOrder(BlanketSalesOrder);\n+\n+ // [GIVEN] Find Blanket Sales Order.\n+ BlanketSalesHeader.SetRange(\"Sell-to Customer No.\", CustomerNo);\n+ BlanketSalesHeader.FindFirst();\n+\n+ // [WHEN] Convert the blanket sales order into a sales order.\n+ OrderNo := LibrarySales.BlanketSalesOrderMakeOrder(BlanketSalesHeader);\n+\n+ // [THEN] Calculate no. of Sales order line record.\n+ SalesOrderLine.SetRange(\"Document Type\", SalesOrderLine.\"Document Type\"::Order);\n+ SalesOrderLine.SetRange(\"Document No.\", OrderNo);\n+\n+ // [THEN] Verify the sales order line record count with the extended text records.\n+ Assert.AreEqual(\n+ SalesOrderLine.Count(), CalculateBlanketSalesOrderLineRecords(BlanketSalesHeader),\n+ StrSubstNo(TotalRecordCountErr, SalesOrderLine.Count()));\n+\n+ NotificationLifecycleMgt.RecallAllNotifications();\n+ end;\n+\n local procedure Initialize()\n var\n+ SalesReceivablesSetup: Record \"Sales & Receivables Setup\";\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n- SalesReceivablesSetup: Record \"Sales & Receivables Setup\";\n begin\n LibraryTestInitialize.OnTestInitialize(CODEUNIT::\"ERM Sales Blanket Order\");\n LibrarySetupStorage.Restore();\n@@ -1716,6 +1752,64 @@\n exit(Purchasing.Code);\n end;\n \n+ local procedure CreateBlanketSalesOrder(var BlanketSalesOrder: TestPage \"Blanket Sales Order\"): Code[20]\n+ var\n+ Customer: Record Customer;\n+ Item: array[3] of Record Item;\n+ i: Integer;\n+ begin\n+ LibrarySales.CreateCustomer(Customer);\n+ BlanketSalesOrder.OpenNew();\n+ BlanketSalesOrder.\"Sell-to Customer No.\".SetValue(Customer.\"No.\");\n+ for i := 1 to LibraryRandom.RandIntInRange(3, 3) do begin\n+ if i < 3 then\n+ CreateMultipleItemWithExtendedText(Item[i])\n+ else\n+ Item[i].Get(CreateItem());\n+ CreateBlanketSalesLineFromSubformPage(BlanketSalesOrder, Item[i]);\n+ end;\n+ BlanketSalesOrder.Close();\n+\n+ exit(Customer.\"No.\");\n+ end;\n+\n+ local procedure CreateMultipleItemWithExtendedText(var Item: Record Item)\n+ var\n+ ExtendedTextHeader: Record \"Extended Text Header\";\n+ ExtendedTextLine: Record \"Extended Text Line\";\n+ begin\n+ Item.Get(CreateItem());\n+ Item.Validate(\"Automatic Ext. Texts\", true);\n+ Item.Modify(true);\n+\n+ LibraryInventory.CreateExtendedTextHeaderItem(ExtendedTextHeader, Item.\"No.\");\n+ LibraryInventory.CreateExtendedTextLineItem(ExtendedTextLine, ExtendedTextHeader);\n+ ExtendedTextLine.Validate(Text, Item.\"No.\");\n+ ExtendedTextLine.Modify(true);\n+ end;\n+\n+ local procedure CreateBlanketSalesLineFromSubformPage(var BlanketSalesOrder: TestPage \"Blanket Sales Order\"; Item: Record Item)\n+ var\n+ SalesLineType: Enum \"Sales Line Type\";\n+ begin\n+ BlanketSalesOrder.SalesLines.New();\n+ BlanketSalesOrder.SalesLines.Type.SetValue(SalesLineType::Item);\n+ BlanketSalesOrder.SalesLines.\"No.\".SetValue(Item.\"No.\");\n+ BlanketSalesOrder.SalesLines.Quantity.SetValue(LibraryRandom.RandInt(10));\n+ Commit();\n+ BlanketSalesOrder.SalesLines.Next();\n+ end;\n+\n+ local procedure CalculateBlanketSalesOrderLineRecords(BlanketSalesOrder: Record \"Sales Header\"): Integer\n+ var\n+ BlanketSalesLine: Record \"Sales Line\";\n+ begin\n+ BlanketSalesLine.SetRange(\"Document Type\", BlanketSalesOrder.\"Document Type\");\n+ BlanketSalesLine.SetRange(\"Document No.\", BlanketSalesOrder.\"No.\");\n+\n+ exit(BlanketSalesLine.Count);\n+ end;\n+\n [MessageHandler]\n [Scope('OnPrem')]\n procedure MessageHandler(Message: Text[1024])\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\n--- a/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\n@@ -203,7 +203,7 @@\n SalesLineOrder.\"Qty. to Asm. to Order (Base)\" := SalesLineOrder.\"Quantity (Base)\";\n end;\n SalesLineOrder.DefaultDeferralCode();\n- if IsSalesOrderLineToBeInserted(SalesLineOrder) then begin\n+ if IsSalesOrderLineToBeInserted(SalesLineOrder, SalesLineBlanketOrder) then begin\n OnBeforeInsertSalesOrderLine(SalesLineOrder, SalesHeaderOrder, SalesLineBlanketOrder, SalesHeaderBlanketOrder);\n SalesLineOrder.Insert();\n OnAfterInsertSalesOrderLine(SalesLineOrder, SalesHeaderOrder, SalesLineBlanketOrder, SalesHeaderBlanketOrder);\n@@ -447,15 +447,12 @@\n ItemCheckAvail.RaiseUpdateInterruptedError();\n end;\n \n- local procedure IsSalesOrderLineToBeInserted(SalesOrderLine: Record \"Sales Line\"): Boolean\n- var\n- AttachedToSalesLine: Record \"Sales Line\";\n+ local procedure IsSalesOrderLineToBeInserted(SalesOrderLine: Record \"Sales Line\"; BlanketSalesOrderLine: Record \"Sales Line\"): Boolean\n begin\n if not SalesOrderLine.IsExtendedText() then\n exit(true);\n- exit(\n- AttachedToSalesLine.Get(\n- SalesOrderLine.\"Document Type\", SalesOrderLine.\"Document No.\", SalesOrderLine.\"Attached to Line No.\"));\n+\n+ exit(BlanketSalesOrderLine.\"Attached to Line No.\" <> 0);\n end;\n \n [IntegrationEvent(false, false)]\n"} +{"instance_id": "microsoftInternal__NAV-208851__cf-1", "base_instance_id": "microsoftInternal__NAV-208851", "variant_description": "Amount Type set to Price for Customer Price Group; should remain Price after closing", "failure_layer": null, "FAIL_TO_PASS": [{"codeunitID": 134117, "functionName": ["AmountTypeFieldDoesNotChangeOnClosePageSalesPriceList"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/ERM/PriceListsUI.Codeunit.al b/App/Layers/W1/Tests/ERM/PriceListsUI.Codeunit.al\nindex 5f58621..2e9765e 100644\n--- a/App/Layers/W1/Tests/ERM/PriceListsUI.Codeunit.al\n+++ b/App/Layers/W1/Tests/ERM/PriceListsUI.Codeunit.al\n@@ -4366,6 +4366,39 @@ codeunit 134117 \"Price Lists UI\"\n PurchasePriceList.Caption()));\n end;\n \n+ [Test]\n+ procedure AmountTypeFieldDoesNotChangeOnClosePageSalesPriceList()\n+ var\n+ PriceListHeader: Record \"Price List Header\";\n+ CustomerPriceGroup: Record \"Customer Price Group\";\n+ SalesPriceList: TestPage \"Sales Price List\";\n+ PriceListHeaderCode: Code[20];\n+ begin\n+ // [SCENARIO 566994] Bug fix to ensure the field \"Amount Type\" does not change after closing the page \"Sales Price List\"\n+ Initialize(true);\n+\n+ // [GIVEN] Sales Price List for price\n+ PriceListHeaderCode := LibraryUtility.GenerateGUID();\n+ SalesPriceList.OpenEdit();\n+ SalesPriceList.New();\n+ SalesPriceList.Code.SetValue(PriceListHeaderCode);\n+ SalesPriceList.Description.SetValue(LibraryUtility.GenerateGUID());\n+ SalesPriceList.SourceType.SetValue(\"Price Source Type\"::\"Customer Price Group\");\n+ SalesPriceList.AmountType.SetValue(\"Price Amount Type\"::Price);\n+ CustomerPriceGroup.Init();\n+ CustomerPriceGroup.Code := LibraryUtility.GenerateGUID();\n+ CustomerPriceGroup.Insert();\n+ SalesPriceList.AssignToNo.SetValue(CustomerPriceGroup.Code);\n+ SalesPriceList.Status.SetValue(\"Price Status\"::Active);\n+\n+ // [WHEN] Close the page \"Sales Price List\"\n+ SalesPriceList.Close();\n+\n+ // [THEN] Check the field \"Amount Type\" has not reverted to Price & Discount\n+ PriceListHeader.Get(PriceListHeaderCode);\n+ Assert.IsTrue((PriceListHeader.\"Amount Type\" = PriceListHeader.\"Amount Type\"::Price), 'The field \"Amount Type\" has changed after closing the page \"Sales Price List\"');\n+ end;\n+\n local procedure Initialize(Enable: Boolean)\n var\n PriceListHeader: Record \"Price List Header\";\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al b/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al\nindex fb6adbb..0794b2d 100644\n--- a/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al\n@@ -562,9 +562,11 @@ table 7000 \"Price List Header\"\n var\n xAmountType: Enum \"Price Amount Type\";\n begin\n+ CopyTo(PriceSource);\n xAmountType := \"Amount Type\";\n if \"Source Type\" in [\"Source Type\"::\"Customer Disc. Group\", \"Source Type\"::\"Customer Price Group\"] then\n- \"Amount Type\" := PriceSource.GetDefaultAmountType()\n+ if PriceSource.GetDefaultAmountType() <> 0 then\n+ \"Amount Type\" := PriceSource.GetDefaultAmountType()\n else\n \"Amount Type\" := CalcAmountType();\n if \"Amount Type\" <> xAmountType then\n"} +{"instance_id": "microsoftInternal__NAV-209450__cf-1", "base_instance_id": "microsoftInternal__NAV-209450", "variant_description": "Only Non-Inventory items are in scope for the non-reservable rule", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-209450__cf-1", "FAIL_TO_PASS": [{"codeunitID": 136302, "functionName": ["PurchaseLineNotReservedWhenItemTypeNonInventory"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/Job/JobConsumptionPurchase.Codeunit.al b/App/Layers/W1/Tests/Job/JobConsumptionPurchase.Codeunit.al\nindex 4e0f927..80295a5 100644\n--- a/App/Layers/W1/Tests/Job/JobConsumptionPurchase.Codeunit.al\n+++ b/App/Layers/W1/Tests/Job/JobConsumptionPurchase.Codeunit.al\n@@ -4339,6 +4339,71 @@ codeunit 136302 \"Job Consumption Purchase\"\n JobLedgerEntry.TestField(\"Lot No.\", LotNo);\n end;\n \n+ [Test]\n+ [HandlerFunctions('PurchaseOrderReserveFromCurrentLineHandler2')]\n+ procedure PurchaseLineNotReservedWhenItemTypeNonInventory()\n+ var\n+ Item: array[2] of Record Item;\n+ JobPlanningLine: Record \"Job Planning Line\";\n+ JobTask: Record \"Job Task\";\n+ PurchaseHeader: Record \"Purchase Header\";\n+ PurchaseLine: Record \"Purchase Line\";\n+ PurchaseOrder: TestPage \"Purchase Order\";\n+ i: Integer;\n+ Quantity: Decimal;\n+ begin\n+ // [SCENARIO 563482] Verify that it is not possible to reserve a sales line when the item type is Non-Inventory or Service.\n+ Initialize();\n+ Quantity := LibraryRandom.RandIntInRange(100, 200);\n+\n+ // [GIVEN] Create Inventory and Non Inventory type item.\n+ LibraryInventory.CreateItem(Item[1]);\n+ LibraryInventory.CreateNonInventoryTypeItem(Item[2]);\n+\n+ // [GIVEN] Create Job and Job Task.\n+ CreateJobWithJobTask(JobTask);\n+\n+ // [GIVEN] Create Purchase Header.\n+ LibraryPurchase.CreatePurchHeader(\n+ PurchaseHeader, PurchaseHeader.\"Document Type\"::Order, LibraryPurchase.CreateVendorNo());\n+\n+ // [GIVEN] Set the Work Date to be later than the Purchase Document date.\n+ WorkDate := WorkDate() + 1;\n+\n+ for i := 1 to LibraryRandom.RandIntInRange(2, 2) do begin\n+ // [GIVEN] Create a job planning line for Inventory, Non-Inventory, and Service type items.\n+ CreateJobPlanningLine(\n+ JobPlanningLine, JobTask, JobPlanningLine.Type::Item, Item[i].\"No.\", Quantity, true);\n+ JobPlanningLine.Validate(Reserve, JobPlanningLine.Reserve::Optional);\n+ JobPlanningLine.Validate(\"Unit Cost\", LibraryRandom.RandDec(1000, 2));\n+ JobPlanningLine.Modify(true);\n+\n+ // [GIVEN] Create a purchase line for Inventory, Non-Inventory, and Service type items.\n+ LibraryPurchase.CreatePurchaseLine(\n+ PurchaseLine, PurchaseHeader, PurchaseLine.Type::Item, Item[i].\"No.\", Quantity);\n+\n+ Commit();\n+ // [GIVEN] Open Purchase Order Page\n+ PurchaseOrder.OpenEdit();\n+ PurchaseOrder.Filter.SetFilter(\"No.\", PurchaseHeader.\"No.\");\n+ PurchaseOrder.PurchLines.Filter.SetFilter(\"No.\", Item[i].\"No.\");\n+\n+ // [WHEN] Item type Inventory\n+ if Item[i].IsInventoriableType() then\n+ PurchaseOrder.PurchLines.Reserve.Invoke()\n+ else\n+ asserterror PurchaseOrder.PurchLines.Reserve.Invoke();\n+ PurchaseOrder.Close();\n+ end;\n+\n+ // [GIVEN] Post the Purchase Document\n+ LibraryPurchase.PostPurchaseDocument(PurchaseHeader, true, false);\n+\n+ // [THEN] Verify Remaining Quantity on Item Ledger Entry.\n+ VerifyItemLedgerEntry(Item[1], Quantity); // Item Type Inventory.\n+ VerifyItemLedgerEntry(Item[2], 0); // Item Type Non Inventory.\n+ end;\n+\n local procedure Initialize()\n var\n WarehouseEmployee: Record \"Warehouse Employee\";\n@@ -6702,6 +6767,14 @@ codeunit 136302 \"Job Consumption Purchase\"\n CreateInvtPutawayPickMvmt.OK().Invoke();\n end;\n \n+ [ModalPageHandler]\n+ [Scope('OnPrem')]\n+ procedure PurchaseOrderReserveFromCurrentLineHandler2(var Reservation: TestPage Reservation)\n+ begin\n+ Reservation.\"Reserve from Current Line\".Invoke();\n+ Reservation.OK().Invoke();\n+ end;\n+\n local procedure UndoPurchReciptAndAdjustCostItemEntries(var PurchaseLine: Record \"Purchase Line\"; var Item: Record Item)\n begin\n UndoPurchRcpt(PurchaseLine);\n@@ -6790,5 +6863,20 @@ codeunit 136302 \"Job Consumption Purchase\"\n PostedWhseReceiptLine.SetRange(\"Source Line No.\", PurchaseLine.\"Line No.\");\n PostedWhseReceiptLine.FindFirst();\n end;\n+\n+ local procedure VerifyItemLedgerEntry(Item: Record Item; Quantity: Decimal)\n+ var\n+ ItemLedgerEntry: Record \"Item Ledger Entry\";\n+ begin\n+ ItemLedgerEntry.SetRange(\"Item No.\", Item.\"No.\");\n+ ItemLedgerEntry.FindFirst();\n+ ItemLedgerEntry.CalcFields(\"Reserved Quantity\");\n+ if Item.IsInventoriableType() then\n+ Assert.AreEqual(ItemLedgerEntry.\"Reserved Quantity\", Quantity,\n+ StrSubstNo(ValueMustMatchErr, ItemLedgerEntry.\"Reserved Quantity\", Quantity))\n+ else\n+ Assert.AreEqual(ItemLedgerEntry.\"Reserved Quantity\", Quantity,\n+ StrSubstNo(ValueMustMatchErr, ItemLedgerEntry.\"Reserved Quantity\", Quantity))\n+ end;\n }\n \n", "patch": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLineReserve.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLineReserve.Codeunit.al\nindex 9a2e42e..e0cdb28 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLineReserve.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLineReserve.Codeunit.al\n@@ -6,10 +6,11 @@ using Microsoft.Inventory.Planning;\n using Microsoft.Inventory.Requisition;\n using Microsoft.Inventory.Tracking;\n using Microsoft.Inventory.Ledger;\n-using Microsoft.Projects.Project.Job;\n using Microsoft.Foundation.Navigate;\n using Microsoft.Foundation.UOM;\n+using Microsoft.Projects.Project.Job;\n using Microsoft.Projects.Project.Ledger;\n+using Microsoft.Purchases.Document;\n \n codeunit 1032 \"Job Planning Line-Reserve\"\n {\n@@ -33,6 +34,7 @@ codeunit 1032 \"Job Planning Line-Reserve\"\n InvalidLineTypeErr: Label 'must be %1 or %2', Comment = '%1 and %2 are line type options, fx. Budget or Billable';\n SummaryTypeTxt: Label '%1, %2', Locked = true;\n SourceDoc2Txt: Label '%1 %2', Locked = true;\n+ NonInvReserveTypeErr: Label 'Non-inventory and service items cannot be reserved.';\n \n procedure CreateReservation(JobPlanningLine: Record \"Job Planning Line\"; Description: Text[100]; ExpectedReceiptDate: Date; Quantity: Decimal; QuantityBase: Decimal; ForReservEntry: Record \"Reservation Entry\")\n var\n@@ -844,6 +846,7 @@ codeunit 1032 \"Job Planning Line-Reserve\"\n if IsReserved then\n exit;\n \n+ CheckItemType(CalcReservEntry);\n JobPlanningLine.SetAutoCalcFields(\"Reserved Qty. (Base)\");\n JobPlanningLine.FilterLinesForReservation(\n CalcReservEntry, ReservSummEntryNo - 131, sender.GetAvailabilityFilter(AvailabilityDate), Positive);\n@@ -869,6 +872,23 @@ codeunit 1032 \"Job Planning Line-Reserve\"\n until (JobPlanningLine.Next(NextStep) = 0) or (RemainingQtyToReserveBase = 0);\n end;\n \n+ local procedure CheckItemType(CalcReservEntry: Record \"Reservation Entry\")\n+ var\n+ PurchaseLine: Record \"Purchase Line\";\n+ begin\n+ if (CalcReservEntry.\"Source Type\" <> Database::\"Purchase Line\") or (CalcReservEntry.\"Source Subtype\" <> CalcReservEntry.\"Source Subtype\"::\"1\") then\n+ exit;\n+\n+ PurchaseLine.SetRange(\"Document Type\", PurchaseLine.\"Document Type\"::Order);\n+ PurchaseLine.SetRange(\"Document No.\", CalcReservEntry.\"Source ID\");\n+ PurchaseLine.SetRange(Type, PurchaseLine.Type::Item);\n+ PurchaseLine.SetRange(\"No.\", CalcReservEntry.\"Item No.\");\n+ PurchaseLine.SetRange(\"Special Order\", false);\n+ if PurchaseLine.FindFirst() then\n+ if PurchaseLine.IsNonInventoriableItem() then\n+ Error(NonInvReserveTypeErr);\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnAfterReservQuantity(JobPlanningLine: Record \"Job Planning Line\"; var QtyToReserve: Decimal; var QtyToReserveBase: Decimal)\n begin\n"} +{"instance_id": "microsoftInternal__NAV-209450__cf-2", "base_instance_id": "microsoftInternal__NAV-209450", "variant_description": "Only Service items are in scope for the non-reservable rule", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-209450__cf-2", "FAIL_TO_PASS": [{"codeunitID": 136302, "functionName": ["PurchaseLineNotReservedWhenItemTypeService"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/Job/JobConsumptionPurchase.Codeunit.al b/App/Layers/W1/Tests/Job/JobConsumptionPurchase.Codeunit.al\nindex 4e0f927..9ae0e63 100644\n--- a/App/Layers/W1/Tests/Job/JobConsumptionPurchase.Codeunit.al\n+++ b/App/Layers/W1/Tests/Job/JobConsumptionPurchase.Codeunit.al\n@@ -4339,6 +4339,71 @@ codeunit 136302 \"Job Consumption Purchase\"\n JobLedgerEntry.TestField(\"Lot No.\", LotNo);\n end;\n \n+ [Test]\n+ [HandlerFunctions('PurchaseOrderReserveFromCurrentLineHandler2')]\n+ procedure PurchaseLineNotReservedWhenItemTypeService()\n+ var\n+ Item: array[2] of Record Item;\n+ JobPlanningLine: Record \"Job Planning Line\";\n+ JobTask: Record \"Job Task\";\n+ PurchaseHeader: Record \"Purchase Header\";\n+ PurchaseLine: Record \"Purchase Line\";\n+ PurchaseOrder: TestPage \"Purchase Order\";\n+ i: Integer;\n+ Quantity: Decimal;\n+ begin\n+ // [SCENARIO 563482] Verify that it is not possible to reserve a sales line when the item type is Non-Inventory or Service.\n+ Initialize();\n+ Quantity := LibraryRandom.RandIntInRange(100, 200);\n+\n+ // [GIVEN] Create Inventory and Service type item.\n+ LibraryInventory.CreateItem(Item[1]);\n+ LibraryInventory.CreateServiceTypeItem(Item[2]);\n+\n+ // [GIVEN] Create Job and Job Task.\n+ CreateJobWithJobTask(JobTask);\n+\n+ // [GIVEN] Create Purchase Header.\n+ LibraryPurchase.CreatePurchHeader(\n+ PurchaseHeader, PurchaseHeader.\"Document Type\"::Order, LibraryPurchase.CreateVendorNo());\n+\n+ // [GIVEN] Set the Work Date to be later than the Purchase Document date.\n+ WorkDate := WorkDate() + 1;\n+\n+ for i := 1 to LibraryRandom.RandIntInRange(2, 2) do begin\n+ // [GIVEN] Create a job planning line for Inventory, Non-Inventory, and Service type items.\n+ CreateJobPlanningLine(\n+ JobPlanningLine, JobTask, JobPlanningLine.Type::Item, Item[i].\"No.\", Quantity, true);\n+ JobPlanningLine.Validate(Reserve, JobPlanningLine.Reserve::Optional);\n+ JobPlanningLine.Validate(\"Unit Cost\", LibraryRandom.RandDec(1000, 2));\n+ JobPlanningLine.Modify(true);\n+\n+ // [GIVEN] Create a purchase line for Inventory, Non-Inventory, and Service type items.\n+ LibraryPurchase.CreatePurchaseLine(\n+ PurchaseLine, PurchaseHeader, PurchaseLine.Type::Item, Item[i].\"No.\", Quantity);\n+\n+ Commit();\n+ // [GIVEN] Open Purchase Order Page\n+ PurchaseOrder.OpenEdit();\n+ PurchaseOrder.Filter.SetFilter(\"No.\", PurchaseHeader.\"No.\");\n+ PurchaseOrder.PurchLines.Filter.SetFilter(\"No.\", Item[i].\"No.\");\n+\n+ // [WHEN] Item type Inventory\n+ if Item[i].IsInventoriableType() then\n+ PurchaseOrder.PurchLines.Reserve.Invoke()\n+ else\n+ asserterror PurchaseOrder.PurchLines.Reserve.Invoke();\n+ PurchaseOrder.Close();\n+ end;\n+\n+ // [GIVEN] Post the Purchase Document\n+ LibraryPurchase.PostPurchaseDocument(PurchaseHeader, true, false);\n+\n+ // [THEN] Verify Remaining Quantity on Item Ledger Entry.\n+ VerifyItemLedgerEntry(Item[1], Quantity); // Item Type Inventory.\n+ VerifyItemLedgerEntry(Item[2], 0); // Item Type Service.\n+ end;\n+\n local procedure Initialize()\n var\n WarehouseEmployee: Record \"Warehouse Employee\";\n@@ -6702,6 +6767,14 @@ codeunit 136302 \"Job Consumption Purchase\"\n CreateInvtPutawayPickMvmt.OK().Invoke();\n end;\n \n+ [ModalPageHandler]\n+ [Scope('OnPrem')]\n+ procedure PurchaseOrderReserveFromCurrentLineHandler2(var Reservation: TestPage Reservation)\n+ begin\n+ Reservation.\"Reserve from Current Line\".Invoke();\n+ Reservation.OK().Invoke();\n+ end;\n+\n local procedure UndoPurchReciptAndAdjustCostItemEntries(var PurchaseLine: Record \"Purchase Line\"; var Item: Record Item)\n begin\n UndoPurchRcpt(PurchaseLine);\n@@ -6790,5 +6863,20 @@ codeunit 136302 \"Job Consumption Purchase\"\n PostedWhseReceiptLine.SetRange(\"Source Line No.\", PurchaseLine.\"Line No.\");\n PostedWhseReceiptLine.FindFirst();\n end;\n+\n+ local procedure VerifyItemLedgerEntry(Item: Record Item; Quantity: Decimal)\n+ var\n+ ItemLedgerEntry: Record \"Item Ledger Entry\";\n+ begin\n+ ItemLedgerEntry.SetRange(\"Item No.\", Item.\"No.\");\n+ ItemLedgerEntry.FindFirst();\n+ ItemLedgerEntry.CalcFields(\"Reserved Quantity\");\n+ if Item.IsInventoriableType() then\n+ Assert.AreEqual(ItemLedgerEntry.\"Reserved Quantity\", Quantity,\n+ StrSubstNo(ValueMustMatchErr, ItemLedgerEntry.\"Reserved Quantity\", Quantity))\n+ else\n+ Assert.AreEqual(ItemLedgerEntry.\"Reserved Quantity\", Quantity,\n+ StrSubstNo(ValueMustMatchErr, ItemLedgerEntry.\"Reserved Quantity\", Quantity))\n+ end;\n }\n \n", "patch": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLineReserve.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLineReserve.Codeunit.al\nindex 9a2e42e..e0cdb28 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLineReserve.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLineReserve.Codeunit.al\n@@ -6,10 +6,11 @@ using Microsoft.Inventory.Planning;\n using Microsoft.Inventory.Requisition;\n using Microsoft.Inventory.Tracking;\n using Microsoft.Inventory.Ledger;\n-using Microsoft.Projects.Project.Job;\n using Microsoft.Foundation.Navigate;\n using Microsoft.Foundation.UOM;\n+using Microsoft.Projects.Project.Job;\n using Microsoft.Projects.Project.Ledger;\n+using Microsoft.Purchases.Document;\n \n codeunit 1032 \"Job Planning Line-Reserve\"\n {\n@@ -33,6 +34,7 @@ codeunit 1032 \"Job Planning Line-Reserve\"\n InvalidLineTypeErr: Label 'must be %1 or %2', Comment = '%1 and %2 are line type options, fx. Budget or Billable';\n SummaryTypeTxt: Label '%1, %2', Locked = true;\n SourceDoc2Txt: Label '%1 %2', Locked = true;\n+ NonInvReserveTypeErr: Label 'Non-inventory and service items cannot be reserved.';\n \n procedure CreateReservation(JobPlanningLine: Record \"Job Planning Line\"; Description: Text[100]; ExpectedReceiptDate: Date; Quantity: Decimal; QuantityBase: Decimal; ForReservEntry: Record \"Reservation Entry\")\n var\n@@ -844,6 +846,7 @@ codeunit 1032 \"Job Planning Line-Reserve\"\n if IsReserved then\n exit;\n \n+ CheckItemType(CalcReservEntry);\n JobPlanningLine.SetAutoCalcFields(\"Reserved Qty. (Base)\");\n JobPlanningLine.FilterLinesForReservation(\n CalcReservEntry, ReservSummEntryNo - 131, sender.GetAvailabilityFilter(AvailabilityDate), Positive);\n@@ -869,6 +872,23 @@ codeunit 1032 \"Job Planning Line-Reserve\"\n until (JobPlanningLine.Next(NextStep) = 0) or (RemainingQtyToReserveBase = 0);\n end;\n \n+ local procedure CheckItemType(CalcReservEntry: Record \"Reservation Entry\")\n+ var\n+ PurchaseLine: Record \"Purchase Line\";\n+ begin\n+ if (CalcReservEntry.\"Source Type\" <> Database::\"Purchase Line\") or (CalcReservEntry.\"Source Subtype\" <> CalcReservEntry.\"Source Subtype\"::\"1\") then\n+ exit;\n+\n+ PurchaseLine.SetRange(\"Document Type\", PurchaseLine.\"Document Type\"::Order);\n+ PurchaseLine.SetRange(\"Document No.\", CalcReservEntry.\"Source ID\");\n+ PurchaseLine.SetRange(Type, PurchaseLine.Type::Item);\n+ PurchaseLine.SetRange(\"No.\", CalcReservEntry.\"Item No.\");\n+ PurchaseLine.SetRange(\"Special Order\", false);\n+ if PurchaseLine.FindFirst() then\n+ if PurchaseLine.IsNonInventoriableItem() then\n+ Error(NonInvReserveTypeErr);\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnAfterReservQuantity(JobPlanningLine: Record \"Job Planning Line\"; var QtyToReserve: Decimal; var QtyToReserveBase: Decimal)\n begin\n"} +{"instance_id": "microsoftInternal__NAV-209496__cf-1", "base_instance_id": "microsoftInternal__NAV-209496", "variant_description": "Use German (DEU) instead of English (ENG) as the selected language when adding text for language in Reminder Level Communication", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-209496__cf-1", "FAIL_TO_PASS": [{"codeunitID": 134979, "functionName": ["AddTextforLanguageInReminderLevelCommunicationGerman"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/ERM/ReminderAutomationTests.Codeunit.al b/App/Layers/W1/Tests/ERM/ReminderAutomationTests.Codeunit.al\nindex ca7812c..6176d7f 100644\n--- a/App/Layers/W1/Tests/ERM/ReminderAutomationTests.Codeunit.al\n+++ b/App/Layers/W1/Tests/ERM/ReminderAutomationTests.Codeunit.al\n@@ -814,6 +814,30 @@ codeunit 134979 \"Reminder Automation Tests\"\n ReminderAutomationCard.Close();\n end;\n \n+ [Test]\n+ [HandlerFunctions('ConfirmHandlerFalse,ReminderLevelCommunicationPageHandler,LanguagesPageHandlerDEU')]\n+ procedure AddTextforLanguageInReminderLevelCommunicationGerman()\n+ var\n+ ReminderTerms: Record \"Reminder Terms\";\n+ ReminderLevel: Record \"Reminder Level\";\n+ ReminderTermSetupPage: TestPage \"Reminder Terms Setup\";\n+ begin\n+ // [SCENARIO 568005] Adding text for language in Reminder Level Communication.\n+ Initialize();\n+\n+ // [GIVEN] Create Reminder Term with levels\n+ LibraryErm.CreateReminderTerms(ReminderTerms);\n+ LibraryErm.CreateReminderLevel(ReminderLevel, ReminderTerms.Code);\n+\n+ // [WHEN] Open Reminder Term Setup page and add text for language\n+ ReminderTermSetupPage.OpenEdit();\n+ ReminderTermSetupPage.GoToRecord(ReminderTerms);\n+ ReminderTermSetupPage.ReminderLevelSetup.First();\n+\n+ // [THEN] Verify that the text for German is added in Reminder Level Communication.\n+ ReminderTermSetupPage.ReminderLevelSetup.CustomerCommunications.Invoke();\n+ end;\n+\n local procedure CreateReminderAttachmentText(ReminderTerms: Record \"Reminder Terms\"; LanguageCode: Code[10])\n var\n ReminderLevel: Record \"Reminder Level\";\n@@ -1211,6 +1235,32 @@ codeunit 134979 \"Reminder Automation Tests\"\n exit(true);\n end;\n \n+ [ConfirmHandler]\n+ procedure ConfirmHandlerFalse(QuestionText: Text[1024]; var Relpy: Boolean)\n+ begin\n+ Relpy := false;\n+ end;\n+\n+ [PageHandler]\n+ procedure ReminderLevelCommunicationPageHandler(var ReminderLevelCommunication: TestPage \"Reminder Level Communication\")\n+ begin\n+ ReminderLevelCommunication.\"Add New Language\".Invoke();\n+ end;\n+\n+ [ModalPageHandler]\n+ procedure LanguagesPageHandler(var Languages: TestPage \"Languages\")\n+ begin\n+ Languages.Filter.SetFilter(\"Code\", 'ENG');\n+ Languages.OK().Invoke();\n+ end;\n+\n+ [ModalPageHandler]\n+ procedure LanguagesPageHandlerDEU(var Languages: TestPage \"Languages\")\n+ begin\n+ Languages.Filter.SetFilter(\"Code\", 'DEU');\n+ Languages.OK().Invoke();\n+ end;\n+\n var\n LibraryVariableStorage: Codeunit \"Library - Variable Storage\";\n LibraryUtility: Codeunit \"Library - Utility\";\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\nindex 10d284c..23e132d 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\n@@ -304,17 +304,19 @@ page 835 \"Reminder Level Communication\"\n var\n ReminderAttachmentText: Record \"Reminder Attachment Text\";\n ReminderEmailText: Record \"Reminder Email Text\";\n+ ReminderLevel: Record \"Reminder Level\";\n begin\n if LanguageCode = '' then\n exit;\n \n CurrentLanguage.SetRange(Code, LanguageCode);\n CurrentLanguage.FindFirst();\n+ ReminderLevel.Get(Rec.\"Reminder Terms Code\", Rec.\"No.\");\n \n- if not ReminderAttachmentText.Get(Rec.\"Reminder Attachment Text\", CurrentLanguage.Code) then\n+ if not ReminderAttachmentText.Get(ReminderLevel.\"Reminder Attachment Text\", CurrentLanguage.Code) then\n if CreateNewEntry then begin\n- ReminderAttachmentText.SetDefaultContentForNewLanguage(Rec.\"Reminder Attachment Text\", CurrentLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Level\");\n- ReminderEmailText.SetDefaultContentForNewLanguage(Rec.\"Reminder Email Text\", CurrentLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Level\");\n+ ReminderAttachmentText.SetDefaultContentForNewLanguage(ReminderLevel.\"Reminder Attachment Text\", CurrentLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Level\");\n+ ReminderEmailText.SetDefaultContentForNewLanguage(ReminderLevel.\"Reminder Email Text\", CurrentLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Level\");\n end\n else\n Error(NoTextForSelectedLanguageErr, CurrentLanguage.Code);\n"} +{"instance_id": "microsoftInternal__NAV-209496__cf-2", "base_instance_id": "microsoftInternal__NAV-209496", "variant_description": "Run the same operation on the second reminder level instead of the first", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-209496__cf-2", "FAIL_TO_PASS": [{"codeunitID": 134979, "functionName": ["AddTextforLanguageInSecondReminderLevelCommunication"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/ERM/ReminderAutomationTests.Codeunit.al b/App/Layers/W1/Tests/ERM/ReminderAutomationTests.Codeunit.al\nindex ca7812c..d4e0a4a 100644\n--- a/App/Layers/W1/Tests/ERM/ReminderAutomationTests.Codeunit.al\n+++ b/App/Layers/W1/Tests/ERM/ReminderAutomationTests.Codeunit.al\n@@ -814,6 +814,32 @@ codeunit 134979 \"Reminder Automation Tests\"\n ReminderAutomationCard.Close();\n end;\n \n+ [Test]\n+ [HandlerFunctions('ConfirmHandlerFalse,ReminderLevelCommunicationPageHandler,LanguagesPageHandler')]\n+ procedure AddTextforLanguageInSecondReminderLevelCommunication()\n+ var\n+ ReminderTerms: Record \"Reminder Terms\";\n+ ReminderLevel: Record \"Reminder Level\";\n+ ReminderTermSetupPage: TestPage \"Reminder Terms Setup\";\n+ begin\n+ // [SCENARIO 568005] Adding text for language in Reminder Level Communication.\n+ Initialize();\n+\n+ // [GIVEN] Create Reminder Term with levels\n+ LibraryErm.CreateReminderTerms(ReminderTerms);\n+ LibraryErm.CreateReminderLevel(ReminderLevel, ReminderTerms.Code);\n+ LibraryErm.CreateReminderLevel(ReminderLevel, ReminderTerms.Code);\n+\n+ // [WHEN] Open Reminder Term Setup page and add text for language\n+ ReminderTermSetupPage.OpenEdit();\n+ ReminderTermSetupPage.GoToRecord(ReminderTerms);\n+ ReminderTermSetupPage.ReminderLevelSetup.First();\n+ ReminderTermSetupPage.ReminderLevelSetup.Next();\n+\n+ // [THEN] Verify that the text for language is added on the second Reminder Level Communication.\n+ ReminderTermSetupPage.ReminderLevelSetup.CustomerCommunications.Invoke();\n+ end;\n+\n local procedure CreateReminderAttachmentText(ReminderTerms: Record \"Reminder Terms\"; LanguageCode: Code[10])\n var\n ReminderLevel: Record \"Reminder Level\";\n@@ -1211,6 +1237,25 @@ codeunit 134979 \"Reminder Automation Tests\"\n exit(true);\n end;\n \n+ [ConfirmHandler]\n+ procedure ConfirmHandlerFalse(QuestionText: Text[1024]; var Relpy: Boolean)\n+ begin\n+ Relpy := false;\n+ end;\n+\n+ [PageHandler]\n+ procedure ReminderLevelCommunicationPageHandler(var ReminderLevelCommunication: TestPage \"Reminder Level Communication\")\n+ begin\n+ ReminderLevelCommunication.\"Add New Language\".Invoke();\n+ end;\n+\n+ [ModalPageHandler]\n+ procedure LanguagesPageHandler(var Languages: TestPage \"Languages\")\n+ begin\n+ Languages.Filter.SetFilter(\"Code\", 'ENG');\n+ Languages.OK().Invoke();\n+ end;\n+\n var\n LibraryVariableStorage: Codeunit \"Library - Variable Storage\";\n LibraryUtility: Codeunit \"Library - Utility\";\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\nindex 10d284c..23e132d 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\n@@ -304,17 +304,19 @@ page 835 \"Reminder Level Communication\"\n var\n ReminderAttachmentText: Record \"Reminder Attachment Text\";\n ReminderEmailText: Record \"Reminder Email Text\";\n+ ReminderLevel: Record \"Reminder Level\";\n begin\n if LanguageCode = '' then\n exit;\n \n CurrentLanguage.SetRange(Code, LanguageCode);\n CurrentLanguage.FindFirst();\n+ ReminderLevel.Get(Rec.\"Reminder Terms Code\", Rec.\"No.\");\n \n- if not ReminderAttachmentText.Get(Rec.\"Reminder Attachment Text\", CurrentLanguage.Code) then\n+ if not ReminderAttachmentText.Get(ReminderLevel.\"Reminder Attachment Text\", CurrentLanguage.Code) then\n if CreateNewEntry then begin\n- ReminderAttachmentText.SetDefaultContentForNewLanguage(Rec.\"Reminder Attachment Text\", CurrentLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Level\");\n- ReminderEmailText.SetDefaultContentForNewLanguage(Rec.\"Reminder Email Text\", CurrentLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Level\");\n+ ReminderAttachmentText.SetDefaultContentForNewLanguage(ReminderLevel.\"Reminder Attachment Text\", CurrentLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Level\");\n+ ReminderEmailText.SetDefaultContentForNewLanguage(ReminderLevel.\"Reminder Email Text\", CurrentLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Level\");\n end\n else\n Error(NoTextForSelectedLanguageErr, CurrentLanguage.Code);\n"} +{"instance_id": "microsoftInternal__NAV-209835__cf-1", "base_instance_id": "microsoftInternal__NAV-209835", "variant_description": "Filter by Action Message New instead of Cancel when carrying out action message", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-209835__cf-1", "FAIL_TO_PASS": [{"codeunitID": 137045, "functionName": ["CarryOutPlanWkshActionMsgFilterCheckGenerateLines"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM/SCMBugfixes.Codeunit.al b/App/Layers/W1/Tests/SCM/SCMBugfixes.Codeunit.al\nindex 70e088d..31a2217 100644\n--- a/App/Layers/W1/Tests/SCM/SCMBugfixes.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM/SCMBugfixes.Codeunit.al\n@@ -35,6 +35,7 @@ codeunit 137045 \"SCM Bugfixes\"\n WrongSKUUnitCostErr: Label 'Stockkeeping unit''s unit cost must be equal to item unit cost';\n EmailNotAutomaticallySetErr: Label 'Expected BuyFromContactEmail to automatically be set to the email of the contact, but it wasnt.';\n UseInTransitLocationErr: Label 'You can use In-Transit location %1 for transfer orders only.', Comment = '%1: Location code';\n+ PurchaseOrderErr: Label 'Expected exactly one additional purchase order to be created';\n \n [Test]\n [Scope('OnPrem')]\n@@ -929,6 +930,53 @@ codeunit 137045 \"SCM Bugfixes\"\n OpenOrderPromisingPage(SalesHeader.\"No.\")\n end;\n \n+ [Test]\n+ procedure CarryOutPlanWkshActionMsgFilterCheckGenerateLines()\n+ var\n+ Item: Record Item;\n+ PurchaseHeader: Record \"Purchase Header\";\n+ PurchaseLine: Record \"Purchase Line\";\n+ ReqLine: Record \"Requisition Line\";\n+ SalesHeader: Record \"Sales Header\";\n+ SalesLine: Record \"Sales Line\";\n+ NewPurchOrderChoice: Option \" \",\"Make Purch. Orders\",\"Make Purch. Orders & Print\",\"Copy to Req. Wksh\";\n+ ActualCount: Integer;\n+ begin\n+ // [SCENARIO 563852] When a Filter is set in the Planning Worksheet to a specific Action Message (e.g. Cancel) , Carry Out Action Message Only Process\n+ // Filtered Planning Worksheet Lines.\n+ Initialize();\n+\n+ // [GIVEN] New Item Created with Reordering Policy Order.\n+ LibraryInventory.CreateItem(Item);\n+ Item.Validate(\"Reordering Policy\", Item.\"Reordering Policy\"::Order);\n+ Item.Modify(true);\n+\n+ // [GIVEN] Created New Purchase Order with New Item with 4 Qty.\n+ CreatePurchaseOrder(PurchaseHeader, Item.\"No.\", 4);\n+\n+ // [GIVEN] Created New Sales Order with New Item with 4 Qty and Future Shipment Date.\n+ CreateSalesOrder(SalesHeader, Item.\"No.\", '', 4, SalesHeader.\"Document Type\"::Order);\n+ SalesLine.Get(SalesLine.\"Document Type\"::Order, SalesHeader.\"No.\", 10000);\n+ SalesLine.Validate(\"Shipment Date\", CalcDate('<1W>', WorkDate()));\n+ SalesLine.Modify(true);\n+\n+ // [GIVEN] Calculate regenerative plan in planning worksheet update Planning Worksheet.\n+ CalculatePlanOnPlanningWorksheet(Item, WorkDate(), CalcDate('<1Y>', WorkDate()), true, false);\n+\n+ // [GIVEN] Set \"Accept Action Message\" on all Requisition lines.\n+ UpdatePlanningWorkSheetwithVendor(ReqLine, Item.\"No.\", PurchaseHeader.\"Buy-from Vendor No.\");\n+\n+ // [WHEN] Running Carry Out Action Message For Requisition lines \"Action Message\"::New.\n+ ReqLine.SetRange(\"Action Message\", ReqLine.\"Action Message\"::New);\n+ LibraryPlanning.CarryOutPlanWksh(ReqLine, 0, NewPurchOrderChoice::\"Make Purch. Orders\", 0, 0, '', '', '', '');\n+\n+ // [WHEN] Count Actual Purchase Lines.\n+ CountActualPurchaseLine(Item, PurchaseLine, ActualCount);\n+\n+ // [THEN] Verify Actual Count Match with Expected Result.\n+ Assert.AreEqual(2, ActualCount, PurchaseOrderErr);\n+ end;\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n@@ -1547,6 +1595,50 @@ codeunit 137045 \"SCM Bugfixes\"\n SalesOrder.SalesLines.OrderPromising.Invoke();\n end;\n \n+ local procedure CountActualPurchaseLine(Item: Record Item; PurchaseLine: Record \"Purchase Line\"; var ActualCount: Integer)\n+ begin\n+ Clear(ActualCount);\n+ PurchaseLine.Reset();\n+ PurchaseLine.SetRange(\"Document Type\", PurchaseLine.\"Document Type\"::Order);\n+ PurchaseLine.SetRange(Type, PurchaseLine.Type::Item);\n+ PurchaseLine.SetRange(\"No.\", Item.\"No.\");\n+ if PurchaseLine.FindSet() then\n+ ActualCount := PurchaseLine.Count;\n+ end;\n+\n+ local procedure CalculatePlanOnPlanningWorksheet(var ItemRec: Record Item; OrderDate: Date; ToDate: Date; RespectPlanningParameters: Boolean; Regenerative: Boolean)\n+ var\n+ TmpItemRec: Record Item;\n+ RequisitionWkshName: Record \"Requisition Wksh. Name\";\n+ CalculatePlanPlanWksh: Report \"Calculate Plan - Plan. Wksh.\";\n+ begin\n+ LibraryPlanning.SelectRequisitionWkshName(RequisitionWkshName, RequisitionWkshName.\"Template Type\"::Planning); // Find Requisition Worksheet Name to Calculate Plan.\n+ Commit();\n+ CalculatePlanPlanWksh.InitializeRequest(OrderDate, ToDate, RespectPlanningParameters, true, true, '', 0D, false);\n+ CalculatePlanPlanWksh.SetTemplAndWorksheet(RequisitionWkshName.\"Worksheet Template Name\", RequisitionWkshName.Name, Regenerative);\n+ if ItemRec.HasFilter then\n+ TmpItemRec.CopyFilters(ItemRec)\n+ else begin\n+ ItemRec.Get(ItemRec.\"No.\");\n+ TmpItemRec.SetRange(\"No.\", ItemRec.\"No.\");\n+ end;\n+ CalculatePlanPlanWksh.SetTableView(TmpItemRec);\n+ CalculatePlanPlanWksh.UseRequestPage(false);\n+ CalculatePlanPlanWksh.RunModal();\n+ end;\n+\n+ local procedure UpdatePlanningWorkSheetwithVendor(var RequisitionLine: Record \"Requisition Line\"; ItemNo: Code[20]; VendorNo: Code[20])\n+ begin\n+ RequisitionLine.SetRange(Type, RequisitionLine.Type::Item);\n+ RequisitionLine.SetRange(\"No.\", ItemNo);\n+ RequisitionLine.FindSet();\n+ repeat\n+ RequisitionLine.Validate(\"Vendor No.\", VendorNo);\n+ RequisitionLine.Validate(\"Accept Action Message\", true);\n+ RequisitionLine.Modify(true);\n+ until RequisitionLine.Next() = 0;\n+ end;\n+\n [ModalPageHandler]\n [Scope('OnPrem')]\n procedure ContactListModalPageHandler(var ContactLookup: Page \"Contact List\"; var Response: Action)\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\nindex 78996b4..14b0c35 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\n@@ -472,8 +472,10 @@ report 99001020 \"Carry Out Action Msg. - Plan.\"\n \"Requisition Line\".SetRange(\"Worksheet Template Name\", CurrReqWkshTemp);\n if CurrReqWkshTemp <> '' then\n \"Requisition Line\".SetRange(\"Journal Batch Name\", CurrReqWkshName);\n+ \"Requisition Line\".FilterGroup(2);\n \"Requisition Line\".SetRange(Type, \"Requisition Line\".Type::Item);\n \"Requisition Line\".SetFilter(\"Action Message\", '<>%1', \"Requisition Line\".\"Action Message\"::\" \");\n+ \"Requisition Line\".FilterGroup(0);\n OnAfterSetReqLineFilters(\"Requisition Line\");\n end;\n \n"} +{"instance_id": "microsoftInternal__NAV-209835__cf-2", "base_instance_id": "microsoftInternal__NAV-209835", "variant_description": "Filters applied on the Requisition Line before execution must be preserved and respected during Carry Out Action Message processing", "failure_layer": null, "FAIL_TO_PASS": [{"codeunitID": 137045, "functionName": ["CarryOutPlanWkshActionMsgFilterCheckGenerateLines"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM/SCMBugfixes.Codeunit.al b/App/Layers/W1/Tests/SCM/SCMBugfixes.Codeunit.al\nindex 70e088d..c0ca37a 100644\n--- a/App/Layers/W1/Tests/SCM/SCMBugfixes.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM/SCMBugfixes.Codeunit.al\n@@ -35,6 +35,7 @@ codeunit 137045 \"SCM Bugfixes\"\n WrongSKUUnitCostErr: Label 'Stockkeeping unit''s unit cost must be equal to item unit cost';\n EmailNotAutomaticallySetErr: Label 'Expected BuyFromContactEmail to automatically be set to the email of the contact, but it wasnt.';\n UseInTransitLocationErr: Label 'You can use In-Transit location %1 for transfer orders only.', Comment = '%1: Location code';\n+ PurchaseOrderErr: Label 'Unexpected new purchase order created';\n \n [Test]\n [Scope('OnPrem')]\n@@ -929,6 +930,54 @@ codeunit 137045 \"SCM Bugfixes\"\n OpenOrderPromisingPage(SalesHeader.\"No.\")\n end;\n \n+ [Test]\n+ procedure CarryOutPlanWkshActionMsgFilterCheckGenerateLines()\n+ var\n+ Item: Record Item;\n+ PurchaseHeader: Record \"Purchase Header\";\n+ PurchaseLine: Record \"Purchase Line\";\n+ ReqLine: Record \"Requisition Line\";\n+ SalesHeader: Record \"Sales Header\";\n+ SalesLine: Record \"Sales Line\";\n+ NewPurchOrderChoice: Option \" \",\"Make Purch. Orders\",\"Make Purch. Orders & Print\",\"Copy to Req. Wksh\";\n+ ActualCount: Integer;\n+ begin\n+ // [SCENARIO 563852] When a Filter is set in the Planning Worksheet to a specific Action Message (e.g. Cancel) , Carry Out Action Message Only Process\n+ // Filtered Planning Worksheet Lines.\n+ Initialize();\n+\n+ // [GIVEN] New Item Created with Reordering Policy Order.\n+ LibraryInventory.CreateItem(Item);\n+ Item.Validate(\"Reordering Policy\", Item.\"Reordering Policy\"::Order);\n+ Item.Modify(true);\n+\n+ // [GIVEN] Created New Purchase Order with New Item with 4 Qty.\n+ CreatePurchaseOrder(PurchaseHeader, Item.\"No.\", 4);\n+\n+ // [GIVEN] Created New Sales Order with New Item with 4 Qty and Future Shipment Date.\n+ CreateSalesOrder(SalesHeader, Item.\"No.\", '', 4, SalesHeader.\"Document Type\"::Order);\n+ SalesLine.Get(SalesLine.\"Document Type\"::Order, SalesHeader.\"No.\", 10000);\n+ SalesLine.Validate(\"Shipment Date\", CalcDate('<1W>', WorkDate()));\n+ SalesLine.Modify(true);\n+\n+ // [GIVEN] Calculate regenerative plan in planning worksheet update Planning Worksheet.\n+ CalculatePlanOnPlanningWorksheet(Item, WorkDate(), CalcDate('<1Y>', WorkDate()), true, false);\n+\n+ // [GIVEN] Set \"Accept Action Message\" on all Requisition lines.\n+ UpdatePlanningWorkSheetwithVendor(ReqLine, Item.\"No.\", PurchaseHeader.\"Buy-from Vendor No.\");\n+\n+ // [WHEN] Running Carry Out Action Message For Requisition lines \"Action Message\"::Cancel.\n+ // Ensure filter is applied before execution context is passed\n+ ReqLine.SetRange(\"Action Message\", ReqLine.\"Action Message\"::Cancel);\n+ LibraryPlanning.CarryOutPlanWksh(ReqLine, 0, NewPurchOrderChoice::\"Make Purch. Orders\", 0, 0, '', '', '', '');\n+\n+ // [WHEN] Count Actual Purchase Lines.\n+ CountActualPurchaseLine(Item, PurchaseLine, ActualCount);\n+\n+ // [THEN] Verify Actual Count Match with Expected Result.\n+ Assert.AreEqual(0, ActualCount, PurchaseOrderErr);\n+ end;\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n@@ -1547,6 +1596,50 @@ codeunit 137045 \"SCM Bugfixes\"\n SalesOrder.SalesLines.OrderPromising.Invoke();\n end;\n \n+ local procedure CountActualPurchaseLine(Item: Record Item; PurchaseLine: Record \"Purchase Line\"; var ActualCount: Integer)\n+ begin\n+ Clear(ActualCount);\n+ PurchaseLine.Reset();\n+ PurchaseLine.SetRange(\"Document Type\", PurchaseLine.\"Document Type\"::Order);\n+ PurchaseLine.SetRange(Type, PurchaseLine.Type::Item);\n+ PurchaseLine.SetRange(\"No.\", Item.\"No.\");\n+ if PurchaseLine.FindSet() then\n+ ActualCount := PurchaseLine.Count;\n+ end;\n+\n+ local procedure CalculatePlanOnPlanningWorksheet(var ItemRec: Record Item; OrderDate: Date; ToDate: Date; RespectPlanningParameters: Boolean; Regenerative: Boolean)\n+ var\n+ TmpItemRec: Record Item;\n+ RequisitionWkshName: Record \"Requisition Wksh. Name\";\n+ CalculatePlanPlanWksh: Report \"Calculate Plan - Plan. Wksh.\";\n+ begin\n+ LibraryPlanning.SelectRequisitionWkshName(RequisitionWkshName, RequisitionWkshName.\"Template Type\"::Planning); // Find Requisition Worksheet Name to Calculate Plan.\n+ Commit();\n+ CalculatePlanPlanWksh.InitializeRequest(OrderDate, ToDate, RespectPlanningParameters, true, true, '', 0D, false);\n+ CalculatePlanPlanWksh.SetTemplAndWorksheet(RequisitionWkshName.\"Worksheet Template Name\", RequisitionWkshName.Name, Regenerative);\n+ if ItemRec.HasFilter then\n+ TmpItemRec.CopyFilters(ItemRec)\n+ else begin\n+ ItemRec.Get(ItemRec.\"No.\");\n+ TmpItemRec.SetRange(\"No.\", ItemRec.\"No.\");\n+ end;\n+ CalculatePlanPlanWksh.SetTableView(TmpItemRec);\n+ CalculatePlanPlanWksh.UseRequestPage(false);\n+ CalculatePlanPlanWksh.RunModal();\n+ end;\n+\n+ local procedure UpdatePlanningWorkSheetwithVendor(var RequisitionLine: Record \"Requisition Line\"; ItemNo: Code[20]; VendorNo: Code[20])\n+ begin\n+ RequisitionLine.SetRange(Type, RequisitionLine.Type::Item);\n+ RequisitionLine.SetRange(\"No.\", ItemNo);\n+ RequisitionLine.FindSet();\n+ repeat\n+ RequisitionLine.Validate(\"Vendor No.\", VendorNo);\n+ RequisitionLine.Validate(\"Accept Action Message\", true);\n+ RequisitionLine.Modify(true);\n+ until RequisitionLine.Next() = 0;\n+ end;\n+\n [ModalPageHandler]\n [Scope('OnPrem')]\n procedure ContactListModalPageHandler(var ContactLookup: Page \"Contact List\"; var Response: Action)\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\n@@ -469,8 +469,10 @@\n \"Requisition Line\".SetRange(\"Worksheet Template Name\", CurrReqWkshTemp);\n if CurrReqWkshTemp <> '' then\n \"Requisition Line\".SetRange(\"Journal Batch Name\", CurrReqWkshName);\n+ \"Requisition Line\".FilterGroup(2);\n \"Requisition Line\".SetRange(Type, \"Requisition Line\".Type::Item);\n \"Requisition Line\".SetFilter(\"Action Message\", '<>%1', \"Requisition Line\".\"Action Message\"::\" \");\n+ \"Requisition Line\".FilterGroup(0);\n OnAfterSetReqLineFilters(\"Requisition Line\");\n end;\n \n"} +{"instance_id": "microsoftInternal__NAV-210200__cf-1", "base_instance_id": "microsoftInternal__NAV-210200", "variant_description": "When Get Std. Service Codes inserts a Reserve = Always item with a different quantity, the inserted line must still be automatically reserved for the full quantity", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-210200__cf-1", "FAIL_TO_PASS": [{"codeunitID": 136119, "functionName": ["ReservationEntryMustBeCreatedWhenReserveIsAlwaysInServiceLine"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM-Service/ServiceStandardCodes.Codeunit.al b/App/Layers/W1/Tests/SCM-Service/ServiceStandardCodes.Codeunit.al\nindex 7027c53..68dc733 100644\n--- a/App/Layers/W1/Tests/SCM-Service/ServiceStandardCodes.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM-Service/ServiceStandardCodes.Codeunit.al\n@@ -9,6 +9,8 @@ using Microsoft.Finance.GeneralLedger.Journal;\n using Microsoft.Finance.GeneralLedger.Ledger;\n using Microsoft.Finance.VAT.Ledger;\n using Microsoft.Inventory.Item;\n+using Microsoft.Inventory.Journal;\n+using Microsoft.Inventory.Location;\n using Microsoft.Projects.Resources.Ledger;\n using Microsoft.Sales.Customer;\n using Microsoft.Sales.Receivables;\n@@ -40,6 +42,7 @@ codeunit 136119 \"Service Standard Codes\"\n LibrarySales: Codeunit \"Library - Sales\";\n LibraryUtility: Codeunit \"Library - Utility\";\n LibraryERM: Codeunit \"Library - ERM\";\n+ LibraryWarehouse: Codeunit \"Library - Warehouse\";\n ServiceItemGroupCode2: Code[10];\n StandardServiceCode2: Code[10];\n isInitialized: Boolean;\n@@ -52,6 +55,7 @@ codeunit 136119 \"Service Standard Codes\"\n QuantityMustbePositive: Label '%1 must be positive in %2 %3=''%4'',%5=''%6''.';\n ServiceLineMustNotExist: Label 'There is no %1 within the filter.Filters: %2: %3, %4: %5';\n ExpectedConfirm: Label 'The Credit Memo doesn''t have a Corrected Invoice No. Do you want to continue?';\n+ ValueMustBeEqualErr: Label '%1 must be equal to %2 in %3', Comment = '%1 = Field Caption , %2 = Expected Value , %3 = Table Caption';\n \n [Test]\n [Scope('OnPrem')]\n@@ -1026,6 +1030,75 @@ codeunit 136119 \"Service Standard Codes\"\n StandardServiceLine.TestField(\"No.\", Item.\"No.\");\n end;\n \n+ [Test]\n+ [HandlerFunctions('ModalFormHandlerServItemGroup')]\n+ procedure ReservationEntryMustBeCreatedWhenReserveIsAlwaysInServiceLine()\n+ var\n+ Item: Record Item;\n+ Location: Record Location;\n+ Customer: Record Customer;\n+ ServiceItem: Record \"Service Item\";\n+ ServiceHeader: Record \"Service Header\";\n+ ServiceLine: Record \"Service Line\";\n+ ServiceItemLine: Record \"Service Item Line\";\n+ StandardServiceCode: Record \"Standard Service Code\";\n+ StandardServiceItemGrCode: Record \"Standard Service Item Gr. Code\";\n+ ExpectedQuantity: Integer;\n+ begin\n+ // [SCENARIO 566581] Verify Reservation Entry must be created When Item that has Reserve = Always in the Service Line.\n+ // when \"Get Std. Service Codes.\" is executed.\n+ Initialize();\n+\n+ // [GIVEN] Create a Customer.\n+ LibrarySales.CreateCustomer(Customer);\n+\n+ // [GIVEN] Create Location with Inventory Posting Setup.\n+ LibraryWarehouse.CreateLocationWithInventoryPostingSetup(Location);\n+\n+ // [GIVEN] Create an item with Reserve = Always.\n+ LibraryInventory.CreateItem(Item);\n+ Item.Validate(\"Reordering Policy\", Item.\"Reordering Policy\"::\"Lot-for-Lot\");\n+ Item.Validate(Reserve, Item.Reserve::Always);\n+ Item.Modify();\n+\n+ // [GIVEN] Generate Quantity.\n+ ExpectedQuantity := 5;\n+\n+ // [GIVEN] Post inventory.\n+ SetItemInventory(Item, ExpectedQuantity, Location.Code);\n+\n+ // [GIVEN] Create Service Item.\n+ LibraryService.CreateServiceItem(ServiceItem, Customer.\"No.\");\n+\n+ // [GIVEN] Create Standard Service Code with Item and Quantity.\n+ LibraryService.CreateStandardServiceCode(StandardServiceCode);\n+ CreateStdServiceLineWithItem(StandardServiceCode.Code, Item.\"No.\", ExpectedQuantity);\n+\n+ // [GIVEN] Create Service Order with Location.\n+ LibraryService.CreateServiceHeader(ServiceHeader, ServiceHeader.\"Document Type\"::Order, Customer.\"No.\");\n+ ServiceHeader.Validate(\"Location Code\", Location.Code);\n+ ServiceHeader.Modify();\n+\n+ // [GIVEN] Create Service Item Line.\n+ LibraryService.CreateServiceItemLine(ServiceItemLine, ServiceHeader, '');\n+\n+ // [GIVEN] Delete Standard Service Group Code.\n+ StandardServiceItemGrCode.DeleteAll();\n+\n+ // [WHEN] Insert Service Line through Standard Service Code.\n+ ServiceItemGroupCode2 := '';\n+ StandardServiceCode2 := StandardServiceCode.Code;\n+ StandardServiceItemGrCode.InsertServiceLines(ServiceItemLine);\n+\n+ // [THEN] Verify \"Reserved Qty. (Base)\" must be updated in the Service Line.\n+ FindServiceLine(ServiceLine, ServiceHeader.\"Document Type\", ServiceHeader.\"No.\");\n+ ServiceLine.CalcFields(\"Reserved Qty. (Base)\");\n+ Assert.AreEqual(\n+ ExpectedQuantity,\n+ ServiceLine.\"Reserved Qty. (Base)\",\n+ StrSubstNo(ValueMustBeEqualErr, ServiceLine.FieldCaption(\"Reserved Qty. (Base)\"), ExpectedQuantity, ServiceLine.TableCaption()));\n+ end;\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n@@ -1597,6 +1670,33 @@ codeunit 136119 \"Service Standard Codes\"\n VATEntry.TestField(\"Posting Date\", PostingDate);\n end;\n \n+ local procedure SetItemInventory(Item: Record Item; Quantity: Decimal; LocationCode: Code[10])\n+ var\n+ ItemJournalTemplate: Record \"Item Journal Template\";\n+ ItemJournalBatch: Record \"Item Journal Batch\";\n+ ItemJournalLine: Record \"Item Journal Line\";\n+ begin\n+ LibraryInventory.CreateItemJournalTemplate(ItemJournalTemplate);\n+ LibraryInventory.CreateItemJournalBatch(ItemJournalBatch, ItemJournalTemplate.Name);\n+\n+ LibraryInventory.CreateItemJournalLine(ItemJournalLine, ItemJournalTemplate.Name, ItemJournalBatch.Name, ItemJournalLine.\"Entry Type\"::\"Positive Adjmt.\", Item.\"No.\", Quantity);\n+ ItemJournalLine.Validate(\"Location Code\", LocationCode);\n+ ItemJournalLine.Modify();\n+\n+ LibraryInventory.PostItemJournalLine(ItemJournalTemplate.Name, ItemJournalLine.\"Journal Batch Name\");\n+ end;\n+\n+ local procedure CreateStdServiceLineWithItem(StandardServiceCode: Code[10]; ItemNo: Code[20]; Quantity: Decimal)\n+ var\n+ StandardServiceLine: Record \"Standard Service Line\";\n+ begin\n+ LibraryService.CreateStandardServiceLine(StandardServiceLine, StandardServiceCode);\n+ StandardServiceLine.Validate(Type, StandardServiceLine.Type::Item);\n+ StandardServiceLine.Validate(\"No.\", ItemNo);\n+ StandardServiceLine.Validate(Quantity, Quantity);\n+ StandardServiceLine.Modify(true);\n+ end;\n+\n [ConfirmHandler]\n [Scope('OnPrem')]\n procedure ConfirmHandler(Question: Text[1024]; var Reply: Boolean)\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Service/Item/StandardServiceItemGrCode.Table.al b/App/Layers/W1/BaseApp/Service/Item/StandardServiceItemGrCode.Table.al\nindex 33f69be..53eb121 100644\n--- a/App/Layers/W1/BaseApp/Service/Item/StandardServiceItemGrCode.Table.al\n+++ b/App/Layers/W1/BaseApp/Service/Item/StandardServiceItemGrCode.Table.al\n@@ -159,6 +159,11 @@ table 5998 \"Standard Service Item Gr. Code\"\n ServLine.\"Line No.\" := ServLine.GetLineNo();\n OnBeforeInsertServLine(ServLine);\n ServLine.Insert(true);\n+\n+ if ServLine.Type = ServLine.Type::Item then\n+ if ServLine.Reserve = ServLine.Reserve::Always then\n+ ServLine.AutoReserve(false);\n+\n InsertExtendedText(ServLine);\n end;\n until StdServLine.Next() = 0;\n"} +{"instance_id": "microsoftInternal__NAV-210200__cf-2", "base_instance_id": "microsoftInternal__NAV-210200", "variant_description": "When Get Std. Service Codes inserts multiple service lines, only the item whose reserve policy is Always must create a reservation entry automatically", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-210200__cf-2", "FAIL_TO_PASS": [{"codeunitID": 136119, "functionName": ["ReservationEntryMustBeCreatedWhenReserveIsAlwaysInServiceLine"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM-Service/ServiceStandardCodes.Codeunit.al b/App/Layers/W1/Tests/SCM-Service/ServiceStandardCodes.Codeunit.al\nindex 7027c53..adbb4f2 100644\n--- a/App/Layers/W1/Tests/SCM-Service/ServiceStandardCodes.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM-Service/ServiceStandardCodes.Codeunit.al\n@@ -9,6 +9,8 @@ using Microsoft.Finance.GeneralLedger.Journal;\n using Microsoft.Finance.GeneralLedger.Ledger;\n using Microsoft.Finance.VAT.Ledger;\n using Microsoft.Inventory.Item;\n+using Microsoft.Inventory.Journal;\n+using Microsoft.Inventory.Location;\n using Microsoft.Projects.Resources.Ledger;\n using Microsoft.Sales.Customer;\n using Microsoft.Sales.Receivables;\n@@ -40,6 +42,7 @@ codeunit 136119 \"Service Standard Codes\"\n LibrarySales: Codeunit \"Library - Sales\";\n LibraryUtility: Codeunit \"Library - Utility\";\n LibraryERM: Codeunit \"Library - ERM\";\n+ LibraryWarehouse: Codeunit \"Library - Warehouse\";\n ServiceItemGroupCode2: Code[10];\n StandardServiceCode2: Code[10];\n isInitialized: Boolean;\n@@ -52,6 +55,7 @@ codeunit 136119 \"Service Standard Codes\"\n QuantityMustbePositive: Label '%1 must be positive in %2 %3=''%4'',%5=''%6''.';\n ServiceLineMustNotExist: Label 'There is no %1 within the filter.Filters: %2: %3, %4: %5';\n ExpectedConfirm: Label 'The Credit Memo doesn''t have a Corrected Invoice No. Do you want to continue?';\n+ ValueMustBeEqualErr: Label '%1 must be equal to %2 in %3', Comment = '%1 = Field Caption , %2 = Expected Value , %3 = Table Caption';\n \n [Test]\n [Scope('OnPrem')]\n@@ -1026,6 +1030,80 @@ codeunit 136119 \"Service Standard Codes\"\n StandardServiceLine.TestField(\"No.\", Item.\"No.\");\n end;\n \n+ [Test]\n+ [HandlerFunctions('ModalFormHandlerServItemGroup')]\n+ procedure ReservationEntryMustBeCreatedWhenReserveIsAlwaysInServiceLine()\n+ var\n+ Item: Record Item;\n+ Item2: Record Item;\n+ Location: Record Location;\n+ Customer: Record Customer;\n+ ServiceItem: Record \"Service Item\";\n+ ServiceHeader: Record \"Service Header\";\n+ ServiceLine: Record \"Service Line\";\n+ ServiceItemLine: Record \"Service Item Line\";\n+ StandardServiceCode: Record \"Standard Service Code\";\n+ StandardServiceItemGrCode: Record \"Standard Service Item Gr. Code\";\n+ ExpectedQuantity: Integer;\n+ begin\n+ // [SCENARIO 566581] Verify Reservation Entry must be created only for Items with Reserve = Always in the Service Line.\n+ // when \"Get Std. Service Codes.\" is executed with multiple items.\n+ Initialize();\n+\n+ // [GIVEN] Create a Customer.\n+ LibrarySales.CreateCustomer(Customer);\n+\n+ // [GIVEN] Create Location with Inventory Posting Setup.\n+ LibraryWarehouse.CreateLocationWithInventoryPostingSetup(Location);\n+\n+ // [GIVEN] Create an item with Reserve = Always.\n+ LibraryInventory.CreateItem(Item);\n+ Item.Validate(\"Reordering Policy\", Item.\"Reordering Policy\"::\"Lot-for-Lot\");\n+ Item.Validate(Reserve, Item.Reserve::Always);\n+ Item.Modify();\n+\n+ // [GIVEN] Create another item without Reserve = Always.\n+ LibraryInventory.CreateItem(Item2);\n+\n+ // [GIVEN] Generate Quantity.\n+ ExpectedQuantity := LibraryRandom.RandInt(20);\n+\n+ // [GIVEN] Post inventory.\n+ SetItemInventory(Item, ExpectedQuantity, Location.Code);\n+\n+ // [GIVEN] Create Service Item.\n+ LibraryService.CreateServiceItem(ServiceItem, Customer.\"No.\");\n+\n+ // [GIVEN] Create Standard Service Code with two Items and Quantity.\n+ LibraryService.CreateStandardServiceCode(StandardServiceCode);\n+ CreateStdServiceLineWithItem(StandardServiceCode.Code, Item.\"No.\", ExpectedQuantity);\n+ CreateStdServiceLineWithItem(StandardServiceCode.Code, Item2.\"No.\", ExpectedQuantity);\n+\n+ // [GIVEN] Create Service Order with Location.\n+ LibraryService.CreateServiceHeader(ServiceHeader, ServiceHeader.\"Document Type\"::Order, Customer.\"No.\");\n+ ServiceHeader.Validate(\"Location Code\", Location.Code);\n+ ServiceHeader.Modify();\n+\n+ // [GIVEN] Create Service Item Line.\n+ LibraryService.CreateServiceItemLine(ServiceItemLine, ServiceHeader, '');\n+\n+ // [GIVEN] Delete Standard Service Group Code.\n+ StandardServiceItemGrCode.DeleteAll();\n+\n+ // [WHEN] Insert Service Line through Standard Service Code.\n+ ServiceItemGroupCode2 := '';\n+ StandardServiceCode2 := StandardServiceCode.Code;\n+ StandardServiceItemGrCode.InsertServiceLines(ServiceItemLine);\n+\n+ // [THEN] Verify \"Reserved Qty. (Base)\" must be updated in the Service Line for the Reserve=Always item.\n+ FindServiceLine(ServiceLine, ServiceHeader.\"Document Type\", ServiceHeader.\"No.\");\n+ ServiceLine.CalcFields(\"Reserved Qty. (Base)\");\n+ Assert.AreEqual(\n+ ExpectedQuantity,\n+ ServiceLine.\"Reserved Qty. (Base)\",\n+ StrSubstNo(ValueMustBeEqualErr, ServiceLine.FieldCaption(\"Reserved Qty. (Base)\"), ExpectedQuantity, ServiceLine.TableCaption()));\n+ end;\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n@@ -1597,6 +1675,33 @@ codeunit 136119 \"Service Standard Codes\"\n VATEntry.TestField(\"Posting Date\", PostingDate);\n end;\n \n+ local procedure SetItemInventory(Item: Record Item; Quantity: Decimal; LocationCode: Code[10])\n+ var\n+ ItemJournalTemplate: Record \"Item Journal Template\";\n+ ItemJournalBatch: Record \"Item Journal Batch\";\n+ ItemJournalLine: Record \"Item Journal Line\";\n+ begin\n+ LibraryInventory.CreateItemJournalTemplate(ItemJournalTemplate);\n+ LibraryInventory.CreateItemJournalBatch(ItemJournalBatch, ItemJournalTemplate.Name);\n+\n+ LibraryInventory.CreateItemJournalLine(ItemJournalLine, ItemJournalTemplate.Name, ItemJournalBatch.Name, ItemJournalLine.\"Entry Type\"::\"Positive Adjmt.\", Item.\"No.\", Quantity);\n+ ItemJournalLine.Validate(\"Location Code\", LocationCode);\n+ ItemJournalLine.Modify();\n+\n+ LibraryInventory.PostItemJournalLine(ItemJournalTemplate.Name, ItemJournalLine.\"Journal Batch Name\");\n+ end;\n+\n+ local procedure CreateStdServiceLineWithItem(StandardServiceCode: Code[10]; ItemNo: Code[20]; Quantity: Decimal)\n+ var\n+ StandardServiceLine: Record \"Standard Service Line\";\n+ begin\n+ LibraryService.CreateStandardServiceLine(StandardServiceLine, StandardServiceCode);\n+ StandardServiceLine.Validate(Type, StandardServiceLine.Type::Item);\n+ StandardServiceLine.Validate(\"No.\", ItemNo);\n+ StandardServiceLine.Validate(Quantity, Quantity);\n+ StandardServiceLine.Modify(true);\n+ end;\n+\n [ConfirmHandler]\n [Scope('OnPrem')]\n procedure ConfirmHandler(Question: Text[1024]; var Reply: Boolean)\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Service/Item/StandardServiceItemGrCode.Table.al b/App/Layers/W1/BaseApp/Service/Item/StandardServiceItemGrCode.Table.al\nindex 33f69be..53eb121 100644\n--- a/App/Layers/W1/BaseApp/Service/Item/StandardServiceItemGrCode.Table.al\n+++ b/App/Layers/W1/BaseApp/Service/Item/StandardServiceItemGrCode.Table.al\n@@ -159,6 +159,11 @@ table 5998 \"Standard Service Item Gr. Code\"\n ServLine.\"Line No.\" := ServLine.GetLineNo();\n OnBeforeInsertServLine(ServLine);\n ServLine.Insert(true);\n+\n+ if ServLine.Type = ServLine.Type::Item then\n+ if ServLine.Reserve = ServLine.Reserve::Always then\n+ ServLine.AutoReserve(false);\n+\n InsertExtendedText(ServLine);\n end;\n until StdServLine.Next() = 0;\n"} +{"instance_id": "microsoftInternal__NAV-210528__cf-1", "base_instance_id": "microsoftInternal__NAV-210528", "variant_description": "Only 3 of 4 emission fields required: omits Work/Machine Center Emissions", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-210528__cf-1", "FAIL_TO_PASS": [{"codeunitID": 148187, "functionName": ["VerifyPurchDocAndItemAndResourceEmissionsEnabledWithValueChainTracking"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Apps/W1/Sustainability/test/src/SustCertificateTest.Codeunit.al b/App/Apps/W1/Sustainability/test/src/SustCertificateTest.Codeunit.al\nindex ff9b7640fa2..cf00000001 100644\n--- a/App/Apps/W1/Sustainability/test/src/SustCertificateTest.Codeunit.al\n+++ b/App/Apps/W1/Sustainability/test/src/SustCertificateTest.Codeunit.al\n@@ -5123,6 +5123,43 @@ codeunit 148187 \"Sust. Certificate Test\"\n // [THEN] Confirmation Box should not pop up as there is no confirm Handler. \n end;\n \n+ [Test]\n+ [HandlerFunctions('ConfirmHandlerYes')]\n+ procedure VerifyPurchDocAndItemAndResourceEmissionsEnabledWithValueChainTracking()\n+ var\n+ SustainabilitySetup: Record \"Sustainability Setup\";\n+ begin\n+ // [SCENARIO] Verify \"Use Emissions In Purch. Doc.\", \"Item Emissions\", \"Resource Emissions\"\n+ // must be enabled when \"Enable Value Chain Tracking\" is enabled.\n+ LibrarySustainability.CleanUpBeforeTesting();\n+\n+ // [GIVEN] Update Sustainability Setup.\n+ SustainabilitySetup.Get();\n+ SustainabilitySetup.Validate(\"Use Emissions In Purch. Doc.\", false);\n+ SustainabilitySetup.Validate(\"Item Emissions\", false);\n+ SustainabilitySetup.Validate(\"Resource Emissions\", false);\n+ SustainabilitySetup.Validate(\"Work/Machine Center Emissions\", false);\n+ SustainabilitySetup.Validate(\"Enable Value Chain Tracking\", false);\n+ SustainabilitySetup.Modify();\n+\n+ // [WHEN] \"Enable Value Chain Tracking\" set to true in Sustainability Setup.\n+ SustainabilitySetup.Validate(\"Enable Value Chain Tracking\", true);\n+\n+ // [THEN] Verify only 3 emission fields are auto-enabled.\n+ Assert.AreEqual(\n+ true,\n+ SustainabilitySetup.\"Use Emissions In Purch. Doc.\",\n+ StrSubstNo(FieldShouldBeEnabledErr, SustainabilitySetup.FieldCaption(\"Use Emissions In Purch. Doc.\"), SustainabilitySetup.TableCaption()));\n+ Assert.AreEqual(\n+ true,\n+ SustainabilitySetup.\"Item Emissions\",\n+ StrSubstNo(FieldShouldBeEnabledErr, SustainabilitySetup.FieldCaption(\"Item Emissions\"), SustainabilitySetup.TableCaption()));\n+ Assert.AreEqual(\n+ true,\n+ SustainabilitySetup.\"Resource Emissions\",\n+ StrSubstNo(FieldShouldBeEnabledErr, SustainabilitySetup.FieldCaption(\"Resource Emissions\"), SustainabilitySetup.TableCaption()));\n+ end;\n+\n local procedure CreateSustainabilityAccount(var AccountCode: Code[20]; var CategoryCode: Code[20]; var SubcategoryCode: Code[20]; i: Integer): Record \"Sustainability Account\"\n begin\n CreateSustainabilitySubcategory(CategoryCode, SubcategoryCode, i);\n", "patch": "diff --git a/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al b/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al\nindex 335c0099f4a..cf00000001 100644\n--- a/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al\n+++ b/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al\n@@ -151,6 +151,8 @@ table 6217 \"Sustainability Setup\"\n if Rec.\"Enable Value Chain Tracking\" then\n if not ConfirmManagement.GetResponseOrDefault(ConfirmEnableValueChainTrackingQst, false) then\n Error('');\n+\n+ EnableEmissionsWhenValueChainTrackingIsEnabled();\n end;\n }\n }\n@@ -188,6 +190,16 @@ table 6217 \"Sustainability Setup\"\n exit(\"Enable Value Chain Tracking\");\n end;\n \n+ local procedure EnableEmissionsWhenValueChainTrackingIsEnabled()\n+ begin\n+ if not Rec.\"Enable Value Chain Tracking\" then\n+ exit;\n+\n+ Rec.Validate(\"Use Emissions In Purch. Doc.\", true);\n+ Rec.Validate(\"Item Emissions\", true);\n+ Rec.Validate(\"Resource Emissions\", true);\n+ end;\n+\n internal procedure GetFormat(FieldNo: Integer): Text\n begin\n GetSustainabilitySetup();\n"} +{"instance_id": "microsoftInternal__NAV-211521__cf-1", "base_instance_id": "microsoftInternal__NAV-211521", "variant_description": "No System Task Type filter should be applied on Next Task Date drilldown", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-211521__cf-1", "FAIL_TO_PASS": [{"codeunitID": 136201, "functionName": ["TaskListPageHasFixedSystemTaskTypeFilterAsOrganiserOrContactAttendee"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/Marketing/MarketingContacts.Codeunit.al b/App/Layers/W1/Tests/Marketing/MarketingContacts.Codeunit.al\nindex 415be9b..bdea511 100644\n--- a/App/Layers/W1/Tests/Marketing/MarketingContacts.Codeunit.al\n+++ b/App/Layers/W1/Tests/Marketing/MarketingContacts.Codeunit.al\n@@ -6029,6 +6029,39 @@ codeunit 136201 \"Marketing Contacts\"\n Assert.AreEqual(VerifyInteractionLogEntry.\"Duration (Min.)\", DurationMin, ValueMustMatch);\n end;\n \n+ [Test]\n+ [HandlerFunctions('ModalPageHandlerForTask')]\n+ procedure TaskListPageHasFixedSystemTaskTypeFilterAsOrganiserOrContactAttendee()\n+ var\n+ Contact: Record Contact;\n+ Task: Record \"To-do\";\n+ TempTask: Record \"To-do\" temporary;\n+ ContactCard: TestPage \"Contact Card\";\n+ TaskList: TestPage \"Task List\";\n+ begin\n+ // [SCENARIO 568324] Task List page has a fixed System Task Type filter as 'Organizer|Contact Attendee' when Next Task Date Drilldown on Contact card\n+ Initialize();\n+\n+ // [GIVEN] Create Contact\n+ LibraryMarketing.CreateCompanyContact(Contact);\n+\n+ // [GIVEN] Create Task for Contact\n+ Task.SetRange(\"Contact No.\", Contact.\"No.\");\n+ TempTask.CreateTaskFromTask(Task);\n+\n+ // [WHEN] Open Contact Card and Drilldonw 'Next Task Date' also Trap Task List\n+ ContactCard.OpenView();\n+ ContactCard.GoToRecord(Contact);\n+ TaskList.Trap();\n+ ContactCard.\"Next Task Date\".Drilldown();\n+\n+ // [THEN] Verify no System To-do Type filter has been set on the page\n+ TaskList.\"Contact No.\".AssertEquals(Contact.\"No.\");\n+ Assert.AreEqual(\n+ '',\n+ TaskList.Filter.GetFilter(\"System To-do Type\"), 'Filter should not be set');\n+ end;\n+\n local procedure Initialize()\n var\n MarketingSetup: Record \"Marketing Setup\";\n", "patch": "diff --git a/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al b/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\nindex 401cabe..42569b9 100644\n--- a/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\n+++ b/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\n@@ -565,8 +565,7 @@ table 5050 Contact\n {\n CalcFormula = min(\"To-do\".Date where(\"Contact Company No.\" = field(\"Company No.\"),\n \"Contact No.\" = field(filter(\"Lookup Contact No.\")),\n- Closed = const(false),\n- \"System To-do Type\" = const(\"Contact Attendee\")));\n+ Closed = const(false)));\n Caption = 'Next Task Date';\n Editable = false;\n FieldClass = FlowField;\n"} +{"instance_id": "microsoftInternal__NAV-211521__cf-2", "base_instance_id": "microsoftInternal__NAV-211521", "variant_description": "Next Task Date drilldown should not enforce any System To-do Type filtering logic", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-211521__cf-2", "FAIL_TO_PASS": [{"codeunitID": 136201, "functionName": ["TaskListPageHasFixedSystemTaskTypeFilterAsOrganiserOrContactAttendee"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/Marketing/MarketingContacts.Codeunit.al b/App/Layers/W1/Tests/Marketing/MarketingContacts.Codeunit.al\nindex 415be9b..2112c99 100644\n--- a/App/Layers/W1/Tests/Marketing/MarketingContacts.Codeunit.al\n+++ b/App/Layers/W1/Tests/Marketing/MarketingContacts.Codeunit.al\n@@ -6029,6 +6029,36 @@ codeunit 136201 \"Marketing Contacts\"\n Assert.AreEqual(VerifyInteractionLogEntry.\"Duration (Min.)\", DurationMin, ValueMustMatch);\n end;\n \n+ [Test]\n+ [HandlerFunctions('ModalPageHandlerForTask')]\n+ procedure TaskListPageHasFixedSystemTaskTypeFilterAsOrganiserOrContactAttendee()\n+ var\n+ Contact: Record Contact;\n+ Task: Record \"To-do\";\n+ TempTask: Record \"To-do\" temporary;\n+ ContactCard: TestPage \"Contact Card\";\n+ TaskList: TestPage \"Task List\";\n+ begin\n+ // [SCENARIO 568324] Task List page has a fixed System Task Type filter as 'Organizer|Contact Attendee' when Next Task Date Drilldown on Contact card\n+ Initialize();\n+\n+ // [GIVEN] Create Contact\n+ LibraryMarketing.CreateCompanyContact(Contact);\n+\n+ // [GIVEN] Create Task for Contact\n+ Task.SetRange(\"Contact No.\", Contact.\"No.\");\n+ TempTask.CreateTaskFromTask(Task);\n+\n+ // [WHEN] Open Contact Card and Drilldonw 'Next Task Date' also Trap Task List\n+ ContactCard.OpenView();\n+ ContactCard.GoToRecord(Contact);\n+ TaskList.Trap();\n+ ContactCard.\"Next Task Date\".Drilldown();\n+\n+ // [THEN] Verify drilldown does not enforce filtering logic\n+ TaskList.\"Contact No.\".AssertEquals(Contact.\"No.\");\n+ end;\n+\n local procedure Initialize()\n var\n MarketingSetup: Record \"Marketing Setup\";\n", "patch": "diff --git a/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al b/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\nindex 401cabe..42569b9 100644\n--- a/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\n+++ b/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\n@@ -565,8 +565,7 @@ table 5050 Contact\n {\n CalcFormula = min(\"To-do\".Date where(\"Contact Company No.\" = field(\"Company No.\"),\n \"Contact No.\" = field(filter(\"Lookup Contact No.\")),\n- Closed = const(false),\n- \"System To-do Type\" = const(\"Contact Attendee\")));\n+ Closed = const(false)));\n Caption = 'Next Task Date';\n Editable = false;\n FieldClass = FlowField;\n"} +{"instance_id": "microsoftInternal__NAV-213671__cf-1", "base_instance_id": "microsoftInternal__NAV-213671", "variant_description": "Filter text should be truncated to avoid exceeding maximum allowed length", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-213671__cf-1", "FAIL_TO_PASS": [{"codeunitID": 136209, "functionName": ["BuildCaptionLengthIssueOnOpportunitiesListPage"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/Marketing/MarketingOpportunityMgmt.Codeunit.al b/App/Layers/W1/Tests/Marketing/MarketingOpportunityMgmt.Codeunit.al\nindex 4356582..9be9cd7 100644\n--- a/App/Layers/W1/Tests/Marketing/MarketingOpportunityMgmt.Codeunit.al\n+++ b/App/Layers/W1/Tests/Marketing/MarketingOpportunityMgmt.Codeunit.al\n@@ -1818,6 +1818,45 @@ codeunit 136209 \"Marketing Opportunity Mgmt\"\n Opportunity.CloseOpportunity();\n end;\n \n+ [Test]\n+ [Scope('OnPrem')]\n+ procedure BuildCaptionLengthIssueOnOpportunitiesListPage()\n+ var\n+ Opportunity: Record Opportunity;\n+ Contact: Record Contact;\n+ OpportunityList: TestPage \"Opportunity List\";\n+ FilterText: Text;\n+ i: Integer;\n+ begin\n+ // [SCENARIO 574639] Filter text should be truncated to avoid exceeding maximum allowed length\n+ Initialize();\n+\n+ // [GIVEN] Create contact and it's opportunity\n+ LibraryMarketing.CreateCompanyContact(Contact);\n+ LibraryMarketing.CreateOpportunity(Opportunity, Contact.\"No.\");\n+\n+ // [GIVEN] Prepare Filter Text with Salesperson Code\n+ for i := 1 to LibraryRandom.RandIntInRange(20, 20) do\n+ FilterText += Opportunity.\"Salesperson Code\" + '|';\n+ FilterText += Opportunity.\"Salesperson Code\";\n+\n+ // [THEN] Open Opportunities list page and apply salesperson code filter without issue\n+ Clear(FilterText);\n+ OpportunityList.OpenView();\n+ OpportunityList.Filter.SetFilter(\"Salesperson Code\", FilterText);\n+ OpportunityList.Close();\n+\n+ // [GIVEN] Prepare Filter Text with Contact No\n+ for i := 1 to LibraryRandom.RandIntInRange(20, 20) do\n+ FilterText += Contact.\"No.\" + '|';\n+ FilterText += Contact.\"No.\";\n+\n+ // [THEN] Open Opportunities list page and contacts filter without issue\n+ OpportunityList.OpenView();\n+ OpportunityList.Filter.SetFilter(\"Contact No.\", FilterText);\n+ OpportunityList.Close();\n+ end;\n+\n local procedure Initialize()\n begin\n LibraryTestInitialize.OnTestInitialize(CODEUNIT::\"Marketing Opportunity Mgmt\");\n", "patch": "diff --git a/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al b/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\nindex c70c6c1..b69a136 100644\n--- a/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\n+++ b/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\n@@ -630,7 +630,7 @@ page 5123 \"Opportunity List\"\n if Filter <> '' then begin\n RecRef.GetTable(RecVar);\n IndexFieldRef := RecRef.Field(IndexFieldNo);\n- IndexFieldRef.SetRange(Filter);\n+ IndexFieldRef.SetFilter(CopyStr(Filter, 1, 20));\n if RecRef.FindFirst() then begin\n TextFieldRef := RecRef.Field(TextFieldNo);\n CaptionText := CopyStr(Format(IndexFieldRef.Value) + ' ' + Format(TextFieldRef.Value), 1, MaxStrLen(CaptionText));\n"} +{"instance_id": "microsoftInternal__NAV-213671__cf-2", "base_instance_id": "microsoftInternal__NAV-213671", "variant_description": "Page should handle OR-filter strings with fewer repetitions (5 instead of 20)", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-213671__cf-2", "FAIL_TO_PASS": [{"codeunitID": 136209, "functionName": ["BuildCaptionLengthIssueOnOpportunitiesListPage"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/Marketing/MarketingOpportunityMgmt.Codeunit.al b/App/Layers/W1/Tests/Marketing/MarketingOpportunityMgmt.Codeunit.al\nindex 4356582..c4f1f60 100644\n--- a/App/Layers/W1/Tests/Marketing/MarketingOpportunityMgmt.Codeunit.al\n+++ b/App/Layers/W1/Tests/Marketing/MarketingOpportunityMgmt.Codeunit.al\n@@ -1818,6 +1818,45 @@ codeunit 136209 \"Marketing Opportunity Mgmt\"\n Opportunity.CloseOpportunity();\n end;\n \n+ [Test]\n+ [Scope('OnPrem')]\n+ procedure BuildCaptionLengthIssueOnOpportunitiesListPage()\n+ var\n+ Opportunity: Record Opportunity;\n+ Contact: Record Contact;\n+ OpportunityList: TestPage \"Opportunity List\";\n+ FilterText: Text;\n+ i: Integer;\n+ begin\n+ // [SCENARIO 574639] The length of the string is XX but it must be less than or equal to 20 characters when working with Opportunities\n+ Initialize();\n+\n+ // [GIVEN] Create contact and it's opportunity\n+ LibraryMarketing.CreateCompanyContact(Contact);\n+ LibraryMarketing.CreateOpportunity(Opportunity, Contact.\"No.\");\n+\n+ // [GIVEN] Prepare Filter Text with Salesperson Code\n+ for i := 1 to LibraryRandom.RandIntInRange(5, 5) do\n+ FilterText += Opportunity.\"Salesperson Code\" + '|';\n+ FilterText += Opportunity.\"Salesperson Code\";\n+\n+ // [THEN] Open Opportunities list page and apply salesperson code filter without issue\n+ Clear(FilterText);\n+ OpportunityList.OpenView();\n+ OpportunityList.Filter.SetFilter(\"Salesperson Code\", FilterText);\n+ OpportunityList.Close();\n+\n+ // [GIVEN] Prepare Filter Text with Contact No\n+ for i := 1 to LibraryRandom.RandIntInRange(5, 5) do\n+ FilterText += Contact.\"No.\" + '|';\n+ FilterText += Contact.\"No.\";\n+\n+ // [THEN] Open Opportunities list page and contacts filter without issue\n+ OpportunityList.OpenView();\n+ OpportunityList.Filter.SetFilter(\"Contact No.\", FilterText);\n+ OpportunityList.Close();\n+ end;\n+\n local procedure Initialize()\n begin\n LibraryTestInitialize.OnTestInitialize(CODEUNIT::\"Marketing Opportunity Mgmt\");\n", "patch": "diff --git a/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al b/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\nindex c70c6c1..8166718 100644\n--- a/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\n+++ b/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\n@@ -630,7 +630,7 @@ page 5123 \"Opportunity List\"\n if Filter <> '' then begin\n RecRef.GetTable(RecVar);\n IndexFieldRef := RecRef.Field(IndexFieldNo);\n- IndexFieldRef.SetRange(Filter);\n+ IndexFieldRef.SetFilter(Filter);\n if RecRef.FindFirst() then begin\n TextFieldRef := RecRef.Field(TextFieldNo);\n CaptionText := CopyStr(Format(IndexFieldRef.Value) + ' ' + Format(TextFieldRef.Value), 1, MaxStrLen(CaptionText));\n"} +{"instance_id": "microsoftInternal__NAV-213683__cf-1", "base_instance_id": "microsoftInternal__NAV-213683", "variant_description": "Rename Item No. should always be allowed regardless of existing entries", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-213683__cf-1", "FAIL_TO_PASS": [{"codeunitID": 134385, "functionName": ["RenameItemNoExistsInValueEntry"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/ERM/ERMSalesDocument.Codeunit.al b/App/Layers/W1/Tests/ERM/ERMSalesDocument.Codeunit.al\nindex 6a94185..9590f93 100644\n--- a/App/Layers/W1/Tests/ERM/ERMSalesDocument.Codeunit.al\n+++ b/App/Layers/W1/Tests/ERM/ERMSalesDocument.Codeunit.al\n@@ -55,6 +55,7 @@\n AmountNotMatchedErr: Label 'Amount not matched.';\n AmountMustSameErr: Label 'Amount must be same';\n QtyHandleMustSameErr: Label 'Qty to handle must equal';\n+ CannotRenameItemErr: Label 'You cannot rename %1 in a %2 because it is used in Sales Document lines.';\n \n [Test]\n [Scope('OnPrem')]\n@@ -4819,6 +4820,57 @@\n LibraryVariableStorage.AssertEmpty();\n end;\n \n+ [Test]\n+ [Scope('OnPrem')]\n+ procedure RenameItemNoExistsInValueEntry()\n+ var\n+ Item: Record Item;\n+ Item2: Record Item;\n+ ItemVariant: Record \"Item Variant\";\n+ ItemJournalTemplate: Record \"Item Journal Template\";\n+ ItemJournalBatch: Record \"Item Journal Batch\";\n+ ItemJournalLine: Record \"Item Journal Line\";\n+ SalesHeader: Record \"Sales Header\";\n+ SalesLine: Record \"Sales Line\";\n+ NewItemCode: Code[20];\n+ begin\n+ // [SCENARIO 574250] Verify Rename Item No. After Posting and Generating Value Entries with Variant Codes and blank Variant Code.\n+ Initialize();\n+\n+ // [GIVEN] Create an Item.\n+ LibraryInventory.CreateItem(Item);\n+\n+ // [GIVEN] Create an Item Variant for Item.\n+ LibraryInventory.CreateItemVariant(ItemVariant, Item.\"No.\");\n+\n+ // [GIVEN] Create and Post Item Journal with and without Variant Code.\n+ LibraryInventory.SelectItemJournalTemplateName(ItemJournalTemplate, ItemJournalTemplate.Type::Item);\n+ LibraryInventory.SelectItemJournalBatchName(ItemJournalBatch, ItemJournalTemplate.Type::Item, ItemJournalTemplate.Name);\n+ LibraryInventory.CreateItemJournalLine(\n+ ItemJournalLine, ItemJournalBatch.\"Journal Template Name\",\n+ ItemJournalBatch.Name, ItemJournalLine.\"Entry Type\"::\"Positive Adjmt.\", Item.\"No.\", LibraryRandom.RandDecInRange(10, 20, 2));\n+ ItemJournalLine.Validate(\"Variant Code\", ItemVariant.Code);\n+ ItemJournalLine.Modify(true);\n+\n+ LibraryInventory.CreateItemJournalLine(\n+ ItemJournalLine, ItemJournalBatch.\"Journal Template Name\",\n+ ItemJournalBatch.Name, ItemJournalLine.\"Entry Type\"::\"Positive Adjmt.\", Item.\"No.\", LibraryRandom.RandDecInRange(10, 20, 2));\n+\n+ LibraryInventory.PostItemJournalLine(ItemJournalBatch.\"Journal Template Name\", ItemJournalBatch.Name);\n+\n+ // [GIVEN] Create and Post Sales Invoice with Variant Code.\n+ LibrarySales.CreateSalesInvoice(SalesHeader, SalesLine, Item, '', ItemVariant.Code, LibraryRandom.RandDecInRange(5, 10, 2), WorkDate(), LibraryRandom.RandDecInRange(100, 200, 2));\n+ LibrarySales.PostSalesDocument(SalesHeader, true, true);\n+\n+ // [WHEN] Rename Item No. on Item. \n+ NewItemCode := LibraryUtility.GenerateRandomCode(Item.FieldNo(\"No.\"), Database::Item);\n+ Item2.Get(Item.\"No.\");\n+ Item2.Rename(NewItemCode);\n+\n+ // [THEN] Rename must always succeed regardless of data conditions\n+ Assert.AreEqual(NewItemCode, Item2.\"No.\", StrSubstNo(CannotRenameItemErr, Item2.FieldCaption(\"No.\"), Item2.TableCaption()));\n+ end;\n+\n local procedure Initialize()\n var\n AllProfile: Record \"All Profile\";\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al\nindex 9735e4b..0fa02ec 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al\n@@ -161,7 +161,7 @@ codeunit 99000795 \"Mfg. Item Integration\"\n end;\n \n [EventSubscriber(ObjectType::Table, Database::\"Item Variant\", 'OnBeforeRenameEvent', '', false, false)]\n- local procedure OnBeforeRenameItemVariant(var Rec: Record \"Item Variant\"; var xRec: Record \"Item Variant\")\n+ local procedure OnBeforeRenameItemVariant(var Rec: Record \"Item Variant\"; var xRec: Record \"Item Variant\"; RunTrigger: Boolean)\n var\n BOMComponent: Record \"BOM Component\";\n AssemblyHeader: Record \"Assembly Header\";\n@@ -176,6 +176,8 @@ codeunit 99000795 \"Mfg. Item Integration\"\n ItemLedgerEntry: Record \"Item Ledger Entry\";\n ProdOrderLine: Record \"Prod. Order Line\";\n begin\n+ exit;\n+\n if xRec.\"Item No.\" <> Rec.\"Item No.\" then begin\n ProdOrderLine.SetRange(\"Item No.\", xRec.\"Item No.\");\n ProdOrderLine.SetRange(\"Variant Code\", xRec.Code);\n"} +{"instance_id": "microsoftInternal__NAV-214557__cf-1", "base_instance_id": "microsoftInternal__NAV-214557", "variant_description": "Planning should suppress the requisition line when total supply is greater than or equal to total demand", "failure_layer": null, "FAIL_TO_PASS": [{"codeunitID": 137075, "functionName": ["ReqLineIsNotCreatedWhenCalcRegenPlanForCompItemPresentInRelProdOrder"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM/SCMPlanningOrderTracking.Codeunit.al b/App/Layers/W1/Tests/SCM/SCMPlanningOrderTracking.Codeunit.al\nindex 66bf5a9..974e217 100644\n--- a/App/Layers/W1/Tests/SCM/SCMPlanningOrderTracking.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM/SCMPlanningOrderTracking.Codeunit.al\n@@ -861,6 +861,69 @@\n // [THEN] Order Tracking page is opened with 2 lines for Item \"I\" and quantity = 1(checked in OrderTrackingWithLinesModalPageHandler handler)\n end;\n \n+ [Test]\n+ [Scope('OnPrem')]\n+ procedure ReqLineIsNotCreatedWhenCalcRegenPlanForCompItemPresentInRelProdOrder()\n+ var\n+ Item: array[4] of Record Item;\n+ ProductionBOMHeader: array[2] of Record \"Production BOM Header\";\n+ productionBOMLine: array[3] of Record \"Production BOM Line\";\n+ ProductionOrder: Record \"Production Order\";\n+ RequisitionLine: Record \"Requisition Line\";\n+ begin\n+ // [SCENARIO 563946] Requition Line is not created when Stan runs Calculate Regenerative \n+ // Plan action for Component Item if the that Item is present in a Released Production Order \n+ // with required Quantity in its Prod. Order Line.\n+ Initialize();\n+\n+ // [GIVEN] Create four Items.\n+ CreateItem(Item[1]);\n+ CreateItem(Item[2]);\n+ CreateItem(Item[3]);\n+ CreateItem(Item[4]);\n+\n+ // [GIVEN] Create a Production BOM for Item [2] and Item [3].\n+ LibraryManufacturing.CreateProductionBOMHeader(ProductionBOMHeader[1], Item[2].\"Base Unit of Measure\");\n+ LibraryManufacturing.CreateProductionBOMLine(ProductionBOMHeader[1], ProductionBOMLine[1], '', ProductionBOMLine[1].Type::Item, Item[2].\"No.\", LibraryRandom.RandIntInRange(1, 1));\n+ LibraryManufacturing.CreateProductionBOMLine(ProductionBOMHeader[1], ProductionBOMLine[2], '', ProductionBOMLine[2].Type::Item, Item[3].\"No.\", LibraryRandom.RandIntInRange(1, 1));\n+\n+ // [GIVEN] Validate \"Status\" in Production BOM Header [1].\n+ ProductionBOMHeader[1].Validate(\"Status\", ProductionBOMHeader[1].Status::Certified);\n+ ProductionBOMHeader[1].Modify(true);\n+\n+ // [GIVEN] Create a Production BOM for Item [4].\n+ LibraryManufacturing.CreateProductionBOMHeader(ProductionBOMHeader[2], Item[4].\"Base Unit of Measure\");\n+ LibraryManufacturing.CreateProductionBOMLine(ProductionBOMHeader[2], ProductionBOMLine[3], '', ProductionBOMLine[3].Type::Item, Item[4].\"No.\", LibraryRandom.RandIntInRange(1, 1));\n+\n+ // [GIVEN] Validate \"Status\" in Production BOM Header [2].\n+ ProductionBOMHeader[2].Validate(\"Status\", ProductionBOMHeader[2].Status::Certified);\n+ ProductionBOMHeader[2].Modify(true);\n+\n+ // [GIVEN] Validate \"Production BOM No.\" in Item [1].\n+ Item[1].Validate(\"Production BOM No.\", ProductionBOMHeader[1].\"No.\");\n+ Item[1].Modify(true);\n+\n+ // [GIVEN] Validate \"Production BOM No.\" in Item [2].\n+ Item[2].Validate(\"Production BOM No.\", ProductionBOMHeader[2].\"No.\");\n+ Item[2].Modify(true);\n+\n+ // [GIVEN] Validate \"Production BOM No.\" in Item [3].\n+ Item[3].Validate(\"Production BOM No.\", ProductionBOMHeader[2].\"No.\");\n+ Item[3].Modify(true);\n+\n+ // [GIVEN] Create and Refresh Released Production Order with larger covering quantity.\n+ CreateAndRefreshReleasedProductionOrder(ProductionOrder, Item[1].\"No.\", 2);\n+\n+ // [GIVEN] Calculate Regenerative Plan for Planning Worksheet.\n+ CalculateRegenPlanForPlanningWorksheet(Item[4]);\n+\n+ // [WHEN] Find Requisition Line.\n+ RequisitionLine.SetRange(\"No.\", Item[4].\"No.\");\n+\n+ // [THEN] Requisition Line is not found.\n+ Assert.IsTrue(RequisitionLine.IsEmpty(), StrSubstNo(ReqLineShouldNotExistErr, ''));\n+ end;\n+\n local procedure Initialize()\n var\n RequisitionLine: Record \"Requisition Line\";\n@@ -1597,6 +1661,15 @@\n ReservationEntry.Insert();\n end;\n \n+ local procedure CreateItem(var Item: Record Item)\n+ begin\n+ LibraryInventory.CreateItem(Item);\n+ Item.Validate(\"Replenishment System\", Item.\"Replenishment System\"::\"Prod. Order\");\n+ Item.Validate(\"Reordering Policy\", Item.\"Reordering Policy\"::\"Lot-for-Lot\");\n+ Item.Validate(\"Manufacturing Policy\", Item.\"Manufacturing Policy\"::\"Make-to-Order\");\n+ Item.Modify(true);\n+ end;\n+\n [RequestPageHandler]\n [Scope('OnPrem')]\n procedure CalculatePlanPlanWkshRequestPageHandler(var CalculatePlanPlanWksh: TestRequestPage \"Calculate Plan - Plan. Wksh.\")\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al\nindex e3a6cf2..e0c32ef 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al\n@@ -9,6 +9,7 @@ using Microsoft.Foundation.Shipping;\n using Microsoft.Foundation.UOM;\n using Microsoft.Inventory;\n using Microsoft.Inventory.Item;\n+using Microsoft.Manufacturing.Document;\n using Microsoft.Inventory.Ledger;\n using Microsoft.Inventory.Location;\n using Microsoft.Inventory.Planning;\n@@ -982,6 +983,9 @@ codeunit 99000854 \"Inventory Profile Offsetting\"\n CanBeRescheduled: Boolean;\n ItemInventoryExists: Boolean;\n begin\n+ if CheckDemandAndSupplyQuantityAreEqual(SupplyInvtProfile, DemandInvtProfile) then\n+ exit;\n+\n xDemandInvtProfile.CopyFilters(DemandInvtProfile);\n xSupplyInvtProfile.CopyFilters(SupplyInvtProfile);\n ItemInventoryExists := CheckItemInventoryExists(SupplyInvtProfile);\n@@ -1097,6 +1101,28 @@ codeunit 99000854 \"Inventory Profile Offsetting\"\n OnAfterMatchAttributes(SupplyInvtProfile, DemandInvtProfile, TempTrkgReservEntry);\n end;\n \n+ local procedure CheckDemandAndSupplyQuantityAreEqual(var SupplyInvtProfile: Record \"Inventory Profile\"; var DemandInvtProfile: Record \"Inventory Profile\"): Boolean\n+ var\n+ TotalDemandQty: Decimal;\n+ TotalSupplyQty: Decimal;\n+ begin\n+ if (SupplyInvtProfile.\"Source Type\" <> Database::\"Prod. Order Line\") or (DemandInvtProfile.\"Source Type\" <> Database::\"Prod. Order Component\") then\n+ exit(false);\n+\n+ if DemandInvtProfile.FindSet() then\n+ repeat\n+ TotalDemandQty += DemandInvtProfile.Quantity;\n+ until DemandInvtProfile.Next() = 0;\n+\n+ if SupplyInvtProfile.FindSet() then\n+ repeat\n+ TotalSupplyQty += SupplyInvtProfile.Quantity;\n+ until SupplyInvtProfile.Next() = 0;\n+\n+ if TotalSupplyQty >= TotalDemandQty then\n+ exit(true);\n+ end;\n+\n local procedure DecreaseQtyForMaxQty(var SupplyInvtProfile: Record \"Inventory Profile\"; ReduceQty: Decimal)\n begin\n if ReduceQty > 0 then begin\n"} +{"instance_id": "microsoftInternal__NAV-214825__cf-1", "base_instance_id": "microsoftInternal__NAV-214825", "variant_description": "Unavailable-items result must remain correct even after inserting two new planning lines before the original one", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-214825__cf-1", "FAIL_TO_PASS": [{"codeunitID": 136350, "functionName": ["CheckUnavailableItemQtyWhenAddProjectPlanningLinesBeforeThePreviousOne"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/Job/UTTJob.Codeunit.al b/App/Layers/W1/Tests/Job/UTTJob.Codeunit.al\nindex bb7f40e..4889d00 100644\n--- a/App/Layers/W1/Tests/Job/UTTJob.Codeunit.al\n+++ b/App/Layers/W1/Tests/Job/UTTJob.Codeunit.al\n@@ -2248,6 +2248,38 @@ codeunit 136350 \"UT T Job\"\n Assert.IsFalse(PurchaseLine.IsEmpty, 'Purchase Line not created for Job Task' + JobTask.\"Job Task No.\");\n end;\n \n+ [Test]\n+ [HandlerFunctions('CheckPurchOrderFromJobModalPageHandlerHaveLines')]\n+ procedure CheckUnavailableItemQtyWhenAddProjectPlanningLinesBeforeThePreviousOne()\n+ var\n+ Item, Item2, Item3 : Record Item;\n+ JobPlanningLines: TestPage \"Job Planning Lines\";\n+ begin\n+ // [SCENARIO 574938] Create Purchase Order from Project not working as expected if we add Project Planning Lines before the previous ones.\n+ Initialize();\n+\n+ // [GIVEN] Create 3 New Item.\n+ LibraryInventory.CreateItem(Item);\n+ LibraryInventory.CreateItem(Item2);\n+ LibraryInventory.CreateItem(Item3);\n+\n+ // [GIVEN] Create Job X with Job Task and 3 Job Planning Lines.\n+ CreateJobAndJobTask();\n+ CreateJobPlanningLineWithItem(JobPlanningLine.\"Line Type\"::\"Both Budget and Billable\", Item.\"No.\", LibraryRandom.RandInt(100));\n+ CreateJobPlanningLineBeforePreviousLine(JobPlanningLine.\"Line Type\"::\"Both Budget and Billable\", Item2.\"No.\", LibraryRandom.RandInt(100));\n+ CreateJobPlanningLineBeforePreviousLine(JobPlanningLine.\"Line Type\"::\"Both Budget and Billable\", Item3.\"No.\", LibraryRandom.RandInt(100));\n+\n+ // [WHEN] Open Job Planning Lines.\n+ JobPlanningLines.OpenEdit();\n+ JobPlanningLines.GoToRecord(JobPlanningLine);\n+ LibraryVariableStorage.Clear();\n+ LibraryVariableStorage.Enqueue(Item.\"No.\");\n+\n+ // [WHEN] Create Purchase Order from Job Planning Lines.\n+ JobPlanningLines.CreatePurchaseOrder.Invoke();//assert check\n+ LibraryVariableStorage.AssertEmpty();\n+ end;\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n@@ -2617,6 +2649,30 @@ codeunit 136350 \"UT T Job\"\n until DefaultDimension.Next() = 0;\n end;\n \n+ local procedure CreateJobPlanningLineBeforePreviousLine(LineType: Enum \"Job Planning Line Line Type\"; ItemNo: Code[20]; Quantity: Decimal)\n+ var\n+ JobPlanLine: Record \"Job Planning Line\";\n+ LineNo: Integer;\n+ begin\n+ JobPlanLine.SetRange(\"Job No.\", JobTask.\"Job No.\");\n+ JobPlanLine.SetRange(\"Job Task No.\", JobTask.\"Job Task No.\");\n+ if JobPlanLine.FindFirst() then;\n+ LineNo := JobPlanLine.\"Line No.\" / 2;\n+ JobPlanningLine.Init();\n+ JobPlanningLine.Validate(\"Job No.\", JobTask.\"Job No.\");\n+ JobPlanningLine.Validate(\"Job Task No.\", JobTask.\"Job Task No.\");\n+ JobPlanningLine.Validate(\"Line No.\", LineNo);\n+ JobPlanningLine.Insert(true);\n+\n+ JobPlanningLine.Validate(\"Planning Date\", WorkDate());\n+ JobPlanningLine.Validate(\"Line Type\", LineType);\n+ JobPlanningLine.Validate(Type, JobPlanningLine.Type::Item);\n+ JobPlanningLine.Validate(Description, LibraryUtility.GenerateGUID());\n+ JobPlanningLine.Validate(\"No.\", ItemNo);\n+ JobPlanningLine.Validate(Quantity, Quantity);\n+ JobPlanningLine.Modify(true);\n+ end;\n+\n [EventSubscriber(ObjectType::Table, Database::\"Job\", 'OnAfterModifyEvent', '', false, false)]\n local procedure InsertNameValueBufferOnJobModify(var Rec: Record Job; var xRec: Record Job; RunTrigger: Boolean)\n var\n@@ -2730,6 +2786,13 @@ codeunit 136350 \"UT T Job\"\n PurchOrderFromSalesOrder.OK().Invoke();\n end;\n \n+ [ModalPageHandler]\n+ procedure CheckPurchOrderFromJobModalPageHandlerHaveLines(var PurchOrderFromSalesOrder: TestPage \"Purch. Order From Sales Order\")\n+ begin\n+ //[THEN] Check Purch. Order From Sales Order Page have Record.\n+ PurchOrderFromSalesOrder.\"No.\".AssertEquals(LibraryVariableStorage.DequeueText());\n+ end;\n+\n [MessageHandler]\n procedure MessageHandler(Message: Text[1024])\n var\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\nindex 604bb91..dbeab2b 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\n@@ -78,6 +78,8 @@ codeunit 1018 \"Purchase Doc. From Job\"\n JobPlanningLine.SetRange(\"Job Task No.\", JobTask.\"Job Task No.\");\n if JobPlanningLine.IsEmpty() then\n exit;\n+ JobPlanningLine.SetCurrentKey(\"Job Contract Entry No.\");\n+ JobPlanningLine.Ascending(true);\n JobPlanningLine.FindSet();\n RecRef.GetTable(JobPlanningLine);\n ContractEntryNoFilter := SelectionFilterMgt.GetSelectionFilter(RecRef, JobPlanningLine.FieldNo(\"Job Contract Entry No.\"));\n"} +{"instance_id": "microsoftInternal__NAV-214825__cf-2", "base_instance_id": "microsoftInternal__NAV-214825", "variant_description": "Unavailable-items result must remain correct when Create Purchase Order is executed again after reopening the page", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-214825__cf-2", "FAIL_TO_PASS": [{"codeunitID": 136350, "functionName": ["CheckUnavailableItemQtyWhenAddProjectPlanningLinesBeforeThePreviousOne"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/Job/UTTJob.Codeunit.al b/App/Layers/W1/Tests/Job/UTTJob.Codeunit.al\nindex bb7f40e..52eff0e 100644\n--- a/App/Layers/W1/Tests/Job/UTTJob.Codeunit.al\n+++ b/App/Layers/W1/Tests/Job/UTTJob.Codeunit.al\n@@ -2248,6 +2248,39 @@ codeunit 136350 \"UT T Job\"\n Assert.IsFalse(PurchaseLine.IsEmpty, 'Purchase Line not created for Job Task' + JobTask.\"Job Task No.\");\n end;\n \n+ [Test]\n+ [HandlerFunctions('CheckPurchOrderFromJobModalPageHandlerHaveLines')]\n+ procedure CheckUnavailableItemQtyWhenAddProjectPlanningLinesBeforeThePreviousOne()\n+ var\n+ Item, Item2 : Record Item;\n+ JobPlanningLines: TestPage \"Job Planning Lines\";\n+ begin\n+ // [SCENARIO 574938] Create Purchase Order from Project not working as expected if we add Project Planning Lines before the previous ones.\n+ Initialize();\n+\n+ // [GIVEN] Create 2 New Item.\n+ LibraryInventory.CreateItem(Item);\n+ LibraryInventory.CreateItem(Item2);\n+\n+ // [GIVEN] Create Job X with Job Task and 2 Job Planning Lines.\n+ CreateJobAndJobTask();\n+ CreateJobPlanningLineWithItem(JobPlanningLine.\"Line Type\"::\"Both Budget and Billable\", Item.\"No.\", LibraryRandom.RandInt(100));\n+ CreateJobPlanningLineBeforePreviousLine(JobPlanningLine.\"Line Type\"::\"Both Budget and Billable\", Item2.\"No.\", LibraryRandom.RandInt(100));\n+\n+ // [WHEN] Open Job Planning Lines.\n+ JobPlanningLines.OpenEdit();\n+ JobPlanningLines.GoToRecord(JobPlanningLine);\n+ LibraryVariableStorage.Clear();\n+ LibraryVariableStorage.Enqueue(Item.\"No.\");\n+\n+ // [WHEN] Reopen the page and Create Purchase Order from Job Planning Lines.\n+ JobPlanningLines.Close();\n+ JobPlanningLines.OpenEdit();\n+ JobPlanningLines.GoToRecord(JobPlanningLine);\n+ JobPlanningLines.CreatePurchaseOrder.Invoke();//assert check\n+ LibraryVariableStorage.AssertEmpty();\n+ end;\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n@@ -2617,6 +2650,30 @@ codeunit 136350 \"UT T Job\"\n until DefaultDimension.Next() = 0;\n end;\n \n+ local procedure CreateJobPlanningLineBeforePreviousLine(LineType: Enum \"Job Planning Line Line Type\"; ItemNo: Code[20]; Quantity: Decimal)\n+ var\n+ JobPlanLine: Record \"Job Planning Line\";\n+ LineNo: Integer;\n+ begin\n+ JobPlanLine.SetRange(\"Job No.\", JobTask.\"Job No.\");\n+ JobPlanLine.SetRange(\"Job Task No.\", JobTask.\"Job Task No.\");\n+ if JobPlanLine.FindFirst() then;\n+ LineNo := JobPlanLine.\"Line No.\" / 2;\n+ JobPlanningLine.Init();\n+ JobPlanningLine.Validate(\"Job No.\", JobTask.\"Job No.\");\n+ JobPlanningLine.Validate(\"Job Task No.\", JobTask.\"Job Task No.\");\n+ JobPlanningLine.Validate(\"Line No.\", LineNo);\n+ JobPlanningLine.Insert(true);\n+\n+ JobPlanningLine.Validate(\"Planning Date\", WorkDate());\n+ JobPlanningLine.Validate(\"Line Type\", LineType);\n+ JobPlanningLine.Validate(Type, JobPlanningLine.Type::Item);\n+ JobPlanningLine.Validate(Description, LibraryUtility.GenerateGUID());\n+ JobPlanningLine.Validate(\"No.\", ItemNo);\n+ JobPlanningLine.Validate(Quantity, Quantity);\n+ JobPlanningLine.Modify(true);\n+ end;\n+\n [EventSubscriber(ObjectType::Table, Database::\"Job\", 'OnAfterModifyEvent', '', false, false)]\n local procedure InsertNameValueBufferOnJobModify(var Rec: Record Job; var xRec: Record Job; RunTrigger: Boolean)\n var\n@@ -2730,6 +2787,13 @@ codeunit 136350 \"UT T Job\"\n PurchOrderFromSalesOrder.OK().Invoke();\n end;\n \n+ [ModalPageHandler]\n+ procedure CheckPurchOrderFromJobModalPageHandlerHaveLines(var PurchOrderFromSalesOrder: TestPage \"Purch. Order From Sales Order\")\n+ begin\n+ //[THEN] Check Purch. Order From Sales Order Page have Record.\n+ PurchOrderFromSalesOrder.\"No.\".AssertEquals(LibraryVariableStorage.DequeueText());\n+ end;\n+\n [MessageHandler]\n procedure MessageHandler(Message: Text[1024])\n var\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\nindex 604bb91..dbeab2b 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\n@@ -78,6 +78,8 @@ codeunit 1018 \"Purchase Doc. From Job\"\n JobPlanningLine.SetRange(\"Job Task No.\", JobTask.\"Job Task No.\");\n if JobPlanningLine.IsEmpty() then\n exit;\n+ JobPlanningLine.SetCurrentKey(\"Job Contract Entry No.\");\n+ JobPlanningLine.Ascending(true);\n JobPlanningLine.FindSet();\n RecRef.GetTable(JobPlanningLine);\n ContractEntryNoFilter := SelectionFilterMgt.GetSelectionFilter(RecRef, JobPlanningLine.FieldNo(\"Job Contract Entry No.\"));\n"} +{"instance_id": "microsoftInternal__NAV-214926__cf-1", "base_instance_id": "microsoftInternal__NAV-214926", "variant_description": "Remove SalesOutstandingAmountFromShipment from formula; only deduct shipment-derived invoice amounts", "failure_layer": null, "FAIL_TO_PASS": [{"codeunitID": 134389, "functionName": ["CheckCustomerCardStatisticsTotalOnFactBox"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/ERM/ERMCustomerStatistics.Codeunit.al b/App/Layers/W1/Tests/ERM/ERMCustomerStatistics.Codeunit.al\nindex 12e3e3ea3927..4ddc570573df 100644\n--- a/App/Layers/W1/Tests/ERM/ERMCustomerStatistics.Codeunit.al\n+++ b/App/Layers/W1/Tests/ERM/ERMCustomerStatistics.Codeunit.al\n@@ -28,6 +28,7 @@ codeunit 134389 \"ERM Customer Statistics\"\n FieldIsNotHiddenErr: Label 'Field is hidden';\n EntryNoMustMatchErr: Label 'Entry No. must match.';\n PaymentsLCYAndAmountLCYMustMatchErr: Label 'Payemnts (LCY) and Amount (LCY) must match.';\n+ CustomerCardFactboxTotalErr: Label 'Customer card factbox total is not Correct';\n \n [Test]\n [Scope('OnPrem')]\n@@ -964,6 +965,44 @@ codeunit 134389 \"ERM Customer Statistics\"\n CustomerCard.Close();\n end;\n \n+ [Test]\n+ [HandlerFunctions('GetShipmentLinesPageHandler')]\n+ procedure CheckCustomerCardStatisticsTotalOnFactBox()\n+ var\n+ Customer: Record Customer;\n+ Item: Record Item;\n+ SalesHeader: Record \"Sales Header\";\n+ SalesLine: Record \"Sales Line\";\n+ begin\n+ // [SCENARIO 574648] Check Customer Card Statistics Total On FactBox When Sales Order Only Shiped and Sales Invoice \n+ // Created By GetShipmentLines without Posting.\n+ Initialize();\n+\n+ // [GIVEN] Created New Customer.\n+ LibrarySales.CreateCustomer(Customer);\n+\n+ // [GIVEN] Created New Item.\n+ LibraryInventory.CreateItem(Item);\n+\n+ // [GIVEN] Created Item Inventory By Posting Item Journal With Qty 10.\n+ CreateItemInventory(Item, 10);\n+\n+ // [WHEN] Created New Sales Order With Qty 10.\n+ CreateSalesHeader(SalesHeader, SalesHeader.\"Document Type\"::Order, Customer.\"No.\", WorkDate());\n+ LibrarySales.CreateSalesLine(SalesLine, SalesHeader, SalesLine.Type::Item, Item.\"No.\", 10);\n+ SalesLine.Validate(\"Unit Price\", LibraryRandom.RandDec(1000, 0));\n+ SalesLine.Modify(true);\n+\n+ // [WHEN] \"SO\" Post invoked with \"Shipped\" selected.\n+ LibrarySales.PostSalesDocument(SalesHeader, true, false);\n+\n+ // [WHEN] Create New Sales Invoice And Get Shipment Line Through GetShipmentLines.\n+ CreateAndReleaseSalesInvoiceUsingGetShipmentLines(SalesHeader.\"Sell-to Customer No.\");\n+\n+ // [THEN] Check Customer Card Statistics Total is Equal To SalesLine.\"Amount Including VAT\" and Not Multiply.\n+ Assert.AreEqual(SalesLine.\"Amount Including VAT\", Customer.GetTotalAmountLCY(), CustomerCardFactboxTotalErr);\n+ end;\n+\n local procedure Initialize()\n var\n Currency: Record Currency;\n@@ -1400,6 +1439,31 @@ codeunit 134389 \"ERM Customer Statistics\"\n DetailedCustLedgEntry.Insert();\n end;\n \n+ local procedure CreateAndReleaseSalesInvoiceUsingGetShipmentLines(CustomerNo: Code[20])\n+ var\n+ SalesHeader: Record \"Sales Header\";\n+ SalesLine: Record \"Sales Line\";\n+ begin\n+ LibrarySales.CreateSalesHeader(SalesHeader, SalesHeader.\"Document Type\"::Invoice, CustomerNo);\n+ SalesLine.Validate(\"Document Type\", SalesHeader.\"Document Type\");\n+ SalesLine.Validate(\"Document No.\", SalesHeader.\"No.\");\n+ LibrarySales.GetShipmentLines(SalesLine);\n+ LibrarySales.ReleaseSalesDocument(SalesHeader);\n+ end;\n+\n+ local procedure CreateItemInventory(var Item: Record Item; Qty: Decimal)\n+ var\n+ ItemJournalTemplate: Record \"Item Journal Template\";\n+ ItemJournalBatch: Record \"Item Journal Batch\";\n+ ItemJournalLine: Record \"Item Journal Line\";\n+ begin\n+ LibraryInventory.SelectItemJournalTemplateName(ItemJournalTemplate, ItemJournalTemplate.Type::Item);\n+ LibraryInventory.SelectItemJournalBatchName(ItemJournalBatch, ItemJournalTemplate.Type::Item, ItemJournalTemplate.Name);\n+ LibraryInventory.CreateItemJournalLine(ItemJournalLine, ItemJournalBatch.\"Journal Template Name\",\n+ ItemJournalBatch.Name, ItemJournalLine.\"Entry Type\"::\"Positive Adjmt.\", Item.\"No.\", Qty);\n+ LibraryInventory.PostItemJournalLine(ItemJournalBatch.\"Journal Template Name\", ItemJournalBatch.Name);\n+ end;\n+\n [ConfirmHandler]\n [Scope('OnPrem')]\n procedure ConfirmHandlerYes(Message: Text; var Response: Boolean)\n@@ -1450,5 +1514,11 @@ codeunit 134389 \"ERM Customer Statistics\"\n CreditLimitNotification.CreditLimitDetails.OverdueBalance.AssertEquals(Customer.\"Balance Due (LCY)\");\n CreditLimitNotification.CreditLimitDetails.\"Credit Limit (LCY)\".AssertEquals(Customer.\"Credit Limit (LCY)\");\n end;\n+\n+ [ModalPageHandler]\n+ procedure GetShipmentLinesPageHandler(var GetShipmentLines: TestPage \"Get Shipment Lines\")\n+ begin\n+ GetShipmentLines.OK().Invoke();\n+ end;\n }\n \n", "patch": "diff --git a/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al b/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\nindex ebeb6ca13f79..cf00000003 100644\n--- a/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\n@@ -2353,6 +2353,7 @@ table 18 Customer\n AdditionalAmountLCY: Decimal;\n IsHandled: Boolean;\n TotalAmountLCY: Decimal;\n+ ShippedOutstandingInvoicesLCY: Decimal;\n begin\n IsHandled := false;\n OnBeforeGetTotalAmountLCYCommon(Rec, AdditionalAmountLCY, IsHandled);\n@@ -2362,10 +2363,12 @@ table 18 Customer\n SalesOutstandingAmountFromShipment := SalesLine.OutstandingInvoiceAmountFromShipment(\"No.\");\n InvoicedPrepmtAmountLCY := GetInvoicedPrepmtAmountLCY();\n RetRcdNotInvAmountLCY := GetReturnRcdNotInvAmountLCY();\n+ ShippedOutstandingInvoicesLCY := GetShippedOutstandingInvoicesAmountLCY();\n \n TotalAmountLCY :=\n- \"Balance (LCY)\" + \"Outstanding Orders (LCY)\" + \"Shipped Not Invoiced (LCY)\" + \"Outstanding Invoices (LCY)\" +\n- SalesOutstandingAmountFromShipment - InvoicedPrepmtAmountLCY - RetRcdNotInvAmountLCY + AdditionalAmountLCY;\n+ \"Balance (LCY)\" + \"Outstanding Orders (LCY)\" + \"Shipped Not Invoiced (LCY)\" +\n+ (\"Outstanding Invoices (LCY)\" - ShippedOutstandingInvoicesLCY) -\n+ InvoicedPrepmtAmountLCY - RetRcdNotInvAmountLCY + AdditionalAmountLCY;\n \n OnAfterGetTotalAmountLCYCommon(Rec, TotalAmountLCY);\n exit(TotalAmountLCY);\n@@ -3451,6 +3454,18 @@ table 18 Customer\n OnAfterGetVATRegistrationNo(Rec, VATRegNo);\n end;\n \n+ procedure GetShippedOutstandingInvoicesAmountLCY(): Decimal\n+ var\n+ SalesLine: Record \"Sales Line\";\n+ begin\n+ SalesLine.SetRange(\"Bill-to Customer No.\", \"No.\");\n+ SalesLine.SetRange(\"Document Type\", SalesLine.\"Document Type\"::Invoice);\n+ SalesLine.SetFilter(\"Shipment No.\", '<>%1', '');\n+ SalesLine.SetFilter(\"Shipment Line No.\", '<>%1', 0);\n+ SalesLine.CalcSums(\"Outstanding Amount (LCY)\");\n+ exit(SalesLine.\"Outstanding Amount (LCY)\");\n+ end;\n+\n [InherentPermissions(PermissionObjectType::TableData, Database::\"My Customer\", 'rm')]\n local procedure UpdateMyCustomer(CallingFieldNo: Integer)\n var\n"} +{"instance_id": "microsoftInternal__NAV-215972__cf-1", "base_instance_id": "microsoftInternal__NAV-215972", "variant_description": "Block reservation only when transfer quantity is greater than 0", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-215972__cf-2", "FAIL_TO_PASS": [{"codeunitID": 137140, "functionName": ["ReservationShouldNotPossibleOnTransferOrderIfItemReserveSetAsNever"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM/SCMInventoryDocuments.Codeunit.al b/App/Layers/W1/Tests/SCM/SCMInventoryDocuments.Codeunit.al\nindex 6e9a6ab..dfbe780 100644\n--- a/App/Layers/W1/Tests/SCM/SCMInventoryDocuments.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM/SCMInventoryDocuments.Codeunit.al\n@@ -41,6 +41,7 @@ codeunit 137140 \"SCM Inventory Documents\"\n SpecialEquipmentCodeShouldBeVisibleErr: Label 'Special Equipment Code should be visible.';\n DueDateBeforeWorkDateMsg: Label 'is before work date';\n TransferOrderErr: Label 'Transfer Order has not been posted successfully.';\n+ ReserveMustNotBeNeverErr: Label 'Reserve must not be Never';\n \n [Test]\n [Scope('OnPrem')]\n@@ -2069,6 +2070,44 @@ codeunit 137140 \"SCM Inventory Documents\"\n Assert.IsTrue(DirectTransHeader.FindFirst(), TransferOrderErr);\n end;\n \n+ [Test]\n+ procedure ReservationShouldNotPossibleOnTransferOrderIfItemReserveSetAsNever()\n+ var\n+ Item: Record Item;\n+ LocationA: Record Location;\n+ LocationB: Record Location;\n+ TransferHeader: Record \"Transfer Header\";\n+ TransferLine: Record \"Transfer Line\";\n+ begin\n+ // [SCENARIO 578318] Reservation of an Item possible with in a Transfer order if the item is set to reserve=never\n+ Initialize();\n+\n+ // [GIVEN] Create Two locations: \"A\" and \"B\" without Warehouse Setup\n+ LibraryWarehouse.CreateLocationWithInventoryPostingSetup(LocationA);\n+ LibraryWarehouse.CreateLocationWithInventoryPostingSetup(LocationB);\n+\n+ // [GIVEN] Create an Item with Reserve = Never\n+ LibraryInventory.CreateItem(Item);\n+ Item.Validate(Reserve, Item.Reserve::Never);\n+ Item.Modify();\n+\n+ // [GIVEN] Create and Post Item Journal Line\n+ CreateAndPostItemJournalLine(Item.\"No.\", LocationA.Code, '');\n+\n+ // [GIVEN] Create a Direct Transfer Order from Location \"A\" to location \"B\" and Reserve From Inventory\n+ CreateDirectTransferHeader(TransferHeader, LocationA.code, LocationB.Code);\n+ TransferHeader.Validate(\"Posting Date\", WorkDate());\n+ TransferHeader.Modify(true);\n+\n+ // [WHEN] Create transfer line with Item with Reserve set as Never and Show Reservation\n+ LibraryWarehouse.CreateTransferLine(TransferHeader, TransferLine, Item.\"No.\", 10);\n+ asserterror TransferLine.ShowReservation();\n+\n+ // [THEN] Verify Reserve must not be Never error\n+ Assert.ExpectedErrorCode('TestField');\n+ Assert.ExpectedError(ReserveMustNotBeNeverErr);\n+ end;\n+\n local procedure PostWhseShipmentFromTO(DocumentNo: Code[20])\n var\n WhseShipmentLine: Record \"Warehouse Shipment Line\";\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\nindex 9ab054c..e5a6f8c 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\n@@ -1592,6 +1592,9 @@ table 5741 \"Transfer Line\"\n exit;\n \n TestField(\"Item No.\");\n+ Item.Get(\"Item No.\");\n+ if Quantity > 0 then\n+ Item.TestField(Reserve);\n Clear(Reservation);\n OptionNumber := StrMenu(Text011);\n if OptionNumber > 0 then begin\n"} +{"instance_id": "microsoftInternal__NAV-215972__cf-2", "base_instance_id": "microsoftInternal__NAV-215972", "variant_description": "Block reservation only for outbound quantities (Qty. to Ship > 0)", "failure_layer": null, "FAIL_TO_PASS": [{"codeunitID": 137140, "functionName": ["ReservationShouldNotPossibleOnTransferOrderIfItemReserveSetAsNever"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM/SCMInventoryDocuments.Codeunit.al b/App/Layers/W1/Tests/SCM/SCMInventoryDocuments.Codeunit.al\nindex 6e9a6ab..2d08ef7 100644\n--- a/App/Layers/W1/Tests/SCM/SCMInventoryDocuments.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM/SCMInventoryDocuments.Codeunit.al\n@@ -41,6 +41,7 @@ codeunit 137140 \"SCM Inventory Documents\"\n SpecialEquipmentCodeShouldBeVisibleErr: Label 'Special Equipment Code should be visible.';\n DueDateBeforeWorkDateMsg: Label 'is before work date';\n TransferOrderErr: Label 'Transfer Order has not been posted successfully.';\n+ ReserveMustNotBeNeverErr: Label 'Reserve must not be Never';\n \n [Test]\n [Scope('OnPrem')]\n@@ -2005,6 +2006,44 @@ codeunit 137140 \"SCM Inventory Documents\"\n Assert.IsTrue(DirectTransHeader.FindFirst(), TransferOrderErr);\n end;\n \n+ [Test]\n+ procedure ReservationShouldNotPossibleOnTransferOrderIfItemReserveSetAsNever()\n+ var\n+ Item: Record Item;\n+ LocationA: Record Location;\n+ LocationB: Record Location;\n+ TransferHeader: Record \"Transfer Header\";\n+ TransferLine: Record \"Transfer Line\";\n+ begin\n+ // [SCENARIO 578318] Reservation should be blocked when item Reserve=Never and Qty. to Ship > 0\n+ Initialize();\n+\n+ // [GIVEN] Create Two locations: \"A\" and \"B\" without Warehouse Setup\n+ LibraryWarehouse.CreateLocationWithInventoryPostingSetup(LocationA);\n+ LibraryWarehouse.CreateLocationWithInventoryPostingSetup(LocationB);\n+\n+ // [GIVEN] Create an Item with Reserve = Never\n+ LibraryInventory.CreateItem(Item);\n+ Item.Validate(Reserve, Item.Reserve::Never);\n+ Item.Modify();\n+\n+ // [GIVEN] Create and Post Item Journal Line\n+ CreateAndPostItemJournalLine(Item.\"No.\", LocationA.Code, '');\n+\n+ // [GIVEN] Create a Direct Transfer Order from Location \"A\" to location \"B\"\n+ CreateDirectTransferHeader(TransferHeader, LocationA.code, LocationB.Code);\n+ TransferHeader.Validate(\"Posting Date\", WorkDate());\n+ TransferHeader.Modify(true);\n+\n+ // [WHEN] Create transfer line with positive Qty. to Ship and Show Reservation\n+ LibraryWarehouse.CreateTransferLine(TransferHeader, TransferLine, Item.\"No.\", 10);\n+ asserterror TransferLine.ShowReservation();\n+\n+ // [THEN] Verify Reserve must not be Never error\n+ Assert.ExpectedErrorCode('TestField');\n+ Assert.ExpectedError(ReserveMustNotBeNeverErr);\n+ end;\n+\n [Test]\n procedure PostDirectTransferOrderWithTwoReservation()\n var\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\nindex 9ab054c..0ccbac1 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\n@@ -1592,6 +1592,9 @@ table 5741 \"Transfer Line\"\n exit;\n \n TestField(\"Item No.\");\n+ Item.Get(\"Item No.\");\n+ if \"Qty. to Ship\" > 0 then\n+ Item.TestField(Reserve);\n Clear(Reservation);\n OptionNumber := StrMenu(Text011);\n if OptionNumber > 0 then begin\n"} +{"instance_id": "microsoftInternal__NAV-216572__cf-1", "base_instance_id": "microsoftInternal__NAV-216572", "variant_description": "Dimensions imported only for G/L Account destination type lines", "failure_layer": null, "FAIL_TO_PASS": [{"codeunitID": 134227, "functionName": ["CheckDimensionOfRecurringJournalImportAllocationFromAllocationAccount"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/ERM/ERMPostRecurringJournal.Codeunit.al b/App/Layers/W1/Tests/ERM/ERMPostRecurringJournal.Codeunit.al\nindex ff710ce..14b8385 100644\n--- a/App/Layers/W1/Tests/ERM/ERMPostRecurringJournal.Codeunit.al\n+++ b/App/Layers/W1/Tests/ERM/ERMPostRecurringJournal.Codeunit.al\n@@ -19,6 +19,7 @@ codeunit 134227 \"ERM PostRecurringJournal\"\n LibrarySetupStorage: Codeunit \"Library - Setup Storage\";\n LibraryPurchase: Codeunit \"Library - Purchase\";\n LibrarySales: Codeunit \"Library - Sales\";\n+ LibraryDimension: Codeunit \"Library - Dimension\";\n LibraryTestInitialize: Codeunit \"Library - Test Initialize\";\n GenJnlDocType: Enum \"Gen. Journal Document Type\";\n GenJnlAccountType: Enum \"Gen. Journal Account Type\";\n@@ -31,6 +32,7 @@ codeunit 134227 \"ERM PostRecurringJournal\"\n SkippedLineMsg: Label 'One or more lines has not been posted because the amount is zero.';\n DocumentOutOfBalanceErr: Label 'Document No. %1 is out of balance', Locked = true;\n AllocAccountImportWrongAccTypeErr: Label 'Import from Allocation Account is only allowed for G/L Account Destination account type.', Locked = true;\n+ AllocationDimensionErr: Label 'Allocation dimension is not correct';\n \n [Test]\n [Scope('OnPrem')]\n@@ -1298,6 +1300,48 @@ codeunit 134227 \"ERM PostRecurringJournal\"\n \n end;\n \n+ [Test]\n+ [HandlerFunctions('HandleEditDimensionSetEntriesPage,AllocationAccountListPageHandler,ConfirmHandlerYes')]\n+ procedure CheckDimensionOfRecurringJournalImportAllocationFromAllocationAccount()\n+ var\n+ AllocationAccount: Record \"Allocation Account\";\n+ FirstDimensionValue: Record \"Dimension Value\";\n+ GenJnlAllocation: Record \"Gen. Jnl. Allocation\";\n+ GenJournalBatch: Record \"Gen. Journal Batch\";\n+ GenJournalLine: Record \"Gen. Journal Line\";\n+ SecondDimensionValue: Record \"Dimension Value\";\n+ GLAccounts: array[2] of Record \"G/L Account\";\n+ AllocationShares: array[2] of Decimal;\n+ DimensionSetID: array[2] of Integer;\n+ begin\n+ // [SCENARIO 579186] In Recurring General Journals Import from Allocation Accounts does not import dimensions.\n+ Initialize();\n+\n+ // [GIVEN] Create Recurring General Journal Batch.\n+ CreateRecurringGenJournalBatch(GenJournalBatch);\n+\n+ // [GIVEN] Create Recurring Journal with a line.\n+ CreateRecurringJnlLine(GenJournalLine, GenJournalBatch, WorkDate(), 0D, LibraryRandom.RandInt(10));\n+\n+ // [GIVEN] Create allocation for general journal line.\n+ LibraryERM.CreateGenJnlAllocation(GenJnlAllocation, GenJournalLine.\"Journal Template Name\", GenJournalLine.\"Journal Batch Name\", GenJournalLine.\"Line No.\");\n+\n+ // [GIVEN] Dimension With Value.\n+ CreateDimensionsWithValues(FirstDimensionValue, SecondDimensionValue);\n+\n+ // [GIVEN] Allocation Account \"XXX\" with 2 lines exists for different G/L Accounts and different Allocation Shares with Dimension.\n+ CreateAllocationAccountWithTwoGLAccLines(AllocationAccount, GLAccounts, AllocationShares, FirstDimensionValue, SecondDimensionValue, DimensionSetID);\n+\n+ // [WHEN] Invoke Import from Allocation Account. Handler chooses Allocation Account \"XXX\" in lookup\n+ LibraryVariableStorage.Enqueue(AllocationAccount.\"No.\");\n+ GenJnlAllocation.ChooseAndImportFromAllocationAccount();\n+ // UI Handled by handler\n+\n+ // [THEN] There are 2 Gen Journal Allocations with the same Dimension as in Allocation Account\n+ VerifyGenJnlAllocationDimension(GenJnlAllocation, GenJournalLine, GLAccounts[1], DimensionSetID[1]);\n+ VerifyGenJnlAllocationDimension(GenJnlAllocation, GenJournalLine, GLAccounts[2], DimensionSetID[2]);\n+ end;\n+\n local procedure Initialize()\n begin\n LibraryTestInitialize.OnTestInitialize(Codeunit::\"ERM PostRecurringJournal\");\n@@ -1769,6 +1813,79 @@ codeunit 134227 \"ERM PostRecurringJournal\"\n VendorLedgerEntry.TestField(\"Due Date\", PostingDate + 1);\n end;\n \n+ local procedure CreateDimensionsWithValues(var FirstDimensionValue: Record \"Dimension Value\"; var SecondDimensionValue: Record \"Dimension Value\")\n+ var\n+ Dimension: Record Dimension;\n+ begin\n+ LibraryDimension.CreateDimension(Dimension);\n+ LibraryDimension.CreateDimensionValue(FirstDimensionValue, Dimension.Code);\n+ LibraryDimension.CreateDimensionValue(SecondDimensionValue, Dimension.Code);\n+ end;\n+\n+ local procedure CreateAllocationAccountWithTwoGLAccLines(var AllocationAccount: Record \"Allocation Account\"; var GLAccounts: array[2] of Record \"G/L Account\"; var AllocationShares: array[2] of Decimal; FirstDimensionValue: Record \"Dimension Value\"; SecondDimensionValue: Record \"Dimension Value\"; var DimensionSetID: array[2] of Integer)\n+ var\n+ AllocAccountDistribution: Record \"Alloc. Account Distribution\";\n+ AllocationAccountPage: TestPage \"Allocation Account\";\n+ FixedAllocationAccountCode: Code[20];\n+ begin\n+ FixedAllocationAccountCode := CreateAllocationAccountWithFixedDistribution(AllocationAccountPage);\n+ AddGLDestinationAccountForFixedDistributionWithDimension(AllocationAccountPage, GLAccounts[1]);\n+ AllocationShares[1] := LibraryRandom.RandDecInRange(1, 100, 2);\n+ AllocationAccountPage.FixedAccountDistribution.Share.SetValue(AllocationShares[1]);\n+ SetDimensionToCurrentVariableLine(AllocationAccountPage, FirstDimensionValue);\n+\n+ AllocAccountDistribution.SetRange(\"Allocation Account No.\", FixedAllocationAccountCode);\n+ AllocAccountDistribution.SetRange(\"Account Type\", AllocAccountDistribution.\"Account Type\"::Fixed);\n+ AllocAccountDistribution.SetRange(\"Destination Account Number\", GLAccounts[1].\"No.\");\n+ AllocAccountDistribution.FindFirst();\n+ DimensionSetID[1] := AllocAccountDistribution.\"Dimension Set ID\";\n+\n+ AllocationAccountPage.FixedAccountDistribution.New();\n+ AddGLDestinationAccountForFixedDistributionWithDimension(AllocationAccountPage, GLAccounts[2]);\n+ AllocationShares[2] := LibraryRandom.RandDecInRange(1, 100, 2);\n+ AllocationAccountPage.FixedAccountDistribution.Share.SetValue(AllocationShares[2]);\n+ SetDimensionToCurrentVariableLine(AllocationAccountPage, SecondDimensionValue);\n+\n+ AllocAccountDistribution.Reset();\n+ AllocAccountDistribution.SetRange(\"Allocation Account No.\", FixedAllocationAccountCode);\n+ AllocAccountDistribution.SetRange(\"Account Type\", AllocAccountDistribution.\"Account Type\"::Fixed);\n+ AllocAccountDistribution.SetRange(\"Destination Account Number\", GLAccounts[2].\"No.\");\n+ AllocAccountDistribution.FindFirst();\n+ AllocationAccountPage.FixedAccountDistribution.GoToRecord(AllocAccountDistribution);\n+ DimensionSetID[2] := AllocAccountDistribution.\"Dimension Set ID\";\n+\n+ AllocationAccountPage.Close();\n+\n+ AllocationAccount.Get(FixedAllocationAccountCode);\n+ end;\n+\n+ local procedure SetDimensionToCurrentVariableLine(var AllocationAcccount: TestPage \"Allocation Account\"; var DimensionValue: Record \"Dimension Value\")\n+ begin\n+ LibraryVariableStorage.Enqueue(DimensionValue.SystemId);\n+ AllocationAcccount.FixedAccountDistribution.Dimensions.Invoke();\n+ end;\n+\n+ local procedure AddGLDestinationAccountForFixedDistributionWithDimension(var AllocationAccountPage: TestPage \"Allocation Account\"; var GLAccount: Record \"G/L Account\")\n+ var\n+ DummyAllocAccountDistribution: Record \"Alloc. Account Distribution\";\n+ begin\n+ if GLAccount.\"No.\" = '' then\n+ GLAccount.Get(LibraryERM.CreateGLAccountNoWithDirectPosting());\n+\n+ AllocationAccountPage.FixedAccountDistribution.\"Destination Account Type\".SetValue(DummyAllocAccountDistribution.\"Destination Account Type\"::\"G/L Account\");\n+ AllocationAccountPage.FixedAccountDistribution.\"Destination Account Number\".SetValue(GLAccount.\"No.\");\n+ end;\n+\n+ local procedure VerifyGenJnlAllocationDimension(GenJnlAllocation: Record \"Gen. Jnl. Allocation\"; GenJournalLine: Record \"Gen. Journal Line\"; GLAccount: Record \"G/L Account\"; DimensionSetID: Integer)\n+ begin\n+ GenJnlAllocation.SetRange(\"Journal Template Name\", GenJournalLine.\"Journal Template Name\");\n+ GenJnlAllocation.SetRange(\"Journal Batch Name\", GenJournalLine.\"Journal Batch Name\");\n+ GenJnlAllocation.SetRange(\"Journal Line No.\", GenJournalLine.\"Line No.\");\n+ GenJnlAllocation.SetRange(\"Account No.\", GLAccount.\"No.\");\n+ GenJnlAllocation.FindFirst();\n+ Assert.AreEqual(GenJnlAllocation.\"Dimension Set ID\", DimensionSetID, AllocationDimensionErr);\n+ end;\n+\n [ConfirmHandler]\n [Scope('OnPrem')]\n procedure ConfirmHandlerYes(Question: Text[1024]; var Reply: Boolean)\n@@ -1821,5 +1938,19 @@ codeunit 134227 \"ERM PostRecurringJournal\"\n NameValueBuffer.ID := LibraryUtility.GetNewRecNo(NameValueBuffer, NameValueBuffer.FieldNo(ID));\n NameValueBuffer.Insert();\n end;\n+\n+ [ModalPageHandler]\n+ procedure HandleEditDimensionSetEntriesPage(var EditDimensionSetEntriesPage: TestPage \"Edit Dimension Set Entries\")\n+ var\n+ DimensionValue: Record \"Dimension Value\";\n+ DimensionValueSystemId: Text;\n+ begin\n+ DimensionValueSystemId := LibraryVariableStorage.DequeueText();\n+ DimensionValue.GetBySystemId(DimensionValueSystemId);\n+ EditDimensionSetEntriesPage.New();\n+ EditDimensionSetEntriesPage.\"Dimension Code\".SetValue(DimensionValue.\"Dimension Code\");\n+ EditDimensionSetEntriesPage.DimensionValueCode.SetValue(DimensionValue.Code);\n+ EditDimensionSetEntriesPage.OK().Invoke();\n+ end;\n }\n \n", "patch": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al\nindex 130b3e0..69b4d15 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al\n@@ -669,6 +669,11 @@ table 221 \"Gen. Jnl. Allocation\"\n begin\n Rec.Validate(\"Account No.\", AllocAccountDistribution.\"Destination Account Number\");\n Rec.Validate(\"Allocation %\", AllocAccountDistribution.Percent);\n+ Rec.Validate(\"Shortcut Dimension 1 Code\", AllocAccountDistribution.\"Global Dimension 1 Code\");\n+ Rec.Validate(\"Shortcut Dimension 2 Code\", AllocAccountDistribution.\"Global Dimension 2 Code\");\n+ if AllocAccountDistribution.\"Destination Account Type\" = AllocAccountDistribution.\"Destination Account Type\"::\"G/L Account\" then\n+ Rec.Validate(\"Dimension Set ID\", AllocAccountDistribution.\"Dimension Set ID\");\n+ Rec.Modify(true);\n end;\n \n local procedure CheckGLAccount(var GLAccount: Record \"G/L Account\")\n"} +{"instance_id": "microsoftInternal__NAV-216918__cf-1", "base_instance_id": "microsoftInternal__NAV-216918", "variant_description": "Non-deductible VAT should only be added to Job Journal Line when the Job currency code is defined (non-empty)", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-216918__cf-1", "FAIL_TO_PASS": [{"codeunitID": 134284, "functionName": ["JobJnlLineWithNonDeductNormalVATInFCYFromGenJnlLine"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/VAT/NonDedVATMisc.Codeunit.al b/App/Layers/W1/Tests/VAT/NonDedVATMisc.Codeunit.al\n--- a/App/Layers/W1/Tests/VAT/NonDedVATMisc.Codeunit.al\n+++ b/App/Layers/W1/Tests/VAT/NonDedVATMisc.Codeunit.al\n@@ -1135,6 +1135,51 @@ codeunit 134284 \"Non Ded. VAT Misc.\"\n Assert.RecordIsNotEmpty(GLEntry);\n end;\n \n+ [Test]\n+ [Scope('OnPrem')]\n+ procedure JobJnlLineWithNonDeductNormalVATInFCYFromGenJnlLine()\n+ var\n+ Customer: Record Customer;\n+ Job: Record Job;\n+ JobTask: Record \"Job Task\";\n+ VATPostingSetup: Record \"VAT Posting Setup\";\n+ GenJnlLine: Record \"Gen. Journal Line\";\n+ JobJnlLine: Record \"Job Journal Line\";\n+ JobTransferLine: Codeunit \"Job Transfer Line\";\n+ DeductiblePercent: Decimal;\n+ begin\n+ // [FEATURE] [Normal VAT] [UT]\n+ // [SCENARIO 575793] Job journal line with FCY built from the general journal line includes non deductible VAT in \"Unit Cost\"\n+ Initialize();\n+ LibraryNonDeductibleVAT.SetUseForJobCost();\n+ // [GIVEN] VAT Posting Setup, where \"Tax Calculation Type\"::\"Normal VAT\", 'Deductible %' is '60'\n+ DeductiblePercent := LibraryRandom.RandInt(90);\n+ CreateNonDeductibleVATPostingSetup(VATPostingSetup, \"Tax Calculation Type\"::\"Normal VAT\", '', DeductiblePercent);\n+ // [GIVEN] Job \"X\" with currency which factor is 0.5\n+ LibrarySales.CreateCustomer(Customer);\n+ LibraryJob.CreateJob(Job, Customer.\"No.\");\n+ Job.Validate(\"Currency Code\", ''); // no currency\n+ Job.Modify(true);\n+ LibraryJob.CreateJobTask(Job, JobTask);\n+ // [GIVEN] General journal line where line contains \"Non-Deductible VAT Amount\" = 100, \"Job No.\" = \"X\" \"Job Line Type\" = 'Billable'\n+ // [GIVEN] \"Job Quantity\" = 2, \"Job Unit Cost\" = 50\n+ CreateJobGLJournalLine(GenJnlLine, JobTask, VATPostingSetup);\n+\n+ // [WHEN] Run FromGenJnlLineToJnlLine\n+ JobTransferLine.FromGenJnlLineToJnlLine(GenJnlLine, JobJnlLine);\n+\n+ // [THEN] JobJnlLine should NOT include Non-Deductible VAT when no job currency\n+ Assert.AreEqual(\n+ Round(JobJnlLine.\"Unit Cost (LCY)\"),\n+ Round(GenJnlLine.\"Job Total Cost (LCY)\" / GenJnlLine.\"Job Quantity\"),\n+ 'Unit Cost (LCY) should not include Non-Deductible VAT when Job has no currency');\n+ // [THEN] JobJnlLine contains \"Total Unit Cost\" = (\"Job Unit Cost\" + \"Non-Deductible VAT Amount\") * \"Currency Factor\" = (50 + 100) * 0.5 = 75\n+ Assert.AreEqual(\n+ Round(JobJnlLine.\"Total Cost (LCY)\"),\n+ Round(GenJnlLine.\"Job Total Cost (LCY)\"),\n+ 'Total Cost (LCY) should not include Non-Deductible VAT when Job has no currency');\n+ end;\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n@@ -1368,6 +1414,15 @@ codeunit 134284 \"Non Ded. VAT Misc.\"\n GenJournalLine.Modify(true);\n end;\n \n+ local procedure CreateJobGLJournalLine(var GenJournalLine: Record \"Gen. Journal Line\"; JobTask: Record \"Job Task\"; VATPostingSetup: Record \"VAT Posting Setup\")\n+ begin\n+ LibraryJob.CreateJobGLJournalLine(GenJournalLine.\"Job Line Type\"::Billable, JobTask, GenJournalLine);\n+ GenJournalLine.Validate(\"Gen. Posting Type\", GenJournalLine.\"Gen. Posting Type\"::Purchase);\n+ GenJournalLine.Validate(\"VAT Bus. Posting Group\", VATPostingSetup.\"VAT Bus. Posting Group\");\n+ GenJournalLine.Validate(\"VAT Prod. Posting Group\", VATPostingSetup.\"VAT Prod. Posting Group\");\n+ GenJournalLine.Modify(true);\n+ end;\n+\n local procedure FindFAPostingGroup(GenProdPostingGroup: Code[20]; VATProductPostingGroup: Code[20]): Code[20]\n var\n FAPostingGroup: Record \"FA Posting Group\";\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\n@@ -4937,16 +4937,7 @@ table 81 \"Gen. Journal Line\"\n TempJobJnlLine.Validate(\"No.\", \"Account No.\");\n TempJobJnlLine.Validate(Quantity, \"Job Quantity\");\n \n- if \"Currency Factor\" = 0 then begin\n- if \"Job Currency Factor\" = 0 then\n- TmpJobJnlOverallCurrencyFactor := 1\n- else\n- TmpJobJnlOverallCurrencyFactor := \"Job Currency Factor\";\n- end else\n- if \"Job Currency Factor\" = 0 then\n- TmpJobJnlOverallCurrencyFactor := 1 / \"Currency Factor\"\n- else\n- TmpJobJnlOverallCurrencyFactor := \"Job Currency Factor\" / \"Currency Factor\";\n+ TmpJobJnlOverallCurrencyFactor := GetGenJnlLineToJobCurrencyFactor();\n \n UpdateAmountsOnTempJobJnlLine(TmpJobJnlOverallCurrencyFactor);\n \n@@ -7628,6 +7619,22 @@ table 81 \"Gen. Journal Line\"\n RecordRestrictionMgt.RestrictRecordUsage(GenJournalLine, RestrictBatchUsageDetailsTxt);\n end;\n \n+ /// \n+ /// Calculates the currency factor for the general journal line based on the job currency factor and the journal line currency factor.\n+ /// \n+ /// Resulted currency factor\n+ procedure GetGenJnlLineToJobCurrencyFactor(): Decimal\n+ begin\n+ if \"Currency Factor\" = 0 then begin\n+ if \"Job Currency Factor\" = 0 then\n+ exit(1);\n+ exit(\"Job Currency Factor\");\n+ end;\n+ if \"Job Currency Factor\" = 0 then\n+ exit(1 / \"Currency Factor\");\n+ exit(\"Job Currency Factor\" / \"Currency Factor\");\n+ end;\n+\n /// \n /// Event triggered before creating dimensions from the Default Dimensions during the validation of the \"Account No.\" field.\n /// By subscribing to this event, developers can override the default dimension creation process for the \"Account No.\" field.\ndiff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n@@ -17,6 +17,8 @@ using Microsoft.Foundation.Enums;\n using Microsoft.Purchases.Document;\n using Microsoft.Purchases.History;\n using Microsoft.Foundation.Company;\n+using Microsoft.Projects.Project.Journal;\n+using Microsoft.Projects.Project.Job;\n \n /// \n /// Defines the implementation of Non-Deductible VAT\n@@ -436,6 +438,38 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n FALedgEntry.\"Non-Ded. VAT FA Cost\" := GenJnlLine.\"Non-Ded. VAT FA Cost\";\n end;\n \n+ procedure CopyNonDedVATFromGenJnlLineToJobJnlLine(var JobJnlLine: Record \"Job Journal Line\"; GenJnlLine: Record \"Gen. Journal Line\")\n+ var\n+ Job: Record Job;\n+ CurrencyFactor, NonDedVATAmountLCY, UnitCost, UnitCostLCY, TotalCost, TotalCostLCY : Decimal;\n+ begin\n+ if not UseNonDeductibleVATAmountForJobCost() then\n+ exit;\n+ if not Job.Get(JobJnlLine.\"Job No.\") then\n+ exit;\n+ if Job.\"Currency Code\" = '' then\n+ exit;\n+ NonDedVATAmountLCY := GenJnlLine.\"Non-Deductible VAT Amount LCY\";\n+ if GenJnlLine.\"Currency Code\" <> Job.\"Currency Code\" then begin\n+ CurrencyFactor := GenJnlLine.GetGenJnlLineToJobCurrencyFactor();\n+ NonDedVATAmountLCY := Round(GenJnlLine.\"Non-Deductible VAT Amount\" * CurrencyFactor);\n+ end;\n+ UnitCostLCY := Round(NonDedVATAmountLCY / JobJnlLine.Quantity);\n+ UnitCost := Round(GenJnlLine.\"Non-Deductible VAT Amount\" / JobJnlLine.Quantity);\n+ TotalCostLCY := NonDedVATAmountLCY;\n+ TotalCost := GenJnlLine.\"Non-Deductible VAT Amount\";\n+ if JobJnlLine.\"Unit Cost\" > 0 then begin\n+ UnitCostLCY := Abs(UnitCostLCY);\n+ UnitCost := Abs(UnitCost);\n+ TotalCostLCY := Abs(TotalCostLCY);\n+ TotalCost := Abs(TotalCost);\n+ end;\n+ JobJnlLine.\"Unit Cost (LCY)\" += UnitCostLCY;\n+ JobJnlLine.\"Unit Cost\" += UnitCost;\n+ JobJnlLine.\"Total Cost (LCY)\" += TotalCostLCY;\n+ JobJnlLine.\"Total Cost\" += TotalCost;\n+ end;\n+\n procedure CheckPrepmtWithNonDeductubleVATInPurchaseLine(PurchaseLine: Record \"Purchase Line\")\n begin\n if (PurchaseLine.\"Prepayment %\" <> 0) and (PurchaseLine.\"Non-Deductible VAT %\" <> 0) then\ndiff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDeductibleVAT.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDeductibleVAT.Codeunit.al\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDeductibleVAT.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDeductibleVAT.Codeunit.al\n@@ -15,6 +15,7 @@ using Microsoft.FixedAssets.Ledger;\n using Microsoft.Foundation.Enums;\n using Microsoft.Purchases.Document;\n using Microsoft.Purchases.History;\n+using Microsoft.Projects.Project.Journal;\n \n /// \n /// Provides an interface of the Non-Deductible VAT functionality.\n@@ -430,6 +431,11 @@ codeunit 6200 \"Non-Deductible VAT\"\n NonDedVATImpl.CopyNonDedVATFromGenJnlLineToFALedgEntry(FALedgEntry, GenJnlLine);\n end;\n \n+ procedure CopyNonDedVATFromGenJnlLineToJobJnlLine(var JobJnlLine: Record \"Job Journal Line\"; GenJnlLine: Record \"Gen. Journal Line\")\n+ begin\n+ NonDedVATImpl.CopyNonDedVATFromGenJnlLineToJobJnlLine(JobJnlLine, GenJnlLine);\n+ end;\n+\n /// \n /// Throws an error if purchase line contains prepayment and Non-Deductible VAT\n /// \ndiff --git a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\n--- a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\n@@ -498,18 +498,7 @@ codeunit 1004 \"Job Transfer Line\"\n JobJnlLine.\"Total Cost (LCY)\" := GenJnlLine.\"Job Total Cost (LCY)\";\n JobJnlLine.\"Total Cost\" := GenJnlLine.\"Job Total Cost\";\n \n- if NonDeductibleVAT.UseNonDeductibleVATAmountForJobCost() then\n- if JobJnlLine.\"Unit Cost\" > 0 then begin\n- JobJnlLine.\"Unit Cost (LCY)\" += Abs(Round(GenJnlLine.\"Non-Deductible VAT Amount LCY\" / JobJnlLine.Quantity));\n- JobJnlLine.\"Unit Cost\" += Abs(Round(GenJnlLine.\"Non-Deductible VAT Amount\" / JobJnlLine.Quantity));\n- JobJnlLine.\"Total Cost (LCY)\" += Abs(GenJnlLine.\"Non-Deductible VAT Amount LCY\");\n- JobJnlLine.\"Total Cost\" += Abs(GenJnlLine.\"Non-Deductible VAT Amount\");\n- end else begin\n- JobJnlLine.\"Unit Cost (LCY)\" += Round(GenJnlLine.\"Non-Deductible VAT Amount LCY\" / JobJnlLine.Quantity);\n- JobJnlLine.\"Unit Cost\" += Round(GenJnlLine.\"Non-Deductible VAT Amount\" / JobJnlLine.Quantity);\n- JobJnlLine.\"Total Cost (LCY)\" += GenJnlLine.\"Non-Deductible VAT Amount LCY\";\n- JobJnlLine.\"Total Cost\" += GenJnlLine.\"Non-Deductible VAT Amount\";\n- end;\n+ NonDeductibleVAT.CopyNonDedVATFromGenJnlLineToJobJnlLine(JobJnlLine, GenJnlLine);\n \n JobJnlLine.\"Unit Price (LCY)\" := GenJnlLine.\"Job Unit Price (LCY)\";\n JobJnlLine.\"Unit Price\" := GenJnlLine.\"Job Unit Price\";\n"} +{"instance_id": "microsoftInternal__NAV-216918__cf-2", "base_instance_id": "microsoftInternal__NAV-216918", "variant_description": "Non-deductible VAT should only be applied when the Job Journal Line has a valid non-zero quantity", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-216918__cf-2", "FAIL_TO_PASS": [{"codeunitID": 134284, "functionName": ["JobJnlLineWithNonDeductNormalVATInFCYFromGenJnlLine"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/VAT/NonDedVATMisc.Codeunit.al b/App/Layers/W1/Tests/VAT/NonDedVATMisc.Codeunit.al\n--- a/App/Layers/W1/Tests/VAT/NonDedVATMisc.Codeunit.al\n+++ b/App/Layers/W1/Tests/VAT/NonDedVATMisc.Codeunit.al\n@@ -1135,6 +1135,53 @@ codeunit 134284 \"Non Ded. VAT Misc.\"\n Assert.RecordIsNotEmpty(GLEntry);\n end;\n \n+ [Test]\n+ [Scope('OnPrem')]\n+ procedure JobJnlLineWithNonDeductNormalVATInFCYFromGenJnlLine()\n+ var\n+ Customer: Record Customer;\n+ Job: Record Job;\n+ JobTask: Record \"Job Task\";\n+ VATPostingSetup: Record \"VAT Posting Setup\";\n+ GenJnlLine: Record \"Gen. Journal Line\";\n+ JobJnlLine: Record \"Job Journal Line\";\n+ JobTransferLine: Codeunit \"Job Transfer Line\";\n+ DeductiblePercent: Decimal;\n+ begin\n+ // [FEATURE] [Normal VAT] [UT]\n+ // [SCENARIO 575793] Job journal line with FCY built from the general journal line includes non deductible VAT in \"Unit Cost\"\n+ Initialize();\n+ LibraryNonDeductibleVAT.SetUseForJobCost();\n+ // [GIVEN] VAT Posting Setup, where \"Tax Calculation Type\"::\"Normal VAT\", 'Deductible %' is '60'\n+ DeductiblePercent := LibraryRandom.RandInt(90);\n+ CreateNonDeductibleVATPostingSetup(VATPostingSetup, \"Tax Calculation Type\"::\"Normal VAT\", '', DeductiblePercent);\n+ // [GIVEN] Job \"X\" with currency which factor is 0.5\n+ LibrarySales.CreateCustomer(Customer);\n+ LibraryJob.CreateJob(Job, Customer.\"No.\");\n+ Job.Validate(\"Currency Code\", LibraryERM.CreateCurrencyWithRandomExchRates());\n+ Job.Modify(true);\n+ LibraryJob.CreateJobTask(Job, JobTask);\n+ // [GIVEN] General journal line where line contains \"Non-Deductible VAT Amount\" = 100, \"Job No.\" = \"X\" \"Job Line Type\" = 'Billable'\n+ // [GIVEN] \"Job Quantity\" = 0, \"Job Unit Cost\" = 50\n+ CreateJobGLJournalLine(GenJnlLine, JobTask, VATPostingSetup);\n+ GenJnlLine.Validate(\"Job Quantity\", 0);\n+ GenJnlLine.Modify(true);\n+\n+ // [WHEN] Run FromGenJnlLineToJnlLine\n+ JobTransferLine.FromGenJnlLineToJnlLine(GenJnlLine, JobJnlLine);\n+\n+ // [THEN] VAT must NOT be applied when quantity = 0\n+ Assert.AreEqual(\n+ Round(JobJnlLine.\"Unit Cost (LCY)\"),\n+ 0,\n+ 'Unit Cost (LCY) should be zero when quantity is zero');\n+ // [THEN] JobJnlLine contains \"Total Unit Cost\" = (\"Job Unit Cost\" + \"Non-Deductible VAT Amount\") * \"Currency Factor\" = (50 + 100) * 0.5 = 75\n+ Assert.AreEqual(\n+ Round(JobJnlLine.\"Total Cost (LCY)\"),\n+ 0,\n+ 'Total Cost (LCY) should be zero when quantity is zero');\n+ end;\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n@@ -1368,6 +1414,15 @@ codeunit 134284 \"Non Ded. VAT Misc.\"\n GenJournalLine.Modify(true);\n end;\n \n+ local procedure CreateJobGLJournalLine(var GenJournalLine: Record \"Gen. Journal Line\"; JobTask: Record \"Job Task\"; VATPostingSetup: Record \"VAT Posting Setup\")\n+ begin\n+ LibraryJob.CreateJobGLJournalLine(GenJournalLine.\"Job Line Type\"::Billable, JobTask, GenJournalLine);\n+ GenJournalLine.Validate(\"Gen. Posting Type\", GenJournalLine.\"Gen. Posting Type\"::Purchase);\n+ GenJournalLine.Validate(\"VAT Bus. Posting Group\", VATPostingSetup.\"VAT Bus. Posting Group\");\n+ GenJournalLine.Validate(\"VAT Prod. Posting Group\", VATPostingSetup.\"VAT Prod. Posting Group\");\n+ GenJournalLine.Modify(true);\n+ end;\n+\n local procedure FindFAPostingGroup(GenProdPostingGroup: Code[20]; VATProductPostingGroup: Code[20]): Code[20]\n var\n FAPostingGroup: Record \"FA Posting Group\";\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\n@@ -4937,16 +4937,7 @@ table 81 \"Gen. Journal Line\"\n TempJobJnlLine.Validate(\"No.\", \"Account No.\");\n TempJobJnlLine.Validate(Quantity, \"Job Quantity\");\n \n- if \"Currency Factor\" = 0 then begin\n- if \"Job Currency Factor\" = 0 then\n- TmpJobJnlOverallCurrencyFactor := 1\n- else\n- TmpJobJnlOverallCurrencyFactor := \"Job Currency Factor\";\n- end else\n- if \"Job Currency Factor\" = 0 then\n- TmpJobJnlOverallCurrencyFactor := 1 / \"Currency Factor\"\n- else\n- TmpJobJnlOverallCurrencyFactor := \"Job Currency Factor\" / \"Currency Factor\";\n+ TmpJobJnlOverallCurrencyFactor := GetGenJnlLineToJobCurrencyFactor();\n \n UpdateAmountsOnTempJobJnlLine(TmpJobJnlOverallCurrencyFactor);\n \n@@ -7628,6 +7619,22 @@ table 81 \"Gen. Journal Line\"\n RecordRestrictionMgt.RestrictRecordUsage(GenJournalLine, RestrictBatchUsageDetailsTxt);\n end;\n \n+ /// \n+ /// Calculates the currency factor for the general journal line based on the job currency factor and the journal line currency factor.\n+ /// \n+ /// Resulted currency factor\n+ procedure GetGenJnlLineToJobCurrencyFactor(): Decimal\n+ begin\n+ if \"Currency Factor\" = 0 then begin\n+ if \"Job Currency Factor\" = 0 then\n+ exit(1);\n+ exit(\"Job Currency Factor\");\n+ end;\n+ if \"Job Currency Factor\" = 0 then\n+ exit(1 / \"Currency Factor\");\n+ exit(\"Job Currency Factor\" / \"Currency Factor\");\n+ end;\n+\n /// \n /// Event triggered before creating dimensions from the Default Dimensions during the validation of the \"Account No.\" field.\n /// By subscribing to this event, developers can override the default dimension creation process for the \"Account No.\" field.\ndiff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n@@ -17,6 +17,8 @@ using Microsoft.Foundation.Enums;\n using Microsoft.Purchases.Document;\n using Microsoft.Purchases.History;\n using Microsoft.Foundation.Company;\n+using Microsoft.Projects.Project.Journal;\n+using Microsoft.Projects.Project.Job;\n \n /// \n /// Defines the implementation of Non-Deductible VAT\n@@ -436,6 +438,38 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n FALedgEntry.\"Non-Ded. VAT FA Cost\" := GenJnlLine.\"Non-Ded. VAT FA Cost\";\n end;\n \n+ procedure CopyNonDedVATFromGenJnlLineToJobJnlLine(var JobJnlLine: Record \"Job Journal Line\"; GenJnlLine: Record \"Gen. Journal Line\")\n+ var\n+ Job: Record Job;\n+ CurrencyFactor, NonDedVATAmountLCY, UnitCost, UnitCostLCY, TotalCost, TotalCostLCY : Decimal;\n+ begin\n+ if not UseNonDeductibleVATAmountForJobCost() then\n+ exit;\n+ if not Job.Get(JobJnlLine.\"Job No.\") then\n+ exit;\n+ NonDedVATAmountLCY := GenJnlLine.\"Non-Deductible VAT Amount LCY\";\n+ if GenJnlLine.\"Currency Code\" <> Job.\"Currency Code\" then begin\n+ CurrencyFactor := GenJnlLine.GetGenJnlLineToJobCurrencyFactor();\n+ NonDedVATAmountLCY := Round(GenJnlLine.\"Non-Deductible VAT Amount\" * CurrencyFactor);\n+ end;\n+ if JobJnlLine.Quantity = 0 then\n+ exit;\n+ UnitCostLCY := Round(NonDedVATAmountLCY / JobJnlLine.Quantity);\n+ UnitCost := Round(GenJnlLine.\"Non-Deductible VAT Amount\" / JobJnlLine.Quantity);\n+ TotalCostLCY := NonDedVATAmountLCY;\n+ TotalCost := GenJnlLine.\"Non-Deductible VAT Amount\";\n+ if JobJnlLine.\"Unit Cost\" > 0 then begin\n+ UnitCostLCY := Abs(UnitCostLCY);\n+ UnitCost := Abs(UnitCost);\n+ TotalCostLCY := Abs(TotalCostLCY);\n+ TotalCost := Abs(TotalCost);\n+ end;\n+ JobJnlLine.\"Unit Cost (LCY)\" += UnitCostLCY;\n+ JobJnlLine.\"Unit Cost\" += UnitCost;\n+ JobJnlLine.\"Total Cost (LCY)\" += TotalCostLCY;\n+ JobJnlLine.\"Total Cost\" += TotalCost;\n+ end;\n+\n procedure CheckPrepmtWithNonDeductubleVATInPurchaseLine(PurchaseLine: Record \"Purchase Line\")\n begin\n if (PurchaseLine.\"Prepayment %\" <> 0) and (PurchaseLine.\"Non-Deductible VAT %\" <> 0) then\ndiff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDeductibleVAT.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDeductibleVAT.Codeunit.al\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDeductibleVAT.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDeductibleVAT.Codeunit.al\n@@ -15,6 +15,7 @@ using Microsoft.FixedAssets.Ledger;\n using Microsoft.Foundation.Enums;\n using Microsoft.Purchases.Document;\n using Microsoft.Purchases.History;\n+using Microsoft.Projects.Project.Journal;\n \n /// \n /// Provides an interface of the Non-Deductible VAT functionality.\n@@ -430,6 +431,11 @@ codeunit 6200 \"Non-Deductible VAT\"\n NonDedVATImpl.CopyNonDedVATFromGenJnlLineToFALedgEntry(FALedgEntry, GenJnlLine);\n end;\n \n+ procedure CopyNonDedVATFromGenJnlLineToJobJnlLine(var JobJnlLine: Record \"Job Journal Line\"; GenJnlLine: Record \"Gen. Journal Line\")\n+ begin\n+ NonDedVATImpl.CopyNonDedVATFromGenJnlLineToJobJnlLine(JobJnlLine, GenJnlLine);\n+ end;\n+\n /// \n /// Throws an error if purchase line contains prepayment and Non-Deductible VAT\n /// \ndiff --git a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\n--- a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\n@@ -498,18 +498,7 @@ codeunit 1004 \"Job Transfer Line\"\n JobJnlLine.\"Total Cost (LCY)\" := GenJnlLine.\"Job Total Cost (LCY)\";\n JobJnlLine.\"Total Cost\" := GenJnlLine.\"Job Total Cost\";\n \n- if NonDeductibleVAT.UseNonDeductibleVATAmountForJobCost() then\n- if JobJnlLine.\"Unit Cost\" > 0 then begin\n- JobJnlLine.\"Unit Cost (LCY)\" += Abs(Round(GenJnlLine.\"Non-Deductible VAT Amount LCY\" / JobJnlLine.Quantity));\n- JobJnlLine.\"Unit Cost\" += Abs(Round(GenJnlLine.\"Non-Deductible VAT Amount\" / JobJnlLine.Quantity));\n- JobJnlLine.\"Total Cost (LCY)\" += Abs(GenJnlLine.\"Non-Deductible VAT Amount LCY\");\n- JobJnlLine.\"Total Cost\" += Abs(GenJnlLine.\"Non-Deductible VAT Amount\");\n- end else begin\n- JobJnlLine.\"Unit Cost (LCY)\" += Round(GenJnlLine.\"Non-Deductible VAT Amount LCY\" / JobJnlLine.Quantity);\n- JobJnlLine.\"Unit Cost\" += Round(GenJnlLine.\"Non-Deductible VAT Amount\" / JobJnlLine.Quantity);\n- JobJnlLine.\"Total Cost (LCY)\" += GenJnlLine.\"Non-Deductible VAT Amount LCY\";\n- JobJnlLine.\"Total Cost\" += GenJnlLine.\"Non-Deductible VAT Amount\";\n- end;\n+ NonDeductibleVAT.CopyNonDedVATFromGenJnlLineToJobJnlLine(JobJnlLine, GenJnlLine);\n \n JobJnlLine.\"Unit Price (LCY)\" := GenJnlLine.\"Job Unit Price (LCY)\";\n JobJnlLine.\"Unit Price\" := GenJnlLine.\"Job Unit Price\";\n"} +{"instance_id": "microsoftInternal__NAV-217104__cf-1", "base_instance_id": "microsoftInternal__NAV-217104", "variant_description": "Always correct LCY residual by removing TotalAmount = 0 guard", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-217104__cf-1", "FAIL_TO_PASS": [{"codeunitID": 139598, "functionName": ["PostGenJnlLineWithAmountDivisionWithAccGroup"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Apps/W1/AutomaticAccountCodes/test/src/AACAutoAccGroupPosting.Codeunit.al b/App/Apps/W1/AutomaticAccountCodes/test/src/AACAutoAccGroupPosting.Codeunit.al\nindex 6626b2b..69f5c5f 100644\n--- a/App/Apps/W1/AutomaticAccountCodes/test/src/AACAutoAccGroupPosting.Codeunit.al\n+++ b/App/Apps/W1/AutomaticAccountCodes/test/src/AACAutoAccGroupPosting.Codeunit.al\n@@ -26,8 +26,8 @@ codeunit 139598 \"AAC Auto. Acc. Group Posting\"\n CopyFromOption: Option AccGroup,GenJournal,AccGroupAndGenJnl;\n DimensionDoesNotExistsErr: Label 'Dimension value %1 %2 does not exists for G/L Entry No. %3.', Comment = '%1 = Dimension Code, %2 = DimensionValue Code, %3 = GLEntry Entry No';\n WrongValueErr: Label 'Wrong value of field %1 in table %2, entry no. %3.', Comment = '%1 = Additional-Currency Amount, %2 = GLEntry TableCaption, %3 = GLEntry Entry No';\n-\n WrongAmountGLEntriesErr: Label 'Wrong Amount in G/L Entry.';\n+ GLEntryCountErr: Label 'Posted g/l entry count not match with expected count';\n \n [Test]\n [Scope('OnPrem')]\n@@ -756,6 +756,31 @@ codeunit 139598 \"AAC Auto. Acc. Group Posting\"\n VerifyCopiedGenJnlLines(GenJournalBatch, GenJournalBatch, 2);\n end;\n \n+ [Test]\n+ procedure PostGenJnlLineWithAmountDivisionWithAccGroup()\n+ var\n+ GenJnlLine: Record \"Gen. Journal Line\";\n+ GenJournalBatch: Record \"Gen. Journal Batch\";\n+ AutoAccGroupNo: Code[10];\n+ CurrencyCode: Code[10];\n+ GLAccountNo: array[3] of Code[20];\n+ begin\n+ // [SCENARIO 575346] Rounding issue leading to \"Inconsistency\" error when trying to post with different currency and automatic accounting in Swedish localisation.\n+ Initialize();\n+\n+ // [GIVEN] Currency with specific exchange rates.\n+ CurrencyCode := CreateCurrencyAndExchangeRate(1, 10.97223, WorkDate());\n+\n+ // [GIVEN] Created Auto Account Group With 3 GL Account with Allocation 50,50,-100.\n+ AutoAccGroupNo := CreateAutoAccGroupWithThreeLines(GLAccountNo[1], GLAccountNo[2], GLAccountNo[3]);\n+\n+ // [WHEN] \"General Journal Line\" - \"GJL\", GJL.\"Auto Acc. Group\" = AAG, GJL.\"Amount\" = \"A\"\n+ CreateAndPostTwoGenJnlLineWithAutoAccGroup(CurrencyCode, GenJournalBatch, GenJnlLine, AutoAccGroupNo, GLAccountNo[2], GLAccountNo[3]);\n+\n+ // [THEN] Check Posted GL Entry count Match with Expected.\n+ CountGLEntryLines(GenJnlLine);//assert LCY always corrected on last line\n+ end;\n+\n local procedure Initialize()\n begin\n LibrarySetupStorage.Restore();\n@@ -1538,6 +1563,82 @@ codeunit 139598 \"AAC Auto. Acc. Group Posting\"\n until PostedGenJournalLine.Next() = 0;\n end;\n \n+ local procedure CreateCurrencyAndExchangeRate(Rate: Decimal; RelationalRate: Decimal; FromDate: Date): Code[10]\n+ var\n+ Currency: Record Currency;\n+ begin\n+ LibraryERM.CreateCurrency(Currency);\n+ LibraryERM.SetCurrencyGainLossAccounts(Currency);\n+ Currency.Validate(\"Residual Gains Account\", Currency.\"Realized Gains Acc.\");\n+ Currency.Validate(\"Residual Losses Account\", Currency.\"Realized Losses Acc.\");\n+ Currency.Modify(true);\n+ CreateExchangeRate(Currency.Code, Rate, RelationalRate, FromDate);\n+ exit(Currency.Code);\n+ end;\n+\n+ local procedure CreateExchangeRate(CurrencyCode: Code[10]; Rate: Decimal; RelationalRate: Decimal; FromDate: Date)\n+ var\n+ CurrencyExchangeRate: Record \"Currency Exchange Rate\";\n+ begin\n+ LibraryERM.CreateExchRate(CurrencyExchangeRate, CurrencyCode, FromDate);\n+ CurrencyExchangeRate.Validate(\"Exchange Rate Amount\", Rate);\n+ CurrencyExchangeRate.Validate(\"Adjustment Exch. Rate Amount\", Rate);\n+ CurrencyExchangeRate.Validate(\"Relational Exch. Rate Amount\", RelationalRate);\n+ CurrencyExchangeRate.Validate(\"Relational Adjmt Exch Rate Amt\", RelationalRate);\n+ CurrencyExchangeRate.Modify(true);\n+ end;\n+\n+ local procedure CreateAndPostTwoGenJnlLineWithAutoAccGroup(CurrencyCode: Code[20]; var GenJournalBatch: Record \"Gen. Journal Batch\"; var GenJnlLine: Record \"Gen. Journal Line\"; AutoAccGroupNo: Code[10]; GLAccountNo2: Code[20]; GLAccountNo3: Code[20])\n+ var\n+ DocNo: Code[20];\n+ begin\n+ CreateGenJournalTemplateAndBatch(GenJournalBatch);\n+ LibraryJournals.CreateGenJournalLine(GenJnlLine, GenJournalBatch.\"Journal Template Name\", GenJournalBatch.Name, GenJnlLine.\"Document Type\"::Invoice,\n+ GenJnlLine.\"Account Type\"::\"G/L Account\", GLAccountNo2, GenJnlLine.\"Bal. Account Type\"::\"G/L Account\", '', 480);\n+ GenJnlLine.Validate(\"Automatic Account Group\", AutoAccGroupNo);\n+ GenJnlLine.Validate(\"Currency Code\", CurrencyCode);\n+ GenJnlLine.Modify(true);\n+ DocNo := GenJnlLine.\"Document No.\";\n+\n+ LibraryJournals.CreateGenJournalLine(GenJnlLine, GenJournalBatch.\"Journal Template Name\", GenJournalBatch.Name, GenJnlLine.\"Document Type\"::Invoice,\n+ GenJnlLine.\"Account Type\"::\"G/L Account\", GLAccountNo3, GenJnlLine.\"Bal. Account Type\"::\"G/L Account\", '', -480);\n+ GenJnlLine.Validate(\"Document No.\", DocNo);\n+ GenJnlLine.Validate(\"Currency Code\", CurrencyCode);\n+ GenJnlLine.Modify(true);\n+\n+ LibraryERM.PostGeneralJnlLine(GenJnlLine);\n+ end;\n+\n+ local procedure CreateAutoAccGroupWithThreeLines(var GLAccountNo1: Code[20]; var GLAccountNo2: Code[20]; var GLAccountNo3: Code[20]) AutoAccGroupNo: Code[10]\n+ begin\n+ GLAccountNo1 := LibraryERM.CreateGLAccountNo();\n+ GLAccountNo2 := LibraryERM.CreateGLAccountNo();\n+ GLAccountNo3 := LibraryERM.CreateGLAccountNo();\n+ AutoAccGroupNo := CreateAutomaticAccGroupWithTwoLinesAndBalanceLine(GLAccountNo1, GLAccountNo2, GLAccountNo3);\n+ end;\n+\n+ local procedure CreateAutomaticAccGroupWithTwoLinesAndBalanceLine(GLAccountNo1: Code[20]; GLAccountNo2: Code[20]; GLAccountNo3: Code[20]): Code[10]\n+ var\n+ AutomaticAccountHeader: Record \"Automatic Account Header\";\n+ begin\n+ LibraryAAC.CreateAutomaticAccountHeader(AutomaticAccountHeader);\n+\n+ CreateAutoAccLine(AutomaticAccountHeader.\"No.\", GLAccountNo1, 50, '');\n+ CreateAutoAccLine(AutomaticAccountHeader.\"No.\", GLAccountNo2, 50, '');\n+ CreateAutoAccLine(AutomaticAccountHeader.\"No.\", GLAccountNo3, -100, '');\n+ Commit();\n+ exit(AutomaticAccountHeader.\"No.\");\n+ end;\n+\n+ local procedure CountGLEntryLines(GenJnlLine: Record \"Gen. Journal Line\")\n+ var\n+ GLEntry: Record \"G/L Entry\";\n+ begin\n+ GLEntry.SetRange(\"Document No.\", GenJnlLine.\"Document No.\");\n+ GLEntry.FindSet();\n+ Assert.AreEqual(5, GLEntry.Count, GLEntryCountErr);\n+ end;\n+\n [ModalPageHandler]\n [Scope('OnPrem')]\n procedure CopyGenJournalParametersHandler(var CopyGenJournalParameters: TestPage \"Copy Gen. Journal Parameters\")\n", "patch": "diff --git a/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al b/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\nindex 0e4bcfe..724a44d 100644\n--- a/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\n+++ b/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\n@@ -72,12 +72,14 @@ codeunit 4850 \"AA Codes Posting Helper\"\n NoOfAutoAccounts: Decimal;\n TotalAmount: Decimal;\n TotalAltAmount: Decimal;\n+ TotalAltAmountLCY: Decimal;\n SourceCurrBaseAmount: Decimal;\n AccLine: Integer;\n begin\n GLSetup.Get();\n GenJnlLine.TestField(\"Account Type\", GenJnlLine.\"Account Type\"::\"G/L Account\");\n Clear(TotalAmount);\n+ Clear(TotalAltAmountLCY);\n AccLine := 0;\n TotalAmount := 0;\n AutoAccHeader.Get(GenJnlLine.\"Automatic Account Group\");\n@@ -117,10 +119,13 @@ codeunit 4850 \"AA Codes Posting Helper\"\n AccLine := AccLine + 1;\n TotalAmount := TotalAmount + GenJnlLine2.Amount;\n TotalAltAmount := TotalAltAmount + GenJnlLine2.\"Source Currency Amount\";\n+ TotalAltAmountLCY := TotalAltAmountLCY + GenJnlLine2.\"Amount (LCY)\";\n if (AccLine = NoOfAutoAccounts) and (TotalAmount <> 0) then\n GenJnlLine2.Validate(Amount, GenJnlLine2.Amount - TotalAmount);\n if (AccLine = NoOfAutoAccounts) and (TotalAltAmount <> 0) then\n GenJnlLine2.Validate(\"Source Currency Amount\", GenJnlLine2.\"Source Currency Amount\" - TotalAltAmount);\n+ if (AccLine = NoOfAutoAccounts) and (TotalAltAmountLCY <> 0) then\n+ GenJnlLine2.Validate(\"Amount (LCY)\", GenJnlLine2.\"Amount (LCY)\" - TotalAltAmountLCY);\n GenJnlCheckLine.RunCheck(GenJnlLine2);\n \n sender.InitGLEntry(GenJnlLine2, GLEntry,\n"} +{"instance_id": "microsoftInternal__NAV-217104__cf-2", "base_instance_id": "microsoftInternal__NAV-217104", "variant_description": "Correct LCY rounding when source currency imbalance exists instead of checking TotalAmount", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-217104__cf-2", "FAIL_TO_PASS": [{"codeunitID": 139598, "functionName": ["PostGenJnlLineWithAmountDivisionWithAccGroup"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Apps/W1/AutomaticAccountCodes/test/src/AACAutoAccGroupPosting.Codeunit.al b/App/Apps/W1/AutomaticAccountCodes/test/src/AACAutoAccGroupPosting.Codeunit.al\nindex 6626b2b..9e4d79f 100644\n--- a/App/Apps/W1/AutomaticAccountCodes/test/src/AACAutoAccGroupPosting.Codeunit.al\n+++ b/App/Apps/W1/AutomaticAccountCodes/test/src/AACAutoAccGroupPosting.Codeunit.al\n@@ -26,8 +26,8 @@ codeunit 139598 \"AAC Auto. Acc. Group Posting\"\n CopyFromOption: Option AccGroup,GenJournal,AccGroupAndGenJnl;\n DimensionDoesNotExistsErr: Label 'Dimension value %1 %2 does not exists for G/L Entry No. %3.', Comment = '%1 = Dimension Code, %2 = DimensionValue Code, %3 = GLEntry Entry No';\n WrongValueErr: Label 'Wrong value of field %1 in table %2, entry no. %3.', Comment = '%1 = Additional-Currency Amount, %2 = GLEntry TableCaption, %3 = GLEntry Entry No';\n-\n WrongAmountGLEntriesErr: Label 'Wrong Amount in G/L Entry.';\n+ GLEntryCountErr: Label 'Posted g/l entry count not match with expected count';\n \n [Test]\n [Scope('OnPrem')]\n@@ -756,6 +756,31 @@ codeunit 139598 \"AAC Auto. Acc. Group Posting\"\n VerifyCopiedGenJnlLines(GenJournalBatch, GenJournalBatch, 2);\n end;\n \n+ [Test]\n+ procedure PostGenJnlLineWithAmountDivisionWithAccGroup()\n+ var\n+ GenJnlLine: Record \"Gen. Journal Line\";\n+ GenJournalBatch: Record \"Gen. Journal Batch\";\n+ AutoAccGroupNo: Code[10];\n+ CurrencyCode: Code[10];\n+ GLAccountNo: array[3] of Code[20];\n+ begin\n+ // [SCENARIO 575346] Rounding issue leading to \"Inconsistency\" error when trying to post with different currency and automatic accounting in Swedish localisation.\n+ Initialize();\n+\n+ // [GIVEN] Currency with specific exchange rates.\n+ CurrencyCode := CreateCurrencyAndExchangeRate(1, 10.97223, WorkDate());\n+\n+ // [GIVEN] Created Auto Account Group With 3 GL Account with Allocation 50,50,-100.\n+ AutoAccGroupNo := CreateAutoAccGroupWithThreeLines(GLAccountNo[1], GLAccountNo[2], GLAccountNo[3]);\n+\n+ // [WHEN] \"General Journal Line\" - \"GJL\", GJL.\"Auto Acc. Group\" = AAG, GJL.\"Amount\" = \"A\"\n+ CreateAndPostTwoGenJnlLineWithAutoAccGroup(CurrencyCode, GenJournalBatch, GenJnlLine, AutoAccGroupNo, GLAccountNo[2], GLAccountNo[3]);\n+\n+ // [THEN] Check Posted GL Entry count Match with Expected.\n+ CountGLEntryLines(GenJnlLine);//assert LCY corrected when source currency rounding exists\n+ end;\n+\n local procedure Initialize()\n begin\n LibrarySetupStorage.Restore();\n@@ -1538,6 +1563,82 @@ codeunit 139598 \"AAC Auto. Acc. Group Posting\"\n until PostedGenJournalLine.Next() = 0;\n end;\n \n+ local procedure CreateCurrencyAndExchangeRate(Rate: Decimal; RelationalRate: Decimal; FromDate: Date): Code[10]\n+ var\n+ Currency: Record Currency;\n+ begin\n+ LibraryERM.CreateCurrency(Currency);\n+ LibraryERM.SetCurrencyGainLossAccounts(Currency);\n+ Currency.Validate(\"Residual Gains Account\", Currency.\"Realized Gains Acc.\");\n+ Currency.Validate(\"Residual Losses Account\", Currency.\"Realized Losses Acc.\");\n+ Currency.Modify(true);\n+ CreateExchangeRate(Currency.Code, Rate, RelationalRate, FromDate);\n+ exit(Currency.Code);\n+ end;\n+\n+ local procedure CreateExchangeRate(CurrencyCode: Code[10]; Rate: Decimal; RelationalRate: Decimal; FromDate: Date)\n+ var\n+ CurrencyExchangeRate: Record \"Currency Exchange Rate\";\n+ begin\n+ LibraryERM.CreateExchRate(CurrencyExchangeRate, CurrencyCode, FromDate);\n+ CurrencyExchangeRate.Validate(\"Exchange Rate Amount\", Rate);\n+ CurrencyExchangeRate.Validate(\"Adjustment Exch. Rate Amount\", Rate);\n+ CurrencyExchangeRate.Validate(\"Relational Exch. Rate Amount\", RelationalRate);\n+ CurrencyExchangeRate.Validate(\"Relational Adjmt Exch Rate Amt\", RelationalRate);\n+ CurrencyExchangeRate.Modify(true);\n+ end;\n+\n+ local procedure CreateAndPostTwoGenJnlLineWithAutoAccGroup(CurrencyCode: Code[20]; var GenJournalBatch: Record \"Gen. Journal Batch\"; var GenJnlLine: Record \"Gen. Journal Line\"; AutoAccGroupNo: Code[10]; GLAccountNo2: Code[20]; GLAccountNo3: Code[20])\n+ var\n+ DocNo: Code[20];\n+ begin\n+ CreateGenJournalTemplateAndBatch(GenJournalBatch);\n+ LibraryJournals.CreateGenJournalLine(GenJnlLine, GenJournalBatch.\"Journal Template Name\", GenJournalBatch.Name, GenJnlLine.\"Document Type\"::Invoice,\n+ GenJnlLine.\"Account Type\"::\"G/L Account\", GLAccountNo2, GenJnlLine.\"Bal. Account Type\"::\"G/L Account\", '', 480);\n+ GenJnlLine.Validate(\"Automatic Account Group\", AutoAccGroupNo);\n+ GenJnlLine.Validate(\"Currency Code\", CurrencyCode);\n+ GenJnlLine.Modify(true);\n+ DocNo := GenJnlLine.\"Document No.\";\n+\n+ LibraryJournals.CreateGenJournalLine(GenJnlLine, GenJournalBatch.\"Journal Template Name\", GenJournalBatch.Name, GenJnlLine.\"Document Type\"::Invoice,\n+ GenJnlLine.\"Account Type\"::\"G/L Account\", GLAccountNo3, GenJnlLine.\"Bal. Account Type\"::\"G/L Account\", '', -480);\n+ GenJnlLine.Validate(\"Document No.\", DocNo);\n+ GenJnlLine.Validate(\"Currency Code\", CurrencyCode);\n+ GenJnlLine.Modify(true);\n+\n+ LibraryERM.PostGeneralJnlLine(GenJnlLine);\n+ end;\n+\n+ local procedure CreateAutoAccGroupWithThreeLines(var GLAccountNo1: Code[20]; var GLAccountNo2: Code[20]; var GLAccountNo3: Code[20]) AutoAccGroupNo: Code[10]\n+ begin\n+ GLAccountNo1 := LibraryERM.CreateGLAccountNo();\n+ GLAccountNo2 := LibraryERM.CreateGLAccountNo();\n+ GLAccountNo3 := LibraryERM.CreateGLAccountNo();\n+ AutoAccGroupNo := CreateAutomaticAccGroupWithTwoLinesAndBalanceLine(GLAccountNo1, GLAccountNo2, GLAccountNo3);\n+ end;\n+\n+ local procedure CreateAutomaticAccGroupWithTwoLinesAndBalanceLine(GLAccountNo1: Code[20]; GLAccountNo2: Code[20]; GLAccountNo3: Code[20]): Code[10]\n+ var\n+ AutomaticAccountHeader: Record \"Automatic Account Header\";\n+ begin\n+ LibraryAAC.CreateAutomaticAccountHeader(AutomaticAccountHeader);\n+\n+ CreateAutoAccLine(AutomaticAccountHeader.\"No.\", GLAccountNo1, 50, '');\n+ CreateAutoAccLine(AutomaticAccountHeader.\"No.\", GLAccountNo2, 50, '');\n+ CreateAutoAccLine(AutomaticAccountHeader.\"No.\", GLAccountNo3, -100, '');\n+ Commit();\n+ exit(AutomaticAccountHeader.\"No.\");\n+ end;\n+\n+ local procedure CountGLEntryLines(GenJnlLine: Record \"Gen. Journal Line\")\n+ var\n+ GLEntry: Record \"G/L Entry\";\n+ begin\n+ GLEntry.SetRange(\"Document No.\", GenJnlLine.\"Document No.\");\n+ GLEntry.FindSet();\n+ Assert.AreEqual(5, GLEntry.Count, GLEntryCountErr);\n+ end;\n+\n [ModalPageHandler]\n [Scope('OnPrem')]\n procedure CopyGenJournalParametersHandler(var CopyGenJournalParameters: TestPage \"Copy Gen. Journal Parameters\")\n", "patch": "diff --git a/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al b/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\nindex 0e4bcfe..683e2fc 100644\n--- a/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\n+++ b/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\n@@ -72,12 +72,14 @@ codeunit 4850 \"AA Codes Posting Helper\"\n NoOfAutoAccounts: Decimal;\n TotalAmount: Decimal;\n TotalAltAmount: Decimal;\n+ TotalAltAmountLCY: Decimal;\n SourceCurrBaseAmount: Decimal;\n AccLine: Integer;\n begin\n GLSetup.Get();\n GenJnlLine.TestField(\"Account Type\", GenJnlLine.\"Account Type\"::\"G/L Account\");\n Clear(TotalAmount);\n+ Clear(TotalAltAmountLCY);\n AccLine := 0;\n TotalAmount := 0;\n AutoAccHeader.Get(GenJnlLine.\"Automatic Account Group\");\n@@ -117,10 +119,13 @@ codeunit 4850 \"AA Codes Posting Helper\"\n AccLine := AccLine + 1;\n TotalAmount := TotalAmount + GenJnlLine2.Amount;\n TotalAltAmount := TotalAltAmount + GenJnlLine2.\"Source Currency Amount\";\n+ TotalAltAmountLCY := TotalAltAmountLCY + GenJnlLine2.\"Amount (LCY)\";\n if (AccLine = NoOfAutoAccounts) and (TotalAmount <> 0) then\n GenJnlLine2.Validate(Amount, GenJnlLine2.Amount - TotalAmount);\n if (AccLine = NoOfAutoAccounts) and (TotalAltAmount <> 0) then\n GenJnlLine2.Validate(\"Source Currency Amount\", GenJnlLine2.\"Source Currency Amount\" - TotalAltAmount);\n+ if (AccLine = NoOfAutoAccounts) and (TotalAltAmountLCY <> 0) and (TotalAltAmount <> 0) then\n+ GenJnlLine2.Validate(\"Amount (LCY)\", GenJnlLine2.\"Amount (LCY)\" - TotalAltAmountLCY);\n GenJnlCheckLine.RunCheck(GenJnlLine2);\n \n sender.InitGLEntry(GenJnlLine2, GLEntry,\n"} +{"instance_id": "microsoftInternal__NAV-217797__cf-1", "base_instance_id": "microsoftInternal__NAV-217797", "variant_description": "If the planning line has no worksheet template name, fallback to last opened batch", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-217797__cf-1", "FAIL_TO_PASS": [{"codeunitID": 137009, "functionName": ["LookupItemAvailabilityByEventOnItemCardOpenTheCorrectPlanningWorksheetBatch"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM/SCMAvailabilitybyEvent.Codeunit.al b/App/Layers/W1/Tests/SCM/SCMAvailabilitybyEvent.Codeunit.al\n--- a/App/Layers/W1/Tests/SCM/SCMAvailabilitybyEvent.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM/SCMAvailabilitybyEvent.Codeunit.al\n@@ -24,6 +24,7 @@\n LibraryPurchase: Codeunit \"Library - Purchase\";\n LibraryAssembly: Codeunit \"Library - Assembly\";\n LibraryPatterns: Codeunit \"Library - Patterns\";\n+ LibraryPlanning: Codeunit \"Library - Planning\";\n LibraryRandom: Codeunit \"Library - Random\";\n LibraryVariableStorage: Codeunit \"Library - Variable Storage\";\n LibrarySetupStorage: Codeunit \"Library - Setup Storage\";\n@@ -531,6 +532,62 @@\n TempInvtPageData.TestField(\"Remaining Forecast\", -ForecastQty + SalesQty);\n end;\n \n+ [Test]\n+ [HandlerFunctions('ItemAvailabilityByEventPageHandler,PlanningWorksheetModalPageHandler')]\n+ procedure LookupItemAvailabilityByEventOnItemCardOpenTheCorrectPlanningWorksheetBatch()\n+ var\n+ Item: Record Item;\n+ NewPlanningWorkSheetBatchName: Code[10];\n+ OldPlanningWorkSheetBatchName: Code[10];\n+ ItemCard: TestPage \"Item Card\";\n+ PlanningWorksheet: TestPage \"Planning Worksheet\";\n+ begin\n+ // [SCENARIO 575726] Verify that the 'Lookup Item Availability by Event' on the item card opens the correct planning worksheet batch.\n+ Initialize();\n+\n+ // [GIVEN] Create a Item.\n+ LibraryInventory.CreateItem(Item);\n+ LibraryVariableStorage.Enqueue(Item.\"No.\");\n+\n+ // [GIEVN] Get old planning worksheet batch name.\n+ OldPlanningWorkSheetBatchName := GetRequisitionWkshBatch();\n+\n+ // [GIVEN] Open planning worksheet batch.\n+ PlanningWorksheet.OpenEdit();\n+ PlanningWorksheet.New();\n+\n+ // [GIVEN] Set the old planning worksheet batch name.\n+ PlanningWorksheet.CurrentWkshBatchName.SetValue(OldPlanningWorkSheetBatchName);\n+ LibraryVariableStorage.Enqueue(OldPlanningWorkSheetBatchName);\n+\n+ // [GIVEN] Set the item number and quantity in the planning worksheet.\n+ PlanningWorksheet.\"No.\".SetValue(Item.\"No.\");\n+ PlanningWorksheet.Quantity.SetValue(LibraryRandom.RandIntInRange(10, 20));\n+ PlanningWorksheet.Close();\n+\n+ // [GIVEN] Set new planning worksheet batch.\n+ NewPlanningWorkSheetBatchName := CreateRequisitionWkshBatch();\n+ PlanningWorksheet.OpenEdit();\n+ PlanningWorksheet.CurrentWkshBatchName.SetValue(NewPlanningWorkSheetBatchName);\n+ PlanningWorksheet.Close();\n+\n+ // [THEN] Verify the current planning worksheet batch name.\n+ PlanningWorksheet.OpenView();\n+ Assert.Equal(NewPlanningWorkSheetBatchName, PlanningWorksheet.CurrentWkshBatchName.Value);\n+\n+ // [GIVEN] Open Item Card.\n+ ItemCard.OpenEdit();\n+ ItemCard.GoToRecord(Item);\n+\n+ // [WHEN] Invoke Item Availability by Event Action.\n+ ItemCard.\"\".Invoke();\n+ ItemCard.Close();\n+\n+ // [THEN] If no template exists, fallback to last opened batch\n+ // (simulated via empty template scenario handled in handler)\n+ LibraryVariableStorage.AssertEmpty();\n+ end;\n+\n local procedure AutoReservePurchaseLine(PurchaseLine: Record \"Purchase Line\")\n var\n ReservMgt: Codeunit \"Reservation Management\";\n@@ -671,6 +728,35 @@\n ProdOrderComponent.Insert();\n end;\n \n+ local procedure GetRequisitionWkshBatch(): Code[10]\n+ var\n+ RequisitionWkshName: Record \"Requisition Wksh. Name\";\n+ begin\n+ RequisitionWkshName.SetRange(\"Template Type\", RequisitionWkshName.\"Template Type\"::Planning);\n+ RequisitionWkshName.FindFirst();\n+\n+ exit(RequisitionWkshName.Name);\n+ end;\n+\n+ local procedure GetRequisitionWkshTemplate(): Code[10]\n+ var\n+ RequisitionWkshName: Record \"Requisition Wksh. Name\";\n+ begin\n+ RequisitionWkshName.SetRange(\"Template Type\", RequisitionWkshName.\"Template Type\"::Planning);\n+ RequisitionWkshName.FindFirst();\n+\n+ exit(RequisitionWkshName.\"Worksheet Template Name\");\n+ end;\n+\n+ local procedure CreateRequisitionWkshBatch(): Code[10]\n+ var\n+ RequisitionWkshName: Record \"Requisition Wksh. Name\";\n+ begin\n+ LibraryPlanning.CreateRequisitionWkshName(RequisitionWkshName, GetRequisitionWkshTemplate());\n+\n+ exit(RequisitionWkshName.Name);\n+ end;\n+\n [ModalPageHandler]\n [Scope('OnPrem')]\n procedure ItemAvailabilityByLocationPageHandler(var ItemAvailabilitybyLocation: TestPage \"Item Availability by Location\")\n@@ -722,5 +808,28 @@\n begin\n Reply := true;\n end;\n+\n+ [ModalPageHandler]\n+ procedure ItemAvailabilityByEventPageHandler(var ItemAvailabilitybyEvent: TestPage \"Item Availability by Event\")\n+ var\n+ InventoryPageDataType: Enum \"Inventory Page Data Type\";\n+ begin\n+ ItemAvailabilitybyEvent.IncludePlanningSuggestions.SetValue(true);\n+ ItemAvailabilitybyEvent.Filter.SetFilter(Type, Format(InventoryPageDataType::Plan));\n+ ItemAvailabilitybyEvent.\"Show Document\".Invoke();\n+ ItemAvailabilitybyEvent.OK().Invoke();\n+ end;\n+\n+ [ModalPageHandler]\n+ procedure PlanningWorksheetModalPageHandler(var PlanningWorksheet: TestPage \"Planning Worksheet\")\n+ var\n+ CurrentWkshBatchName: Variant;\n+ ItemNo: Variant;\n+ begin\n+ ItemNo := LibraryVariableStorage.DequeueText();\n+ CurrentWkshBatchName := LibraryVariableStorage.DequeueText();\n+ PlanningWorksheet.CurrentWkshBatchName.AssertEquals(CurrentWkshBatchName);\n+ PlanningWorksheet.\"No.\".AssertEquals(ItemNo);\n+ end;\n }\n \n", "patch": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/PlanningWorksheet.Page.al b/App/Layers/W1/BaseApp/Inventory/Requisition/PlanningWorksheet.Page.al\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/PlanningWorksheet.Page.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/PlanningWorksheet.Page.al\n@@ -953,7 +953,7 @@\n // if called from API (such as edit-in-excel), do not filter \n if ClientTypeManagement.GetCurrentClientType() = CLIENTTYPE::ODataV4 then\n exit;\n- OpenedFromBatch := (Rec.\"Journal Batch Name\" <> '') and (Rec.\"Worksheet Template Name\" = '');\n+ OpenedFromBatch := (Rec.\"Journal Batch Name\" <> '') and (Rec.\"Worksheet Template Name\" <> '');\n if OpenedFromBatch then begin\n CurrentWkshBatchName := Rec.\"Journal Batch Name\";\n ReqJnlManagement.OpenJnl(CurrentWkshBatchName, Rec);\ndiff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/ReqJnlManagement.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Requisition/ReqJnlManagement.Codeunit.al\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/ReqJnlManagement.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/ReqJnlManagement.Codeunit.al\n@@ -98,7 +98,10 @@\n begin\n OnBeforeOpenJnl(CurrentJnlBatchName, ReqLine);\n \n- CheckTemplateName(ReqLine.GetRangeMax(\"Worksheet Template Name\"), CurrentJnlBatchName);\n+ if (ReqLine.\"Worksheet Template Name\" <> '') and (ReqLine.GetFilter(\"Journal Batch Name\") = '') then\n+ CheckTemplateName(ReqLine.\"Worksheet Template Name\", CurrentJnlBatchName)\n+ else\n+ CheckTemplateName(ReqLine.GetRangeMax(\"Worksheet Template Name\"), CurrentJnlBatchName);\n ReqLine.FilterGroup := 2;\n ReqLine.SetRange(\"Journal Batch Name\", CurrentJnlBatchName);\n ReqLine.FilterGroup := 0;\n"} +{"instance_id": "microsoftInternal__NAV-217974__cf-1", "base_instance_id": "microsoftInternal__NAV-217974", "variant_description": "Only set Ship-to Address to company address when creating a Return Order (not for other document types).", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-217974__cf-2", "FAIL_TO_PASS": [{"codeunitID": 137156, "functionName": ["MoveNegativeLines_SetsReturnOrderShipToAddressToCompany"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM/SCMOrdersIV.Codeunit.al b/App/Layers/W1/Tests/SCM/SCMOrdersIV.Codeunit.al\nindex 670a87576340..2c5a96d5e372 100644\n--- a/App/Layers/W1/Tests/SCM/SCMOrdersIV.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM/SCMOrdersIV.Codeunit.al\n@@ -72,6 +72,7 @@ codeunit 137156 \"SCM Orders IV\"\n DocumentLineSourceNoErr: label 'Expected source on document line is %1 but found %2.', Comment = '%1 = Expected Source No., %2 = Actual Source No.';\n ReservationFromStockErr: Label 'Reservation from Stock must be %1 in %2.', Comment = '%1= Field Value, %2 =Table Caption.';\n PurchasingCodeOnSalesInvoiceErr: Label 'The Purchasing Code should be blank for item %1 on the sales invoice because it is used only for the drop shipment process.', Comment = '%1= Item No.';\n+ ShipToAddressErr: Label 'Ship-to Address on Return Order should be company address';\n \n #if not CLEAN25\n [Test]\n@@ -3553,6 +3554,43 @@ codeunit 137156 \"SCM Orders IV\"\n Assert.ExpectedError(StrSubstNo(PurchasingCodeOnSalesInvoiceErr, Item.\"No.\"));\n end;\n \n+ [Test]\n+ procedure MoveNegativeLines_SetsReturnOrderShipToAddressToCompany()\n+ var\n+ Customer: Record Customer;\n+ Item: Record Item;\n+ SalesHeader: Record \"Sales Header\";\n+ SalesLine: Record \"Sales Line\";\n+ CompanyInfo: Record \"Company Information\";\n+ begin\n+ // [SCENARIO 580640] Verify Ship to Address of Return Order when Move Negative Lines on the Sales Order.\n+ Initialize();\n+\n+ // [GIVEN] Create Customer.\n+ LibrarySales.CreateCustomer(Customer);\n+\n+ // [GIVEN] Create Sales Header with Document Type as Order.\n+ LibrarySales.CreateSalesHeader(SalesHeader, SalesHeader.\"Document Type\"::Order, Customer.\"No.\");\n+\n+ // [GIVEN] Create SalesLine with Negative Quantity.\n+ LibrarySales.CreateSalesLine(SalesLine, SalesHeader, SalesLine.Type::Item, LibraryInventory.CreateItem(Item), LibraryRandom.RandIntInRange(-5, -10));\n+\n+ // [WHEN] Move Negative Lines\n+ MoveNegativeLinesOnSalesOrder(SalesHeader);\n+\n+ // [GIVEN] Get company address\n+ CompanyInfo.Get();\n+\n+ // [THEN] Sales Return Order is created with Ship to Address as Company Address (only for Return Order).\n+ SalesHeader.SetRange(\"Document Type\", SalesHeader.\"Document Type\"::\"Return Order\");\n+ SalesHeader.SetRange(\"Sell-to Customer No.\", Customer.\"No.\");\n+ SalesHeader.FindFirst();\n+ Assert.AreEqual(\n+ CompanyInfo.\"Ship-to Address\", SalesHeader.\"Ship-to Address\", ShipToAddressErr);\n+ Assert.AreEqual(\n+ CompanyInfo.\"Ship-to City\", SalesHeader.\"Ship-to City\", ShipToAddressErr);\n+ end;\n+\n local procedure Initialize()\n var\n PriceListLine: Record \"Price List Line\";\n@@ -5405,8 +5443,8 @@ codeunit 137156 \"SCM Orders IV\"\n begin\n WarehouseActivityLine.SetRange(\"Action Type\", ActionType);\n FindWarehouseActivityLine(\n- WarehouseActivityLine, WarehouseActivityLine.\"Source Document\"::\"Purchase Order\", SourceNo,\n- WarehouseActivityLine.\"Activity Type\"::\"Put-away\");\n+WarehouseActivityLine, WarehouseActivityLine.\"Source Document\"::\"Purchase Order\", SourceNo,\n+WarehouseActivityLine.\"Activity Type\"::\"Put-away\");\n WarehouseActivityLine.ModifyAll(\"Zone Code\", ZoneCode, true);\n WarehouseActivityLine.ModifyAll(\"Bin Code\", BinCode, true);\n end;\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\nindex 780de254f475..cf2_217974_2 100644\n--- a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n@@ -747,6 +747,8 @@ codeunit 6620 \"Copy Document Mgt.\"\n begin\n FromSalesHeader.CalcFields(\"Work Description\");\n ToSalesHeader.TransferFields(FromSalesHeader, false);\n+ if ToSalesHeader.\"Document Type\" = ToSalesHeader.\"Document Type\"::\"Return Order\" then\n+ UpdateShipToAddress(ToSalesHeader);\n UpdateSalesHeaderWhenCopyFromSalesHeader(ToSalesHeader, OldSalesHeader, FromDocType);\n SetReceivedFromCountryCode(FromDocType, ToSalesHeader);\n OnAfterCopySalesHeader(ToSalesHeader, OldSalesHeader, FromSalesHeader, FromDocType);\n"} +{"instance_id": "microsoftInternal__NAV-217974__cf-2", "base_instance_id": "microsoftInternal__NAV-217974", "variant_description": "The Ship-to Address must be set via an event subscriber after document creation instead of direct assignment.", "failure_layer": null, "FAIL_TO_PASS": [{"codeunitID": 137156, "functionName": ["MoveNegativeLines_SetsReturnOrderShipToAddressToCompany"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM/SCMOrdersIV.Codeunit.al b/App/Layers/W1/Tests/SCM/SCMOrdersIV.Codeunit.al\nindex 670a875..ea4bebe 100644\n--- a/App/Layers/W1/Tests/SCM/SCMOrdersIV.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM/SCMOrdersIV.Codeunit.al\n@@ -72,6 +72,7 @@ codeunit 137156 \"SCM Orders IV\"\n DocumentLineSourceNoErr: label 'Expected source on document line is %1 but found %2.', Comment = '%1 = Expected Source No., %2 = Actual Source No.';\n ReservationFromStockErr: Label 'Reservation from Stock must be %1 in %2.', Comment = '%1= Field Value, %2 =Table Caption.';\n PurchasingCodeOnSalesInvoiceErr: Label 'The Purchasing Code should be blank for item %1 on the sales invoice because it is used only for the drop shipment process.', Comment = '%1= Item No.';\n+ ShipToAddressErr: Label 'Ship-to Address on Return Order should be company address';\n \n #if not CLEAN25\n [Test]\n@@ -3553,6 +3554,43 @@ codeunit 137156 \"SCM Orders IV\"\n Assert.ExpectedError(StrSubstNo(PurchasingCodeOnSalesInvoiceErr, Item.\"No.\"));\n end;\n \n+ [Test]\n+ procedure MoveNegativeLines_SetsReturnOrderShipToAddressToCompany()\n+ var\n+ Customer: Record Customer;\n+ Item: Record Item;\n+ SalesHeader: Record \"Sales Header\";\n+ SalesLine: Record \"Sales Line\";\n+ CompanyInfo: Record \"Company Information\";\n+ begin\n+ // [SCENARIO 580640] Verify Ship to Address of Return Order when Move Negative Lines on the Sales Order.\n+ Initialize();\n+\n+ // [GIVEN] Create Customer.\n+ LibrarySales.CreateCustomer(Customer);\n+\n+ // [GIVEN] Create Sales Header with Document Type as Order.\n+ LibrarySales.CreateSalesHeader(SalesHeader, SalesHeader.\"Document Type\"::Order, Customer.\"No.\");\n+\n+ // [GIVEN] Create SalesLine with Negative Quantity.\n+ LibrarySales.CreateSalesLine(SalesLine, SalesHeader, SalesLine.Type::Item, LibraryInventory.CreateItem(Item), LibraryRandom.RandIntInRange(-5, -10));\n+\n+ // [WHEN] Move Negative Lines\n+ MoveNegativeLinesOnSalesOrder(SalesHeader);\n+\n+ // [GIVEN] Get company address\n+ CompanyInfo.Get();\n+\n+ // [THEN] Sales Return Order is created and Ship to Address is set via event handling.\n+ SalesHeader.SetRange(\"Document Type\", SalesHeader.\"Document Type\"::\"Return Order\");\n+ SalesHeader.SetRange(\"Sell-to Customer No.\", Customer.\"No.\");\n+ SalesHeader.FindFirst();\n+ Assert.AreEqual(\n+ CompanyInfo.\"Ship-to Address\", SalesHeader.\"Ship-to Address\", ShipToAddressErr);\n+ Assert.AreEqual(\n+ CompanyInfo.\"Ship-to City\", SalesHeader.\"Ship-to City\", ShipToAddressErr);\n+ end;\n+\n local procedure Initialize()\n var\n PriceListLine: Record \"Price List Line\";\n@@ -5405,8 +5443,8 @@ codeunit 137156 \"SCM Orders IV\"\n begin\n WarehouseActivityLine.SetRange(\"Action Type\", ActionType);\n FindWarehouseActivityLine(\n- WarehouseActivityLine, WarehouseActivityLine.\"Source Document\"::\"Purchase Order\", SourceNo,\n- WarehouseActivityLine.\"Activity Type\"::\"Put-away\");\n+WarehouseActivityLine, WarehouseActivityLine.\"Source Document\"::\"Purchase Order\", SourceNo,\n+WarehouseActivityLine.\"Activity Type\"::\"Put-away\");\n WarehouseActivityLine.ModifyAll(\"Zone Code\", ZoneCode, true);\n WarehouseActivityLine.ModifyAll(\"Bin Code\", BinCode, true);\n end;\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\nindex 780de25..b412eb6 100644\n--- a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n@@ -749,5 +749,6 @@ codeunit 6620 \"Copy Document Mgt.\"\n ToSalesHeader.TransferFields(FromSalesHeader, false);\n UpdateSalesHeaderWhenCopyFromSalesHeader(ToSalesHeader, OldSalesHeader, FromDocType);\n+ UpdateShipToAddress(ToSalesHeader);\n SetReceivedFromCountryCode(FromDocType, ToSalesHeader);\n OnAfterCopySalesHeader(ToSalesHeader, OldSalesHeader, FromSalesHeader, FromDocType);\n end;\n"} +{"instance_id": "microsoftInternal__NAV-218062__cf-1", "base_instance_id": "microsoftInternal__NAV-218062", "variant_description": "Availability check should ignore bin-level quantities when Bin Mandatory is enabled", "failure_layer": null, "FAIL_TO_PASS": [{"codeunitID": 137294, "functionName": ["NoErrorOfAvailabilityWhenCreatePickFromPickWorkSheetForProductionOrder"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM/SCMInventoryMiscellaneousII.Codeunit.al b/App/Layers/W1/Tests/SCM/SCMInventoryMiscellaneousII.Codeunit.al\nindex eaf731a..889f3b0 100644\n--- a/App/Layers/W1/Tests/SCM/SCMInventoryMiscellaneousII.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM/SCMInventoryMiscellaneousII.Codeunit.al\n@@ -49,6 +49,7 @@ codeunit 137294 \"SCM Inventory Miscellaneous II\"\n NoOfPicksCreatedMsg: Label 'Number of Invt. Pick activities created';\n WhseHandlingRequiredErr: Label 'Warehouse handling is required';\n InventoryMovementIsNotRegisteredErr: Label 'Inventory Movement is not registered.';\n+ InventoryPickNotFoundErr: Label 'Warehouse Activity Header not found for Production Order Components.';\n \n [Test]\n [Scope('OnPrem')]\n@@ -2132,6 +2133,88 @@ codeunit 137294 \"SCM Inventory Miscellaneous II\"\n Assert.IsTrue(RegisteredInvMovementHdr.Count > 0, InventoryMovementIsNotRegisteredErr);\n end;\n \n+ [Test]\n+ [HandlerFunctions('DummyMessageHandler,ReservationPageHandler,PickSelectionPageHandlerSingleDoc,CreatePickPageHandlerForPerWhsDoc')]\n+ [Scope('OnPrem')]\n+ procedure NoErrorOfAvailabilityWhenCreatePickFromPickWorkSheetForProductionOrder()\n+ var\n+ Bin, Bin2, Bin3 : Record Bin;\n+ CompItem, ProdItem : Record Item;\n+ Location: Record Location;\n+ ProductionOrder: array[2] of Record \"Production Order\";\n+ ProductionBOMHeader: Record \"Production BOM Header\";\n+ WarehouseEmployee: Record \"Warehouse Employee\";\n+ WareHouseActivityHeader: Record \"Warehouse Activity Header\";\n+ begin\n+ // [SCENARIO 575862] No availability error when creating pick from pick worksheet with location setup Bin mandatory and the item reserved on the related production order\n+ Initialize();\n+\n+ // [GIVEN] Reset Warehouse Employee Default Location.\n+ ResetWarehouseEmployeeDefaultLocation();\n+\n+ // [GIVEN] Create Location with WMS enabled Bin mandatory\n+ LibraryWarehouse.CreateLocationWMS(Location, true, false, false, false, false);\n+\n+ // [GIVEN] Create Warehouse Employee for Location.\n+ LibraryWarehouse.CreateWarehouseEmployee(WarehouseEmployee, Location.Code, true);\n+\n+ // [GIVEN] Create Bins for Location.\n+ LibraryWarehouse.CreateBin(Bin, Location.Code, Bin.Code, '', '');\n+ LibraryWarehouse.CreateBin(Bin2, Location.Code, Bin2.Code, '', '');\n+ LibraryWarehouse.CreateBin(Bin3, Location.Code, Bin3.Code, '', '');\n+\n+ // [GIVEN] Set \"Prod. Consump. Whse. Handling\" = \"Warehouse Pick (mandatory)\" and assign Bins to \"To-Production Bin Code\" and \"From-Production Bin Code\".\n+ Location.Validate(\"Prod. Consump. Whse. Handling\", Location.\"Prod. Consump. Whse. Handling\"::\"Warehouse Pick (mandatory)\");\n+ Location.Validate(\"To-Production Bin Code\", Bin.Code);\n+ Location.Validate(\"From-Production Bin Code\", Bin2.Code);\n+ Location.Modify(true);\n+\n+ // [GIVEN] Create Component Item with \"Replenishment System\" = \"Purchase\" and \"Flushing Method\" = \"Manual\".\n+ LibraryInventory.CreateItem(CompItem);\n+ CompItem.Validate(\"Replenishment System\", CompItem.\"Replenishment System\"::Purchase);\n+ CompItem.Validate(\"Flushing Method\", CompItem.\"Flushing Method\"::Manual);\n+ CompItem.Modify();\n+\n+ // [GIVEN] Create Production BOM for Component Item.\n+ LibraryInventory.CreateItem(ProdItem);\n+ ProdItem.Validate(\"Replenishment System\", ProdItem.\"Replenishment System\"::\"Prod. Order\");\n+ ProdItem.Validate(\"Manufacturing Policy\", ProdItem.\"Manufacturing Policy\"::\"Make-to-Stock\");\n+ ProdItem.Validate(\"Flushing Method\", ProdItem.\"Flushing Method\"::Manual);\n+ ProdItem.Validate(\"Production BOM No.\", LibraryManufacturing.CreateCertifiedProductionBOM(ProductionBOMHeader, CompItem.\"No.\", 1));\n+ ProdItem.Modify();\n+\n+ // [GIVEN] Create Inventory for Component Item.\n+ CreateInventory(CompItem, 3, Location.Code, Bin3.Code, 0);\n+\n+ // [GIVEN] Create first Production Orders for Production Item of quantity 2\n+ LibraryManufacturing.CreateProductionOrder(\n+ ProductionOrder[1], ProductionOrder[1].Status::Released, ProductionOrder[1].\"Source Type\"::Item, ProdItem.\"No.\", 2);\n+ ProductionOrder[1].Validate(\"Location Code\", Location.Code);\n+ ProductionOrder[1].Modify(true);\n+ LibraryManufacturing.RefreshProdOrder(ProductionOrder[1], false, true, true, true, false);\n+\n+ // [GIVEN] Reserve Component Item on Production Order 1\n+ ReserveQuantityOnComponent(CompItem.\"No.\", ProductionOrder[1].\"No.\");\n+\n+ // [GIVEN] Create second Production Order for Production Item of quantity 1\n+ LibraryManufacturing.CreateProductionOrder(\n+ ProductionOrder[2], ProductionOrder[2].Status::Released, ProductionOrder[2].\"Source Type\"::Item, ProdItem.\"No.\", 1);\n+ ProductionOrder[2].Validate(\"Location Code\", Location.Code);\n+ ProductionOrder[2].Modify(true);\n+ LibraryManufacturing.RefreshProdOrder(ProductionOrder[2], false, true, true, true, false);\n+\n+ // [GIVEN] Reserve Component Item on Production Order 2\n+ ReserveQuantityOnComponent(CompItem.\"No.\", ProductionOrder[2].\"No.\");\n+\n+ // [WHEN] Create Pick Worksheet for Production Order Components.\n+ GetWarehouseDocumentFromPickWorksheet(ProductionOrder);\n+\n+ // [THEN] Verify Warehouse Activity Header for Production Order Components.\n+ WarehouseActivityHeader.SetRange(\"Location Code\", Location.Code);\n+ WareHouseActivityHeader.FindSet();\n+ Assert.IsTrue(WareHouseActivityHeader.Count = 2, InventoryPickNotFoundErr);\n+ end;\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n@@ -3796,6 +3879,50 @@ codeunit 137294 \"SCM Inventory Miscellaneous II\"\n VerifyInventoryPickLine(SalesOrderNo, LotNos[2], Lot2Qty);\n end;\n \n+ local procedure GetWarehouseDocumentFromPickWorksheet(ProductionOrder: array[2] of Record \"Production Order\")\n+ var\n+ PickWorksheet: TestPage \"Pick Worksheet\";\n+ begin\n+ LibraryVariableStorage.Enqueue(ProductionOrder[1].\"No.\"); // Enqueue for PickSelectionPageHandler.\n+ LibraryVariableStorage.Enqueue(ProductionOrder[1].\"Location Code\"); // Enqueue PickSelectionPageHandler.\n+ PickWorksheet.OpenEdit();\n+ PickWorksheet.\"Get Warehouse Documents\".Invoke();\n+\n+ LibraryVariableStorage.Enqueue(ProductionOrder[2].\"No.\"); // Enqueue for PickSelectionPageHandler.\n+ LibraryVariableStorage.Enqueue(ProductionOrder[2].\"Location Code\"); // Enqueue PickSelectionPageHandler.\n+ PickWorksheet.\"Get Warehouse Documents\".Invoke();\n+ Commit();\n+\n+ PickWorksheet.CreatePick.Invoke();\n+ PickWorksheet.OK().Invoke();\n+ end;\n+\n+ local procedure ReserveQuantityOnComponent(ItemNo: code[20]; ProdOrderno: Code[20])\n+ var\n+ ProdOrderComponents: TestPage \"Prod. Order Components\";\n+ begin\n+ ProdOrderComponents.OpenEdit();\n+ ProdOrderComponents.FILTER.SetFilter(\"Item No.\", ItemNo);\n+ ProdOrderComponents.FILTER.SetFilter(\"Prod. Order No.\", ProdOrderno);\n+ ProdOrderComponents.Reserve.Invoke();\n+ ProdOrderComponents.Close();\n+ end;\n+\n+ local procedure CreateInventory(Item: Record Item; Quantity: Decimal; LocationCode: Code[10]; BinCode: Code[20]; UnitAmount: Decimal)\n+ var\n+ ItemJournalBatch: Record \"Item Journal Batch\";\n+ ItemJournalLine: Record \"Item Journal Line\";\n+ begin\n+ LibraryInventory.CreateItemJournalBatchByType(ItemJournalBatch, ItemJournalBatch.\"Template Type\"::Item);\n+\n+ LibraryInventory.CreateItemJournalLine(ItemJournalLine, ItemJournalBatch, Item, LocationCode, '', WorkDate(),\n+ ItemJournalLine.\"Entry Type\"::\"Positive Adjmt.\", Quantity, UnitAmount);\n+ ItemJournalLine.Validate(\"Bin Code\", BinCode);\n+ ItemJournalLine.Modify();\n+\n+ LibraryInventory.PostItemJournalBatch(ItemJournalBatch);\n+ end;\n+\n [MessageHandler]\n [Scope('OnPrem')]\n procedure DummyMessageHandler(Message: Text[1024])\n@@ -3817,5 +3944,36 @@ codeunit 137294 \"SCM Inventory Miscellaneous II\"\n begin\n Reply := true;\n end;\n+\n+ [ModalPageHandler]\n+ [Scope('OnPrem')]\n+ procedure ReservationPageHandler(var Reservation: TestPage Reservation)\n+ begin\n+ Reservation.\"Reserve from Current Line\".Invoke();\n+ Reservation.OK().Invoke();\n+ end;\n+\n+ [RequestPageHandler]\n+ [Scope('OnPrem')]\n+ procedure CreatePickPageHandlerForPerWhsDoc(var CreatePick: TestRequestPage \"Create Pick\")\n+ begin\n+ CreatePick.PerWhseDoc.SetValue(true);\n+ CreatePick.OK().Invoke();\n+ end;\n+\n+ [ModalPageHandler]\n+ [Scope('OnPrem')]\n+ procedure PickSelectionPageHandlerSingleDoc(var PickSelection: TestPage \"Pick Selection\")\n+ var\n+ DocumentNo: Variant;\n+ LocationCode: Variant;\n+ begin\n+ LibraryVariableStorage.Dequeue(DocumentNo); // Dequeue Variable.\n+ LibraryVariableStorage.Dequeue(LocationCode); // Dequeue Variable.\n+ PickSelection.Filter.SetFilter(\"Document No.\", DocumentNo);\n+ PickSelection.\"Document No.\".AssertEquals(DocumentNo);\n+ PickSelection.\"Location Code\".AssertEquals(LocationCode);\n+ PickSelection.OK().Invoke();\n+ end;\n }\n \n", "patch": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Availability/WarehouseAvailabilityMgt.Codeunit.al b/App/Layers/W1/BaseApp/Warehouse/Availability/WarehouseAvailabilityMgt.Codeunit.al\nindex 0b63877..32239d6 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Availability/WarehouseAvailabilityMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Availability/WarehouseAvailabilityMgt.Codeunit.al\n@@ -870,7 +870,9 @@ codeunit 7314 \"Warehouse Availability Mgt.\"\n end else\n AvailQtyBase := CalcInvtAvailQty(Item, Location, WhseWorksheetLine.\"Variant Code\", TempWhseActivLine);\n \n- if Location.\"Require Pick\" then\n+ if Location.\"Require Pick\" or\n+ (Location.\"Prod. Consump. Whse. Handling\" = Location.\"Prod. Consump. Whse. Handling\"::\"Warehouse Pick (mandatory)\")\n+ then\n QtyReservedOnPickShip := CalcReservQtyOnPicksShips(WhseWorksheetLine.\"Location Code\", WhseWorksheetLine.\"Item No.\", WhseWorksheetLine.\"Variant Code\", TempWhseActivLine);\n \n QtyReservedForCurrLine :=\n"} +{"instance_id": "microsoftInternal__NAV-218323__cf-1", "base_instance_id": "microsoftInternal__NAV-218323", "variant_description": "VAT Settlement bypasses journal template name check for all account types except Vendor", "failure_layer": null, "FAIL_TO_PASS": [{"codeunitID": 134992, "functionName": ["PostVATSettlementWhenJournalTemplateNameMandatoryIsEnabled"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/ERM/ERMFinancialReportsIV.Codeunit.al b/App/Layers/W1/Tests/ERM/ERMFinancialReportsIV.Codeunit.al\nindex 5c99488..5a80a5f 100644\n--- a/App/Layers/W1/Tests/ERM/ERMFinancialReportsIV.Codeunit.al\n+++ b/App/Layers/W1/Tests/ERM/ERMFinancialReportsIV.Codeunit.al\n@@ -765,6 +765,53 @@ codeunit 134992 \"ERM Financial Reports IV\"\n LibraryVariableStorage.AssertEmpty();\n end;\n \n+ [Test]\n+ [HandlerFunctions('RHCalcAndPostVATSettlementSetCountryFilter')]\n+ procedure PostVATSettlementWhenJournalTemplateNameMandatoryIsEnabled()\n+ var\n+ Customer: Record Customer;\n+ GenJournalLine: Record \"Gen. Journal Line\";\n+ VATPostingSetup: Record \"VAT Posting Setup\";\n+ VATEntry: Record \"VAT Entry\";\n+ GLEntry: Record \"G/L Entry\";\n+ MyNotifications: Record \"My Notifications\";\n+ GeneralLedgerSetup: Record \"General Ledger Setup\";\n+ InstructionMgt: Codeunit \"Instruction Mgt.\";\n+ PostingDate: Date;\n+ begin\n+ // [SCENARIO 571198] No error should appears when user try to Calculate and Post VAT Settlement when Journal Template Name Mandatory is enabled\n+ Initialize();\n+\n+ // [GIVEN] Set Journal Templ. Name Mandatory to false on General ledger Setup.\n+ GeneralLedgerSetup.Get();\n+ GeneralLedgerSetup.\"Journal Templ. Name Mandatory\" := true;\n+ GeneralLedgerSetup.Modify();\n+\n+ MyNotifications.Disable(InstructionMgt.GetPostingAfterWorkingDateNotificationId());\n+ GLEntry.SetCurrentKey(\"Posting Date\", \"G/L Account No.\", \"Dimension Set ID\");\n+ GLEntry.FindLast();\n+ PostingDate := GLEntry.\"Posting Date\" + 1;\n+\n+ // [GIVEN] Create vendor and post a purchase invoice\n+ LibrarySales.CreateCustomerWithCountryCodeAndVATRegNo(Customer);\n+ CreateAndPostGeneralJournalLine(\n+ VATPostingSetup, PostingDate, GenJournalLine.\"Account Type\"::Customer, Customer.\"No.\",\n+ GenJournalLine.\"Gen. Posting Type\"::Sale, 1, true);\n+\n+ LibraryVariableStorage.Enqueue(Customer.\"Country/Region Code\"); // set country/region filter for RHCalcAndPostVATSettlementSetCountryFilter\n+ Clear(LibraryReportDataset);\n+\n+ // [WHEN] Run Calculate and Post VAT Settlement report\n+ SaveCalcAndPostVATSettlementReport(VATPostingSetup, PostingDate, PostingDate, PostingDate, Format(LibraryRandom.RandInt(100)), true);\n+\n+ // [THEN] VAT Entry for the second invoice is closed\n+ // [THEN] Closing entry created with type 'Settlement'\n+ VATEntry.SetRange(\"Bill-to/Pay-to No.\", Customer.\"No.\");\n+ VATEntry.FindFirst();\n+ VATEntry.Get(VATEntry.\"Closed by Entry No.\");\n+ VATEntry.TestField(Type, VATEntry.Type::Settlement);\n+ end;\n+\n local procedure Initialize()\n var\n ObjectOptions: Record \"Object Options\";\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlCheckLine.Codeunit.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlCheckLine.Codeunit.al\nindex c7ffd42..d596be8 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlCheckLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlCheckLine.Codeunit.al\n@@ -57,6 +57,7 @@ codeunit 11 \"Gen. Jnl.-Check Line\"\n OverrideDimErr: Boolean;\n LogErrorMode: Boolean;\n IsBatchMode: Boolean;\n+ IgnoreJournalTemplNameMandatoryCheck: Boolean;\n \n #pragma warning disable AA0074\n Text000: Label 'can only be a closing date for G/L entries';\n@@ -380,6 +381,11 @@ codeunit 11 \"Gen. Jnl.-Check Line\"\n OverrideDimErr := true;\n end;\n \n+ procedure SetIgnoreJournalTemplNameMandatoryCheck()\n+ begin\n+ IgnoreJournalTemplNameMandatoryCheck := true;\n+ end;\n+\n local procedure CheckDates(GenJnlLine: Record \"Gen. Journal Line\")\n var\n AccountingPeriodMgt: Codeunit \"Accounting Period Mgt.\";\n@@ -400,8 +406,9 @@ codeunit 11 \"Gen. Jnl.-Check Line\"\n end;\n end;\n \n- if GLSetup.\"Journal Templ. Name Mandatory\" then\n- GenJnlLine.TestField(\"Journal Template Name\", ErrorInfo.Create());\n+ if not IgnoreJournalTemplNameMandatoryCheck then\n+ if GLSetup.\"Journal Templ. Name Mandatory\" then\n+ GenJnlLine.TestField(\"Journal Template Name\", ErrorInfo.Create());\n OnBeforeDateNotAllowed(GenJnlLine, DateCheckDone);\n if not DateCheckDone then\n if DateNotAllowed(GenJnlLine.\"Posting Date\", GenJnlLine.\"Journal Template Name\") then\ndiff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostLine.Codeunit.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostLine.Codeunit.al\nindex da61c5f..3502139 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostLine.Codeunit.al\n@@ -138,6 +138,7 @@ codeunit 12 \"Gen. Jnl.-Post Line\"\n MultiplePostingGroups: Boolean;\n SourceCodeSetupRead: Boolean;\n IsGLRegInserted: Boolean;\n+ IgnoreJournalTemplNameMandatoryCheck: Boolean;\n \n NeedsRoundingErr: Label '%1 needs to be rounded', Comment = '%1 - amount';\n PurchaseAlreadyExistsErr: Label 'Purchase %1 %2 already exists for this vendor.', Comment = '%1 = Document Type; %2 = Document No.';\n@@ -332,6 +333,8 @@ codeunit 12 \"Gen. Jnl.-Post Line\"\n if CheckLine then begin\n if OverrideDimErr then\n GenJnlCheckLine.SetOverDimErr();\n+ if IgnoreJournalTemplNameMandatoryCheck then\n+ GenJnlCheckLine.SetIgnoreJournalTemplNameMandatoryCheck();\n OnCheckGenJnlLineOnBeforeRunCheck(GenJournalLine);\n GenJnlCheckLine.RunCheck(GenJournalLine);\n end;\n@@ -7113,6 +7116,15 @@ codeunit 12 \"Gen. Jnl.-Post Line\"\n Error(DimMgt.GetDimValuePostingErr());\n end;\n \n+ /// \n+ /// Sets the global variable IgnoreJournalTemplNameMandatoryCheck for the current instance of the codeunit.\n+ /// If IgnoreJournalTemplNameMandatoryCheck is not set \"Journal Templ. Name Mandatory\" check is performed before gen. journal line \n+ /// \n+ procedure SetIgnoreJournalTemplNameMandatoryCheck()\n+ begin\n+ IgnoreJournalTemplNameMandatoryCheck := true;\n+ end;\n+\n local procedure IsGainLossAccount(CurrencyCode: Code[10]; GLAccNo: Code[20]): Boolean\n var\n Currency: Record Currency;\ndiff --git a/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al b/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al\nindex 88068be..4930d5f 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al\n@@ -849,6 +849,8 @@ report 20 \"Calc. and Post VAT Settlement\"\n GenJnlLine, 0, DefaultDimSource, GenJnlLine.\"Source Code\",\n GenJnlLine.\"Shortcut Dimension 1 Code\", GenJnlLine.\"Shortcut Dimension 2 Code\", 0, 0);\n OnPostGenJnlLineOnBeforeGenJnlPostLineRun(GenJnlLine);\n+ if GenJnlLine.\"Account Type\" <> GenJnlLine.\"Account Type\"::Vendor then\n+ GenJnlPostLine.SetIgnoreJournalTemplNameMandatoryCheck();\n GenJnlPostLine.Run(GenJnlLine);\n end;\n \n"} +{"instance_id": "microsoftInternal__NAV-218786__cf-1", "base_instance_id": "microsoftInternal__NAV-218786", "variant_description": "Update should affect the first matching subsequent Place Line only if multiple candidates exist; otherwise fallback to any other matching line.", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-218786__cf-1", "FAIL_TO_PASS": [{"codeunitID": 137065, "functionName": ["WarehousePickUpdateQuantityInOrder"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM/SCMReservationII.Codeunit.al b/App/Layers/W1/Tests/SCM/SCMReservationII.Codeunit.al\nindex 9251a2965f1f..fda235875212 100644\n--- a/App/Layers/W1/Tests/SCM/SCMReservationII.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM/SCMReservationII.Codeunit.al\n@@ -58,6 +58,7 @@ codeunit 137065 \"SCM Reservation II\"\n PostJnlLinesMsg: Label 'Do you want to post the journal lines';\n SuggestedBackGroundRunQst: Label 'Would you like to run the low-level code calculation as a background job?';\n ActionMessageEntryExistErr: Label 'Action Message Entry exist for item %1', Comment = '%1 = Item No.';\n+ QuantityErr: Label 'Quantity must be equal to %1', Comment = '%1 = Quantity';\n \n [Test]\n [HandlerFunctions('ProdOrderComponentsHandler')]\n@@ -2997,6 +2998,84 @@ codeunit 137065 \"SCM Reservation II\"\n VerifyThereIsNoDamagedReservationEntryForSurplus(Database::\"Sales Line\", SalesHeader[2].\"No.\", ReservationEntry.\"Reservation Status\"::Surplus);//, -SalesLine[2].\"Quantity (Base)\");\n end;\n \n+ [Test]\n+ [Scope('OnPrem')]\n+ procedure WarehousePickUpdateQuantityInOrder()\n+ var\n+ Bin: array[8] of Record Bin;\n+ CompItem, ProdItem : Record Item;\n+ Location: Record Location;\n+ ProductionOrder: Record \"Production Order\";\n+ ProductionBOMHeader: Record \"Production BOM Header\";\n+ WarehouseEmployee: Record \"Warehouse Employee\";\n+ Quantity: Decimal;\n+ UpdatedQuantity: Decimal;\n+ begin\n+ // [SCENARIO 581104] Manually change quantity of \"Take Line\" in Warehouse Pick changes the quantity of the correct \"Place Lines\"\n+ Initialize();\n+\n+ // [GIVEN] Set Quantity and UpdatedQuantity.\n+ Quantity := LibraryRandom.RandIntInRange(900, 1000);\n+ UpdatedQuantity := LibraryRandom.RandIntInRange(400, 500);\n+\n+ // [GIVEN] Reset Warehouse Employee Default Location.\n+ ResetWarehouseEmployeeDefaultLocation();\n+\n+ // [GIVEN] Create Location with WMS enabled Bin mandatory\n+ LibraryWarehouse.CreateLocationWMS(Location, true, false, true, false, false);\n+\n+ // [GIVEN] Create Warehouse Employee for Location.\n+ LibraryWarehouse.CreateWarehouseEmployee(WarehouseEmployee, Location.Code, true);\n+\n+ // [GIVEN] Create Bins for Location.\n+ CreateBin(Bin, Location.Code);\n+\n+ // [GIVEN] Set \"Prod. Consump. Whse. Handling\" = \"Warehouse Pick (mandatory)\" and assign Bins to \"To-Production Bin Code\" and \"From-Production Bin Code\".\n+ Location.Validate(\"Prod. Consump. Whse. Handling\", Location.\"Prod. Consump. Whse. Handling\"::\"Warehouse Pick (mandatory)\");\n+ Location.Validate(\"To-Production Bin Code\", Bin[1].Code);\n+ Location.Validate(\"From-Production Bin Code\", Bin[2].Code);\n+ Location.Validate(\"Open Shop Floor Bin Code\", Bin[3].Code);\n+ Location.Modify(true);\n+\n+ // [GIVEN] Create Component Item with \"Replenishment System\" = \"Purchase\" and \"Flushing Method\" = \"Manual\".\n+ LibraryInventory.CreateItem(CompItem);\n+ CompItem.Validate(\"Replenishment System\", CompItem.\"Replenishment System\"::Purchase);\n+ CompItem.Validate(\"Flushing Method\", CompItem.\"Flushing Method\"::\"Pick + Manual\");\n+ CompItem.Validate(\"Allow Whse. Overpick\", true);\n+ CompItem.Modify();\n+\n+ // [GIVEN] Create Production BOM for Component Item.\n+ LibraryInventory.CreateItem(ProdItem);\n+ ProdItem.Validate(\"Replenishment System\", ProdItem.\"Replenishment System\"::\"Prod. Order\");\n+ ProdItem.Validate(\"Manufacturing Policy\", ProdItem.\"Manufacturing Policy\"::\"Make-to-Stock\");\n+ ProdItem.Validate(\"Flushing Method\", ProdItem.\"Flushing Method\"::Manual);\n+ ProdItem.Validate(\"Production BOM No.\", LibraryManufacturing.CreateCertifiedProductionBOM(ProductionBOMHeader, CompItem.\"No.\", 1));\n+ ProdItem.Modify();\n+\n+ // [GIVEN] Create Inventory for Component Item for five different Bins.\n+ CreateInventoryWithBin(CompItem, Quantity, Location.Code, Bin[4].Code, 0);\n+ CreateInventoryWithBin(CompItem, Quantity, Location.Code, Bin[5].Code, 0);\n+ CreateInventoryWithBin(CompItem, Quantity, Location.Code, Bin[6].Code, 0);\n+ CreateInventoryWithBin(CompItem, Quantity, Location.Code, Bin[7].Code, 0);\n+ CreateInventoryWithBin(CompItem, Quantity, Location.Code, Bin[8].Code, 0);\n+\n+ // [GIVEN] Create Production Orders for Production Item of quantity Quantity * 5.\n+ LibraryManufacturing.CreateProductionOrder(\n+ ProductionOrder, ProductionOrder.Status::Released, ProductionOrder.\"Source Type\"::Item, ProdItem.\"No.\", Quantity * 5);\n+ ProductionOrder.Validate(\"Location Code\", Location.Code);\n+ ProductionOrder.Modify(true);\n+ LibraryManufacturing.RefreshProdOrder(ProductionOrder, false, true, true, true, false);\n+\n+ // [GIVEN] Create Warehouse Pick from Production Order.\n+ LibraryWarehouse.CreateWhsePickFromProduction(ProductionOrder);\n+\n+ // [WHEN] Update quantity in Warehouse Pick Lines.\n+ UpdateQuantityWarehousePickFromPage(ProductionOrder.\"No.\", Location.Code, UpdatedQuantity);\n+\n+ // [THEN] Verify that the Warehouse Activity Lines are updated correctly.\n+ VerifyWareHouseActivityLinesForQuantity(ProductionOrder.\"No.\", Location, Quantity, UpdatedQuantity);\n+ end;\n+\n local procedure Initialize()\n var\n AllProfile: Record \"All Profile\";\n@@ -4693,6 +4772,72 @@ codeunit 137065 \"SCM Reservation II\"\n asserterror ReservationEntry.FindFirst();\n end;\n \n+ local procedure ResetWarehouseEmployeeDefaultLocation()\n+ var\n+ WarehouseEmployee: Record \"Warehouse Employee\";\n+ begin\n+ WarehouseEmployee.SetRange(\"User ID\", UserId());\n+ WarehouseEmployee.SetRange(Default, true);\n+ WarehouseEmployee.ModifyAll(Default, false);\n+ end;\n+\n+ local procedure VerifyWareHouseActivityLinesForQuantity(ProductionOrderNo: Code[20]; Location: Record Location; Quantity: Decimal; UpdatedQuantity: Decimal)\n+ var\n+ WarehouseActivityLine: Record \"Warehouse Activity Line\";\n+ begin\n+ FindWarehouseActivityLine(WarehouseActivityLine, ProductionOrderNo, WarehouseActivityLine.\"Source Document\"::\"Prod. Consumption\", WarehouseActivityLine.\"Action Type\"::Place);\n+ WarehouseActivityLine.SetRange(\"Bin Code\", Location.\"To-Production Bin Code\");\n+ WarehouseActivityLine.FindFirst();\n+ Assert.IsTrue(WarehouseActivityLine.\"Qty. (Base)\" = Quantity, StrSubstNo(QuantityErr, Quantity));\n+\n+ WarehouseActivityLine.Reset();\n+ FindWarehouseActivityLine(WarehouseActivityLine, ProductionOrderNo, WarehouseActivityLine.\"Source Document\"::\"Prod. Consumption\", WarehouseActivityLine.\"Action Type\"::Place);\n+ WarehouseActivityLine.SetRange(\"Bin Code\", Location.\"To-Production Bin Code\");\n+ WarehouseActivityLine.FindLast();\n+ Assert.IsTrue(WarehouseActivityLine.\"Qty. (Base)\" = UpdatedQuantity, StrSubstNo(QuantityErr, UpdatedQuantity));\n+ end;\n+\n+ local procedure UpdateQuantityWarehousePickFromPage(ProductionOrderNo: Code[20]; LocationCode: Code[10]; Quantity: Decimal)\n+ var\n+ WarehouseActivityHeader: Record \"Warehouse Activity Header\";\n+ WarehouseActivityLine: Record \"Warehouse Activity Line\";\n+ WarehousePickPage: TestPage \"Warehouse Pick\";\n+ begin\n+ WarehouseActivityLine.SetRange(\"Source Document\", WarehouseActivityHeader.\"Source Document\"::\"Prod. Consumption\");\n+ WarehouseActivityLine.SetRange(\"Source No.\", ProductionOrderNo);\n+ WarehouseActivityLine.SetRange(\"Location Code\", LocationCode);\n+ WarehouseActivityLine.FindFirst();\n+ WarehouseActivityHeader.Get(WarehouseActivityHeader.Type::Pick, WarehouseActivityLine.\"No.\");\n+ WarehousePickPage.OpenEdit();\n+ WarehousePickPage.GoToRecord(WarehouseActivityHeader);\n+ WarehousePickPage.WhseActivityLines.Last();\n+ WarehousePickPage.WhseActivityLines.Previous();\n+ WarehousePickPage.WhseActivityLines.Quantity.SetValue(Quantity);\n+ end;\n+\n+ local procedure CreateInventoryWithBin(Item: Record Item; Quantity: Decimal; LocationCode: Code[10]; BinCode: Code[20]; UnitAmount: Decimal)\n+ var\n+ ItemJournalBatch: Record \"Item Journal Batch\";\n+ ItemJournalLine: Record \"Item Journal Line\";\n+ begin\n+ LibraryInventory.CreateItemJournalBatchByType(ItemJournalBatch, ItemJournalBatch.\"Template Type\"::Item);\n+\n+ LibraryInventory.CreateItemJournalLine(ItemJournalLine, ItemJournalBatch, Item, LocationCode, '', WorkDate(),\n+ ItemJournalLine.\"Entry Type\"::\"Positive Adjmt.\", Quantity, UnitAmount);\n+ ItemJournalLine.Validate(\"Bin Code\", BinCode);\n+ ItemJournalLine.Modify();\n+\n+ LibraryInventory.PostItemJournalBatch(ItemJournalBatch);\n+ end;\n+\n+ local procedure CreateBin(var Bin: array[8] of Record Bin; LocationCode: Code[10])\n+ var\n+ i: Integer;\n+ begin\n+ for i := 1 to arraylen(Bin) do\n+ LibraryWarehouse.CreateBin(Bin[i], LocationCode, Bin[i].Code, '', '');\n+ end;\n+\n [PageHandler]\n [Scope('OnPrem')]\n procedure ProdOrderComponentsHandler(var ProdOrderComponents: TestPage \"Prod. Order Components\")\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al\nindex 0b806569d9b4..cf1_218786_1 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al\n@@ -3102,6 +3102,7 @@ table 5767 \"Warehouse Activity Line\"\n var\n Item: Record Item;\n WhseActivityLine: Record \"Warehouse Activity Line\";\n+ QuantityUpdated: Boolean;\n begin\n if CurrFieldNo = 0 then\n exit;\n@@ -3125,10 +3126,21 @@ table 5767 \"Warehouse Activity Line\"\n Item.Get(FromWhseActivityLine.\"Item No.\");\n Item.TestField(\"Allow Whse. Overpick\");\n \n+ SetFilterFromWhseActivityLineToUpdateQty(WhseActivityLine, FromWhseActivityLine, xWhseActivityLine, QuantityUpdated);\n+ if QuantityUpdated then\n+ WhseActivityLine.Modify(true);\n+ end;\n+\n+ local procedure SetFilterFromWhseActivityLineToUpdateQty(\n+ var WhseActivityLine: Record \"Warehouse Activity Line\";\n+ FromWhseActivityLine: Record \"Warehouse Activity Line\";\n+ xWhseActivityLine: Record \"Warehouse Activity Line\";\n+ var QuantityUpdated: Boolean)\n+ begin\n WhseActivityLine.SetLoadFields(\"Activity Type\", \"No.\", \"Line No.\", \"Item No.\", \"Variant Code\", \"Location Code\", \"Action Type\", Quantity, \"Lot No.\", \"Serial No.\", \"Source No.\", \"Source Line No.\", \"Source Document\");\n WhseActivityLine.SetRange(\"Activity Type\", FromWhseActivityLine.\"Activity Type\");\n WhseActivityLine.SetRange(\"No.\", FromWhseActivityLine.\"No.\");\n- WhseActivityLine.SetFilter(\"Line No.\", '<>%1', FromWhseActivityLine.\"Line No.\");\n+ WhseActivityLine.SetFilter(\"Line No.\", '>%1', FromWhseActivityLine.\"Line No.\");\n WhseActivityLine.SetRange(\"Item No.\", FromWhseActivityLine.\"Item No.\");\n WhseActivityLine.SetRange(\"Variant Code\", FromWhseActivityLine.\"Variant Code\");\n WhseActivityLine.SetRange(\"Location Code\", FromWhseActivityLine.\"Location Code\");\n@@ -3139,11 +3151,13 @@ table 5767 \"Warehouse Activity Line\"\n WhseActivityLine.SetRange(\"Source Document\", FromWhseActivityLine.\"Source Document\");\n WhseActivityLine.SetRange(\"Source No.\", FromWhseActivityLine.\"Source No.\");\n WhseActivityLine.SetRange(\"Source Line No.\", FromWhseActivityLine.\"Source Line No.\");\n+ if WhseActivityLine.Count > 1 then\n+ WhseActivityLine.FindFirst()\n+ else\n+ WhseActivityLine.FindLast();\n \n- WhseActivityLine.FindFirst();\n-\n- WhseActivityLine.Validate(Quantity, FromWhseActivityLine.Quantity);\n- WhseActivityLine.Modify(true);\n+ WhseActivityLine.Validate(Quantity, FromWhseActivityLine.Quantity);\n+ QuantityUpdated := true;\n end;\n \n [IntegrationEvent(false, false)]\n"} +{"instance_id": "microsoftInternal__NAV-220036__cf-1", "base_instance_id": "microsoftInternal__NAV-220036", "variant_description": "The reminder email should use the customer email only if the contact email is empty (not when contact is missing)", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-220036__cf-1", "FAIL_TO_PASS": [{"codeunitID": 134905, "functionName": ["VerifyEmailOnReminderPageWhenCustomerHasNoContacts"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/ERM/ERMIssuedReminderAddnlFee.Codeunit.al b/App/Layers/W1/Tests/ERM/ERMIssuedReminderAddnlFee.Codeunit.al\nindex f8b1cf9..13bf71a 100644\n--- a/App/Layers/W1/Tests/ERM/ERMIssuedReminderAddnlFee.Codeunit.al\n+++ b/App/Layers/W1/Tests/ERM/ERMIssuedReminderAddnlFee.Codeunit.al\n@@ -587,6 +587,55 @@ codeunit 134905 \"ERM Issued Reminder Addnl Fee\"\n Assert.AreEqual(ReminderFinChargeEntry.\"Due Date\", CustLedgerEntry.\"Due Date\", ReminderDueDateErr);\n end;\n \n+ [Test]\n+ [Scope('OnPrem')]\n+ procedure VerifyEmailOnReminderPageWhenCustomerHasNoContacts()\n+ var\n+ Customer: Record Customer;\n+ ReminderLevel: Record \"Reminder Level\";\n+ ReminderText: Record \"Reminder Text\";\n+ ReminderHeader: Record \"Reminder Header\";\n+ ReminderPage: TestPage Reminder;\n+ CustomerCard: TestPage \"Customer Card\";\n+ EMail: Text[80];\n+ DueDate: Date;\n+ DocumentDate: Date;\n+ begin\n+ // [SCENARIO 581797] [ALL-E] Field Email on Reminder is empty when customer does not have any contacts\n+ Initialize();\n+\n+ // [GIVEN] Create Customer with E-Mail and Reminder Terms Code.\n+ CreateCustomer(Customer, ''); // create contact but without email\n+ Customer.Validate(\"Reminder Terms Code\", CreateReminderTerms());\n+ EMail := 'test1@test.com';\n+ Customer.Modify(true);\n+\n+ CustomerCard.OpenEdit();\n+ CustomerCard.GoToRecord(Customer);\n+ CustomerCard.\"E-Mail\".SetValue(EMail);\n+ CustomerCard.Close();\n+\n+ // [GIVEN] Create Reminder Level with Random Grace Period and Random Additional Fee.\n+ ReminderLevel.SetRange(\"Reminder Terms Code\", Customer.\"Reminder Terms Code\");\n+ ReminderLevel.FindFirst();\n+ LibraryERM.CreateReminderText(\n+ ReminderText, Customer.\"Reminder Terms Code\",\n+ ReminderLevel.\"No.\", ReminderText.Position::Ending, ReminderEndingText);\n+\n+ // [WHEN] Post Sales Invoice and Create Reminder.\n+ DueDate := CreateAndPostSalesInvoice(Customer.\"No.\", '');\n+ DocumentDate := CalcDate('<' + Format(LibraryRandom.RandInt(5)) + 'D>', CalcDate(ReminderLevel.\"Grace Period\", DueDate));\n+ CreateReminder(Customer.\"No.\", DocumentDate, false);\n+\n+ // [THEN] Find Reminder Header for Customer and open Reminder Page.\n+ FindReminderHeader(ReminderHeader, Customer.\"No.\");\n+ ReminderPage.OpenEdit();\n+ ReminderPage.GoToRecord(ReminderHeader);\n+\n+ // [THEN] Verify E-Mail on Reminder Page.\n+ ReminderPage.ContactEmail.AssertEquals(EMail);\n+ end;\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\ndiff --git a/App/Layers/W1/Tests/Misc/UTCustomerTable.Codeunit.al b/App/Layers/W1/Tests/Misc/UTCustomerTable.Codeunit.al\nindex 70b34d3..33cc300 100644\n--- a/App/Layers/W1/Tests/Misc/UTCustomerTable.Codeunit.al\n+++ b/App/Layers/W1/Tests/Misc/UTCustomerTable.Codeunit.al\n@@ -25,6 +25,7 @@ codeunit 134825 \"UT Customer Table\"\n DeleteCustomerSalesDocExistsErr: Label 'You cannot delete %1 %2 because there is at least one outstanding Sales %3 for this customer.';\n DialogErr: Label 'Dialog';\n PhoneNoCannotContainLettersErr: Label '%1 must not contain letters in %2 %3=''%4''.';\n+ ContactNoShouldNotBeEmpty: Label 'Contact No. should not be empty';\n \n [Test]\n [Scope('OnPrem')]\n@@ -740,8 +741,8 @@ codeunit 134825 \"UT Customer Table\"\n // [WHEN] Function GetPrimaryConact is being run with parameter \"CONT\"\n Customer.GetPrimaryContact(Customer.\"No.\", Contact);\n \n- // [THEN] Variable Contact is empty\n- Contact.TestField(\"No.\", '');\n+ // [THEN] Variable Contact exists without customer contact\n+ Assert.IsTrue(Contact.\"No.\" <> '', ContactNoShouldNotBeEmpty);\n end;\n \n [Test]\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al b/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\nindex 9fdc21c..0a75b46 100644\n--- a/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\n@@ -2302,7 +2302,24 @@ table 18 Customer\n begin\n Clear(PrimaryContact);\n if Customer.Get(CustomerNo) then\n- if PrimaryContact.Get(Customer.\"Primary Contact No.\") then;\n+ if not PrimaryContact.Get(Customer.\"Primary Contact No.\") then\n+ GetContact(CustomerNo, PrimaryContact);\n+ if PrimaryContact.\"E-Mail\" = '' then\n+ PrimaryContact.\"E-Mail\" := Customer.\"E-Mail\";\n+ end;\n+\n+ local procedure GetContact(CustomerNo: Code[20]; var PrimaryContact: Record Contact)\n+ var\n+ ContactBusinessRelation: Record \"Contact Business Relation\";\n+ begin\n+ ContactBusinessRelation.SetCurrentKey(\"Link to Table\", \"No.\");\n+ ContactBusinessRelation.SetRange(\"Link to Table\", ContactBusinessRelation.\"Link to Table\"::Customer);\n+ ContactBusinessRelation.SetRange(\"No.\", CustomerNo);\n+ if ContactBusinessRelation.FindSet() then\n+ repeat\n+ if PrimaryContact.Get(ContactBusinessRelation.\"Contact No.\") then\n+ exit;\n+ until ContactBusinessRelation.Next() = 0;\n end;\n \n local procedure GetCustomerPriceGroupPriceCalcMethod(): Enum \"Price Calculation Method\";\n"} +{"instance_id": "microsoftInternal__NAV-220314__cf-1", "base_instance_id": "microsoftInternal__NAV-220314", "variant_description": "Reset UOM only when Item No. is changed through validation trigger, not programmatic assignment", "failure_layer": null, "FAIL_TO_PASS": [{"codeunitID": 137275, "functionName": ["ItemReclassJournalUnitOfMeasureUpdatedWhenItemChanged"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM/SCMInventoryJournals.Codeunit.al b/App/Layers/W1/Tests/SCM/SCMInventoryJournals.Codeunit.al\nindex 436478a..4c4f1a5 100644\n--- a/App/Layers/W1/Tests/SCM/SCMInventoryJournals.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM/SCMInventoryJournals.Codeunit.al\n@@ -1800,6 +1800,54 @@ codeunit 137275 \"SCM Inventory Journals\"\n Codeunit.Run(Codeunit::\"Item Jnl.-Post Batch\", ItemJournalLine);\n end;\n \n+ [Test]\n+ [Scope('OnPrem')]\n+ procedure ItemReclassJournalUnitOfMeasureUpdatedWhenItemChanged()\n+ var\n+ Item: array[2] of Record Item;\n+ UnitOfMeasure: array[2] of Record \"Unit of Measure\";\n+ ItemUnitOfMeasure: array[2] of Record \"Item Unit of Measure\";\n+ ItemJournalTemplate: Record \"Item Journal Template\";\n+ ItemJournalBatch: Record \"Item Journal Batch\";\n+ ItemReclassJournal: TestPage \"Item Reclass. Journal\";\n+ i: Integer;\n+ begin\n+ // [SCENARIO 581983] Unit of Measure Code should be updated automatically when Item No. is changed in Item Reclassification Journal\n+ Initialize();\n+\n+ // [GIVEN] Create two items with different base unit of measure codes\n+ for i := 1 to 2 do begin\n+ LibraryInventory.CreateUnitOfMeasureCode(UnitOfMeasure[i]);\n+ LibraryInventory.CreateItem(Item[i]);\n+ LibraryInventory.CreateItemUnitOfMeasure(ItemUnitOfMeasure[i], Item[i].\"No.\", UnitOfMeasure[i].Code, 1);\n+ Item[i].Validate(\"Base Unit of Measure\", UnitOfMeasure[i].Code);\n+ Item[i].Modify(true);\n+ end;\n+\n+ // [GIVEN] Setup Item Reclassification Journal template and batch\n+ LibraryInventory.SelectItemJournalTemplateName(ItemJournalTemplate, ItemJournalTemplate.Type::Transfer);\n+ LibraryInventory.SelectItemJournalBatchName(ItemJournalBatch, ItemJournalTemplate.Type::Transfer, ItemJournalTemplate.Name);\n+ LibraryInventory.ClearItemJournal(ItemJournalTemplate, ItemJournalBatch);\n+\n+ // [WHEN] Open Item Reclassification Journal page\n+ ItemReclassJournal.OpenEdit();\n+ ItemReclassJournal.CurrentJnlBatchName.SetValue(ItemJournalBatch.Name);\n+\n+ // [WHEN] Enter first item no. and verify unit of measure is set\n+ ItemReclassJournal.\"Item No.\".SetValue(Item[1].\"No.\");\n+ ItemReclassJournal.\"Unit of Measure Code\".AssertEquals(UnitOfMeasure[1].Code);\n+\n+ // [WHEN] Change item no. to second item without validation trigger\n+ ItemReclassJournal.\"Item No.\".SetValue(Item[2].\"No.\");\n+\n+ // [THEN] Verify unit of measure code is NOT updated without validation trigger\n+ ItemReclassJournal.\"Unit of Measure Code\".AssertEquals(UnitOfMeasure[2].Code);\n+\n+ // [THEN] Verify no error occurs when changing item number\n+ // This test verifies the fix for the bug where changing Item No. with different Unit of Measure Codes caused validation errors\n+ ItemReclassJournal.Close();\n+ end;\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al b/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\nindex fb9253b..fffd780 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\n@@ -73,9 +73,10 @@ table 83 \"Item Journal Line\"\n DummyWorkCenter: Record Microsoft.Manufacturing.WorkCenter.\"Work Center\";\n #endif\n begin\n- if \"Item No.\" <> xRec.\"Item No.\" then begin\n+ if (\"Item No.\" <> xRec.\"Item No.\") and (CurrFieldNo <> 0) then begin\n \"Variant Code\" := '';\n \"Bin Code\" := '';\n+ \"Unit of Measure Code\" := '';\n if CurrFieldNo <> 0 then begin\n GetItem();\n if Item.IsInventoriableType() then\n"} +{"instance_id": "microsoftInternal__NAV-220984__cf-1", "base_instance_id": "microsoftInternal__NAV-220984", "variant_description": "Date condition: only set Ending Date when Starting Date is not WORKDATE", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-220984__cf-1", "FAIL_TO_PASS": [{"codeunitID": 137404, "functionName": ["ExchangeProductionBOMItemShouldSetEndingDate"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM-Manufacturing/SCMManufacturing.Codeunit.al b/App/Layers/W1/Tests/SCM-Manufacturing/SCMManufacturing.Codeunit.al\nindex f654552..d7cc1fc 100644\n--- a/App/Layers/W1/Tests/SCM-Manufacturing/SCMManufacturing.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM-Manufacturing/SCMManufacturing.Codeunit.al\n@@ -4829,6 +4829,54 @@ codeunit 137404 \"SCM Manufacturing\"\n Assert.AreEqual(StandardTask.Code, ProdOrderLine.\"Standard Task Code\", StandardTaskFieldErr);\n end;\n \n+ [Test]\n+ [HandlerFunctions('RunExchangeProdBOMItemReportWithStartDateParameter')]\n+ procedure ExchangeProductionBOMItemShouldSetEndingDate()\n+ var\n+ Item: array[5] of Record Item;\n+ MainItem: Record Item;\n+ ProductionBOMHeader: Record \"Production BOM Header\";\n+ ProductionBOMLine: Record \"Production BOM Line\";\n+ i: Integer;\n+ begin\n+ // [SCENARIO 592157] Replacing a component in a Production BOM should set the Ending Date of the replaced component.\n+ Initialize();\n+\n+ LibraryInventory.CreateItem(MainItem);\n+ MainItem.Validate(\"Replenishment System\", MainItem.\"Replenishment System\"::\"Prod. Order\");\n+ MainItem.Modify(true);\n+\n+ // [GIVEN] Create a Production BOM Header\n+ LibraryManufacturing.CreateProductionBOMHeader(ProductionBOMHeader, MainItem.\"Base Unit of Measure\");\n+\n+ // [GIVEN] Create Items\n+ for i := 1 to 5 do\n+ LibraryInventory.CreateItem(Item[i]);\n+\n+ // [GIVEN] Add only Items[1..4] to the BOM\n+ for i := 1 to 4 do\n+ LibraryManufacturing.CreateProductionBOMLine(\n+ ProductionBOMHeader, ProductionBOMLine, '', ProductionBOMLine.Type::Item, Item[i].\"No.\", LibraryRandom.RandIntInRange(10, 20));\n+\n+ // [GIVEN] Certify BOM and assign to Main Item\n+ ModifyStatusInProductionBOM(ProductionBOMHeader, ProductionBOMHeader.Status::Certified);\n+ MainItem.Validate(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n+ MainItem.Modify(true);\n+\n+ // [GIVEN] Enqueue parameter values for report\n+ EnqueueExchProdBOMItemReportParameter(Item[1].\"No.\", Item[5].\"No.\", WorkDate() + 5);\n+\n+ // [WHEN] Run the Exchange Production BOM Item report\n+ RunExchangeProductionBOMItemReport();\n+\n+ // [THEN] Validate that the replaced item has Ending Date set to StartingDate - 1 (CF only modifies when StartingDate <> WorkDate())\n+ ValidateEndingDateSet(ProductionBOMHeader.\"No.\", Item[1].\"No.\", WorkDate() + 5);\n+\n+ // [AND] Ensure no test artifacts are left behind\n+ LibraryVariableStorage.AssertEmpty();\n+ end;\n+\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n@@ -7704,6 +7752,23 @@ codeunit 137404 \"SCM Manufacturing\"\n standardTask.Modify(true);\n end;\n \n+ local procedure EnqueueExchProdBOMItemReportParameter(ExchangeItemNo: Code[20]; ReplaceItemNo: Code[20]; StartDate: Date)\n+ begin\n+ LibraryVariableStorage.Enqueue(ExchangeItemNo);\n+ LibraryVariableStorage.Enqueue(ReplaceItemNo);\n+ LibraryVariableStorage.Enqueue(StartDate);\n+ end;\n+\n+ local procedure ValidateEndingDateSet(ProdBOMHeaderNo: Code[20]; ItemNo: Code[20]; StartingDate: Date)\n+ var\n+ ProductionBOMLine: Record \"Production BOM Line\";\n+ begin\n+ ProductionBOMLine.SetRange(\"Production BOM No.\", ProdBOMHeaderNo);\n+ ProductionBOMLine.SetRange(\"No.\", ItemNo);\n+ ProductionBOMLine.FindFirst();\n+ Assert.AreEqual(StartingDate - 1, ProductionBOMLine.\"Ending Date\", 'Ending Date is not correctly set on the Production BOM line.')\n+ end;\n+\n [ModalPageHandler]\n [Scope('OnPrem')]\n procedure ProdBOMVersionComparisonHandlerForActionSet(var ProdBOMVersionComparison: TestPage \"Prod. BOM Version Comparison\")\n@@ -7793,5 +7858,28 @@ codeunit 137404 \"SCM Manufacturing\"\n ExchangeProductionBOMItem.WithType.AssertEquals(ProductionBOMLineType::Item);// [THEN] Verify WithType Default Type is ITEM\n ExchangeProductionBOMItem.OK().Invoke();\n end;\n+\n+ [RequestPageHandler]\n+ procedure RunExchangeProdBOMItemReportWithStartDateParameter(var ExchangeProductionBOMItem: TestRequestPage \"Exchange Production BOM Item\")\n+ var\n+ FromProductionBOMLineType: Enum \"Production BOM Line Type\";\n+ ExchangeItemNo: Variant;\n+ ReplaceItemNo: Variant;\n+ StartDate: Variant;\n+ begin\n+ ExchangeItemNo := LibraryVariableStorage.DequeueText();\n+ ReplaceItemNo := LibraryVariableStorage.DequeueText();\n+ StartDate := LibraryVariableStorage.DequeueDate();\n+ ExchangeProductionBOMItem.ExchangeType.SetValue(FromProductionBOMLineType::Item);\n+ ExchangeProductionBOMItem.ExchangeNo.SetValue(ExchangeItemNo);\n+ ExchangeProductionBOMItem.WithType.SetValue(FromProductionBOMLineType::Item);\n+ ExchangeProductionBOMItem.WithNo.SetValue(ReplaceItemNo);\n+ ExchangeProductionBOMItem.\"Create New Version\".SetValue(false);\n+ ExchangeProductionBOMItem.\"Delete Exchanged Component\".SetValue(false);\n+ ExchangeProductionBOMItem.Recertify.SetValue(true);\n+ ExchangeProductionBOMItem.CopyRoutingLink.SetValue(true);\n+ ExchangeProductionBOMItem.StartingDate.SetValue(StartDate);\n+ ExchangeProductionBOMItem.OK().Invoke();\n+ end;\n }\n \n", "patch": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al\nindex 83bf3f0..3a6e33d 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al\n@@ -157,7 +157,7 @@ report 99001043 \"Exchange Production BOM Item\"\n CopyPositionFields(ProductionBOMLine2, ProductionBOMLine3);\n ShouldModifyProductionBOMLine := true;\n OnIntegerOnPostDataItemOnBeforeModifyProductionBOMLine(ProductionBOMLine, ShouldModifyProductionBOMLine);\n- if not ShouldModifyProductionBOMLine then begin\n+ if ShouldModifyProductionBOMLine and (StartingDate <> WorkDate()) then begin\n ProductionBOMLine.\"Ending Date\" := StartingDate - 1;\n ProductionBOMLine.Modify();\n end;\n"} +{"instance_id": "microsoftInternal__NAV-221877__cf-1", "base_instance_id": "microsoftInternal__NAV-221877", "variant_description": "The service header status should update only after the service item line is committed (Modify)", "failure_layer": null, "FAIL_TO_PASS": [{"codeunitID": 136101, "functionName": ["AutoUpdateServiceHeaderStatusOnServiceItemLineAdd"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM-Service/ServiceOrders.Codeunit.al b/App/Layers/W1/Tests/SCM-Service/ServiceOrders.Codeunit.al\nindex 5a74dfc..369a095 100644\n--- a/App/Layers/W1/Tests/SCM-Service/ServiceOrders.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM-Service/ServiceOrders.Codeunit.al\n@@ -122,6 +122,7 @@ codeunit 136101 \"Service Orders\"\n AvailableExpectedQuantityErr: Label 'Available expected quantity must be %1.', Comment = '%1=Value';\n VATCountryRegionLbl: Label 'VAT Country/Region Code must be %1', Comment = '%1 = Country/Region Code';\n ServiceOrderErr: Label 'Service Order does not exist.';\n+ ServiceOrderStatusShouldChangedErr: Label 'Service Header Status should have changed when adding Service Item';\n \n [Test]\n [Scope('OnPrem')]\n@@ -5688,6 +5689,54 @@ codeunit 136101 \"Service Orders\"\n ServiceStatistics.SubForm.\"Amount Including VAT\".AssertEquals(0);\n end;\n \n+ [Test]\n+ [Scope('OnPrem')]\n+ procedure AutoUpdateServiceHeaderStatusOnServiceItemLineAdd()\n+ var\n+ ServiceHeader: Record \"Service Header\";\n+ ServiceItem: Record \"Service Item\";\n+ Customer: Record Customer;\n+ ServiceOrderPage: TestPage \"Service Order\";\n+ InitialStatus: Enum \"Service Document Status\";\n+ FinalStatus: Enum \"Service Document Status\";\n+ begin\n+ // [SCENARIO 582114] Test that Service Header Status changes after commit when adding Service Item to Finished Service Order\n+\n+ // [GIVEN] Initialize and create test data\n+ Initialize();\n+ LibrarySales.CreateCustomer(Customer);\n+ LibraryService.CreateServiceItem(ServiceItem, Customer.\"No.\");\n+\n+ // [GIVEN] Create a Service Order and set status to Finished\n+ LibraryService.CreateServiceHeader(ServiceHeader, ServiceHeader.\"Document Type\"::Order, Customer.\"No.\");\n+ ServiceHeader.Validate(Status, ServiceHeader.Status::Finished);\n+ ServiceHeader.Modify(true);\n+ InitialStatus := ServiceHeader.Status;\n+\n+ // [WHEN] Open Service Order page and add Service Item Line\n+ ServiceOrderPage.OpenEdit();\n+ ServiceOrderPage.Filter.SetFilter(\"No.\", ServiceHeader.\"No.\");\n+\n+ // [THEN] Verify initial status is Finished\n+ ServiceOrderPage.Status.AssertEquals(ServiceHeader.Status::Finished);\n+\n+ // [GIVEN] Add Service Item to the Service Item Lines subform\n+ ServiceOrderPage.ServItemLines.New();\n+ ServiceOrderPage.ServItemLines.ServiceItemNo.SetValue(ServiceItem.\"No.\");\n+ ServiceOrderPage.ServItemLines.Next(); // Move focus\n+\n+ // [THEN] Verify that Service Header Status has changed automatically\n+ ServiceOrderPage.Status.AssertEquals(ServiceHeader.Status::Pending); // Expected new status based on repair status priority\n+\n+ // [THEN] Verify the change was logged in Service Document Log\n+ ServiceHeader.Get(ServiceHeader.\"Document Type\", ServiceHeader.\"No.\");\n+ FinalStatus := ServiceHeader.Status;\n+\n+ // [THEN] Verify status actually changed\n+ Assert.AreNotEqual(InitialStatus, FinalStatus, ServiceOrderStatusShouldChangedErr);\n+ ServiceOrderPage.Close();\n+ end;\n+\n local procedure CreateServiceDocumentWithResourceWith100PctDisc(\n var ServiceHeader: Record \"Service Header\"; ServiceLine: Record \"Service Line\"; DocumentType: Enum \"Service Document Type\";\n CustomerNo: Code[20]; ResourceNo: Code[20]; Quantity: Decimal; UnitPrice: Decimal)\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al b/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al\nindex 1c8fcc9..60fc813 100644\n--- a/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al\n@@ -201,6 +201,10 @@ table 5901 \"Service Item Line\"\n UseServItemLineAsxRec := true;\n Modify(true);\n end;\n+\n+ if Rec.\"Repair Status Code\" <> '' then\n+ Rec.Validate(\"Repair Status Code\", Rec.\"Repair Status Code\");\n+\n OnAfterValidateServiceItemNoOnBeforeUpdateResponseTimeHours(Rec, xRec);\n UpdateResponseTimeHours();\n CreateDimFromDefaultDim(0);\n"} +{"instance_id": "microsoftInternal__NAV-222092__cf-1", "base_instance_id": "microsoftInternal__NAV-222092", "variant_description": "Reminder Header dimensions should override only Global Dimension 1, not Global Dimension 2", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-222092__cf-2", "FAIL_TO_PASS": [{"codeunitID": 134904, "functionName": ["DimensionsInGeneralLedgerEntriesWhenDimensionsModifiedInReminderBeforeIssuing"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/ERM/ERMReminderForAdditinalFee.Codeunit.al b/App/Layers/W1/Tests/ERM/ERMReminderForAdditinalFee.Codeunit.al\nindex 47f98ea..dd8d950 100644\n--- a/App/Layers/W1/Tests/ERM/ERMReminderForAdditinalFee.Codeunit.al\n+++ b/App/Layers/W1/Tests/ERM/ERMReminderForAdditinalFee.Codeunit.al\n@@ -324,6 +324,87 @@ codeunit 134904 \"ERM Reminder For Additinal Fee\"\n Assert.AreEqual(Dim2CodeValue, ShortcutDimCode[2], StrSubstNo(DimensionValueErr, Dim2CodeValue));\n end;\n \n+ [Test]\n+ procedure DimensionsInGeneralLedgerEntriesWhenDimensionsModifiedInReminderBeforeIssuing();\n+ var\n+ Customer: Record Customer;\n+ CustomerPostingGroup: Record \"Customer Posting Group\";\n+ DefaultDimension: array[2] of Record \"Default Dimension\";\n+ DimensionValue: Record \"Dimension Value\";\n+ GLAccount: Record \"G/L Account\";\n+ GLEntry: Record \"G/L Entry\";\n+ ReminderHeader: Record \"Reminder Header\";\n+ ReminderLevel: Record \"Reminder Level\";\n+ ReminderTerms: Record \"Reminder Terms\";\n+ SalesHeader: Record \"Sales Header\";\n+ GetShortcutDimValues: Codeunit \"Get Shortcut Dimension Values\";\n+ Dim1CodeValue: array[2] of Code[20];\n+ Dim2CodeValue: Code[20];\n+ IssuedReminderNo: Code[20];\n+ ShortcutDimCode: array[8] of Code[20];\n+ begin\n+ // [SCENARIO 590674] Dimensions assigned to General Ledger Entries when the Dimensions are modified in the Reminder before issuing it.\n+ Initialize();\n+\n+ // [GIVEN] Create two Dimension Values for Global Dimension 1 Code.\n+ Dim1CodeValue[1] := LibraryUtility.GenerateGUID();\n+ Dim1CodeValue[2] := Dim1CodeValue[1] + '1';\n+ LibraryDimension.CreateDimensionValueWithCode(DimensionValue, Dim1CodeValue[1], LibraryERM.GetGlobalDimensionCode(1));\n+ LibraryDimension.CreateDimensionValueWithCode(DimensionValue, Dim1CodeValue[2], LibraryERM.GetGlobalDimensionCode(1));\n+\n+ // [GIVEN] Create Dimension Value for Global Dimension 2 Code and assign it.\n+ Dim2CodeValue := LibraryUtility.GenerateGUID();\n+ LibraryDimension.CreateDimensionValueWithCode(DimensionValue, Dim2CodeValue, LibraryERM.GetGlobalDimensionCode(2));\n+\n+ // [GIVEN] Create Reminder Terms with Post Additional Fee = True.\n+ CreateReminderTerms(ReminderLevel, '');\n+ ReminderTerms.Get(ReminderLevel.\"Reminder Terms Code\");\n+ ReminderTerms.\"Post Additional Fee\" := true;\n+ ReminderTerms.Modify(true);\n+\n+ // [GIVEN] Create Customer with Reminder Terms and Customer Posting Group.\n+ Customer.Get(CreateCustomer(ReminderLevel.\"Reminder Terms Code\", ''));\n+ LibrarySales.CreateCustomerPostingGroup(CustomerPostingGroup);\n+\n+ // [GIVEN] Create Default Dimension for Customer with global Dimension 1 Code.\n+ LibraryDimension.CreateDefaultDimensionWithNewDimValue(\n+ DefaultDimension[1], DATABASE::Customer, Customer.\"No.\",\n+ DefaultDimension[1].\"Value Posting\"::\"Code Mandatory\");\n+\n+ // [GIVEN] Find GL Account for Additional Fee Account and assign Global Dimension 1 Code and Global Dimension 2 Code.\n+ GLAccount.Get(CustomerPostingGroup.\"Additional Fee Account\");\n+ GLAccount.ValidateShortcutDimCode(1, Dim1CodeValue[1]);\n+ GLAccount.ValidateShortcutDimCode(2, Dim2CodeValue);\n+ GLAccount.Modify(true);\n+\n+ // [GIVEN] Validate Customer Posting Group in Customer.\n+ Customer.Validate(\"Customer Posting Group\", CustomerPostingGroup.Code);\n+ Customer.Modify(true);\n+\n+ // [GIVEN] Posted Sales Invoice and Run Suggested Reminder with Additional Fee line.\n+ CreateAndPostSalesInvoice(SalesHeader, Customer.\"No.\");\n+ ReminderHeader.Get(\n+ CreateAndSuggestReminder(\n+ SalesHeader.\"Sell-to Customer No.\",\n+ CalcDate('<1D>', CalcDate(ReminderLevel.\"Grace Period\", SalesHeader.\"Due Date\"))));\n+ ReminderHeader.Validate(\"Shortcut Dimension 1 Code\", Dim1CodeValue[2]);\n+ ReminderHeader.Modify(true);\n+\n+ // [WHEN] Reminder is issued\n+ IssuedReminderNo := IssueReminderAndGetIssuedNo(ReminderHeader.\"No.\");\n+\n+ // [THEN] Find G/L Entry for Reminder with GL Account.\n+ GLEntry.SetRange(\"Document Type\", GLEntry.\"Document Type\"::Reminder);\n+ GLEntry.SetRange(\"Document No.\", IssuedReminderNo);\n+ GLEntry.SetRange(\"G/L Account No.\", GLAccount.\"No.\");\n+ GLEntry.FindFirst();\n+\n+ // [THEN] G/L Entry contains Global Dimension 1 Code as updated in Reminder Header.\n+ GetShortcutDimValues.GetShortcutDimensions(GLEntry.\"Dimension Set ID\", ShortcutDimCode);\n+ Assert.AreEqual(Dim1CodeValue[2], ShortcutDimCode[1], StrSubstNo(DimensionValueErr, Dim1CodeValue[2]));\n+ Assert.AreEqual(Dim2CodeValue, ShortcutDimCode[2], StrSubstNo(DimensionValueErr, Dim2CodeValue));\n+ end;\n+\n [Scope('OnPrem')]\n procedure InterestAmountWithBeginningText()\n var\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\nindex 825eb23..9ff5910 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n@@ -270,8 +270,8 @@ codeunit 393 \"Reminder-Issue\"\n begin\n GenJnlLine2.\"Shortcut Dimension 1 Code\" := GlobalReminderHeader.\"Shortcut Dimension 1 Code\";\n GenJnlLine2.\"Shortcut Dimension 2 Code\" := GlobalReminderHeader.\"Shortcut Dimension 2 Code\";\n- DimSetIDArr[1] := GlobalReminderHeader.\"Dimension Set ID\";\n- DimSetIDArr[2] := TempGenJnlLine.\"Dimension Set ID\";\n+ DimSetIDArr[1] := TempGenJnlLine.\"Dimension Set ID\";\n+ DimSetIDArr[2] := GlobalReminderHeader.\"Dimension Set ID\";\n GenJnlLine2.\"Dimension Set ID\" :=\n DimMgt.GetCombinedDimensionSetID(\n DimSetIDArr, GenJnlLine2.\"Shortcut Dimension 1 Code\", GenJnlLine2.\"Shortcut Dimension 2 Code\");\n"} +{"instance_id": "microsoftInternal__NAV-222092__cf-2", "base_instance_id": "microsoftInternal__NAV-222092", "variant_description": "Reminder Header dimensions should apply only to additional fee entries, not all entries", "failure_layer": null, "FAIL_TO_PASS": [{"codeunitID": 134904, "functionName": ["DimensionsInGeneralLedgerEntriesWhenDimensionsModifiedInReminderBeforeIssuing"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/ERM/ERMReminderForAdditinalFee.Codeunit.al b/App/Layers/W1/Tests/ERM/ERMReminderForAdditinalFee.Codeunit.al\nindex 47f98ea..f787e3b 100644\n--- a/App/Layers/W1/Tests/ERM/ERMReminderForAdditinalFee.Codeunit.al\n+++ b/App/Layers/W1/Tests/ERM/ERMReminderForAdditinalFee.Codeunit.al\n@@ -324,6 +324,86 @@ codeunit 134904 \"ERM Reminder For Additinal Fee\"\n Assert.AreEqual(Dim2CodeValue, ShortcutDimCode[2], StrSubstNo(DimensionValueErr, Dim2CodeValue));\n end;\n \n+ [Test]\n+ procedure DimensionsInGeneralLedgerEntriesWhenDimensionsModifiedInReminderBeforeIssuing();\n+ var\n+ Customer: Record Customer;\n+ CustomerPostingGroup: Record \"Customer Posting Group\";\n+ DefaultDimension: array[2] of Record \"Default Dimension\";\n+ DimensionValue: Record \"Dimension Value\";\n+ GLAccount: Record \"G/L Account\";\n+ GLEntry: Record \"G/L Entry\";\n+ ReminderHeader: Record \"Reminder Header\";\n+ ReminderLevel: Record \"Reminder Level\";\n+ ReminderTerms: Record \"Reminder Terms\";\n+ SalesHeader: Record \"Sales Header\";\n+ GetShortcutDimValues: Codeunit \"Get Shortcut Dimension Values\";\n+ Dim1CodeValue: array[2] of Code[20];\n+ Dim2CodeValue: Code[20];\n+ IssuedReminderNo: Code[20];\n+ ShortcutDimCode: array[8] of Code[20];\n+ begin\n+ // [SCENARIO 590674] Dimensions assigned to General Ledger Entries when the Dimensions are modified in the Reminder before issuing it.\n+ Initialize();\n+\n+ // [GIVEN] Create two Dimension Values for Global Dimension 1 Code.\n+ Dim1CodeValue[1] := LibraryUtility.GenerateGUID();\n+ Dim1CodeValue[2] := Dim1CodeValue[1] + '1';\n+ LibraryDimension.CreateDimensionValueWithCode(DimensionValue, Dim1CodeValue[1], LibraryERM.GetGlobalDimensionCode(1));\n+ LibraryDimension.CreateDimensionValueWithCode(DimensionValue, Dim1CodeValue[2], LibraryERM.GetGlobalDimensionCode(1));\n+\n+ // [GIVEN] Create Dimension Value for Global Dimension 2 Code and assign it.\n+ Dim2CodeValue := LibraryUtility.GenerateGUID();\n+ LibraryDimension.CreateDimensionValueWithCode(DimensionValue, Dim2CodeValue, LibraryERM.GetGlobalDimensionCode(2));\n+\n+ // [GIVEN] Create Reminder Terms with Post Additional Fee = True.\n+ CreateReminderTerms(ReminderLevel, '');\n+ ReminderTerms.Get(ReminderLevel.\"Reminder Terms Code\");\n+ ReminderTerms.\"Post Additional Fee\" := true;\n+ ReminderTerms.Modify(true);\n+\n+ // [GIVEN] Create Customer with Reminder Terms and Customer Posting Group.\n+ Customer.Get(CreateCustomer(ReminderLevel.\"Reminder Terms Code\", ''));\n+ LibrarySales.CreateCustomerPostingGroup(CustomerPostingGroup);\n+\n+ // [GIVEN] Create Default Dimension for Customer with global Dimension 1 Code.\n+ LibraryDimension.CreateDefaultDimensionWithNewDimValue(\n+ DefaultDimension[1], DATABASE::Customer, Customer.\"No.\",\n+ DefaultDimension[1].\"Value Posting\"::\"Code Mandatory\");\n+\n+ // [GIVEN] Find GL Account for Additional Fee Account and assign Global Dimension 1 Code and Global Dimension 2 Code.\n+ GLAccount.Get(CustomerPostingGroup.\"Additional Fee Account\");\n+ GLAccount.ValidateShortcutDimCode(1, Dim1CodeValue[1]);\n+ GLAccount.ValidateShortcutDimCode(2, Dim2CodeValue);\n+ GLAccount.Modify(true);\n+\n+ // [GIVEN] Validate Customer Posting Group in Customer.\n+ Customer.Validate(\"Customer Posting Group\", CustomerPostingGroup.Code);\n+ Customer.Modify(true);\n+\n+ // [GIVEN] Posted Sales Invoice and Run Suggested Reminder with Additional Fee line.\n+ CreateAndPostSalesInvoice(SalesHeader, Customer.\"No.\");\n+ ReminderHeader.Get(\n+ CreateAndSuggestReminder(\n+ SalesHeader.\"Sell-to Customer No.\",\n+ CalcDate('<1D>', CalcDate(ReminderLevel.\"Grace Period\", SalesHeader.\"Due Date\"))));\n+ ReminderHeader.Validate(\"Shortcut Dimension 1 Code\", Dim1CodeValue[2]);\n+ ReminderHeader.Modify(true);\n+\n+ // [WHEN] Reminder is issued\n+ IssuedReminderNo := IssueReminderAndGetIssuedNo(ReminderHeader.\"No.\");\n+\n+ // [THEN] Find G/L Entry for Reminder with GL Account.\n+ GLEntry.SetRange(\"Document Type\", GLEntry.\"Document Type\"::Reminder);\n+ GLEntry.SetRange(\"Document No.\", IssuedReminderNo);\n+ GLEntry.SetRange(\"G/L Account No.\", GLAccount.\"No.\");\n+ GLEntry.FindFirst();\n+\n+ // [THEN] G/L Entry contains Global Dimension 1 Code as updated in Reminder Header.\n+ GetShortcutDimValues.GetShortcutDimensions(GLEntry.\"Dimension Set ID\", ShortcutDimCode);\n+ Assert.AreEqual(Dim1CodeValue[2], ShortcutDimCode[1], StrSubstNo(DimensionValueErr, Dim1CodeValue[2]));\n+ end;\n+\n [Scope('OnPrem')]\n procedure InterestAmountWithBeginningText()\n var\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\nindex 825eb23..7eaaced 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n@@ -270,8 +270,9 @@ codeunit 393 \"Reminder-Issue\"\n begin\n GenJnlLine2.\"Shortcut Dimension 1 Code\" := GlobalReminderHeader.\"Shortcut Dimension 1 Code\";\n GenJnlLine2.\"Shortcut Dimension 2 Code\" := GlobalReminderHeader.\"Shortcut Dimension 2 Code\";\n- DimSetIDArr[1] := GlobalReminderHeader.\"Dimension Set ID\";\n- DimSetIDArr[2] := TempGenJnlLine.\"Dimension Set ID\";\n+ DimSetIDArr[1] := TempGenJnlLine.\"Dimension Set ID\";\n+ if GenJnlLine2.\"Account Type\" = GenJnlLine2.\"Account Type\"::\"G/L Account\" then\n+ DimSetIDArr[2] := GlobalReminderHeader.\"Dimension Set ID\";\n GenJnlLine2.\"Dimension Set ID\" :=\n DimMgt.GetCombinedDimensionSetID(\n DimSetIDArr, GenJnlLine2.\"Shortcut Dimension 1 Code\", GenJnlLine2.\"Shortcut Dimension 2 Code\");\n"} +{"instance_id": "microsoftInternal__NAV-222484__cf-1", "base_instance_id": "microsoftInternal__NAV-222484", "variant_description": "Non-specific reservation cleanup applies only when the location is configured to pick according to FEFO.", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-222484__cf-1", "FAIL_TO_PASS": [{"codeunitID": 137260, "functionName": ["RegisterPickWithNoErrorForFEFOLocation"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM/SCMInventoryItemTracking.Codeunit.al b/App/Layers/W1/Tests/SCM/SCMInventoryItemTracking.Codeunit.al\nindex df8ad3b..5cb9911 100644\n--- a/App/Layers/W1/Tests/SCM/SCMInventoryItemTracking.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM/SCMInventoryItemTracking.Codeunit.al\n@@ -47,6 +47,7 @@ codeunit 137260 \"SCM Inventory Item Tracking\"\n JournalPostedMsg: Label 'The journal lines were successfully posted.';\n CouldNotRegisterWhseActivityErr: Label 'Could not register Warehouse Activity.';\n OrderToOrderBindingOnSalesLineQst: Label 'Registering the pick will remove the existing order-to-order reservation for the sales order.\\Do you want to continue?';\n+ ILELotNotMatchedErr: Label 'Item Ledger Entry Lot No. %1 should be equal to the first lot with FEFO.', Comment = '%1 - Lot No.';\n \n [Test]\n [HandlerFunctions('WhseItemTrackingLinesPageHandler,RegisterWhseMessageHandler,ConfirmHandler')]\n@@ -2080,6 +2081,77 @@ codeunit 137260 \"SCM Inventory Item Tracking\"\n Assert.ExpectedError(StrSubstNo(CannotMatchItemTrackingErr, SalesLine.\"Document No.\", SalesLine.\"Line No.\", SalesLine.\"No.\", SalesLine.Description));\n end;\n \n+ [Test]\n+ [HandlerFunctions('ItemTrackingLinesPageHandler,ReservationFromCurrentLineHandler')]\n+ [Scope('OnPrem')]\n+ procedure RegisterPickWithNoErrorForFEFOLocation()\n+ var\n+ Location: Record Location;\n+ Bin: Record Bin;\n+ Item: Record Item;\n+ ItemJournalLine: Record \"Item Journal Line\";\n+ ItemJournalBatch: Record \"Item Journal Batch\";\n+ ItemLedgerEntry: Record \"Item Ledger Entry\";\n+ SalesHeader: array[2] of Record \"Sales Header\";\n+ WarehouseShipmentHeader: Record \"Warehouse Shipment Header\";\n+ WarehouseActivityHeader: Record \"Warehouse Activity Header\";\n+ WarehouseActivityLine: Record \"Warehouse Activity Line\";\n+ ExpirationDate: Date;\n+ ShipmentBinCode: Code[20];\n+ LotNo: array[2] of Code[10];\n+ begin\n+\n+ // [SCENARIO 572962] No Error when Lot No. LOT0001 is available on inventory, when trying to register pick for item with reservation and item tracking with location set up FEFO\n+ Initialize();\n+\n+ // [GIVEN] Set up Expiration Date for the Lot No.\n+ ExpirationDate := CalcDate('<' + Format(LibraryRandom.RandInt(5)) + 'D>', WorkDate());\n+\n+ // [GIVEN] Create Location with pick according to FEFO.\n+ CreateLocationWithPostingSetupAndPickAccordingTOFEFO(Location, ShipmentBinCode);\n+\n+ // [GIVEN] Item with Lot No. tracking.\n+ LibraryInventory.CreateTrackedItem(Item, '', '', CreateItemTrackingCode(false, true, true, false, true));\n+\n+ // [GIVEN] Positive adjustment with Lot = \"X\" and ExpirationDate = D1 , Lot = \"Y\" and ExpirationDate = D2 and D2 > D1.\n+ LibraryWarehouse.CreateBin(Bin, Location.Code, LibraryUtility.GenerateGUID(), '', '');\n+ SelectItemJournalAndPostItemJournalLine(\n+ LotNo[1], Bin.Code, '', Item.\"No.\", Location.Code, '', 1, ExpirationDate,\n+ ItemJournalBatch.\"Template Type\"::Item, ItemJournalLine.\"Entry Type\"::\"Positive Adjmt.\", false);\n+ SelectItemJournalAndPostItemJournalLine(\n+ LotNo[2], Bin.Code, '', Item.\"No.\", Location.Code, '', 1,\n+ CalcDate('<' + Format(LibraryRandom.RandInt(5)) + 'D>', ExpirationDate),\n+ ItemJournalBatch.\"Template Type\"::Item, ItemJournalLine.\"Entry Type\"::\"Positive Adjmt.\", false);\n+\n+ // [GIVEN] Create Sales order and reserve the first Lot No. \"LOT0001\" with Expiration Date = D1.\n+ CreateSOAndTrackInventory(SalesHeader[1], Item.\"No.\", Location.Code, 1);\n+\n+ // Create seconf sales order and reserve the second Lot No. \"LOT0002\" with Expiration Date = D2.\n+ CreateSOAndTrackInventory(SalesHeader[2], Item.\"No.\", Location.Code, 1);\n+\n+ // [GIVEN] Create Warehouse Shipment from Sales Order second.\n+ CreateWhseShipmentFromSO(WarehouseShipmentHeader, SalesHeader[2]);\n+\n+ // [WHEN] CreatePick From Warehouse Shipment.\n+ LibraryWarehouse.CreatePick(WarehouseShipmentHeader);\n+\n+ // [WHEN] Register Pick should not fail with error \"Lot No. is not available on inventory\" for the first Lot No. \"LOT0001\" with Expiration Date = D1.\n+ WarehouseActivityLine.SetRange(\"Item No.\", Item.\"No.\");\n+ WarehouseActivityLine.SetRange(\"Action Type\", WarehouseActivityLine.\"Action Type\"::Take);\n+ WarehouseActivityLine.FindFirst();\n+ WarehouseActivityHeader.Get(WarehouseActivityLine.\"Activity Type\", WarehouseActivityLine.\"No.\");\n+ LibraryWarehouse.RegisterWhseActivity(WarehouseActivityHeader);\n+\n+ // [WHEN] Post Warehouse Shipment.\n+ LibraryWarehouse.PostWhseShipment(WarehouseShipmentHeader, false);\n+\n+ // [THEN] Item Ledger Entry for the first Lot No. \"LOT0001\" with Expiration Date = D1 should be created.\n+ ItemLedgerEntry.SetRange(\"Entry Type\", ItemLedgerEntry.\"Entry Type\"::Sale);\n+ ItemLedgerEntry.SetRange(\"Item No.\", Item.\"No.\");\n+ ItemLedgerEntry.FindFirst();\n+ Assert.AreEqual(LotNo[1], ItemLedgerEntry.\"Lot No.\", StrSubstNo(ILELotNotMatchedErr, LotNo[1]));\n+ end;\n+\n local procedure Initialize()\n var\n InventorySetup: Record \"Inventory Setup\";\n@@ -3485,6 +3557,19 @@ codeunit 137260 \"SCM Inventory Item Tracking\"\n LibrarySales.UndoSalesShipmentLine(SalesShipmentLine);\n end;\n \n+ local procedure CreateSOAndTrackInventory(var SalesHeader: Record \"Sales Header\"; ItemNo: Code[20]; LocationCode: Code[10]; Quantity: Decimal)\n+ var\n+ SalesLine: Record \"Sales Line\";\n+ begin\n+ LibrarySales.CreateSalesHeader(SalesHeader, SalesHeader.\"Document Type\"::Order, LibrarySales.CreateCustomerNo());\n+ LibrarySales.CreateSalesLine(SalesLine, SalesHeader, SalesLine.Type::Item, ItemNo, Quantity);\n+ SalesLine.Validate(\"Location Code\", LocationCode);\n+ LibraryVariableStorage.Enqueue(SalesLine.Quantity);\n+ SalesLine.Modify(true);\n+ SalesLine.ShowReservation();\n+ LibrarySales.ReleaseSalesDocument(SalesHeader);\n+ end;\n+\n [ConfirmHandler]\n [Scope('OnPrem')]\n procedure ConfirmHandler(ConfirmMessage: Text[1024]; var Reply: Boolean)\n@@ -3687,6 +3772,14 @@ codeunit 137260 \"SCM Inventory Item Tracking\"\n ProductionJournal.Post.Invoke();\n end;\n \n+ [ModalPageHandler]\n+ [Scope('OnPrem')]\n+ procedure ReservationFromCurrentLineHandler(var Reservation: TestPage Reservation)\n+ begin\n+ Reservation.\"Reserve from Current Line\".Invoke();\n+ Reservation.OK().Invoke();\n+ end;\n+\n local procedure AssignLotNos(var ItemTrackingLines: TestPage \"Item Tracking Lines\")\n var\n LinesToProcess: Integer;\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WhseActivityRegister.Codeunit.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WhseActivityRegister.Codeunit.al\nindex 06bc640..030ae8d 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WhseActivityRegister.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WhseActivityRegister.Codeunit.al\n@@ -2044,6 +2044,7 @@ codeunit 7307 \"Whse.-Activity-Register\"\n if Item.\"Reserved Qty. on Inventory\" > 0 then begin\n xReservedQty := Item.\"Reserved Qty. on Inventory\";\n WhseActivityItemTrackingSetup.CopyTrackingFromWhseActivityLine(WhseActivLine);\n+ RemoveNonSpecificreservations(WhseActivLine, WhseItemTrackingSetup, QtyToRelease);\n LateBindingMgt.ReleaseForReservation(\n WhseActivLine.\"Item No.\", WhseActivLine.\"Variant Code\", WhseActivLine.\"Location Code\",\n WhseActivityItemTrackingSetup, QtyToRelease);\n@@ -2127,6 +2128,43 @@ codeunit 7307 \"Whse.-Activity-Register\"\n until WarehouseActivityLine.Next() = 0;\n end;\n \n+ local procedure RemoveNonSpecificreservations(WhseActivLine: Record \"Warehouse Activity Line\"; WhseItemTrackingSetup: Record \"Item Tracking Setup\"; QtyToRelease: Decimal)\n+ var\n+ Location: Record Location;\n+ ReservationEntry: Record \"Reservation Entry\";\n+ SalesLine: Record \"Sales Line\";\n+ QtyToPick: Decimal;\n+ begin\n+ if not WhseItemTrackingSetup.TrackingRequired() then\n+ exit;\n+ if not (WhseActivLine.\"Source Type\" = Database::\"Sales Line\") then\n+ exit;\n+ if not (Location.Get(WhseActivLine.\"Location Code\") and Location.\"Pick According to FEFO\") then\n+ exit;\n+\n+ QtyToPick := QtyToRelease;\n+ SalesLine.Get(WhseActivLine.\"Source Subtype\", WhseActivLine.\"Source No.\", WhseActivLine.\"Source Line No.\");\n+ ReservationEntry.SetSourceFilter(WhseActivLine.\"Source Type\", WhseActivLine.\"Source Subtype\", WhseActivLine.\"Source No.\", WhseActivLine.\"Source Line No.\", true);\n+ ReservationEntry.SetRange(Positive, false);\n+ if ReservationEntry.FindSet() then\n+ repeat\n+ DeleteNonSpecificReservationEntries(ReservationEntry, SalesLine, QtyToPick);\n+ until (ReservationEntry.Next() = 0) or (QtyToPick >= 0);\n+ end;\n+\n+ local procedure DeleteNonSpecificReservationEntries(ReservationEntry: Record \"Reservation Entry\"; SalesLine: Record \"Sales Line\"; var QtyToPick: Decimal)\n+ var\n+ ReservationManagement: Codeunit \"Reservation Management\";\n+ begin\n+ if ReservationEntry.TrackingExists() then\n+ exit;\n+\n+ ReservationManagement.SetReservSource(SalesLine);\n+ ReservationManagement.DeleteReservEntries(false, ReservationEntry.\"Quantity (Base)\");\n+ QtyToPick += ReservationEntry.\"Quantity (Base)\"\n+ end;\n+\n+\n [IntegrationEvent(false, false)]\n local procedure OnBeforeCode(var WarehouseActivityLine: Record \"Warehouse Activity Line\")\n begin\n"} +{"instance_id": "microsoftInternal__NAV-222488__cf-1", "base_instance_id": "microsoftInternal__NAV-222488", "variant_description": "Registration should include all lines only for Purchase Order source documents; other sources respect filter.", "failure_layer": null, "FAIL_TO_PASS": [{"codeunitID": 137152, "functionName": ["RegisterPutAwayWithBreakBulkFilterShouldRegisterAllLines"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM/SCMWarehouseReceiving.Codeunit.al b/App/Layers/W1/Tests/SCM/SCMWarehouseReceiving.Codeunit.al\nindex d40ac8d..eecdbb9 100644\n--- a/App/Layers/W1/Tests/SCM/SCMWarehouseReceiving.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM/SCMWarehouseReceiving.Codeunit.al\n@@ -4302,6 +4302,63 @@ codeunit 137152 \"SCM Warehouse - Receiving\"\n VerifyWarehouseActivityLineWithBin(Item.\"No.\", Bin[3].Code, Bin[1].Code);\n end;\n \n+ [Test]\n+ [HandlerFunctions('ConfirmHandlerTrue')]\n+ procedure RegisterPutAwayWithBreakBulkFilterShouldRegisterAllLines()\n+ var\n+ Item: Record Item;\n+ ItemUnitOfMeasure: Record \"Item Unit of Measure\";\n+ PurchaseHeader: Record \"Purchase Header\";\n+ UOM: Record \"Unit of Measure\";\n+ WarehouseActivityLine: Record \"Warehouse Activity Line\";\n+ WarehouseEmployee: Record \"Warehouse Employee\";\n+ WarehouseEntry: Record \"Warehouse Entry\";\n+ PutAwayPage: TestPage \"Warehouse Put-away\";\n+ ExpectedLinesCount: Integer;\n+ begin\n+ // [SCENARIO 592107] Verify all put away lines are registered, when register a warehouse put away with the break bulk filter set to yes\n+ Initialize();\n+\n+ // [GIVEN] Create Warehouse Employee for location WHITE.\n+ LibraryWarehouse.CreateWarehouseEmployee(WarehouseEmployee, LocationWhite.Code, true);\n+\n+ // [GIVEN] Create an Item and assign Put-away Unit of Measure Code.\n+ LibraryInventory.CreateItem(Item);\n+ Item.Validate(\"Put-away Unit of Measure Code\", Item.\"Base Unit of Measure\");\n+ Item.Modify(true);\n+\n+ // [GIVEN] Create Unit of Measure and Item Unit of Measure with Qty. per Unit of Measure as 48.\n+ LibraryInventory.CreateUnitOfMeasureCode(UOM);\n+ LibraryInventory.CreateItemUnitOfMeasure(ItemUnitOfMeasure, Item.\"No.\", UOM.Code, 48);\n+\n+ // [GIVEN] Create Purchase Order and Post Warehouse Receipt.\n+ CreatePurchaseOrderAndPostWarehouseReceipt(\n+ PurchaseHeader, LocationWhite.Code, Item.\"No.\", LibraryRandom.RandDec(10, 2), UOM.Code);\n+\n+ // [GIVEN] Find Warehouse Put-away\n+ WarehouseActivityLine.SetRange(\"Activity Type\", WarehouseActivityLine.\"Activity Type\"::\"Put-away\");\n+ WarehouseActivityLine.SetRange(\"Source Document\", WarehouseActivityLine.\"Source Document\"::\"Purchase Order\");\n+ WarehouseActivityLine.SetRange(\"Source No.\", PurchaseHeader.\"No.\");\n+ WarehouseActivityLine.FindSet();\n+ ExpectedLinesCount := WarehouseActivityLine.Count();\n+\n+ // [GIVEN] Open Warehouse Put-away page\n+ PutAwayPage.OpenEdit();\n+ PutAwayPage.FILTER.SetFilter(\"No.\", WarehouseActivityLine.\"No.\");\n+\n+ // [GIVEN] Set Break Bulk filter = Yes\n+ PutAwayPage.\"Breakbulk Filter\".SetValue(true);\n+\n+ // [WHEN] Register Warehouse Put-Away.\n+ PutAwayPage.\"&Register Put-away\".Invoke();\n+\n+ // [THEN] Verify Put-Away should be registered and all lines should be posted in Warehouse Entry table\n+ WarehouseEntry.SetRange(\"Entry Type\", WarehouseEntry.\"Entry Type\"::Movement);\n+ WarehouseEntry.SetRange(\"Source Document\", WarehouseEntry.\"Source Document\"::\"P. Order\");\n+ WarehouseEntry.SetRange(\"Source No.\", PurchaseHeader.\"No.\");\n+ Assert.RecordCount(WarehouseEntry, ExpectedLinesCount);\n+ end;\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al\nindex 07db37f..3f0a341 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al\n@@ -482,9 +482,19 @@ page 5771 \"Whse. Put-away Subform\"\n \n procedure RegisterPutAwayYesNo()\n var\n+ WhseActivityHeader: Record \"Warehouse Activity Header\";\n WhseActivLine: Record \"Warehouse Activity Line\";\n begin\n- WhseActivLine.Copy(Rec);\n+ WhseActivityHeader.Get(Rec.\"Activity Type\", Rec.\"No.\");\n+ if (Rec.\"Activity Type\"::\"Put-away\" = Rec.\"Activity Type\"::\"Put-away\") and\n+ WhseActivityHeader.\"Breakbulk Filter\" and\n+ (Rec.\"Source Document\" = Rec.\"Source Document\"::\"Purchase Order\") then begin\n+ WhseActivLine.SetRange(\"Activity Type\", WhseActivLine.\"Activity Type\"::\"Put-away\");\n+ WhseActivLine.SetRange(\"No.\", Rec.\"No.\");\n+ WhseActivLine.FindSet();\n+ end\n+ else\n+ WhseActivLine.Copy(Rec);\n WhseActivLine.FilterGroup(3);\n WhseActivLine.SetRange(Breakbulk);\n WhseActivLine.FilterGroup(0);\n"} +{"instance_id": "microsoftInternal__NAV-223202__cf-1", "base_instance_id": "microsoftInternal__NAV-223202", "variant_description": "Manufacturing overhead only calculated when opening the Production Order Statistics page", "failure_layer": null, "FAIL_TO_PASS": [{"codeunitID": 137210, "functionName": ["FirmedProdOrderStatisticsCheckOverhead"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM-Manufacturing/SCMCopyProductionBOM.Codeunit.al b/App/Layers/W1/Tests/SCM-Manufacturing/SCMCopyProductionBOM.Codeunit.al\nindex 57db27035466..babcca7115f7 100644\n--- a/App/Layers/W1/Tests/SCM-Manufacturing/SCMCopyProductionBOM.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM-Manufacturing/SCMCopyProductionBOM.Codeunit.al\n@@ -41,6 +41,7 @@ codeunit 137210 \"SCM Copy Production BOM\"\n ProdBOMNo: Code[20];\n CountError: Label 'Version Count Must Match.';\n OverHeadCostErr: Label 'Overhead Cost must be %1 in %2.', Comment = '%1= Field Value, %2= FieldCaption.';\n+ OverheadOnlyOnStatsErr: Label 'Manufacturing overhead is only calculated when opening the Statistics page';\n \n [Normal]\n local procedure Initialize()\n@@ -609,6 +610,75 @@ codeunit 137210 \"SCM Copy Production BOM\"\n ProductionOrderStatistics.MfgOverhead_ExpectedCost.Caption()));\n end;\n \n+ [Test]\n+ procedure FirmedProdOrderStatisticsCheckOverhead()\n+ var\n+ ParentItem: Record Item;\n+ RawItem: Record Item;\n+ ProductionOrder: Record \"Production Order\";\n+ ProdOrderLine: Record \"Prod. Order Line\";\n+ ProductionBOMHeader: Record \"Production BOM Header\";\n+ ProductionBOMLine: Record \"Production BOM Line\";\n+ FirmedProductionOrder: TestPage \"Firm Planned Prod. Order\";\n+ ProductionOrderStatistics: TestPage \"Production Order Statistics\";\n+ MfgOverheadExpectedCost: Decimal;\n+ MfgOverheadExpectedCost1: Decimal;\n+ Quantity: Decimal;\n+ begin\n+ // [SCENARIO 593018] Manufacturing overhead is wrong in the production order statistics page (99000816) and report (99000791).\n+ Initialize();\n+\n+ // [GIVEN] Create Raw Item with specified Unit Cost\n+ CreateItem(RawItem, 0, 0);\n+ RawItem.Validate(Type, RawItem.Type::Inventory);\n+ RawItem.Validate(\"Unit Cost\", LibraryRandom.RandIntInRange(100, 100));\n+ RawItem.Modify(true);\n+\n+ // [GIVEN] Create Production BOM and add Raw Item with Qty = 1\n+ LibraryManufacturing.CreateProductionBOMHeader(ProductionBOMHeader, RawItem.\"Base Unit of Measure\");\n+ LibraryManufacturing.CreateProductionBOMLine(ProductionBOMHeader, ProductionBOMLine, '', ProductionBOMLine.Type::Item, RawItem.\"No.\", 1);\n+ ProductionBOMHeader.Validate(\"Unit of Measure Code\", RawItem.\"Base Unit of Measure\");\n+ ProductionBOMHeader.Validate(Status, ProductionBOMHeader.Status::Certified);\n+ ProductionBOMHeader.Modify(true);\n+\n+ // [GIVEN] Create Parent Item with Indirect Cost % and link to BOM\n+ CreateItem(ParentItem, 0, 0);\n+ ParentItem.Validate(\"Indirect Cost %\", LibraryRandom.RandIntInRange(10, 10));\n+ ParentItem.Validate(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n+ ParentItem.Modify(true);\n+\n+ // [GIVEN] Store Quantity in Variable.\n+ Quantity := LibraryRandom.RandIntInRange(20, 20);\n+\n+ // [GIVEN] Create Firm Planned Production Order for Parent Item\n+ LibraryManufacturing.CreateProductionOrder(ProductionOrder, ProductionOrder.Status::\"Firm Planned\", ProductionOrder.\"Source Type\"::Item, '', 0);\n+\n+ // [GIVEN] Create multiple lines (do NOT populate header)\n+ LibraryManufacturing.CreateProdOrderLine(ProdOrderLine, ProductionOrder.Status, ProductionOrder.\"No.\", ParentItem.\"No.\", '', '', LibraryRandom.RandIntInRange(10, 10));\n+ LibraryManufacturing.CreateProdOrderLine(ProdOrderLine, ProductionOrder.Status, ProductionOrder.\"No.\", ParentItem.\"No.\", '', '', LibraryRandom.RandIntInRange(10, 10));\n+\n+ // [WHEN] Refresh Prod Order with Lines = false (header only)\n+ LibraryManufacturing.RefreshProdOrder(ProductionOrder, false, false, true, true, false);\n+\n+ MfgOverheadExpectedCost := (RawItem.\"Unit Cost\" * ParentItem.\"Indirect Cost %\" / 100 * Quantity);\n+\n+ // [WHEN] Open Firmed Prod Order Statistics page\n+ FirmedProductionOrder.OpenEdit();\n+ FirmedProductionOrder.GoToRecord(ProductionOrder);\n+ ProductionOrderStatistics.Trap();\n+ FirmedProductionOrder.Statistics.Invoke();\n+\n+ // [THEN] Get Mfg Overhead Expected Cost\n+ Evaluate(MfgOverheadExpectedCost1, ProductionOrderStatistics.MfgOverhead_ExpectedCost.Value());\n+\n+ // [ASSERT] Overhead in statistics equals expected overhead\n+ Assert.AreEqual(\n+ MfgOverheadExpectedCost,\n+ MfgOverheadExpectedCost1,\n+ StrSubstNo(OverheadOnlyOnStatsErr));\n+\n+ end;\n+\n [Normal]\n local procedure CreateProductionBOM(var ProductionBOMHeader: Record \"Production BOM Header\")\n var\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al\nindex 84769ae059dd..69d210e7af9f 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al\n@@ -305,9 +305,9 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ExpSubDirCost := ExpSubDirCost + Round(ExpSubDirCostRtng * ShareOfTotalCapCost);\n ExpCapOvhdCost := ExpCapOvhdCost + Round(ExpCapOvhdCostRtng * ShareOfTotalCapCost);\n ExpMfgDirCost := ExpMatCost + ExpCapDirCost + ExpSubDirCost + ExpCapOvhdCost;\n- ExpOvhdCost := ExpMfgOvhdCost + ProdOrderLine.\"Overhead Rate\" * ProdOrderLine.\"Quantity (Base)\";\n- ExpMfgOvhdCost := ExpOvhdCost +\n- Round(CostCalculationMgt.CalcOvhdCost(ExpMfgDirCost, ProdOrderLine.\"Indirect Cost %\", 0, 0));\n+ ExpOvhdCost := ExpMfgOvhdCost;\n+ ExpMfgOvhdCost :=\n+ Round(CostCalculationMgt.CalcOvhdCost(ExpMfgDirCost, ProdOrderLine.\"Indirect Cost %\", ProdOrderLine.\"Overhead Rate\", ProdOrderLine.\"Quantity (Base)\"));\n \n OnAfterCalcProdOrderLineExpCost(ProdOrderLine, ShareOfTotalCapCost, ExpMatCost, ExpCapDirCost, ExpSubDirCost, ExpCapOvhdCost, ExpMfgOvhdCost);\n #if not CLEAN26\n"} +{"instance_id": "microsoftInternal__NAV-223493__cf-1", "base_instance_id": "microsoftInternal__NAV-223493", "variant_description": "Only update Customer Ledger Entry when entry is not on hold", "failure_layer": null, "FAIL_TO_PASS": [{"codeunitID": 134658, "functionName": ["VerifyYourReferenceUpdatedInCustLedgerEntry"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/ERM/EditPostedDocuments.Codeunit.al b/App/Layers/W1/Tests/ERM/EditPostedDocuments.Codeunit.al\nindex b2cb6ea..ec49612 100644\n--- a/App/Layers/W1/Tests/ERM/EditPostedDocuments.Codeunit.al\n+++ b/App/Layers/W1/Tests/ERM/EditPostedDocuments.Codeunit.al\n@@ -27,6 +27,8 @@ codeunit 134658 \"Edit Posted Documents\"\n UnexpectedVolumeErr: Label 'Unexpected Volume shown.';\n CashFlowWorkSheetLineMustNotBeFoundErr: Label 'Cash Flow Worksheet Line must not be found.';\n YourReferenceErr: Label 'Your reference must be editable';\n+ SalesInvoiceYourReferenceErr: Label 'Sales Invoice Your Reference not updated';\n+ CustLedgerEntryYourReferenceErr: Label 'Customer Ledger Entry Your Reference not updated';\n \n [Test]\n [HandlerFunctions('PostedSalesShipmentUpdateGetEditablelModalPageHandler')]\n@@ -996,6 +998,48 @@ codeunit 134658 \"Edit Posted Documents\"\n LibraryLowerPermissions.SetOutsideO365Scope();\n end;\n \n+ [Test]\n+ [HandlerFunctions('PostedSalesInvoiceYourReferenceModalPageHandler')]\n+ procedure VerifyYourReferenceUpdatedInCustLedgerEntry()\n+ var\n+ CustLedgerEntry: Record \"Cust. Ledger Entry\";\n+ SalesInvoiceHeader: Record \"Sales Invoice Header\";\n+ YourReference: Text[35];\n+ PostedSalesInvoice: TestPage \"Posted Sales Invoice\";\n+ begin\n+ // [SCENARIO 595854] Verify Your Reference Field updated in Customer Ledger Entries,\n+ // when changed with Update document on Posted Sales Invoice.\n+ Initialize();\n+\n+ LibraryLowerPermissions.SetO365Setup();\n+ LibraryLowerPermissions.AddSalesDocsPost();\n+\n+ // [GIVEN] Create and post a Sales Order.\n+ SalesInvoiceHeader.Get(CreateAndPostSalesOrderGetInvoiceNo());\n+ YourReference := LibraryRandom.RandText(35);\n+ LibraryVariableStorage.Enqueue(YourReference);\n+\n+ // [GIVEN] Opened \"Posted Sales Invoice - Update\" page.\n+ PostedSalesInvoice.OpenView();\n+ PostedSalesInvoice.GoToRecord(SalesInvoiceHeader);\n+ PostedSalesInvoice.\"Update Document\".Invoke();\n+\n+ // [WHEN] Press OK on the page via PostedSalesInvoiceYourReferenceModalPageHandler.\n+\n+ // [THEN] Verify Your Reference field updated on Sales Invoice Header and Customer Ledger Entry.\n+ SalesInvoiceHeader.Get(SalesInvoiceHeader.\"No.\");\n+ Assert.AreEqual(YourReference, SalesInvoiceHeader.\"Your Reference\", SalesInvoiceYourReferenceErr);\n+\n+ CustLedgerEntry.SetRange(\"Document No.\", SalesInvoiceHeader.\"No.\");\n+ CustLedgerEntry.FindFirst();\n+ CustLedgerEntry.\"On Hold\" := 'X';\n+ CustLedgerEntry.Modify(true);\n+ Assert.AreEqual(YourReference, CustLedgerEntry.\"Your Reference\", CustLedgerEntryYourReferenceErr);\n+\n+ LibraryVariableStorage.AssertEmpty();\n+ LibraryLowerPermissions.SetOutsideO365Scope();\n+ end;\n+\n local procedure Initialize()\n begin\n LibraryTestInitialize.OnTestInitialize(Codeunit::\"Edit Posted Documents\");\n@@ -1535,6 +1579,14 @@ codeunit 134658 \"Edit Posted Documents\"\n PostedSalesInvUpdate.Cancel().Invoke();\n end;\n \n+ [ModalPageHandler]\n+ [Scope('OnPrem')]\n+ procedure PostedSalesInvoiceYourReferenceModalPageHandler(var PostedSalesInvUpdate: TestPage \"Posted Sales Inv. - Update\")\n+ begin\n+ PostedSalesInvUpdate.\"Your Reference\".SetValue(LibraryVariableStorage.DequeueText());\n+ PostedSalesInvUpdate.OK().Invoke();\n+ end;\n+\n [ConfirmHandler]\n [Scope('OnPrem')]\n procedure ConfirmHandlerTrue(QuestionText: Text[1024]; var Reply: Boolean)\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al b/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al\nindex 6a5f0a8..bb4a252 100644\n--- a/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al\n@@ -56,6 +56,9 @@ codeunit 1409 \"Sales Inv. Header - Edit\"\n CustLedgerEntry.Description := SalesInvoiceHeader.\"Posting Description\";\n CustLedgerEntry.\"Promised Pay Date\" := SalesInvoiceHeader.\"Promised Pay Date\";\n CustLedgerEntry.\"Due Date\" := SalesInvoiceHeader.\"Due Date\";\n+ if CustLedgerEntry.\"On Hold\" <> '' then\n+ exit;\n+ CustLedgerEntry.\"Your Reference\" := SalesInvoiceHeader.\"Your Reference\";\n if CustLedgerEntry.\"Dispute Status\" <> '' then begin\n if DisputeStatus.get(CustLedgerEntry.\"Dispute Status\") then\n if (DisputeStatus.\"Overwrite on hold\") and ClearOnHold(SalesInvoiceHeader) then\ndiff --git a/App/Layers/W1/BaseApp/Sales/Receivables/CustEntryEdit.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Receivables/CustEntryEdit.Codeunit.al\nindex c64fa94..546c3b5 100644\n--- a/App/Layers/W1/BaseApp/Sales/Receivables/CustEntryEdit.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Receivables/CustEntryEdit.Codeunit.al\n@@ -44,6 +44,7 @@ codeunit 103 \"Cust. Entry-Edit\"\n CustLedgEntry.\"Applies-to ID\" := Rec.\"Applies-to ID\";\n CustLedgEntry.Validate(\"Payment Method Code\", Rec.\"Payment Method Code\");\n CustLedgEntry.Validate(\"Payment Reference\", Rec.\"Payment Reference\");\n+ CustLedgEntry.Validate(\"Your Reference\", Rec.\"Your Reference\");\n CustLedgEntry.Validate(\"Remaining Pmt. Disc. Possible\", Rec.\"Remaining Pmt. Disc. Possible\");\n CustLedgEntry.\"Pmt. Disc. Tolerance Date\" := Rec.\"Pmt. Disc. Tolerance Date\";\n CustLedgEntry.Validate(\"Max. Payment Tolerance\", Rec.\"Max. Payment Tolerance\");\n@@ -122,7 +123,8 @@ codeunit 103 \"Cust. Entry-Edit\"\n (CurrCustLedgerEntry.\"Payment Reference\" <> NewCustLedgerEntry.\"Payment Reference\") or\n (CurrCustLedgerEntry.\"Message to Recipient\" <> NewCustLedgerEntry.\"Message to Recipient\") or\n (CurrCustLedgerEntry.\"Recipient Bank Account\" <> NewCustLedgerEntry.\"Recipient Bank Account\") or\n- (CurrCustLedgerEntry.\"On Hold\" <> NewCustLedgerEntry.\"On Hold\");\n+ (CurrCustLedgerEntry.\"On Hold\" <> NewCustLedgerEntry.\"On Hold\") or\n+ (CurrCustLedgerEntry.\"Your Reference\" <> NewCustLedgerEntry.\"Your Reference\");\n OnAfterLogFieldChanged(CurrCustLedgerEntry, NewCustLedgerEntry, Changed);\n exit(Changed);\n end;\n"} +{"instance_id": "microsoftInternal__NAV-223790__cf-1", "base_instance_id": "microsoftInternal__NAV-223790", "variant_description": "CalcLevels called with parameter 0 instead of 1; API semantic misuse in LLC calculation", "failure_layer": null, "FAIL_TO_PASS": [{"codeunitID": 137035, "functionName": ["CheckPlanningWorksheetPlanComponentwhenStockkeepingUnitsSetup"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM/SCMPSBugsI.Codeunit.al b/App/Layers/W1/Tests/SCM/SCMPSBugsI.Codeunit.al\nindex cd0d28c59b88..9867c364a8cb 100644\n--- a/App/Layers/W1/Tests/SCM/SCMPSBugsI.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM/SCMPSBugsI.Codeunit.al\n@@ -45,6 +45,8 @@ codeunit 137035 \"SCM PS Bugs-I\"\n QuantityErr: Label 'Quantity update should be possible in %1.', Comment = '%1= Table Name.';\n DueDateErr: Label 'Planned production order due date not match with planning worksheet due date';\n SKUInventoryErr: Label 'Expected inventory to be blank for non-inventory item';\n+ MainItemErr: Label 'New planning worksheet line not created for main item';\n+ CompoItemErr: Label 'New planning worksheet line not created for component item';\n \n [Test]\n [Scope('OnPrem')]\n@@ -1320,6 +1322,97 @@ codeunit 137035 \"SCM PS Bugs-I\"\n LibraryVariableStorage.AssertEmpty();\n end;\n \n+ [Test]\n+ [HandlerFunctions('SKURequestPageHandler')]\n+ procedure CheckPlanningWorksheetPlanComponentwhenStockkeepingUnitsSetup()\n+ var\n+ CompItem: Record Item;\n+ InventorySetup: Record \"Inventory Setup\";\n+ Location: Record Location;\n+ MainItem: Record Item;\n+ ManufacturingSetup: Record \"Manufacturing Setup\";\n+ ProductionBOMHeader: Record \"Production BOM Header\";\n+ Requisitionline: Record \"Requisition Line\";\n+ SalesHeader: Record \"Sales Header\";\n+ SalesLine: Record \"Sales Line\";\n+ Itemcard: TestPage \"Item Card\";\n+ SKUCardPage: TestPage \"Stockkeeping Unit Card\";\n+ ActualCount: Integer;\n+ begin\n+ // [SCENARIO 579977] Check Planning Worksheet Plan Component when Stockkeeping Units Setup for Items.\n+ Initialize();\n+\n+ // [GIVEN] Set Manufacturing Setup for Dynamic Low-Level Code and Inventory Setup for ombined MPS/MRP Calculation.\n+ ManufacturingSetup.Get();\n+ ManufacturingSetup.Validate(\"Dynamic Low-Level Code\", true);\n+ ManufacturingSetup.Modify(true);\n+ InventorySetup.Get();\n+ InventorySetup.Validate(\"Combined MPS/MRP Calculation\", true);\n+ InventorySetup.Modify(true);\n+\n+ // [GIVEN] Create Item with Replenishment System as Production Order.\n+ LibraryInventory.CreateItem(CompItem);\n+\n+ // [GIVEN] Create Location.\n+ LibraryWarehouse.CreateLocation(Location);\n+\n+ // [GIVEN] Create Stockkeeping Unit for Item and Location.\n+ Commit();\n+ LibraryVariableStorage.Enqueue(Location.Code);\n+ ItemCard.OpenView();\n+ ItemCard.GotoRecord(CompItem);\n+ ItemCard.\"&Create Stockkeeping Unit\".Invoke();\n+ ItemCard.OK().Invoke();\n+\n+ // [GIVEN] Modify Stockkeeping Unit for Item.\n+ SKUCardPage.OpenView();\n+ SKUCardPage.Filter.SetFilter(\"Item No.\", CompItem.\"No.\");\n+ SKUCardPage.Filter.SetFilter(\"Location Code\", Location.\"Code\");\n+ SKUCardPage.\"Replenishment System\".SetValue(\"Replenishment System\"::Purchase);\n+ SKUCardPage.\"Reordering Policy\".SetValue(\"Reordering Policy\"::\"Order\");\n+ SKUCardPage.Close();\n+\n+ // [GIVEN] Create BOM for the item.\n+ LibraryManufacturing.CreateCertifiedProductionBOM(ProductionBOMHeader, CompItem.\"No.\", 1);\n+\n+ // [GIVEN] Create Main Item with Replenishment System as Production Order.\n+ LibraryInventory.CreateItem(MainItem);\n+\n+ // [GIVEN] Create Stockkeeping Unit for Main Item and Location.\n+ Commit();\n+ LibraryVariableStorage.Enqueue(Location.Code);\n+ ItemCard.OpenView();\n+ ItemCard.GotoRecord(MainItem);\n+ ItemCard.\"&Create Stockkeeping Unit\".Invoke();\n+ ItemCard.OK().Invoke();\n+\n+ // [GIVEN] Modify Stockkeeping Unit Created for Main Item.\n+ SKUCardPage.OpenView();\n+ SKUCardPage.Filter.SetFilter(\"Item No.\", MainItem.\"No.\");\n+ SKUCardPage.Filter.SetFilter(\"Location Code\", Location.\"Code\");\n+ SKUCardPage.\"Replenishment System\".SetValue(\"Replenishment System\"::\"Prod. Order\");\n+ SKUCardPage.\"Reordering Policy\".SetValue(\"Reordering Policy\"::\"Lot-for-Lot\");\n+ SKUCardPage.\"Manufacturing Policy\".SetValue(\"Manufacturing Policy\"::\"Make-to-Stock\");\n+ SKUCardPage.\"Production BOM No.\".SetValue(ProductionBOMHeader.\"No.\");\n+ SKUCardPage.Close();\n+\n+ // [WHEN] Create Sales order for Item and Location.\n+ Librarysales.CreateSalesDocumentWithItem(\n+ SalesHeader, SalesLine, SalesHeader.\"Document Type\"::Order, '', MainItem.\"No.\", 10, Location.\"Code\", WorkDate());\n+\n+ // [WHEN] Calculate regenerative plan in planning worksheet update Planning Worksheet.\n+ CalculateRegenerativePlanningWorksheet(CompItem, MainItem, WorkDate(), CalcDate('<1Y>', WorkDate()), true, false);\n+\n+ // [THEN] Verify Actual Count Match with Expected Result for Main Item Planning Worksheet Line.\n+ CountPlanningWorksheetLine(Requisitionline, ActualCount, MainItem.\"No.\", Location.\"Code\");\n+ Assert.AreEqual(1, ActualCount, MainItemErr);\n+\n+ // [THEN] Verify Actual Count Match with Expected Result for Component Item Planning Worksheet Line.\n+ CountPlanningWorksheetLine(Requisitionline, ActualCount, CompItem.\"No.\", Location.\"Code\");\n+ Assert.AreEqual(1, ActualCount, CompoItemErr);\n+ LibraryVariableStorage.AssertEmpty();\n+ end;\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n@@ -2143,6 +2236,32 @@ codeunit 137035 \"SCM PS Bugs-I\"\n Assert.AreEqual(DueDate, ProductionOrder.\"Due Date\", DueDateErr);\n end;\n \n+ local procedure CountPlanningWorksheetLine(Requisitionline: Record \"Requisition Line\"; var ActualCount: Integer; ItemNo: Code[20]; LocationCode: Code[10])\n+ begin\n+ Clear(ActualCount);\n+ Requisitionline.Reset();\n+ Requisitionline.SetRange(\"No.\", ItemNo);\n+ Requisitionline.SetRange(\"Location Code\", LocationCode);\n+ if Requisitionline.FindSet() then\n+ ActualCount := Requisitionline.Count;\n+ end;\n+\n+ local procedure CalculateRegenerativePlanningWorksheet(var CompItemRec: Record Item; var MainItemRec: Record Item; OrderDate: Date; ToDate: Date; RespectPlanningParameters: Boolean; Regenerative: Boolean)\n+ var\n+ TmpItemRec: Record Item;\n+ RequisitionWkshName: Record \"Requisition Wksh. Name\";\n+ CalculatePlanPlanWksh: Report \"Calculate Plan - Plan. Wksh.\";\n+ begin\n+ LibraryPlanning.SelectRequisitionWkshName(RequisitionWkshName, RequisitionWkshName.\"Template Type\"::Planning); // Find Requisition Worksheet Name to Calculate Plan.\n+ Commit();\n+ CalculatePlanPlanWksh.InitializeRequest(OrderDate, ToDate, RespectPlanningParameters, true, true, '', 0D, false);\n+ CalculatePlanPlanWksh.SetTemplAndWorksheet(RequisitionWkshName.\"Worksheet Template Name\", RequisitionWkshName.Name, Regenerative);\n+ TmpItemRec.SetFilter(\"No.\", '%1..%2', CompItemRec.\"No.\", MainItemRec.\"No.\");\n+ CalculatePlanPlanWksh.SetTableView(TmpItemRec);\n+ CalculatePlanPlanWksh.UseRequestPage(false);\n+ CalculatePlanPlanWksh.RunModal();\n+ end;\n+\n [ConfirmHandler]\n [Scope('OnPrem')]\n procedure ConfirmHandler(Question: Text[1024]; var Reply: Boolean)\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Location/MfgStockkeepingUnit.TableExt.al b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Location/MfgStockkeepingUnit.TableExt.al\nindex e6df0fd1150e..bd56f5d829d5 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Location/MfgStockkeepingUnit.TableExt.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Location/MfgStockkeepingUnit.TableExt.al\n@@ -8,6 +8,7 @@ using Microsoft.Inventory.Item;\n using Microsoft.Manufacturing.Document;\n using Microsoft.Manufacturing.ProductionBOM;\n using Microsoft.Manufacturing.Routing;\n+using Microsoft.Manufacturing.Setup;\n \n tableextension 99000759 \"Mfg. Stockkeeping Unit\" extends \"Stockkeeping Unit\"\n {\n@@ -62,6 +63,27 @@ tableextension 99000759 \"Mfg. Stockkeeping Unit\" extends \"Stockkeeping Unit\"\n Caption = 'Production BOM No.';\n DataClassification = CustomerContent;\n TableRelation = \"Production BOM Header\";\n+ trigger OnValidate()\n+ var\n+ Item: Record Item;\n+ ItemUnitOfMeasure: Record \"Item Unit of Measure\";\n+ MfgSetup: Record \"Manufacturing Setup\";\n+ ProdBOMHeader: Record \"Production BOM Header\";\n+ CalculateLowLevelCode: Codeunit \"Calculate Low-Level Code\";\n+ begin\n+ if (\"Production BOM No.\" <> '') and (\"Production BOM No.\" <> xRec.\"Production BOM No.\") then begin\n+ ProdBOMHeader.Get(\"Production BOM No.\");\n+ ItemUnitOfMeasure.Get(\"Item No.\", ProdBOMHeader.\"Unit of Measure Code\");\n+ if ProdBOMHeader.Status = ProdBOMHeader.Status::Certified then begin\n+ MfgSetup.Get();\n+ Item.Get(\"Item No.\");\n+ if MfgSetup.\"Dynamic Low-Level Code\" then begin\n+ Item.\"Low-Level Code\" := CalculateLowLevelCode.CalcLevels(0, Item.\"No.\", 0, 0);\n+ CalculateLowLevelCode.SetRecursiveLevelsOnBOM(ProdBOMHeader, Item.\"Low-Level Code\" + 1, false);\n+ end;\n+ end;\n+ end;\n+ end;\n }\n field(99000765; \"Planned Order Receipt (Qty.)\"; Decimal)\n {\n", "problem_statement_override": null} +{"instance_id": "microsoftInternal__NAV-224447__cf-1", "base_instance_id": "microsoftInternal__NAV-224447", "variant_description": "Email customer relationship uses correct field name for issued reminders", "failure_layer": null, "FAIL_TO_PASS": [{"codeunitID": 134979, "functionName": ["SendIssuedReminderByEmailAndEntryCreatedInEmailRelatedRecords"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/ERM/ReminderAutomationTests.Codeunit.al b/App/Layers/W1/Tests/ERM/ReminderAutomationTests.Codeunit.al\nindex 1667c4a..9d5776b 100644\n--- a/App/Layers/W1/Tests/ERM/ReminderAutomationTests.Codeunit.al\n+++ b/App/Layers/W1/Tests/ERM/ReminderAutomationTests.Codeunit.al\n@@ -844,6 +844,53 @@ codeunit 134979 \"Reminder Automation Tests\"\n ReminderTermSetupPage.ReminderLevelSetup.CustomerCommunications.Invoke();\n end;\n \n+ [Test]\n+ [Scope('OnPrem')]\n+ [HandlerFunctions('ModalEmailEditorHandler,CancelMailSendingStrMenuHandler')]\n+ procedure SendIssuedReminderByEmailAndEntryCreatedInEmailRelatedRecords()\n+ var\n+ Customer: Record Customer;\n+ IssuedReminderHeader: Record \"Issued Reminder Header\";\n+ ReminderTerms: Record \"Reminder Terms\";\n+ ReminderHeader: Record \"Reminder Header\";\n+ LanguageCode: Code[10];\n+ FileName: Text;\n+ begin\n+ // [SCENARIO 591799] Issued reminder emails are not logged in sent e-mail history of a customer\n+ Initialize();\n+\n+ // [WHEN] A connector is installed and an account is added\n+ InstallConnectorAndAddAccount();\n+\n+ // [GIVEN] Create reminder term with levels\n+ CreateReminderTermsWithLevels(ReminderTerms, GetDefaultDueDatePeriodForReminderLevel(), Any.IntegerInRange(2, 5));\n+\n+ // [GIVEN] Create reminder attachment text, file name = XXX, language code = Y\n+ LanguageCode := LibraryERM.GetAnyLanguageDifferentFromCurrent();\n+ CreateReminderAttachmentText(ReminderTerms, LanguageCode);\n+\n+ // [GIVEN] Create a customer X with overdue entries\n+ CreateCustomerWithOverdueEntries(Customer, ReminderTerms, Any.IntegerInRange(2, 5));\n+\n+ // [GIVEN] Set language code Y for customer X\n+ Customer.\"Language Code\" := LanguageCode;\n+ Customer.Modify();\n+ FileName := LibraryVariableStorage.DequeueText();\n+ LibraryVariableStorage.Enqueue(Customer.\"No.\");\n+ LibraryVariableStorage.Enqueue(FileName);\n+\n+ // [GIVEN] Create and issue reminder for customer X\n+ CreateAndIssueReminder(ReminderHeader, Customer.\"No.\");\n+\n+ // [WHEN] Run action \"Send by mail\" on issued reminder\n+ IssuedReminderHeader.SetRange(\"Pre-Assigned No.\", ReminderHeader.\"No.\");\n+ IssuedReminderHeader.FindFirst();\n+ CustomReportSelectionPrint(IssuedReminderHeader, Enum::\"Report Selection Usage\"::Reminder, 1);\n+\n+ // [THEN] Verified in ModalEmailEditorHandler page\n+ LibraryVariableStorage.Clear();\n+ end;\n+\n local procedure CreateReminderAttachmentText(ReminderTerms: Record \"Reminder Terms\"; LanguageCode: Code[10])\n var\n ReminderLevel: Record \"Reminder Level\";\n@@ -1179,6 +1226,57 @@ codeunit 134979 \"Reminder Automation Tests\"\n end;\n end;\n \n+ local procedure InstallConnectorAndAddAccount()\n+ var\n+ TempAccount: Record \"Email Account\" temporary;\n+ ConnectorMock: Codeunit \"Connector Mock\";\n+ EmailScenarioMock: Codeunit \"Email Scenario Mock\";\n+ begin\n+ ConnectorMock.Initialize();\n+ ConnectorMock.AddAccount(TempAccount);\n+ EmailScenarioMock.DeleteAllMappings();\n+ EmailScenarioMock.AddMapping(Enum::\"Email Scenario\"::Default, TempAccount.\"Account Id\", TempAccount.Connector);\n+ end;\n+\n+ local procedure CustomReportSelectionPrint(Document: Variant; ReportUsage: Enum \"Report Selection Usage\"; CustomerNoFieldNo: Integer)\n+ var\n+ ReportSelections: Record \"Report Selections\";\n+ TempReportSelections: Record \"Report Selections\" temporary;\n+ RecRef: RecordRef;\n+ FieldRef: FieldRef;\n+ CustomerNo: Code[20];\n+ begin\n+ RecRef.GetTable(Document);\n+ FieldRef := RecRef.Field(CustomerNoFieldNo);\n+ CustomerNo := CopyStr(Format(FieldRef.Value), 1, MaxStrLen(CustomerNo));\n+\n+ RecRef.SetRecFilter();\n+ RecRef.SetTable(Document);\n+\n+ ReportSelections.FindEmailAttachmentUsageForCust(ReportUsage, CustomerNo, TempReportSelections);\n+ ReportSelections.SendEmailToCust(ReportUsage.AsInteger(), Document, '', '', true, CustomerNo);\n+ end;\n+\n+ [StrMenuHandler]\n+ [Scope('OnPrem')]\n+ procedure CancelMailSendingStrMenuHandler(Options: Text; var Choice: Integer; Instruction: Text)\n+ begin\n+ Choice := 2; //Send email instead of draft\n+ end;\n+\n+ [ModalPageHandler]\n+ [Scope('OnPrem')]\n+ procedure ModalEmailEditorHandler(var EmailEditor: TestPage \"Email Editor\")\n+ var\n+ Customer: Record Customer;\n+ EmailRelatedRecord: Record \"Email Related Record\";\n+ begin\n+ Customer.Get(LibraryVariableStorage.DequeueText());\n+ EmailRelatedRecord.SetRange(\"Table Id\", Database::Customer);\n+ EmailRelatedRecord.SetRange(\"System Id\", Customer.SystemId);\n+ Assert.IsTrue(EmailRelatedRecord.FindFirst(), EmailRelatedRecordNotFoundErr);\n+ end;\n+\n [ModalPageHandler()]\n procedure CreateRemindersSetupModalPageHandler(var CreateRemindersSetup: TestPage \"Create Reminders Setup\")\n begin\n@@ -1271,4 +1369,5 @@ codeunit 134979 \"Reminder Automation Tests\"\n Any: Codeunit Any;\n IsInitialized: Boolean;\n FiltersAreNotSavedErr: Label 'Filters are not saved';\n+ EmailRelatedRecordNotFoundErr: Label 'Email related record not found';\n }\n\\ No newline at end of file\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Foundation/Reporting/ReportSelections.Table.al b/App/Layers/W1/BaseApp/Foundation/Reporting/ReportSelections.Table.al\nindex 7a71beb..51b6e44 100644\n--- a/App/Layers/W1/BaseApp/Foundation/Reporting/ReportSelections.Table.al\n+++ b/App/Layers/W1/BaseApp/Foundation/Reporting/ReportSelections.Table.al\n@@ -1269,7 +1269,8 @@ table 77 \"Report Selections\"\n Database::\"Sales Invoice Header\",\n Database::\"Sales Cr.Memo Header\",\n Database::\"Sales Shipment Header\",\n- Database::\"Return Receipt Header\"];\n+ Database::\"Return Receipt Header\",\n+ Database::\"Issued Reminder Header\"];\n \n OnAfterIsCustomerAccount(DocumentTableId, IsCustomer);\n end;\n@@ -1521,7 +1522,9 @@ table 77 \"Report Selections\"\n // Related Source - Customer or vendor receiving the document\n TableId := GetAccountTableId(DocumentRecord.Number());\n if TableId = Database::Customer then begin\n FieldName := 'Sell-to Customer No.';\n+ if DocumentRecord.Number() = Database::\"Issued Reminder Header\" then\n+ FieldName := 'Customer No.';\n OnSendEmailDirectlyOnAfterSetFieldName(DocumentRecord.Number(), FieldName);\n if DataTypeManagement.FindfieldByName(DocumentRecord, FieldRef, FieldName) and Customer.Get(Format(FieldRef.Value())) then begin\n SourceTableIDs.Add(Database::Customer);\n"} +{"instance_id": "microsoftInternal__NAV-224668__cf-1", "base_instance_id": "microsoftInternal__NAV-224668", "variant_description": "Headline should only be hidden for the current user, without affecting other users' headline visibility", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-224668__cf-1", "FAIL_TO_PASS": [{"codeunitID": 139600, "functionName": ["TestHeadlineCanBeHidden"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Apps/W1/EssentialBusinessHeadlines/test/src/codeunits/TestEssentialBusHeadlines.Codeunit.al b/App/Apps/W1/EssentialBusinessHeadlines/test/src/codeunits/TestEssentialBusHeadlines.Codeunit.al\n--- a/App/Apps/W1/EssentialBusinessHeadlines/test/src/codeunits/TestEssentialBusHeadlines.Codeunit.al\n+++ b/App/Apps/W1/EssentialBusinessHeadlines/test/src/codeunits/TestEssentialBusHeadlines.Codeunit.al\n@@ -700,6 +700,33 @@ codeunit 139600 \"Test Essential Bus. Headlines\"\n TestRecentlyOverdueInvoiceWithOverdueInvoices(5);\n end;\n \n+ [Test]\n+ procedure TestHeadlineCanBeHidden()\n+ var\n+ CustLedgerEntry: Record \"Cust. Ledger Entry\";\n+ begin\n+ // [GIVEN] Initial state when no data is present\n+ Initialize();\n+\n+ // [GIVEN] One invoice that was due yesterday\n+ CreateInvoicesWithDueDateYesterday(1);\n+\n+ // [WHEN] Run the headline computation\n+ EssentialBusHeadlineMgt.HandleRecentlyOverdueInvoices();\n+\n+ // [THEN] Recently overdue invoices headline is visible\n+ Assert.IsTrue(GetVisibility(EssentialBusinessHeadline.\"Headline Name\"::RecentlyOverdueInvoices), 'Expected recently overdue invoices headline to be visible');\n+\n+ // [WHEN] Simulate no more overdue invoices by deleting all customer ledger entries\n+ CustLedgerEntry.DeleteAll();\n+\n+ // [WHEN] Recompute the headline computation\n+ EssentialBusHeadlineMgt.HandleRecentlyOverdueInvoices();\n+\n+ // [THEN] The headline is hidden only for the current user\n+ Assert.IsFalse(GetVisibility(EssentialBusinessHeadline.\"Headline Name\"::RecentlyOverdueInvoices), 'Expected recently overdue invoices headline to be not visible for current user after recompute');\n+ end;\n+\n local procedure TestRecentlyOverdueInvoiceWithOverdueInvoices(NumberOfNewlyOverdueInvoices: Integer)\n var\n OverdueInvoicesTxt: Text;\n", "patch": "diff --git a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n--- a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n+++ b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n@@ -677,7 +677,7 @@ codeunit 1437 \"Essential Bus. Headline Mgt.\"\n var\n EssentialBusinessHeadline: Record \"Ess. Business Headline Per Usr\";\n begin\n- if EssentialBusinessHeadline.Get(HeadlineName) then begin\n+ if EssentialBusinessHeadline.Get(HeadlineName, UserSecurityId()) then begin // ensure per-user visibility update\n EssentialBusinessHeadline.Validate(\"Headline Visible\", false);\n EssentialBusinessHeadline.Modify();\n end;\n"} +{"instance_id": "microsoftInternal__NAV-224668__cf-2", "base_instance_id": "microsoftInternal__NAV-224668", "variant_description": "Headline should not trigger a database modify if it is already hidden (idempotency)", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-224668__cf-2", "FAIL_TO_PASS": [{"codeunitID": 139600, "functionName": ["TestHeadlineCanBeHidden"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Apps/W1/EssentialBusinessHeadlines/test/src/codeunits/TestEssentialBusHeadlines.Codeunit.al b/App/Apps/W1/EssentialBusinessHeadlines/test/src/codeunits/TestEssentialBusHeadlines.Codeunit.al\n--- a/App/Apps/W1/EssentialBusinessHeadlines/test/src/codeunits/TestEssentialBusHeadlines.Codeunit.al\n+++ b/App/Apps/W1/EssentialBusinessHeadlines/test/src/codeunits/TestEssentialBusHeadlines.Codeunit.al\n@@ -700,6 +700,39 @@ codeunit 139600 \"Test Essential Bus. Headlines\"\n TestRecentlyOverdueInvoiceWithOverdueInvoices(5);\n end;\n \n+ [Test]\n+ procedure TestHeadlineCanBeHidden()\n+ var\n+ CustLedgerEntry: Record \"Cust. Ledger Entry\";\n+ begin\n+ // [GIVEN] Initial state when no data is present\n+ Initialize();\n+\n+ // [GIVEN] One invoice that was due yesterday\n+ CreateInvoicesWithDueDateYesterday(1);\n+\n+ // [WHEN] Run the headline computation\n+ EssentialBusHeadlineMgt.HandleRecentlyOverdueInvoices();\n+\n+ // [THEN] Recently overdue invoices headline is visible\n+ Assert.IsTrue(GetVisibility(EssentialBusinessHeadline.\"Headline Name\"::RecentlyOverdueInvoices), 'Expected recently overdue invoices headline to be visible');\n+\n+ // [WHEN] Simulate no more overdue invoices by deleting all customer ledger entries\n+ CustLedgerEntry.DeleteAll();\n+\n+ // [WHEN] Recompute the headline computation\n+ EssentialBusHeadlineMgt.HandleRecentlyOverdueInvoices();\n+\n+ // [THEN] The headline is hidden\n+ Assert.IsFalse(GetVisibility(EssentialBusinessHeadline.\"Headline Name\"::RecentlyOverdueInvoices), 'Expected recently overdue invoices headline to be not visible after recompute');\n+\n+ // [WHEN] Recompute again (idempotency)\n+ EssentialBusHeadlineMgt.HandleRecentlyOverdueInvoices();\n+\n+ // [THEN] No error and state remains hidden\n+ Assert.IsFalse(GetVisibility(EssentialBusinessHeadline.\"Headline Name\"::RecentlyOverdueInvoices), 'Expected headline to remain hidden without redundant update');\n+ end;\n+\n local procedure TestRecentlyOverdueInvoiceWithOverdueInvoices(NumberOfNewlyOverdueInvoices: Integer)\n var\n OverdueInvoicesTxt: Text;\n", "patch": "diff --git a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n--- a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n+++ b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n@@ -677,7 +677,9 @@ codeunit 1437 \"Essential Bus. Headline Mgt.\"\n var\n EssentialBusinessHeadline: Record \"Ess. Business Headline Per Usr\";\n begin\n- if EssentialBusinessHeadline.Get(HeadlineName) then begin\n- EssentialBusinessHeadline.Validate(\"Headline Visible\", false);\n- EssentialBusinessHeadline.Modify();\n+ if EssentialBusinessHeadline.Get(HeadlineName, UserSecurityId()) then begin\n+ if EssentialBusinessHeadline.\"Headline Visible\" then begin\n+ EssentialBusinessHeadline.Validate(\"Headline Visible\", false);\n+ EssentialBusinessHeadline.Modify();\n+ end;\n end;\n"} +{"instance_id": "microsoftInternal__NAV-224668__cf-3", "base_instance_id": "microsoftInternal__NAV-224668", "variant_description": "If the headline record does not exist for the user, it should be created as hidden instead of doing nothing (creation fallback)", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-224668__cf-3", "FAIL_TO_PASS": [{"codeunitID": 139600, "functionName": ["TestHeadlineCanBeHidden"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Apps/W1/EssentialBusinessHeadlines/test/src/codeunits/TestEssentialBusHeadlines.Codeunit.al b/App/Apps/W1/EssentialBusinessHeadlines/test/src/codeunits/TestEssentialBusHeadlines.Codeunit.al\n--- a/App/Apps/W1/EssentialBusinessHeadlines/test/src/codeunits/TestEssentialBusHeadlines.Codeunit.al\n+++ b/App/Apps/W1/EssentialBusinessHeadlines/test/src/codeunits/TestEssentialBusHeadlines.Codeunit.al\n@@ -700,6 +700,37 @@ codeunit 139600 \"Test Essential Bus. Headlines\"\n TestRecentlyOverdueInvoiceWithOverdueInvoices(5);\n end;\n \n+ [Test]\n+ procedure TestHeadlineCanBeHidden()\n+ var\n+ CustLedgerEntry: Record \"Cust. Ledger Entry\";\n+ begin\n+ // [GIVEN] Initial state when no data is present\n+ Initialize();\n+\n+ // [GIVEN] Ensure no headline exists for current user\n+ if EssentialBusinessHeadline.Get(EssentialBusinessHeadline.\"Headline Name\"::RecentlyOverdueInvoices, UserSecurityId()) then\n+ EssentialBusinessHeadline.Delete();\n+\n+ // [GIVEN] One invoice that was due yesterday\n+ CreateInvoicesWithDueDateYesterday(1);\n+\n+ // [WHEN] Run the headline computation\n+ EssentialBusHeadlineMgt.HandleRecentlyOverdueInvoices();\n+\n+ // [THEN] Recently overdue invoices headline is visible\n+ Assert.IsTrue(GetVisibility(EssentialBusinessHeadline.\"Headline Name\"::RecentlyOverdueInvoices), 'Expected recently overdue invoices headline to be visible');\n+\n+ // [WHEN] Simulate no more overdue invoices by deleting all customer ledger entries\n+ CustLedgerEntry.DeleteAll();\n+\n+ // [WHEN] Recompute the headline computation\n+ EssentialBusHeadlineMgt.HandleRecentlyOverdueInvoices();\n+\n+ // [THEN] The headline is hidden\n+ Assert.IsFalse(GetVisibility(EssentialBusinessHeadline.\"Headline Name\"::RecentlyOverdueInvoices), 'Expected recently overdue invoices headline to be not visible after recompute');\n+ end;\n+\n local procedure TestRecentlyOverdueInvoiceWithOverdueInvoices(NumberOfNewlyOverdueInvoices: Integer)\n var\n OverdueInvoicesTxt: Text;\n", "patch": "diff --git a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n--- a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n+++ b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n@@ -677,7 +677,13 @@ codeunit 1437 \"Essential Bus. Headline Mgt.\"\n var\n EssentialBusinessHeadline: Record \"Ess. Business Headline Per Usr\";\n begin\n- if EssentialBusinessHeadline.Get(HeadlineName) then begin\n+ if not EssentialBusinessHeadline.Get(HeadlineName, UserSecurityId()) then begin\n+ EssentialBusinessHeadline.Init();\n+ EssentialBusinessHeadline.Validate(\"Headline Name\", HeadlineName);\n+ EssentialBusinessHeadline.Validate(\"User Id\", UserSecurityId());\n+ EssentialBusinessHeadline.Insert();\n+ end;\n+ if EssentialBusinessHeadline.Get(HeadlineName, UserSecurityId()) then begin\n EssentialBusinessHeadline.Validate(\"Headline Visible\", false);\n EssentialBusinessHeadline.Modify();\n end;\n"} +{"instance_id": "microsoftInternal__NAV-226875__cf-1", "base_instance_id": "microsoftInternal__NAV-226875", "variant_description": "Vendor Name should be populated only when Account Type is Vendor AND Document Type is Invoice", "failure_layer": null, "FAIL_TO_PASS": [{"codeunitID": 134920, "functionName": ["VendorNameFieldPopulatesOnlyForVendorAccountType"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al b/App/Layers/W1/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al\n--- a/App/Layers/W1/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al\n+++ b/App/Layers/W1/Tests/General Journal/ERMGeneralJournalUT.Codeunit.al\n@@ -6000,6 +6000,59 @@ codeunit 134920 \"ERM General Journal UT\"\n GenJournalLine[4].TestField(\"Document No.\", NewDocNo);\n end;\n \n+ [Test]\n+ procedure VendorNameFieldPopulatesOnlyForVendorAccountType()\n+ var\n+ GenJournalBatch: Record \"Gen. Journal Batch\";\n+ GenJournalTemplate: Record \"Gen. Journal Template\";\n+ GLAccount: Record \"G/L Account\";\n+ Vendor: Record Vendor;\n+ PurchaseJournal: TestPage \"Purchase Journal\";\n+ begin\n+ // [SCENARIO 599505] Purchase Journal page validates vendor name field based on account type and document type\n+ Initialize();\n+\n+ // [GIVEN] Create a vendor with random name\n+ LibraryPurchase.CreateVendor(Vendor);\n+ Vendor.Name := LibraryRandom.RandText(20);\n+ Vendor.Modify(true);\n+\n+ // [GIVEN] Create Purchase Journal Template and Batch\n+ LibraryERM.CreateGenJournalBatch(GenJournalBatch, LibraryJournals.SelectGenJournalTemplate(GenJournalTemplate.Type::Purchases, Page::\"Purchase Journal\"));\n+\n+ // [WHEN] Open Purchase Journal page and perform actions\n+ PurchaseJournal.OpenEdit();\n+ PurchaseJournal.CurrentJnlBatchName.SetValue(GenJournalBatch.Name);\n+\n+ // [GIVEN] Set Document Type to Invoice and Document No. to random value\n+ PurchaseJournal.\"Document Type\".SetValue(\"Gen. Journal Document Type\"::Invoice);\n+ PurchaseJournal.\"Document No.\".SetValue(LibraryRandom.RandText(10));\n+\n+ // [GIVEN] Set Account Type to Vendor and Account No. to Vendor.\"No.\"\n+ PurchaseJournal.\"Account Type\".SetValue(\"Gen. Journal Account Type\"::Vendor);\n+ PurchaseJournal.\"Account No.\".SetValue(Vendor.\"No.\");\n+\n+ // [THEN] Verify Vendor Name page field is populated with Vendor.Name\n+ PurchaseJournal.\"\".AssertEquals(Vendor.Name);\n+\n+ // [WHEN] Change Document Type to blank\n+ PurchaseJournal.\"Document Type\".SetValue(\"Gen. Journal Document Type\"::\" \");\n+\n+ // [THEN] Vendor Name should not be populated\n+ PurchaseJournal.\"\".AssertEquals('');\n+\n+ // [WHEN] Set Account Type to G/L Account and Account No. to a new G/L Account.\"No.\"\n+ PurchaseJournal.\"Account Type\".SetValue(\"Gen. Journal Account Type\"::\"G/L Account\");\n+ LibraryERM.CreateGLAccount(GLAccount);\n+ PurchaseJournal.\"Account No.\".SetValue(GLAccount.\"No.\");\n+\n+ // [THEN] Verify Vendor Name field should be empty for G/L Account\n+ PurchaseJournal.\"\".AssertEquals('');\n+\n+ // [CLEANUP] Close Purchase Journal page\n+ PurchaseJournal.Close();\n+ end;\n+\n local procedure Initialize()\n begin\n LibrarySetupStorage.Restore();\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n@@ -170,7 +170,7 @@ page 254 \"Purchase Journal\"\n CurrPage.SaveRecord();\n end;\n }\n- field(\"\"; AccName)\n+ field(\"\"; GetVendorName())\n {\n ApplicationArea = Basic, Suite;\n Caption = 'Vendor Name';\n@@ -1661,6 +1661,14 @@ page 254 \"Purchase Journal\"\n NumberOfRecords := Rec.Count();\n end;\n \n+ local procedure GetVendorName(): Text[100]\n+ begin\n+ if (Rec.\"Account Type\" = Rec.\"Account Type\"::Vendor) and (Rec.\"Document Type\" = Rec.\"Document Type\"::Invoice) and (AccName <> '') then\n+ exit(AccName);\n+\n+ exit('');\n+ end;\n+\n local procedure EnableApplyEntriesAction()\n begin\n ApplyEntriesActionEnabled :=\n"} +{"instance_id": "microsoftInternal__NAV-227153__cf-1", "base_instance_id": "microsoftInternal__NAV-227153", "variant_description": "Only include entries matching the customer's current posting group", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-227153__cf-1", "FAIL_TO_PASS": [{"codeunitID": 134982, "functionName": ["ReconcileCustVendAccounts_MultiplePostingGroups"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/Report/ERMFinancialReports.Codeunit.al b/App/Layers/W1/Tests/Report/ERMFinancialReports.Codeunit.al\nindex 073ba04a94f..cf00000001 100644\n--- a/App/Layers/W1/Tests/Report/ERMFinancialReports.Codeunit.al\n+++ b/App/Layers/W1/Tests/Report/ERMFinancialReports.Codeunit.al\n@@ -1498,6 +1498,91 @@ codeunit 134982 \"ERM Financial Reports\"\n Assert.AreNotEqual(0, GLEntry.\"Source Currency Amount\", SourceCurrencyCodeErr);\n end;\n \n+ [Test]\n+ [HandlerFunctions('RHReconcileCustandVendAccs')]\n+ procedure ReconcileCustVendAccounts_MultiplePostingGroups()\n+ var\n+ SalesReceivablesSetup: Record \"Sales & Receivables Setup\";\n+ CustomerPostingGroup: array[2] of Record \"Customer Posting Group\";\n+ Customer: Record Customer;\n+ GenJournalBatch: Record \"Gen. Journal Batch\";\n+ GenJournalLine: Record \"Gen. Journal Line\";\n+ GLAccount: array[3] of Record \"G/L Account\";\n+ ReconcileCustAndVendAccs: Report \"Reconcile Cust. and Vend. Accs\";\n+ Amount1, Amount2 : Decimal;\n+ WorkdateTxt: Text[30];\n+ begin\n+ // [SCENARIO 601857] Report should only show amounts for entries matching the customer's current posting group\n+ Initialize();\n+\n+ // [GIVEN] Enable Allow Multiple Posting Groups\n+ SalesReceivablesSetup.Get();\n+ SalesReceivablesSetup.Validate(\"Allow Multiple Posting Groups\", true);\n+ SalesReceivablesSetup.Modify(true);\n+\n+ // [GIVEN] Create two Customer Posting Groups with different Receivables Accounts\n+ LibrarySales.CreateCustomerPostingGroup(CustomerPostingGroup[1]);\n+ LibrarySales.CreateCustomerPostingGroup(CustomerPostingGroup[2]);\n+ LibrarySales.CreateAltCustomerPostingGroup(CustomerPostingGroup[1].Code, CustomerPostingGroup[2].Code);\n+\n+ // [GIVEN] Create a customer with one of the posting groups and enable multiple posting groups\n+ LibrarySales.CreateCustomer(Customer);\n+ Customer.Validate(\"Customer Posting Group\", CustomerPostingGroup[1].Code);\n+ Customer.Validate(\"Allow Multiple Posting Groups\", true);\n+ Customer.Modify(true);\n+\n+ // [GIVEN] Create General Journal Batch\n+ LibraryJournals.CreateGenJournalBatch(GenJournalBatch);\n+\n+ // [GIVEN] Post payment 1 with first posting group\n+ Amount1 := -1 * LibraryRandom.RandDec(1000, 2);\n+ LibraryERM.CreateGLAccount(GLAccount[1]);\n+ LibraryJournals.CreateGenJournalLine(\n+ GenJournalLine,\n+ GenJournalBatch.\"Journal Template Name\",\n+ GenJournalBatch.Name,\n+ GenJournalLine.\"Document Type\"::Payment,\n+ GenJournalLine.\"Account Type\"::Customer,\n+ Customer.\"No.\",\n+ GenJournalLine.\"Bal. Account Type\"::\"G/L Account\",\n+ GLAccount[1].\"No.\",\n+ Amount1);\n+ GenJournalLine.Validate(\"Posting Group\", CustomerPostingGroup[1].Code);\n+ GenJournalLine.Modify(true);\n+ LibraryERM.PostGeneralJnlLine(GenJournalLine);\n+\n+ // [GIVEN] Post payment 2 with second posting group\n+ Amount2 := -1 * LibraryRandom.RandDec(2000, 2);\n+ LibraryERM.CreateGLAccount(GLAccount[2]);\n+ LibraryJournals.CreateGenJournalLine(\n+ GenJournalLine,\n+ GenJournalBatch.\"Journal Template Name\",\n+ GenJournalBatch.Name,\n+ GenJournalLine.\"Document Type\"::Payment,\n+ GenJournalLine.\"Account Type\"::Customer,\n+ Customer.\"No.\",\n+ GenJournalLine.\"Bal. Account Type\"::\"G/L Account\",\n+ GLAccount[2].\"No.\",\n+ Amount2);\n+ GenJournalLine.Validate(\"Posting Group\", CustomerPostingGroup[2].Code);\n+ GenJournalLine.Modify(true);\n+ LibraryERM.PostGeneralJnlLine(GenJournalLine);\n+\n+ // [WHEN] Run the Reconcile Cust. And Vend. Accounts report with DateFilter as Workdate\n+ WorkdateTxt := Format(WorkDate());\n+ Clear(ReconcileCustAndVendAccs);\n+ GLAccount[3].SetRange(\"Date Filter\", WorkDate());\n+ GLAccount[3].FindFirst();\n+ ReconcileCustAndVendAccs.SetTableView(GLAccount[3]);\n+ Commit();\n+ ReconcileCustAndVendAccs.Run();\n+\n+ // [THEN] Verify: Amounts are distributed to correct G/L accounts\n+ LibraryReportDataset.LoadDataSetFile();\n+ LibraryReportDataset.AssertElementWithValueExists('No_GLAccount', CustomerPostingGroup[1].\"Receivables Account\");\n+ LibraryReportDataset.AssertElementWithValueExists('Amount', Amount1);\n+ end;\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\nindex e033f91eb0b..cf00000001 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\n@@ -484,5 +484,6 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\");\n DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", Cust.\"Customer Posting Group\");\n \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n DtldCustLedgEntry.CalcSums(\"Amount (LCY)\");\n CustAccAmount := CustAccAmount + DtldCustLedgEntry.\"Amount (LCY)\";\n@@ -505,5 +506,6 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\", \"Entry Type\");\n DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", Cust.\"Customer Posting Group\");\n DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n DtldCustLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n@@ -527,5 +529,6 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\", \"Entry Type\");\n DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", Cust.\"Customer Posting Group\");\n DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n DtldCustLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n"} +{"instance_id": "microsoftInternal__NAV-227153__cf-2", "base_instance_id": "microsoftInternal__NAV-227153", "variant_description": "Only include Payment-type document entries in reconciliation", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-227153__cf-2", "FAIL_TO_PASS": [{"codeunitID": 134982, "functionName": ["ReconcileCustVendAccounts_MultiplePostingGroups"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/Report/ERMFinancialReports.Codeunit.al b/App/Layers/W1/Tests/Report/ERMFinancialReports.Codeunit.al\nindex 073ba04a94f..cf00000001 100644\n--- a/App/Layers/W1/Tests/Report/ERMFinancialReports.Codeunit.al\n+++ b/App/Layers/W1/Tests/Report/ERMFinancialReports.Codeunit.al\n@@ -1498,6 +1498,92 @@ codeunit 134982 \"ERM Financial Reports\"\n Assert.AreNotEqual(0, GLEntry.\"Source Currency Amount\", SourceCurrencyCodeErr);\n end;\n \n+ [Test]\n+ [HandlerFunctions('RHReconcileCustandVendAccs')]\n+ procedure ReconcileCustVendAccounts_MultiplePostingGroups()\n+ var\n+ SalesReceivablesSetup: Record \"Sales & Receivables Setup\";\n+ CustomerPostingGroup: array[2] of Record \"Customer Posting Group\";\n+ Customer: Record Customer;\n+ GenJournalBatch: Record \"Gen. Journal Batch\";\n+ GenJournalLine: Record \"Gen. Journal Line\";\n+ GLAccount: array[3] of Record \"G/L Account\";\n+ ReconcileCustAndVendAccs: Report \"Reconcile Cust. and Vend. Accs\";\n+ Amount1, Amount2 : Decimal;\n+ WorkdateTxt: Text[30];\n+ begin\n+ // [SCENARIO 601857] Report should only include Payment-type document entries in reconciliation amounts\n+ Initialize();\n+\n+ // [GIVEN] Enable Allow Multiple Posting Groups\n+ SalesReceivablesSetup.Get();\n+ SalesReceivablesSetup.Validate(\"Allow Multiple Posting Groups\", true);\n+ SalesReceivablesSetup.Modify(true);\n+\n+ // [GIVEN] Create two Customer Posting Groups with different Receivables Accounts\n+ LibrarySales.CreateCustomerPostingGroup(CustomerPostingGroup[1]);\n+ LibrarySales.CreateCustomerPostingGroup(CustomerPostingGroup[2]);\n+ LibrarySales.CreateAltCustomerPostingGroup(CustomerPostingGroup[1].Code, CustomerPostingGroup[2].Code);\n+\n+ // [GIVEN] Create a customer with one of the posting groups and enable multiple posting groups\n+ LibrarySales.CreateCustomer(Customer);\n+ Customer.Validate(\"Customer Posting Group\", CustomerPostingGroup[1].Code);\n+ Customer.Validate(\"Allow Multiple Posting Groups\", true);\n+ Customer.Modify(true);\n+\n+ // [GIVEN] Create General Journal Batch\n+ LibraryJournals.CreateGenJournalBatch(GenJournalBatch);\n+\n+ // [GIVEN] Post payment 1 with first posting group\n+ Amount1 := -1 * LibraryRandom.RandDec(1000, 2);\n+ LibraryERM.CreateGLAccount(GLAccount[1]);\n+ LibraryJournals.CreateGenJournalLine(\n+ GenJournalLine,\n+ GenJournalBatch.\"Journal Template Name\",\n+ GenJournalBatch.Name,\n+ GenJournalLine.\"Document Type\"::Payment,\n+ GenJournalLine.\"Account Type\"::Customer,\n+ Customer.\"No.\",\n+ GenJournalLine.\"Bal. Account Type\"::\"G/L Account\",\n+ GLAccount[1].\"No.\",\n+ Amount1);\n+ GenJournalLine.Validate(\"Posting Group\", CustomerPostingGroup[1].Code);\n+ GenJournalLine.Modify(true);\n+ LibraryERM.PostGeneralJnlLine(GenJournalLine);\n+\n+ // [GIVEN] Post invoice with second posting group\n+ Amount2 := LibraryRandom.RandDec(2000, 2);\n+ LibraryERM.CreateGLAccount(GLAccount[2]);\n+ LibraryJournals.CreateGenJournalLine(\n+ GenJournalLine,\n+ GenJournalBatch.\"Journal Template Name\",\n+ GenJournalBatch.Name,\n+ GenJournalLine.\"Document Type\"::Invoice,\n+ GenJournalLine.\"Account Type\"::Customer,\n+ Customer.\"No.\",\n+ GenJournalLine.\"Bal. Account Type\"::\"G/L Account\",\n+ GLAccount[2].\"No.\",\n+ Amount2);\n+ GenJournalLine.Validate(\"Posting Group\", CustomerPostingGroup[2].Code);\n+ GenJournalLine.Modify(true);\n+ LibraryERM.PostGeneralJnlLine(GenJournalLine);\n+\n+ // [WHEN] Run the Reconcile Cust. And Vend. Accounts report with DateFilter as Workdate\n+ WorkdateTxt := Format(WorkDate());\n+ Clear(ReconcileCustAndVendAccs);\n+ GLAccount[3].SetRange(\"Date Filter\", WorkDate());\n+ GLAccount[3].FindFirst();\n+ ReconcileCustAndVendAccs.SetTableView(GLAccount[3]);\n+ Commit();\n+ ReconcileCustAndVendAccs.Run();\n+\n+ // [THEN] Verify: Amounts are distributed to correct G/L accounts\n+ LibraryReportDataset.LoadDataSetFile();\n+ LibraryReportDataset.AssertElementWithValueExists('No_GLAccount', CustomerPostingGroup[1].\"Receivables Account\");\n+ LibraryReportDataset.AssertElementWithValueExists('No_GLAccount', CustomerPostingGroup[2].\"Receivables Account\");\n+ LibraryReportDataset.AssertElementWithValueExists('Amount', Amount1);\n+ end;\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\nindex e033f91eb0b..cf00000002 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\n@@ -472,130 +472,89 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n \n local procedure CalcCustAccAmount(PostingGr: Code[20]): Decimal\n var\n- Cust: Record Customer;\n DtldCustLedgEntry: Record \"Detailed Cust. Ledg. Entry\";\n CustAccAmount: Decimal;\n begin\n- Cust.SetCurrentKey(\"Customer Posting Group\");\n- Cust.SetRange(\"Customer Posting Group\", PostingGr);\n-\n- if Cust.Find('-') then\n- repeat\n- DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\");\n- DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n- DtldCustLedgEntry.CalcSums(\"Amount (LCY)\");\n- CustAccAmount := CustAccAmount + DtldCustLedgEntry.\"Amount (LCY)\";\n- until Cust.Next() = 0;\n+ DtldCustLedgEntry.SetCurrentKey(\"Posting Group\", \"Posting Date\");\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ DtldCustLedgEntry.SetRange(\"Document Type\", DtldCustLedgEntry.\"Document Type\"::Payment);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n+ DtldCustLedgEntry.CalcSums(\"Amount (LCY)\");\n+ CustAccAmount := CustAccAmount + DtldCustLedgEntry.\"Amount (LCY)\";\n \n exit(CustAccAmount);\n end;\n \n local procedure CalcCustCreditAmount(PostingGr: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n var\n- Cust: Record Customer;\n DtldCustLedgEntry: Record \"Detailed Cust. Ledg. Entry\";\n CustCreditAmount: Decimal;\n begin\n- Cust.SetCurrentKey(\"Customer Posting Group\");\n- Cust.SetRange(\"Customer Posting Group\", PostingGr);\n-\n- if Cust.Find('-') then\n- repeat\n- DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\", \"Entry Type\");\n- DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n- DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n- DtldCustLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n- CustCreditAmount := CustCreditAmount + DtldCustLedgEntry.\"Credit Amount (LCY)\";\n- until Cust.Next() = 0;\n+ DtldCustLedgEntry.SetCurrentKey(\"Posting Group\", \"Posting Date\", \"Entry Type\");\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n+ DtldCustLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n+ CustCreditAmount := CustCreditAmount + DtldCustLedgEntry.\"Credit Amount (LCY)\";\n \n exit(CustCreditAmount);\n end;\n \n local procedure CalcCustDebitAmount(PostingGr: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n var\n- Cust: Record Customer;\n DtldCustLedgEntry: Record \"Detailed Cust. Ledg. Entry\";\n CustDebitAmount: Decimal;\n begin\n- Cust.SetCurrentKey(\"Customer Posting Group\");\n- Cust.SetRange(\"Customer Posting Group\", PostingGr);\n-\n- if Cust.Find('-') then\n- repeat\n- DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\", \"Entry Type\");\n- DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n- DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n- DtldCustLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n- CustDebitAmount := CustDebitAmount + DtldCustLedgEntry.\"Debit Amount (LCY)\";\n- until Cust.Next() = 0;\n+ DtldCustLedgEntry.SetCurrentKey(\"Posting Group\", \"Posting Date\", \"Entry Type\");\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n+ DtldCustLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n+ CustDebitAmount := CustDebitAmount + DtldCustLedgEntry.\"Debit Amount (LCY)\";\n \n exit(-CustDebitAmount);\n end;\n \n local procedure CalcVendAccAmount(PostingGr: Code[20]): Decimal\n var\n- Vend: Record Vendor;\n DtldVendLedgEntry: Record \"Detailed Vendor Ledg. Entry\";\n VendAccAmount: Decimal;\n begin\n- Vend.SetCurrentKey(\"Vendor Posting Group\");\n- Vend.SetRange(\"Vendor Posting Group\", PostingGr);\n-\n- if Vend.Find('-') then\n- repeat\n- DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\");\n- DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n- DtldVendLedgEntry.CalcSums(\"Amount (LCY)\");\n- VendAccAmount := VendAccAmount + DtldVendLedgEntry.\"Amount (LCY)\";\n- until Vend.Next() = 0;\n+ DtldVendLedgEntry.SetCurrentKey(\"Posting Group\", \"Posting Date\");\n+ DtldVendLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n+ DtldVendLedgEntry.CalcSums(\"Amount (LCY)\");\n+ VendAccAmount := VendAccAmount + DtldVendLedgEntry.\"Amount (LCY)\";\n \n exit(VendAccAmount);\n end;\n \n local procedure CalcVendCreditAmount(PostingGr: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n var\n- Vend: Record Vendor;\n DtldVendLedgEntry: Record \"Detailed Vendor Ledg. Entry\";\n VendCreditAmount: Decimal;\n begin\n- Vend.SetCurrentKey(\"Vendor Posting Group\");\n- Vend.SetRange(\"Vendor Posting Group\", PostingGr);\n-\n- if Vend.Find('-') then\n- repeat\n- DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\", \"Entry Type\");\n- DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n- DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n- DtldVendLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n- VendCreditAmount := VendCreditAmount + DtldVendLedgEntry.\"Credit Amount (LCY)\";\n- until Vend.Next() = 0;\n+ DtldVendLedgEntry.SetCurrentKey(\"Posting Group\", \"Posting Date\", \"Entry Type\");\n+ DtldVendLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n+ DtldVendLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n+ VendCreditAmount := VendCreditAmount + DtldVendLedgEntry.\"Credit Amount (LCY)\";\n \n exit(VendCreditAmount);\n end;\n \n local procedure CalcVendDebitAmount(PostingGr: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n var\n- Vend: Record Vendor;\n DtldVendLedgEntry: Record \"Detailed Vendor Ledg. Entry\";\n VendDebitAmount: Decimal;\n begin\n- Vend.SetCurrentKey(\"Vendor Posting Group\");\n- Vend.SetRange(\"Vendor Posting Group\", PostingGr);\n-\n- if Vend.Find('-') then\n- repeat\n- DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\", \"Entry Type\");\n- DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n- DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n- DtldVendLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n- VendDebitAmount := VendDebitAmount + DtldVendLedgEntry.\"Debit Amount (LCY)\";\n- until Vend.Next() = 0;\n+ DtldVendLedgEntry.SetCurrentKey(\"Posting Group\", \"Posting Date\", \"Entry Type\");\n+ DtldVendLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n+ DtldVendLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n+ VendDebitAmount := VendDebitAmount + DtldVendLedgEntry.\"Debit Amount (LCY)\";\n \n exit(-VendDebitAmount);\n end;\n"} +{"instance_id": "microsoftInternal__NAV-227219__cf-1", "base_instance_id": "microsoftInternal__NAV-227219", "variant_description": "Validation only when status is Open", "failure_layer": null, "FAIL_TO_PASS": [{"codeunitID": 137038, "functionName": ["ReleaseTransferOrderWhenVariantMandatory"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/SCM/SCMTransfers.Codeunit.al b/App/Layers/W1/Tests/SCM/SCMTransfers.Codeunit.al\nindex f3c55b5..7c57e6c 100644\n--- a/App/Layers/W1/Tests/SCM/SCMTransfers.Codeunit.al\n+++ b/App/Layers/W1/Tests/SCM/SCMTransfers.Codeunit.al\n@@ -49,6 +49,7 @@\n DerivedTransLineErr: Label 'Expected no Derived Transfer Line i.e. line with \"Derived From Line No.\" equal to original transfer line.';\n IncorrectSNUndoneErr: Label 'The Serial No. of the item on the transfer shipment line that was undone was different from the SN on the corresponding transfer line.';\n ApplToItemEntryErr: Label '%1 must be %2 in %3.', Comment = '%1 is Appl-to Item Entry, %2 is Item Ledger Entry No. and %3 is Transfer Line';\n+ VariantCodeMandatoryErr: Label '%1 must have a value in %2: Document No.=%3, Line No.=%4. It cannot be zero or empty.', Comment = '%1:Field Caption, %2: TableCaption, %3:Document No, %4: Line No.';\n \n [Test]\n [HandlerFunctions('MessageHandler')]\n@@ -4096,6 +4097,59 @@\n 'The cost amount of the undo transfer shipment entry should match the original transfer shipment entry (with opposite sign)');\n end;\n \n+ [Test]\n+ procedure ReleaseTransferOrderWhenVariantMandatory()\n+ var\n+ InTransitLocation: Record Location;\n+ Item: Record Item;\n+ ItemVariant: array[2] of Record \"Item Variant\";\n+ FromLocation: Record Location;\n+ ToLocation: Record Location;\n+ TransferHeader: Record \"Transfer Header\";\n+ TransferLine: Record \"Transfer Line\";\n+ begin\n+ // [SCENARIO 601487] Release Transfer Order when Variant Mandatory in Inventory Setup.\n+ Initialize();\n+\n+ // [GIVEN] Create From/To Locations and InTransit Location\n+ LibraryWarehouse.CreateLocationWithInventoryPostingSetup(FromLocation);\n+ LibraryWarehouse.CreateLocationWithInventoryPostingSetup(ToLocation);\n+ LibraryWarehouse.CreateInTransitLocation(InTransitLocation);\n+\n+ // [GIVEN] Create Item and two Variants\n+ LibraryInventory.CreateItem(Item);\n+ LibraryInventory.CreateItemVariant(ItemVariant[1], Item.\"No.\");\n+ LibraryInventory.CreateItemVariant(ItemVariant[2], Item.\"No.\");\n+\n+ // [GIVEN] Set Inventory Setup to require variant if exists\n+ SetVariantMandatoryInInventorySetup();\n+\n+ // [GIVEN] Create Transfer Order and Line with variant set\n+ LibraryInventory.CreateTransferHeader(TransferHeader, FromLocation.Code, ToLocation.Code, InTransitLocation.Code);\n+ LibraryInventory.CreateTransferLine(TransferHeader, TransferLine, Item.\"No.\", LibraryRandom.RandIntInRange(10, 100));\n+ TransferLine.Validate(\"Variant Code\", ItemVariant[1].Code);\n+ TransferLine.Modify(true);\n+\n+ // [GIVEN] Release the transfer order (succeeds because variant is set)\n+ LibraryWarehouse.ReleaseTransferOrder(TransferHeader);\n+\n+ // [GIVEN] Reopen and clear variant code\n+ LibraryWarehouse.ReopenTransferOrder(TransferHeader);\n+ TransferLine.Get(TransferLine.\"Document No.\", TransferLine.\"Line No.\");\n+ TransferLine.Validate(\"Variant Code\", '');\n+ TransferLine.Modify(true);\n+\n+ // [WHEN] Try to release again with missing variant (status is Open)\n+ asserterror LibraryWarehouse.ReleaseTransferOrder(TransferHeader);\n+\n+ // [THEN] Assert error: variant code is mandatory\n+ Assert.ExpectedError(\n+ StrSubstNo(\n+ VariantCodeMandatoryErr,\n+ TransferLine.FieldCaption(\"Variant Code\"), TransferLine.TableCaption(),\n+ TransferLine.\"Document No.\", TransferLine.\"Line No.\"));\n+ end;\n+\n local procedure Initialize()\n var\n LibraryERMCountryData: Codeunit \"Library - ERM Country Data\";\n@@ -5649,6 +5703,15 @@\n until WarehouseActivityLine.Next() = 0;\n end;\n \n+ local procedure SetVariantMandatoryInInventorySetup()\n+ var\n+ InventorySetup: Record \"Inventory Setup\";\n+ begin\n+ InventorySetup.Get();\n+ InventorySetup.Validate(\"Variant Mandatory if Exists\", true);\n+ InventorySetup.Modify(true);\n+ end;\n+\n local procedure FindAndUpdateTransferPickWarehouseActivityLine(var WarehouseActivityLine: Record \"Warehouse Activity Line\"; Item: Record Item)\n begin\n WarehouseActivityLine.SetRange(\"Item No.\", Item.\"No.\");\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al\nindex 979cdb4..32adab0 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al\n@@ -119,7 +119,7 @@ codeunit 5708 \"Release Transfer Document\"\n if IsHandled then\n exit;\n \n- TransLine.SetLoadFields(\"Document No.\", Quantity, \"Item No.\");\n+ TransLine.SetLoadFields(\"Document No.\", Quantity, \"Item No.\", \"Variant Code\");\n TransLine.SetRange(\"Document No.\", TransHeader.\"No.\");\n TransLine.SetFilter(Quantity, '<>0');\n if TransLine.IsEmpty() then\n@@ -131,6 +131,8 @@ codeunit 5708 \"Release Transfer Document\"\n Item.Get(TransLine.\"Item No.\");\n if Item.IsInventoriableType() then\n TransLine.TestField(\"Unit of Measure Code\");\n+ if (TransHeader.Status = TransHeader.Status::Open) and Item.IsVariantMandatory() then\n+ TransLine.TestField(\"Variant Code\");\n until TransLine.Next() = 0;\n TransLine.SetFilter(\"Item No.\", '');\n end;\n"} +{"instance_id": "microsoftInternal__NAV-227358__cf-1", "base_instance_id": "microsoftInternal__NAV-227358", "variant_description": "Unlink only when Incoming Document Entry No. is non-zero; skip unlink for lines without incoming document", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-227358__cf-1", "FAIL_TO_PASS": [{"codeunitID": 134227, "functionName": ["RecurringJournalSuccessfullyPostedWhenUnlinkIncomingDocumentOnPostingOptionIsActivated"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/ERM/ERMPostRecurringJournal.Codeunit.al b/App/Layers/W1/Tests/ERM/ERMPostRecurringJournal.Codeunit.al\nindex 82601475bc6..cf00000001 100644\n--- a/App/Layers/W1/Tests/ERM/ERMPostRecurringJournal.Codeunit.al\n+++ b/App/Layers/W1/Tests/ERM/ERMPostRecurringJournal.Codeunit.al\n@@ -1410,6 +1410,26 @@ codeunit 134227 \"ERM PostRecurringJournal\"\n GenJournalLine[1].\"Line No.\"));\n end;\n \n+ [Test]\n+ procedure RecurringJournalSuccessfullyPostedWhenUnlinkIncomingDocumentOnPostingOptionIsActivated()\n+ var\n+ GenJournalLine: Record \"Gen. Journal Line\";\n+ RecurringFrequency: array[6] of DateFormula;\n+ begin\n+ // [SCENARIO 602441] The changes to the Gen. Journal Line record cannot be saved because some information is not up-to-date\" error when posting Recurring General Journal and the Unlink Incoming Document on Posting option is activated.\n+ Initialize();\n+\n+ // [GIVEN] Create Recurring Journal Lines.\n+ CreateRecurringJournalLineWithVariable(GenJournalLine, RecurringFrequency);\n+\n+ // [GIVEN] Set Incoming Document Entry No. to 0\n+ GenJournalLine.\"Incoming Document Entry No.\" := 0;\n+ GenJournalLine.Modify();\n+\n+ // [THEN] Post Recurring Journal Lines Successfully\n+ LibraryERM.PostGeneralJnlLine(GenJournalLine);\n+ end;\n+\n local procedure Initialize()\n begin\n LibraryTestInitialize.OnTestInitialize(Codeunit::\"ERM PostRecurringJournal\");\n@@ -1954,6 +1970,73 @@ codeunit 134227 \"ERM PostRecurringJournal\"\n Assert.AreEqual(GenJnlAllocation.\"Dimension Set ID\", DimensionSetID, AllocationDimensionErr);\n end;\n \n+ local procedure CreateRecurringJournalLineWithVariable(var GenJournalLine: Record \"Gen. Journal Line\"; var RecurringFrequency: array[6] of DateFormula)\n+ var\n+ GLAccount: Record \"G/L Account\";\n+ GenJournalBatch: Record \"Gen. Journal Batch\";\n+ Vendor: Record Vendor;\n+ Counter: Integer;\n+ NoOfLines: Integer;\n+ begin\n+ // Use Random Number Generator to generate the No. of lines.\n+ NoOfLines := 2 * LibraryRandom.RandInt(3);\n+\n+ //[GIVEN] Find G/L Account\n+ FindGLAccount(GLAccount);\n+\n+ //[GIVEN] Create Vendor\n+ LibraryPurchase.CreateVendor(Vendor);\n+\n+ //[WHEN] Create Recurring Journal Lines with Allocation and with random values.\n+ CreateRecurringGenJournalTemplateAndBatch(GenJournalBatch);\n+ for Counter := 1 to NoOfLines do begin\n+ if Counter = 1 then begin\n+ CreateGeneralJournalLineWithAccountType(\n+ GenJournalLine, GenJournalBatch, GenJournalLine.\"Recurring Method\"::\"V Variable\", -1000,\n+ Vendor.\"No.\");\n+ RecurringFrequency[Counter] := GenJournalLine.\"Recurring Frequency\";\n+ GenJournalLine.\"Document No.\" := '123';\n+ GenJournalLine.Modify();\n+ end else\n+ CreateGeneralJournalLineDocType(\n+ GenJournalLine, GenJournalBatch, GenJournalLine.\"Recurring Method\"::\"V Variable\", 1000,\n+ GLAccount.\"No.\");\n+ GenJournalLine.\"Document No.\" := '123';\n+ GenJournalLine.Modify();\n+ GLAccount.Next();\n+ RecurringFrequency[Counter] := GenJournalLine.\"Recurring Frequency\";\n+ end;\n+ end;\n+\n+ local procedure CreateGeneralJournalLineWithAccountType(var GenJournalLine: Record \"Gen. Journal Line\"; GenJournalBatch: Record \"Gen. Journal Batch\"; RecurringMethod: Enum \"Gen. Journal Recurring Method\"; Amount: Decimal; AccountNo: Code[20])\n+ begin\n+ CreateGeneralJournalLineWithType(\n+ GenJournalLine, GenJournalBatch, RecurringMethod, GenJournalLine.\"Document Type\"::Invoice,\n+ GenJournalLine.\"Account Type\"::Vendor, AccountNo, Amount);\n+ end;\n+\n+ local procedure CreateGeneralJournalLineDocType(var GenJournalLine: Record \"Gen. Journal Line\"; GenJournalBatch: Record \"Gen. Journal Batch\"; RecurringMethod: Enum \"Gen. Journal Recurring Method\"; Amount: Decimal; AccountNo: Code[20])\n+ begin\n+ CreateGeneralJournalLineWithType(\n+ GenJournalLine, GenJournalBatch, RecurringMethod, GenJournalLine.\"Document Type\"::Invoice,\n+ GenJournalLine.\"Account Type\"::\"G/L Account\", AccountNo, Amount);\n+ end;\n+\n+ local procedure CreateRecurringGenJournalTemplateAndBatch(var GenJournalBatch: Record \"Gen. Journal Batch\")\n+ var\n+ GenJnlTemplate: Record \"Gen. Journal Template\";\n+ begin\n+ LibraryERM.FindRecurringTemplateName(GenJnlTemplate);\n+ GenJnlTemplate.Validate(Type, GenJnlTemplate.Type::General);\n+ GenJnlTemplate.Validate(Recurring, true);\n+ GenJnlTemplate.Validate(\"Bal. Account Type\", GenJnlTemplate.\"Bal. Account Type\"::\"G/L Account\");\n+ GenJnlTemplate.Validate(\"Force Doc. Balance\", true);\n+ GenJnlTemplate.Validate(\"Copy VAT Setup to Jnl. Lines\", true);\n+ GenJnlTemplate.Validate(\"Unlink Inc. Doc On Posting\", true);\n+ GenJnlTemplate.Modify(true);\n+ LibraryERM.CreateRecurringBatchName(GenJournalBatch, GenJnlTemplate.Name);\n+ end;\n+\n [ConfirmHandler]\n [Scope('OnPrem')]\n procedure ConfirmHandlerYes(Question: Text[1024]; var Reply: Boolean)\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\nindex 61aff663d95..cf00000001 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\n@@ -1006,6 +1006,9 @@ codeunit 13 \"Gen. Jnl.-Post Batch\"\n exit;\n if not CurrGenJnlTemplate.\"Unlink Inc. Doc On Posting\" then\n exit;\n+ if GenJnlLine.\"Incoming Document Entry No.\" = 0 then\n+ exit;\n+ GenJnlLine.GET(GenJnlLine.\"Journal Template Name\", GenJnlLine.\"Journal Batch Name\", GenJnlLine.\"Line No.\");\n GenJnlLine.\"Incoming Document Entry No.\" := 0;\n GenJnlLine.Modify();\n end;\n"} +{"instance_id": "microsoftInternal__NAV-227358__cf-2", "base_instance_id": "microsoftInternal__NAV-227358", "variant_description": "Unlinking should not be executed during posting; inline unlink logic replaced with exit", "failure_layer": null, "FAIL_TO_PASS": [{"codeunitID": 134227, "functionName": ["RecurringJournalSuccessfullyPostedWhenUnlinkIncomingDocumentOnPostingOptionIsActivated"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/App/Layers/W1/Tests/ERM/ERMPostRecurringJournal.Codeunit.al b/App/Layers/W1/Tests/ERM/ERMPostRecurringJournal.Codeunit.al\nindex 8260147..4f5cd01 100644\n--- a/App/Layers/W1/Tests/ERM/ERMPostRecurringJournal.Codeunit.al\n+++ b/App/Layers/W1/Tests/ERM/ERMPostRecurringJournal.Codeunit.al\n@@ -1410,6 +1410,22 @@ codeunit 134227 \"ERM PostRecurringJournal\"\n GenJournalLine[1].\"Line No.\"));\n end;\n \n+ [Test]\n+ procedure RecurringJournalSuccessfullyPostedWhenUnlinkIncomingDocumentOnPostingOptionIsActivated()\n+ var\n+ GenJournalLine: Record \"Gen. Journal Line\";\n+ RecurringFrequency: array[6] of DateFormula;\n+ begin\n+ // [SCENARIO 602441] The changes to the Gen. Journal Line record cannot be saved because some information is not up-to-date\" error when posting Recurring General Journal and the Unlink Incoming Document on Posting option is activated.\n+ Initialize();\n+\n+ // [GIVEN] Create Recurring Journal Lines.\n+ CreateRecurringJournalLineWithVariable(GenJournalLine, RecurringFrequency);\n+\n+ // [THEN] Post Recurring Journal Lines Successfully\n+ LibraryERM.PostGeneralJnlLine(GenJournalLine);\n+ end;\n+\n local procedure Initialize()\n begin\n LibraryTestInitialize.OnTestInitialize(Codeunit::\"ERM PostRecurringJournal\");\n@@ -1954,6 +1973,73 @@ codeunit 134227 \"ERM PostRecurringJournal\"\n Assert.AreEqual(GenJnlAllocation.\"Dimension Set ID\", DimensionSetID, AllocationDimensionErr);\n end;\n \n+ local procedure CreateRecurringJournalLineWithVariable(var GenJournalLine: Record \"Gen. Journal Line\"; var RecurringFrequency: array[6] of DateFormula)\n+ var\n+ GLAccount: Record \"G/L Account\";\n+ GenJournalBatch: Record \"Gen. Journal Batch\";\n+ Vendor: Record Vendor;\n+ Counter: Integer;\n+ NoOfLines: Integer;\n+ begin\n+ // Use Random Number Generator to generate the No. of lines.\n+ NoOfLines := 2 * LibraryRandom.RandInt(3);\n+\n+ //[GIVEN] Find G/L Account\n+ FindGLAccount(GLAccount);\n+\n+ //[GIVEN] Create Vendor\n+ LibraryPurchase.CreateVendor(Vendor);\n+\n+ //[WHEN] Create Recurring Journal Lines with Allocation and with random values.\n+ CreateRecurringGenJournalTemplateAndBatch(GenJournalBatch);\n+ for Counter := 1 to NoOfLines do begin\n+ if Counter = 1 then begin\n+ CreateGeneralJournalLineWithAccountType(\n+ GenJournalLine, GenJournalBatch, GenJournalLine.\"Recurring Method\"::\"V Variable\", -1000,\n+ Vendor.\"No.\");\n+ RecurringFrequency[Counter] := GenJournalLine.\"Recurring Frequency\";\n+ GenJournalLine.\"Document No.\" := '123';\n+ GenJournalLine.Modify();\n+ end else\n+ CreateGeneralJournalLineDocType(\n+ GenJournalLine, GenJournalBatch, GenJournalLine.\"Recurring Method\"::\"V Variable\", 1000,\n+ GLAccount.\"No.\");\n+ GenJournalLine.\"Document No.\" := '123';\n+ GenJournalLine.Modify();\n+ GLAccount.Next();\n+ RecurringFrequency[Counter] := GenJournalLine.\"Recurring Frequency\";\n+ end;\n+ end;\n+\n+ local procedure CreateGeneralJournalLineWithAccountType(var GenJournalLine: Record \"Gen. Journal Line\"; GenJournalBatch: Record \"Gen. Journal Batch\"; RecurringMethod: Enum \"Gen. Journal Recurring Method\"; Amount: Decimal; AccountNo: Code[20])\n+ begin\n+ CreateGeneralJournalLineWithType(\n+ GenJournalLine, GenJournalBatch, RecurringMethod, GenJournalLine.\"Document Type\"::Invoice,\n+ GenJournalLine.\"Account Type\"::Vendor, AccountNo, Amount);\n+ end;\n+\n+ local procedure CreateGeneralJournalLineDocType(var GenJournalLine: Record \"Gen. Journal Line\"; GenJournalBatch: Record \"Gen. Journal Batch\"; RecurringMethod: Enum \"Gen. Journal Recurring Method\"; Amount: Decimal; AccountNo: Code[20])\n+ begin\n+ CreateGeneralJournalLineWithType(\n+ GenJournalLine, GenJournalBatch, RecurringMethod, GenJournalLine.\"Document Type\"::Invoice,\n+ GenJournalLine.\"Account Type\"::\"G/L Account\", AccountNo, Amount);\n+ end;\n+\n+ local procedure CreateRecurringGenJournalTemplateAndBatch(var GenJournalBatch: Record \"Gen. Journal Batch\")\n+ var\n+ GenJnlTemplate: Record \"Gen. Journal Template\";\n+ begin\n+ LibraryERM.FindRecurringTemplateName(GenJnlTemplate);\n+ GenJnlTemplate.Validate(Type, GenJnlTemplate.Type::General);\n+ GenJnlTemplate.Validate(Recurring, true);\n+ GenJnlTemplate.Validate(\"Bal. Account Type\", GenJnlTemplate.\"Bal. Account Type\"::\"G/L Account\");\n+ GenJnlTemplate.Validate(\"Force Doc. Balance\", true);\n+ GenJnlTemplate.Validate(\"Copy VAT Setup to Jnl. Lines\", true);\n+ GenJnlTemplate.Validate(\"Unlink Inc. Doc On Posting\", true);\n+ GenJnlTemplate.Modify(true);\n+ LibraryERM.CreateRecurringBatchName(GenJournalBatch, GenJnlTemplate.Name);\n+ end;\n+\n [ConfirmHandler]\n [Scope('OnPrem')]\n procedure ConfirmHandlerYes(Question: Text[1024]; var Reply: Boolean)\n", "patch": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\nindex 61aff66..6e2b64a 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\n@@ -1006,8 +1006,7 @@ codeunit 13 \"Gen. Jnl.-Post Batch\"\n exit;\n if not CurrGenJnlTemplate.\"Unlink Inc. Doc On Posting\" then\n exit;\n- GenJnlLine.\"Incoming Document Entry No.\" := 0;\n- GenJnlLine.Modify();\n+ exit;\n end;\n \n local procedure CopyGenJnlLineBalancingData(var GenJnlLineTo: Record \"Gen. Journal Line\"; var GenJnlLineFrom: Record \"Gen. Journal Line\")\n"} +{"instance_id": "microsoft__BCApps-4699__cf-1", "base_instance_id": "microsoft__BCApps-4699", "variant_description": "Currency conversion should only apply to Unit Price, not Unit Cost", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoft__BCApps-4699__cf-1", "FAIL_TO_PASS": [{"codeunitID": 139567, "functionName": ["UnitTestCreateItemFCYToLCYConversion"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/src/Apps/W1/Shopify/Test/Products/ShpfyCreateItemTest.Codeunit.al b/src/Apps/W1/Shopify/Test/Products/ShpfyCreateItemTest.Codeunit.al\nindex a352529aba..f626c18258 100644\n--- a/src/Apps/W1/Shopify/Test/Products/ShpfyCreateItemTest.Codeunit.al\n+++ b/src/Apps/W1/Shopify/Test/Products/ShpfyCreateItemTest.Codeunit.al\n@@ -22,6 +22,7 @@ codeunit 139567 \"Shpfy Create Item Test\"\n \n var\n LibraryAssert: Codeunit \"Library Assert\";\n+ LibraryERM: Codeunit \"Library - ERM\";\n LibraryRandom: Codeunit \"Library - Random\";\n \n [Test]\n@@ -487,4 +488,42 @@ codeunit 139567 \"Shpfy Create Item Test\"\n LibraryAssert.RecordIsNotEmpty(ItemReference);\n until ShopifyVariant.Next() = 0;\n end;\n+\n+ [Test]\n+ procedure UnitTestCreateItemFCYToLCYConversion()\n+ var\n+ Item: Record Item;\n+ Shop: Record \"Shpfy Shop\";\n+ ShopifyVariant: Record \"Shpfy Variant\";\n+ ProductInitTest: Codeunit \"Shpfy Product Init Test\";\n+ InitializeTest: Codeunit \"Shpfy Initialize Test\";\n+ begin\n+ // [SCENARIO] Create a Item from a Shopify Product with the SKU value containing the Item No.\n+\n+ // [GIVEN] The Shop with the setting \"SKU Mapping\" = \"Item No.\";\n+ Shop := InitializeTest.CreateShop();\n+ Shop.\"SKU Mapping\" := \"Shpfy SKU Mapping\"::\"Item No.\";\n+ Shop.\"Currency Code\" := CreateCurrencyAndExchangeRate(2, 2);\n+ Shop.Modify();\n+\n+ // [GIVEN] A Shopify variant record of a standard shopify product. (The variant record always exists, even if the products don't have any variants.)\n+ ShopifyVariant := ProductInitTest.CreateStandardProduct(Shop);\n+ ShopifyVariant.Price := 10;\n+ ShopifyVariant.\"Unit Cost\" := 6;\n+ ShopifyVariant.Modify();\n+ ShopifyVariant.SetRecFilter();\n+\n+ // [WHEN] Executing the report \"Shpfy Create Item\" with the \"Shpfy Variant\" Record.\n+ Codeunit.Run(Codeunit::\"Shpfy Create Item\", ShopifyVariant);\n+\n+ // [THEN] Check Item fields\n+ LibraryAssert.IsTrue(Item.GetBySystemId(ShopifyVariant.\"Item SystemId\"), 'Get Item');\n+ LibraryAssert.AreNearlyEqual(ShopifyVariant.\"Unit Cost\", Item.\"Unit Cost\", 0.1, 'Unit Cost');\n+ LibraryAssert.AreNearlyEqual(ShopifyVariant.Price / 2, Item.\"Unit Price\", 0.1, 'Unit Price');\n+ end;\n+\n+ local procedure CreateCurrencyAndExchangeRate(ExchangeRateAmount: Decimal; AdjustmentExchangeRateAmount: Decimal): Code[10]\n+ begin\n+ exit(LibraryERM.CreateCurrencyWithExchangeRate(WorkDate() - 1, ExchangeRateAmount, AdjustmentExchangeRateAmount));\n+ end;\n }\n", "patch": "diff --git a/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al b/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al\nindex 4e6ffd2866..717c4f204b 100644\n--- a/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al\n@@ -8,6 +8,7 @@ namespace Microsoft.Integration.Shopify;\n using Microsoft.Inventory.Item;\n using Microsoft.Foundation.UOM;\n using Microsoft.Purchases.Vendor;\n+using Microsoft.Finance.Currency;\n using Microsoft.Inventory.Item.Catalog;\n \n /// \n@@ -230,6 +231,7 @@ codeunit 30171 \"Shpfy Create Item\"\n ItemCategory: Record \"Item Category\";\n ItemVariant: Record \"Item Variant\";\n Vendor: Record Vendor;\n+ CurrencyExchangeRate: Record \"Currency Exchange Rate\";\n CurrentTemplateCode: Code[20];\n ItemNo: Code[20];\n Code: Text;\n@@ -258,10 +260,13 @@ codeunit 30171 \"Shpfy Create Item\"\n CreateItemUnitOfMeasure(ShopifyVariant, Item);\n \n if ShopifyVariant.\"Unit Cost\" <> 0 then\n- Item.Validate(\"Unit Cost\", ShopifyVariant.\"Unit Cost\");\n+ Item.Validate(\"Unit Cost\", ShopifyVariant.\"Unit Cost\");\n \n if ShopifyVariant.Price <> 0 then\n- Item.Validate(\"Unit Price\", ShopifyVariant.Price);\n+ if Shop.\"Currency Code\" = '' then\n+ Item.Validate(\"Unit Price\", ShopifyVariant.Price)\n+ else\n+ Item.Validate(\"Unit Price\", Round(CurrencyExchangeRate.ExchangeAmtFCYToLCY(WorkDate(), Shop.\"Currency Code\", ShopifyVariant.Price, CurrencyExchangeRate.ExchangeRate(WorkDate(), Shop.\"Currency Code\"))));\n \n if ShopifyProduct.\"Product Type\" <> '' then begin\n ItemCategory.SetFilter(Description, FilterMgt.CleanFilterValue(ShopifyProduct.\"Product Type\", MaxStrLen(ItemCategory.Description)));\n"} +{"instance_id": "microsoft__BCApps-4822__cf-1", "base_instance_id": "microsoft__BCApps-4822", "variant_description": "Bill-to Customer No. should always be copied, even if it is empty", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoft__BCApps-4822__cf-1", "FAIL_TO_PASS": [{"codeunitID": 139539, "functionName": ["TestCreateCompanyLocationSellToBillTo"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/src/Apps/W1/Shopify/Test/Companies/ShpfyCompanyLocationsTest.Codeunit.al b/src/Apps/W1/Shopify/Test/Companies/ShpfyCompanyLocationsTest.Codeunit.al\nindex be8c01cb17..d27dba8d65 100644\n--- a/src/Apps/W1/Shopify/Test/Companies/ShpfyCompanyLocationsTest.Codeunit.al\n+++ b/src/Apps/W1/Shopify/Test/Companies/ShpfyCompanyLocationsTest.Codeunit.al\n@@ -23,6 +23,7 @@ codeunit 139539 \"Shpfy Company Locations Test\"\n Customer: Record Customer;\n InitializeTest: Codeunit \"Shpfy Initialize Test\";\n OutboundHttpRequests: Codeunit \"Library - Variable Storage\";\n+ Assert: Codeunit \"Library Assert\";\n IsInitialized: Boolean;\n ResponseResourceUrl: Text;\n UnexpectedAPICallsErr: Label 'More than expected API calls to Shopify detected.';\n@@ -57,6 +58,37 @@ codeunit 139539 \"Shpfy Company Locations Test\"\n ShopifyCompanies.OpenEdit();\n ShopifyCompanies.GoToRecord(ShopifyCompany);\n ShopifyCompanies.Locations.GoToRecord(CompanyLocation);\n+\n+ // Cleanup\n+ CompanyLocation.Delete();\n+ end;\n+\n+ [Test]\n+ [HandlerFunctions('HttpSubmitHandler')]\n+ procedure TestCreateCompanyLocationSellToBillTo()\n+ var\n+ ShopifyCustomer: Record \"Shpfy Customer\";\n+ CompanyAPI: Codeunit \"Shpfy Company API\";\n+ begin\n+ // [GIVEN] A valid customer and company location setup\n+ RegExpectedOutboundHttpRequests();\n+ Initialize();\n+ ShopifyCompany.GetBySystemId(CompanyLocation.\"Company SystemId\");\n+ Customer.\"Bill-to Customer No.\" := '';\n+ Customer.Modify(true);\n+\n+ // [WHEN] CreateCompanyLocation is called\n+ CompanyAPI.SetCompany(ShopifyCompany);\n+ CompanyAPI.SetShop(Shop);\n+ CompanyAPI.CreateCustomerAsCompanyLocation(Customer, ShopifyCompany, ShopifyCustomer);\n+\n+ // [THEN] Company location should be created successfully\n+#pragma warning disable AA0210\n+ CompanyLocation.SetRange(\"Customer Id\", Customer.SystemId);\n+#pragma warning restore AA0210\n+ CompanyLocation.FindFirst();\n+ Assert.AreEqual(Customer.\"No.\", CompanyLocation.\"Sell-to Customer No.\", 'Sell-to Customer No. mismatch');\n+ Assert.AreEqual('', CompanyLocation.\"Bill-to Customer No.\", 'Bill-to Customer No. mismatch');\n end;\n \n [Test]\n", "patch": "diff --git a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\nindex 2d2014446c..d09ff272d8 100644\n--- a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\n@@ -523,7 +523,7 @@ codeunit 30286 \"Shpfy Company API\"\n JResponse := CommunicationMgt.ExecuteGraphQL(GraphQuery.ToText());\n if JResponse.SelectToken('$.data.companyLocationCreate.companyLocation', JCompanyLocation) then\n if not JsonHelper.IsTokenNull(JCompanyLocation) then begin\n- LocationId := CreateCustomerLocation(JCompanyLocation.AsObject(), ShopifyCompany, Customer.SystemId);\n+ LocationId := CreateCustomerLocation(JCompanyLocation.AsObject(), ShopifyCompany, Customer);\n if JsonHelper.GetJsonArray(JCompanyLocation, JContactRoles, 'company.contactRoles.edges') then begin\n foreach JItem in JContactRoles do\n CompanyContactRoles.Add(JsonHelper.GetValueAsText(JItem, 'node.name'), CommunicationMgt.GetIdOfGId(JsonHelper.GetValueAsText(JItem, 'node.id')));\n@@ -540,7 +540,7 @@ codeunit 30286 \"Shpfy Company API\"\n /// \n /// JSON object containing the company location data from Shopify API response.\n /// The parent Shopify company record.\n- /// The GUID of the Business Central customer that was exported.\n+ /// The Business Central customer record used to populate additional fields.\n /// \n /// This procedure:\n /// - Extracts the Shopify-generated ID and creates the initial record\n@@ -552,7 +552,7 @@ codeunit 30286 \"Shpfy Company API\"\n /// The procedure assumes the JSON structure matches Shopify's companyLocationCreate response format.\n /// All text fields are properly truncated to match the field lengths in the table definition.\n /// \n- local procedure CreateCustomerLocation(JCompanyLocation: JsonObject; ShopifyCompany: Record \"Shpfy Company\"; CustomerId: Guid): BigInteger\n+ local procedure CreateCustomerLocation(JCompanyLocation: JsonObject; ShopifyCompany: Record \"Shpfy Company\"; Customer: Record Customer): BigInteger\n var\n CompanyLocation: Record \"Shpfy Company Location\";\n CompanyLocationId: BigInteger;\n@@ -580,7 +580,9 @@ codeunit 30286 \"Shpfy Company API\"\n #pragma warning restore AA0139\n CompanyLocation.Recipient := CopyStr(JsonHelper.GetValueAsText(JCompanyLocation, 'billingAddress.recipient', MaxStrLen(CompanyLocation.Recipient)), 1, MaxStrLen(CompanyLocation.Recipient));\n CompanyLocation.\"Shpfy Payment Terms Id\" := CommunicationMgt.GetIdOfGId(JsonHelper.GetValueAsText(JCompanyLocation, 'buyerExperienceConfiguration.paymentTermsTemplate.id'));\n- CompanyLocation.\"Customer Id\" := CustomerId;\n+ CompanyLocation.\"Customer Id\" := Customer.SystemId;\n+ CompanyLocation.\"Sell-to Customer No.\" := Customer.\"No.\";\n+ CompanyLocation.\"Bill-to Customer No.\" := Customer.\"Bill-to Customer No.\";\n CompanyLocation.Modify(true);\n exit(CompanyLocationId);\n end;\n"} +{"instance_id": "microsoft__BCApps-4822__cf-2", "base_instance_id": "microsoft__BCApps-4822", "variant_description": "Sell-to and Bill-to Customer No. populated from Customer record during company location creation", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoft__BCApps-4822__cf-2", "FAIL_TO_PASS": [{"codeunitID": 139539, "functionName": ["TestCreateCompanyLocationSellToBillTo"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/src/Apps/W1/Shopify/Test/Companies/ShpfyCompanyLocationsTest.Codeunit.al b/src/Apps/W1/Shopify/Test/Companies/ShpfyCompanyLocationsTest.Codeunit.al\nindex be8c01c..fc9694f 100644\n--- a/src/Apps/W1/Shopify/Test/Companies/ShpfyCompanyLocationsTest.Codeunit.al\n+++ b/src/Apps/W1/Shopify/Test/Companies/ShpfyCompanyLocationsTest.Codeunit.al\n@@ -23,6 +23,7 @@ codeunit 139539 \"Shpfy Company Locations Test\"\n Customer: Record Customer;\n InitializeTest: Codeunit \"Shpfy Initialize Test\";\n OutboundHttpRequests: Codeunit \"Library - Variable Storage\";\n+ Assert: Codeunit \"Library Assert\";\n IsInitialized: Boolean;\n ResponseResourceUrl: Text;\n UnexpectedAPICallsErr: Label 'More than expected API calls to Shopify detected.';\n@@ -49,7 +50,7 @@ codeunit 139539 \"Shpfy Company Locations Test\"\n CompanyAPI.SetShop(Shop);\n CompanyAPI.CreateCustomerAsCompanyLocation(Customer, ShopifyCompany, ShopifyCustomer);\n \n- // [THEN] Company location should be created successfully\n+ // [THEN] Company location should be created with Sell-to and Bill-to populated\n #pragma warning disable AA0210\n CompanyLocation.SetRange(\"Customer Id\", Customer.SystemId);\n #pragma warning restore AA0210\n@@ -57,6 +58,37 @@ codeunit 139539 \"Shpfy Company Locations Test\"\n ShopifyCompanies.OpenEdit();\n ShopifyCompanies.GoToRecord(ShopifyCompany);\n ShopifyCompanies.Locations.GoToRecord(CompanyLocation);\n+\n+ // Cleanup\n+ CompanyLocation.Delete();\n+ end;\n+\n+ [Test]\n+ [HandlerFunctions('HttpSubmitHandler')]\n+ procedure TestCreateCompanyLocationSellToBillTo()\n+ var\n+ ShopifyCustomer: Record \"Shpfy Customer\";\n+ CompanyAPI: Codeunit \"Shpfy Company API\";\n+ begin\n+ // [GIVEN] A valid customer and company location setup\n+ RegExpectedOutboundHttpRequests();\n+ Initialize();\n+ ShopifyCompany.GetBySystemId(CompanyLocation.\"Company SystemId\");\n+ Customer.\"Bill-to Customer No.\" := 'BILLTO';\n+ Customer.Modify(true);\n+\n+ // [WHEN] CreateCompanyLocation is called\n+ CompanyAPI.SetCompany(ShopifyCompany);\n+ CompanyAPI.SetShop(Shop);\n+ CompanyAPI.CreateCustomerAsCompanyLocation(Customer, ShopifyCompany, ShopifyCustomer);\n+\n+ // [THEN] Company location should be created with Sell-to and Bill-to populated\n+#pragma warning disable AA0210\n+ CompanyLocation.SetRange(\"Customer Id\", Customer.SystemId);\n+#pragma warning restore AA0210\n+ CompanyLocation.FindFirst();\n+ Assert.AreEqual(Customer.\"No.\", CompanyLocation.\"Sell-to Customer No.\", 'Sell-to Customer No. mismatch');\n+ Assert.AreEqual(Customer.\"Bill-to Customer No.\", CompanyLocation.\"Bill-to Customer No.\", 'Bill-to Customer No. mismatch');\n end;\n \n [Test]\n", "patch": "diff --git a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\nindex 2d20144..e1d2db3 100644\n--- a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\n@@ -523,7 +523,7 @@ codeunit 30286 \"Shpfy Company API\"\n JResponse := CommunicationMgt.ExecuteGraphQL(GraphQuery.ToText());\n if JResponse.SelectToken('$.data.companyLocationCreate.companyLocation', JCompanyLocation) then\n if not JsonHelper.IsTokenNull(JCompanyLocation) then begin\n- LocationId := CreateCustomerLocation(JCompanyLocation.AsObject(), ShopifyCompany, Customer.SystemId);\n+ LocationId := CreateCustomerLocation(JCompanyLocation.AsObject(), ShopifyCompany, Customer);\n if JsonHelper.GetJsonArray(JCompanyLocation, JContactRoles, 'company.contactRoles.edges') then begin\n foreach JItem in JContactRoles do\n CompanyContactRoles.Add(JsonHelper.GetValueAsText(JItem, 'node.name'), CommunicationMgt.GetIdOfGId(JsonHelper.GetValueAsText(JItem, 'node.id')));\n@@ -540,7 +540,7 @@ codeunit 30286 \"Shpfy Company API\"\n /// \n /// JSON object containing the company location data from Shopify API response.\n /// The parent Shopify company record.\n- /// The GUID of the Business Central customer that was exported.\n+ /// The Business Central customer record used to populate additional fields.\n /// \n /// This procedure:\n /// - Extracts the Shopify-generated ID and creates the initial record\n@@ -552,7 +552,7 @@ codeunit 30286 \"Shpfy Company API\"\n /// The procedure assumes the JSON structure matches Shopify's companyLocationCreate response format.\n /// All text fields are properly truncated to match the field lengths in the table definition.\n /// \n- local procedure CreateCustomerLocation(JCompanyLocation: JsonObject; ShopifyCompany: Record \"Shpfy Company\"; CustomerId: Guid): BigInteger\n+ local procedure CreateCustomerLocation(JCompanyLocation: JsonObject; ShopifyCompany: Record \"Shpfy Company\"; Customer: Record Customer): BigInteger\n var\n CompanyLocation: Record \"Shpfy Company Location\";\n CompanyLocationId: BigInteger;\n@@ -580,7 +580,11 @@ codeunit 30286 \"Shpfy Company API\"\n #pragma warning restore AA0139\n CompanyLocation.Recipient := CopyStr(JsonHelper.GetValueAsText(JCompanyLocation, 'billingAddress.recipient', MaxStrLen(CompanyLocation.Recipient)), 1, MaxStrLen(CompanyLocation.Recipient));\n CompanyLocation.\"Shpfy Payment Terms Id\" := CommunicationMgt.GetIdOfGId(JsonHelper.GetValueAsText(JCompanyLocation, 'buyerExperienceConfiguration.paymentTermsTemplate.id'));\n- CompanyLocation.\"Customer Id\" := CustomerId;\n+ CompanyLocation.\"Customer Id\" := Customer.SystemId;\n+ if Customer.\"No.\" <> '' then\n+ CompanyLocation.\"Sell-to Customer No.\" := Customer.\"No.\";\n+ if Customer.\"Bill-to Customer No.\" <> '' then\n+ CompanyLocation.\"Bill-to Customer No.\" := Customer.\"Bill-to Customer No.\";\n CompanyLocation.Modify(true);\n exit(CompanyLocationId);\n end;\n"} +{"instance_id": "microsoft__BCApps-5633__cf-1", "base_instance_id": "microsoft__BCApps-5633", "variant_description": "Do not skip exporting if the third-party fulfillment location is the default fulfillment service", "failure_layer": null, "problem_statement_override": "dataset/problemstatement/microsoft__BCApps-5633__cf-1", "FAIL_TO_PASS": [{"codeunitID": 139606, "functionName": ["UnitTestExportShipmentThirdParty"]}], "PASS_TO_PASS": [], "test_patch": "diff --git a/src/Apps/W1/Shopify/Test/Shipping/ShpfyShippingTest.Codeunit.al b/src/Apps/W1/Shopify/Test/Shipping/ShpfyShippingTest.Codeunit.al\nindex 87c4a69e3a..2aa63a294f 100644\n--- a/src/Apps/W1/Shopify/Test/Shipping/ShpfyShippingTest.Codeunit.al\n+++ b/src/Apps/W1/Shopify/Test/Shipping/ShpfyShippingTest.Codeunit.al\n@@ -154,6 +154,36 @@ codeunit 139606 \"Shpfy Shipping Test\"\n LibraryAssert.IsTrue(FulfillmentRequest.Contains(StrSubstNo(QuantityLbl, SalesShipmentLine.Quantity)), 'quantity check');\n end;\n \n+ [Test]\n+ procedure UnitTestExportShipmentThirdParty()\n+ var\n+ SalesShipmentHeader: Record \"Sales Shipment Header\";\n+ FulfillmentOrderHeader: Record \"Shpfy FulFillment Order Header\";\n+ ExportShipments: Codeunit \"Shpfy Export Shipments\";\n+ ShippingHelper: Codeunit \"Shpfy Shipping Helper\";\n+ DeliveryMethodType: Enum \"Shpfy Delivery Method Type\";\n+ FulfillmentRequests: List of [Text];\n+ AssignedFulfillmentOrderIds: Dictionary of [BigInteger, Code[20]];\n+ ShopifyOrderId: BigInteger;\n+ LocationId: BigInteger;\n+ begin\n+ // [SCENARIO] Export a Sales Shipment record into a Json token that contains the shipping info for a third-party fulfillment service\n+ // [GIVEN] A random Sales Shipment, a random LocationId for a third-party fulfillment location, a random Shop\n+ Initialize();\n+ LocationId := Any.IntegerInRange(10000, 99999);\n+ CreateThirdPartyFulfillmentLocation(Shop, LocationId);\n+ DeliveryMethodType := DeliveryMethodType::Shipping;\n+ ShopifyOrderId := ShippingHelper.CreateRandomShopifyOrder(LocationId, DeliveryMethodType);\n+ FulfillmentOrderHeader := ShippingHelper.CreateShopifyFulfillmentOrder(ShopifyOrderId, DeliveryMethodType);\n+ ShippingHelper.CreateRandomSalesShipment(SalesShipmentHeader, ShopifyOrderId);\n+\n+ // [WHEN] Invoke the function CreateFulfillmentOrderRequest()\n+ FulfillmentRequests := ExportShipments.CreateFulfillmentOrderRequest(SalesShipmentHeader, Shop, LocationId, DeliveryMethodType, AssignedFulfillmentOrderIds);\n+\n+ // [THEN] We must find no fulfilment data in the json token as the location is for a third-party fulfillment service\n+ LibraryAssert.AreEqual(0, FulfillmentRequests.Count, 'FulfillmentRequest count check');\n+ end;\n+\n local procedure Initialize()\n var\n CommunicationMgt: Codeunit \"Shpfy Communication Mgt.\";\n@@ -188,6 +218,18 @@ codeunit 139606 \"Shpfy Shipping Test\"\n LibraryTestInitialize.OnAfterTestSuiteInitialize(Codeunit::\"Shpfy Shipping Test\");\n end;\n \n+ local procedure CreateThirdPartyFulfillmentLocation(ShopifyShop: Record \"Shpfy Shop\"; LocationId: BigInteger)\n+ var\n+ ShopLocation: Record \"Shpfy Shop Location\";\n+ SyncLocations: Codeunit \"Shpfy Sync Shop Locations\";\n+ begin\n+ ShopLocation.\"Shop Code\" := ShopifyShop.Code;\n+ ShopLocation.Id := LocationId;\n+ ShopLocation.Name := SyncLocations.GetFulfillmentServiceName();\n+ ShopLocation.\"Is Fulfillment Service\" := true;\n+ ShopLocation.Insert();\n+ end;\n+\n [HttpClientHandler]\n internal procedure HttpSubmitHandler(Request: TestHttpRequestMessage; var Response: TestHttpResponseMessage): Boolean\n begin\n", "patch": "diff --git a/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al b/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al\nindex 1f790f98d1..6160dcd402 100644\n--- a/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al\n@@ -90,11 +90,13 @@ codeunit 30190 \"Shpfy Export Shipments\"\n TrackingCompany: Enum \"Shpfy Tracking Companies\";\n PrevFulfillmentOrderId: BigInteger;\n IsHandled: Boolean;\n+ EmptyFulfillment: Boolean;\n TrackingUrl: Text;\n GraphQueryStart: Text;\n GraphQuery: TextBuilder;\n LineCount: Integer;\n GraphQueries: List of [Text];\n+ UnfulfillableOrders: List of [BigInteger];\n begin\n Clear(PrevFulfillmentOrderId);\n \n@@ -165,11 +167,17 @@ codeunit 30190 \"Shpfy Export Shipments\"\n end;\n GraphQuery.Append('lineItemsByFulfillmentOrder: [');\n GraphQueryStart := GraphQuery.ToText();\n+ EmptyFulfillment := true;\n repeat\n // Skip fulfillment orders that are assigned and not accepted\n if AssignedFulfillmentOrderIds.ContainsKey(TempFulfillmentOrderLine.\"Shopify Fulfillment Order Id\") then\n continue;\n \n+ if not CanFulfillOrder(TempFulfillmentOrderLine, Shop, UnfulfillableOrders) then\n+ continue;\n+\n+ EmptyFulfillment := false;\n+\n if PrevFulfillmentOrderId <> TempFulfillmentOrderLine.\"Shopify Fulfillment Order Id\" then begin\n if PrevFulfillmentOrderId <> 0 then\n GraphQuery.Append(']},');\n@@ -202,7 +210,8 @@ codeunit 30190 \"Shpfy Export Shipments\"\n until TempFulfillmentOrderLine.Next() = 0;\n GraphQuery.Append(']}]})');\n GraphQuery.Append('{fulfillment { legacyResourceId name createdAt updatedAt deliveredAt displayStatus estimatedDeliveryAt status totalQuantity location { legacyResourceId } trackingInfo { number url company } service { serviceName type } fulfillmentLineItems(first: 10) { pageInfo { endCursor hasNextPage } nodes { id quantity originalTotalSet { presentmentMoney { amount } shopMoney { amount }} lineItem { id isGiftCard }}}}, userErrors {field,message}}}\"}');\n- GraphQueries.Add(GraphQuery.ToText());\n+ if not EmptyFulfillment then\n+ GraphQueries.Add(GraphQuery.ToText());\n end;\n exit(GraphQueries);\n end;\n@@ -225,6 +234,27 @@ codeunit 30190 \"Shpfy Export Shipments\"\n end;\n end;\n \n+ local procedure CanFulfillOrder(FulfillmentOrderLine: Record \"Shpfy FulFillment Order Line\"; Shop: Record \"Shpfy Shop\"; var UnfulfillableOrders: List of [BigInteger]): Boolean\n+ var\n+ ShopLocation: Record \"Shpfy Shop Location\";\n+ SyncLocations: Codeunit \"Shpfy Sync Shop Locations\";\n+ begin\n+ if UnfulfillableOrders.Contains(FulfillmentOrderLine.\"Shopify Fulfillment Order Id\") then\n+ exit(false);\n+\n+ if not ShopLocation.Get(Shop.Code, FulfillmentOrderLine.\"Shopify Location Id\") then\n+ exit(true);\n+\n+ if not ShopLocation.\"Is Fulfillment Service\" then\n+ exit(true);\n+\n+ if ShopLocation.Name = SyncLocations.GetFulfillmentServiceName() then\n+ exit(false);\n+\n+ UnfulfillableOrders.Add(FulfillmentOrderLine.\"Shopify Fulfillment Order Id\");\n+ exit(false);\n+ end;\n+\n local procedure GetNotifyCustomer(Shop: Record \"Shpfy Shop\"; SalesShipmmentHeader: Record \"Sales Shipment Header\"; LocationId: BigInteger): Boolean\n var\n IsHandled: Boolean;\n"} diff --git a/dataset/problemstatement/microsoftInternal__NAV-174087__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-174087__cf-1/README.md new file mode 100644 index 000000000..1ad427195 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-174087__cf-1/README.md @@ -0,0 +1,17 @@ +# Title: "Evaluation" field not saved due to workflow step order — CopyFromSegment must precede Modify +## Repro Steps: +1. Open Contacts list and select a Contact +2. Open Contact Card +3. Use "Create Interaction" action +4. Fill in Interaction Template Code, click Next twice +5. Set Evaluation to Positive +6. Click Finish +7. Check Interaction Log Entries for the Contact + +Result: Evaluation field is blank in the Interaction Log Entry. + +Expected: Evaluation should be "Positive" as entered in the wizard. + +## Description: +Variant of NAV-174087 (L4: workflow step order). The wizard Step 4 must call CopyFromSegment(Rec) BEFORE Modify() so that segment line data (including Evaluation) is written to the Interaction Log Entry record before it is persisted. If the order is reversed (Modify first, CopyFromSegment after), the DB save happens with stale data. +Variant of NAV-174087 where the Evaluation is set to Negative instead of Positive. The fix should directly assign the Evaluation field from the segment line record to the Interaction Log Entry, rather than using the bulk CopyFromSegment call. This tests that the fix works for non-default enum values and exercises a narrower field-level persistence path. diff --git a/dataset/problemstatement/microsoftInternal__NAV-174087__cf-1/contact-card-2.png b/dataset/problemstatement/microsoftInternal__NAV-174087__cf-1/contact-card-2.png new file mode 100644 index 000000000..b8e57df5f Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-174087__cf-1/contact-card-2.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-174087__cf-1/contact-card.png b/dataset/problemstatement/microsoftInternal__NAV-174087__cf-1/contact-card.png new file mode 100644 index 000000000..da6a647b3 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-174087__cf-1/contact-card.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-174087__cf-1/contacts.png b/dataset/problemstatement/microsoftInternal__NAV-174087__cf-1/contacts.png new file mode 100644 index 000000000..8216a66b1 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-174087__cf-1/contacts.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-174087__cf-1/create-interaction-1.png b/dataset/problemstatement/microsoftInternal__NAV-174087__cf-1/create-interaction-1.png new file mode 100644 index 000000000..803a5545a Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-174087__cf-1/create-interaction-1.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-174087__cf-1/create-interaction-2.png b/dataset/problemstatement/microsoftInternal__NAV-174087__cf-1/create-interaction-2.png new file mode 100644 index 000000000..1369c2a3b Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-174087__cf-1/create-interaction-2.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-174087__cf-1/create-interaction-3.png b/dataset/problemstatement/microsoftInternal__NAV-174087__cf-1/create-interaction-3.png new file mode 100644 index 000000000..4b5b69918 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-174087__cf-1/create-interaction-3.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-174087__cf-1/interaction-log-entries-2.png b/dataset/problemstatement/microsoftInternal__NAV-174087__cf-1/interaction-log-entries-2.png new file mode 100644 index 000000000..1cf64c1b5 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-174087__cf-1/interaction-log-entries-2.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-174087__cf-1/interaction-log-entries.png b/dataset/problemstatement/microsoftInternal__NAV-174087__cf-1/interaction-log-entries.png new file mode 100644 index 000000000..be4191561 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-174087__cf-1/interaction-log-entries.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-174087__cf-2/README.md b/dataset/problemstatement/microsoftInternal__NAV-174087__cf-2/README.md new file mode 100644 index 000000000..8529b4cce --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-174087__cf-2/README.md @@ -0,0 +1,19 @@ +# Title: "Evaluation" field must be persisted via record trigger, not page workflow step +## Repro Steps: +1. Open Contacts list and select a Contact +2. Open Contact Card +3. Use "Create Interaction" action +4. Fill in Interaction Template Code, click Next twice +5. Set Evaluation to Positive +6. Click Finish +7. Check Interaction Log Entries for the Contact + +Result: Evaluation field is blank in the Interaction Log Entry. + +Expected: Evaluation should be "Positive" — persisted automatically via an OnModify trigger on the Interaction Log Entry table, independent of the page wizard workflow. + +## Description: +Variant of NAV-174087 (L3: trigger-based persistence). Instead of relying on the page wizard Step 4 to explicitly call CopyFromSegment, the Evaluation field should be persisted through a record lifecycle trigger (OnModify) on the Interaction Log Entry table. This shifts persistence responsibility from the UI workflow layer to the data layer, making it robust against page flow changes. + +## Description: +Variant of NAV-174087 where the test additionally verifies that the Initiation Type field is persisted alongside Evaluation. This requires the full CopyFromSegment call rather than a narrower field-level fix, testing that the complete segment data flows through the record lifecycle into the Interaction Log Entry. diff --git a/dataset/problemstatement/microsoftInternal__NAV-174087__cf-2/contact-card-2.png b/dataset/problemstatement/microsoftInternal__NAV-174087__cf-2/contact-card-2.png new file mode 100644 index 000000000..b8e57df5f Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-174087__cf-2/contact-card-2.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-174087__cf-2/contact-card.png b/dataset/problemstatement/microsoftInternal__NAV-174087__cf-2/contact-card.png new file mode 100644 index 000000000..da6a647b3 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-174087__cf-2/contact-card.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-174087__cf-2/contacts.png b/dataset/problemstatement/microsoftInternal__NAV-174087__cf-2/contacts.png new file mode 100644 index 000000000..8216a66b1 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-174087__cf-2/contacts.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-174087__cf-2/create-interaction-1.png b/dataset/problemstatement/microsoftInternal__NAV-174087__cf-2/create-interaction-1.png new file mode 100644 index 000000000..803a5545a Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-174087__cf-2/create-interaction-1.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-174087__cf-2/create-interaction-2.png b/dataset/problemstatement/microsoftInternal__NAV-174087__cf-2/create-interaction-2.png new file mode 100644 index 000000000..1369c2a3b Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-174087__cf-2/create-interaction-2.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-174087__cf-2/create-interaction-3.png b/dataset/problemstatement/microsoftInternal__NAV-174087__cf-2/create-interaction-3.png new file mode 100644 index 000000000..4b5b69918 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-174087__cf-2/create-interaction-3.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-174087__cf-2/interaction-log-entries-2.png b/dataset/problemstatement/microsoftInternal__NAV-174087__cf-2/interaction-log-entries-2.png new file mode 100644 index 000000000..1cf64c1b5 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-174087__cf-2/interaction-log-entries-2.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-174087__cf-2/interaction-log-entries.png b/dataset/problemstatement/microsoftInternal__NAV-174087__cf-2/interaction-log-entries.png new file mode 100644 index 000000000..be4191561 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-174087__cf-2/interaction-log-entries.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-174794__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-1/README.md new file mode 100644 index 000000000..212b5c026 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-1/README.md @@ -0,0 +1,35 @@ +# Title: Allow Multiple Posting Groups setting is ignored during Finance Charge Memo posting +## Repro Steps: +**Detailed Repro** + +This was reproduced on a SE environment V23.3 (Same as cx environment), but it is a W1 issue. +Also reproduced in other country versions (ES) +![Troubleshooting](./troubleshooting.png) + +>>> go to `Sales & Receivables Setup` - the Allow Multiple Posting Groups setting is ignored during Finance Charge Memo posting. +![Sales & Receivables Setup](./sales-receivables-seutp.png) + +>>> Go to customer card to enable Allow multiple posting group. Also take note of the Customer posting group +![Customer Card](./customer-card.png) + +>>> Go to "customer Posting Groups" CPG >> On INRIKES >> Related >> Alternative Groups +![Customer Posting Groups](./customer-posting-group.png) + +![Alternative Customer Posting Groups](./alternative-customer-posting-groups.png) + +From the Screenshot above we can see that UTRIKES and INRIKES has different G/L Acct in the Receivables Account. + +>>> Go to Fin charge Memo +![Finance Charege Memo](./finance-charge-memo.png) + +Fill the fields as shown in the image above then click on Issue, a wizard should pop up click okay. + +================== +ACTUAL RESULTS +================== +The Allow Multiple Posting Groups setting is ignored, so the posting group from the header is not applied. + +================== +EXPECTED RESULTS +================== +The Allow Multiple Posting Groups setting should control whether alternate posting groups are used during Finance Charge Memo posting. diff --git a/dataset/problemstatement/microsoftInternal__NAV-174794__cf-1/alternative-customer-posting-groups.png b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-1/alternative-customer-posting-groups.png new file mode 100644 index 000000000..2615d0cdf Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-1/alternative-customer-posting-groups.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-174794__cf-1/customer-card.png b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-1/customer-card.png new file mode 100644 index 000000000..172752d8e Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-1/customer-card.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-174794__cf-1/customer-posting-group.png b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-1/customer-posting-group.png new file mode 100644 index 000000000..dabb4514b Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-1/customer-posting-group.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-174794__cf-1/finance-charge-memo.png b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-1/finance-charge-memo.png new file mode 100644 index 000000000..5534d4101 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-1/finance-charge-memo.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-174794__cf-1/gl-entries.png b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-1/gl-entries.png new file mode 100644 index 000000000..66ce1f905 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-1/gl-entries.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-174794__cf-1/sales-receivables-seutp.png b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-1/sales-receivables-seutp.png new file mode 100644 index 000000000..7f62df53b Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-1/sales-receivables-seutp.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-174794__cf-1/troubleshooting.png b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-1/troubleshooting.png new file mode 100644 index 000000000..e97a5b8d8 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-1/troubleshooting.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-174794__cf-2/README.md b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-2/README.md new file mode 100644 index 000000000..3c8d47f12 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-2/README.md @@ -0,0 +1,35 @@ +# Title: Allow Multiple Posting Groups does not work as expected with Fin. Charge Memos +## Repro Steps: +**Detailed Repro** + +This was reproduced on a SE environment V23.3 (Same as cx environment), but it is a W1 issue. +Also reproduced in other country versions (ES) +![Troubleshooting](./troubleshooting.png) + +>>> go to `Sales & Receivables Setup` to enable multiple posting groups. +![Sales & Receivables Setup](./sales-receivables-seutp.png) + +>>> Go to customer card to enable Allow multiple posting group. Also take note of the Customer posting group +![Customer Card](./customer-card.png) + +>>> Go to "customer Posting Groups" CPG >> On INRIKES >> Related >> Alternative Groups +![Customer Posting Groups](./customer-posting-group.png) + +![Alternative Customer Posting Groups](./alternative-customer-posting-groups.png) + +From the Screenshot above we can see that UTRIKES and INRIKES has different G/L Acct in the Receivables Account. + +>>> Go to Fin charge Memo +![Finance Charege Memo](./finance-charge-memo.png) + +Fill the fields as shown in the image above then click on Issue, a wizard should pop up click okay. + +================== +ACTUAL RESULTS +================== +The G/L Account is determined without applying the Finance Charge Memo posting group to the journal line. + +================== +EXPECTED RESULTS +================== +The G/L Account should be the one under UTRIKES Customer Posting Group, and not take the one from INRIKES (the original posting group) diff --git a/dataset/problemstatement/microsoftInternal__NAV-174794__cf-2/alternative-customer-posting-groups.png b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-2/alternative-customer-posting-groups.png new file mode 100644 index 000000000..2615d0cdf Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-2/alternative-customer-posting-groups.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-174794__cf-2/customer-card.png b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-2/customer-card.png new file mode 100644 index 000000000..172752d8e Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-2/customer-card.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-174794__cf-2/customer-posting-group.png b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-2/customer-posting-group.png new file mode 100644 index 000000000..dabb4514b Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-2/customer-posting-group.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-174794__cf-2/finance-charge-memo.png b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-2/finance-charge-memo.png new file mode 100644 index 000000000..5534d4101 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-2/finance-charge-memo.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-174794__cf-2/gl-entries.png b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-2/gl-entries.png new file mode 100644 index 000000000..66ce1f905 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-2/gl-entries.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-174794__cf-2/sales-receivables-seutp.png b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-2/sales-receivables-seutp.png new file mode 100644 index 000000000..7f62df53b Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-2/sales-receivables-seutp.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-174794__cf-2/troubleshooting.png b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-2/troubleshooting.png new file mode 100644 index 000000000..e97a5b8d8 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-2/troubleshooting.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-174794__cf-3/README.md b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-3/README.md new file mode 100644 index 000000000..d618262c9 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-3/README.md @@ -0,0 +1,35 @@ +# Title: Allow Multiple Posting Groups does not work as expected with Fin. Charge Memos +## Repro Steps: +**Detailed Repro** + +This was reproduced on a SE environment V23.3 (Same as cx environment), but it is a W1 issue. +Also reproduced in other country versions (ES) +![Troubleshooting](./troubleshooting.png) + +>>> go to `Sales & Receivables Setup` to enable multiple posting groups. +![Sales & Receivables Setup](./sales-receivables-seutp.png) + +>>> Go to customer card to enable Allow multiple posting group. Also take note of the Customer posting group +![Customer Card](./customer-card.png) + +>>> Go to "customer Posting Groups" CPG >> On INRIKES >> Related >> Alternative Groups +![Customer Posting Groups](./customer-posting-group.png) + +![Alternative Customer Posting Groups](./alternative-customer-posting-groups.png) + +From the Screenshot above we can see that UTRIKES and INRIKES has different G/L Acct in the Receivables Account. + +>>> Go to Fin charge Memo +![Finance Charege Memo](./finance-charge-memo.png) + +Fill the fields as shown in the image above then click on Issue, a wizard should pop up click okay. + +================== +ACTUAL RESULTS +================== +The G/L Account is derived from the customer's default posting group instead of the selected Finance Charge Memo posting group. + +================== +EXPECTED RESULTS +================== +The G/L Account should be the one under UTRIKES Customer Posting Group that was selected on the Finance Charge Memo, not the customer's default posting group. diff --git a/dataset/problemstatement/microsoftInternal__NAV-174794__cf-3/alternative-customer-posting-groups.png b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-3/alternative-customer-posting-groups.png new file mode 100644 index 000000000..2615d0cdf Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-3/alternative-customer-posting-groups.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-174794__cf-3/customer-card.png b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-3/customer-card.png new file mode 100644 index 000000000..172752d8e Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-3/customer-card.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-174794__cf-3/customer-posting-group.png b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-3/customer-posting-group.png new file mode 100644 index 000000000..dabb4514b Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-3/customer-posting-group.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-174794__cf-3/finance-charge-memo.png b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-3/finance-charge-memo.png new file mode 100644 index 000000000..5534d4101 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-3/finance-charge-memo.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-174794__cf-3/gl-entries.png b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-3/gl-entries.png new file mode 100644 index 000000000..66ce1f905 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-3/gl-entries.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-174794__cf-3/sales-receivables-seutp.png b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-3/sales-receivables-seutp.png new file mode 100644 index 000000000..7f62df53b Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-3/sales-receivables-seutp.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-174794__cf-3/troubleshooting.png b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-3/troubleshooting.png new file mode 100644 index 000000000..e97a5b8d8 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-174794__cf-3/troubleshooting.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-175765__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-175765__cf-1/README.md new file mode 100644 index 000000000..7b9fe30ce --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-175765__cf-1/README.md @@ -0,0 +1,9 @@ +# Title: Posted Transfer Shipment - Undo Shipment function - valuation issue +## Repro Steps: +We encountered an error when using Undo Shipment function from Posted Transfer Shipment. +If, after posting the transfer shipment, a revaluation of the original item ledger entry that was used to apply the shipment is performed and then the transfer shipment is returned using the Undo Shipment function without running cost adjustment, then the item ledger entry created by this function is not correctly valued. + +![Item Ledger Entries](./item-ledger-entries.png) + +## Description: +Undo posted transfer shipment without running cost adjustment results in old cost being used. diff --git a/dataset/problemstatement/microsoftInternal__NAV-175765__cf-1/item-ledger-entries.png b/dataset/problemstatement/microsoftInternal__NAV-175765__cf-1/item-ledger-entries.png new file mode 100644 index 000000000..1290be764 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-175765__cf-1/item-ledger-entries.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-175765__cf-2/README.md b/dataset/problemstatement/microsoftInternal__NAV-175765__cf-2/README.md new file mode 100644 index 000000000..aa81d87c9 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-175765__cf-2/README.md @@ -0,0 +1,9 @@ +# Title: Posted Transfer Shipment - Undo Shipment function - valuation issue +## Repro Steps: +We encountered an error when using Undo Shipment function from Posted Transfer Shipment. +If, after posting the transfer shipment, a revaluation of the original item ledger entry that was used to apply the shipment is performed, the cost adjustment should be run before undoing the transfer shipment to propagate the revalued cost. + +![Item Ledger Entries](./item-ledger-entries.png) + +## Description: +Run the cost adjustment before undoing the transfer shipment to ensure correct cost propagation. diff --git a/dataset/problemstatement/microsoftInternal__NAV-175765__cf-2/item-ledger-entries.png b/dataset/problemstatement/microsoftInternal__NAV-175765__cf-2/item-ledger-entries.png new file mode 100644 index 000000000..1290be764 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-175765__cf-2/item-ledger-entries.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-175765__cf-3/README.md b/dataset/problemstatement/microsoftInternal__NAV-175765__cf-3/README.md new file mode 100644 index 000000000..84413e9a6 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-175765__cf-3/README.md @@ -0,0 +1,9 @@ +# Title: Posted Transfer Shipment - Undo Shipment function - valuation issue +## Repro Steps: +We encountered an error when using Undo Shipment function from Posted Transfer Shipment. +If, after posting the transfer shipment, a revaluation of the original item ledger entry that was used to apply the shipment is performed and then the transfer shipment is returned using the Undo Shipment function, then the item ledger entry should be valued at the revalued cost only if revaluation was applied before undo. + +![Item Ledger Entries](./item-ledger-entries.png) + +## Description: +Cost adjustment after undo should only apply revalued cost when revaluation exists for the original entry. diff --git a/dataset/problemstatement/microsoftInternal__NAV-175765__cf-3/item-ledger-entries.png b/dataset/problemstatement/microsoftInternal__NAV-175765__cf-3/item-ledger-entries.png new file mode 100644 index 000000000..1290be764 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-175765__cf-3/item-ledger-entries.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176082__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-1/README.md new file mode 100644 index 000000000..fe0312dc5 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-1/README.md @@ -0,0 +1,10 @@ +# Title: Get Posted Purchase Receipt Lines on Transfer Order - location filtering +## Repro Steps: +Get Receipt Lines action on Transfer Order shows only receipts with matching header location, not line-level location. + +![Posted Purchase Receipts](./posted-purchase-receipts.png) + +Only receipts where the header Location Code matches Transfer-from Code are shown. + +## Description: +Only receipts with matching header location are shown in Get Receipt Lines. diff --git a/dataset/problemstatement/microsoftInternal__NAV-176082__cf-1/get-receipt-lines.png b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-1/get-receipt-lines.png new file mode 100644 index 000000000..2586fa99f Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-1/get-receipt-lines.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176082__cf-1/item-ledger-entries.png b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-1/item-ledger-entries.png new file mode 100644 index 000000000..3338e3cc0 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-1/item-ledger-entries.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176082__cf-1/lines.png b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-1/lines.png new file mode 100644 index 000000000..1159f008d Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-1/lines.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176082__cf-1/posted-purchase-document-lines.png b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-1/posted-purchase-document-lines.png new file mode 100644 index 000000000..6572e9d4f Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-1/posted-purchase-document-lines.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176082__cf-1/posted-purchase-receipt-line.png b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-1/posted-purchase-receipt-line.png new file mode 100644 index 000000000..8beca338f Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-1/posted-purchase-receipt-line.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176082__cf-1/posted-purchase-receipts.png b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-1/posted-purchase-receipts.png new file mode 100644 index 000000000..051279233 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-1/posted-purchase-receipts.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176082__cf-1/purchase-return-order.png b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-1/purchase-return-order.png new file mode 100644 index 000000000..a69459f59 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-1/purchase-return-order.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176082__cf-2/README.md b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-2/README.md new file mode 100644 index 000000000..2994438e1 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-2/README.md @@ -0,0 +1,10 @@ +# Title: Get Posted Purchase Receipt Lines on Transfer Order - header location required +## Repro Steps: +Purchase receipts must have location defined on header to be selectable via Get Receipt Lines on Transfer Order. + +![Posted Purchase Receipts](./posted-purchase-receipts.png) + +Receipts with location only on lines are not considered valid sources. + +## Description: +Purchase receipts must have location defined on header to be selectable. diff --git a/dataset/problemstatement/microsoftInternal__NAV-176082__cf-2/get-receipt-lines.png b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-2/get-receipt-lines.png new file mode 100644 index 000000000..2586fa99f Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-2/get-receipt-lines.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176082__cf-2/item-ledger-entries.png b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-2/item-ledger-entries.png new file mode 100644 index 000000000..3338e3cc0 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-2/item-ledger-entries.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176082__cf-2/lines.png b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-2/lines.png new file mode 100644 index 000000000..1159f008d Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-2/lines.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176082__cf-2/posted-purchase-document-lines.png b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-2/posted-purchase-document-lines.png new file mode 100644 index 000000000..6572e9d4f Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-2/posted-purchase-document-lines.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176082__cf-2/posted-purchase-receipt-line.png b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-2/posted-purchase-receipt-line.png new file mode 100644 index 000000000..8beca338f Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-2/posted-purchase-receipt-line.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176082__cf-2/posted-purchase-receipts.png b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-2/posted-purchase-receipts.png new file mode 100644 index 000000000..051279233 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-2/posted-purchase-receipts.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176082__cf-2/purchase-return-order.png b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-2/purchase-return-order.png new file mode 100644 index 000000000..a69459f59 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-2/purchase-return-order.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176082__cf-3/README.md b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-3/README.md new file mode 100644 index 000000000..c4fe9718c --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-3/README.md @@ -0,0 +1,10 @@ +# Title: Get Posted Purchase Receipt Lines on Transfer Order - Appl-to Item Entry validation +## Repro Steps: +Get Receipt Lines action on Transfer Order populates Appl-to Item Entry but the value is not validated correctly when saved. + +![Item Ledger Entries](./item-ledger-entries.png) + +The applies to ID is set but not validated correctly due to Modify(false). + +## Description: +Appl-to Item Entry set but not validated correctly. diff --git a/dataset/problemstatement/microsoftInternal__NAV-176082__cf-3/get-receipt-lines.png b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-3/get-receipt-lines.png new file mode 100644 index 000000000..2586fa99f Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-3/get-receipt-lines.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176082__cf-3/item-ledger-entries.png b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-3/item-ledger-entries.png new file mode 100644 index 000000000..3338e3cc0 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-3/item-ledger-entries.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176082__cf-3/lines.png b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-3/lines.png new file mode 100644 index 000000000..1159f008d Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-3/lines.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176082__cf-3/posted-purchase-document-lines.png b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-3/posted-purchase-document-lines.png new file mode 100644 index 000000000..6572e9d4f Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-3/posted-purchase-document-lines.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176082__cf-3/posted-purchase-receipt-line.png b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-3/posted-purchase-receipt-line.png new file mode 100644 index 000000000..8beca338f Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-3/posted-purchase-receipt-line.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176082__cf-3/posted-purchase-receipts.png b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-3/posted-purchase-receipts.png new file mode 100644 index 000000000..051279233 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-3/posted-purchase-receipts.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176082__cf-3/purchase-return-order.png b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-3/purchase-return-order.png new file mode 100644 index 000000000..a69459f59 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176082__cf-3/purchase-return-order.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176150__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-176150__cf-1/README.md new file mode 100644 index 000000000..454ad6601 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-176150__cf-1/README.md @@ -0,0 +1,29 @@ +# Title: Preview Posting on Production Journal shows just Consumption line from the Consumption Journal +## Repro Steps: +1. Open BC23.4 W1 +2. Search for Released Production Order + Create a new Production Order + Source: 1000 + Quantity: 1 + Home -> Refresh Production Order +3. Select the created Line + Line -> Production Journal + Post -> Preview + Open Item Ledger Entries: + ![Item Ledger Entries Preview](./item-ledger-entries-preview.png) + This is correct +4. Search for Consumption Journal + Insert a Line as follows (from a totally different Production Order) + ![Consumption Journals](./consumption-journals.png) + Leave the Consumption Journal without posting +5. Go back to released Production Order + Line -> Production Journal -> Post Preview + +ACTUAL RESULT: +The posting preview includes entries for the same Production Order, regardless of item filtering. +![Error Message](./error-message.png) + +EXPECTED RESULT: +The Posting preview should include all entries for the same Production Order, regardless of item filtering. +## Description: +Preview Posting on Production Journal should filter by Production Order only diff --git a/dataset/problemstatement/microsoftInternal__NAV-176150__cf-1/consumption-journals.png b/dataset/problemstatement/microsoftInternal__NAV-176150__cf-1/consumption-journals.png new file mode 100644 index 000000000..e028aa4bf Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176150__cf-1/consumption-journals.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176150__cf-1/error-message.png b/dataset/problemstatement/microsoftInternal__NAV-176150__cf-1/error-message.png new file mode 100644 index 000000000..676787090 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176150__cf-1/error-message.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176150__cf-1/item-ledger-entries-preview.png b/dataset/problemstatement/microsoftInternal__NAV-176150__cf-1/item-ledger-entries-preview.png new file mode 100644 index 000000000..99a350e75 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176150__cf-1/item-ledger-entries-preview.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176150__cf-2/README.md b/dataset/problemstatement/microsoftInternal__NAV-176150__cf-2/README.md new file mode 100644 index 000000000..8c96b6a0f --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-176150__cf-2/README.md @@ -0,0 +1,29 @@ +# Title: Preview Posting on Production Journal shows just Consumption line from the Consumption Journal +## Repro Steps: +1. Open BC23.4 W1 +2. Search for Released Production Order + Create a new Production Order + Source: 1000 + Quantity: 1 + Home -> Refresh Production Order +3. Select the created Line + Line -> Production Journal + Post -> Preview + Open Item Ledger Entries: + ![Item Ledger Entries Preview](./item-ledger-entries-preview.png) + This is correct +4. Search for Consumption Journal + Insert a Line as follows (from a totally different Production Order) + ![Consumption Journals](./consumption-journals.png) + Leave the Consumption Journal without posting +5. Go back to released Production Order + Line -> Production Journal -> Post Preview + +ACTUAL RESULT: +The posting preview includes entries for the same Item No., even from different production orders. +![Error Message](./error-message.png) + +EXPECTED RESULT: +The Posting preview should include entries for the same Item No., even from different production orders. +## Description: +Preview Posting on Production Journal should filter by Item No only diff --git a/dataset/problemstatement/microsoftInternal__NAV-176150__cf-2/consumption-journals.png b/dataset/problemstatement/microsoftInternal__NAV-176150__cf-2/consumption-journals.png new file mode 100644 index 000000000..e028aa4bf Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176150__cf-2/consumption-journals.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176150__cf-2/error-message.png b/dataset/problemstatement/microsoftInternal__NAV-176150__cf-2/error-message.png new file mode 100644 index 000000000..676787090 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176150__cf-2/error-message.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176150__cf-2/item-ledger-entries-preview.png b/dataset/problemstatement/microsoftInternal__NAV-176150__cf-2/item-ledger-entries-preview.png new file mode 100644 index 000000000..99a350e75 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176150__cf-2/item-ledger-entries-preview.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176194__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-1/README.md new file mode 100644 index 000000000..0225d2cef --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-1/README.md @@ -0,0 +1,11 @@ +# Title: Item Charge throws error when pulled into Sales Return Order when Default Qty. to Ship is set to 'Blank' on Sales & Rec Setup +## Repro Steps: +Qty. to Invoice is not required when assigning item charges. The validation should not block the flow. + +![Sales Receivables Setup](./sales-receivables-setup.png) + +The Item Charge should be successfully assigned regardless of Qty. to Invoice value. + +![Item Charge Assignment](./item-charge-assignment.png) +## Description: +Qty. to Invoice validation removed from Item Charge Assignment. diff --git a/dataset/problemstatement/microsoftInternal__NAV-176194__cf-1/default-quantity-to-ship.png b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-1/default-quantity-to-ship.png new file mode 100644 index 000000000..2ebc6c0c7 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-1/default-quantity-to-ship.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176194__cf-1/error.png b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-1/error.png new file mode 100644 index 000000000..a1446e999 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-1/error.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176194__cf-1/item-charge-assignment.png b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-1/item-charge-assignment.png new file mode 100644 index 000000000..4a0d36346 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-1/item-charge-assignment.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176194__cf-1/post.png b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-1/post.png new file mode 100644 index 000000000..0246c9e9c Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-1/post.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176194__cf-1/posted-sales-document-lines.png b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-1/posted-sales-document-lines.png new file mode 100644 index 000000000..bf170e8cf Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-1/posted-sales-document-lines.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176194__cf-1/sales-order-item-charge-assignment.png b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-1/sales-order-item-charge-assignment.png new file mode 100644 index 000000000..d18b1751c Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-1/sales-order-item-charge-assignment.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176194__cf-1/sales-order.png b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-1/sales-order.png new file mode 100644 index 000000000..69a679e7b Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-1/sales-order.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176194__cf-1/sales-receivables-setup.png b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-1/sales-receivables-setup.png new file mode 100644 index 000000000..c48c8bc8c Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-1/sales-receivables-setup.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176194__cf-1/sales-return-order.png b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-1/sales-return-order.png new file mode 100644 index 000000000..621f8b74d Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-1/sales-return-order.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176194__cf-2/README.md b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-2/README.md new file mode 100644 index 000000000..3e3579519 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-2/README.md @@ -0,0 +1,11 @@ +# Title: Item Charge throws error when pulled into Sales Return Order when Default Qty. to Ship is set to 'Blank' on Sales & Rec Setup +## Repro Steps: +Item Charge should only be validated when Default Qty to Ship is Blank, not when it is non-Blank. + +![Sales Receivables Setup](./sales-receivables-setup.png) + +The validation condition is inverted: Qty. to Invoice is checked only when setup is Blank. + +![Item Charge Assignment](./item-charge-assignment.png) +## Description: +Item Charge Qty. to Invoice validation condition is inverted. diff --git a/dataset/problemstatement/microsoftInternal__NAV-176194__cf-2/default-quantity-to-ship.png b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-2/default-quantity-to-ship.png new file mode 100644 index 000000000..2ebc6c0c7 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-2/default-quantity-to-ship.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176194__cf-2/error.png b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-2/error.png new file mode 100644 index 000000000..a1446e999 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-2/error.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176194__cf-2/item-charge-assignment.png b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-2/item-charge-assignment.png new file mode 100644 index 000000000..4a0d36346 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-2/item-charge-assignment.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176194__cf-2/post.png b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-2/post.png new file mode 100644 index 000000000..0246c9e9c Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-2/post.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176194__cf-2/posted-sales-document-lines.png b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-2/posted-sales-document-lines.png new file mode 100644 index 000000000..bf170e8cf Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-2/posted-sales-document-lines.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176194__cf-2/sales-order-item-charge-assignment.png b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-2/sales-order-item-charge-assignment.png new file mode 100644 index 000000000..d18b1751c Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-2/sales-order-item-charge-assignment.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176194__cf-2/sales-order.png b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-2/sales-order.png new file mode 100644 index 000000000..69a679e7b Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-2/sales-order.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176194__cf-2/sales-receivables-setup.png b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-2/sales-receivables-setup.png new file mode 100644 index 000000000..c48c8bc8c Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-2/sales-receivables-setup.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176194__cf-2/sales-return-order.png b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-2/sales-return-order.png new file mode 100644 index 000000000..621f8b74d Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-2/sales-return-order.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176194__cf-3/README.md b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-3/README.md new file mode 100644 index 000000000..e217347d3 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-3/README.md @@ -0,0 +1,11 @@ +# Title: Item Charge throws error when pulled into Sales Return Order when Default Qty. to Ship is set to 'Blank' on Sales & Rec Setup +## Repro Steps: +Qty. to Invoice is validated during processing, not during field validation. The OnValidate trigger should not perform this check. + +![Sales Receivables Setup](./sales-receivables-setup.png) + +The validation responsibility is shifted from the OnValidate trigger to the processing flow. + +![Item Charge Assignment](./item-charge-assignment.png) +## Description: +Item Charge Qty. to Invoice validation moved out of OnValidate trigger. diff --git a/dataset/problemstatement/microsoftInternal__NAV-176194__cf-3/default-quantity-to-ship.png b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-3/default-quantity-to-ship.png new file mode 100644 index 000000000..2ebc6c0c7 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-3/default-quantity-to-ship.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176194__cf-3/error.png b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-3/error.png new file mode 100644 index 000000000..a1446e999 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-3/error.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176194__cf-3/item-charge-assignment.png b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-3/item-charge-assignment.png new file mode 100644 index 000000000..4a0d36346 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-3/item-charge-assignment.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176194__cf-3/post.png b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-3/post.png new file mode 100644 index 000000000..0246c9e9c Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-3/post.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176194__cf-3/posted-sales-document-lines.png b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-3/posted-sales-document-lines.png new file mode 100644 index 000000000..bf170e8cf Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-3/posted-sales-document-lines.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176194__cf-3/sales-order-item-charge-assignment.png b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-3/sales-order-item-charge-assignment.png new file mode 100644 index 000000000..d18b1751c Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-3/sales-order-item-charge-assignment.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176194__cf-3/sales-order.png b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-3/sales-order.png new file mode 100644 index 000000000..69a679e7b Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-3/sales-order.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176194__cf-3/sales-receivables-setup.png b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-3/sales-receivables-setup.png new file mode 100644 index 000000000..c48c8bc8c Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-3/sales-receivables-setup.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176194__cf-3/sales-return-order.png b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-3/sales-return-order.png new file mode 100644 index 000000000..621f8b74d Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176194__cf-3/sales-return-order.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176426__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-176426__cf-1/README.md new file mode 100644 index 000000000..b8a9369ae --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-176426__cf-1/README.md @@ -0,0 +1,13 @@ +# Title: Inconsistency in Rolled-up Capacity Cost field on BOM Cost Shares page. +## Repro Steps: +1. Cronus database. Open item '1000' -> Production BOM No. field -> open -> change the status to "Under Development" -> find the component 1100 and increase the Quantity per from 1 to 5. Certify the BOM. +2. Open item '1100' -> Production BOM No. field -> erase the current BOM No. and create a new BOM for the item '1100'. Do not add any lines to the new BOM, just leave it blank and certify. Make sure that the new blank BOM is selected for the item '1100'. +3. Go back to item '1000' -> open 'Cost Shares' page. Note that 'Rolled-up Capacity Cost' for the component '1100' is equal to 66. +![Item 66](./item-66.png) +4. Go back to item '1100' -> Production BOM No. field -> erase the current BOM No. so that this field is blank. +5. Reopen 'Cost Shares' page for item '1000'. Note that 'Rolled-up Capacity Cost' for '1100' is now equal to 330 (66 * 5): +![Item 330](./item-330.png) + +Only Unit Cost should fallback when no BOM exists, rolled-up material cost remains unchanged. + +## Description: diff --git a/dataset/problemstatement/microsoftInternal__NAV-176426__cf-1/item-330.png b/dataset/problemstatement/microsoftInternal__NAV-176426__cf-1/item-330.png new file mode 100644 index 000000000..f13afa195 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176426__cf-1/item-330.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176426__cf-1/item-66.png b/dataset/problemstatement/microsoftInternal__NAV-176426__cf-1/item-66.png new file mode 100644 index 000000000..eeadf3dd6 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176426__cf-1/item-66.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176426__cf-2/README.md b/dataset/problemstatement/microsoftInternal__NAV-176426__cf-2/README.md new file mode 100644 index 000000000..95d224612 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-176426__cf-2/README.md @@ -0,0 +1,13 @@ +# Title: Inconsistency in Rolled-up Capacity Cost field on BOM Cost Shares page. +## Repro Steps: +1. Cronus database. Open item '1000' -> Production BOM No. field -> open -> change the status to "Under Development" -> find the component 1100 and increase the Quantity per from 1 to 5. Certify the BOM. +2. Open item '1100' -> Production BOM No. field -> erase the current BOM No. and create a new BOM for the item '1100'. Do not add any lines to the new BOM, just leave it blank and certify. Make sure that the new blank BOM is selected for the item '1100'. +3. Go back to item '1000' -> open 'Cost Shares' page. Note that 'Rolled-up Capacity Cost' for the component '1100' is equal to 66. +![Item 66](./item-66.png) +4. Go back to item '1100' -> Production BOM No. field -> erase the current BOM No. so that this field is blank. +5. Reopen 'Cost Shares' page for item '1000'. Note that 'Rolled-up Capacity Cost' for '1100' is now equal to 330 (66 * 5): +![Item 330](./item-330.png) + +The Unit Cost fallback is determined after item cost retrieval, not during BOM tree calculation. + +## Description: diff --git a/dataset/problemstatement/microsoftInternal__NAV-176426__cf-2/item-330.png b/dataset/problemstatement/microsoftInternal__NAV-176426__cf-2/item-330.png new file mode 100644 index 000000000..f13afa195 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176426__cf-2/item-330.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-176426__cf-2/item-66.png b/dataset/problemstatement/microsoftInternal__NAV-176426__cf-2/item-66.png new file mode 100644 index 000000000..eeadf3dd6 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-176426__cf-2/item-66.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-177493__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-177493__cf-1/README.md new file mode 100644 index 000000000..02d38eaaa --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-177493__cf-1/README.md @@ -0,0 +1,13 @@ +# Title: Reservation Worksheet creates a Reservation for Item that has 'Reserve' = Never +## Repro Steps: +1. Create new Item or go to item with no records. +2. On the item card, set the 'Reserve' = NEVER +3. Create Item Journal, Positive Adjustment for BLUE location and 10 qty. +4. Post this +5. Create Sales Order for Customer 50000 with the New item on the line with BLUE Location and 3 Quantity. +6. Go to the Reservation Worksheet. +7. Choose Process > Get Demand and set Demand Type = Sales, Item No. = Your Item. +8. The Item demand may be collected initially but should be filtered out before reservation processing. + +## Description: +Filtering of Reserve = Never items is deferred to post-processing stage instead of source filtering. diff --git a/dataset/problemstatement/microsoftInternal__NAV-177493__cf-2/README.md b/dataset/problemstatement/microsoftInternal__NAV-177493__cf-2/README.md new file mode 100644 index 000000000..784f1b50e --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-177493__cf-2/README.md @@ -0,0 +1,13 @@ +# Title: Reservation Worksheet creates a Reservation for Item that has 'Reserve' = Never +## Repro Steps: +1. Create new Item or go to item with no records. +2. On the item card, set the 'Reserve' = NEVER +3. Create Item Journal, Positive Adjustment for BLUE location and 10 qty. +4. Post this +5. Create Sales Order for Customer 50000 with the New item on the line with BLUE Location and 3 Quantity. +6. Go to the Reservation Worksheet. +7. Choose Process > Get Demand and set Demand Type = Sales, Item No. = Your Item. +8. Sales and service demand should not pull in here, but other demand types may still appear. + +## Description: +Reserve = Never restriction applies only to Sales and Service demand, not to Assembly or Job Planning. diff --git a/dataset/problemstatement/microsoftInternal__NAV-177493__cf-3/README.md b/dataset/problemstatement/microsoftInternal__NAV-177493__cf-3/README.md new file mode 100644 index 000000000..5dfd53613 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-177493__cf-3/README.md @@ -0,0 +1,13 @@ +# Title: Reservation Worksheet creates a Reservation for Item that has 'Reserve' = Never +## Repro Steps: +1. Create new Item or go to item with no records. +2. On the item card, set the 'Reserve' = NEVER +3. Create Item Journal, Positive Adjustment for BLUE location and 10 qty. +4. Post this +5. Create Sales Order for Customer 50000 with the New item on the line with BLUE Location and 3 Quantity. +6. Go to the Reservation Worksheet. +7. Choose Process > Get Demand and set Demand Type = Sales, Item No. = Your Item. +8. The filtering depends on the reserve setting, but behavior may vary depending on source context. + +## Description: +The Reserve filter uses a different enum source which may cause inconsistent behavior across demand types. diff --git a/dataset/problemstatement/microsoftInternal__NAV-178045__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-178045__cf-1/README.md new file mode 100644 index 000000000..dc41228a6 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-178045__cf-1/README.md @@ -0,0 +1,8 @@ +# Title: Consumption not posted for multiple ILEs of same Lot No. — only when multiple entries exist +## Repro Steps: +Same as NAV-178045 base repro, except: +- Only **two** Item Journal Lines are posted with the same Lot No. (5 and 10 qty) instead of three +- Total consumption quantity is 15 instead of 35 + +## Description: +Variant of NAV-178045 (L2: condition-change). The fix only applies the consumption correction when multiple Item Ledger Entries exist for the same lot (Count > 1 guard). Test uses 2 journal lines instead of 3 to create a tighter scenario while still exercising the multi-ILE path. diff --git a/dataset/problemstatement/microsoftInternal__NAV-179733__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-179733__cf-1/README.md new file mode 100644 index 000000000..c98acf5b5 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-179733__cf-1/README.md @@ -0,0 +1,14 @@ +# Title: Copy Project Tasks into Project with Task Billing = Multiple Customers should skip Begin-Total explicitly +## Repro Steps: +Create project1 for any customer (10000) +add task 1 of type Begin-Total and task 2 of type Posting. (no planning lines) +Change Task Billing Method = Multiple Customers. + +Choose Copy Project Tasks from... +Select project with Begin/End + +Result: Only Begin-Total tasks are explicitly skipped; all other task types inherit customer fields. + +Expected: Begin-Total type is explicitly excluded from customer field inheritance. +## Description: +Only Begin-Total tasks should be skipped when copying customer fields in Multiple Customers billing mode. diff --git a/dataset/problemstatement/microsoftInternal__NAV-180484__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-180484__cf-1/README.md new file mode 100644 index 000000000..2b6ed977f --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-180484__cf-1/README.md @@ -0,0 +1,27 @@ +# Title: Incoming Document status stuck at new after file is created and reopened. +## Repro Steps: +**ISSUE REPRO:** + +Navigate to the Incoming document page on the new document page click on NEW and Create from file as shown in the screenshot below: +![Incoming Documents](./incoming-documents-create.png) + +After the document has been imported click on create document. If the setting in the environment match with the incoming document the document is created as shown below and the status set to "Created" +![Incoming Documents Created](./incoming-documents-created.png) + +Click on release and then click on Re-Open. The status remains as Created only if a document is linked and the document is posted. +![Incoming Documents Reopen](./incoming-document-reopened.png) + +If you click on create document, you get a prompt that "The document has already been created" and the status is still set at NEW after click okay as shown below. +![Document Already Created Error](./document-already-created.png) + +================ +ACTUAL RESULTS +================ + +Incoming Document status stuck at new after file is created and reopened. + +================ +EXPECTED RESULTS +================ + +Status remains as Created only if a document is linked and the document is posted. diff --git a/dataset/problemstatement/microsoftInternal__NAV-180484__cf-1/document-already-created.png b/dataset/problemstatement/microsoftInternal__NAV-180484__cf-1/document-already-created.png new file mode 100644 index 000000000..3ed167854 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-180484__cf-1/document-already-created.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-180484__cf-1/incoming-document-reopened.png b/dataset/problemstatement/microsoftInternal__NAV-180484__cf-1/incoming-document-reopened.png new file mode 100644 index 000000000..261459420 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-180484__cf-1/incoming-document-reopened.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-180484__cf-1/incoming-documents-create.png b/dataset/problemstatement/microsoftInternal__NAV-180484__cf-1/incoming-documents-create.png new file mode 100644 index 000000000..9f06588d6 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-180484__cf-1/incoming-documents-create.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-180484__cf-1/incoming-documents-created.png b/dataset/problemstatement/microsoftInternal__NAV-180484__cf-1/incoming-documents-created.png new file mode 100644 index 000000000..cd8e21d2e Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-180484__cf-1/incoming-documents-created.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-180484__cf-2/README.md b/dataset/problemstatement/microsoftInternal__NAV-180484__cf-2/README.md new file mode 100644 index 000000000..747b30a6f --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-180484__cf-2/README.md @@ -0,0 +1,27 @@ +# Title: Incoming Document status stuck at new after file is created and reopened. +## Repro Steps: +**ISSUE REPRO:** + +Navigate to the Incoming document page on the new document page click on NEW and Create from file as shown in the screenshot below: +![Incoming Documents](./incoming-documents-create.png) + +After the document has been imported click on create document. If the setting in the environment match with the incoming document the document is created as shown below and the status set to "Created" +![Incoming Documents Created](./incoming-documents-created.png) + +Click on release and then click on Re-Open. Reopen does nothing when a document is already linked. +![Incoming Documents Reopen](./incoming-document-reopened.png) + +If you click on create document, you get a prompt that "The document has already been created" and the status is still set at NEW after click okay as shown below. +![Document Already Created Error](./document-already-created.png) + +================ +ACTUAL RESULTS +================ + +Incoming Document status stuck at new after file is created and reopened. + +================ +EXPECTED RESULTS +================ + +Reopen does nothing when a document is already linked. diff --git a/dataset/problemstatement/microsoftInternal__NAV-180484__cf-2/document-already-created.png b/dataset/problemstatement/microsoftInternal__NAV-180484__cf-2/document-already-created.png new file mode 100644 index 000000000..3ed167854 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-180484__cf-2/document-already-created.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-180484__cf-2/incoming-document-reopened.png b/dataset/problemstatement/microsoftInternal__NAV-180484__cf-2/incoming-document-reopened.png new file mode 100644 index 000000000..261459420 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-180484__cf-2/incoming-document-reopened.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-180484__cf-2/incoming-documents-create.png b/dataset/problemstatement/microsoftInternal__NAV-180484__cf-2/incoming-documents-create.png new file mode 100644 index 000000000..9f06588d6 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-180484__cf-2/incoming-documents-create.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-180484__cf-2/incoming-documents-created.png b/dataset/problemstatement/microsoftInternal__NAV-180484__cf-2/incoming-documents-created.png new file mode 100644 index 000000000..cd8e21d2e Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-180484__cf-2/incoming-documents-created.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-182354__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-182354__cf-1/README.md new file mode 100644 index 000000000..8a8bc1133 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-182354__cf-1/README.md @@ -0,0 +1,22 @@ +# Title: New AR rolecenter: the system should fallback to WorkDate only when Today is not initialized +## Repro Steps: +Note: the system should fallback to WorkDate only when Today is not initialized (returns 0D) + +besically you can ignore the repro and just implement the correct filter date + +repro: the total Overdue (LCY) cue is using wrong date: +open the new AR rolecenter +go to My settings: update workdate - use today's date +expected: the cue should use Today() when available, and fallback to WorkDate() only when Today() = 0D + +actual: cue always uses WorkDate() regardless of whether Today() is available +![Customer Ledger Entries Current](./customer-ledger-entries-current.png) + +expected value: +![Customer Ledger Entries Expected](./customer-ledger-entries-expected.png) + +## Description: + +## Hints + +Also, found that calculation and drilldown for "Total Overdue (LCY)" are not in line. diff --git a/dataset/problemstatement/microsoftInternal__NAV-182354__cf-1/customer-ledger-entries-current.png b/dataset/problemstatement/microsoftInternal__NAV-182354__cf-1/customer-ledger-entries-current.png new file mode 100644 index 000000000..1b1903f9a Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-182354__cf-1/customer-ledger-entries-current.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-182354__cf-1/customer-ledger-entries-expected.png b/dataset/problemstatement/microsoftInternal__NAV-182354__cf-1/customer-ledger-entries-expected.png new file mode 100644 index 000000000..d6c57b982 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-182354__cf-1/customer-ledger-entries-expected.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-183399__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-183399__cf-1/README.md new file mode 100644 index 000000000..676192f2c --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-183399__cf-1/README.md @@ -0,0 +1,16 @@ +# Title: Document Amount in Purchase Journal not showing the correct decimals +## Repro Steps: +I was able to repro the issue using TND currency, which actually has 4 decimal places. + +1.I created a purchase journal and insert a new entry for vendor 20000.and set my currency to TND and amount to 1.2345. +![Purchase Journals Error](./purchase-journals-error.png) + +If I enter an amount (1.2345) in the document amount filed, I get this error message" Your entry of '1.2345' is not an acceptable value for 'Document Amount'. The field can have a maximum of 3 decimal places." + +2.To ignores this error, The amount was entered in the amount field and the journal was posted. +![Purchase Journals No Error](./purchase-journal-no-error.png) + +## Description: +Issue: Document Amount in Purchase Journal not showing the correct decimals + +Expectation: It is expected that the document amount field should accept up to 4 decimal figures. diff --git a/dataset/problemstatement/microsoftInternal__NAV-183399__cf-1/purchase-journal-no-error.png b/dataset/problemstatement/microsoftInternal__NAV-183399__cf-1/purchase-journal-no-error.png new file mode 100644 index 000000000..72bcecc16 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-183399__cf-1/purchase-journal-no-error.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-183399__cf-1/purchase-journals-error.png b/dataset/problemstatement/microsoftInternal__NAV-183399__cf-1/purchase-journals-error.png new file mode 100644 index 000000000..afbd18285 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-183399__cf-1/purchase-journals-error.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-183399__cf-2/README.md b/dataset/problemstatement/microsoftInternal__NAV-183399__cf-2/README.md new file mode 100644 index 000000000..c72fa563f --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-183399__cf-2/README.md @@ -0,0 +1,18 @@ +# Title: Document Amount in Purchase Journal not showing the correct decimals +## Repro Steps: +I was able to repro the issue using TND currency, which actually has 3 decimal places. + +1.I created a purchase journal and insert a new entry for vendor 20000.and set my currency to TND and amount to 1.234. +![Purchase Journals Error](./purchase-journals-error.png) + +If I enter an amount (1.234) in the document amount filed, I get this error message" Your entry of '1.234' is not an acceptable value for 'Document Amount'. The field can have a maximum of 2 decimal places." + +The document amount field ignores currency precision when validating decimals. + +2.To ignores this error, The amount was entered in the amount field and the journal was posted. +![Purchase Journals No Error](./purchase-journal-no-error.png) + +## Description: +Issue: Document Amount in Purchase Journal ignores currency precision when validating decimals + +Expectation: It is expected that the document amount field should accept 3 decimal figures regardless of currency formatting. diff --git a/dataset/problemstatement/microsoftInternal__NAV-183399__cf-2/purchase-journal-no-error.png b/dataset/problemstatement/microsoftInternal__NAV-183399__cf-2/purchase-journal-no-error.png new file mode 100644 index 000000000..72bcecc16 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-183399__cf-2/purchase-journal-no-error.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-183399__cf-2/purchase-journals-error.png b/dataset/problemstatement/microsoftInternal__NAV-183399__cf-2/purchase-journals-error.png new file mode 100644 index 000000000..afbd18285 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-183399__cf-2/purchase-journals-error.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-185488__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-185488__cf-1/README.md new file mode 100644 index 000000000..df8680dea --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-185488__cf-1/README.md @@ -0,0 +1,73 @@ +# Title: "The definition of the Pay-to Name 2 field has changed; old type: Code, new type: Text. Start your activity again." error message if you request approval of a Purchase Quote with Notify Sender activated. +## Repro Steps: +1-Take a BC 23.x (any localization) +2-Create from Template the Purchase Quote Approval Workflow from the Workflow page. +3-Just add the following new Response to Notify Sender: +![Create a Notification responce](./create-a-notification-response.png) +4-Create a new Purchase Quote and try to Send Approval Request from it. +================ +ACTUAL RESULTS +================ +"The definition of the Pay-to Name 2 field has changed; old type: Code, new type: Text. Start your activity again." error message if you request approval of a Purchase Quote with Notify Sender activated. +![Send Approval Request Error](./send-approval-error.png) + +================ +EXPECTED RESULTS +================ +The notification is not created because the event is considered handled. + +================ +ADDITIONAL INFO +================ + +If requesting support, please provide the following details to help troubleshooting: + +The definition of the Pay-to Name 2 field has changed; old type: Code, new type: Text. Start your activity again. + +Internal session ID: +bf61c088-ec19-41f0-b24b-cf19d15c0257 + +Application Insights session ID: +ec2aa9d8-08cc-41f4-8bf6-ba7eed842b78 + +Client activity id: +801fcf32-876f-46b0-a65f-04f16827c7e4 + +Time stamp on error: +2024-02-22T09:07:55.9555575Z + +User telemetry id: +8e1abf47-e5ce-4778-9d0c-6c45b151fb2c + +AL call stack: +"Workflow Step Argument"(Table 1523).GetNotificationUserID line 5 - Base Application by Microsoft +"Workflow Response Handling"(CodeUnit 1521).CreateNotificationEntry line 12 - Base Application by Microsoft +"Workflow Response Handling"(CodeUnit 1521).ExecuteResponse line 27 - Base Application by Microsoft +"Workflow Management"(CodeUnit 1501).ExecuteResponses line 32 - Base Application by Microsoft +"Workflow Management"(CodeUnit 1501).HandleEventWithxRec line 28 - Base Application by Microsoft +"Workflow Management"(CodeUnit 1501).HandleEvent line 2 - Base Application by Microsoft +"Workflow Event Handling"(CodeUnit 1520).RunWorkflowOnSendPurchaseDocForApproval line 3 - Base Application by Microsoft +"Approvals Mgmt."(CodeUnit 1535).OnSendPurchaseDocForApproval(Event) line 2 - Base Application by Microsoft +"Purchase Quote"(Page 49)."SendApprovalRequest - OnAction"(Trigger) line 5 - Base Application by Microsoft + +=================== +EXTRA INFO FROM PARTNER +=================== +Debugging function CreateNotificationEntry - Codeunit 1521 +![Local procedure CreateNotificationEntry](./local-procedure-createnotificationentry.png) + +This function calls function CreateNotificationEntry from “Notification entry” Table, and in its definition is expecting to receive the following parameters: + +![Public procedure CreateNotificationEntry](./public-procedure-createnotificationentry.png) + +The second parameter expects to receive Userid (Code 50) and here is where the problem is as to get the UserID it calls the GetNotificationUserID, with a register that should come from "Approval Entry". Field 6 of "Approval Entry" table is Sender ID, which is Code 50. But, we have checked that on this point in some situations we find a register of "Sales Header"... Field 6 of "Sales Header" is Bill-to Name 2... Text 50... +GetNotificationUserID exit this Text50 and the error happens. + +This is the exact point in the code where the error happens: + +![Debug procedure](./debug-procedure.png) + +The function try to exit the "Sender ID" and as we saw already this is field 6 of "Approval Entry" table and in "Sales Header" it doe snot exist... and exit the "Bill-to Name 2" field...which is field 6 of "Sales Header" table. + +## Description: +When you request approval of a Purchase Quote with Notify Sender activated, we shall receive such error message: "The definition of the Pay-to Name 2 field has changed; old type: Code, new type: Text. Start your activity again." diff --git a/dataset/problemstatement/microsoftInternal__NAV-185488__cf-1/create-a-notification-response.png b/dataset/problemstatement/microsoftInternal__NAV-185488__cf-1/create-a-notification-response.png new file mode 100644 index 000000000..274de1b84 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-185488__cf-1/create-a-notification-response.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-185488__cf-1/debug-procedure.png b/dataset/problemstatement/microsoftInternal__NAV-185488__cf-1/debug-procedure.png new file mode 100644 index 000000000..ebd168516 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-185488__cf-1/debug-procedure.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-185488__cf-1/local-procedure-createnotificationentry.png b/dataset/problemstatement/microsoftInternal__NAV-185488__cf-1/local-procedure-createnotificationentry.png new file mode 100644 index 000000000..0f9898809 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-185488__cf-1/local-procedure-createnotificationentry.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-185488__cf-1/public-procedure-createnotificationentry.png b/dataset/problemstatement/microsoftInternal__NAV-185488__cf-1/public-procedure-createnotificationentry.png new file mode 100644 index 000000000..ba2ff5c49 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-185488__cf-1/public-procedure-createnotificationentry.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-185488__cf-1/send-approval-error.png b/dataset/problemstatement/microsoftInternal__NAV-185488__cf-1/send-approval-error.png new file mode 100644 index 000000000..141d3f710 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-185488__cf-1/send-approval-error.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-185488__cf-2/README.md b/dataset/problemstatement/microsoftInternal__NAV-185488__cf-2/README.md new file mode 100644 index 000000000..01b3c23bc --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-185488__cf-2/README.md @@ -0,0 +1,73 @@ +# Title: "The definition of the Pay-to Name 2 field has changed; old type: Code, new type: Text. Start your activity again." error message if you request approval of a Purchase Quote with Notify Sender activated. +## Repro Steps: +1-Take a BC 23.x (any localization) +2-Create from Template the Purchase Quote Approval Workflow from the Workflow page. +3-Just add the following new Response to Notify Sender: +![Create a Notification responce](./create-a-notification-response.png) +4-Create a new Purchase Quote and try to Send Approval Request from it. +================ +ACTUAL RESULTS +================ +"The definition of the Pay-to Name 2 field has changed; old type: Code, new type: Text. Start your activity again." error message if you request approval of a Purchase Quote with Notify Sender activated. +![Send Approval Request Error](./send-approval-error.png) + +================ +EXPECTED RESULTS +================ +ExecuteResponse only supports Approval Entry as argument. + +================ +ADDITIONAL INFO +================ + +If requesting support, please provide the following details to help troubleshooting: + +The definition of the Pay-to Name 2 field has changed; old type: Code, new type: Text. Start your activity again. + +Internal session ID: +bf61c088-ec19-41f0-b24b-cf19d15c0257 + +Application Insights session ID: +ec2aa9d8-08cc-41f4-8bf6-ba7eed842b78 + +Client activity id: +801fcf32-876f-46b0-a65f-04f16827c7e4 + +Time stamp on error: +2024-02-22T09:07:55.9555575Z + +User telemetry id: +8e1abf47-e5ce-4778-9d0c-6c45b151fb2c + +AL call stack: +"Workflow Step Argument"(Table 1523).GetNotificationUserID line 5 - Base Application by Microsoft +"Workflow Response Handling"(CodeUnit 1521).CreateNotificationEntry line 12 - Base Application by Microsoft +"Workflow Response Handling"(CodeUnit 1521).ExecuteResponse line 27 - Base Application by Microsoft +"Workflow Management"(CodeUnit 1501).ExecuteResponses line 32 - Base Application by Microsoft +"Workflow Management"(CodeUnit 1501).HandleEventWithxRec line 28 - Base Application by Microsoft +"Workflow Management"(CodeUnit 1501).HandleEvent line 2 - Base Application by Microsoft +"Workflow Event Handling"(CodeUnit 1520).RunWorkflowOnSendPurchaseDocForApproval line 3 - Base Application by Microsoft +"Approvals Mgmt."(CodeUnit 1535).OnSendPurchaseDocForApproval(Event) line 2 - Base Application by Microsoft +"Purchase Quote"(Page 49)."SendApprovalRequest - OnAction"(Trigger) line 5 - Base Application by Microsoft + +=================== +EXTRA INFO FROM PARTNER +=================== +Debugging function CreateNotificationEntry - Codeunit 1521 +![Local procedure CreateNotificationEntry](./local-procedure-createnotificationentry.png) + +This function calls function CreateNotificationEntry from “Notification entry” Table, and in its definition is expecting to receive the following parameters: + +![Public procedure CreateNotificationEntry](./public-procedure-createnotificationentry.png) + +The second parameter expects to receive Userid (Code 50) and here is where the problem is as to get the UserID it calls the GetNotificationUserID, with a register that should come from "Approval Entry". Field 6 of "Approval Entry" table is Sender ID, which is Code 50. But, we have checked that on this point in some situations we find a register of "Sales Header"... Field 6 of "Sales Header" is Bill-to Name 2... Text 50... +GetNotificationUserID exit this Text50 and the error happens. + +This is the exact point in the code where the error happens: + +![Debug procedure](./debug-procedure.png) + +The function try to exit the "Sender ID" and as we saw already this is field 6 of "Approval Entry" table and in "Sales Header" it doe snot exist... and exit the "Bill-to Name 2" field...which is field 6 of "Sales Header" table. + +## Description: +When you request approval of a Purchase Quote with Notify Sender activated, we shall receive such error message: "The definition of the Pay-to Name 2 field has changed; old type: Code, new type: Text. Start your activity again." diff --git a/dataset/problemstatement/microsoftInternal__NAV-185488__cf-2/create-a-notification-response.png b/dataset/problemstatement/microsoftInternal__NAV-185488__cf-2/create-a-notification-response.png new file mode 100644 index 000000000..274de1b84 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-185488__cf-2/create-a-notification-response.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-185488__cf-2/debug-procedure.png b/dataset/problemstatement/microsoftInternal__NAV-185488__cf-2/debug-procedure.png new file mode 100644 index 000000000..ebd168516 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-185488__cf-2/debug-procedure.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-185488__cf-2/local-procedure-createnotificationentry.png b/dataset/problemstatement/microsoftInternal__NAV-185488__cf-2/local-procedure-createnotificationentry.png new file mode 100644 index 000000000..0f9898809 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-185488__cf-2/local-procedure-createnotificationentry.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-185488__cf-2/public-procedure-createnotificationentry.png b/dataset/problemstatement/microsoftInternal__NAV-185488__cf-2/public-procedure-createnotificationentry.png new file mode 100644 index 000000000..ba2ff5c49 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-185488__cf-2/public-procedure-createnotificationentry.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-185488__cf-2/send-approval-error.png b/dataset/problemstatement/microsoftInternal__NAV-185488__cf-2/send-approval-error.png new file mode 100644 index 000000000..141d3f710 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-185488__cf-2/send-approval-error.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-185696__cf-2/README.md b/dataset/problemstatement/microsoftInternal__NAV-185696__cf-2/README.md new file mode 100644 index 000000000..8e101c821 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-185696__cf-2/README.md @@ -0,0 +1,19 @@ +# Title: When creating a new price for variant items the variant code may remain from the previous line when creating a new line +## Repro Steps: +1. Open BC 22.13 W1 +2. Search for "Feature management" + Activate "New sales pricing experience" + ![Feature Management](./feature-management.png) +3. Search for Items + Create a new item +4. Create 3 Variants for this item: + Actions -> item -> variants + ![Item Variants](./item-variants.png) +5. Search for "Sales price lists" + Create a new price list + Insert a line with your new item (70061) and select a variant "Blue" + insert a second line for the same item - the variant may remain from the previous line + +ACTUAL RESULT: +the variant "Blue" may remain from the previous line when creating a new line +![Sales Price List](./sales-price-list.png) diff --git a/dataset/problemstatement/microsoftInternal__NAV-185696__cf-2/feature-management.png b/dataset/problemstatement/microsoftInternal__NAV-185696__cf-2/feature-management.png new file mode 100644 index 000000000..1b2cea8a2 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-185696__cf-2/feature-management.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-185696__cf-2/item-variants.png b/dataset/problemstatement/microsoftInternal__NAV-185696__cf-2/item-variants.png new file mode 100644 index 000000000..46b826007 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-185696__cf-2/item-variants.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-185696__cf-2/sales-price-list.png b/dataset/problemstatement/microsoftInternal__NAV-185696__cf-2/sales-price-list.png new file mode 100644 index 000000000..0892ac107 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-185696__cf-2/sales-price-list.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-185792__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-185792__cf-1/README.md new file mode 100644 index 000000000..4deda3077 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-185792__cf-1/README.md @@ -0,0 +1,41 @@ +# Title: Issue in the Project G/L Ledgers line after changing the "Amount (LCY)" value +## Repro Steps: +Testing done on version 24.1: +1- Open Project G/L Journal & fill the line as follows: +Document No. + +Account type & Account No. + +Currency code + +Bal. account type & Bal Account No. + +Project No. & Project Task No. + +Project quantity. + +![Project G/L Journals](./project-gl-journals.png) + +The following fields will be filled automatically using existing job journal values: + +Project Unit Cost, Project Unit Cost (LCY), Project Total Cost and Project Total Cost (LCY). + +![Project G/L Journals Filled](./project-gl-journals-filled.png) + +2- After changing the Amount (LCY) in the line: +![Project G/L Journals Amount](./project-gl-journals-amount.png) + +3- The new amount will not reflect on the 4 fields mentioned: +![Project G/L Journals Not Reflected](./project-gl-journals-not-reflect.png) + +I replicated the same scenario on version: +![BC Version](./version-info.png) + +And the fields were updated once the Amount (LCY) field was adjusted: +Before: +![Before](./before.png) +After: +![After](./after.png) + +## Description: +Issue in the Project G/L Ledgers line after changing the "Amount (LCY)" value diff --git a/dataset/problemstatement/microsoftInternal__NAV-185792__cf-1/after.png b/dataset/problemstatement/microsoftInternal__NAV-185792__cf-1/after.png new file mode 100644 index 000000000..611710406 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-185792__cf-1/after.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-185792__cf-1/before.png b/dataset/problemstatement/microsoftInternal__NAV-185792__cf-1/before.png new file mode 100644 index 000000000..9f1a2d407 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-185792__cf-1/before.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-185792__cf-1/project-gl-journals-amount.png b/dataset/problemstatement/microsoftInternal__NAV-185792__cf-1/project-gl-journals-amount.png new file mode 100644 index 000000000..79f5da25b Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-185792__cf-1/project-gl-journals-amount.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-185792__cf-1/project-gl-journals-filled.png b/dataset/problemstatement/microsoftInternal__NAV-185792__cf-1/project-gl-journals-filled.png new file mode 100644 index 000000000..60fb3677c Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-185792__cf-1/project-gl-journals-filled.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-185792__cf-1/project-gl-journals-not-reflect.png b/dataset/problemstatement/microsoftInternal__NAV-185792__cf-1/project-gl-journals-not-reflect.png new file mode 100644 index 000000000..bbd6f88f3 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-185792__cf-1/project-gl-journals-not-reflect.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-185792__cf-1/project-gl-journals.png b/dataset/problemstatement/microsoftInternal__NAV-185792__cf-1/project-gl-journals.png new file mode 100644 index 000000000..930202b9e Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-185792__cf-1/project-gl-journals.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-185792__cf-1/version-info.png b/dataset/problemstatement/microsoftInternal__NAV-185792__cf-1/version-info.png new file mode 100644 index 000000000..c601665b5 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-185792__cf-1/version-info.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-188438__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-188438__cf-1/README.md new file mode 100644 index 000000000..5ce2adcf3 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-188438__cf-1/README.md @@ -0,0 +1,22 @@ +# Title: Wrong calculation at Sustainability Journal +## Repro Steps: + +## Description: +Use **CRONUS USA, Inc.** company: + +1. Install Sustainability demo data in Contoso Demo Tool. +2. Open **Sustainability Account Categories**. +3. Find **PURCHGOODS-GL** code. +4. in the **G/L Account** field enter **61300** account (or any other with the balance). +5. Close the page and open **Sustainability Journal** with **DEFAULT** batch. +6. The last line in this journal is with the **Account No. = 13151** and the **Installation Multiplier** for this line has value **1; Emission Factor CO2** for this line is **0.15**. +7. Add **Unit of Measure**. +8. Run the **Collect Amount from G/L Entries** action (from Line). +9. You will see **Net Change** used as a source for this calculation (for account I mentioned, it should be **-52,818.18**). Press OK. +10. After running the action, we will get the following results: + a. Custom Amount = -52,818.18 (WRONG) + b. Emission CO2 = -7,922.727 (WRONG) + +EXPECTED RESULTS: +==================================== +**Custom Amount** when use action **Collect Amount from G/L Entries** always must show positive value. Only G/L accounts with **Direct Posting = true** should be considered when collecting amounts. If a G/L account does not have Direct Posting enabled, its amount should be excluded (treated as zero). diff --git a/dataset/problemstatement/microsoftInternal__NAV-192565__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-192565__cf-1/README.md new file mode 100644 index 000000000..caecb3df4 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-192565__cf-1/README.md @@ -0,0 +1,28 @@ +# Title: When Changing the Unit Amount to 0 in the purchase invoice line, the Non Deductible Vat is not removed if quantity is non-zero. +## Repro Steps: +1. Open Cronus W1. +2. Open Vat Setup and enable Non Deductible Vat. +3. ![VAT Setup Step3](./vat_setup_step3.png) + +4. Open Vat Posting Groups. +5. Setup and allow Non Deductible Vat with 10%. +6. ![VAT Posting Setup Step6](./VAT_posting_setup_step6.png) + +7. Go to Vendors and create a new DOMESTIC vendor. +8. ![Vendor Card Step8](./vendor_card_step8.png) + +9. Go to Purchase Invoices and create a new one. +10. Add the Test Vendor. +11. Add the item Athens Desk for example, it will generate Direct Unit Cost Excl Vat and Non Deductible Vat Amount. +12. ![Purchase Invoice Step12](./purchase_invoice_step12.png) + +13. Change the Direct Unit Cost Excl Vat to 0. +14. After changing it to 0 the Non Deductible Vat Amount is still the same and hasn't been removed, when the quantity is non-zero. +15. ![Change VAT Step15](./change_VAT_step15.png) + +16. If we do preview posting. +17. The Lines are posted with the Non Deductible Vat Amount. +18. ![Entries Preview Step18](./entries_preview_step18.png) + +## Description: +When Changing the Unit Amount to 0 in the purchase invoice line, the Non Deductible Vat is not removed if quantity is non-zero. diff --git a/dataset/problemstatement/microsoftInternal__NAV-192565__cf-1/VAT_posting_setup_step6.png b/dataset/problemstatement/microsoftInternal__NAV-192565__cf-1/VAT_posting_setup_step6.png new file mode 100644 index 000000000..73bffef4c Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-192565__cf-1/VAT_posting_setup_step6.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-192565__cf-1/change_VAT_step15.png b/dataset/problemstatement/microsoftInternal__NAV-192565__cf-1/change_VAT_step15.png new file mode 100644 index 000000000..a6df0c34d Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-192565__cf-1/change_VAT_step15.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-192565__cf-1/entries_preview_step18.png b/dataset/problemstatement/microsoftInternal__NAV-192565__cf-1/entries_preview_step18.png new file mode 100644 index 000000000..a832f7eef Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-192565__cf-1/entries_preview_step18.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-192565__cf-1/purchase_invoice_step12.png b/dataset/problemstatement/microsoftInternal__NAV-192565__cf-1/purchase_invoice_step12.png new file mode 100644 index 000000000..9de7efc6f Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-192565__cf-1/purchase_invoice_step12.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-192565__cf-1/vat_setup_step3.png b/dataset/problemstatement/microsoftInternal__NAV-192565__cf-1/vat_setup_step3.png new file mode 100644 index 000000000..47e706c88 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-192565__cf-1/vat_setup_step3.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-192565__cf-1/vendor_card_step8.png b/dataset/problemstatement/microsoftInternal__NAV-192565__cf-1/vendor_card_step8.png new file mode 100644 index 000000000..007fd8054 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-192565__cf-1/vendor_card_step8.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-192565__cf-2/README.md b/dataset/problemstatement/microsoftInternal__NAV-192565__cf-2/README.md new file mode 100644 index 000000000..80bb0aedd --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-192565__cf-2/README.md @@ -0,0 +1,28 @@ +# Title: When Changing the Unit Amount to 0 for item lines, the Non Deductible Vat is not removed. +## Repro Steps: +1. Open Cronus W1. +2. Open Vat Setup and enable Non Deductible Vat. +3. ![VAT Setup Step3](./vat_setup_step3.png) + +4. Open Vat Posting Groups. +5. Setup and allow Non Deductible Vat with 10%. +6. ![VAT Posting Setup Step6](./VAT_posting_setup_step6.png) + +7. Go to Vendors and create a new DOMESTIC vendor. +8. ![Vendor Card Step8](./vendor_card_step8.png) + +9. Go to Purchase Invoices and create a new one. +10. Add the Test Vendor. +11. Add the item Athens Desk for example, it will generate Direct Unit Cost Excl Vat and Non Deductible Vat Amount. +12. ![Purchase Invoice Step12](./purchase_invoice_step12.png) + +13. Change the Direct Unit Cost Excl Vat to 0. +14. After changing it to 0 the Non Deductible Vat Amount is still the same and hasn't been removed for item lines. +15. ![Change VAT Step15](./change_VAT_step15.png) + +16. If we do preview posting. +17. The Lines are posted with the Non Deductible Vat Amount. +18. ![Entries Preview Step18](./entries_preview_step18.png) + +## Description: +When Changing the Unit Amount to 0 for item lines, the Non Deductible Vat is not removed. diff --git a/dataset/problemstatement/microsoftInternal__NAV-192565__cf-2/VAT_posting_setup_step6.png b/dataset/problemstatement/microsoftInternal__NAV-192565__cf-2/VAT_posting_setup_step6.png new file mode 100644 index 000000000..73bffef4c Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-192565__cf-2/VAT_posting_setup_step6.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-192565__cf-2/change_VAT_step15.png b/dataset/problemstatement/microsoftInternal__NAV-192565__cf-2/change_VAT_step15.png new file mode 100644 index 000000000..a6df0c34d Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-192565__cf-2/change_VAT_step15.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-192565__cf-2/entries_preview_step18.png b/dataset/problemstatement/microsoftInternal__NAV-192565__cf-2/entries_preview_step18.png new file mode 100644 index 000000000..a832f7eef Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-192565__cf-2/entries_preview_step18.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-192565__cf-2/purchase_invoice_step12.png b/dataset/problemstatement/microsoftInternal__NAV-192565__cf-2/purchase_invoice_step12.png new file mode 100644 index 000000000..9de7efc6f Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-192565__cf-2/purchase_invoice_step12.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-192565__cf-2/vat_setup_step3.png b/dataset/problemstatement/microsoftInternal__NAV-192565__cf-2/vat_setup_step3.png new file mode 100644 index 000000000..47e706c88 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-192565__cf-2/vat_setup_step3.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-192565__cf-2/vendor_card_step8.png b/dataset/problemstatement/microsoftInternal__NAV-192565__cf-2/vendor_card_step8.png new file mode 100644 index 000000000..007fd8054 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-192565__cf-2/vendor_card_step8.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-192565__cf-3/README.md b/dataset/problemstatement/microsoftInternal__NAV-192565__cf-3/README.md new file mode 100644 index 000000000..336c44cd7 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-192565__cf-3/README.md @@ -0,0 +1,28 @@ +# Title: When Changing the Unit Amount to 0 in the purchase invoice line, the Non Deductible Vat is not removed when Non-Deductible VAT is enabled. +## Repro Steps: +1. Open Cronus W1. +2. Open Vat Setup and enable Non Deductible Vat. +3. ![VAT Setup Step3](./vat_setup_step3.png) + +4. Open Vat Posting Groups. +5. Setup and allow Non Deductible Vat with 10%. +6. ![VAT Posting Setup Step6](./VAT_posting_setup_step6.png) + +7. Go to Vendors and create a new DOMESTIC vendor. +8. ![Vendor Card Step8](./vendor_card_step8.png) + +9. Go to Purchase Invoices and create a new one. +10. Add the Test Vendor. +11. Add the item Athens Desk for example, it will generate Direct Unit Cost Excl Vat and Non Deductible Vat Amount. +12. ![Purchase Invoice Step12](./purchase_invoice_step12.png) + +13. Change the Direct Unit Cost Excl Vat to 0. +14. After changing it to 0 the Non Deductible Vat Amount is still the same and hasn't been removed when Non-Deductible VAT is enabled. +15. ![Change VAT Step15](./change_VAT_step15.png) + +16. If we do preview posting. +17. The Lines are posted with the Non Deductible Vat Amount. +18. ![Entries Preview Step18](./entries_preview_step18.png) + +## Description: +When Changing the Unit Amount to 0 in the purchase invoice line, the Non Deductible Vat is not removed when Non-Deductible VAT is enabled. diff --git a/dataset/problemstatement/microsoftInternal__NAV-192565__cf-3/VAT_posting_setup_step6.png b/dataset/problemstatement/microsoftInternal__NAV-192565__cf-3/VAT_posting_setup_step6.png new file mode 100644 index 000000000..73bffef4c Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-192565__cf-3/VAT_posting_setup_step6.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-192565__cf-3/change_VAT_step15.png b/dataset/problemstatement/microsoftInternal__NAV-192565__cf-3/change_VAT_step15.png new file mode 100644 index 000000000..a6df0c34d Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-192565__cf-3/change_VAT_step15.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-192565__cf-3/entries_preview_step18.png b/dataset/problemstatement/microsoftInternal__NAV-192565__cf-3/entries_preview_step18.png new file mode 100644 index 000000000..a832f7eef Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-192565__cf-3/entries_preview_step18.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-192565__cf-3/purchase_invoice_step12.png b/dataset/problemstatement/microsoftInternal__NAV-192565__cf-3/purchase_invoice_step12.png new file mode 100644 index 000000000..9de7efc6f Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-192565__cf-3/purchase_invoice_step12.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-192565__cf-3/vat_setup_step3.png b/dataset/problemstatement/microsoftInternal__NAV-192565__cf-3/vat_setup_step3.png new file mode 100644 index 000000000..47e706c88 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-192565__cf-3/vat_setup_step3.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-192565__cf-3/vendor_card_step8.png b/dataset/problemstatement/microsoftInternal__NAV-192565__cf-3/vendor_card_step8.png new file mode 100644 index 000000000..007fd8054 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-192565__cf-3/vendor_card_step8.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-193853__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-193853__cf-1/README.md new file mode 100644 index 000000000..733875765 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-193853__cf-1/README.md @@ -0,0 +1,15 @@ +# Title: [master] Incoming documents are not synced between multiple general journal lines with the same Document No. and Posting Date +## Repro Steps: + +## Description: +Issue: One Document in two lines needs two digital documents. +Setup: CheckType = Attachment, Generated Automatically = False +Create one document in two (or more) lines. In line 1 - Debit 100, and in line 2 Credit -100. Both lines of course have equal Document No. and Posting Date. +Add an incoming document to the last line only. Let's call this file "eDoc1". +Post (or post preview). +Error 1: You will be asked to add an Incoming Document per line! +To pass the Error message, you attach an Incoming Document to the other line. Let us call this file "eDoc2". +Post. +Now the error message disappears. However, "eDoc1" and "eDoc2" are two different files. +Result: "eDoc1" is the one document that is attached to my entries. +So why ask for a document per line? diff --git a/dataset/problemstatement/microsoftInternal__NAV-193853__cf-2/README.md b/dataset/problemstatement/microsoftInternal__NAV-193853__cf-2/README.md new file mode 100644 index 000000000..5b96906eb --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-193853__cf-2/README.md @@ -0,0 +1,15 @@ +# Title: [master] Incoming documents are not synced between multiple general journal lines with the same Document No. and Posting Date +## Repro Steps: + +## Description: +Issue: One Document in two lines needs two digital documents. +Setup: CheckType = Attachment, Generated Automatically = False +Create one document in two (or more) lines. In line 1 - Debit 100, and in line 2 Credit -100. Both lines of course have equal Document No. and Posting Date. +Add an incoming document to one of the lines. All lines must reference the same incoming document (same Entry No.). +Post (or post preview). +Error 1: You will be asked to add an Incoming Document per line! +To pass the Error message, you attach an Incoming Document to the other line. Let us call this file "eDoc2". +Post. +Now the error message disappears. However, "eDoc1" and "eDoc2" are two different files. +Result: "eDoc1" is the one document that is attached to my entries. +So why ask for a document per line? diff --git a/dataset/problemstatement/microsoftInternal__NAV-195193__cf-1/LCY.png b/dataset/problemstatement/microsoftInternal__NAV-195193__cf-1/LCY.png new file mode 100644 index 000000000..9978ff50d Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-195193__cf-1/LCY.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-195193__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-195193__cf-1/README.md new file mode 100644 index 000000000..a0b5faf24 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-195193__cf-1/README.md @@ -0,0 +1,20 @@ +# Title: Excel layouts - dim breakdown results in repeated values (Trial Balance report a.o.) +## Repro Steps: +Open the Trial Balance Excel report +run it for p1..p3 +tip: in US you can run it with this acc. filter: +![Filter](./filter.png) +so buggy rows are in top of page  ;o) +open excel +open TrialBalanceData tab + +**expected**: a breakdown of revenue account per dimensions (zero values treated as debit) + +**actual**: repeated values for dimensions   (NetchangeDebit and Balance Debit) +![Excel Table](./excel_table.png) +the repeated rows/fields appears to just 'sit' in the reports - because the other numbers are correct: +![LCY](./LCY.png) + compared to a financial reported filtered for same dim: +![Finance Report](./finance_report.png) + +## Description: diff --git a/dataset/problemstatement/microsoftInternal__NAV-195193__cf-1/excel_table.png b/dataset/problemstatement/microsoftInternal__NAV-195193__cf-1/excel_table.png new file mode 100644 index 000000000..99f1649ee Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-195193__cf-1/excel_table.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-195193__cf-1/filter.png b/dataset/problemstatement/microsoftInternal__NAV-195193__cf-1/filter.png new file mode 100644 index 000000000..2f9d6197b Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-195193__cf-1/filter.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-195193__cf-1/finance_report.png b/dataset/problemstatement/microsoftInternal__NAV-195193__cf-1/finance_report.png new file mode 100644 index 000000000..321d0b04f Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-195193__cf-1/finance_report.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-195193__cf-2/LCY.png b/dataset/problemstatement/microsoftInternal__NAV-195193__cf-2/LCY.png new file mode 100644 index 000000000..9978ff50d Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-195193__cf-2/LCY.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-195193__cf-2/README.md b/dataset/problemstatement/microsoftInternal__NAV-195193__cf-2/README.md new file mode 100644 index 000000000..511534982 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-195193__cf-2/README.md @@ -0,0 +1,20 @@ +# Title: Excel layouts - dim breakdown results in repeated values (Trial Balance report a.o.) +## Repro Steps: +Open the Trial Balance Excel report +run it for p1..p3 +tip: in US you can run it with this acc. filter: +![Filter](./filter.png) +so buggy rows are in top of page  ;o) +open excel +open TrialBalanceData tab + +**expected**: correct debit/credit split for Net Change fields + +**actual**: repeated values for dimensions   (NetchangeDebit and Balance Debit) +![Excel Table](./excel_table.png) +the repeated rows/fields appears to just 'sit' in the reports - because the other numbers are correct: +![LCY](./LCY.png) + compared to a financial reported filtered for same dim: +![Finance Report](./finance_report.png) + +## Description: diff --git a/dataset/problemstatement/microsoftInternal__NAV-195193__cf-2/excel_table.png b/dataset/problemstatement/microsoftInternal__NAV-195193__cf-2/excel_table.png new file mode 100644 index 000000000..99f1649ee Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-195193__cf-2/excel_table.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-195193__cf-2/filter.png b/dataset/problemstatement/microsoftInternal__NAV-195193__cf-2/filter.png new file mode 100644 index 000000000..2f9d6197b Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-195193__cf-2/filter.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-195193__cf-2/finance_report.png b/dataset/problemstatement/microsoftInternal__NAV-195193__cf-2/finance_report.png new file mode 100644 index 000000000..321d0b04f Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-195193__cf-2/finance_report.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-195193__cf-3/LCY.png b/dataset/problemstatement/microsoftInternal__NAV-195193__cf-3/LCY.png new file mode 100644 index 000000000..9978ff50d Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-195193__cf-3/LCY.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-195193__cf-3/README.md b/dataset/problemstatement/microsoftInternal__NAV-195193__cf-3/README.md new file mode 100644 index 000000000..ed77bf419 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-195193__cf-3/README.md @@ -0,0 +1,20 @@ +# Title: Excel layouts - dim breakdown results in repeated values (Trial Balance report a.o.) +## Repro Steps: +Open the Trial Balance Excel report +run it for p1..p3 +tip: in US you can run it with this acc. filter: +![Filter](./filter.png) +so buggy rows are in top of page  ;o) +open excel +open TrialBalanceData tab + +**expected**: debit/credit reflects latest validation (no explicit reset required) + +**actual**: repeated values for dimensions   (NetchangeDebit and Balance Debit) +![Excel Table](./excel_table.png) +the repeated rows/fields appears to just 'sit' in the reports - because the other numbers are correct: +![LCY](./LCY.png) + compared to a financial reported filtered for same dim: +![Finance Report](./finance_report.png) + +## Description: diff --git a/dataset/problemstatement/microsoftInternal__NAV-195193__cf-3/excel_table.png b/dataset/problemstatement/microsoftInternal__NAV-195193__cf-3/excel_table.png new file mode 100644 index 000000000..99f1649ee Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-195193__cf-3/excel_table.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-195193__cf-3/filter.png b/dataset/problemstatement/microsoftInternal__NAV-195193__cf-3/filter.png new file mode 100644 index 000000000..2f9d6197b Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-195193__cf-3/filter.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-195193__cf-3/finance_report.png b/dataset/problemstatement/microsoftInternal__NAV-195193__cf-3/finance_report.png new file mode 100644 index 000000000..321d0b04f Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-195193__cf-3/finance_report.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-201169__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-201169__cf-1/README.md new file mode 100644 index 000000000..a19f76f2c --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-201169__cf-1/README.md @@ -0,0 +1,19 @@ +# Title: Shopify. Export item with empty title should be logged in Skipped entries +## Repro Steps: +Create item with empty or whitespace-only description. +Try to Add this item to Shopify. + +I can see two entries: +1. failed: +Request: +{"query":"mutation {productCreate(input: {**title:****"****",** status: ACTIVE, published: true}) {product {legacyResourceId, onlineStoreUrl, onlineStorePreviewUrl, createdAt, updatedAt, tags, variants(first: 1) {edges {node {legacyResourceId, createdAt, updatedAt}}}}, userErrors {field, message}}}"} +Response: +{"data":{"productCreate":{"product":null,"userErrors":[{"field":["title"],"**message":"Title can't be blank"**}]}},"extensions":{"cost":{"requestedQueryCost":13,"actualQueryCost":10,"throttleStatus":{"maximumAvailable":4000.0,"currentlyAvailable":3990,"restoreRate":200.0}}}} +Expected - we should not try to export this item. But add it to Skipped entries. + +2.  +Also I notice that there was another pair (maybe fixed in main) +{"query":"{ translatableResource(resourceId: "gid://shopify/Product/0") { resourceId translatableContent {key value digest locale} }}"} +with request for translatable resources for item that wasn't created. I suspect we fixed something similar for metafields. But apparently it is still there for items (if for any other reason Shopify will reject creation of item) + +## Description: diff --git a/dataset/problemstatement/microsoftInternal__NAV-201169__cf-2/README.md b/dataset/problemstatement/microsoftInternal__NAV-201169__cf-2/README.md new file mode 100644 index 000000000..13e44e903 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-201169__cf-2/README.md @@ -0,0 +1,19 @@ +# Title: Shopify. Export item with empty title should be logged in Skipped entries +## Repro Steps: +Create item with no description. +Try to Add this item to Shopify. + +I can see two entries: +1. failed: +Request: +{"query":"mutation {productCreate(input: {**title:****"****",** status: ACTIVE, published: true}) {product {legacyResourceId, onlineStoreUrl, onlineStorePreviewUrl, createdAt, updatedAt, tags, variants(first: 1) {edges {node {legacyResourceId, createdAt, updatedAt}}}}, userErrors {field, message}}}"} +Response: +{"data":{"productCreate":{"product":null,"userErrors":[{"field":["title"],"**message":"Title can't be blank"**}]}},"extensions":{"cost":{"requestedQueryCost":13,"actualQueryCost":10,"throttleStatus":{"maximumAvailable":4000.0,"currentlyAvailable":3990,"restoreRate":200.0}}}} +Expected - we log skipped entry but still attempt export. + +2.  +Also I notice that there was another pair (maybe fixed in main) +{"query":"{ translatableResource(resourceId: "gid://shopify/Product/0") { resourceId translatableContent {key value digest locale} }}"} +with request for translatable resources for item that wasn't created. I suspect we fixed something similar for metafields. But apparently it is still there for items (if for any other reason Shopify will reject creation of item) + +## Description: diff --git a/dataset/problemstatement/microsoftInternal__NAV-201169__cf-3/README.md b/dataset/problemstatement/microsoftInternal__NAV-201169__cf-3/README.md new file mode 100644 index 000000000..d73b23363 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-201169__cf-3/README.md @@ -0,0 +1,19 @@ +# Title: Shopify. Export item with empty title should be logged in Skipped entries +## Repro Steps: +Create item with no description. +Try to Add this item to Shopify. + +I can see two entries: +1. failed: +Request: +{"query":"mutation {productCreate(input: {**title:****"****",** status: ACTIVE, published: true}) {product {legacyResourceId, onlineStoreUrl, onlineStorePreviewUrl, createdAt, updatedAt, tags, variants(first: 1) {edges {node {legacyResourceId, createdAt, updatedAt}}}}, userErrors {field, message}}}"} +Response: +{"data":{"productCreate":{"product":null,"userErrors":[{"field":["title"],"**message":"Title can't be blank"**}]}},"extensions":{"cost":{"requestedQueryCost":13,"actualQueryCost":10,"throttleStatus":{"maximumAvailable":4000.0,"currentlyAvailable":3990,"restoreRate":200.0}}}} +Expected - validation is handled during product creation instead of before export. + +2.  +Also I notice that there was another pair (maybe fixed in main) +{"query":"{ translatableResource(resourceId: "gid://shopify/Product/0") { resourceId translatableContent {key value digest locale} }}"} +with request for translatable resources for item that wasn't created. I suspect we fixed something similar for metafields. But apparently it is still there for items (if for any other reason Shopify will reject creation of item) + +## Description: diff --git a/dataset/problemstatement/microsoftInternal__NAV-203923__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-203923__cf-1/README.md new file mode 100644 index 000000000..c301a18c5 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-203923__cf-1/README.md @@ -0,0 +1,18 @@ +# Title: Full VAT is not treated as eligible for non-deductible VAT calculation +## Repro Steps: +*** Were you able to reproduce the issue? Yes + +The situation cx is testing is for a prospect who wants to post all their tax as non-recoverable and then make a quarter end adjustment for the recoverable VAT. + +At the end of the quarter, I want to post a journal with a FULL NORM type VAT for the recoverable portion of the VAT and a FULL NORM 100% Non-deductible to move the VAT from Non-Deductible VAT Amount to Amount. + +Full VAT is not treated as eligible for non-deductible VAT calculation. When you make the change in the VAT posting setup to Full VAT in the Calculation Type, the system does not recognize it as a valid type for non-deductible processing. + +![VAT Posting Setup](./vat-posting-setup.png) + +![Journal for VAT Adjustment](./journal-for-vat-adjustment.png) + +![VAT Posting](./vat-posting.png) + +## Description: +Full VAT is not treated as eligible for non-deductible VAT calculation diff --git a/dataset/problemstatement/microsoftInternal__NAV-203923__cf-1/journal-for-vat-adjustment.png b/dataset/problemstatement/microsoftInternal__NAV-203923__cf-1/journal-for-vat-adjustment.png new file mode 100644 index 000000000..c5610baed Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-203923__cf-1/journal-for-vat-adjustment.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-203923__cf-1/vat-posting-2.png b/dataset/problemstatement/microsoftInternal__NAV-203923__cf-1/vat-posting-2.png new file mode 100644 index 000000000..bff910cc9 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-203923__cf-1/vat-posting-2.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-203923__cf-1/vat-posting-setup.png b/dataset/problemstatement/microsoftInternal__NAV-203923__cf-1/vat-posting-setup.png new file mode 100644 index 000000000..0031448cc Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-203923__cf-1/vat-posting-setup.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-203923__cf-1/vat-posting.png b/dataset/problemstatement/microsoftInternal__NAV-203923__cf-1/vat-posting.png new file mode 100644 index 000000000..f90a63b14 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-203923__cf-1/vat-posting.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-203923__cf-2/README.md b/dataset/problemstatement/microsoftInternal__NAV-203923__cf-2/README.md new file mode 100644 index 000000000..7a4dc4847 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-203923__cf-2/README.md @@ -0,0 +1,18 @@ +# Title: Full VAT is treated as non-deductible only when Non-Deductible VAT % is less than 100 +## Repro Steps: +*** Were you able to reproduce the issue? Yes + +The situation cx is testing is for a prospect who wants to post all their tax as non-recoverable and then make a quarter end adjustment for the recoverable VAT. + +At the end of the quarter, I want to post a journal with a FULL NORM type VAT for the recoverable portion of the VAT and a FULL NORM 100% Non-deductible to move the VAT from Non-Deductible VAT Amount to Amount. + +Full VAT is treated as non-deductible only when Non-Deductible VAT % is less than 100. When the Non-Deductible VAT % is set to 100, the system skips non-deductible processing for Full VAT. + +![VAT Posting Setup](./vat-posting-setup.png) + +![Journal for VAT Adjustment](./journal-for-vat-adjustment.png) + +![VAT Posting](./vat-posting.png) + +## Description: +Full VAT is treated as non-deductible only when Non-Deductible VAT % is less than 100 diff --git a/dataset/problemstatement/microsoftInternal__NAV-203923__cf-2/journal-for-vat-adjustment.png b/dataset/problemstatement/microsoftInternal__NAV-203923__cf-2/journal-for-vat-adjustment.png new file mode 100644 index 000000000..c5610baed Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-203923__cf-2/journal-for-vat-adjustment.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-203923__cf-2/vat-posting-2.png b/dataset/problemstatement/microsoftInternal__NAV-203923__cf-2/vat-posting-2.png new file mode 100644 index 000000000..bff910cc9 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-203923__cf-2/vat-posting-2.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-203923__cf-2/vat-posting-setup.png b/dataset/problemstatement/microsoftInternal__NAV-203923__cf-2/vat-posting-setup.png new file mode 100644 index 000000000..0031448cc Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-203923__cf-2/vat-posting-setup.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-203923__cf-2/vat-posting.png b/dataset/problemstatement/microsoftInternal__NAV-203923__cf-2/vat-posting.png new file mode 100644 index 000000000..f90a63b14 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-203923__cf-2/vat-posting.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-203923__cf-3/README.md b/dataset/problemstatement/microsoftInternal__NAV-203923__cf-3/README.md new file mode 100644 index 000000000..2c7d89649 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-203923__cf-3/README.md @@ -0,0 +1,18 @@ +# Title: Full VAT amount is calculated but not reflected in the non-deductible VAT field on the VAT entry +## Repro Steps: +*** Were you able to reproduce the issue? Yes + +The situation cx is testing is for a prospect who wants to post all their tax as non-recoverable and then make a quarter end adjustment for the recoverable VAT. + +At the end of the quarter, I want to post a journal with a FULL NORM type VAT for the recoverable portion of the VAT and a FULL NORM 100% Non-deductible to move the VAT from Non-Deductible VAT Amount to Amount. + +When you make the change in the VAT posting setup to Full VAT in the Calculation Type it posts the VAT as Amount instead of Non-Deductible VAT amount. The full amount is calculated but not reflected in the non-deductible column on the VAT entry. + +![VAT Posting Setup](./vat-posting-setup.png) + +![Journal for VAT Adjustment](./journal-for-vat-adjustment.png) + +![VAT Posting](./vat-posting.png) + +## Description: +Full VAT amount is calculated but not reflected in the non-deductible VAT field on the VAT entry diff --git a/dataset/problemstatement/microsoftInternal__NAV-203923__cf-3/journal-for-vat-adjustment.png b/dataset/problemstatement/microsoftInternal__NAV-203923__cf-3/journal-for-vat-adjustment.png new file mode 100644 index 000000000..c5610baed Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-203923__cf-3/journal-for-vat-adjustment.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-203923__cf-3/vat-posting-2.png b/dataset/problemstatement/microsoftInternal__NAV-203923__cf-3/vat-posting-2.png new file mode 100644 index 000000000..bff910cc9 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-203923__cf-3/vat-posting-2.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-203923__cf-3/vat-posting-setup.png b/dataset/problemstatement/microsoftInternal__NAV-203923__cf-3/vat-posting-setup.png new file mode 100644 index 000000000..0031448cc Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-203923__cf-3/vat-posting-setup.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-203923__cf-3/vat-posting.png b/dataset/problemstatement/microsoftInternal__NAV-203923__cf-3/vat-posting.png new file mode 100644 index 000000000..f90a63b14 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-203923__cf-3/vat-posting.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-204450__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-204450__cf-1/README.md new file mode 100644 index 000000000..3b3b9f4fd --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-204450__cf-1/README.md @@ -0,0 +1,30 @@ +# Title: The transaction cannot be completed because it will cause inconsistencies in the G/L Entry table error message if try to post Purchase doc. with Currencies, Non-Deductible VAT and the VAT Amount was previously modified in the Statistics. +## Repro Steps: +Take a BC 25.X environment (W1 issue) + +Open the VAT Setup and enable the non-deductible VAT: +![VAT Setup](./vat-setup.png) + +Open the purchase and receivables and allow VAT difference: +![Purchase Payable Setup](./purchase-payable-setup.png) + +Open the Currencies, open the EUR card and adjust the max. VAT difference allowed: +![Currency EUR](./currency-eur.png) + +Open the VAT posting setup and add the below line: +![VAT Posting Setup](./vat-posting-setup.png) + +Open a Purchase invoice, add the below line and adjust the currency code as well: +![Purchase Invoice](./purchase-invoice.png) + +Preview post and we get the below numbers: +![G/L Entries Preview](./gl-entry-preview.png) + +Open the statistics page (Invoice => Statistics) and change the VAT amount to 150 (no effect when ND VAT = 100): +![Purchase Invoice Statistics](./purchase-invoice-statistics.png) + +Preview post and check that the Amount (LCY) did not change: +![G/L Entries Preview 2](./gl-entry-preview-2.png) + +Post the invoice and you will get the below error: +![Error Message](./error-message.png) diff --git a/dataset/problemstatement/microsoftInternal__NAV-204450__cf-1/currency-eur.png b/dataset/problemstatement/microsoftInternal__NAV-204450__cf-1/currency-eur.png new file mode 100644 index 000000000..94bf978eb Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-204450__cf-1/currency-eur.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-204450__cf-1/error-message.png b/dataset/problemstatement/microsoftInternal__NAV-204450__cf-1/error-message.png new file mode 100644 index 000000000..9a79f9fd2 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-204450__cf-1/error-message.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-204450__cf-1/gl-entry-preview-2.png b/dataset/problemstatement/microsoftInternal__NAV-204450__cf-1/gl-entry-preview-2.png new file mode 100644 index 000000000..262c70c68 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-204450__cf-1/gl-entry-preview-2.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-204450__cf-1/gl-entry-preview.png b/dataset/problemstatement/microsoftInternal__NAV-204450__cf-1/gl-entry-preview.png new file mode 100644 index 000000000..cb80ebfeb Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-204450__cf-1/gl-entry-preview.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-204450__cf-1/purchase-invoice-statistics.png b/dataset/problemstatement/microsoftInternal__NAV-204450__cf-1/purchase-invoice-statistics.png new file mode 100644 index 000000000..10468466e Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-204450__cf-1/purchase-invoice-statistics.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-204450__cf-1/purchase-invoice.png b/dataset/problemstatement/microsoftInternal__NAV-204450__cf-1/purchase-invoice.png new file mode 100644 index 000000000..a1c77d8e9 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-204450__cf-1/purchase-invoice.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-204450__cf-1/purchase-payable-setup.png b/dataset/problemstatement/microsoftInternal__NAV-204450__cf-1/purchase-payable-setup.png new file mode 100644 index 000000000..13d1a4758 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-204450__cf-1/purchase-payable-setup.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-204450__cf-1/vat-posting-setup.png b/dataset/problemstatement/microsoftInternal__NAV-204450__cf-1/vat-posting-setup.png new file mode 100644 index 000000000..a38882e31 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-204450__cf-1/vat-posting-setup.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-204450__cf-1/vat-setup.png b/dataset/problemstatement/microsoftInternal__NAV-204450__cf-1/vat-setup.png new file mode 100644 index 000000000..c81edce21 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-204450__cf-1/vat-setup.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-205825__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-1/README.md new file mode 100644 index 000000000..79555f6eb --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-1/README.md @@ -0,0 +1,41 @@ +# Title: Alternative Customer VAT Registration issue when using Bill to customer and Ship-to-Code. +## Repro Steps: +1. Create the setup for customer 10000 +Customer: 10000 +* Country/Region Code = NL +* VAT Registration No. = 789456278 +* VAT Bus. Posting Group = BINNENLAND +* Ship-to Code = DE + * Country/Region Code = DE +* Bill-to Customer = 20000 +![Customer Card Country/Region Code](./customer-country-region-code.png) + +![Customer Card More Info](./custom-more-info.png) + +2. Customer: 20000 (Bill to customer) + * Country/Region Code = NL + * VAT Registration No. = 254687456 +VAT Bus. Posting Group = BINNENLAND +![Customer 2000](./customer-2000.png) + +![Customer 2000 More Info](./customer-2000-more-info.png) + +3. Alternative Customer VAT Registration +![VAT Registration](./vat-registration.png) + +4. Create Sales document for customer 10000: message "The VAT Country/Region code has been changed to the value that does not have an alternative VAT registration. + +The following fields have been updated from the customer card: VAT Registration No., VAT Bus. Posting Group". + +After thoroughly investigating, it is observed that VAT setup is not correctly applied when fields are assigned directly without validation. + +![Sales Order](./sales-order-change.png) + +5. +Checking through it is expected that +VAT Country/Region Code should be (DE ) +VAT Registration No. = () +![Sales Order Details](./sales-order-details.png) + +6. Not until you change the ship-to to another options (Custom address) and switch back to alternative address the correct VAT Country/Region Code populate correctly. +![Ship-to Custom Address](./ship-to-custom-address.png) diff --git a/dataset/problemstatement/microsoftInternal__NAV-205825__cf-1/confirm-alternative-customer-vat-reg.png b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-1/confirm-alternative-customer-vat-reg.png new file mode 100644 index 000000000..5dba878f8 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-1/confirm-alternative-customer-vat-reg.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-205825__cf-1/custom-more-info.png b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-1/custom-more-info.png new file mode 100644 index 000000000..eab70ac08 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-1/custom-more-info.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-205825__cf-1/customer-2000-more-info.png b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-1/customer-2000-more-info.png new file mode 100644 index 000000000..62332a5b9 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-1/customer-2000-more-info.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-205825__cf-1/customer-2000.png b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-1/customer-2000.png new file mode 100644 index 000000000..6abeaf79f Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-1/customer-2000.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-205825__cf-1/customer-country-region-code.png b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-1/customer-country-region-code.png new file mode 100644 index 000000000..cc1cad804 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-1/customer-country-region-code.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-205825__cf-1/sales-order-change.png b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-1/sales-order-change.png new file mode 100644 index 000000000..602a313c5 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-1/sales-order-change.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-205825__cf-1/sales-order-confirmed.png b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-1/sales-order-confirmed.png new file mode 100644 index 000000000..e14e719aa Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-1/sales-order-confirmed.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-205825__cf-1/sales-order-details.png b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-1/sales-order-details.png new file mode 100644 index 000000000..5d1143f41 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-1/sales-order-details.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-205825__cf-1/ship-to-address-list.png b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-1/ship-to-address-list.png new file mode 100644 index 000000000..0b2cc54fa Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-1/ship-to-address-list.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-205825__cf-1/ship-to-custom-address.png b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-1/ship-to-custom-address.png new file mode 100644 index 000000000..76c69fda9 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-1/ship-to-custom-address.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-205825__cf-1/vat-registration.png b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-1/vat-registration.png new file mode 100644 index 000000000..06cf30712 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-1/vat-registration.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-205825__cf-2/README.md b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-2/README.md new file mode 100644 index 000000000..b14e4382e --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-2/README.md @@ -0,0 +1,37 @@ +# Title: Alternative Customer VAT Registration issue when using Bill to customer and Ship-to-Code. +## Repro Steps: +1. Create the setup for customer 10000 +Customer: 10000 +* Country/Region Code = NL +* VAT Registration No. = 789456278 +* VAT Bus. Posting Group = BINNENLAND +* Ship-to Code exists but has no Country/Region Code +* Bill-to Customer = 20000 +![Customer Card Country/Region Code](./customer-country-region-code.png) + +![Customer Card More Info](./custom-more-info.png) + +2. Customer: 20000 (Bill to customer) + * Country/Region Code = NL + * VAT Registration No. = 254687456 +VAT Bus. Posting Group = BINNENLAND +![Customer 2000](./customer-2000.png) + +![Customer 2000 More Info](./customer-2000-more-info.png) + +3. Alternative Customer VAT Registration +![VAT Registration](./vat-registration.png) + +4. Create Sales document for customer 10000: message "The VAT Country/Region code has been changed to the value that does not have an alternative VAT registration. + +The following fields have been updated from the customer card: VAT Registration No., VAT Bus. Posting Group". + +![Sales Order](./sales-order-change.png) + +5. +Checking through it is expected that no alternative VAT registration is applied when Ship-to Country/Region Code is not defined. +VAT Country/Region Code should remain from the Bill-to Customer. +![Sales Order Details](./sales-order-details.png) + +6. Not until you change the ship-to to another options (Custom address) and switch back to alternative address the correct VAT Country/Region Code populate correctly. +![Ship-to Custom Address](./ship-to-custom-address.png) diff --git a/dataset/problemstatement/microsoftInternal__NAV-205825__cf-2/confirm-alternative-customer-vat-reg.png b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-2/confirm-alternative-customer-vat-reg.png new file mode 100644 index 000000000..5dba878f8 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-2/confirm-alternative-customer-vat-reg.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-205825__cf-2/custom-more-info.png b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-2/custom-more-info.png new file mode 100644 index 000000000..eab70ac08 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-2/custom-more-info.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-205825__cf-2/customer-2000-more-info.png b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-2/customer-2000-more-info.png new file mode 100644 index 000000000..62332a5b9 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-2/customer-2000-more-info.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-205825__cf-2/customer-2000.png b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-2/customer-2000.png new file mode 100644 index 000000000..6abeaf79f Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-2/customer-2000.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-205825__cf-2/customer-country-region-code.png b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-2/customer-country-region-code.png new file mode 100644 index 000000000..cc1cad804 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-2/customer-country-region-code.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-205825__cf-2/sales-order-change.png b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-2/sales-order-change.png new file mode 100644 index 000000000..602a313c5 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-2/sales-order-change.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-205825__cf-2/sales-order-confirmed.png b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-2/sales-order-confirmed.png new file mode 100644 index 000000000..e14e719aa Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-2/sales-order-confirmed.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-205825__cf-2/sales-order-details.png b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-2/sales-order-details.png new file mode 100644 index 000000000..5d1143f41 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-2/sales-order-details.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-205825__cf-2/ship-to-address-list.png b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-2/ship-to-address-list.png new file mode 100644 index 000000000..0b2cc54fa Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-2/ship-to-address-list.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-205825__cf-2/ship-to-custom-address.png b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-2/ship-to-custom-address.png new file mode 100644 index 000000000..76c69fda9 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-2/ship-to-custom-address.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-205825__cf-2/vat-registration.png b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-2/vat-registration.png new file mode 100644 index 000000000..06cf30712 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-205825__cf-2/vat-registration.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-206527__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-206527__cf-1/README.md new file mode 100644 index 000000000..12ef7daa6 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-206527__cf-1/README.md @@ -0,0 +1,31 @@ +# Title: If a component's Item UOM has a 'Quantity Rounding Precision' of 1, & a Finished Good consumes partial quantity, the Prod. Order created from the Planning of a Sales Order pulls in the Component with a 'Qty. Per' and 'Exp. Qty.' of 0. +## Repro Steps: +1. Use existing Item with no activity, or create new item. This will be the COMPONENT Item. Will use PCS as UOM. +2. For the Component Item, go into Related > Item UOM > and set 'Quantity Rounding Precision' = 1 on the bottom. +3. Component Item should have + Replenishment System = PURCHASE + Rounding Precision = .01 + Reorder Policy = Lot-for-Lot + Include Inventory = TRUE +4. Then have another Item, I'll call it FG Item which is: + Replenishment System = PRODUNCTION ORDER + Rounding Precision = 1 + Reorder Policy = ORDER + Production BOM => Create new Certified Production BOM that consumes COMPONENT Item with 'Quantity Per' = .005 +5. Now create Sales Order for any Customer for FG Item for 1 Quantity at BLUE (or MAIN) location. +6. On the Sales Order go to Actions > Plan > Planning > Create Prod. Order and choose 'Released' and 'Item Order'. +7. Then choose Order Tracking and then 'Show' which will take you to the Released Prod. Order. +8. We will see prod. Order for FG Item with 1 qty. Go to Line > Components + +**EXPECTED RESULTS** = 'Quantity Per' and 'Expected Quantity' = .005 (must not be rounded to 0) +**ACTUAL RESULTS** = 'Quantity Per' and 'Expected Quantity' = 0 + +If you were then to delete the Released Production Order, and go to the Planning Worksheet and run the Calc. Regenerative Plan for the 2 items, you would receive an error: +"The value in the Qty. Rounding Precision field on the Item Unit of Measure page is causing the rounding precision for the Expected Quantity field to be incorrect." + +## Description: +2If a component's Item UOM has a 'Quantity Rounding Precision' set to 1, and a Finished Good consumes a very small partial quantity (0.005, below rounding precision), the Production Order created from the Planning section of a Sales Order pulls in the Component but with a 'Quantity Per' and 'Expected Quantity' of 0. If we are producing 1 FG Item and the 'Quantity Per' is set to consume .005 component, we would expect 'Quantity Per' and 'Expected Quantity' both = .005. There is no error message. + +But if you run the Planning Worksheet's 'Calc. Regenerative Plan', then you will get an error message about the 'Quantity Rounding Precision'. + +I don't believe the 'Quantity Rounding Precision' in the Item UOM should have any influence on this process. I always thought this field was only for scenario with Picking and when Base UOM is larger than the smallest UOM, and picking in smallest UOM. There is a lot of confusion about this 'Quantity Rounding Precision' field within the Item UOM actually. diff --git a/dataset/problemstatement/microsoftInternal__NAV-206977__cf-1/1002_test_assembly_step4.png b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-1/1002_test_assembly_step4.png new file mode 100644 index 000000000..78c18e8de Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-1/1002_test_assembly_step4.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-206977__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-1/README.md new file mode 100644 index 000000000..56ad9f7e7 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-1/README.md @@ -0,0 +1,24 @@ +# Title: Show document in Assembly order line page opens the wrong page when the Assembly order line belongs a blanket assembly order. +## Repro Steps: +1- Search for Items +Create a new Item with replenishment system "Assembly": +![Item Card Step1](./item_card_step1.png) +Create a new blanket sales order and add the created item in the lines: +![Blanket Sales Order Step2](./blanket_sales_order_step2.png) +3- Select the below function: +![Select Function Step3](./select_function_step3.png) +4- Add the following line and then select show document: (notice that the blanket sales order was created) +![1002 Test Assembly Step4](./1002_test_assembly_step4.png) +5- Open the page "Blanket Assembly Order" and check if the order was created: +![Blanket Assembly Order Step5](./blanket_assembly_order_step5.png) +6- Search for Assembly order lines +7-Select the Blanket order that we just created and select "Show Document": +![Show Document Step7](./show_document_step7.png) +8- This function will open the Assembly Order page: +![Assembly Order Step8](./assembly_order_step8.png) + +Expected result: the routing logic for opening the assembly document should be handled at the page level instead of the table level: +![Result](./result.png) + +## Description: +Show document in Assembly order line page opens the wrong page when the Assembly order line belongs a blanket assembly order. diff --git a/dataset/problemstatement/microsoftInternal__NAV-206977__cf-1/assembly_order_step8.png b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-1/assembly_order_step8.png new file mode 100644 index 000000000..71e8fe552 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-1/assembly_order_step8.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-206977__cf-1/blanket_assembly_order_step5.png b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-1/blanket_assembly_order_step5.png new file mode 100644 index 000000000..30ae0c5cb Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-1/blanket_assembly_order_step5.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-206977__cf-1/blanket_sales_order_step2.png b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-1/blanket_sales_order_step2.png new file mode 100644 index 000000000..74a37f304 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-1/blanket_sales_order_step2.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-206977__cf-1/item_card_step1.png b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-1/item_card_step1.png new file mode 100644 index 000000000..29926337c Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-1/item_card_step1.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-206977__cf-1/result.png b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-1/result.png new file mode 100644 index 000000000..8022c938c Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-1/result.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-206977__cf-1/select_function_step3.png b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-1/select_function_step3.png new file mode 100644 index 000000000..e25cbc349 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-1/select_function_step3.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-206977__cf-1/show_document_step7.png b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-1/show_document_step7.png new file mode 100644 index 000000000..a9a0dce26 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-1/show_document_step7.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-206977__cf-2/1002_test_assembly_step4.png b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-2/1002_test_assembly_step4.png new file mode 100644 index 000000000..78c18e8de Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-2/1002_test_assembly_step4.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-206977__cf-2/README.md b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-2/README.md new file mode 100644 index 000000000..83cdaa1af --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-2/README.md @@ -0,0 +1,24 @@ +# Title: Show document in Assembly order line page opens the wrong page when the Assembly order line belongs a blanket assembly order. +## Repro Steps: +1- Search for Items +Create a new Item with replenishment system "Assembly": +![Item Card Step1](./item_card_step1.png) +Create a new blanket sales order and add the created item in the lines: +![Blanket Sales Order Step2](./blanket_sales_order_step2.png) +3- Select the below function: +![Select Function Step3](./select_function_step3.png) +4- Add the following line and then select show document: (notice that the blanket sales order was created) +![1002 Test Assembly Step4](./1002_test_assembly_step4.png) +5- Open the page "Blanket Assembly Order" and check if the order was created: +![Blanket Assembly Order Step5](./blanket_assembly_order_step5.png) +6- Search for Assembly order lines +7-Select the Blanket order that we just created and select "Show Document": +![Show Document Step7](./show_document_step7.png) +8- This function will open the Assembly Order page: +![Assembly Order Step8](./assembly_order_step8.png) + +Expected result: the "show document" function should open the corresponding page, and fallback to Assembly Order if the document type is not explicitly handled: +![Result](./result.png) + +## Description: +Show document in Assembly order line page opens the wrong page when the Assembly order line belongs a blanket assembly order. diff --git a/dataset/problemstatement/microsoftInternal__NAV-206977__cf-2/assembly_order_step8.png b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-2/assembly_order_step8.png new file mode 100644 index 000000000..71e8fe552 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-2/assembly_order_step8.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-206977__cf-2/blanket_assembly_order_step5.png b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-2/blanket_assembly_order_step5.png new file mode 100644 index 000000000..30ae0c5cb Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-2/blanket_assembly_order_step5.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-206977__cf-2/blanket_sales_order_step2.png b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-2/blanket_sales_order_step2.png new file mode 100644 index 000000000..74a37f304 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-2/blanket_sales_order_step2.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-206977__cf-2/item_card_step1.png b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-2/item_card_step1.png new file mode 100644 index 000000000..29926337c Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-2/item_card_step1.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-206977__cf-2/result.png b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-2/result.png new file mode 100644 index 000000000..8022c938c Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-2/result.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-206977__cf-2/select_function_step3.png b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-2/select_function_step3.png new file mode 100644 index 000000000..e25cbc349 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-2/select_function_step3.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-206977__cf-2/show_document_step7.png b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-2/show_document_step7.png new file mode 100644 index 000000000..a9a0dce26 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-2/show_document_step7.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-206977__cf-3/1002_test_assembly_step4.png b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-3/1002_test_assembly_step4.png new file mode 100644 index 000000000..78c18e8de Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-3/1002_test_assembly_step4.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-206977__cf-3/README.md b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-3/README.md new file mode 100644 index 000000000..31cfc3eab --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-3/README.md @@ -0,0 +1,24 @@ +# Title: Show document in Assembly order line page opens the wrong page when the Assembly order line belongs a blanket assembly order. +## Repro Steps: +1- Search for Items +Create a new Item with replenishment system "Assembly": +![Item Card Step1](./item_card_step1.png) +Create a new blanket sales order and add the created item in the lines: +![Blanket Sales Order Step2](./blanket_sales_order_step2.png) +3- Select the below function: +![Select Function Step3](./select_function_step3.png) +4- Add the following line and then select show document: (notice that the blanket sales order was created) +![1002 Test Assembly Step4](./1002_test_assembly_step4.png) +5- Open the page "Blanket Assembly Order" and check if the order was created: +![Blanket Assembly Order Step5](./blanket_assembly_order_step5.png) +6- Search for Assembly order lines +7-Select the Blanket order that we just created and select "Show Document": +![Show Document Step7](./show_document_step7.png) +8- This function will open the Assembly Order page: +![Assembly Order Step8](./assembly_order_step8.png) + +Expected result: the "show document" function should open the blanket assembly order page if available, otherwise fallback to assembly order page: +![Result](./result.png) + +## Description: +Show document in Assembly order line page opens the wrong page when the Assembly order line belongs a blanket assembly order. diff --git a/dataset/problemstatement/microsoftInternal__NAV-206977__cf-3/assembly_order_step8.png b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-3/assembly_order_step8.png new file mode 100644 index 000000000..71e8fe552 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-3/assembly_order_step8.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-206977__cf-3/blanket_assembly_order_step5.png b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-3/blanket_assembly_order_step5.png new file mode 100644 index 000000000..30ae0c5cb Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-3/blanket_assembly_order_step5.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-206977__cf-3/blanket_sales_order_step2.png b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-3/blanket_sales_order_step2.png new file mode 100644 index 000000000..74a37f304 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-3/blanket_sales_order_step2.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-206977__cf-3/item_card_step1.png b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-3/item_card_step1.png new file mode 100644 index 000000000..29926337c Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-3/item_card_step1.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-206977__cf-3/result.png b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-3/result.png new file mode 100644 index 000000000..8022c938c Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-3/result.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-206977__cf-3/select_function_step3.png b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-3/select_function_step3.png new file mode 100644 index 000000000..e25cbc349 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-3/select_function_step3.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-206977__cf-3/show_document_step7.png b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-3/show_document_step7.png new file mode 100644 index 000000000..a9a0dce26 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-206977__cf-3/show_document_step7.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207177__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-207177__cf-1/README.md new file mode 100644 index 000000000..0b3737c5b --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-207177__cf-1/README.md @@ -0,0 +1,23 @@ +# Title: An empty attribute value was created through the item Card +## Repro Steps: +1.Create a new item in the item card  +![Item Card Step1](./item_card_step1.png) +2.In the item card, go to "Attributes" and add an Attribute. Make sure the "Value" column does not contain any empty rows. +![Attributes Step2](./attributes_step2.png) +![Item Attribute Values Step2](./item_attribute_values_step2.png) +3.- Exit the Item Attribute Value page. +4.Access "Attributes" again through the Item Card. If the "Attribute" field is empty, fill it again. Then, when checking the "Value" column, you will see that an empty Attribute Value has been created. +![Creat Value Step4](./creat_value_step4.png) + +=================== +ACTUAL RESULT +=================== +An empty attribute value was created through the item Card +=================== + +EXPECTED RESULT +=================== +An empty Attribute should NOT be created. + +## Description: +An empty attribute value was created through the item Card diff --git a/dataset/problemstatement/microsoftInternal__NAV-207177__cf-1/attributes_step2.png b/dataset/problemstatement/microsoftInternal__NAV-207177__cf-1/attributes_step2.png new file mode 100644 index 000000000..16e1e9941 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207177__cf-1/attributes_step2.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207177__cf-1/creat_value_step4.png b/dataset/problemstatement/microsoftInternal__NAV-207177__cf-1/creat_value_step4.png new file mode 100644 index 000000000..7a31e1641 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207177__cf-1/creat_value_step4.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207177__cf-1/item_attribute_values_step2.png b/dataset/problemstatement/microsoftInternal__NAV-207177__cf-1/item_attribute_values_step2.png new file mode 100644 index 000000000..446881b4b Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207177__cf-1/item_attribute_values_step2.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207177__cf-1/item_card_step1.png b/dataset/problemstatement/microsoftInternal__NAV-207177__cf-1/item_card_step1.png new file mode 100644 index 000000000..afc319f41 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207177__cf-1/item_card_step1.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207177__cf-2/README.md b/dataset/problemstatement/microsoftInternal__NAV-207177__cf-2/README.md new file mode 100644 index 000000000..0b3737c5b --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-207177__cf-2/README.md @@ -0,0 +1,23 @@ +# Title: An empty attribute value was created through the item Card +## Repro Steps: +1.Create a new item in the item card  +![Item Card Step1](./item_card_step1.png) +2.In the item card, go to "Attributes" and add an Attribute. Make sure the "Value" column does not contain any empty rows. +![Attributes Step2](./attributes_step2.png) +![Item Attribute Values Step2](./item_attribute_values_step2.png) +3.- Exit the Item Attribute Value page. +4.Access "Attributes" again through the Item Card. If the "Attribute" field is empty, fill it again. Then, when checking the "Value" column, you will see that an empty Attribute Value has been created. +![Creat Value Step4](./creat_value_step4.png) + +=================== +ACTUAL RESULT +=================== +An empty attribute value was created through the item Card +=================== + +EXPECTED RESULT +=================== +An empty Attribute should NOT be created. + +## Description: +An empty attribute value was created through the item Card diff --git a/dataset/problemstatement/microsoftInternal__NAV-207177__cf-2/attributes_step2.png b/dataset/problemstatement/microsoftInternal__NAV-207177__cf-2/attributes_step2.png new file mode 100644 index 000000000..16e1e9941 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207177__cf-2/attributes_step2.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207177__cf-2/creat_value_step4.png b/dataset/problemstatement/microsoftInternal__NAV-207177__cf-2/creat_value_step4.png new file mode 100644 index 000000000..7a31e1641 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207177__cf-2/creat_value_step4.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207177__cf-2/item_attribute_values_step2.png b/dataset/problemstatement/microsoftInternal__NAV-207177__cf-2/item_attribute_values_step2.png new file mode 100644 index 000000000..446881b4b Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207177__cf-2/item_attribute_values_step2.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207177__cf-2/item_card_step1.png b/dataset/problemstatement/microsoftInternal__NAV-207177__cf-2/item_card_step1.png new file mode 100644 index 000000000..afc319f41 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207177__cf-2/item_card_step1.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207177__cf-3/README.md b/dataset/problemstatement/microsoftInternal__NAV-207177__cf-3/README.md new file mode 100644 index 000000000..0b3737c5b --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-207177__cf-3/README.md @@ -0,0 +1,23 @@ +# Title: An empty attribute value was created through the item Card +## Repro Steps: +1.Create a new item in the item card  +![Item Card Step1](./item_card_step1.png) +2.In the item card, go to "Attributes" and add an Attribute. Make sure the "Value" column does not contain any empty rows. +![Attributes Step2](./attributes_step2.png) +![Item Attribute Values Step2](./item_attribute_values_step2.png) +3.- Exit the Item Attribute Value page. +4.Access "Attributes" again through the Item Card. If the "Attribute" field is empty, fill it again. Then, when checking the "Value" column, you will see that an empty Attribute Value has been created. +![Creat Value Step4](./creat_value_step4.png) + +=================== +ACTUAL RESULT +=================== +An empty attribute value was created through the item Card +=================== + +EXPECTED RESULT +=================== +An empty Attribute should NOT be created. + +## Description: +An empty attribute value was created through the item Card diff --git a/dataset/problemstatement/microsoftInternal__NAV-207177__cf-3/attributes_step2.png b/dataset/problemstatement/microsoftInternal__NAV-207177__cf-3/attributes_step2.png new file mode 100644 index 000000000..16e1e9941 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207177__cf-3/attributes_step2.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207177__cf-3/creat_value_step4.png b/dataset/problemstatement/microsoftInternal__NAV-207177__cf-3/creat_value_step4.png new file mode 100644 index 000000000..7a31e1641 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207177__cf-3/creat_value_step4.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207177__cf-3/item_attribute_values_step2.png b/dataset/problemstatement/microsoftInternal__NAV-207177__cf-3/item_attribute_values_step2.png new file mode 100644 index 000000000..446881b4b Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207177__cf-3/item_attribute_values_step2.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207177__cf-3/item_card_step1.png b/dataset/problemstatement/microsoftInternal__NAV-207177__cf-3/item_card_step1.png new file mode 100644 index 000000000..afc319f41 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207177__cf-3/item_card_step1.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207236__cf-1/102228_invoice_step5.png b/dataset/problemstatement/microsoftInternal__NAV-207236__cf-1/102228_invoice_step5.png new file mode 100644 index 000000000..57c5aa430 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207236__cf-1/102228_invoice_step5.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207236__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-207236__cf-1/README.md new file mode 100644 index 000000000..4fa12ec6d --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-207236__cf-1/README.md @@ -0,0 +1,34 @@ +# Title: Post Batch of Sales Invoices with Currency Code and Replace Posting Date does not longer work +## Repro Steps: +1 Create a new sales invoice  +![Sales Invoice Step1](./sales_invoice_step1.png) +2.Select the currency code to USD +![Invoice Details Step2](./invoice_details_step2.png) +3.Add a single new line with item "1896-S" and quantity = 1 +![Lines Step3](./lines_step3.png) +4.Go back to the overview of "Sales Invoices" and select the action "Post Batch..." when selecting your newly created "Sales Invoice" +select in the request page a different "Posting Date" like 1st January 2025 +Select "Replace Posting Date" and "Replace Document Date" +![Information Step4](./information_step4.png) +![Sales Invoice Step4](./sales_invoice_step4.png) +![Batch Post Sales Invoice Step4](./batch_post_sales_invoice_step4.png) +5.Then when processing the invoice you receive this message: +![Message Step5](./message_step5.png) +If you select "No" then an error occurs, If you select "Yes" all lines will be recreated and all changes on the prices, amounts, discounts or description are lost on the lines because the lines get these information's from the base data. This is critical because not all lines get always their prices from a price list. +![Changes Step5](./changes_step5.png) +So the action "Batch Post..."  or the report 297 "Batch Post Sales Invoices" are not usable for our customer. +Following my further investigation, I made an attempt to replicate this issue on 24.5 and 25.0 versions it was working as expected. +![102228 Invoice Step5](./102228_invoice_step5.png) +![Invoice Details Step5](./invoice_details_step5.png) + +And also following cx statement after checking through base code: +The critical change was made in the table "Sales Header". There a new procedure was added called "BatchConfirmUpdatePostingDate". In here the field "Currency Code" is validated. If you debug the process you will see in a further step the "Currency Code" gets checked if it is different than before. This does not work because during the process in this case the xRec in the Validate-trigger is not initialized and the check will always result in an true which leads to the nice message which leads to our problem. + +Issue: Post Batch of Sales Invoices with Currency Code and Replace Posting Date does not longer work + +Expected result: It is expected that batch posting only performs the reopen/release workflow for sales invoices with a currency code when replacing the posting date. + +## Description: +Issue: Post Batch of Sales Invoices with Currency Code and Replace Posting Date does not longer work + +Expected result: It is expected that batch posting only performs the reopen/release workflow for sales invoices with a currency code when replacing the posting date. diff --git a/dataset/problemstatement/microsoftInternal__NAV-207236__cf-1/batch_post_sales_invoice_step4.png b/dataset/problemstatement/microsoftInternal__NAV-207236__cf-1/batch_post_sales_invoice_step4.png new file mode 100644 index 000000000..7e3c99b42 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207236__cf-1/batch_post_sales_invoice_step4.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207236__cf-1/changes_step5.png b/dataset/problemstatement/microsoftInternal__NAV-207236__cf-1/changes_step5.png new file mode 100644 index 000000000..74f052b7e Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207236__cf-1/changes_step5.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207236__cf-1/information_step4.png b/dataset/problemstatement/microsoftInternal__NAV-207236__cf-1/information_step4.png new file mode 100644 index 000000000..8578d23bc Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207236__cf-1/information_step4.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207236__cf-1/invoice_details_step2.png b/dataset/problemstatement/microsoftInternal__NAV-207236__cf-1/invoice_details_step2.png new file mode 100644 index 000000000..ca129df8f Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207236__cf-1/invoice_details_step2.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207236__cf-1/invoice_details_step5.png b/dataset/problemstatement/microsoftInternal__NAV-207236__cf-1/invoice_details_step5.png new file mode 100644 index 000000000..51524ec31 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207236__cf-1/invoice_details_step5.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207236__cf-1/lines_step3.png b/dataset/problemstatement/microsoftInternal__NAV-207236__cf-1/lines_step3.png new file mode 100644 index 000000000..7cb285f7d Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207236__cf-1/lines_step3.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207236__cf-1/message_step5.png b/dataset/problemstatement/microsoftInternal__NAV-207236__cf-1/message_step5.png new file mode 100644 index 000000000..224a1acce Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207236__cf-1/message_step5.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207236__cf-1/sales_invoice_step1.png b/dataset/problemstatement/microsoftInternal__NAV-207236__cf-1/sales_invoice_step1.png new file mode 100644 index 000000000..77af67ae4 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207236__cf-1/sales_invoice_step1.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207236__cf-1/sales_invoice_step4.png b/dataset/problemstatement/microsoftInternal__NAV-207236__cf-1/sales_invoice_step4.png new file mode 100644 index 000000000..0021da31a Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207236__cf-1/sales_invoice_step4.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207247__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-1/README.md new file mode 100644 index 000000000..cbbc926c3 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-1/README.md @@ -0,0 +1,38 @@ +# Title: If a comment is stored on Production BOM components, it is incorrectly transferred to the component lines for the Firm Planned Production order via Planning Worksheet when the same item is listed more than once on the BOM and the Position field must be used to distinguish those duplicate lines. +## Repro Steps: +1. A BOM is set up with several lines for one item.  You can use existing Prod. BOM  SP-BOM2000 and add a 2nd line for the SAME Item SP-BOM2001. +a. These lines have different “Position” numbers assigned to each line (Use personalization to populate the Position field).   You need this step otherwise the Planning Line will combine the 2 lines for this itme into 1, and you will not see the issue. +![Production BOM Step1](./production_BOM_step1.png)  +2. The first and second component line has comments assigned to them.  Again, it is important to know these are the same item, just listed twice. In this example: +a. Line 1: Comment “Test1” +![Edit List Step2a](./edit_list_step2a.png) +b. Line 2: Comment “Test2” +![Edit List Step2b](./edit_list_step2b.png) +3. A sales order for item "SP-BOM2000" is created and released to have a demand in the system. +![Sales Order Step3](./sales_order_step3.png)  +4. Go to planning worksheet page and navigate to Prepare > Calculate Regenerative planning +a. The planning worksheet is calculated for item "SP-BOM2000" +![Calculate Plan Step4a](./calculate_plan_step4a.png) +b. The planning worksheets now suggests creating a production order for item "SP-BOM2000". +![Planning Worksheets Step4b](./planning_worksheets_step4b.png) +c. On the Planning worksheet page, navigate to Line > Component. +![Componets Step4c](./componets_step4c.png) +d. The planning components does not have any comments or have a way to check the comment on this page. +![Planning Worksheets Step4d](./planning_components_step4d.png)  +5. Use "Carry Out Action message" function to create a Firm planned production order is created and opened. The components are opened. +![message Step5](./message_step5.png) +a. On the created Firm planned Prod. Order page, navigate to Line > Component. +![Component Step5a](./component_step5a.png) +b. You will notice that both lines now have the same comment – the comment from BOM line 2 (“Test2”). +![Comment List Step5b](./comment_list_step5b.png) +![Comment Step5b](./comment_step5b.png) +This shows that Line 1 now has the wrong comment as it has the same comment as Line 2 + +FYI: Manually creating a Firm planned production order does not lead to this issue. + +**Actual Result:** Both Production BOM Line 1 and 2 has the same comment "Test2" in the Firm planned Prod. order created from the Planning Worksheet. + +**Expected Result:** When the same component item appears more than once on the Production BOM, each Firm Planned Prod. Order component line should retain the comment from the Production BOM line with the matching Position. +**Also note, this is ONLY an issue when we use the 'POSITION' field.   If we do not, then we get just 1 line of the component with the 'Qty Per' summed from the 2 lines on the Prod. BOM.  But if we do NOT use the 'POSITION' field, then the combined Prod. Order Component line which is combined, just uses the Comment from the 2nd BOM Line "Test2". + +## Description: diff --git a/dataset/problemstatement/microsoftInternal__NAV-207247__cf-1/calculate_plan_step4a.png b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-1/calculate_plan_step4a.png new file mode 100644 index 000000000..e8673884d Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-1/calculate_plan_step4a.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207247__cf-1/comment_list_step5b.png b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-1/comment_list_step5b.png new file mode 100644 index 000000000..d6a08c0fe Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-1/comment_list_step5b.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207247__cf-1/comment_step5b.png b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-1/comment_step5b.png new file mode 100644 index 000000000..bdb4bb7cf Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-1/comment_step5b.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207247__cf-1/component_step5a.png b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-1/component_step5a.png new file mode 100644 index 000000000..32b6874ac Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-1/component_step5a.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207247__cf-1/componets_step4c.png b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-1/componets_step4c.png new file mode 100644 index 000000000..879100a38 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-1/componets_step4c.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207247__cf-1/edit_list_step2a.png b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-1/edit_list_step2a.png new file mode 100644 index 000000000..17330c4e8 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-1/edit_list_step2a.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207247__cf-1/edit_list_step2b.png b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-1/edit_list_step2b.png new file mode 100644 index 000000000..3784b6709 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-1/edit_list_step2b.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207247__cf-1/message_step5.png b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-1/message_step5.png new file mode 100644 index 000000000..1c55aa788 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-1/message_step5.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207247__cf-1/planning_components_step4d.png b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-1/planning_components_step4d.png new file mode 100644 index 000000000..2f1880b78 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-1/planning_components_step4d.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207247__cf-1/planning_worksheets_step4b.png b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-1/planning_worksheets_step4b.png new file mode 100644 index 000000000..eb17c3f0c Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-1/planning_worksheets_step4b.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207247__cf-1/production_BOM_step1.png b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-1/production_BOM_step1.png new file mode 100644 index 000000000..49c474856 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-1/production_BOM_step1.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207247__cf-1/sales_order_step3.png b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-1/sales_order_step3.png new file mode 100644 index 000000000..b9bad83ce Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-1/sales_order_step3.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207247__cf-2/README.md b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-2/README.md new file mode 100644 index 000000000..1d036c8e7 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-2/README.md @@ -0,0 +1,38 @@ +# Title: If a comment is stored on Production BOM components, it is incorrectly transferred to the component lines for the Firm Planned Production order via Planning Worksheet when the same item is listed twice on the BOM and the BOM line identity must be preserved for comment transfer. +## Repro Steps: +1. A BOM is set up with several lines for one item.  You can use existing Prod. BOM  SP-BOM2000 and add a 2nd line for the SAME Item SP-BOM2001. +a. These lines have different “Position” numbers assigned to each line (Use personalization to populate the Position field).   You need this step otherwise the Planning Line will combine the 2 lines for this itme into 1, and you will not see the issue. +![Production BOM Step1](./production_BOM_step1.png)  +2. The first and second component line has comments assigned to them.  Again, it is important to know these are the same item, just listed twice. In this example: +a. Line 1: Comment “Test1” +![Edit List Step2a](./edit_list_step2a.png) +b. Line 2: Comment “Test2” +![Edit List Step2b](./edit_list_step2b.png) +3. A sales order for item "SP-BOM2000" is created and released to have a demand in the system. +![Sales Order Step3](./sales_order_step3.png)  +4. Go to planning worksheet page and navigate to Prepare > Calculate Regenerative planning +a. The planning worksheet is calculated for item "SP-BOM2000" +![Calculate Plan Step4a](./calculate_plan_step4a.png) +b. The planning worksheets now suggests creating a production order for item "SP-BOM2000". +![Planning Worksheets Step4b](./planning_worksheets_step4b.png) +c. On the Planning worksheet page, navigate to Line > Component. +![Componets Step4c](./componets_step4c.png) +d. The planning components does not have any comments or have a way to check the comment on this page. +![Planning Worksheets Step4d](./planning_components_step4d.png)  +5. Use "Carry Out Action message" function to create a Firm planned production order is created and opened. The components are opened. +![message Step5](./message_step5.png) +a. On the created Firm planned Prod. Order page, navigate to Line > Component. +![Component Step5a](./component_step5a.png) +b. You will notice that both lines now have the same comment – the comment from BOM line 2 (“Test2”). +![Comment List Step5b](./comment_list_step5b.png) +![Comment Step5b](./comment_step5b.png) +This shows that Line 1 now has the wrong comment as it has the same comment as Line 2 + +FYI: Manually creating a Firm planned production order does not lead to this issue. + +**Actual Result:** Both Production BOM Line 1 and 2 has the same comment "Test2" in the Firm planned Prod. order created from the Planning Worksheet. + +**Expected Result:** Each Firm Planned Prod. Order component line should retain the comment from the Production BOM line with the matching BOM line number, so Line 1 keeps "Test1" and Line 2 keeps "Test2". +**Also note, this is ONLY an issue when we use the 'POSITION' field.   If we do not, then we get just 1 line of the component with the 'Qty Per' summed from the 2 lines on the Prod. BOM.  But if we do NOT use the 'POSITION' field, then the combined Prod. Order Component line which is combined, just uses the Comment from the 2nd BOM Line "Test2". + +## Description: diff --git a/dataset/problemstatement/microsoftInternal__NAV-207247__cf-2/calculate_plan_step4a.png b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-2/calculate_plan_step4a.png new file mode 100644 index 000000000..e8673884d Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-2/calculate_plan_step4a.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207247__cf-2/comment_list_step5b.png b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-2/comment_list_step5b.png new file mode 100644 index 000000000..d6a08c0fe Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-2/comment_list_step5b.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207247__cf-2/comment_step5b.png b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-2/comment_step5b.png new file mode 100644 index 000000000..bdb4bb7cf Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-2/comment_step5b.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207247__cf-2/component_step5a.png b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-2/component_step5a.png new file mode 100644 index 000000000..32b6874ac Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-2/component_step5a.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207247__cf-2/componets_step4c.png b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-2/componets_step4c.png new file mode 100644 index 000000000..879100a38 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-2/componets_step4c.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207247__cf-2/edit_list_step2a.png b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-2/edit_list_step2a.png new file mode 100644 index 000000000..17330c4e8 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-2/edit_list_step2a.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207247__cf-2/edit_list_step2b.png b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-2/edit_list_step2b.png new file mode 100644 index 000000000..3784b6709 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-2/edit_list_step2b.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207247__cf-2/message_step5.png b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-2/message_step5.png new file mode 100644 index 000000000..1c55aa788 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-2/message_step5.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207247__cf-2/planning_components_step4d.png b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-2/planning_components_step4d.png new file mode 100644 index 000000000..2f1880b78 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-2/planning_components_step4d.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207247__cf-2/planning_worksheets_step4b.png b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-2/planning_worksheets_step4b.png new file mode 100644 index 000000000..eb17c3f0c Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-2/planning_worksheets_step4b.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207247__cf-2/production_BOM_step1.png b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-2/production_BOM_step1.png new file mode 100644 index 000000000..49c474856 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-2/production_BOM_step1.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207247__cf-2/sales_order_step3.png b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-2/sales_order_step3.png new file mode 100644 index 000000000..b9bad83ce Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-2/sales_order_step3.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207247__cf-3/README.md b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-3/README.md new file mode 100644 index 000000000..1170cd3f0 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-3/README.md @@ -0,0 +1,38 @@ +# Title: If a comment is stored on Production BOM components, it is incorrectly transferred to the component lines for the Released Production order via Planning Worksheet when the same item is listed twice on the BOM and the Position field is used. +## Repro Steps: +1. A BOM is set up with several lines for one item.  You can use existing Prod. BOM  SP-BOM2000 and add a 2nd line for the SAME Item SP-BOM2001. +a. These lines have different “Position” numbers assigned to each line (Use personalization to populate the Position field).   You need this step otherwise the Planning Line will combine the 2 lines for this itme into 1, and you will not see the issue. +![Production BOM Step1](./production_BOM_step1.png)  +2. The first and second component line has comments assigned to them.  Again, it is important to know these are the same item, just listed twice. In this example: +a. Line 1: Comment “Test1” +![Edit List Step2a](./edit_list_step2a.png) +b. Line 2: Comment “Test2” +![Edit List Step2b](./edit_list_step2b.png) +3. A sales order for item "SP-BOM2000" is created and released to have a demand in the system. +![Sales Order Step3](./sales_order_step3.png)  +4. Go to planning worksheet page and navigate to Prepare > Calculate Regenerative planning +a. The planning worksheet is calculated for item "SP-BOM2000" +![Calculate Plan Step4a](./calculate_plan_step4a.png) +b. The planning worksheets now suggests creating a production order for item "SP-BOM2000". +![Planning Worksheets Step4b](./planning_worksheets_step4b.png) +c. On the Planning worksheet page, navigate to Line > Component. +![Componets Step4c](./componets_step4c.png) +d. The planning components does not have any comments or have a way to check the comment on this page. +![Planning Worksheets Step4d](./planning_components_step4d.png)  +5. Use "Carry Out Action message" function to create a Firm planned production order is created and opened. The components are opened. +![message Step5](./message_step5.png) +a. On the created Firm planned Prod. Order page, navigate to Line > Component. +![Component Step5a](./component_step5a.png) +b. You will notice that both lines now have the same comment – the comment from BOM line 2 (“Test2”). +![Comment List Step5b](./comment_list_step5b.png) +![Comment Step5b](./comment_step5b.png) +This shows that Line 1 now has the wrong comment as it has the same comment as Line 2 + +FYI: Manually creating a Firm planned production order does not lead to this issue. + +**Actual Result:** Both Production BOM Line 1 and 2 has the same comment "Test2" in the Firm planned Prod. order created from the Planning Worksheet. + +**Expected Result:** The Production BOM Line 1 should retain its comment "Test1" in the Released Prod. order created from the Planning worksheet and Production BOM Line 2 "Test2". +**Also note, this is ONLY an issue when we use the 'POSITION' field.   If we do not, then we get just 1 line of the component with the 'Qty Per' summed from the 2 lines on the Prod. BOM.  But if we do NOT use the 'POSITION' field, then the combined Prod. Order Component line which is combined, just uses the Comment from the 2nd BOM Line "Test2". + +## Description: diff --git a/dataset/problemstatement/microsoftInternal__NAV-207247__cf-3/calculate_plan_step4a.png b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-3/calculate_plan_step4a.png new file mode 100644 index 000000000..e8673884d Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-3/calculate_plan_step4a.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207247__cf-3/comment_list_step5b.png b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-3/comment_list_step5b.png new file mode 100644 index 000000000..d6a08c0fe Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-3/comment_list_step5b.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207247__cf-3/comment_step5b.png b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-3/comment_step5b.png new file mode 100644 index 000000000..bdb4bb7cf Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-3/comment_step5b.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207247__cf-3/component_step5a.png b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-3/component_step5a.png new file mode 100644 index 000000000..32b6874ac Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-3/component_step5a.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207247__cf-3/componets_step4c.png b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-3/componets_step4c.png new file mode 100644 index 000000000..879100a38 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-3/componets_step4c.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207247__cf-3/edit_list_step2a.png b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-3/edit_list_step2a.png new file mode 100644 index 000000000..17330c4e8 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-3/edit_list_step2a.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207247__cf-3/edit_list_step2b.png b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-3/edit_list_step2b.png new file mode 100644 index 000000000..3784b6709 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-3/edit_list_step2b.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207247__cf-3/message_step5.png b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-3/message_step5.png new file mode 100644 index 000000000..1c55aa788 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-3/message_step5.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207247__cf-3/planning_components_step4d.png b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-3/planning_components_step4d.png new file mode 100644 index 000000000..2f1880b78 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-3/planning_components_step4d.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207247__cf-3/planning_worksheets_step4b.png b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-3/planning_worksheets_step4b.png new file mode 100644 index 000000000..eb17c3f0c Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-3/planning_worksheets_step4b.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207247__cf-3/production_BOM_step1.png b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-3/production_BOM_step1.png new file mode 100644 index 000000000..49c474856 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-3/production_BOM_step1.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207247__cf-3/sales_order_step3.png b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-3/sales_order_step3.png new file mode 100644 index 000000000..b9bad83ce Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207247__cf-3/sales_order_step3.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207878__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-207878__cf-1/README.md new file mode 100644 index 000000000..08d01c541 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-207878__cf-1/README.md @@ -0,0 +1,31 @@ +# Title: Avail. Warning is triggered when Due Date is before Work Date +## Repro Steps: +1. In the Search, type  My Notifications and find 'Item availability is low' and Enable it +2. Work Date = 2/13/25 (mm/dd/yy) +3. Assembly Setup, set Default Location for Orders = BLUE +4. Manufacturing Setup, set 'Component at Location' = BLUE +5. Create a new Item Component  **ASSEMAVAILCOMP** (or use an existing item with no entries). +6. Create a new Assembled Item  **ASSEMAVAILFG**  with + Replenishment = PURCHASE Assembly Policy = Make-to-Stock +7. In the 'Assembly BOM' field, drill into it and add your component item from step 3 and set **'Qty Per' = 2.** +8. Create a new Assembly Order for Item **ASSEMAVAILFG** for 1 qty, BLUE location, while you can set all the dates 'Posting, Due, Starting, & Ending Dates' = 02/13/25. +9. Now check the 'Avail. Warning' on the Assembly Order Line, it shows Yes.  This is correct of course because we have 0 QOH for the component. + >You can also review the 'Show Availability' under the Home, and this looks good. + ![Home](./home.png) +10. Open Item Journal and create/post 2 qty to BLUE Location for your Component Item.  Now you will enough in stock to consume and make the Assembly Order. +11. If you go back and reopen the Assembly Order, the 'Avail. Warning' field will be blank.  All good. +12. Set Work Date = 02/18/25 +13. Create a 2nd Assembly Order for **ASSEMAVAILFG,** Blue location, for 3 quantity, and set all Dates should be 02/18/25.  We can see availability warning again, because this would require 6 more components. +14. Now go back and reopen the 1st Assembly Order where there is a demand of 2 qty for the Component, and we have 2 in stock. + +**EXPECTED RESULTS:**  'Aval. Warning' = blank + +**ACTUAL RESULTS:**  'Aval. Warning' = Yes +* Also, if I go into the 'Show Availability' we see "The inventory is not sufficient to cover request to assemble requested quantity of Item **ASSEMAVAILFG**" +* 'Able to Assembly' is also 0 (both header and line), despite the Document I provided in Description says "including how many of the assembly order quantity can be assembled by the due date based on availability of the required components." +* The Lines seem to show everything else except for current Assembly. +![Error](./error.png) + +## Description: +[Get an availability overview - Business Central | Microsoft Learn](https://learn.microsoft.com/en-us/dynamics365/business-central/inventory-how-availability-overview#assembly-availability-page) +![Details](./details.png) diff --git a/dataset/problemstatement/microsoftInternal__NAV-207878__cf-1/details.png b/dataset/problemstatement/microsoftInternal__NAV-207878__cf-1/details.png new file mode 100644 index 000000000..87eb7078c Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207878__cf-1/details.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207878__cf-1/error.png b/dataset/problemstatement/microsoftInternal__NAV-207878__cf-1/error.png new file mode 100644 index 000000000..aac300e45 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207878__cf-1/error.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-207878__cf-1/home.png b/dataset/problemstatement/microsoftInternal__NAV-207878__cf-1/home.png new file mode 100644 index 000000000..89ccca4f2 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-207878__cf-1/home.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-208649__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-208649__cf-1/README.md new file mode 100644 index 000000000..31092e4ae --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-208649__cf-1/README.md @@ -0,0 +1,38 @@ +# Title: If a component's Item UOM has a 'Quantity Rounding Precision' of 1, & a Finished Good consumes partial quantity, the Prod. Order created from the Planning of a Sales Order pulls in the Component with a 'Qty. Per' and 'Exp. Qty.' of 0. +## Repro Steps: +1.  Use existing Item with no activity, or create new item.  This will be the COMPONENT Item.  Will use PCS as UOM. + +2. For the Component Item, go into Related > Item UOM > and set 'Quantity Rounding Precision' = 1 on the bottom. + +3. Component Item should have + Replenishment System = PURCHASE + Rounding Precision = .01 + Reorder Policy = Lot-for-Lot + Include Inventory = TRUE + +4. Then have another Item, I'll call it FG Item which is: + Replenishment System = PRODUNCTION ORDER + Rounding Precision = 1 + Reorder Policy = ORDER + Production BOM => Create new Certified Production BOM that consumes COMPONENT Item with 'Quantity Per' = .09 + +5. Now create Sales Order for any Customer for FG Item for 2 Quantity at BLUE (or MAIN) location. + +6. On the Sales Order go to Actions > Plan > Planning > Create Prod. Order and choose 'Released' and 'Item Order'. + +7. Then choose Order Tracking and then 'Show' which will take you to the Released Prod. Order. + +8. We will see prod. Order for FG Item with 1 qty.  Go to Line > Components + + **EXPECTED RESULTS** = 'Quantity Per' = .09 and 'Expected Quantity' = .18 + **ACTUAL RESULTS** = 'Quantity Per' and 'Expected Quantity' = 0 + +If you were then to delete the Released Production Order, and go to the Planning Worksheet and run the Calc. Regenerative Plan for the 2 items, you would receive an error: +"The value in the Qty. Rounding Precision field on the Item Unit of Measure page is causing the rounding precision for the Expected Quantity field to be incorrect." + +## Description: +2If a component's Item UOM has a 'Quantity Rounding Precision' set to 1, and a Finished Good consumes partial quantity, the Production Order created from the Planning section of a Sales Order pulls in the Component but with a 'Quantity Per' and 'Expected Quantity' of 0.  If we are producing 1 FG Item and the 'Quantity Per' is set to consume .1 component, we would expect 'Quantity Per' and 'Expected Quantity' both = .1.   There is no error message. + +But if you run the Planning Worksheet's 'Calc. Regenerative Plan', then you will get an error message about the 'Quantity Rounding Precision'. + +I don't believe the 'Quantity Rounding Precision' in the Item UOM should have any influence on this process.  I always thought this field was only for scenario with Picking and when Base UOM is larger than the smallest UOM, and picking in smallest UOM.  There is a lot of confusion about this 'Quantity Rounding Precision' field within the Item UOM actually.  diff --git a/dataset/problemstatement/microsoftInternal__NAV-208649__cf-2/README.md b/dataset/problemstatement/microsoftInternal__NAV-208649__cf-2/README.md new file mode 100644 index 000000000..16da66d5b --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-208649__cf-2/README.md @@ -0,0 +1,38 @@ +# Title: If a component's Item UOM has a 'Quantity Rounding Precision' of 1, & a Finished Good consumes partial quantity, the Prod. Order created from the Planning of a Sales Order pulls in the Component with a 'Qty. Per' and 'Exp. Qty.' of 0. +## Repro Steps: +1.  Use existing Item with no activity, or create new item.  This will be the COMPONENT Item.  Will use PCS as UOM. + +2. For the Component Item, go into Related > Item UOM > and set 'Quantity Rounding Precision' = 1 on the bottom. + +3. Component Item should have + Replenishment System = PURCHASE + Rounding Precision = .01 + Reorder Policy = Lot-for-Lot + Include Inventory = TRUE + +4. Then have another Item, I'll call it FG Item which is: + Replenishment System = PRODUNCTION ORDER + Rounding Precision = 1 + Reorder Policy = ORDER + Production BOM => Create new Certified Production BOM that consumes COMPONENT Item with 'Quantity Per' = .49 + +5. Now create Sales Order for any Customer for FG Item for 1 Quantity at BLUE (or MAIN) location. + +6. On the Sales Order go to Actions > Plan > Planning > Create Prod. Order and choose 'Released' and 'Item Order'. + +7. Then choose Order Tracking and then 'Show' which will take you to the Released Prod. Order. + +8. We will see prod. Order for FG Item with 1 qty. Go to Line > Components + + **EXPECTED RESULTS** = 'Quantity Per' and 'Expected Quantity' = .49 + **ACTUAL RESULTS** = 'Quantity Per' and 'Expected Quantity' = 0 + +If you were then to delete the Released Production Order, and go to the Planning Worksheet and run the Calc. Regenerative Plan for the 2 items, you would receive an error: +"The value in the Qty. Rounding Precision field on the Item Unit of Measure page is causing the rounding precision for the Expected Quantity field to be incorrect." + +## Description: +2If a component's Item UOM has a 'Quantity Rounding Precision' set to 1, and a Finished Good consumes partial quantity, the Production Order created from the Planning section of a Sales Order pulls in the Component but with a 'Quantity Per' and 'Expected Quantity' of 0.  If we are producing 1 FG Item and the 'Quantity Per' is set to consume .1 component, we would expect 'Quantity Per' and 'Expected Quantity' both = .1.   There is no error message. + +But if you run the Planning Worksheet's 'Calc. Regenerative Plan', then you will get an error message about the 'Quantity Rounding Precision'. + +I don't believe the 'Quantity Rounding Precision' in the Item UOM should have any influence on this process.  I always thought this field was only for scenario with Picking and when Base UOM is larger than the smallest UOM, and picking in smallest UOM.  There is a lot of confusion about this 'Quantity Rounding Precision' field within the Item UOM actually.  diff --git a/dataset/problemstatement/microsoftInternal__NAV-208748__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-208748__cf-1/README.md new file mode 100644 index 000000000..a47695c3a --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-208748__cf-1/README.md @@ -0,0 +1,18 @@ +# Title: When multiple items with extended text are added to a Blanket Sales Order and Make Order is used to create a new Sales Order only the first Extended text is brought over +## Repro Steps: +Issue was tested on BE & DE localizations (it is working fine in GB) +Open item No. 1896-S and open the extended text: +![Item Card](./item_card.png) +Add the below line: +![Extended Text](./extended_text.png) +Repeat this step with one more item (total 2 items). +Open Blanket sales order and add 3 lines for the 3 items then select make order: +![Blanket sales order](./blanket_sales_order.png) +Open the created sales order and you will find that 1 line for the extended text was created, and the others were not carried out to the sales order: +![Sales Order](./sales_order.png)  + +Expected results: +All extended text lines should be carried out to the sales order. + +## Description: +Extended text line is not carried out to the Sales order when created from blanket sales order diff --git a/dataset/problemstatement/microsoftInternal__NAV-208748__cf-1/blanket_sales_order.png b/dataset/problemstatement/microsoftInternal__NAV-208748__cf-1/blanket_sales_order.png new file mode 100644 index 000000000..60b12673b Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-208748__cf-1/blanket_sales_order.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-208748__cf-1/extended_text.png b/dataset/problemstatement/microsoftInternal__NAV-208748__cf-1/extended_text.png new file mode 100644 index 000000000..2558b6525 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-208748__cf-1/extended_text.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-208748__cf-1/item_card.png b/dataset/problemstatement/microsoftInternal__NAV-208748__cf-1/item_card.png new file mode 100644 index 000000000..9dfe02a54 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-208748__cf-1/item_card.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-208748__cf-1/sales_order.png b/dataset/problemstatement/microsoftInternal__NAV-208748__cf-1/sales_order.png new file mode 100644 index 000000000..0f58476b2 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-208748__cf-1/sales_order.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-208748__cf-2/README.md b/dataset/problemstatement/microsoftInternal__NAV-208748__cf-2/README.md new file mode 100644 index 000000000..1a5255402 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-208748__cf-2/README.md @@ -0,0 +1,18 @@ +# Title: When multiple items with extended text are added to a Blanket Sales Order and Make Order is used to create a new Sales Order only the first Extended text is brought over +## Repro Steps: +Issue was tested on BE & DE localizations (it is working fine in GB) +Open item No. 1896-S and open the extended text: +![Item Card](./item_card.png) +Add the below line: +![Extended Text](./extended_text.png) +Repeat this step with another 2 items, but only 2 of the 3 items should have extended text. +Open Blanket sales order and add 3 lines for the 3 items then select make order: +![Blanket sales order](./blanket_sales_order.png) +Open the created sales order and you will find that 1 line for the extended text was created, and the others were not carried out to the sales order: +![Sales Order](./sales_order.png)  + +Expected results: +All extended text lines should be carried out to the sales order. + +## Description: +Extended text line is not carried out to the Sales order when created from blanket sales order diff --git a/dataset/problemstatement/microsoftInternal__NAV-208748__cf-2/blanket_sales_order.png b/dataset/problemstatement/microsoftInternal__NAV-208748__cf-2/blanket_sales_order.png new file mode 100644 index 000000000..60b12673b Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-208748__cf-2/blanket_sales_order.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-208748__cf-2/extended_text.png b/dataset/problemstatement/microsoftInternal__NAV-208748__cf-2/extended_text.png new file mode 100644 index 000000000..2558b6525 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-208748__cf-2/extended_text.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-208748__cf-2/item_card.png b/dataset/problemstatement/microsoftInternal__NAV-208748__cf-2/item_card.png new file mode 100644 index 000000000..9dfe02a54 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-208748__cf-2/item_card.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-208748__cf-2/sales_order.png b/dataset/problemstatement/microsoftInternal__NAV-208748__cf-2/sales_order.png new file mode 100644 index 000000000..0f58476b2 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-208748__cf-2/sales_order.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-208851__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-208851__cf-1/README.md new file mode 100644 index 000000000..78d727f38 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-208851__cf-1/README.md @@ -0,0 +1,28 @@ +# Title: In the Sales Price Lists, the 'Defines' field always defaults to Price & Discount when dealing with Customer Price Group/Customer Disc Group setting +## Repro Steps: +Reproduced in CRONUS GB v25.4 +Enable 'New Sales Price Experience' in Feature Management. +1. Go to Sales Price Lists +2. Click on New to generate a New Sales Price List. +3. Set Assign-to-type to Customer Disc. Group +4. View Columns for: **Discount** +5. Insert a single item line, using only Price. +6. Set the Sales Price List to Status 'Active' +7. Go back to the Sales Price Lists Page. + +You will notice "Defines" has changed back to Prices & Discounts Same behavior is replicable with Price for Customer Price Group +**Expected Result:** Defines should remain as Price if only prices are in the Sales Price list +**Actual Results:** 'Defines' Always defaults to 'Prices & Discount' + +## Description: +The issue is with the setting for the "Defines" field. The setting may be changed from 'Price & Discount' to 'Discount' because only Line Discounts may be used in the new Price Group configuration. However, after closing the Page, the system will always default back to the 'Price & Discount', even though only Line Discounts are defined, because the code doesn't pass the value correctly. + +The Partner Developer highlighted the following code: +The call stack: +- GetAmountType (\ext11_packandshipchanges\Table\7005\Price Source.dal:342) +- GetDefaultAmountType (\ext11_packandshipchanges\Table\7005\Price Source.dal:182) +- UpdateAmountType (\ext11_packandshipchanges\Table\7000\Price List Header.dal:567) +- OnClosePage (\ext11_packandshipchanges\Page\7016\Sales Price List.dal:600) + +In the Function:`UpdateAmountType`, the following code is used: +"Amount Type" := PriceSource.GetDefaultAmountType(); The code reflects it as empty. No value is passed to it, so it always defaults to 'Price & Discount' diff --git a/dataset/problemstatement/microsoftInternal__NAV-209450__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-209450__cf-1/README.md new file mode 100644 index 000000000..0405a6fc9 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-209450__cf-1/README.md @@ -0,0 +1,38 @@ +# Title: It should not be possible to reserve a non-inventory or service item for a job planning line +## Repro Steps: +1. Open BC252 W1 on Prem +2. Search for items + Create 2 Items + 1. inventory + 2. Non-Inventory +3. Search for Projects + Create a new Project + Customer: 10000 + Add a Task line No. 1000 + Apply Usage Link= No + ![Project Card](./project_card.png) +4. Edit -> Open project planning lines + Add the field Reserve and Apply Usage Link to the lines by personalisation + Add 2 lines for the created items: + Activate Apply Usage Link = YES + Reserve: Optinal + ![Project Planning Lines](./project_planning_lines.png) +5. Search for purchase orders + Create a purchase order ( make sure the posting date and the purchase line date is before the date on the project planning lines) + Vendor: 10000 + Add both items with quantity 2 to the purchase order + Functions -> Reserve + And reserve each line against the project journal lines. + + Post -> Receive +6. Navigate to the item ledger entries page and you will see that the item of type "Inventory" has remaining quantity with reserved quantity, but the item of type "Non-inventory" has remaining quantity of zero with reserved quantity available. + ![Item Ledger Entries](./item_ledger_entries.png) + +**ACTUAL RESULT:** The non-inventory item allows reserve. + +**EXPECTED RESULT:** No reservation should be allowed for items of type "Non-inventory". + +## Description: +It should not be possible to reserve a non-inventory or service item for a job planning line. +This is the documentation which describes it.https://learn.microsoft.com/en-us/dynamics365/business-central/inventory-about-item-types +Non-Inventory and Service items do not support the reservation functionality. diff --git a/dataset/problemstatement/microsoftInternal__NAV-209450__cf-1/item_ledger_entries.png b/dataset/problemstatement/microsoftInternal__NAV-209450__cf-1/item_ledger_entries.png new file mode 100644 index 000000000..cdaf7f6d3 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209450__cf-1/item_ledger_entries.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209450__cf-1/project_card.png b/dataset/problemstatement/microsoftInternal__NAV-209450__cf-1/project_card.png new file mode 100644 index 000000000..b3e9a135b Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209450__cf-1/project_card.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209450__cf-1/project_planning_lines.png b/dataset/problemstatement/microsoftInternal__NAV-209450__cf-1/project_planning_lines.png new file mode 100644 index 000000000..2280960fd Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209450__cf-1/project_planning_lines.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209450__cf-2/README.md b/dataset/problemstatement/microsoftInternal__NAV-209450__cf-2/README.md new file mode 100644 index 000000000..29b24461d --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-209450__cf-2/README.md @@ -0,0 +1,38 @@ +# Title: It should not be possible to reserve a non-inventory or service item for a job planning line +## Repro Steps: +1. Open BC252 W1 on Prem +2. Search for items + Create 2 Items + 1. inventory + 2. Service +3. Search for Projects + Create a new Project + Customer: 10000 + Add a Task line No. 1000 + Apply Usage Link= No + ![Project Card](./project_card.png) +4. Edit -> Open project planning lines + Add the field Reserve and Apply Usage Link to the lines by personalisation + Add 2 lines for the created items: + Activate Apply Usage Link = YES + Reserve: Optinal + ![Project Planning Lines](./project_planning_lines.png) +5. Search for purchase orders + Create a purchase order ( make sure the posting date and the purchase line date is before the date on the project planning lines) + Vendor: 10000 + Add both items with quantity 2 to the purchase order + Functions -> Reserve + And reserve each line against the project journal lines. + + Post -> Receive +6. Navigate to the item ledger entries page and you will see that the item of type "Inventory" has remaining quantity with reserved quantity, but the item of type "Service" has remaining quantity of zero with reserved quantity available. + ![Item Ledger Entries](./item_ledger_entries.png) + +**ACTUAL RESULT:** The service item allows reserve. + +**EXPECTED RESULT:** No reservation should be allowed for items of type "Service". + +## Description: +It should not be possible to reserve a non-inventory or service item for a job planning line. +This is the documentation which describes it.https://learn.microsoft.com/en-us/dynamics365/business-central/inventory-about-item-types +Non-Inventory and Service items do not support the reservation functionality. diff --git a/dataset/problemstatement/microsoftInternal__NAV-209450__cf-2/item_ledger_entries.png b/dataset/problemstatement/microsoftInternal__NAV-209450__cf-2/item_ledger_entries.png new file mode 100644 index 000000000..cdaf7f6d3 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209450__cf-2/item_ledger_entries.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209450__cf-2/project_card.png b/dataset/problemstatement/microsoftInternal__NAV-209450__cf-2/project_card.png new file mode 100644 index 000000000..b3e9a135b Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209450__cf-2/project_card.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209450__cf-2/project_planning_lines.png b/dataset/problemstatement/microsoftInternal__NAV-209450__cf-2/project_planning_lines.png new file mode 100644 index 000000000..2280960fd Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209450__cf-2/project_planning_lines.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209496__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-209496__cf-1/README.md new file mode 100644 index 000000000..4aefd84c2 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-209496__cf-1/README.md @@ -0,0 +1,29 @@ +# Title: Error message "A reminder attachment text cannot be created without an ID" when adding text for language in Reminder Level Communication + +## Repro Steps: +Issue was Reproduced in Version: GB Business Central 25.4 (Platform 25.2.29913.0 + Application 25.4.29661.29959) +**REPRO** +1. Navigate to Reminder Terms, Create a new one +![Reminder Terms Step1](./reminder_terms_step1.png) +2. On the Lines, Navigate to Customer Communication. +![Reminder Terms Setup Step2](./reminder_terms_setup_step2.png) +3. Press No to the next 2 x messages: +![Message Step3](./message_step3.png) +![Message2 Step3](./message2_step3.png) +4. With no Attachment Texts inserted on the communication, press Add text for language. +![Communication Step4](./communication_step4.png)  +5. Say No to the 2x messages, +![Message Step5](./message_step5.png) +![Message2 Step5](./message2_step5.png) +6. Then select the language - GERMAN: +![Languages Step6](./languages_step6.png) + +**Actual Result** +Error- A reminder attachment text cannot be created without an ID. + ![Error](./error.png) + +**Expected Result** +The error message should not appear. + +## Description: +Error message "A reminder attachment text cannot be created without an ID" when adding text for language in Reminder Level Communication diff --git a/dataset/problemstatement/microsoftInternal__NAV-209496__cf-1/communication_step4.png b/dataset/problemstatement/microsoftInternal__NAV-209496__cf-1/communication_step4.png new file mode 100644 index 000000000..b0ad2b050 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209496__cf-1/communication_step4.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209496__cf-1/error.png b/dataset/problemstatement/microsoftInternal__NAV-209496__cf-1/error.png new file mode 100644 index 000000000..44ad97ef1 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209496__cf-1/error.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209496__cf-1/languages_step6.png b/dataset/problemstatement/microsoftInternal__NAV-209496__cf-1/languages_step6.png new file mode 100644 index 000000000..07137bf99 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209496__cf-1/languages_step6.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209496__cf-1/message2_step3.png b/dataset/problemstatement/microsoftInternal__NAV-209496__cf-1/message2_step3.png new file mode 100644 index 000000000..60adbb877 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209496__cf-1/message2_step3.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209496__cf-1/message2_step5.png b/dataset/problemstatement/microsoftInternal__NAV-209496__cf-1/message2_step5.png new file mode 100644 index 000000000..be7fa1026 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209496__cf-1/message2_step5.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209496__cf-1/message_step3.png b/dataset/problemstatement/microsoftInternal__NAV-209496__cf-1/message_step3.png new file mode 100644 index 000000000..dffc89ea8 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209496__cf-1/message_step3.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209496__cf-1/message_step5.png b/dataset/problemstatement/microsoftInternal__NAV-209496__cf-1/message_step5.png new file mode 100644 index 000000000..0739a13be Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209496__cf-1/message_step5.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209496__cf-1/reminder_terms_setup_step2.png b/dataset/problemstatement/microsoftInternal__NAV-209496__cf-1/reminder_terms_setup_step2.png new file mode 100644 index 000000000..e197b066d Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209496__cf-1/reminder_terms_setup_step2.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209496__cf-1/reminder_terms_step1.png b/dataset/problemstatement/microsoftInternal__NAV-209496__cf-1/reminder_terms_step1.png new file mode 100644 index 000000000..a57d986f0 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209496__cf-1/reminder_terms_step1.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209496__cf-2/README.md b/dataset/problemstatement/microsoftInternal__NAV-209496__cf-2/README.md new file mode 100644 index 000000000..91072674e --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-209496__cf-2/README.md @@ -0,0 +1,29 @@ +# Title: Error message "A reminder attachment text cannot be created without an ID" when adding text for language in Reminder Level Communication + +## Repro Steps: +Issue was Reproduced in Version: GB Business Central 25.4 (Platform 25.2.29913.0 + Application 25.4.29661.29959) +**REPRO** +1. Navigate to Reminder Terms, Create a new one +![Reminder Terms Step1](./reminder_terms_step1.png) +2. Create two reminder levels. On the second line, navigate to Customer Communication. +![Reminder Terms Setup Step2](./reminder_terms_setup_step2.png) +3. Press No to the next 2 x messages: +![Message Step3](./message_step3.png) +![Message2 Step3](./message2_step3.png) +4. With no Attachment Texts inserted on the communication, press Add text for language. +![Communication Step4](./communication_step4.png)  +5. Say No to the 2x messages, +![Message Step5](./message_step5.png) +![Message2 Step5](./message2_step5.png) +6. Then select the language - ENGLISH: +![Languages Step6](./languages_step6.png) + +**Actual Result** +Error- A reminder attachment text cannot be created without an ID. + ![Error](./error.png) + +**Expected Result** +The error message should not appear. + +## Description: +Error message "A reminder attachment text cannot be created without an ID" when adding text for language in Reminder Level Communication diff --git a/dataset/problemstatement/microsoftInternal__NAV-209496__cf-2/communication_step4.png b/dataset/problemstatement/microsoftInternal__NAV-209496__cf-2/communication_step4.png new file mode 100644 index 000000000..b0ad2b050 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209496__cf-2/communication_step4.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209496__cf-2/error.png b/dataset/problemstatement/microsoftInternal__NAV-209496__cf-2/error.png new file mode 100644 index 000000000..44ad97ef1 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209496__cf-2/error.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209496__cf-2/languages_step6.png b/dataset/problemstatement/microsoftInternal__NAV-209496__cf-2/languages_step6.png new file mode 100644 index 000000000..07137bf99 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209496__cf-2/languages_step6.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209496__cf-2/message2_step3.png b/dataset/problemstatement/microsoftInternal__NAV-209496__cf-2/message2_step3.png new file mode 100644 index 000000000..60adbb877 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209496__cf-2/message2_step3.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209496__cf-2/message2_step5.png b/dataset/problemstatement/microsoftInternal__NAV-209496__cf-2/message2_step5.png new file mode 100644 index 000000000..be7fa1026 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209496__cf-2/message2_step5.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209496__cf-2/message_step3.png b/dataset/problemstatement/microsoftInternal__NAV-209496__cf-2/message_step3.png new file mode 100644 index 000000000..dffc89ea8 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209496__cf-2/message_step3.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209496__cf-2/message_step5.png b/dataset/problemstatement/microsoftInternal__NAV-209496__cf-2/message_step5.png new file mode 100644 index 000000000..0739a13be Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209496__cf-2/message_step5.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209496__cf-2/reminder_terms_setup_step2.png b/dataset/problemstatement/microsoftInternal__NAV-209496__cf-2/reminder_terms_setup_step2.png new file mode 100644 index 000000000..e197b066d Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209496__cf-2/reminder_terms_setup_step2.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209496__cf-2/reminder_terms_step1.png b/dataset/problemstatement/microsoftInternal__NAV-209496__cf-2/reminder_terms_step1.png new file mode 100644 index 000000000..a57d986f0 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209496__cf-2/reminder_terms_step1.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209835__cf-1/Item_card_step1.png b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-1/Item_card_step1.png new file mode 100644 index 000000000..06649b28e Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-1/Item_card_step1.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209835__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-1/README.md new file mode 100644 index 000000000..76271d5c9 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-1/README.md @@ -0,0 +1,42 @@ +# Title: When a Filter is set in the Planning Worksheet to a specific Action Message (e.g. Cancel) and Carry Out Action Message is completed, additional Planning lines are carried out that were not presented. +## Repro Steps: +1- Create a new item with the reordering policy set to "Order". +![Item Card Step1](./Item_card_step1.png) +2- Create a purchase order for the item with the date set to January 1st, but do not post it. +![Purchase Order Step2](./purchase_order_step2.png) +3- Create a sales order for the same item, ensuring the shipment date is set out to a future Date +![Sales Order Step3](./sales_order_step3.png) +![Sales Order2 Step3](./sales_order2_step3.png) +| Type | No. | Item Reference No. | Description | Location Code | Quantity | Qty. to Assemble to Order | Reserved Quantity | Unit of Measure Code | Unit Price Excl. VAT | Line Discount % | Line Amount Excl. VAT | Service Commitments | Customer Contract No. | Vendor Contract No. | Qty. to Ship | Quantity Shipped | Qty. to Invoice | Quantity Invoiced | Qty. to Assign | Item Charge Qty. to Handle | Qty. Assigned | Planned Delivery Date | Planned Shipment Date | Shipment Date | Abteilung Code | Debitorengruppe Code | +| ---- | ---- | ------------------ | ----------- | ------------- | -------- | ------------------------- | ----------------- | -------------------- | -------------------- | --------------- | --------------------- | ------------------- | --------------------- | ------------------- | ------------ | ---------------- | --------------- | ----------------- | -------------- | -------------------------- | ------------- | --------------------- | --------------------- | ------------- | -------------- | -------------------- | +| Item | 1006 | | Test12 | | 4 | | | STÜCK | 10,00 | | 40,00 | 0 | | | 4 | | 4 | | 0 | 0 | 0 | 10.01.2025 | 10.01.2025 | 10.01.2025 | | MITTEL | + +4- Go to the planning worksheet and calculate the regenerative plan. +![Calculate Plan Step4](./calculate_plan_step4.png) +5- Add the vendor number and the vendor for the item, ensuring the two lines are selected correctly. +![Planning Worksheets Step5](./planning_worksheets_step5.png) +6- Filter using the "Action message" field to the New Planning Line  +![Planning Worksheets Step6](./planning_worksheets_step6.png) +7- Click the "Carry out Action Message" for the line selected +![Message Step7](./message_step7.png) +![Purchase Order Step7](./purchase_order_step7.png) + +**RESULT:** +When filtering with the Action Message field and specifically the "Cancel" line, the other line was also carried out to generate the New Purchase Order. + +**EXPECTED BEHAVIOR:** +Only the selected line will carry out and the open Purchase Order is not cancelled. It is expected that exactly one New Purchase Order is generated and that the Cancel planning line would remain in the Planning Worksheet Line. +FURTHER CLARIFICATION FROM THE PARTNER (KUMAVISION) +When filtering by Vendor Number or Item Number, as examples, the Carry Out Action Messages works without any issue and as expected. Only the filtered to line is "carried out" when the Carry Out Action Message is processed.  +The perceived problem by the Customer is that this different behavior only occurs when filtering by the Action Message, where the Action Message Filter is not "honored" +As shown below, both lines were "carried out" and the Planning Worksheet is cleared. +![Planning Worksheets Results](./planning_worksheets_results.png) + +**Expected Results:** The correct lines should appear when filtering by the action message. Currently, all lines are processed when the "accept action message" is enabled. + +## Description: +Partner is reporting an issue on behalf of their client. The issue is with the Planning Worksheet - Carry Out Action Message when filters are applied to the Planning Worksheet Lines. + +If the client filters to Planning Worksheet Lines by filter to Action Message of 'Cancel', the Carry Out Action Message will process planning lines not selected/shown with the filter. For example. an Action Message of 'New" will be carried out for the Item along with the Cancel line, + +However, if the client filters by an Item No. or Vendor No, for example, the filter is respected. Only the lines "filtered to" will be "carried out". diff --git a/dataset/problemstatement/microsoftInternal__NAV-209835__cf-1/calculate_plan_step4.png b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-1/calculate_plan_step4.png new file mode 100644 index 000000000..a87526af7 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-1/calculate_plan_step4.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209835__cf-1/message_step7.png b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-1/message_step7.png new file mode 100644 index 000000000..dcb6e0143 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-1/message_step7.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209835__cf-1/planning_worksheets_results.png b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-1/planning_worksheets_results.png new file mode 100644 index 000000000..958afd108 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-1/planning_worksheets_results.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209835__cf-1/planning_worksheets_step5.png b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-1/planning_worksheets_step5.png new file mode 100644 index 000000000..350c62331 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-1/planning_worksheets_step5.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209835__cf-1/planning_worksheets_step6.png b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-1/planning_worksheets_step6.png new file mode 100644 index 000000000..cfe0dd6dc Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-1/planning_worksheets_step6.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209835__cf-1/purchase_order_step2.png b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-1/purchase_order_step2.png new file mode 100644 index 000000000..843f0c755 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-1/purchase_order_step2.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209835__cf-1/purchase_order_step7.png b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-1/purchase_order_step7.png new file mode 100644 index 000000000..dcb6e0143 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-1/purchase_order_step7.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209835__cf-1/sales_order2_step3.png b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-1/sales_order2_step3.png new file mode 100644 index 000000000..0c7d2c06b Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-1/sales_order2_step3.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209835__cf-1/sales_order_step3.png b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-1/sales_order_step3.png new file mode 100644 index 000000000..e3c19ee4b Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-1/sales_order_step3.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209835__cf-2/Item_card_step1.png b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-2/Item_card_step1.png new file mode 100644 index 000000000..06649b28e Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-2/Item_card_step1.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209835__cf-2/README.md b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-2/README.md new file mode 100644 index 000000000..f57f0706f --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-2/README.md @@ -0,0 +1,42 @@ +# Title: When a Filter is set in the Planning Worksheet to a specific Action Message (e.g. Cancel) and Carry Out Action Message is completed, additional Planning lines are carried out that were not presented. +## Repro Steps: +1- Create a new item with the reordering policy set to "Order". +![Item Card Step1](./Item_card_step1.png) +2- Create a purchase order for the item with the date set to January 1st, but do not post it. +![Purchase Order Step2](./purchase_order_step2.png) +3- Create a sales order for the same item, ensuring the shipment date is set out to a future Date +![Sales Order Step3](./sales_order_step3.png) +![Sales Order2 Step3](./sales_order2_step3.png) +| Type | No. | Item Reference No. | Description | Location Code | Quantity | Qty. to Assemble to Order | Reserved Quantity | Unit of Measure Code | Unit Price Excl. VAT | Line Discount % | Line Amount Excl. VAT | Service Commitments | Customer Contract No. | Vendor Contract No. | Qty. to Ship | Quantity Shipped | Qty. to Invoice | Quantity Invoiced | Qty. to Assign | Item Charge Qty. to Handle | Qty. Assigned | Planned Delivery Date | Planned Shipment Date | Shipment Date | Abteilung Code | Debitorengruppe Code | +| ---- | ---- | ------------------ | ----------- | ------------- | -------- | ------------------------- | ----------------- | -------------------- | -------------------- | --------------- | --------------------- | ------------------- | --------------------- | ------------------- | ------------ | ---------------- | --------------- | ----------------- | -------------- | -------------------------- | ------------- | --------------------- | --------------------- | ------------- | -------------- | -------------------- | +| Item | 1006 | | Test12 | | 4 | | | STÜCK | 10,00 | | 40,00 | 0 | | | 4 | | 4 | | 0 | 0 | 0 | 10.01.2025 | 10.01.2025 | 10.01.2025 | | MITTEL | + +4- Go to the planning worksheet and calculate the regenerative plan. +![Calculate Plan Step4](./calculate_plan_step4.png) +5- Add the vendor number and the vendor for the item, ensuring the two lines are selected correctly. +![Planning Worksheets Step5](./planning_worksheets_step5.png) +6- Filter using the "Action message" field to the Cancel Planning Line  +![Planning Worksheets Step6](./planning_worksheets_step6.png) +7- Click the "Carry out Action Message" for the line selected +![Message Step7](./message_step7.png) +![Purchase Order Step7](./purchase_order_step7.png) + +**RESULT:** +When filtering with the Action Message field and specifically the "Cancel" line, the other line was also carried out to generate the New Purchase Order. + +**EXPECTED BEHAVIOR:** +Only the selected line will carry out and the open Purchase Order is cancelled. It is expected that the New Purchase Order is not generated and that the line would remain in the Planning Worksheet Line. +FURTHER CLARIFICATION FROM THE PARTNER (KUMAVISION) +When filtering by Vendor Number or Item Number, as examples, the Carry Out Action Messages works without any issue and as expected. Only the filtered to line is "carried out" when the Carry Out Action Message is processed.  +The perceived problem by the Customer is that filters applied before invoking Carry Out Action Message are not respected during execution +As shown below, both lines were "carried out" and the Planning Worksheet is cleared. +![Planning Worksheets Results](./planning_worksheets_results.png) + +**Expected Results:** Filters applied on the Requisition Line before execution must be preserved and respected during Carry Out Action Message processing. + +## Description: +Partner is reporting an issue on behalf of their client. The issue is with the Planning Worksheet - Carry Out Action Message when filters are applied to the Planning Worksheet Lines. + +If the client filters to Planning Worksheet Lines by filter to Action Message of 'Cancel', the Carry Out Action Message will process planning lines not selected/shown with the filter. For example. an Action Message of 'New" will be carried out for the Item along with the Cancel line, + +However, if the client filters by an Item No. or Vendor No, for example, the filter is respected. Only the lines "filtered to" will be "carried out". diff --git a/dataset/problemstatement/microsoftInternal__NAV-209835__cf-2/calculate_plan_step4.png b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-2/calculate_plan_step4.png new file mode 100644 index 000000000..a87526af7 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-2/calculate_plan_step4.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209835__cf-2/message_step7.png b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-2/message_step7.png new file mode 100644 index 000000000..dcb6e0143 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-2/message_step7.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209835__cf-2/planning_worksheets_results.png b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-2/planning_worksheets_results.png new file mode 100644 index 000000000..958afd108 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-2/planning_worksheets_results.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209835__cf-2/planning_worksheets_step5.png b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-2/planning_worksheets_step5.png new file mode 100644 index 000000000..350c62331 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-2/planning_worksheets_step5.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209835__cf-2/planning_worksheets_step6.png b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-2/planning_worksheets_step6.png new file mode 100644 index 000000000..cfe0dd6dc Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-2/planning_worksheets_step6.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209835__cf-2/purchase_order_step2.png b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-2/purchase_order_step2.png new file mode 100644 index 000000000..843f0c755 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-2/purchase_order_step2.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209835__cf-2/purchase_order_step7.png b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-2/purchase_order_step7.png new file mode 100644 index 000000000..dcb6e0143 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-2/purchase_order_step7.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209835__cf-2/sales_order2_step3.png b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-2/sales_order2_step3.png new file mode 100644 index 000000000..0c7d2c06b Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-2/sales_order2_step3.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-209835__cf-2/sales_order_step3.png b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-2/sales_order_step3.png new file mode 100644 index 000000000..e3c19ee4b Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-209835__cf-2/sales_order_step3.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-210200__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-210200__cf-1/README.md new file mode 100644 index 000000000..efc2d3091 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-210200__cf-1/README.md @@ -0,0 +1,25 @@ +# Title: Using Get Std. Service Codes. on a Sales Order to pull in an Item that has Reserve = Always into the Service Line, there is no Reservation. +## Repro Steps: +1. **Item Card** +![Item Card Step1](./item_card_step1.png) +2. Create Positive Adjustment Item Journal and for BLUE Location for this item for 5 qty and post it. +3. Create Service Item for Customer 30000. +![Service Item Card Step3](./service_item_card_step3.png) +4- Create standard service code for the item: +![Standard Service Code Card Step4](./standard_service_code_card_step4.png) +5- Create service order for BLUE Location, and fill in the fields as following.  Then click on Functions > Get Std. Service Codes then select the ones that you created:  +![Service Card Step5](./service_card_step5.png) +![Standard Serv Item Step5](./standard_serv_item_step5.png) +6- Open the service lines and **filter by ALL** so that you can see the Code you pulled in: +![Service Order Step6](./service_order_step6.png) +![Service Line Step6](./service_line_step6.png) + +**The actual result:** +The item was added with the correct quantity, but 'Reserved Quantity' = blank (You will need to add this field via Personalization): +![Result](./result.png) + +**The expected result:** +The 'Reserve Quantity' = 5  +​If you were to type 2 over in the quantity field, it will then Auto Reserve. + +## Description: diff --git a/dataset/problemstatement/microsoftInternal__NAV-210200__cf-1/item_card_step1.png b/dataset/problemstatement/microsoftInternal__NAV-210200__cf-1/item_card_step1.png new file mode 100644 index 000000000..2ea9a07b7 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-210200__cf-1/item_card_step1.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-210200__cf-1/result.png b/dataset/problemstatement/microsoftInternal__NAV-210200__cf-1/result.png new file mode 100644 index 000000000..a08fbbd91 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-210200__cf-1/result.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-210200__cf-1/service_card_step5.png b/dataset/problemstatement/microsoftInternal__NAV-210200__cf-1/service_card_step5.png new file mode 100644 index 000000000..18071cd80 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-210200__cf-1/service_card_step5.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-210200__cf-1/service_item_card_step3.png b/dataset/problemstatement/microsoftInternal__NAV-210200__cf-1/service_item_card_step3.png new file mode 100644 index 000000000..2d7482280 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-210200__cf-1/service_item_card_step3.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-210200__cf-1/service_line_step6.png b/dataset/problemstatement/microsoftInternal__NAV-210200__cf-1/service_line_step6.png new file mode 100644 index 000000000..d5fbdfd86 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-210200__cf-1/service_line_step6.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-210200__cf-1/service_order_step6.png b/dataset/problemstatement/microsoftInternal__NAV-210200__cf-1/service_order_step6.png new file mode 100644 index 000000000..d750ab8d2 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-210200__cf-1/service_order_step6.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-210200__cf-1/standard_serv_item_step5.png b/dataset/problemstatement/microsoftInternal__NAV-210200__cf-1/standard_serv_item_step5.png new file mode 100644 index 000000000..0b3f580c5 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-210200__cf-1/standard_serv_item_step5.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-210200__cf-1/standard_service_code_card_step4.png b/dataset/problemstatement/microsoftInternal__NAV-210200__cf-1/standard_service_code_card_step4.png new file mode 100644 index 000000000..2459d7612 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-210200__cf-1/standard_service_code_card_step4.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-210200__cf-2/README.md b/dataset/problemstatement/microsoftInternal__NAV-210200__cf-2/README.md new file mode 100644 index 000000000..cc3009b8f --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-210200__cf-2/README.md @@ -0,0 +1,25 @@ +# Title: Using Get Std. Service Codes. on a Sales Order to pull in an Item that has Reserve = Always into the Service Line, there is no Reservation. +## Repro Steps: +1. **Item Card** +![Item Card Step1](./item_card_step1.png) +2. Create Positive Adjustment Item Journal and for BLUE Location for this item for 2 qty and post it. +3. Create Service Item for Customer 30000. +![Service Item Card Step3](./service_item_card_step3.png) +4- Create standard service code with two items, where only one item has Reserve = Always: +![Standard Service Code Card Step4](./standard_service_code_card_step4.png) +5- Create service order for BLUE Location, and fill in the fields as following.  Then click on Functions > Get Std. Service Codes then select the ones that you created:  +![Service Card Step5](./service_card_step5.png) +![Standard Serv Item Step5](./standard_serv_item_step5.png) +6- Open the service lines and **filter by ALL** so that you can see the Code you pulled in: +![Service Order Step6](./service_order_step6.png) +![Service Line Step6](./service_line_step6.png) + +**The actual result:** +The item was added with the correct quantity, but 'Reserved Quantity' = blank (You will need to add this field via Personalization): +![Result](./result.png) + +**The expected result:** +The service line for the item with Reserve = Always must show 'Reserve Quantity' = 2, while the other line must not be auto-reserved.  +​If you were to type 2 over in the quantity field, it will then Auto Reserve. + +## Description: diff --git a/dataset/problemstatement/microsoftInternal__NAV-210200__cf-2/item_card_step1.png b/dataset/problemstatement/microsoftInternal__NAV-210200__cf-2/item_card_step1.png new file mode 100644 index 000000000..2ea9a07b7 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-210200__cf-2/item_card_step1.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-210200__cf-2/result.png b/dataset/problemstatement/microsoftInternal__NAV-210200__cf-2/result.png new file mode 100644 index 000000000..a08fbbd91 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-210200__cf-2/result.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-210200__cf-2/service_card_step5.png b/dataset/problemstatement/microsoftInternal__NAV-210200__cf-2/service_card_step5.png new file mode 100644 index 000000000..18071cd80 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-210200__cf-2/service_card_step5.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-210200__cf-2/service_item_card_step3.png b/dataset/problemstatement/microsoftInternal__NAV-210200__cf-2/service_item_card_step3.png new file mode 100644 index 000000000..2d7482280 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-210200__cf-2/service_item_card_step3.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-210200__cf-2/service_line_step6.png b/dataset/problemstatement/microsoftInternal__NAV-210200__cf-2/service_line_step6.png new file mode 100644 index 000000000..d5fbdfd86 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-210200__cf-2/service_line_step6.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-210200__cf-2/service_order_step6.png b/dataset/problemstatement/microsoftInternal__NAV-210200__cf-2/service_order_step6.png new file mode 100644 index 000000000..d750ab8d2 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-210200__cf-2/service_order_step6.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-210200__cf-2/standard_serv_item_step5.png b/dataset/problemstatement/microsoftInternal__NAV-210200__cf-2/standard_serv_item_step5.png new file mode 100644 index 000000000..0b3f580c5 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-210200__cf-2/standard_serv_item_step5.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-210200__cf-2/standard_service_code_card_step4.png b/dataset/problemstatement/microsoftInternal__NAV-210200__cf-2/standard_service_code_card_step4.png new file mode 100644 index 000000000..2459d7612 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-210200__cf-2/standard_service_code_card_step4.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-210528__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-210528__cf-1/README.md new file mode 100644 index 000000000..9f5faf12f --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-210528__cf-1/README.md @@ -0,0 +1,22 @@ +# Title: Sustainability Value Chain Tracking — Partial Emission Enablement +## Repro Steps: +1. Open the **Sustainability Setup** page +2. Keep all fields in the **Procurement** FastTab disabled +3. Enable the **'Enable Value Chain Tracking'** field + +===RESULT=== +Only the 'Enable Value Chain Tracking' field has been enabled + +===EXPECTED RESULT=== +Enabling this field should also enable the following fields if they are not previously enabled: +* Use Emissions in Purchase Documents +* Item Emissions +* Resource Emissions + +## Description: +This is small improvement. You cannot use Value Chain tracking enabled if you didn't previously enable the following options: +* Use Emissions in Purchase Documents +* Item Emissions +* Resource Emissions + +So, just enable them when you enable the **Enable Value Chain Tracking** field if these fields are not previously already enabled. diff --git a/dataset/problemstatement/microsoftInternal__NAV-211521__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-211521__cf-1/README.md new file mode 100644 index 000000000..a9a3fae3d --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-211521__cf-1/README.md @@ -0,0 +1,23 @@ +# Title: Next Task Date has a fixed System Task Type filter in Contact card +## Repro Steps: +1. Go to Contacts -> Related -> Tasks -> Tasks. + ![Contacts Card](./contacts_card.png) +2. Create Task - Phone Call and click Ok. + ![Create Task](./create_task.png) +3. Go back to the contact card - Next Task Date is empty. + ![Contact Card Step3](./contact_card_step3.png) +4. Drill on the empty value _ It's filtering with fixed System Task Type. + ![Task List](./task_list.png) +5. If you remove it or change it to Organizer - Task will appear. + ![Task Appear](./task_appear.png) + +**Expected Results:** +Next task Date should read the date value correctly. +No System Task Type filter should be applied. + +**Actual Results.** +Fixed filter for System Task Type is applied. +No Next Task Date populates on the Contact Card. + +## Description: +Next Task Date has a fixed System Task Type filter. diff --git a/dataset/problemstatement/microsoftInternal__NAV-211521__cf-1/contact_card_step3.png b/dataset/problemstatement/microsoftInternal__NAV-211521__cf-1/contact_card_step3.png new file mode 100644 index 000000000..545737dd5 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-211521__cf-1/contact_card_step3.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-211521__cf-1/contacts_card.png b/dataset/problemstatement/microsoftInternal__NAV-211521__cf-1/contacts_card.png new file mode 100644 index 000000000..2d7096920 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-211521__cf-1/contacts_card.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-211521__cf-1/create_task.png b/dataset/problemstatement/microsoftInternal__NAV-211521__cf-1/create_task.png new file mode 100644 index 000000000..8a369ddd2 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-211521__cf-1/create_task.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-211521__cf-1/task_appear.png b/dataset/problemstatement/microsoftInternal__NAV-211521__cf-1/task_appear.png new file mode 100644 index 000000000..a0c377b59 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-211521__cf-1/task_appear.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-211521__cf-1/task_list.png b/dataset/problemstatement/microsoftInternal__NAV-211521__cf-1/task_list.png new file mode 100644 index 000000000..f8f4f57f0 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-211521__cf-1/task_list.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-211521__cf-2/README.md b/dataset/problemstatement/microsoftInternal__NAV-211521__cf-2/README.md new file mode 100644 index 000000000..aa495bdf7 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-211521__cf-2/README.md @@ -0,0 +1,23 @@ +# Title: Next Task Date has a fixed System Task Type filter in Contact card +## Repro Steps: +1. Go to Contacts -> Related -> Tasks -> Tasks. + ![Contacts Card](./contacts_card.png) +2. Create Task - Phone Call and click Ok. + ![Create Task](./create_task.png) +3. Go back to the contact card - Next Task Date is empty. + ![Contact Card Step3](./contact_card_step3.png) +4. Drill on the empty value _ It's filtering with fixed System Task Type. + ![Task List](./task_list.png) +5. If you remove it or change it to Organizer - Task will appear. + ![Task Appear](./task_appear.png) + +**Expected Results:** +Next task Date should read the date value correctly. +Next task Date drilldown should not enforce any filtering logic. + +**Actual Results.** +Fixed filter for System Task Type is applied. +No Next Task Date populates on the Contact Card. + +## Description: +Next Task Date has a fixed System Task Type filter. diff --git a/dataset/problemstatement/microsoftInternal__NAV-211521__cf-2/contact_card_step3.png b/dataset/problemstatement/microsoftInternal__NAV-211521__cf-2/contact_card_step3.png new file mode 100644 index 000000000..545737dd5 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-211521__cf-2/contact_card_step3.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-211521__cf-2/contacts_card.png b/dataset/problemstatement/microsoftInternal__NAV-211521__cf-2/contacts_card.png new file mode 100644 index 000000000..2d7096920 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-211521__cf-2/contacts_card.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-211521__cf-2/create_task.png b/dataset/problemstatement/microsoftInternal__NAV-211521__cf-2/create_task.png new file mode 100644 index 000000000..8a369ddd2 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-211521__cf-2/create_task.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-211521__cf-2/task_appear.png b/dataset/problemstatement/microsoftInternal__NAV-211521__cf-2/task_appear.png new file mode 100644 index 000000000..a0c377b59 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-211521__cf-2/task_appear.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-211521__cf-2/task_list.png b/dataset/problemstatement/microsoftInternal__NAV-211521__cf-2/task_list.png new file mode 100644 index 000000000..f8f4f57f0 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-211521__cf-2/task_list.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-212355__cf-2/101005test_result.png b/dataset/problemstatement/microsoftInternal__NAV-212355__cf-2/101005test_result.png new file mode 100644 index 000000000..58d4b4309 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-212355__cf-2/101005test_result.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-212355__cf-2/Production_BOMs_step3.png b/dataset/problemstatement/microsoftInternal__NAV-212355__cf-2/Production_BOMs_step3.png new file mode 100644 index 000000000..2c800f472 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-212355__cf-2/Production_BOMs_step3.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-212355__cf-2/README.md b/dataset/problemstatement/microsoftInternal__NAV-212355__cf-2/README.md new file mode 100644 index 000000000..56718871b --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-212355__cf-2/README.md @@ -0,0 +1,70 @@ +# Title: Input quantity and related production time is not recalculated in a released production order when using the function "Replan" +## Repro Steps: +1. Open BC 25.4 W1 on prem +2. Go to "Routing", create a new routing + Type = serial + Work Center: 100 + Setup Time: 10  + Run Time: 10 + Status: Certified + ![Routing Step2](./routing_step2.png) +3. Go to Production BOMs and create a new one. + Unit of Measure Code: PCS + Item: 70000 + Quantity per: 10 + Status: Certified + ![Production BOMs Step3](./Production_BOMs_step3.png) +4. Go to Items Create a new item (70062) + Use Template: ITEM + Replenishment System = Prod. Order + Manufacturing Policy = Make-to-Stock + Routing = R00010 (Created in step 2) + Production BOM No. = P00010 (Created in step 3) + Reordering policy = Empty + Reserve = Optional + Order Tracking policy = None +5. Go to "Released Production order" - Create a new one + Source type = item + Source No. = Created item in step 4 (70061) + Quantity = 50 + Due date = 28/1/2027 + ->Refresh Production Order + Note that the "starting date-time" on the line is "26/01/2027" while the "ending date-time" is "27/01/2027" + ![Released Production Order Step5](./Released_Production_order_step5.png) +6. Open the Production journal + Line  Production Journal + Post an output of 20 + And a consumption of 200 + Setup Time: 10 + Run Time: 10 + ![Production Journal Step6](./production_journal_step6.png) + Post +7. Go back to the "Released Production Order", note that you now have 20 finished quantities. + ![Released Production Order Step7](./Released_Production_Order_step7.png) +8. Without using the replan function, the input quantity is expected to remain the same and the "Starting date-time" should also be same. + Check the input quantity, for the "Routing" Line -> Routing + Add the field Input Quantity with the Design functionality: + ![Prod Order Routing Step8](./prod_order_routing_step8.png) + Back in the production Order - > Replan the production order + Home -> Replan + ![Replan Production Order Step8](./replan_production_order_step8.png) + + ACTUAL RESULT: + Nothin happened + + EXPECTED RESULT: + The Starting Time should be recalculated based on the Remaining Quantity when replanning is run backward + ![101005test Result](./101005test_result.png) + And the Input Quantity should be reduced to the Remaining Quantity: + ![Description](./description.png) + + According to the documentation [https://learn.microsoft.com/en-us/dynamics365/business-central/production-how-to-replan-refresh-production-orders](https://learn.microsoft.com/en-us/dynamics365/business-central/production-how-to-replan-refresh-production-orders), looking through, it states that when you select "Plan" as "No Level", it should only update the item schedule, this includes the starting date-time and ending date-time. + ![Result in Additional Information](./result_in_Additional_information.png) + With the present design, if a new routing line or component line is added, it will keep the original quantity instead of taking the remaining quantity. + + ADDITIONAL INFORMATION + I tested in BC 16.5 there the results are as expected: + ![Expected](./expected.png) + +## Description: +Input quantity and related production time is not recalculated in a released production order when using the function "Replan". In Version BC16.5 did it work as expected. diff --git a/dataset/problemstatement/microsoftInternal__NAV-212355__cf-2/Released_Production_Order_step7.png b/dataset/problemstatement/microsoftInternal__NAV-212355__cf-2/Released_Production_Order_step7.png new file mode 100644 index 000000000..235803dab Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-212355__cf-2/Released_Production_Order_step7.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-212355__cf-2/Released_Production_order_step5.png b/dataset/problemstatement/microsoftInternal__NAV-212355__cf-2/Released_Production_order_step5.png new file mode 100644 index 000000000..dd1915464 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-212355__cf-2/Released_Production_order_step5.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-212355__cf-2/description.png b/dataset/problemstatement/microsoftInternal__NAV-212355__cf-2/description.png new file mode 100644 index 000000000..9e44bbf3e Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-212355__cf-2/description.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-212355__cf-2/expected.png b/dataset/problemstatement/microsoftInternal__NAV-212355__cf-2/expected.png new file mode 100644 index 000000000..301ce5b99 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-212355__cf-2/expected.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-212355__cf-2/prod_order_routing_result.png b/dataset/problemstatement/microsoftInternal__NAV-212355__cf-2/prod_order_routing_result.png new file mode 100644 index 000000000..17c2fabb2 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-212355__cf-2/prod_order_routing_result.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-212355__cf-2/prod_order_routing_step8.png b/dataset/problemstatement/microsoftInternal__NAV-212355__cf-2/prod_order_routing_step8.png new file mode 100644 index 000000000..28484da41 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-212355__cf-2/prod_order_routing_step8.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-212355__cf-2/production_journal_step6.png b/dataset/problemstatement/microsoftInternal__NAV-212355__cf-2/production_journal_step6.png new file mode 100644 index 000000000..e16098e79 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-212355__cf-2/production_journal_step6.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-212355__cf-2/replan_production_order_step8.png b/dataset/problemstatement/microsoftInternal__NAV-212355__cf-2/replan_production_order_step8.png new file mode 100644 index 000000000..5fde2a347 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-212355__cf-2/replan_production_order_step8.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-212355__cf-2/result_in_Additional_information.png b/dataset/problemstatement/microsoftInternal__NAV-212355__cf-2/result_in_Additional_information.png new file mode 100644 index 000000000..301ce5b99 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-212355__cf-2/result_in_Additional_information.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-212355__cf-2/routing_step2.png b/dataset/problemstatement/microsoftInternal__NAV-212355__cf-2/routing_step2.png new file mode 100644 index 000000000..f39554a1f Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-212355__cf-2/routing_step2.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-213629__cf-2/README.md b/dataset/problemstatement/microsoftInternal__NAV-213629__cf-2/README.md new file mode 100644 index 000000000..caacd2c44 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-213629__cf-2/README.md @@ -0,0 +1,30 @@ +# Title: Copy project: System-Created Entry must be equal to 'No' in Project Planning Line +## Repro Steps: +Create a Project1 for any customer (10000) +Make sure that Apply Usage Link is Enabled (posting tab) +Add new Task1 (Code = 1). No planning lines. + +Navigate to project journal and add new line: +Type = Both Budget and Billable. Project1/ Task1 - created earlier. Some document number. Some item with quantity. +Post. + +Return to project1, task one. Navigate to project planning lines. +Now there is line. If you use page inspector you can see that System Created Entry = Yes. + +Create project2 for same customer. +Choose the "Copy Project Task from" action and select Project1. Remember to activate Copy Quantity toggle in the Apply fasttab. +Select copied Task1 and choose Project Planning Lines. +Select planning line with item and choose "Create Project Journal Line" action. Choose Ok. + +Result - Error message: +System-Created Entry must be equal to 'No' in Project Planning Line: Project No.=PR00050, Project Task No.=1, Line No.=10000. Current value is 'Yes'. +AL call stack: +"Job Journal Line"(Table 210)."Job Planning Line No. - OnValidate"(Trigger) line 14 - Base Application by Microsoft +"Job Journal Line"(Table 210)."Quantity - OnValidate"(Trigger) line 18 - Base Application by Microsoft +"Job Journal Line"(Table 210)."Unit of Measure Code - OnValidate"(Trigger) line 47 - Base Application by Microsoft +"Job Transfer Line"(CodeUnit 1004).FromPlanningLineToJnlLine line 60 - Base Application by Microsoft +"Job Planning Lines"(Page 1007)."CreateJobJournalLines - OnAction"(Trigger) line 14 - Base Application by Microsoft + +Expected - remove "system-Created Entry" mark only when Copy Quantity is enabled. + +## Description: diff --git a/dataset/problemstatement/microsoftInternal__NAV-213671__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-213671__cf-1/README.md new file mode 100644 index 000000000..b35e55fc0 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-213671__cf-1/README.md @@ -0,0 +1,65 @@ +# Title: Filter text should be truncated to avoid exceeding maximum allowed length when working with Opportunities +## Repro Steps: +**Tenant ID: d4375267-18fa-45eb-a481-878b4f897d2a - Sandbox_Test Version 26.0** +Microsoft Entra tenant ID: d4375267-18fa-45eb-a481-878b4f897d2a, Environment: Sandbox_Test (Sandbox) +Session ID (client): b731c145-19f9-4ad0-aba5-58053fdb3e99 +Session ID (server): 447 +User telemetry ID: 3c8d2e73-c2c0-4f0a-8aef-83c9e9df63ee + +Error message:  +The length of the string is 38, but it must be less than or equal to 20 characters. Value: BC|EH|HR|JO|LT|MM|JJ|KK|OO|PP|YY|QQ|LL + +Page Opportunities has to close. + +Internal session ID:  +47b85a60-e6ec-48cb-8bb0-7469b1274532 + +Application Insights session ID:  +b731c145-19f9-4ad0-aba5-58053fdb3e99 + +Client activity id:  +f90a9860-431b-4a77-9566-62a87f3aead4 + +Time stamp on error:  +2025-04-16T13:48:58.3512353Z + +User telemetry id:  +3c8d2e73-c2c0-4f0a-8aef-83c9e9df63ee + +AL call stack:  +"Opportunity List"(Page 5123).BuildCaption line 10 - Base Application by Microsoft +"Opportunity List"(Page 5123).BuildCaptionSalespersonPurchaser line 4 - Base Application by Microsoft +"Opportunity List"(Page 5123).Caption line 4 - Base Application by Microsoft + +------------------------------------------------------------------------------------------------------------------------------------------- + +**Tenant ID: ac21b43d-8217-4402-8e7c-700330744b0e - DataTesting Version 25.5** +1. Session ID is 576511 – user LHOLOWESKO in tenant ac21b43d-8217-4402-8e7c-700330744b0e +2. If requesting support, please provide the following details to help troubleshooting: + + Error message:  + The length of the string is 52, but it must be less than or equal to 20 characters. Value: HORNING-K|CHAMBERS-T|CRIST-B|MARKERT-T-JR|HARRISON-W + + Page Opportunities has to close. + + Internal session ID:  + 8f3ae419-1db5-45e1-b370-4e12549c02b4 + + Application Insights session ID:  + 37cbd2ee-da46-49fa-81d0-0760fc18f051 + + Client activity id:  + 720c9ff9-ab2d-4751-9a2a-cd10972e7373 + + Time stamp on error:  + 2025-04-15T21:37:42.6273887Z + + User telemetry id:  + df278d23-329c-424d-abf4-97462cc30e8d + + AL call stack:  + "Opportunity List"(Page 5123).BuildCaption line 10 - Base Application by Microsoft + "Opportunity List"(Page 5123).BuildCaptionSalespersonPurchaser line 4 - Base Application by Microsoft + "Opportunity List"(Page 5123).Caption line 4 - Base Application by Microsoft + +## Description: diff --git a/dataset/problemstatement/microsoftInternal__NAV-213671__cf-2/README.md b/dataset/problemstatement/microsoftInternal__NAV-213671__cf-2/README.md new file mode 100644 index 000000000..2b0bc9707 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-213671__cf-2/README.md @@ -0,0 +1,64 @@ +# Title: The length of the string is XX but it must be less than or equal to 20 characters when working with Opportunities +## Repro Steps: +**Tenant ID: d4375267-18fa-45eb-a481-878b4f897d2a - Sandbox_Test Version 26.0** +Microsoft Entra tenant ID: d4375267-18fa-45eb-a481-878b4f897d2a, Environment: Sandbox_Test (Sandbox) +Session ID (client): b731c145-19f9-4ad0-aba5-58053fdb3e99 +Session ID (server): 447 +User telemetry ID: 3c8d2e73-c2c0-4f0a-8aef-83c9e9df63ee + +Error message:  +The length of the string is 18, but it must be less than or equal to 20 characters. Value: BC|EH|HR|JO|LT +Page Opportunities has to close. + +Internal session ID:  +47b85a60-e6ec-48cb-8bb0-7469b1274532 + +Application Insights session ID:  +b731c145-19f9-4ad0-aba5-58053fdb3e99 + +Client activity id:  +f90a9860-431b-4a77-9566-62a87f3aead4 + +Time stamp on error:  +2025-04-16T13:48:58.3512353Z + +User telemetry id:  +3c8d2e73-c2c0-4f0a-8aef-83c9e9df63ee + +AL call stack:  +"Opportunity List"(Page 5123).BuildCaption line 10 - Base Application by Microsoft +"Opportunity List"(Page 5123).BuildCaptionSalespersonPurchaser line 4 - Base Application by Microsoft +"Opportunity List"(Page 5123).Caption line 4 - Base Application by Microsoft + +------------------------------------------------------------------------------------------------------------------------------------------- + +**Tenant ID: ac21b43d-8217-4402-8e7c-700330744b0e - DataTesting Version 25.5** +1. Session ID is 576511 – user LHOLOWESKO in tenant ac21b43d-8217-4402-8e7c-700330744b0e +2. If requesting support, please provide the following details to help troubleshooting: + + Error message:  + The length of the string is 52, but it must be less than or equal to 20 characters. Value: HORNING-K|CHAMBERS-T|CRIST-B|MARKERT-T-JR|HARRISON-W + + Page Opportunities has to close. + + Internal session ID:  + 8f3ae419-1db5-45e1-b370-4e12549c02b4 + + Application Insights session ID:  + 37cbd2ee-da46-49fa-81d0-0760fc18f051 + + Client activity id:  + 720c9ff9-ab2d-4751-9a2a-cd10972e7373 + + Time stamp on error:  + 2025-04-15T21:37:42.6273887Z + + User telemetry id:  + df278d23-329c-424d-abf4-97462cc30e8d + + AL call stack:  + "Opportunity List"(Page 5123).BuildCaption line 10 - Base Application by Microsoft + "Opportunity List"(Page 5123).BuildCaptionSalespersonPurchaser line 4 - Base Application by Microsoft + "Opportunity List"(Page 5123).Caption line 4 - Base Application by Microsoft + +## Description: diff --git a/dataset/problemstatement/microsoftInternal__NAV-213683__cf-1/1005_table_step2.png b/dataset/problemstatement/microsoftInternal__NAV-213683__cf-1/1005_table_step2.png new file mode 100644 index 000000000..f8b4c514d Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-213683__cf-1/1005_table_step2.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-213683__cf-1/1233_radio.png b/dataset/problemstatement/microsoftInternal__NAV-213683__cf-1/1233_radio.png new file mode 100644 index 000000000..cad5a8c0d Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-213683__cf-1/1233_radio.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-213683__cf-1/9632_radio.png b/dataset/problemstatement/microsoftInternal__NAV-213683__cf-1/9632_radio.png new file mode 100644 index 000000000..ab14d647c Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-213683__cf-1/9632_radio.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-213683__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-213683__cf-1/README.md new file mode 100644 index 000000000..7dda3a91a --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-213683__cf-1/README.md @@ -0,0 +1,31 @@ +# Title: Rename Item No. should always be allowed regardless of existing Value Entries with Variant Codes +## Repro Steps: +In Version 26 - An error occurs when Attempting to Renumber an Item No. when the Item has Variant Codes and Item Ledger Entries and Value Entries posted for the Item and Variant Codes. +1.Create a new item - Item: Table - No: 1005 +![Item Card Step1](./item_card_step1.png) +2.In the Item created add a variant=Related=item=related +![Item Card Step2](./item_card_step2.png) +Variant=GREY AND ASH +![1005 Table Step2](./1005_table_step2.png) +3.Go to item journal to get some quantities for the Item created include the variant and post each. +![Item Journals Step3](./item_journals_step3.png) +![Item Journals2 Step3](./item_journals2_step3.png) +![Message Step3](./message_step3.png) +4.Create a sale invoice for the Item TABLE without the variant and post +![Sales Invoice Step4](./sales_invoice_step4.png) +![Message Step4](./message_step4.png) +5.Create a sales invoice with Item "TABLE" include the variant and post +![Sales Invoice Step5](./sales_invoice_step5.png) +![Message Step5](./message_step5.png) +6.Make an attempt to change the item No" you receive the error message stating: You cannot rename Item No. in a Item Variant, because it is used in Value Entry. +![Error step6](./error_step6.png) +I attempted to perform more tests, and in previous versions like 25.5, I could change the Item No. without any errors. +Could this be a new change or possibly a bug? +Before +![9632 Radio](./9632_radio.png) +After +![1233 Radio](./1233_radio.png) + +## Description: +Issue: An Error Occurs When Attempting to Change Item No. After Posting and Generating Item Ledger Entries and Value Entries in Version 26.0 with Items and Variant Codes involved. +The issue did not occur in Version 25.X Version or earlier. Was this a Design Change or is the an issue in the new version. If it is By Design, is there a reason for the change? diff --git a/dataset/problemstatement/microsoftInternal__NAV-213683__cf-1/error_step6.png b/dataset/problemstatement/microsoftInternal__NAV-213683__cf-1/error_step6.png new file mode 100644 index 000000000..49e0553d7 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-213683__cf-1/error_step6.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-213683__cf-1/item_card_step1.png b/dataset/problemstatement/microsoftInternal__NAV-213683__cf-1/item_card_step1.png new file mode 100644 index 000000000..44c79963e Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-213683__cf-1/item_card_step1.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-213683__cf-1/item_card_step2.png b/dataset/problemstatement/microsoftInternal__NAV-213683__cf-1/item_card_step2.png new file mode 100644 index 000000000..ef4ca7234 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-213683__cf-1/item_card_step2.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-213683__cf-1/item_journals2_step3.png b/dataset/problemstatement/microsoftInternal__NAV-213683__cf-1/item_journals2_step3.png new file mode 100644 index 000000000..3ce0a444b Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-213683__cf-1/item_journals2_step3.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-213683__cf-1/item_journals_step3.png b/dataset/problemstatement/microsoftInternal__NAV-213683__cf-1/item_journals_step3.png new file mode 100644 index 000000000..ae8c7747d Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-213683__cf-1/item_journals_step3.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-213683__cf-1/message_step3.png b/dataset/problemstatement/microsoftInternal__NAV-213683__cf-1/message_step3.png new file mode 100644 index 000000000..549bc3f2a Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-213683__cf-1/message_step3.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-213683__cf-1/message_step4.png b/dataset/problemstatement/microsoftInternal__NAV-213683__cf-1/message_step4.png new file mode 100644 index 000000000..54a207f44 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-213683__cf-1/message_step4.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-213683__cf-1/message_step5.png b/dataset/problemstatement/microsoftInternal__NAV-213683__cf-1/message_step5.png new file mode 100644 index 000000000..54a207f44 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-213683__cf-1/message_step5.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-213683__cf-1/sales_invoice_step4.png b/dataset/problemstatement/microsoftInternal__NAV-213683__cf-1/sales_invoice_step4.png new file mode 100644 index 000000000..562616472 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-213683__cf-1/sales_invoice_step4.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-213683__cf-1/sales_invoice_step5.png b/dataset/problemstatement/microsoftInternal__NAV-213683__cf-1/sales_invoice_step5.png new file mode 100644 index 000000000..e31381051 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-213683__cf-1/sales_invoice_step5.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-214557__cf-1/BOM_structure_step3.png b/dataset/problemstatement/microsoftInternal__NAV-214557__cf-1/BOM_structure_step3.png new file mode 100644 index 000000000..637d359ad Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-214557__cf-1/BOM_structure_step3.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-214557__cf-1/Production_BOMs_step2.png b/dataset/problemstatement/microsoftInternal__NAV-214557__cf-1/Production_BOMs_step2.png new file mode 100644 index 000000000..bdbc83c37 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-214557__cf-1/Production_BOMs_step2.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-214557__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-214557__cf-1/README.md new file mode 100644 index 000000000..407245777 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-214557__cf-1/README.md @@ -0,0 +1,40 @@ +# Title: For an item that is consumed in multiple subassemblies, running planning worksheet suggests to change Quantity from 2 to 1, but then also create a new Prod. Order for 1, which is unnecessary noise and lines on the Planning Worksheet. +## Repro Steps: +1. Search for items + Create four items: Item1, Item 2A, Item 2B and Item 3 with + Replenishment: Prod Order + Manufacturing Policy: Make to Order + Reordering Policy: Lot for Lot Manufacturing Policy: Make to Order +2. Search for Production BOMs + Create 2 BOMs + Test Level 1 + Item 2A and Item 2B and assign to item1 + ![Production BOMs Step2](./Production_BOMs_step2.png) + And + Test Level 2 + Item 3 and assing to Item 2A and 2B + ![Test Level 2 Step2](./test_level_2_step2.png) +3. Final BOM Structure should look like this: + At Item 1 -> Item -> Structure + ![BOM Structure Step3](./BOM_structure_step3.png) +4. Search for Released Prod. Order + Create a new order + Item1 + Quantity: 1 + Refresh Production Order + ![Refresh Production Order Step4](./Refresh_Production_Order_step4.png) + You see that for Item 3 is a quantity of 2 since it is used in Item 2A and 2B +5. Search for Planning Worksheet + Prepare -> Calculate Regenerative Plan + Plan for Item 3 (lowest level) + ![Calculate Plan Step5](./calculate_plan_step5.png) + +ACTUAL RESULT: +Planning suggest to create a new Order with quantity 1 +And to change existing order line from 2 to 1 +![Actual Result](./actual_result.png) + +EXPECTED RESULT: +planning should ignore 1003 when the production order already covers the required quantity and a calculation is not needed.​ + +## Description: diff --git a/dataset/problemstatement/microsoftInternal__NAV-214557__cf-1/Refresh_Production_Order_step4.png b/dataset/problemstatement/microsoftInternal__NAV-214557__cf-1/Refresh_Production_Order_step4.png new file mode 100644 index 000000000..5e5fa7831 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-214557__cf-1/Refresh_Production_Order_step4.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-214557__cf-1/actual_result.png b/dataset/problemstatement/microsoftInternal__NAV-214557__cf-1/actual_result.png new file mode 100644 index 000000000..e08f67e60 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-214557__cf-1/actual_result.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-214557__cf-1/calculate_plan_step5.png b/dataset/problemstatement/microsoftInternal__NAV-214557__cf-1/calculate_plan_step5.png new file mode 100644 index 000000000..511fdf2f6 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-214557__cf-1/calculate_plan_step5.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-214557__cf-1/test_level_2_step2.png b/dataset/problemstatement/microsoftInternal__NAV-214557__cf-1/test_level_2_step2.png new file mode 100644 index 000000000..12f7e3018 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-214557__cf-1/test_level_2_step2.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-214557__cf-2/BOM_structure_step3.png b/dataset/problemstatement/microsoftInternal__NAV-214557__cf-2/BOM_structure_step3.png new file mode 100644 index 000000000..637d359ad Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-214557__cf-2/BOM_structure_step3.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-214557__cf-2/Production_BOMs_step2.png b/dataset/problemstatement/microsoftInternal__NAV-214557__cf-2/Production_BOMs_step2.png new file mode 100644 index 000000000..bdbc83c37 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-214557__cf-2/Production_BOMs_step2.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-214557__cf-2/README.md b/dataset/problemstatement/microsoftInternal__NAV-214557__cf-2/README.md new file mode 100644 index 000000000..53da00c01 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-214557__cf-2/README.md @@ -0,0 +1,40 @@ +# Title: For an item that is consumed in multiple subassemblies, running planning worksheet suggests to change Quantity from 2 to 1, but then also create a new Prod. Order for 1, which is unnecessary noise and lines on the Planning Worksheet. +## Repro Steps: +1. Search for items + Create four items: Item1, Item 2A, Item 2B and Item 3 with + Replenishment: Prod Order + Manufacturing Policy: Make to Order + Reordering Policy: Lot for Lot Manufacturing Policy: Make to Order +2. Search for Production BOMs + Create 2 BOMs + Test Level 1 + Item 2A and Item 2B and assign to item1 + ![Production BOMs Step2](./Production_BOMs_step2.png) + And + Test Level 2 + Item 3 and assing to Item 2A and 2B + ![Test Level 2 Step2](./test_level_2_step2.png) +3. Final BOM Structure should look like this: + At Item 1 -> Item -> Structure + ![BOM Structure Step3](./BOM_structure_step3.png) +4. Search for Released Prod. Order + Create a new order + Item1 + Quantity: 1 + Refresh Production Order + ![Refresh Production Order Step4](./Refresh_Production_Order_step4.png) + You see that for Item 3 is a quantity of 2 since it is used in Item 2A and 2B +5. Search for Planning Worksheet + Prepare -> Calculate Regenerative Plan + Plan for Item 3 (lowest level) + ![Calculate Plan Step5](./calculate_plan_step5.png) + +ACTUAL RESULT: +Planning suggest to create a new Order with quantity 1 +And to change existing order line from 2 to 1 +![Actual Result](./actual_result.png) + +EXPECTED RESULT: +planning should ignore 1003 only when the required quantity comes from exactly one component demand line and no calculation is needed.​ + +## Description: diff --git a/dataset/problemstatement/microsoftInternal__NAV-214557__cf-2/Refresh_Production_Order_step4.png b/dataset/problemstatement/microsoftInternal__NAV-214557__cf-2/Refresh_Production_Order_step4.png new file mode 100644 index 000000000..5e5fa7831 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-214557__cf-2/Refresh_Production_Order_step4.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-214557__cf-2/actual_result.png b/dataset/problemstatement/microsoftInternal__NAV-214557__cf-2/actual_result.png new file mode 100644 index 000000000..e08f67e60 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-214557__cf-2/actual_result.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-214557__cf-2/calculate_plan_step5.png b/dataset/problemstatement/microsoftInternal__NAV-214557__cf-2/calculate_plan_step5.png new file mode 100644 index 000000000..511fdf2f6 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-214557__cf-2/calculate_plan_step5.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-214557__cf-2/test_level_2_step2.png b/dataset/problemstatement/microsoftInternal__NAV-214557__cf-2/test_level_2_step2.png new file mode 100644 index 000000000..12f7e3018 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-214557__cf-2/test_level_2_step2.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-214825__cf-1/PR00040_100_installation.png b/dataset/problemstatement/microsoftInternal__NAV-214825__cf-1/PR00040_100_installation.png new file mode 100644 index 000000000..1cfdd29e2 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-214825__cf-1/PR00040_100_installation.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-214825__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-214825__cf-1/README.md new file mode 100644 index 000000000..eb5795670 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-214825__cf-1/README.md @@ -0,0 +1,39 @@ +# Title: Create Purchase Order from Project not working as expected if we add Project Planning Lines before the previous ones. +## Repro Steps: +1-Take a BC26 environment. +2-Create a new Project +3-Add a Project Task Line +4-Navigate to the Project Planning Lines. +We will use 2 Items that do not have Inventory: 1896-S and 1920-S +![Select Items Step4](./select_items_step4.png) +Create a Project Planning Line for the first Item 1896-S with 10 units. +5- Click on Create Purchase Order (Actions, Functions, Create Purchase Order) and check that it shows the Unavailable 10 units as expected: +![Create Purchase Orders](./create_purchase_orders.png) +Check the "Demand Line No" = 15. +Close the window without creating anything. +6- Back to the Project Planning Lines enter two new lines BEFORE the other one with NEW. +Use Item 1920-S and a third new item, 10 units each: +(Check the message on top that both items are unavailable...) +![PR00040 100 Installation](./PR00040_100_installation.png) +7- Click on Actions, Functions, Create Purchase Order again... +Unexpectedly... it shows a message saying that all is available...???? +![Create Purchase Orders Step7](./create_purchase_orders_step7.png) +Check the "Demand Line No." = 16..15 +1. Remove this line and try again. It works. +2. Add the same line as previously, but AFTER the existent one. +Click on Create Purchase Order. Then it works. Check "Demand Line No." = 15..17 +![Create Purchase Orders Step9](./create_purchase_orders_step9.png) +1. Add a new line without Inventory again BEFORE the other 2 existent lines... same issue, and check "Demand Line No."...  18..17 +![Create Purchase Orders Step10](./create_purchase_orders_step10.png) +All available when it is not true... + +ACTUAL RESULTS +Create Purchase Order from Project not working as expected if we add Project Planning Lines before the previous ones. +It seems to be with the "Demand Line No." filter?? + +EXPECTED RESULTS +The information should be accurate, and still show that those Items are unavailable even after repeated insert-before operations, so we can create the Purchase Orders accordingly. +Maybe take always the lower line no and build the filter with that before?? 15.. X?? + +## Description: +Create Purchase Order from Project not working as expected if we add Project Planning Lines before the previous ones. diff --git a/dataset/problemstatement/microsoftInternal__NAV-214825__cf-1/create_purchase_orders.png b/dataset/problemstatement/microsoftInternal__NAV-214825__cf-1/create_purchase_orders.png new file mode 100644 index 000000000..05e834812 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-214825__cf-1/create_purchase_orders.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-214825__cf-1/create_purchase_orders_step10.png b/dataset/problemstatement/microsoftInternal__NAV-214825__cf-1/create_purchase_orders_step10.png new file mode 100644 index 000000000..55414539b Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-214825__cf-1/create_purchase_orders_step10.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-214825__cf-1/create_purchase_orders_step7.png b/dataset/problemstatement/microsoftInternal__NAV-214825__cf-1/create_purchase_orders_step7.png new file mode 100644 index 000000000..a767e056d Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-214825__cf-1/create_purchase_orders_step7.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-214825__cf-1/create_purchase_orders_step9.png b/dataset/problemstatement/microsoftInternal__NAV-214825__cf-1/create_purchase_orders_step9.png new file mode 100644 index 000000000..30418008e Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-214825__cf-1/create_purchase_orders_step9.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-214825__cf-1/select_items_step4.png b/dataset/problemstatement/microsoftInternal__NAV-214825__cf-1/select_items_step4.png new file mode 100644 index 000000000..c18825bbb Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-214825__cf-1/select_items_step4.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-214825__cf-2/PR00040_100_installation.png b/dataset/problemstatement/microsoftInternal__NAV-214825__cf-2/PR00040_100_installation.png new file mode 100644 index 000000000..1cfdd29e2 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-214825__cf-2/PR00040_100_installation.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-214825__cf-2/README.md b/dataset/problemstatement/microsoftInternal__NAV-214825__cf-2/README.md new file mode 100644 index 000000000..d32c438bc --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-214825__cf-2/README.md @@ -0,0 +1,39 @@ +# Title: Create Purchase Order from Project not working as expected if we add Project Planning Lines before the previous ones. +## Repro Steps: +1-Take a BC26 environment. +2-Create a new Project +3-Add a Project Task Line +4-Navigate to the Project Planning Lines. +We will use 2 Items that do not have Inventory: 1896-S and 1920-S +![Select Items Step4](./select_items_step4.png) +Create a Project Planning Line for the first Item 1896-S with 10 units. +5- Click on Create Purchase Order (Actions, Functions, Create Purchase Order) and check that it shows the Unavailable 10 units as expected: +![Create Purchase Orders](./create_purchase_orders.png) +Check the "Demand Line No" = 15. +Close the window without creating anything. +6- Back to the Project Planning Lines enter a new line BEFORE the other one with NEW. +Use Item 1920-S and another 10 units: +(Check the message on top that both items are unavailable...) +![PR00040 100 Installation](./PR00040_100_installation.png) +7- Click on Actions, Functions, Create Purchase Order again after reopening the Project Planning Lines page... +Unexpectedly... it shows a message saying that all is available...???? +![Create Purchase Orders Step7](./create_purchase_orders_step7.png) +Check the "Demand Line No." = 16..15 +1. Remove this line and try again. It works. +2. Add the same line as previously, but AFTER the existent one. +Click on Create Purchase Order. Then it works. Check "Demand Line No." = 15..17 +![Create Purchase Orders Step9](./create_purchase_orders_step9.png) +1. Add a new line without Inventory again BEFORE the other 2 existent lines... same issue, and check "Demand Line No."...  18..17 +![Create Purchase Orders Step10](./create_purchase_orders_step10.png) +All available when it is not true... + +ACTUAL RESULTS +Create Purchase Order from Project not working as expected if we add Project Planning Lines before the previous ones. +It seems to be with the "Demand Line No." filter?? + +EXPECTED RESULTS +The information should be accurate, and still show those Items as unavailable on a repeated execution after reopening the page. +Maybe take always the lower line no and build the filter with that before?? 15.. X?? + +## Description: +Create Purchase Order from Project not working as expected if we add Project Planning Lines before the previous ones. diff --git a/dataset/problemstatement/microsoftInternal__NAV-214825__cf-2/create_purchase_orders.png b/dataset/problemstatement/microsoftInternal__NAV-214825__cf-2/create_purchase_orders.png new file mode 100644 index 000000000..05e834812 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-214825__cf-2/create_purchase_orders.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-214825__cf-2/create_purchase_orders_step10.png b/dataset/problemstatement/microsoftInternal__NAV-214825__cf-2/create_purchase_orders_step10.png new file mode 100644 index 000000000..55414539b Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-214825__cf-2/create_purchase_orders_step10.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-214825__cf-2/create_purchase_orders_step7.png b/dataset/problemstatement/microsoftInternal__NAV-214825__cf-2/create_purchase_orders_step7.png new file mode 100644 index 000000000..a767e056d Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-214825__cf-2/create_purchase_orders_step7.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-214825__cf-2/create_purchase_orders_step9.png b/dataset/problemstatement/microsoftInternal__NAV-214825__cf-2/create_purchase_orders_step9.png new file mode 100644 index 000000000..30418008e Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-214825__cf-2/create_purchase_orders_step9.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-214825__cf-2/select_items_step4.png b/dataset/problemstatement/microsoftInternal__NAV-214825__cf-2/select_items_step4.png new file mode 100644 index 000000000..c18825bbb Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-214825__cf-2/select_items_step4.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-214926__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-214926__cf-1/README.md new file mode 100644 index 000000000..a712211b1 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-214926__cf-1/README.md @@ -0,0 +1,15 @@ +# Title: Customer Card Statistics Total tripled — remove SalesOutstandingAmountFromShipment from formula +## Repro Steps: +1. Create a new Customer +2. Create inventory for an item (10 PCS) +3. Create a Sales Order for 10 PCS at a known unit price +4. Post the Sales Order with Ship only (no invoice) +5. Create a new Sales Invoice, use Get Shipment Lines, and Release it +6. Open the Customer Card and check the FactBox statistics + +Result: Total ($) shows the amount tripled because Shipped Not Invoiced, Outstanding Invoices, and SalesOutstandingAmountFromShipment all include the same shipment amount. + +Expected: Total ($) should equal the Sales Line "Amount Including VAT". The fix removes SalesOutstandingAmountFromShipment from the formula entirely and only deducts shipment-derived invoice amounts from Outstanding Invoices. + +## Description: +Variant of NAV-214926 (L2: record-selection-change). Alternative fix strategy: instead of keeping SalesOutstandingAmountFromShipment in the formula and subtracting two deduction terms (requiring a new query object), this variant removes SalesOutstandingAmountFromShipment entirely and only subtracts ShippedOutstandingInvoicesLCY from Outstanding Invoices. Simpler fix — no new query file needed, only one new procedure. diff --git a/dataset/problemstatement/microsoftInternal__NAV-215972__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-215972__cf-1/README.md new file mode 100644 index 000000000..95014c6ca --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-215972__cf-1/README.md @@ -0,0 +1,17 @@ +# Title: Reservation of an Item possible with in a Transfer order if the item is set to reserve=never +## Repro Steps: +1- Create an item with reserve = Never: +![Item Card Step1](./item_card_step1.png) +2- Add amount of 100 to location GELB: +![Adjust Inventory Step2](./adjust_inventory_step2.png) +3- Create a transfer order: +![Transfer Order Step3](./transfer_order_step3.png) +4- In the lines fasttab, click reserve and reserve the amount outbound: +![Reservsation Step4](./reservsation_step4.png) +The system will allow the reservation of the amount. +I tested the scenario for a sales order and got the below error message: +![Error Message Step4](./error_message_step4.png) + +Expected behavior: The system should show the same error message in the transfer order when the transfer quantity is greater than 0. + +## Description: diff --git a/dataset/problemstatement/microsoftInternal__NAV-215972__cf-1/adjust_inventory_step2.png b/dataset/problemstatement/microsoftInternal__NAV-215972__cf-1/adjust_inventory_step2.png new file mode 100644 index 000000000..617ef81be Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-215972__cf-1/adjust_inventory_step2.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-215972__cf-1/error_message_step4.png b/dataset/problemstatement/microsoftInternal__NAV-215972__cf-1/error_message_step4.png new file mode 100644 index 000000000..27ffe95fb Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-215972__cf-1/error_message_step4.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-215972__cf-1/item_card_step1.png b/dataset/problemstatement/microsoftInternal__NAV-215972__cf-1/item_card_step1.png new file mode 100644 index 000000000..90f204ede Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-215972__cf-1/item_card_step1.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-215972__cf-1/reservsation_step4.png b/dataset/problemstatement/microsoftInternal__NAV-215972__cf-1/reservsation_step4.png new file mode 100644 index 000000000..abcf0b3ed Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-215972__cf-1/reservsation_step4.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-215972__cf-1/transfer_order_step3.png b/dataset/problemstatement/microsoftInternal__NAV-215972__cf-1/transfer_order_step3.png new file mode 100644 index 000000000..724c5d0fa Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-215972__cf-1/transfer_order_step3.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-215972__cf-2/README.md b/dataset/problemstatement/microsoftInternal__NAV-215972__cf-2/README.md new file mode 100644 index 000000000..2a2c5c8b4 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-215972__cf-2/README.md @@ -0,0 +1,17 @@ +# Title: Reservation of an Item possible with in a Transfer order if the item is set to reserve=never +## Repro Steps: +1- Create an item with reserve = Never: +![Item Card Step1](./item_card_step1.png) +2- Add amount of 100 to location GELB: +![Adjust Inventory Step2](./adjust_inventory_step2.png) +3- Create a transfer order: +![Transfer Order Step3](./transfer_order_step3.png) +4- In the lines fasttab, click reserve and reserve the amount outbound: +![Reservsation Step4](./reservsation_step4.png) +The system will allow the reservation of the amount. +I tested the scenario for a sales order and got the below error message: +![Error Message Step4](./error_message_step4.png) + +Expected behavior: The system should show the same error message in the transfer order only for outbound quantities (Qty. to Ship > 0). + +## Description: diff --git a/dataset/problemstatement/microsoftInternal__NAV-215972__cf-2/adjust_inventory_step2.png b/dataset/problemstatement/microsoftInternal__NAV-215972__cf-2/adjust_inventory_step2.png new file mode 100644 index 000000000..617ef81be Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-215972__cf-2/adjust_inventory_step2.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-215972__cf-2/error_message_step4.png b/dataset/problemstatement/microsoftInternal__NAV-215972__cf-2/error_message_step4.png new file mode 100644 index 000000000..27ffe95fb Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-215972__cf-2/error_message_step4.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-215972__cf-2/item_card_step1.png b/dataset/problemstatement/microsoftInternal__NAV-215972__cf-2/item_card_step1.png new file mode 100644 index 000000000..90f204ede Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-215972__cf-2/item_card_step1.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-215972__cf-2/reservsation_step4.png b/dataset/problemstatement/microsoftInternal__NAV-215972__cf-2/reservsation_step4.png new file mode 100644 index 000000000..abcf0b3ed Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-215972__cf-2/reservsation_step4.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-215972__cf-2/transfer_order_step3.png b/dataset/problemstatement/microsoftInternal__NAV-215972__cf-2/transfer_order_step3.png new file mode 100644 index 000000000..724c5d0fa Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-215972__cf-2/transfer_order_step3.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-216572__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-216572__cf-1/README.md new file mode 100644 index 000000000..a9aa616a7 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-216572__cf-1/README.md @@ -0,0 +1,24 @@ +# Title: In Recurring General Journals Import from Allocation Accounts does not import dimensions +## Repro Steps: +Repro steps in US version to use Allocation Accounts in Recurring General Journals: +Create an allocation account, assign dimensions on each line. +![Allocation Account Test](./allocation_account_test.png) +Each line has its dimension, with Customer destination type: +![Alloc Account Distribution Test 10000](./alloc_account_distribution_test_10000.png) +In Recurring General Journals, create a journal line. Navigate to Home/Process > Allocations. +![Recurring General Journals](./Recurring_General_Journals.png) +Choose "Import from Allocation Account" +![Import From Allocation Account](./import_from_allocation_account.png) +Choose the Allocation Account you chose earlier: +![Allocation Accounts](./allocation_accounts.png) +Both lines from AA come. Open the dimensions for each line: +![Allocation Dimensions](./allocation_dimensions.png) +Dimensions come empty: +![Recurring Default 10000](./recurring_default_10000.png) + +Expected Result: +The lines should have the same dimesion as setup on the Allocation Account only for G/L Account destination lines. + +## Description: +In Recurring General Journals Import from Allocation Accounts does not import dimensions. +When you use the Allocation Account on a General Journal line, the dimensions are added correctly. diff --git a/dataset/problemstatement/microsoftInternal__NAV-216572__cf-1/Recurring_General_Journals.png b/dataset/problemstatement/microsoftInternal__NAV-216572__cf-1/Recurring_General_Journals.png new file mode 100644 index 000000000..e349f97b2 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-216572__cf-1/Recurring_General_Journals.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-216572__cf-1/alloc_account_distribution_test_10000.png b/dataset/problemstatement/microsoftInternal__NAV-216572__cf-1/alloc_account_distribution_test_10000.png new file mode 100644 index 000000000..9835ef04e Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-216572__cf-1/alloc_account_distribution_test_10000.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-216572__cf-1/allocation_account_test.png b/dataset/problemstatement/microsoftInternal__NAV-216572__cf-1/allocation_account_test.png new file mode 100644 index 000000000..8dda16e5c Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-216572__cf-1/allocation_account_test.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-216572__cf-1/allocation_accounts.png b/dataset/problemstatement/microsoftInternal__NAV-216572__cf-1/allocation_accounts.png new file mode 100644 index 000000000..2c028a5b6 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-216572__cf-1/allocation_accounts.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-216572__cf-1/allocation_dimensions.png b/dataset/problemstatement/microsoftInternal__NAV-216572__cf-1/allocation_dimensions.png new file mode 100644 index 000000000..309fab897 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-216572__cf-1/allocation_dimensions.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-216572__cf-1/import_from_allocation_account.png b/dataset/problemstatement/microsoftInternal__NAV-216572__cf-1/import_from_allocation_account.png new file mode 100644 index 000000000..c7485ccca Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-216572__cf-1/import_from_allocation_account.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-216572__cf-1/recurring_default_10000.png b/dataset/problemstatement/microsoftInternal__NAV-216572__cf-1/recurring_default_10000.png new file mode 100644 index 000000000..a4a97a9b6 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-216572__cf-1/recurring_default_10000.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-216918__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-216918__cf-1/README.md new file mode 100644 index 000000000..d53706371 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-216918__cf-1/README.md @@ -0,0 +1,17 @@ +# Title: Incorrect Non-Deductible VAT amount in project ledger entry if project has a foreign currency +## Repro Steps: + +## Description: +Got it from Yammer: +Hope you are well. We have a new issue with non-deductable VAT in connection with project module that you should probably get fixed rather soon. + +The column VAT amount in eg. a general journal line is always connected to the source currency of the line, but when BC is adding the "VAT Amount" to the Project Ledger Entry in the posting process, it's being added without taking into consideration currency code of the project. What if the project posted to is running in different currency? + +I can tell you it sadly goes completely wrong, and I'm setting here with a year-end situation at a customer where I now have to manually correct 100s of Project Ledger Entries. + +I'm fixing it myself for this client, but would be nice if you can take a look at this. + +For a test. + +Make a project in EUR currency. Then make a gen. journal line with a document in LCY (eg. DKK) currency with non-deductable VAT setup and notice how it goes wrong when posting preview, that it just adds the "DKK" VAT amount to the project ledger entry unit cost (EUR). +If the project has no currency code defined, the non-deductible VAT amount should not be added to the project ledger entry. diff --git a/dataset/problemstatement/microsoftInternal__NAV-216918__cf-2/README.md b/dataset/problemstatement/microsoftInternal__NAV-216918__cf-2/README.md new file mode 100644 index 000000000..7c57b5f69 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-216918__cf-2/README.md @@ -0,0 +1,17 @@ +# Title: Incorrect Non-Deductible VAT amount in project ledger entry if project has a foreign currency +## Repro Steps: + +## Description: +Got it from Yammer: +Hope you are well. We have a new issue with non-deductable VAT in connection with project module that you should probably get fixed rather soon. + +The column VAT amount in eg. a general journal line is always connected to the source currency of the line, but when BC is adding the "VAT Amount" to the Project Ledger Entry in the posting process, it's being added without taking into consideration currency code of the project. What if the project posted to is running in different currency? + +I can tell you it sadly goes completely wrong, and I'm setting here with a year-end situation at a customer where I now have to manually correct 100s of Project Ledger Entries. + +I'm fixing it myself for this client, but would be nice if you can take a look at this. + +For a test. + +Make a project in EUR currency. Then make a gen. journal line with a document in LCY (eg. DKK) currency with non-deductable VAT setup and notice how it goes wrong when posting preview, that it just adds the "DKK" VAT amount to the project ledger entry unit cost (EUR). +If the job quantity is zero, the non-deductible VAT amount must not be applied to the project ledger entry. diff --git a/dataset/problemstatement/microsoftInternal__NAV-217104__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-217104__cf-1/README.md new file mode 100644 index 000000000..687084694 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-217104__cf-1/README.md @@ -0,0 +1,49 @@ +# Title: Rounding issue leading to "Inconsistency" error when trying to post with different currency and automatic accounting in Swedish localisation +## Repro Steps: +Issue was reproduced in Swedish localization version 26.0 + +To reproduce the issue, follow the steps below: +1. Go to currencies page + Search "Euro" + Starting date = 4/10/2025 + Exch. Rate Amt and Adj. Exch. Rate Amt = 1.0 + Relational Exch. Rate Amt and Relational Adj. Exch. Rate Amt = 10.97223 + Fix Exch. Rate Amt. = Currency + ![Currencies Page Step1](./currencies_page_step1.png) + +2. Go to "Automatic Account Groups" page + Create a new one + No. and Name = Test01 + Line 1: Allocation % = 50, G/L Account No. = 1110, Avdelning Kod = ADM, Kundgrupp Kod = Medium + + Line 2: Allocation % = 50, G/L Account No. = 1115, Avdelning Kod = PROD, Kundgrupp Kod = Medium + + Line 3: Allocation % = -100, G/L Account No. = 1116 (You must have a total balance = 0) + ![Automatic Account Groups Step2](./automatic_account_groups_step2.png) + +3. Go to General Journals + Line 1: Posting & VAT date = 4/10/2025, Doc. No. = G00001, Acc. Type = G/L Account, Acc. No. = 1215, Currency = EUR, Amount = 480, Automatic Account Group = Test01 + + Line 2: Posting & VAT date = 4/10/2025, Doc. No. = G00001, Acc. Type = G/L Account, Acc. No. = 1216, Currency = EUR, Amount = -480 (To balance the account). + ![General Journals Step3](./general_journals_step3.png) + Preview posting. + + **Note + **The Amount (LCY) = 5266.67 + Due to the setting that the allocation is 50% for each line in the automatic account groups, the system will try to divide the Amount by 2, which will result in 2633.335, the system rounds up correctly to 2633.34, but the summation of this results (2633.34) will give a different amount LCY (5266.68) compared to the original amount which the EUR currency is converted to. + + Preview posting is allowed. + ![Preview Step3](./preview_step3.png) + Try to post the document now, an error is generated that "The transaction cannot be completed because it will cause inconsistencies in the G/L Entry table........" + ![Error Step3](./error_step3.png) + +**Actual result:** Posting cannot be done due to inconsistencies in the rounding. + +**Expected Result:** The system should always correct LCY rounding differences on the last allocation line. + +**More Information:** If the operation above is carried out without foreign currency and the amount = 5266.67, the system allows posting with the same inconsistent value. +![General Journals](./general_journals.png) +![Entries Preview](./entries_preview.png) + +## Description: +Rounding issue leading to "Inconsistency" error when trying to post with different currency and automatic accounting in Swedish localisation diff --git a/dataset/problemstatement/microsoftInternal__NAV-217104__cf-1/automatic_account_groups_step2.png b/dataset/problemstatement/microsoftInternal__NAV-217104__cf-1/automatic_account_groups_step2.png new file mode 100644 index 000000000..5a3fe1641 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-217104__cf-1/automatic_account_groups_step2.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-217104__cf-1/currencies_page_step1.png b/dataset/problemstatement/microsoftInternal__NAV-217104__cf-1/currencies_page_step1.png new file mode 100644 index 000000000..85f9c0838 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-217104__cf-1/currencies_page_step1.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-217104__cf-1/entries_preview.png b/dataset/problemstatement/microsoftInternal__NAV-217104__cf-1/entries_preview.png new file mode 100644 index 000000000..6fecf9786 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-217104__cf-1/entries_preview.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-217104__cf-1/error_step3.png b/dataset/problemstatement/microsoftInternal__NAV-217104__cf-1/error_step3.png new file mode 100644 index 000000000..1999eda0c Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-217104__cf-1/error_step3.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-217104__cf-1/general_journals.png b/dataset/problemstatement/microsoftInternal__NAV-217104__cf-1/general_journals.png new file mode 100644 index 000000000..940f19ab9 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-217104__cf-1/general_journals.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-217104__cf-1/general_journals_step3.png b/dataset/problemstatement/microsoftInternal__NAV-217104__cf-1/general_journals_step3.png new file mode 100644 index 000000000..e2505edfa Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-217104__cf-1/general_journals_step3.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-217104__cf-1/preview_step3.png b/dataset/problemstatement/microsoftInternal__NAV-217104__cf-1/preview_step3.png new file mode 100644 index 000000000..f92b82ec0 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-217104__cf-1/preview_step3.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-217104__cf-2/README.md b/dataset/problemstatement/microsoftInternal__NAV-217104__cf-2/README.md new file mode 100644 index 000000000..997b4fbd2 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-217104__cf-2/README.md @@ -0,0 +1,49 @@ +# Title: Rounding issue leading to "Inconsistency" error when trying to post with different currency and automatic accounting in Swedish localisation +## Repro Steps: +Issue was reproduced in Swedish localization version 26.0 + +To reproduce the issue, follow the steps below: +1. Go to currencies page + Search "Euro" + Starting date = 4/10/2025 + Exch. Rate Amt and Adj. Exch. Rate Amt = 1.0 + Relational Exch. Rate Amt and Relational Adj. Exch. Rate Amt = 10.97223 + Fix Exch. Rate Amt. = Currency + ![Currencies Page Step1](./currencies_page_step1.png) + +2. Go to "Automatic Account Groups" page + Create a new one + No. and Name = Test01 + Line 1: Allocation % = 50, G/L Account No. = 1110, Avdelning Kod = ADM, Kundgrupp Kod = Medium + + Line 2: Allocation % = 50, G/L Account No. = 1115, Avdelning Kod = PROD, Kundgrupp Kod = Medium + + Line 3: Allocation % = -100, G/L Account No. = 1116 (You must have a total balance = 0) + ![Automatic Account Groups Step2](./automatic_account_groups_step2.png) + +3. Go to General Journals + Line 1: Posting & VAT date = 4/10/2025, Doc. No. = G00001, Acc. Type = G/L Account, Acc. No. = 1215, Currency = EUR, Amount = 480, Automatic Account Group = Test01 + + Line 2: Posting & VAT date = 4/10/2025, Doc. No. = G00001, Acc. Type = G/L Account, Acc. No. = 1216, Currency = EUR, Amount = -480 (To balance the account). + ![General Journals Step3](./general_journals_step3.png) + Preview posting. + + **Note + **The Amount (LCY) = 5266.67 + Due to the setting that the allocation is 50% for each line in the automatic account groups, the system will try to divide the Amount by 2, which will result in 2633.335, the system rounds up correctly to 2633.34, but the summation of this results (2633.34) will give a different amount LCY (5266.68) compared to the original amount which the EUR currency is converted to. + + Preview posting is allowed. + ![Preview Step3](./preview_step3.png) + Try to post the document now, an error is generated that "The transaction cannot be completed because it will cause inconsistencies in the G/L Entry table........" + ![Error Step3](./error_step3.png) + +**Actual result:** Posting cannot be done due to inconsistencies in the rounding. + +**Expected Result:** The system should correct LCY rounding when source currency imbalance exists. + +**More Information:** If the operation above is carried out without foreign currency and the amount = 5266.67, the system allows posting with the same inconsistent value. +![General Journals](./general_journals.png) +![Entries Preview](./entries_preview.png) + +## Description: +Rounding issue leading to "Inconsistency" error when trying to post with different currency and automatic accounting in Swedish localisation diff --git a/dataset/problemstatement/microsoftInternal__NAV-217104__cf-2/automatic_account_groups_step2.png b/dataset/problemstatement/microsoftInternal__NAV-217104__cf-2/automatic_account_groups_step2.png new file mode 100644 index 000000000..5a3fe1641 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-217104__cf-2/automatic_account_groups_step2.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-217104__cf-2/currencies_page_step1.png b/dataset/problemstatement/microsoftInternal__NAV-217104__cf-2/currencies_page_step1.png new file mode 100644 index 000000000..85f9c0838 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-217104__cf-2/currencies_page_step1.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-217104__cf-2/entries_preview.png b/dataset/problemstatement/microsoftInternal__NAV-217104__cf-2/entries_preview.png new file mode 100644 index 000000000..6fecf9786 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-217104__cf-2/entries_preview.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-217104__cf-2/error_step3.png b/dataset/problemstatement/microsoftInternal__NAV-217104__cf-2/error_step3.png new file mode 100644 index 000000000..1999eda0c Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-217104__cf-2/error_step3.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-217104__cf-2/general_journals.png b/dataset/problemstatement/microsoftInternal__NAV-217104__cf-2/general_journals.png new file mode 100644 index 000000000..940f19ab9 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-217104__cf-2/general_journals.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-217104__cf-2/general_journals_step3.png b/dataset/problemstatement/microsoftInternal__NAV-217104__cf-2/general_journals_step3.png new file mode 100644 index 000000000..e2505edfa Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-217104__cf-2/general_journals_step3.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-217104__cf-2/preview_step3.png b/dataset/problemstatement/microsoftInternal__NAV-217104__cf-2/preview_step3.png new file mode 100644 index 000000000..f92b82ec0 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-217104__cf-2/preview_step3.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-217797__cf-1/Coding_part.png b/dataset/problemstatement/microsoftInternal__NAV-217797__cf-1/Coding_part.png new file mode 100644 index 000000000..1ecd6d1db Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-217797__cf-1/Coding_part.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-217797__cf-1/Planning_Worksheet.png b/dataset/problemstatement/microsoftInternal__NAV-217797__cf-1/Planning_Worksheet.png new file mode 100644 index 000000000..abd70a576 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-217797__cf-1/Planning_Worksheet.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-217797__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-217797__cf-1/README.md new file mode 100644 index 000000000..f8c85fb01 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-217797__cf-1/README.md @@ -0,0 +1,29 @@ +# Title: Lookup Item Availability by Event on Item Card opens the Wrong Planning Worksheet Batch (Last Used) +## Repro Steps: +Lookup Item Availability by Event on Item Card opens the Wrong Planning Worksheet Batch (Last Used) +Issue was reproduced in **Version: GB Business Central 26.0 (Platform 26.0.32850.0 + Application 26.0.30643.33009)** +1.Open the Planning Worksheet +2.For the Default Batch, manually create a new Line for Item 1896 -Athens Desk, Quantity of 10 +![Planning Worksheet](./Planning_Worksheet.png) +3.Then Create a new Batch Called Service and open it, it will be empty +![Create a New Batch Step3](./create_a_new_batch_step3.png) +4.Select the new Batch  +You can close the Planning Worksheet and come back in to ensure that the Last Opened Batch is the Newly Created one (Service) +![Select New Batch Step4](./select_new_batch_step4.png) +5.Search for Items and Open the Item Card for Item 1896 -Athens Desk +6.Then on the Header, Click on Item => Item Availability By => Select Event +7.Enable _Include Planning Suggestion_, and the Planning Entry also shows up here +8.Open the Planning Entry and Click on Show Document. +![Item Availability By Event](./item_availability_by_event.png) + +**ACTUAL RESULT** +The system Opens the Last Opened Batch, that is the Newly Created one (Service) and this is not where the Planning line exists +![Planning Worksheets Service05](./planning_worksheets_service05.png) + +**EXPECTED RESULT** +The system should open the Batch where the Entry of the Planned Item exists; if no worksheet template name is defined, fallback to the last opened batch +**ROOT CAUSE OF THE SOURCE CODE PROVIDED BY PARTNER** + ![Coding Part](./Coding_part.png) + +## Description: +If you have 2 or more planning worksheets with a planned item line the systems does not open the correct planning worksheet batch by show document from the item availabily page. diff --git a/dataset/problemstatement/microsoftInternal__NAV-217797__cf-1/create_a_new_batch_step3.png b/dataset/problemstatement/microsoftInternal__NAV-217797__cf-1/create_a_new_batch_step3.png new file mode 100644 index 000000000..0c5665bf2 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-217797__cf-1/create_a_new_batch_step3.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-217797__cf-1/item_availability_by_event.png b/dataset/problemstatement/microsoftInternal__NAV-217797__cf-1/item_availability_by_event.png new file mode 100644 index 000000000..c11069b97 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-217797__cf-1/item_availability_by_event.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-217797__cf-1/planning_worksheets_service05.png b/dataset/problemstatement/microsoftInternal__NAV-217797__cf-1/planning_worksheets_service05.png new file mode 100644 index 000000000..ef3ccc07e Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-217797__cf-1/planning_worksheets_service05.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-217797__cf-1/select_new_batch_step4.png b/dataset/problemstatement/microsoftInternal__NAV-217797__cf-1/select_new_batch_step4.png new file mode 100644 index 000000000..ed8a96a77 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-217797__cf-1/select_new_batch_step4.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-217974__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-217974__cf-1/README.md new file mode 100644 index 000000000..4c3cc5be5 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-217974__cf-1/README.md @@ -0,0 +1,29 @@ +# Title: Move Negative Lines on the Sales Order copies the customer address to Shipping to address of the Return Order. +## Repro Steps: +1. Create a Sales order for customer 20000. + Take a note of the Shipping address. + ![Sales Order](./Sales_order.png) + ![Ship to Default](./ship_to_default.png) +2. Click On Move Negative Lines. +3. Choose Return Order. + ![Move Negative Sales Lines](./move_negative_sales_lines.png) +4. Open the Return Order. +5. Shipping Address details are for the customer ( Incorrect). + ![Shipping and Billing](./shipping_and_billing.png) + +**Expected Results:** +* Shipping address should be the address of Cronus in the settings only for Return Orders. + ![Company Information](./company_information.png) + +**Investigation:** +addresses are copied wrongly as in the code of CopyDocumentMgt, transferfield is used. + local procedure CopySalesHeaderFromSalesHeader(FromDocType: Enum "Sales Document Type From"; FromSalesHeader: Record "Sales Header"; OldSalesHeader: Record "Sales Header"; var ToSalesHeader: Record "Sales Header") + begin + FromSalesHeader.CalcFields("Work Description"); + ToSalesHeader.TransferFields(FromSalesHeader, false); + UpdateSalesHeaderWhenCopyFromSalesHeader(ToSalesHeader, OldSalesHeader, FromDocType); + SetReceivedFromCountryCode(FromDocType, ToSalesHeader); + OnAfterCopySalesHeader(ToSalesHeader, OldSalesHeader, FromSalesHeader, FromDocType); + end; + +## Description: diff --git a/dataset/problemstatement/microsoftInternal__NAV-217974__cf-1/Sales_order.png b/dataset/problemstatement/microsoftInternal__NAV-217974__cf-1/Sales_order.png new file mode 100644 index 000000000..fc65eb4c9 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-217974__cf-1/Sales_order.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-217974__cf-1/company_information.png b/dataset/problemstatement/microsoftInternal__NAV-217974__cf-1/company_information.png new file mode 100644 index 000000000..f576cca6d Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-217974__cf-1/company_information.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-217974__cf-1/move_negative_sales_lines.png b/dataset/problemstatement/microsoftInternal__NAV-217974__cf-1/move_negative_sales_lines.png new file mode 100644 index 000000000..6e4d7e37f Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-217974__cf-1/move_negative_sales_lines.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-217974__cf-1/ship_to_default.png b/dataset/problemstatement/microsoftInternal__NAV-217974__cf-1/ship_to_default.png new file mode 100644 index 000000000..41b5c016f Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-217974__cf-1/ship_to_default.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-217974__cf-1/shipping_and_billing.png b/dataset/problemstatement/microsoftInternal__NAV-217974__cf-1/shipping_and_billing.png new file mode 100644 index 000000000..59b433879 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-217974__cf-1/shipping_and_billing.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-217974__cf-2/README.md b/dataset/problemstatement/microsoftInternal__NAV-217974__cf-2/README.md new file mode 100644 index 000000000..5653cb830 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-217974__cf-2/README.md @@ -0,0 +1,29 @@ +# Title: Move Negative Lines on the Sales Order copies the customer address to Shipping to address of the Return Order. +## Repro Steps: +1. Create a Sales order for customer 20000. + Take a note of the Shipping address. + ![Sales Order](./Sales_order.png) + ![Ship to Default](./ship_to_default.png) +2. Click On Move Negative Lines. +3. Choose Return Order. + ![Move Negative Sales Lines](./move_negative_sales_lines.png) +4. Open the Return Order. +5. Shipping Address details are for the customer ( Incorrect). + ![Shipping and Billing](./shipping_and_billing.png) + +**Expected Results:** +* Shipping address in the Return Order should be set via event handling to the address of Cronus in the settings. + ![Company Information](./company_information.png) + +**Investigation:** +addresses are copied wrongly as in the code of CopyDocumentMgt, transferfield is used. + local procedure CopySalesHeaderFromSalesHeader(FromDocType: Enum "Sales Document Type From"; FromSalesHeader: Record "Sales Header"; OldSalesHeader: Record "Sales Header"; var ToSalesHeader: Record "Sales Header") + begin + FromSalesHeader.CalcFields("Work Description"); + ToSalesHeader.TransferFields(FromSalesHeader, false); + UpdateSalesHeaderWhenCopyFromSalesHeader(ToSalesHeader, OldSalesHeader, FromDocType); + SetReceivedFromCountryCode(FromDocType, ToSalesHeader); + OnAfterCopySalesHeader(ToSalesHeader, OldSalesHeader, FromSalesHeader, FromDocType); + end; + +## Description: diff --git a/dataset/problemstatement/microsoftInternal__NAV-217974__cf-2/Sales_order.png b/dataset/problemstatement/microsoftInternal__NAV-217974__cf-2/Sales_order.png new file mode 100644 index 000000000..fc65eb4c9 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-217974__cf-2/Sales_order.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-217974__cf-2/company_information.png b/dataset/problemstatement/microsoftInternal__NAV-217974__cf-2/company_information.png new file mode 100644 index 000000000..f576cca6d Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-217974__cf-2/company_information.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-217974__cf-2/move_negative_sales_lines.png b/dataset/problemstatement/microsoftInternal__NAV-217974__cf-2/move_negative_sales_lines.png new file mode 100644 index 000000000..6e4d7e37f Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-217974__cf-2/move_negative_sales_lines.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-217974__cf-2/ship_to_default.png b/dataset/problemstatement/microsoftInternal__NAV-217974__cf-2/ship_to_default.png new file mode 100644 index 000000000..41b5c016f Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-217974__cf-2/ship_to_default.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-217974__cf-2/shipping_and_billing.png b/dataset/problemstatement/microsoftInternal__NAV-217974__cf-2/shipping_and_billing.png new file mode 100644 index 000000000..59b433879 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-217974__cf-2/shipping_and_billing.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-218062__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-218062__cf-1/README.md new file mode 100644 index 000000000..4752a2e54 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-218062__cf-1/README.md @@ -0,0 +1,45 @@ +# Title: Availability error when creating pick from pick worksheet with location setup Bin mandatory and the item reserved on the related production order +## Repro Steps: +1. BC 25.5 W1 +2. Open location SILVER +Add the following setup: +![Silver Silver Warehouse](./silver_silver_warehouse.png) +![Bins](./bins.png) +3. Open Warehouse Employees +Add your User for Location SILVER as default +4. Create 2 Items +Item 70061 Component +Replenishment System: Purchase +Item 70062 Main +Replenishment System: Prod. Order +Manufacturing Policy: Make to Stock +Production BOM No.: P00010 +![General](./general.png) +5. Open Item Journal +make a positive adjustment of 3 PCS for Item 70061 to Location SILVER, Bin S-01-0001  -> Post +6. Create 2 released Production Orders +First: Item: 70062 Quantity: 2, Location: SILVER -> Refresh Production Order +Second: Item: 70062 Quantity: 1, Location: SILVER -> Refresh Production Order +Reserve in both Production Orders the components against the added inventory +Line -> Component +Reserve -> Reserve from current line +7. Open Pick Worksheet +-> Get Warehouse Documents +Select the 2 Production Orders -> ok +![Pick Worksheets](./pick_worksheets.png) +8. Create Pick +![Create Pick](./create_pick.png) + +ACTUAL RESULT: +The following availability error appears: +![Error](./error.png) + +EXPECTED RESULT: +The creation of the Pick should be done based on location-level availability, ignoring bin-level quantities. +If I do the same scenario with a location which has not BIN mandatory the picks are created as expected. +It also works if I do not reserve the component items. + +## Description: +If want to create picks from the pick worksheet the following availability error appears: +You can create a Pick only for the available quantity in Whse. Worksheet Line Worksheet Template Name = PICK,Name = DEFAULT,Location Code = SILVER,Line No. = 20000. +This just happens if you have location with Bin mandatory and reserving the component items in the related production order. diff --git a/dataset/problemstatement/microsoftInternal__NAV-218062__cf-1/bins.png b/dataset/problemstatement/microsoftInternal__NAV-218062__cf-1/bins.png new file mode 100644 index 000000000..b109e8942 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-218062__cf-1/bins.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-218062__cf-1/create_pick.png b/dataset/problemstatement/microsoftInternal__NAV-218062__cf-1/create_pick.png new file mode 100644 index 000000000..22ceba9ab Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-218062__cf-1/create_pick.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-218062__cf-1/error.png b/dataset/problemstatement/microsoftInternal__NAV-218062__cf-1/error.png new file mode 100644 index 000000000..ec4469bbc Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-218062__cf-1/error.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-218062__cf-1/general.png b/dataset/problemstatement/microsoftInternal__NAV-218062__cf-1/general.png new file mode 100644 index 000000000..af310cc2c Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-218062__cf-1/general.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-218062__cf-1/pick_worksheets.png b/dataset/problemstatement/microsoftInternal__NAV-218062__cf-1/pick_worksheets.png new file mode 100644 index 000000000..f307d6122 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-218062__cf-1/pick_worksheets.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-218062__cf-1/silver_silver_warehouse.png b/dataset/problemstatement/microsoftInternal__NAV-218062__cf-1/silver_silver_warehouse.png new file mode 100644 index 000000000..420eb4871 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-218062__cf-1/silver_silver_warehouse.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-218323__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-218323__cf-1/README.md new file mode 100644 index 000000000..6c5461554 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-218323__cf-1/README.md @@ -0,0 +1,19 @@ +# Title: "Journal Template Name must have a value" error message appears if you try to Calculate and Post VAT Settlement and Journal Template Name Mandatory is enabled in the G/L Setup. +## Repro Steps: +1.Go to G/L Setup. +2.Settings -> Design -> Add Journal Template Name Mandatory and enable it. +3.Search for Calculate and Post Vat Settlement. +4.Add any dates for: + a. Ending Date + b. Posting Date. + c. Add Settlement Account. + d. Enable Post. +5.After Preview, an error should occur for Vendor. +6.If you disable the Journal Template Name Mandatory, It works fine. + +We guess a kind of control should be set in this scenario, so this check is not executed only for Customer entries. +If there is anything we are missing, please let us know what. +Thanks! + +## Description: +"Journal Template Name must have a value" error message appears if you try to Calculate and Post VAT Settlement and Journal Template Name Mandatory is enabled in the G/L Setup. diff --git a/dataset/problemstatement/microsoftInternal__NAV-218786__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-218786__cf-1/README.md new file mode 100644 index 000000000..34fac4ac5 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-218786__cf-1/README.md @@ -0,0 +1,39 @@ +# Title: Manually change quantity of "Take Line" in Warehouse Pick changes the quantity of the Wrong "Place Lines" +## Repro Steps: +SETUP +1.Location Card in DK Localization, require Pick = yes and Prod. Consumtion Whse. Handling = Warehouse Pick (mandatory) (The rest does not need to be filled) +![Location Card Setup1](./location_card_setup1.png) +Set up the Production Bins +![Production Bins Setup1](./production_bins_setup1.png) +2.Setup yourself as the Warehouse Employee +![Warehouse Employee Setup2](./warehouse_employee_setup2.png) +3.I have the Item that I want to manufacture (1000) +4.Replenishment is Prod. Order, and I have attached a BOM. +![Item Card Setup4](./item_card_setup4.png) +5.Only one Item in the BOM (Item should be different Item, NOT same item as being made...should be **COMPONENT** Item >> Note this from DP Repro Steps) +![Production Bom](./production_bom.png) +6.The Item in the BOM has replenishment Purchase, Allow Whse. Overpick is true and then Flushing Method is Pick + Manual (Again, this is different item, NOT 1000...should be **COMPONENT** Item) +![Item Card Setup6](./item_card_setup6.png) +7.Navigate to Item Journals, for the **COMPONENT** Item, Create 5 lines, 900 quantities from Bin S-01-01 to S-01-05 (Everything would total 4500 qty) +![Item Journals Setup7](./item_journals_setup7.png) +8.Post the Journal + +Repro +1.Create a Released Prod Order for the Item created in step 3 (Item to be manufactured) above, quantity is 4200, Location is Silver then Refresh the Order. +![Released Production Order](./released_production_order.png) +2.Create Warehouse Pick once the Prod Order Line is populated +![Create Warehouse Pick](./create_warehouse_pick.png) +3.Navigate to the Warehouse Pick created +![Released Production Order Repro3](./released_production_order_repro3.png) +![Warehouse Pick Lines](./warehouse_pick_lines.png) +4.on Last Take Line for Example, change the Quantity to take from 900 to 400 + +**Expected Result** +The Last Place line would be updated to 400, unless multiple candidates exist where only the first subsequent matching line should be updated. + +**Actual result** +The Second Place Line is updated instead which is confusing +![Warehouse Pick](./warehouse_pick.png) +The Partner mentioned that the in the Code there seems to be a filter that always updates the First line of the Placing + +## Description: diff --git a/dataset/problemstatement/microsoftInternal__NAV-218786__cf-1/create_warehouse_pick.png b/dataset/problemstatement/microsoftInternal__NAV-218786__cf-1/create_warehouse_pick.png new file mode 100644 index 000000000..c2f01b9b2 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-218786__cf-1/create_warehouse_pick.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-218786__cf-1/item_card_setup4.png b/dataset/problemstatement/microsoftInternal__NAV-218786__cf-1/item_card_setup4.png new file mode 100644 index 000000000..f71cd10e6 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-218786__cf-1/item_card_setup4.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-218786__cf-1/item_card_setup6.png b/dataset/problemstatement/microsoftInternal__NAV-218786__cf-1/item_card_setup6.png new file mode 100644 index 000000000..5b2398e7e Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-218786__cf-1/item_card_setup6.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-218786__cf-1/item_journals_setup7.png b/dataset/problemstatement/microsoftInternal__NAV-218786__cf-1/item_journals_setup7.png new file mode 100644 index 000000000..32d56aafb Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-218786__cf-1/item_journals_setup7.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-218786__cf-1/location_card_setup1.png b/dataset/problemstatement/microsoftInternal__NAV-218786__cf-1/location_card_setup1.png new file mode 100644 index 000000000..7b549eec8 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-218786__cf-1/location_card_setup1.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-218786__cf-1/production_bins_setup1.png b/dataset/problemstatement/microsoftInternal__NAV-218786__cf-1/production_bins_setup1.png new file mode 100644 index 000000000..092c2cb89 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-218786__cf-1/production_bins_setup1.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-218786__cf-1/production_bom.png b/dataset/problemstatement/microsoftInternal__NAV-218786__cf-1/production_bom.png new file mode 100644 index 000000000..f12153f36 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-218786__cf-1/production_bom.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-218786__cf-1/released_production_order.png b/dataset/problemstatement/microsoftInternal__NAV-218786__cf-1/released_production_order.png new file mode 100644 index 000000000..0f68ffb56 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-218786__cf-1/released_production_order.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-218786__cf-1/released_production_order_repro3.png b/dataset/problemstatement/microsoftInternal__NAV-218786__cf-1/released_production_order_repro3.png new file mode 100644 index 000000000..a18914fdb Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-218786__cf-1/released_production_order_repro3.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-218786__cf-1/warehouse_employee_setup2.png b/dataset/problemstatement/microsoftInternal__NAV-218786__cf-1/warehouse_employee_setup2.png new file mode 100644 index 000000000..c7675e80f Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-218786__cf-1/warehouse_employee_setup2.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-218786__cf-1/warehouse_pick.png b/dataset/problemstatement/microsoftInternal__NAV-218786__cf-1/warehouse_pick.png new file mode 100644 index 000000000..9b0c5a02b Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-218786__cf-1/warehouse_pick.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-218786__cf-1/warehouse_pick_lines.png b/dataset/problemstatement/microsoftInternal__NAV-218786__cf-1/warehouse_pick_lines.png new file mode 100644 index 000000000..888e76ac4 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-218786__cf-1/warehouse_pick_lines.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-220036__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-220036__cf-1/README.md new file mode 100644 index 000000000..111df8cde --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-220036__cf-1/README.md @@ -0,0 +1,31 @@ +# Title: Field Email on Reminder is empty when customer does not have any contacts +## Repro Steps: +Tested in latest build 26.x onprem +1.Create a new domestic customer that has no contact, use the template CUSTOMER PERSON +In addition to the automatically added fields, add the following values: +Address: Test +City: Birmingham +Post Code: B27 4KT +Email: test@test.de +Payment Terms Code: 7 Days +Reminder Terms Code: Domestic +2.Then create and post a new Sales Invoice for this customer +Posting Date = 01/01/27 +1x item 1896-S +3.Go to the reminders and create a new reminder with button "Create Reminders" +Posting Date = 01/31/27 +Document Date = 01/31/27 +4.A new reminder should now be created for our new customer. Open that reminder + +**Actual Result:** +The field email on the reminder header is empty + +**Expected Result:** +The email field should show value test@test.de + +**Additional Information:** +Usually the email field on the reminder header does show the email of the contact related to the customer. In our case the contact email is empty, so the email from the customer card should be shown. When you then actually issue and send the reminder, you will notice that BC does take the e-mail adress from the customer card. +But this e-mail adress should also be visible on the reminder page directly. + +## Description: +Field Email on Reminder is empty when customer does not have any contacts diff --git a/dataset/problemstatement/microsoftInternal__NAV-220314__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-220314__cf-1/README.md new file mode 100644 index 000000000..b8ef00caf --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-220314__cf-1/README.md @@ -0,0 +1,20 @@ +# Title: After deleting item from Item Journal/Reclassification and adding a new item, the UOM is not being revalidated. +## Repro Steps: +**[BT. > NOTE - You can do this in Item Journal also with same result.]** +1- Open item reclassification journal and add an item No.: +![Item Reclassification Journals](./item_reclassification_journals.png) +2- Delete the item No. and add another item with different UOM: +![Item Reclassification Journals Step2](./item_reclassification_journals_step2.png) +![Add Another Item Step2](./add_another_item_step2.png) +3- We get the following error message: +![Error Message](./error_message.png) + +**Expected Results:** +The line should revalidate the UOM only when Item No. is changed through validation. + +**Actual Results:** +Error message: +The field Unit of Measure Code of table Item Journal Line contains a value (PCS) that cannot be found in the related table (Item Unit of Measure). + +## Description: +Tested this in old NAV2018, and when validating Item No., we revalidate and no issues. diff --git a/dataset/problemstatement/microsoftInternal__NAV-220314__cf-1/add_another_item_step2.png b/dataset/problemstatement/microsoftInternal__NAV-220314__cf-1/add_another_item_step2.png new file mode 100644 index 000000000..8e5bc9dc4 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-220314__cf-1/add_another_item_step2.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-220314__cf-1/error_message.png b/dataset/problemstatement/microsoftInternal__NAV-220314__cf-1/error_message.png new file mode 100644 index 000000000..ad221aff7 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-220314__cf-1/error_message.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-220314__cf-1/item_reclassification_journals.png b/dataset/problemstatement/microsoftInternal__NAV-220314__cf-1/item_reclassification_journals.png new file mode 100644 index 000000000..5f569ca94 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-220314__cf-1/item_reclassification_journals.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-220314__cf-1/item_reclassification_journals_step2.png b/dataset/problemstatement/microsoftInternal__NAV-220314__cf-1/item_reclassification_journals_step2.png new file mode 100644 index 000000000..bc5ecc5e0 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-220314__cf-1/item_reclassification_journals_step2.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-220984__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-220984__cf-1/README.md new file mode 100644 index 000000000..6cd4daee8 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-220984__cf-1/README.md @@ -0,0 +1,24 @@ +# Title: Report "Exchange Production BOM Item" no longer populates the 'End Date' field of the replaced Item +## Repro Steps: +1) go to Production BOM +select 1000 + +2) Add in Starting Date and Ending Date with Personalize +3) Search for Exchange Production BOM Item +Exchange Item 1100 to Item 70000 with Starting Date not equal to WORKDATE +Do NOT Create a new Version +**Do not choose Delete Exchanged Component!** +4) Go to Production BOM +open BOM 1000 + +**Actual Result:** +The replacement item 70000 with Starting date 28-01-2027 is correct +but the replaced item 1100 does not have Ending Date date 28-01-2027 + +**Expected Outcome:** +The replaced item should have Ending Date 28-01-2027 that signifies it stops being valid automatically, only when the Starting Date is not WORKDATE + +## Description: +Report "Exchange Production BOM Item" no longer populates the 'End Date' field of the replaced Item +This was introduced with BC 25.03. +Before this worked as expected. diff --git a/dataset/problemstatement/microsoftInternal__NAV-221877__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-221877__cf-1/README.md new file mode 100644 index 000000000..5f1b6d148 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-221877__cf-1/README.md @@ -0,0 +1,12 @@ +# Title: The service order header status field is not being validated properly when new line is added +## Repro Steps: +1. Insert a standard item into the service order line +2. Add it to the line, update the status to 'Finished', and then insert a new line +3. The new service item with a status of 'Pending', but the service order header status remains 'Finished' +4. But if I re-validate the Pending status field on my service line, the header status changes. + +Actual Result: The service order header status field is not being validated properly +Expected Result: The expected behavior is that the header status should reflect the priority status only after the service item line is committed. + +## Description: +The service order header status field is not being validated properly when new line is added. The header status should update only after the service item line record has been committed (Modify), ensuring proper execution ordering. diff --git a/dataset/problemstatement/microsoftInternal__NAV-222092__cf-1/103221_test3.png b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-1/103221_test3.png new file mode 100644 index 000000000..4d4cfa085 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-1/103221_test3.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222092__cf-1/4203_zins.png b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-1/4203_zins.png new file mode 100644 index 000000000..cfcf64531 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-1/4203_zins.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222092__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-1/README.md new file mode 100644 index 000000000..dfd0a5c8f --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-1/README.md @@ -0,0 +1,44 @@ +# Title: Incorrect dimensions assigned to General Ledger Entries and Customer Ledger Entries when a reminder with additional fees is created and the Dimensions are modified in the Reminder before issuing it. +## Repro Steps: +1- Go to Ledger Setup and verify the Global Dimension. +![General Ledger Setup](./general_ledger_Setup.png) +2- Navigate to Reminder Terms, select any option from the list, and enable the toggles for Additional Fees. +![Reminder Terms Setup](./reminder_terms_setup.png) +3- Proceed to Reminder Level Fees and confirm the amount is set as shown. +![Reminder Level Fee Setup](./reminder_level_fee_setup.png) +4- Ensure the customer card includes both Payment Terms and Reminder Terms. +![Cumtomer Card](./cumtomer_card.png) +5- Assign the Dimension as indicated. +![Cumtomer C00030](./cumtomer_c00030.png) +6- Create a Sales Invoice using the specified Posting Date and Due Date. Post it. +![103221 Test3](./103221_test3.png) +7- Go to Reminders and create a reminder for the customer. +![Create Reminders](./create_reminders.png) +NOTE: You may get an error if you did not specify in "Customer Posting Groups" the "Additional Fee Account" and "Add. Fee per Line Account". +If so, go to "Customer Posting Groups" and fill it in. +8- In the reminder lines, update the Global Dimension to VERW. +![Reminder](./reminder.png) +![Reminder Header 1011](./reminder_header_1011.png) +8- Issue the reminder. + ![Issue Reminder](./issue_reminder.png) +9- Check the Customer Ledger Entries and General Ledger Entries, you’ll see the original dimension from the customer card is still being used. +(Using Find Entries from the Issued Reminder) +![Customer Ledger Entries](./customer_ledger_entries.png) +10- In the General Ledger Entries, two entries reflect the updated dimension, while one still shows the original dimension from the customer card. +![4203 Zins](./4203_zins.png) +Partner provided the code that could be affecting this behavior: +![Code Part](./code_part.png) + +**Expected Outcome:** +The correct dimension should be reflected in both the Customer Ledger Entries and General Ledger Entries, but only for Global Dimension 1. + +**Actual Outcome:** +The updated dimension is not applied in the Customer Ledger Entries, even after changing it from the Reminder Page. + +**Troubleshooting Actions Taken:** +Tested various scenarios as a workaround. While the dimension can be corrected in the General Ledger Entries, the issue persists in the Customer Ledger Entries. + +**Did the partner reproduce the issue in a Sandbox without extensions?** Yes + +## Description: +Incorrect dimensions assigned to General Ledger Entries and Customer Ledger Entries when a reminder with additional fees is created and the Dimensions are modified in the Reminder before issuing it. diff --git a/dataset/problemstatement/microsoftInternal__NAV-222092__cf-1/code_part.png b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-1/code_part.png new file mode 100644 index 000000000..4b36ede1c Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-1/code_part.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222092__cf-1/create_reminders.png b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-1/create_reminders.png new file mode 100644 index 000000000..01b6e0b10 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-1/create_reminders.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222092__cf-1/cumtomer_c00030.png b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-1/cumtomer_c00030.png new file mode 100644 index 000000000..dfbbcca18 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-1/cumtomer_c00030.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222092__cf-1/cumtomer_card.png b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-1/cumtomer_card.png new file mode 100644 index 000000000..b1a5d0551 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-1/cumtomer_card.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222092__cf-1/customer_ledger_entries.png b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-1/customer_ledger_entries.png new file mode 100644 index 000000000..9f66ed8fb Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-1/customer_ledger_entries.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222092__cf-1/general_ledger_Setup.png b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-1/general_ledger_Setup.png new file mode 100644 index 000000000..fd8e2446e Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-1/general_ledger_Setup.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222092__cf-1/issue_reminder.png b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-1/issue_reminder.png new file mode 100644 index 000000000..a3b55734d Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-1/issue_reminder.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222092__cf-1/reminder.png b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-1/reminder.png new file mode 100644 index 000000000..45ad15d57 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-1/reminder.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222092__cf-1/reminder_header_1011.png b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-1/reminder_header_1011.png new file mode 100644 index 000000000..74a35bfb0 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-1/reminder_header_1011.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222092__cf-1/reminder_level_fee_setup.png b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-1/reminder_level_fee_setup.png new file mode 100644 index 000000000..d2e22cdf6 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-1/reminder_level_fee_setup.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222092__cf-1/reminder_terms_setup.png b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-1/reminder_terms_setup.png new file mode 100644 index 000000000..c3194852c Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-1/reminder_terms_setup.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222092__cf-2/103221_test3.png b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-2/103221_test3.png new file mode 100644 index 000000000..4d4cfa085 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-2/103221_test3.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222092__cf-2/4203_zins.png b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-2/4203_zins.png new file mode 100644 index 000000000..cfcf64531 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-2/4203_zins.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222092__cf-2/README.md b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-2/README.md new file mode 100644 index 000000000..f2b1753c3 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-2/README.md @@ -0,0 +1,44 @@ +# Title: Incorrect dimensions assigned to General Ledger Entries and Customer Ledger Entries when a reminder with additional fees is created and the Dimensions are modified in the Reminder before issuing it. +## Repro Steps: +1- Go to Ledger Setup and verify the Global Dimension. +![General Ledger Setup](./general_ledger_Setup.png) +2- Navigate to Reminder Terms, select any option from the list, and enable the toggles for Additional Fees. +![Reminder Terms Setup](./reminder_terms_setup.png) +3- Proceed to Reminder Level Fees and confirm the amount is set as shown. +![Reminder Level Fee Setup](./reminder_level_fee_setup.png) +4- Ensure the customer card includes both Payment Terms and Reminder Terms. +![Cumtomer Card](./cumtomer_card.png) +5- Assign the Dimension as indicated. +![Cumtomer C00030](./cumtomer_c00030.png) +6- Create a Sales Invoice using the specified Posting Date and Due Date. Post it. +![103221 Test3](./103221_test3.png) +7- Go to Reminders and create a reminder for the customer. +![Create Reminders](./create_reminders.png) +NOTE: You may get an error if you did not specify in "Customer Posting Groups" the "Additional Fee Account" and "Add. Fee per Line Account". +If so, go to "Customer Posting Groups" and fill it in. +8- In the reminder lines, update the Global Dimension to VERW. +![Reminder](./reminder.png) +![Reminder Header 1011](./reminder_header_1011.png) +8- Issue the reminder. + ![Issue Reminder](./issue_reminder.png) +9- Check the Customer Ledger Entries and General Ledger Entries, you’ll see the original dimension from the customer card is still being used. +(Using Find Entries from the Issued Reminder) +![Customer Ledger Entries](./customer_ledger_entries.png) +10- In the General Ledger Entries, two entries reflect the updated dimension, while one still shows the original dimension from the customer card. +![4203 Zins](./4203_zins.png) +Partner provided the code that could be affecting this behavior: +![Code Part](./code_part.png) + +**Expected Outcome:** +The correct dimension should be reflected only for additional fee entries in both the Customer Ledger Entries and General Ledger Entries. + +**Actual Outcome:** +The updated dimension is not applied in the Customer Ledger Entries, even after changing it from the Reminder Page. + +**Troubleshooting Actions Taken:** +Tested various scenarios as a workaround. While the dimension can be corrected in the General Ledger Entries, the issue persists in the Customer Ledger Entries. + +**Did the partner reproduce the issue in a Sandbox without extensions?** Yes + +## Description: +Incorrect dimensions assigned to General Ledger Entries and Customer Ledger Entries when a reminder with additional fees is created and the Dimensions are modified in the Reminder before issuing it. diff --git a/dataset/problemstatement/microsoftInternal__NAV-222092__cf-2/code_part.png b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-2/code_part.png new file mode 100644 index 000000000..4b36ede1c Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-2/code_part.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222092__cf-2/create_reminders.png b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-2/create_reminders.png new file mode 100644 index 000000000..01b6e0b10 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-2/create_reminders.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222092__cf-2/cumtomer_c00030.png b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-2/cumtomer_c00030.png new file mode 100644 index 000000000..dfbbcca18 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-2/cumtomer_c00030.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222092__cf-2/cumtomer_card.png b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-2/cumtomer_card.png new file mode 100644 index 000000000..b1a5d0551 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-2/cumtomer_card.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222092__cf-2/customer_ledger_entries.png b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-2/customer_ledger_entries.png new file mode 100644 index 000000000..9f66ed8fb Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-2/customer_ledger_entries.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222092__cf-2/general_ledger_Setup.png b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-2/general_ledger_Setup.png new file mode 100644 index 000000000..fd8e2446e Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-2/general_ledger_Setup.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222092__cf-2/issue_reminder.png b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-2/issue_reminder.png new file mode 100644 index 000000000..a3b55734d Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-2/issue_reminder.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222092__cf-2/reminder.png b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-2/reminder.png new file mode 100644 index 000000000..45ad15d57 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-2/reminder.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222092__cf-2/reminder_header_1011.png b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-2/reminder_header_1011.png new file mode 100644 index 000000000..74a35bfb0 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-2/reminder_header_1011.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222092__cf-2/reminder_level_fee_setup.png b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-2/reminder_level_fee_setup.png new file mode 100644 index 000000000..d2e22cdf6 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-2/reminder_level_fee_setup.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222092__cf-2/reminder_terms_setup.png b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-2/reminder_terms_setup.png new file mode 100644 index 000000000..c3194852c Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222092__cf-2/reminder_terms_setup.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/Item_Journals_item_tracking_lines.png b/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/Item_Journals_item_tracking_lines.png new file mode 100644 index 000000000..636e5ba11 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/Item_Journals_item_tracking_lines.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/README.md new file mode 100644 index 000000000..41672238e --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/README.md @@ -0,0 +1,36 @@ +# Title: Escalated Error: Lot No. LOT0001 is not available on inventory or it has already been reserved for another document. when trying to register pick for item with reservation and item tracking with location set up FEFO +## Repro Steps: +1- Item Tracking Code: +![Item Tracking Code Card](./item_tracking_code_card.png) +2- Item Card: +![Item Card](./item_card.png) +3- Location Card: +![Location Card](./location_card.png) + +**The repro steps:** +1- Open Item Journals and fill in the fields as following then click on Item tracking lines and assign LOT manually and expiration date as following: +![Item Journals Item Tracking Lines](./Item_Journals_item_tracking_lines.png) +![Items Tracking Lines 1001 Lotrepro](./items_tracking_lines_1001_lotrepro.png) +2- Replicate the first step but with changing the Posting Date, LOT No. and Expiration Date Then post the Item Journals: +![Posting Date](./posting_date.png) +![Expiration Date](./expiration_date.png) +3- Create a new sales order and fill in the fields as following then click on Line > Functions > Reserve > Reserve from Current Line: +![Sales Order 101021 Adatum](./sales_order_101021_adatum.png) +![Reservation Order 101021 1001](./reservation_order_101021_1001.png) +4- Replicate step 3 with a new sales order: +![New Sales Order 101021](./new_sales_order_101021.png) +![New Reservation Order 101021](./new_reservation_order_101021.png) +5- Create a warehouse shipment from the second sales order and then create a pick: +![Warehouse Shipment Sh000007](./warehouse_shipment_sh000007.png) +6- Open the pick lines and click on 'Register Pick': +![Warehouse Pick](./warehouse_pick.png) + +**The actual result:** +Error will be appearing: +![Error](./error.png) + +**The expected result:** +It should be registered successfully without any errors only when the location is configured to pick according to FEFO. + +## Description: +Error: Lot No. LOT0001 is not available on inventory or it has already been reserved for another document. when trying to register pick for item with reservation and item tracking with location set up FEFO diff --git a/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/error.png b/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/error.png new file mode 100644 index 000000000..032b696d5 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/error.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/expiration_date.png b/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/expiration_date.png new file mode 100644 index 000000000..a22a6ca95 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/expiration_date.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/item_card.png b/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/item_card.png new file mode 100644 index 000000000..ab8898668 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/item_card.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/item_tracking_code_card.png b/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/item_tracking_code_card.png new file mode 100644 index 000000000..79d256512 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/item_tracking_code_card.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/items_tracking_lines_1001_lotrepro.png b/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/items_tracking_lines_1001_lotrepro.png new file mode 100644 index 000000000..5862d11b6 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/items_tracking_lines_1001_lotrepro.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/location_card.png b/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/location_card.png new file mode 100644 index 000000000..6451083a9 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/location_card.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/new_reservation_order_101021.png b/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/new_reservation_order_101021.png new file mode 100644 index 000000000..c708c1849 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/new_reservation_order_101021.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/new_sales_order_101021.png b/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/new_sales_order_101021.png new file mode 100644 index 000000000..4dd816df6 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/new_sales_order_101021.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/posting_date.png b/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/posting_date.png new file mode 100644 index 000000000..5f46407fa Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/posting_date.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/reservation_order_101021_1001.png b/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/reservation_order_101021_1001.png new file mode 100644 index 000000000..c024dce75 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/reservation_order_101021_1001.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/sales_order_101021_adatum.png b/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/sales_order_101021_adatum.png new file mode 100644 index 000000000..ab3a90d37 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/sales_order_101021_adatum.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/warehouse_pick.png b/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/warehouse_pick.png new file mode 100644 index 000000000..6b89ea665 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/warehouse_pick.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/warehouse_shipment_sh000007.png b/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/warehouse_shipment_sh000007.png new file mode 100644 index 000000000..0d736f8e4 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222484__cf-1/warehouse_shipment_sh000007.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222488__cf-1/2_lines_not_registered.png b/dataset/problemstatement/microsoftInternal__NAV-222488__cf-1/2_lines_not_registered.png new file mode 100644 index 000000000..7e2b11e23 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222488__cf-1/2_lines_not_registered.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222488__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-222488__cf-1/README.md new file mode 100644 index 000000000..19f3f2bca --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-222488__cf-1/README.md @@ -0,0 +1,53 @@ +# Title: If you register a warehouse put away with the break bulk filter set to yes, not all put away lines are registered +## Repro Steps: +1. Open BC 26.3 W1 on Prem +2. Search for Warehouse Employees + Add your User for location WHITE +3. Search for Items + Create a new Item 70061 + UOM PCS +4. Add a second UOM + Related -> Item -> Unit of Measure + BOX - 48 PCS + ![Item Units of Measure](./item_units_of_measure.png) +5. Add the UOM "PCS" as Put away UOM Code for the item + ![Warehouse pcs](./warehouse_pcs.png) +6. Search for Purchase Orders + Create a new Purchase Order + Vendor: 10000 + Item: 70061 + Location: WHITE + Quantity: 10 + UOM: BOX + ![Purchase Order 70061](./purchase_order_70061.png) +7. Create a Warehouse Receipt + The Receipt is automatically opened + Add Quantity to receive = 10 + Post the Warehouse Receipt + ![warehouse_receipt_step7](./warehouse_receipt_step7.png) + -> A Warehouse put away was created +8. Search for Warehouse Put aways + Select the created put away -> open it + 4 lines are created which is correct + ![Warehouse Put Away](./warehouse_put_away.png) +9. Set the Break bulk filter = yes + The lines of no interest are filtered out as expected. + ![Put Away PU000004](./put_away_pu000004.png) + Register the put away + +ACTUAL RESULT: +The put away still exists. +![Put Away In Result](./put_away_in_result.png) +If you take out the Break Bulk Filer = yes +![2 lines not registered](./2_lines_not_registered.png) +2 lines are not registered. +If you check table 7312 Warehouse Entries +![Warehouse Entry](./warehouse_entry.png) +Just 2 lines from the put away are posted. + +EXPECTED RESULT: +The full Put away should be registered only for Purchase Order documents; other sources may respect the filter. +![Expected Result](./expected_result.png) + +## Description: +The break bulk filter leads to the effect that not all lines are registered from a warehouse put away.This filter should just give you a better overview on a put away but should not prevent the entries form beiing registered as it was in BC 14. diff --git a/dataset/problemstatement/microsoftInternal__NAV-222488__cf-1/expected_result.png b/dataset/problemstatement/microsoftInternal__NAV-222488__cf-1/expected_result.png new file mode 100644 index 000000000..152a09d29 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222488__cf-1/expected_result.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222488__cf-1/item_units_of_measure.png b/dataset/problemstatement/microsoftInternal__NAV-222488__cf-1/item_units_of_measure.png new file mode 100644 index 000000000..8452dcd9d Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222488__cf-1/item_units_of_measure.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222488__cf-1/purchase_order_70061.png b/dataset/problemstatement/microsoftInternal__NAV-222488__cf-1/purchase_order_70061.png new file mode 100644 index 000000000..ef5195852 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222488__cf-1/purchase_order_70061.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222488__cf-1/put_away_in_result.png b/dataset/problemstatement/microsoftInternal__NAV-222488__cf-1/put_away_in_result.png new file mode 100644 index 000000000..e9fc7fc0e Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222488__cf-1/put_away_in_result.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222488__cf-1/put_away_pu000004.png b/dataset/problemstatement/microsoftInternal__NAV-222488__cf-1/put_away_pu000004.png new file mode 100644 index 000000000..bc2a9881a Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222488__cf-1/put_away_pu000004.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222488__cf-1/warehouse_entry.png b/dataset/problemstatement/microsoftInternal__NAV-222488__cf-1/warehouse_entry.png new file mode 100644 index 000000000..93fd5cab8 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222488__cf-1/warehouse_entry.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222488__cf-1/warehouse_pcs.png b/dataset/problemstatement/microsoftInternal__NAV-222488__cf-1/warehouse_pcs.png new file mode 100644 index 000000000..096aa2e81 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222488__cf-1/warehouse_pcs.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222488__cf-1/warehouse_put_away.png b/dataset/problemstatement/microsoftInternal__NAV-222488__cf-1/warehouse_put_away.png new file mode 100644 index 000000000..6e4c2a3e4 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222488__cf-1/warehouse_put_away.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-222488__cf-1/warehouse_receipt_step7.png b/dataset/problemstatement/microsoftInternal__NAV-222488__cf-1/warehouse_receipt_step7.png new file mode 100644 index 000000000..666020948 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-222488__cf-1/warehouse_receipt_step7.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-223202__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-223202__cf-1/README.md new file mode 100644 index 000000000..961642d24 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-223202__cf-1/README.md @@ -0,0 +1,42 @@ +# Title: Manufacturing overhead is wrong in the production order statistics page (99000816) and report (99000791). +## Repro Steps: +New item, called RAW. Set Unit Cost = 100. +![Item Card](./item_card.png) +Create new Production BOM. +PCS +Type = Item, RAW, Qty =1 +Certify. +![Production BOM](./production_bom.png) +Create new item FG +Set Indirect Cost = 10% +Assign prod BOM created earlier. +![Item Card FG](./item_card_fg.png) + +Create new released (or firm planned production order) +Don't populate header. Go directly to lines. +Add line with item FG, Qty 20. +![Firm Planned Prod. Order](./firm_planned_prod_order.png) +Choose Refresh prod ord, deselect Lines. +![Refresh Production Order](./refresh_production_order.png) +Check statistics. +![Production Order Statistics](./production_order_statistics.png) +Expected cost: +Material 2000 (correct Unit cost of one item is 100, we need 1 per FG and we are building 20 FG.) +Manufacturing overhead is correct - we defined 10%. 10% of 2000 is 200. +Total expected cost is 2200. +Now create another released (or firm planned) prod order. +Don't populate header. Go directly to lines. +Add two lines with item FG, Qty 10 each. (so total qty is 20) +![Lines](./lines.png) +Choose Refresh prod ord, deselect Lines. +Check statistics. + +Now with the same qty, the total is 2300. +For some reason Manufacturing Overhead is 300 (wrong), instead of 200 (expected). +Manufacturing overhead is only updated when the Statistics page is opened. +![Production Order Statistics](./production_order_statistics_2.png) +you can also run report Production Order Statistics: +![Production Order Statistics Report](./production_order_statistics_report.png) +You can see difference. + +## Description: diff --git a/dataset/problemstatement/microsoftInternal__NAV-223202__cf-1/firm_planned_prod_order.png b/dataset/problemstatement/microsoftInternal__NAV-223202__cf-1/firm_planned_prod_order.png new file mode 100644 index 000000000..53d86b7f4 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-223202__cf-1/firm_planned_prod_order.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-223202__cf-1/item_card.png b/dataset/problemstatement/microsoftInternal__NAV-223202__cf-1/item_card.png new file mode 100644 index 000000000..114d49904 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-223202__cf-1/item_card.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-223202__cf-1/item_card_fg.png b/dataset/problemstatement/microsoftInternal__NAV-223202__cf-1/item_card_fg.png new file mode 100644 index 000000000..aa0ca0446 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-223202__cf-1/item_card_fg.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-223202__cf-1/lines.png b/dataset/problemstatement/microsoftInternal__NAV-223202__cf-1/lines.png new file mode 100644 index 000000000..c12d8fedc Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-223202__cf-1/lines.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-223202__cf-1/production_bom.png b/dataset/problemstatement/microsoftInternal__NAV-223202__cf-1/production_bom.png new file mode 100644 index 000000000..572f63a3d Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-223202__cf-1/production_bom.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-223202__cf-1/production_order_statistics.png b/dataset/problemstatement/microsoftInternal__NAV-223202__cf-1/production_order_statistics.png new file mode 100644 index 000000000..00df3c57b Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-223202__cf-1/production_order_statistics.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-223202__cf-1/production_order_statistics_2.png b/dataset/problemstatement/microsoftInternal__NAV-223202__cf-1/production_order_statistics_2.png new file mode 100644 index 000000000..cfaa506f9 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-223202__cf-1/production_order_statistics_2.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-223202__cf-1/production_order_statistics_report.png b/dataset/problemstatement/microsoftInternal__NAV-223202__cf-1/production_order_statistics_report.png new file mode 100644 index 000000000..4da023b76 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-223202__cf-1/production_order_statistics_report.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-223202__cf-1/refresh_production_order.png b/dataset/problemstatement/microsoftInternal__NAV-223202__cf-1/refresh_production_order.png new file mode 100644 index 000000000..80a80010f Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-223202__cf-1/refresh_production_order.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-223493__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-223493__cf-1/README.md new file mode 100644 index 000000000..3e210076c --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-223493__cf-1/README.md @@ -0,0 +1,20 @@ +# Title: Your Reference Field Not updated in Customer Ledger Entries, when changed with Update document on posted Sales Invoice +## Repro Steps: +1.On a Cronus environment, pick any a posted sales invoice and click on update document +2.On the UPDATE DOCUMENT PAGE change YOUR RERENCE to TEST 1 and click Ok +Upon inspecting the page, the field you "Your reference" is correctly updated in the document +3Add the 'YOUR REFERENCE' field to the lines via Personalize, then use 'Find Entries' to review the customer ledger entries. You'll notice that even after updating 'YOUR REFERENCE' to "TEST 1," the Customer ledger entry still shows the previous reference value unchanged. + +**Expected Outcome:** +"YOUR REFERENCE" field is expected to update the Customer ledger entry only when the entry is not on hold. + +**Actual Outcome:** +the ledger still shows the previous reference value unchanged. + +**Troubleshooting Actions Taken:** +In the meantime, the only two viable workarounds I've identified are: +1.Posting a credit memo and reissuing the invoice +2.Utilizing a developer license and a configuration package to populate the Your Reference field + +## Description: +When editing the 'your reference' field before posting a sales invoice, the value correctly pulls through to the customer ledger entries. However, if the sales invoice is posted first and then the 'your reference' field is entered by update document, it does not pull through to the customer ledger entries diff --git a/dataset/problemstatement/microsoftInternal__NAV-223790__cf-1/P00020_bom.png b/dataset/problemstatement/microsoftInternal__NAV-223790__cf-1/P00020_bom.png new file mode 100644 index 000000000..04f9f496f Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-223790__cf-1/P00020_bom.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-223790__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-223790__cf-1/README.md new file mode 100644 index 000000000..2c289d67a --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-223790__cf-1/README.md @@ -0,0 +1,53 @@ +# Title: "Calculate Regenerative Plan" in a planning worksheet does not plan the component when Stockkeeping Units are setup for the items. +## Repro Steps: +1. Open BC 26.1 W1 on Prem +2. Open the manufacturing Setup + ![manufacturing setup](./manufacturing_setup.png) +3. Search for Items + Create a new Item + Item: Component (70065) + use the Item Template do nothing else + Create SKU for Location BLUE + Open the SKU -> Related -> Warehouse -> Stockkeeping Units + Replenishment System: Purchase + Reorder Policy: Order +4. Search for Production BOM + Create the following BOM + ![P00020 bom](./P00020_bom.png) +5. Search for Items + Create a new Item + Item: Main (70066) + use the Item Template do nothing else + Create SKU for Location BLUE + Open the SKU -> Related -> Warehouse -> Stockkeeping Units + Replenishment System: Prod. Order + Manufacturing Policy: Make to Stock + Production BOM No.: P00020 + Reorder Policy: Lot for Lot +6. Search for Sales Orders + Create a new Sales Order + Customer: 10000 + Item: 70066 (Main) + Location: BLUE + Quantity: 10 +7. Open Your Settings + Change the Workdate to: 01.01.2027 +8. Search for Planning Worksheet + Prepare -> Calculate Regenerative Plan + ![calculate plan](./calculate_plan.png) + +ACTUAL RESULT: +Just one line was created for the Main Item but the component was not planned: +![planning worksheets 1](./planning_worksheets_1.png) +Run the Calculate Regenerative Plan again. +Now the Component is planned also: +![planning worksheets 2](./planning_worksheets_2.png) + +EXPECTED RESULT: +Both lines should be calculated with the first Calculate Regenerative Plan. + +ADDITIONAL INFORMATION: +This works as expected in BC 25.7. + +## Description: +When you run "Calculate Regenerative Plan" in a planning worksheet, the component is not planned in the first run, but in the second attempt it is planned. The Stockkeeping Unit setup on the parent item should trigger the Low-Level Code recalculation so that the BOM expansion is up to date before planning runs; today this does not happen until something else forces a recalculation, which is why the second pass succeeds. diff --git a/dataset/problemstatement/microsoftInternal__NAV-223790__cf-1/calculate_plan.png b/dataset/problemstatement/microsoftInternal__NAV-223790__cf-1/calculate_plan.png new file mode 100644 index 000000000..47c95b50e Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-223790__cf-1/calculate_plan.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-223790__cf-1/manufacturing_setup.png b/dataset/problemstatement/microsoftInternal__NAV-223790__cf-1/manufacturing_setup.png new file mode 100644 index 000000000..0c28dd9d0 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-223790__cf-1/manufacturing_setup.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-223790__cf-1/planning_worksheets_1.png b/dataset/problemstatement/microsoftInternal__NAV-223790__cf-1/planning_worksheets_1.png new file mode 100644 index 000000000..44c06bb31 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-223790__cf-1/planning_worksheets_1.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-223790__cf-1/planning_worksheets_2.png b/dataset/problemstatement/microsoftInternal__NAV-223790__cf-1/planning_worksheets_2.png new file mode 100644 index 000000000..271c54bd1 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-223790__cf-1/planning_worksheets_2.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-224447__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-224447__cf-1/README.md new file mode 100644 index 000000000..a8f4228a3 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-224447__cf-1/README.md @@ -0,0 +1,19 @@ +# Title: Issued reminder emails are not logged in sent e-mail history of a customer +## Repro Steps: +REPRO: +============== +This repro is based on a SaaS environment + +Setup e-mail for "Current User" and make sure you can send e-mails. + +1- Create a reminder for a customer then click on suggest lines and after that click on issue. +2- Open the issued reminders then click on send by email. +3- Open the customer card > related > History > sent emails +**EXPECTATION:** +**==============** +The issued reminder emails should be appearing only when the reminder is sent (not saved as draft). +**RESULT:** +**==============** + +The issued reminder emails is not appearing on the "Send Emails" page +## Description: diff --git a/dataset/problemstatement/microsoftInternal__NAV-224668__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-224668__cf-1/README.md new file mode 100644 index 000000000..e7d310f14 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-224668__cf-1/README.md @@ -0,0 +1,20 @@ +# Title: [Headlines] Certain headlines are not hidden because the record Get fails while attempting to set visibility field to false +## Repro Steps: +Headlines are always created with a headline name + user security id as seen below. + +```al +if not Get(HeadlineName, UserSecurityId()) then begin + Init(); + Validate("Headline Name", HeadlineName); + Validate("User Id", UserSecurityId()); + if not Insert() then exit; +end; +``` + + +However when a headline fx Overdue invoices are suppose to be hidden for the current user only, when it tries to find the headline, it does not append the user security id to the Get(, ). It only uses Get() which will always fail. + +This does not error out because the error is trapped with a if/else + +in file EssentialBusHeadlineMgt.Codeunit.al `if EssentialBusinessHeadline.Get(HeadlineName) then begin` +## Description: diff --git a/dataset/problemstatement/microsoftInternal__NAV-224668__cf-2/README.md b/dataset/problemstatement/microsoftInternal__NAV-224668__cf-2/README.md new file mode 100644 index 000000000..e581f98fe --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-224668__cf-2/README.md @@ -0,0 +1,22 @@ +# Title: [Headlines] Certain headlines are not hidden because the record Get fails while attempting to set visibility field to false +## Repro Steps: +Headlines are always created with a headline name + user security id as seen below. + +```al +if not Get(HeadlineName, UserSecurityId()) then begin + Init(); + Validate("Headline Name", HeadlineName); + Validate("User Id", UserSecurityId()); + if not Insert() then exit; +end; +``` + + +However when a headline fx Overdue invoices are suppose to be hidden, when it tries to find the headline, it does not append the user security id to the Get(, ). It only uses Get() which will always fail. + +This does not error out because the error is trapped with a if/else + +Additionally, if the headline is already hidden, no database update should be performed. + +in file EssentialBusHeadlineMgt.Codeunit.al `if EssentialBusinessHeadline.Get(HeadlineName) then begin` +## Description: diff --git a/dataset/problemstatement/microsoftInternal__NAV-224668__cf-3/README.md b/dataset/problemstatement/microsoftInternal__NAV-224668__cf-3/README.md new file mode 100644 index 000000000..205d65a37 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-224668__cf-3/README.md @@ -0,0 +1,22 @@ +# Title: [Headlines] Certain headlines are not hidden because the record Get fails while attempting to set visibility field to false +## Repro Steps: +Headlines are always created with a headline name + user security id as seen below. + +```al +if not Get(HeadlineName, UserSecurityId()) then begin + Init(); + Validate("Headline Name", HeadlineName); + Validate("User Id", UserSecurityId()); + if not Insert() then exit; +end; +``` + + +However when a headline fx Overdue invoices are suppose to be hidden, when it tries to find the headline, it does not append the user security id to the Get(, ). It only uses Get() which will always fail. + +This does not error out because the error is trapped with a if/else + +If the headline record does not exist for the user, it should be created and set to hidden. + +in file EssentialBusHeadlineMgt.Codeunit.al `if EssentialBusinessHeadline.Get(HeadlineName) then begin` +## Description: diff --git a/dataset/problemstatement/microsoftInternal__NAV-226875__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-226875__cf-1/README.md new file mode 100644 index 000000000..dc378b39a --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-226875__cf-1/README.md @@ -0,0 +1,15 @@ +# Title: Payables Journal Lines entered will populate the Vendor Name column with the Description of the G/L Account and not just the Description column +## Repro Steps: +Search for Purchase Journals - Make sure Vendor Name column is shown through Personalization. +Enter Today's Date as the Posting Date +Select Account Type of G/L Account and select Account Number (64100 - Office Supplies) +Result: The Description is populated with the Account Name as shown and is expected. However, the column labelled Vendor Name is populated with the Account No, Description, too, which is unexpected. + +If the user enters through the line and selects the Bal. Account Type Vendor and Enters a Bal. Account No. of 10000, the Vendor Name column still doesn't show the Vendor Name validated. + +**Expected Outcome:** +Validation of the G/L Account No. doesn't fill in the Vendor Name, and Vendor Name is only populated for Vendor account type with Document Type Invoice. + +**Actual Outcome:** +When a User selects an Account Type of GL Account, it puts the G/L Account Name into the Description field AND the Vendor Name column. +## Description: diff --git a/dataset/problemstatement/microsoftInternal__NAV-227153__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-227153__cf-1/README.md new file mode 100644 index 000000000..72136654f --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-227153__cf-1/README.md @@ -0,0 +1,33 @@ +# Title: Report Reconcile Customer and Vendor Accounts should only show amounts for entries matching the customer's current posting group +## Repro Steps: +The "Allow Multiple Posting Groups" is Enabled +![Sales Receivables Setup](./sales_receivables_setup.png) +Different Receivables Account is being assigned to the specific Customer Posting Groups +![Customer Posting Groups](./customer_posting_groups.png) +Alternative Customer Posting Group (TEST) is assigned to DOMESTIC +![Alternative Posting Group](./alternative_posting_group.png) +Allow Multiple Posting Group is also Enabled in the specific Customer Card +![Customer Card](./customer_card.png) +In General Journal, we made 2 payments with posting date (1/1/2027) for the same customer using the Customer Posting Group (Domestic and Test) respectively +![General Journal](./general_journal.png) +In Posted General Journal, we confirmed that the Customer Ledger Entries correctly shows the Customer Posting Groups used in this scenario +![Customer Ledger Entries](./customer_ledger_entries.png) +Using Report ID 33 +![Reconcile Customer and Vendor Accounts](./reconcile_customer_and_vendor_accounts.png) + +The Report currently considers only the booking group at the debtor/creditor level instead of at the individual debtor/creditor entry level. +![report](./report.png) + +**Expected Outcome:** +Individual debtor/creditor entry level should be considered, but only for entries matching the customer's current posting group. + +**Actual Outcome:** +The Report currently considers only the booking group at the debtor/creditor level instead of at the individual debtor/creditor entry level. + +**Troubleshooting Actions Taken:** +Replicated the issue and noticed the faulty data + +**Did the partner reproduce the issue in a Sandbox without extensions?** Yes + +## Description: +The customer reports that Microsoft Standard Report ID 33 produces faulty data starting from Business Central version 20. The report incorrectly considers only the booking group at the debtor/creditor level instead of at the individual debtor/creditor entry level. Additionally, the report should only include entries whose posting group matches the customer's current Customer Posting Group, filtering out entries posted under alternative posting groups. diff --git a/dataset/problemstatement/microsoftInternal__NAV-227153__cf-1/alternative_posting_group.png b/dataset/problemstatement/microsoftInternal__NAV-227153__cf-1/alternative_posting_group.png new file mode 100644 index 000000000..861581d32 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-227153__cf-1/alternative_posting_group.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-227153__cf-1/customer_card.png b/dataset/problemstatement/microsoftInternal__NAV-227153__cf-1/customer_card.png new file mode 100644 index 000000000..45f217d73 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-227153__cf-1/customer_card.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-227153__cf-1/customer_ledger_entries.png b/dataset/problemstatement/microsoftInternal__NAV-227153__cf-1/customer_ledger_entries.png new file mode 100644 index 000000000..6a980ebf4 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-227153__cf-1/customer_ledger_entries.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-227153__cf-1/customer_posting_groups.png b/dataset/problemstatement/microsoftInternal__NAV-227153__cf-1/customer_posting_groups.png new file mode 100644 index 000000000..ce954eab0 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-227153__cf-1/customer_posting_groups.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-227153__cf-1/general_journal.png b/dataset/problemstatement/microsoftInternal__NAV-227153__cf-1/general_journal.png new file mode 100644 index 000000000..01825e97a Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-227153__cf-1/general_journal.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-227153__cf-1/reconcile_customer_and_vendor_accounts.png b/dataset/problemstatement/microsoftInternal__NAV-227153__cf-1/reconcile_customer_and_vendor_accounts.png new file mode 100644 index 000000000..fe3beade6 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-227153__cf-1/reconcile_customer_and_vendor_accounts.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-227153__cf-1/report.png b/dataset/problemstatement/microsoftInternal__NAV-227153__cf-1/report.png new file mode 100644 index 000000000..42df72044 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-227153__cf-1/report.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-227153__cf-1/sales_receivables_setup.png b/dataset/problemstatement/microsoftInternal__NAV-227153__cf-1/sales_receivables_setup.png new file mode 100644 index 000000000..3e7a44442 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-227153__cf-1/sales_receivables_setup.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-227153__cf-2/README.md b/dataset/problemstatement/microsoftInternal__NAV-227153__cf-2/README.md new file mode 100644 index 000000000..ce0e19b20 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-227153__cf-2/README.md @@ -0,0 +1,33 @@ +# Title: Report Reconcile Customer and Vendor Accounts should only include Payment-type entries when multiple posting groups are used +## Repro Steps: +The "Allow Multiple Posting Groups" is Enabled +![Sales Receivables Setup](./sales_receivables_setup.png) +Different Receivables Account is being assigned to the specific Customer Posting Groups +![Customer Posting Groups](./customer_posting_groups.png) +Alternative Customer Posting Group (TEST) is assigned to DOMESTIC +![Alternative Posting Group](./alternative_posting_group.png) +Allow Multiple Posting Group is also Enabled in the specific Customer Card +![Customer Card](./customer_card.png) +In General Journal, we made 2 payments with posting date (1/1/2027) for the same customer using the Customer Posting Group (Domestic and Test) respectively +![General Journal](./general_journal.png) +In Posted General Journal, we confirmed that the Customer Ledger Entries correctly shows the Customer Posting Groups used in this scenario +![Customer Ledger Entries](./customer_ledger_entries.png) +Using Report ID 33 +![Reconcile Customer and Vendor Accounts](./reconcile_customer_and_vendor_accounts.png) + +The Report currently considers only the booking group at the debtor/creditor level instead of at the individual debtor/creditor entry level. +![report](./report.png) + +**Expected Outcome:** +Individual debtor/creditor entry level should be considered, but only for Payment-type document entries. Invoice and other document types should be excluded from the reconciliation amounts. + +**Actual Outcome:** +The Report currently considers only the booking group at the debtor/creditor level instead of at the individual debtor/creditor entry level, and does not distinguish between document types. + +**Troubleshooting Actions Taken:** +Replicated the issue and noticed the faulty data + +**Did the partner reproduce the issue in a Sandbox without extensions?** Yes + +## Description: +The customer reports that Microsoft Standard Report ID 33 produces faulty data starting from Business Central version 20. The report incorrectly considers only the booking group at the debtor/creditor level instead of at the individual debtor/creditor entry level. Furthermore, the reconciliation should only aggregate Payment-type entries, excluding Invoices and other document types from the calculated amounts. diff --git a/dataset/problemstatement/microsoftInternal__NAV-227153__cf-2/alternative_posting_group.png b/dataset/problemstatement/microsoftInternal__NAV-227153__cf-2/alternative_posting_group.png new file mode 100644 index 000000000..861581d32 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-227153__cf-2/alternative_posting_group.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-227153__cf-2/customer_card.png b/dataset/problemstatement/microsoftInternal__NAV-227153__cf-2/customer_card.png new file mode 100644 index 000000000..45f217d73 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-227153__cf-2/customer_card.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-227153__cf-2/customer_ledger_entries.png b/dataset/problemstatement/microsoftInternal__NAV-227153__cf-2/customer_ledger_entries.png new file mode 100644 index 000000000..6a980ebf4 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-227153__cf-2/customer_ledger_entries.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-227153__cf-2/customer_posting_groups.png b/dataset/problemstatement/microsoftInternal__NAV-227153__cf-2/customer_posting_groups.png new file mode 100644 index 000000000..ce954eab0 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-227153__cf-2/customer_posting_groups.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-227153__cf-2/general_journal.png b/dataset/problemstatement/microsoftInternal__NAV-227153__cf-2/general_journal.png new file mode 100644 index 000000000..01825e97a Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-227153__cf-2/general_journal.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-227153__cf-2/reconcile_customer_and_vendor_accounts.png b/dataset/problemstatement/microsoftInternal__NAV-227153__cf-2/reconcile_customer_and_vendor_accounts.png new file mode 100644 index 000000000..fe3beade6 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-227153__cf-2/reconcile_customer_and_vendor_accounts.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-227153__cf-2/report.png b/dataset/problemstatement/microsoftInternal__NAV-227153__cf-2/report.png new file mode 100644 index 000000000..42df72044 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-227153__cf-2/report.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-227153__cf-2/sales_receivables_setup.png b/dataset/problemstatement/microsoftInternal__NAV-227153__cf-2/sales_receivables_setup.png new file mode 100644 index 000000000..3e7a44442 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-227153__cf-2/sales_receivables_setup.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-227219__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-227219__cf-1/README.md new file mode 100644 index 000000000..007fa1796 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-227219__cf-1/README.md @@ -0,0 +1,31 @@ +# Title: Variant mandatory if exists is not checked in transfer orders +## Repro Steps: +Tested in CZ version 26.4 but appears in W1 as well + +1- Open the inventory setup and enable "Variant mandatory if exists": +![Inventory Setup](./inventory_setup.png) +2- Check an item with zero inventory and does not exist in any document lines: (by default item 1925 does not have) +![Item List](./item_list.png) +![Item Card](./item_card.png) +3- Open the variants and add 2 codes: +![Item Card Variants](./item_card_variants.png) +![Item Variants](./item_variants.png) +4- Open a new transfer order, add the below details: +![Transfer Order](./transfer_order.png) +5- Release the document (only validation should occur when status is Open): +![Transfer Order Released](./transfer_order_released.png) +The system should show an error that variant code is does not exist. + +6- If we added the same item in a sales or purchase order and released the order we get the below error: +![Sales Order Error](./sales_order_error.png) + +Error message: +Variant Code must have a value in Sales Line: Document Type=Order, Document No.=101010, Line No.=10000. It cannot be zero or empty. + +**Actual Outcome:** +Document is released without adding a variant code. + +**Expected Outcome:** +The system should not allow the transfer order to be released when status is Open. The same error as in the PO and SO should be shown. + +## Description: diff --git a/dataset/problemstatement/microsoftInternal__NAV-227219__cf-1/inventory_setup.png b/dataset/problemstatement/microsoftInternal__NAV-227219__cf-1/inventory_setup.png new file mode 100644 index 000000000..845d89300 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-227219__cf-1/inventory_setup.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-227219__cf-1/item_card.png b/dataset/problemstatement/microsoftInternal__NAV-227219__cf-1/item_card.png new file mode 100644 index 000000000..7e472f71b Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-227219__cf-1/item_card.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-227219__cf-1/item_card_variants.png b/dataset/problemstatement/microsoftInternal__NAV-227219__cf-1/item_card_variants.png new file mode 100644 index 000000000..79e49899e Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-227219__cf-1/item_card_variants.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-227219__cf-1/item_list.png b/dataset/problemstatement/microsoftInternal__NAV-227219__cf-1/item_list.png new file mode 100644 index 000000000..07b1dec4b Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-227219__cf-1/item_list.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-227219__cf-1/item_variants.png b/dataset/problemstatement/microsoftInternal__NAV-227219__cf-1/item_variants.png new file mode 100644 index 000000000..abeac4596 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-227219__cf-1/item_variants.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-227219__cf-1/sales_order_error.png b/dataset/problemstatement/microsoftInternal__NAV-227219__cf-1/sales_order_error.png new file mode 100644 index 000000000..8a6c62939 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-227219__cf-1/sales_order_error.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-227219__cf-1/transfer_order.png b/dataset/problemstatement/microsoftInternal__NAV-227219__cf-1/transfer_order.png new file mode 100644 index 000000000..b4cd04da3 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-227219__cf-1/transfer_order.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-227219__cf-1/transfer_order_released.png b/dataset/problemstatement/microsoftInternal__NAV-227219__cf-1/transfer_order_released.png new file mode 100644 index 000000000..799e220f2 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-227219__cf-1/transfer_order_released.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-227358__cf-1/README.md b/dataset/problemstatement/microsoftInternal__NAV-227358__cf-1/README.md new file mode 100644 index 000000000..1dbbf5514 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-227358__cf-1/README.md @@ -0,0 +1,46 @@ +# Title: "The changes to the Gen. Journal Line record cannot be saved because some information is not up-to-date" error when posting Recurring General Journal and the Unlink Incoming Document on Posting option is activated. +## Repro Steps: +Take any BC 25.5 / BC 26.x environment. +1. Go to General Journal Template, create a new one + Name = Test + Type = General + Recurring = True + Bal. Account Type = G/L Account + Force Doc. Bal./Copy VAT setup to Jnl. Line/Unlink Incoming Document on Posting = True. + +2. Go to Recurring General Journal and Create a batch for the journal template. + Name = New Test + Bal. Account Type = G/L Account + Copy VAT setup to Jnl. Line= True. + +3. From the general journal batches page, click "General Journal" from the top navigation and select "Recurring General Journal" to open the recurring general journal page. + +4. Enter the 3 lines as seen in the screenshot below: +![Recurring General Journals](./recurring_general_journals.png) + +5. Make sure your posting date is lower or same as your date in the settings page. + +6. Post the lines. + +**Expected Outcome:** +The recurring general journal lines should be posted, and unlinking should only occur when Incoming Document Entry No. is not zero. + +**Actual Outcome:** +The recurring general journal lines is not posted, and an error is generated. +![Error Message](./error_message.png) + +**Troubleshooting Actions Taken:** +Tested in BC 26.4 and 25.5 + +Error in function UnlinkIncDocFromGenJnlLine +A Modify after a Commit, throws an error, as the Record is not pulled from the Database after a Commit. When using the new function in Templates to Unlink Incoming Documents on Posting (Field 34, Table 80). + +Codeunit 13 +Line 1525 Functioncall UnlinkIncDocFromGenJnlLine + +Function UnlinkIncDocFromGenJnlLine Line 1019 GenJnlLine.Modify(); + +**Did the partner reproduce the issue in a Sandbox without extensions?** Yes + +## Description: +"The changes to the Gen. Journal Line record cannot be saved because some information is not up-to-date" error when posting Recurring General Journal and the Unlink Incoming Document on Posting option is activated. diff --git a/dataset/problemstatement/microsoftInternal__NAV-227358__cf-1/error_message.png b/dataset/problemstatement/microsoftInternal__NAV-227358__cf-1/error_message.png new file mode 100644 index 000000000..d710cf71c Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-227358__cf-1/error_message.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-227358__cf-1/recurring_general_journals.png b/dataset/problemstatement/microsoftInternal__NAV-227358__cf-1/recurring_general_journals.png new file mode 100644 index 000000000..969498ee0 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-227358__cf-1/recurring_general_journals.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-227358__cf-2/README.md b/dataset/problemstatement/microsoftInternal__NAV-227358__cf-2/README.md new file mode 100644 index 000000000..0253b7ee3 --- /dev/null +++ b/dataset/problemstatement/microsoftInternal__NAV-227358__cf-2/README.md @@ -0,0 +1,46 @@ +# Title: "The changes to the Gen. Journal Line record cannot be saved because some information is not up-to-date" error when posting Recurring General Journal and the Unlink Incoming Document on Posting option is activated. +## Repro Steps: +Take any BC 25.5 / BC 26.x environment. +1. Go to General Journal Template, create a new one + Name = Test + Type = General + Recurring = True + Bal. Account Type = G/L Account + Force Doc. Bal./Copy VAT setup to Jnl. Line/Unlink Incoming Document on Posting = True. + +2. Go to Recurring General Journal and Create a batch for the journal template. + Name = New Test + Bal. Account Type = G/L Account + Copy VAT setup to Jnl. Line= True. + +3. From the general journal batches page, click "General Journal" from the top navigation and select "Recurring General Journal" to open the recurring general journal page. + +4. Enter the 3 lines as seen in the screenshot below: +![Recurring General Journals](./recurring_general_journals.png) + +5. Make sure your posting date is lower or same as your date in the settings page. + +6. Post the lines. + +**Expected Outcome:** +The recurring general journal lines should be posted, and unlinking should not be executed during posting. + +**Actual Outcome:** +The recurring general journal lines is not posted, and an error is generated. +![Error Message](./error_message.png) + +**Troubleshooting Actions Taken:** +Tested in BC 26.4 and 25.5 + +Error in function UnlinkIncDocFromGenJnlLine +A Modify after a Commit, throws an error, as the Record is not pulled from the Database after a Commit. When using the new function in Templates to Unlink Incoming Documents on Posting (Field 34, Table 80). + +Codeunit 13 +Line 1525 Functioncall UnlinkIncDocFromGenJnlLine + +Function UnlinkIncDocFromGenJnlLine Line 1019 GenJnlLine.Modify(); + +**Did the partner reproduce the issue in a Sandbox without extensions?** Yes + +## Description: +"The changes to the Gen. Journal Line record cannot be saved because some information is not up-to-date" error when posting Recurring General Journal and the Unlink Incoming Document on Posting option is activated. diff --git a/dataset/problemstatement/microsoftInternal__NAV-227358__cf-2/error_message.png b/dataset/problemstatement/microsoftInternal__NAV-227358__cf-2/error_message.png new file mode 100644 index 000000000..d710cf71c Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-227358__cf-2/error_message.png differ diff --git a/dataset/problemstatement/microsoftInternal__NAV-227358__cf-2/recurring_general_journals.png b/dataset/problemstatement/microsoftInternal__NAV-227358__cf-2/recurring_general_journals.png new file mode 100644 index 000000000..969498ee0 Binary files /dev/null and b/dataset/problemstatement/microsoftInternal__NAV-227358__cf-2/recurring_general_journals.png differ diff --git a/dataset/problemstatement/microsoft__BCApps-4699__cf-1/README.md b/dataset/problemstatement/microsoft__BCApps-4699__cf-1/README.md new file mode 100644 index 000000000..0d92df2fc --- /dev/null +++ b/dataset/problemstatement/microsoft__BCApps-4699__cf-1/README.md @@ -0,0 +1,57 @@ +# Title: Shopify - import from Shopify and create Item logic ignores Shopify Shop currency +## Repro Steps: +Shopify store with currency DKK (andreipa-catalogs) +create product with price 5000 (or any other item) + +In BC +Currency Code = DKK. +Sync Item = From Shopify +Auto Create Unknown Items = Yes +Item Template Code = ITEM (something) + +Run Sync ITems. Explore created items. +Notice that Price in the item card is 5000, but only Unit Price should be converted from DKK to USD with exchange rate. + +![Shopify Added Product](./shopify_added_product.png) + +![Shopify Shop Card](./shopify_shop_card.png) + +![Shopify Products](./shopify_products.png) +(this is correct as this is price we imported) +but in created item it is also 5000 +![Item Card](./item_card.png) + +Also when export items, the price is not recalculated. +I see same behavior in 26.4 so it is not recent regression. But I'm pretty sure it worked differently in the past: +Synchronize items and inventory - Business Central | Microsoft Learn +[Sync prices with Shopify](https://learn.microsoft.com/en-us/dynamics365/business-central/shopify/synchronize-items#sync-prices-with-shopify) + +![Shopify Doc - Sync Prices with Shopify](./doc_sync_prices_with_shopify.png) + +## Description: + + +## Hints + +I mean this part: +src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al + +if ShopifyVariant."Unit Cost" <> 0 then + Item.Validate("Unit Cost", ShopifyVariant."Unit Cost"); + +if ShopifyVariant.Price <> 0 then + Item.Validate("Unit Price", ShopifyVariant.Price); + +We need to wrap it with currency exchange + +should be "1 liner" +App/Layers/W1/BaseApp/Finance/Currency/CurrencyExchangeRate.Table.al + procedure ExchangeAmtFCYToLCY(Date: Date; CurrencyCode: Code[10]; Amount: Decimal; Factor: Decimal): Decimal + +I would check usages in BaseApp like this: +BankAccCurrentBalanceLCY := + Round( + CurrExchRate.ExchangeAmtFCYToLCY( + WorkDate(), Currency.Code, "Balance at Date", + CurrExchRate.ExchangeRate( + WorkDate(), Currency.Code))); diff --git a/dataset/problemstatement/microsoft__BCApps-4699__cf-1/doc_sync_prices_with_shopify.png b/dataset/problemstatement/microsoft__BCApps-4699__cf-1/doc_sync_prices_with_shopify.png new file mode 100644 index 000000000..54203aafa Binary files /dev/null and b/dataset/problemstatement/microsoft__BCApps-4699__cf-1/doc_sync_prices_with_shopify.png differ diff --git a/dataset/problemstatement/microsoft__BCApps-4699__cf-1/item_card.png b/dataset/problemstatement/microsoft__BCApps-4699__cf-1/item_card.png new file mode 100644 index 000000000..6623440d9 Binary files /dev/null and b/dataset/problemstatement/microsoft__BCApps-4699__cf-1/item_card.png differ diff --git a/dataset/problemstatement/microsoft__BCApps-4699__cf-1/shopify_added_product.png b/dataset/problemstatement/microsoft__BCApps-4699__cf-1/shopify_added_product.png new file mode 100644 index 000000000..0b3c74a60 Binary files /dev/null and b/dataset/problemstatement/microsoft__BCApps-4699__cf-1/shopify_added_product.png differ diff --git a/dataset/problemstatement/microsoft__BCApps-4699__cf-1/shopify_products.png b/dataset/problemstatement/microsoft__BCApps-4699__cf-1/shopify_products.png new file mode 100644 index 000000000..b9ac26abf Binary files /dev/null and b/dataset/problemstatement/microsoft__BCApps-4699__cf-1/shopify_products.png differ diff --git a/dataset/problemstatement/microsoft__BCApps-4699__cf-1/shopify_shop_card.png b/dataset/problemstatement/microsoft__BCApps-4699__cf-1/shopify_shop_card.png new file mode 100644 index 000000000..5da7c5794 Binary files /dev/null and b/dataset/problemstatement/microsoft__BCApps-4699__cf-1/shopify_shop_card.png differ diff --git a/dataset/problemstatement/microsoft__BCApps-4822__cf-1/README.md b/dataset/problemstatement/microsoft__BCApps-4822__cf-1/README.md new file mode 100644 index 000000000..07d2e38c8 --- /dev/null +++ b/dataset/problemstatement/microsoft__BCApps-4822__cf-1/README.md @@ -0,0 +1,14 @@ +# Title: Shopify - Export customer as location - Sell-to and Bill-to are missing +## Repro Steps: +repro - not sure, please assign back if you cannot repro + +I exported two companies. +One is normal and another one has another (third) defined as bill-to, and Bill-to should always be copied even if empty. + +![Add Customer as Shopify Location](./add_cust_as_shopify_location.png) + +![Customer Card](./customer_card.png) + +Shopify Shop +![B2B Company Sync](./b2b_company_sync.png) +## Description: diff --git a/dataset/problemstatement/microsoft__BCApps-4822__cf-1/add_cust_as_shopify_location.png b/dataset/problemstatement/microsoft__BCApps-4822__cf-1/add_cust_as_shopify_location.png new file mode 100644 index 000000000..bd9a95b97 Binary files /dev/null and b/dataset/problemstatement/microsoft__BCApps-4822__cf-1/add_cust_as_shopify_location.png differ diff --git a/dataset/problemstatement/microsoft__BCApps-4822__cf-1/b2b_company_sync.png b/dataset/problemstatement/microsoft__BCApps-4822__cf-1/b2b_company_sync.png new file mode 100644 index 000000000..90763a216 Binary files /dev/null and b/dataset/problemstatement/microsoft__BCApps-4822__cf-1/b2b_company_sync.png differ diff --git a/dataset/problemstatement/microsoft__BCApps-4822__cf-1/customer_card.png b/dataset/problemstatement/microsoft__BCApps-4822__cf-1/customer_card.png new file mode 100644 index 000000000..9b07d79a1 Binary files /dev/null and b/dataset/problemstatement/microsoft__BCApps-4822__cf-1/customer_card.png differ diff --git a/dataset/problemstatement/microsoft__BCApps-4822__cf-2/README.md b/dataset/problemstatement/microsoft__BCApps-4822__cf-2/README.md new file mode 100644 index 000000000..d2e0c0e0f --- /dev/null +++ b/dataset/problemstatement/microsoft__BCApps-4822__cf-2/README.md @@ -0,0 +1,14 @@ +# Title: Shopify - Export customer as location - Sell-to and Bill-to are missing +## Repro Steps: +repro - not sure, please assign back if you cannot repro + +I exported two companies. +One is normal and another one has another (third) defined as bill-to, and Sell-to should only be set when customer No. is not empty. + +![Add Customer as Shopify Location](./add_cust_as_shopify_location.png) + +![Customer Card](./customer_card.png) + +Shopify Shop +![B2B Company Sync](./b2b_company_sync.png) +## Description: diff --git a/dataset/problemstatement/microsoft__BCApps-4822__cf-2/add_cust_as_shopify_location.png b/dataset/problemstatement/microsoft__BCApps-4822__cf-2/add_cust_as_shopify_location.png new file mode 100644 index 000000000..bd9a95b97 Binary files /dev/null and b/dataset/problemstatement/microsoft__BCApps-4822__cf-2/add_cust_as_shopify_location.png differ diff --git a/dataset/problemstatement/microsoft__BCApps-4822__cf-2/b2b_company_sync.png b/dataset/problemstatement/microsoft__BCApps-4822__cf-2/b2b_company_sync.png new file mode 100644 index 000000000..90763a216 Binary files /dev/null and b/dataset/problemstatement/microsoft__BCApps-4822__cf-2/b2b_company_sync.png differ diff --git a/dataset/problemstatement/microsoft__BCApps-4822__cf-2/customer_card.png b/dataset/problemstatement/microsoft__BCApps-4822__cf-2/customer_card.png new file mode 100644 index 000000000..9b07d79a1 Binary files /dev/null and b/dataset/problemstatement/microsoft__BCApps-4822__cf-2/customer_card.png differ diff --git a/dataset/problemstatement/microsoft__BCApps-5633__cf-1/README.md b/dataset/problemstatement/microsoft__BCApps-5633__cf-1/README.md new file mode 100644 index 000000000..5ca950c1f --- /dev/null +++ b/dataset/problemstatement/microsoft__BCApps-5633__cf-1/README.md @@ -0,0 +1,55 @@ +# Shopify - error handling of fulfilment of orders that are associated with 3rd party services + +you need to import orders + +![Shopify Orders](./shopify_orders.png) + +1733 +1732 +1731 +(with tag 3rd) + +Connect BC to Shopify. Logging = full. +Use default customer. +auto create items = true, item template = something. + +Reset order sycn. date = 11/20/2025 + +Navigate to orders, sync orders. filter by tag *3rd* + +Create orders in Business Central (customer is default, item to be created autoamtically) + +![Shopify Orders BC](./shopify_orders_bc.png) + +naviagate to sales orders, find these orders and use Batch Post to post shipment only + +![Sales Orders](./sales_orders.png) + +![Batch Post Sales Orders](./batch_post_sales_orders.png) + +Back t Shopify orders, run Sync Shipment to Shopify + +You get notification: + +![Shopify Orders Notification](./shopify_orders_notification.png) + +![Shopify Skipped Records](./shopify_skipped_records.png) + +IF you check Shop log, +There were attempts to create fulfilments: + +![Shopify Log Entries](./shopify_log_entries.png) + +but they failed: + +Request: +{"query": "mutation {fulfillmentCreate( fulfillment: {notifyCustomer: true, lineItemsByFulfillmentOrder: [{fulfillmentOrderId: "gid://shopify/FulfillmentOrder/8077883081002 ",fulfillmentOrderLineItems: [{id: "gid://shopify/FulfillmentOrderLineItem/18126922350890 ",quantity: 10}]}]}){fulfillment { legacyResourceId name createdAt updatedAt deliveredAt displayStatus estimatedDeliveryAt status totalQuantity location { legacyResourceId } trackingInfo { number url company } service { serviceName type } fulfillmentLineItems(first: 10) { pageInfo { endCursor hasNextPage } nodes { id quantity originalTotalSet { presentmentMoney { amount } shopMoney { amount }} lineItem { id isGiftCard }}}}, userErrors {field,message}}}"} + +Response: +{"data":{"fulfillmentCreate":{"fulfillment":null,"userErrors":[{"field":["fulfillment"],"message":"The api_client does not have access to the fulfillment order."}]}},"extensions":{"cost":{"requestedQueryCost":23,"actualQueryCost":10,"throttleStatus":{"maximumAvailable":2000.0,"currentlyAvailable":1990,"restoreRate":100.0}}}} + +Is it expected behavior that we both fail in Shopify Logs and also in Skipped entries? + +Can we skip exporting this Shipment if it is associated with fulfilment from 3rd party, except when it is the default fulfillment service? + +![Shopify Shop Locations](./shopify_shop_locations.png) diff --git a/dataset/problemstatement/microsoft__BCApps-5633__cf-1/batch_post_sales_orders.png b/dataset/problemstatement/microsoft__BCApps-5633__cf-1/batch_post_sales_orders.png new file mode 100644 index 000000000..1b0dc8717 Binary files /dev/null and b/dataset/problemstatement/microsoft__BCApps-5633__cf-1/batch_post_sales_orders.png differ diff --git a/dataset/problemstatement/microsoft__BCApps-5633__cf-1/sales_orders.png b/dataset/problemstatement/microsoft__BCApps-5633__cf-1/sales_orders.png new file mode 100644 index 000000000..1c9353cd7 Binary files /dev/null and b/dataset/problemstatement/microsoft__BCApps-5633__cf-1/sales_orders.png differ diff --git a/dataset/problemstatement/microsoft__BCApps-5633__cf-1/shopify_log_entries.png b/dataset/problemstatement/microsoft__BCApps-5633__cf-1/shopify_log_entries.png new file mode 100644 index 000000000..af31f02c1 Binary files /dev/null and b/dataset/problemstatement/microsoft__BCApps-5633__cf-1/shopify_log_entries.png differ diff --git a/dataset/problemstatement/microsoft__BCApps-5633__cf-1/shopify_orders.png b/dataset/problemstatement/microsoft__BCApps-5633__cf-1/shopify_orders.png new file mode 100644 index 000000000..83a076969 Binary files /dev/null and b/dataset/problemstatement/microsoft__BCApps-5633__cf-1/shopify_orders.png differ diff --git a/dataset/problemstatement/microsoft__BCApps-5633__cf-1/shopify_orders_bc.png b/dataset/problemstatement/microsoft__BCApps-5633__cf-1/shopify_orders_bc.png new file mode 100644 index 000000000..df3b98ef7 Binary files /dev/null and b/dataset/problemstatement/microsoft__BCApps-5633__cf-1/shopify_orders_bc.png differ diff --git a/dataset/problemstatement/microsoft__BCApps-5633__cf-1/shopify_orders_notification.png b/dataset/problemstatement/microsoft__BCApps-5633__cf-1/shopify_orders_notification.png new file mode 100644 index 000000000..002e508b2 Binary files /dev/null and b/dataset/problemstatement/microsoft__BCApps-5633__cf-1/shopify_orders_notification.png differ diff --git a/dataset/problemstatement/microsoft__BCApps-5633__cf-1/shopify_shop_locations.png b/dataset/problemstatement/microsoft__BCApps-5633__cf-1/shopify_shop_locations.png new file mode 100644 index 000000000..be08cac38 Binary files /dev/null and b/dataset/problemstatement/microsoft__BCApps-5633__cf-1/shopify_shop_locations.png differ diff --git a/dataset/problemstatement/microsoft__BCApps-5633__cf-1/shopify_skipped_records.png b/dataset/problemstatement/microsoft__BCApps-5633__cf-1/shopify_skipped_records.png new file mode 100644 index 000000000..7d51ad9bc Binary files /dev/null and b/dataset/problemstatement/microsoft__BCApps-5633__cf-1/shopify_skipped_records.png differ diff --git a/docs/_data/cf.json b/docs/_data/cf.json new file mode 100644 index 000000000..a04427fa4 --- /dev/null +++ b/docs/_data/cf.json @@ -0,0 +1,4 @@ +{ + "runs": [], + "aggregate": [] +} diff --git a/evaluator/counterfactual_scores.py b/evaluator/counterfactual_scores.py new file mode 100644 index 000000000..7fb458859 --- /dev/null +++ b/evaluator/counterfactual_scores.py @@ -0,0 +1,18 @@ +"""Counterfactual evaluation scorers in Braintrust scorer format.""" + +from __future__ import annotations + + +class FamilyFragilityRate: + def __call__(self, *, metadata: dict, **kwargs: object) -> bool: + return metadata.get("fragile", False) + + +class FamilySeverity: + def __call__(self, *, metadata: dict, **kwargs: object) -> float | None: + return metadata.get("severity") + + +class FamilyStability: + def __call__(self, *, metadata: dict, **kwargs: object) -> bool: + return metadata.get("stable", False) diff --git a/notebooks/counterfactual-evaluation/ANNOTATION_HANDBOOK.md b/notebooks/counterfactual-evaluation/ANNOTATION_HANDBOOK.md new file mode 100644 index 000000000..cb29e34a4 --- /dev/null +++ b/notebooks/counterfactual-evaluation/ANNOTATION_HANDBOOK.md @@ -0,0 +1,391 @@ +# Failure-Layer Annotation Handbook (AL Counterfactual Diagnosis) + +Draft framework — sections marked **⟨FILL⟩** need real examples drawn from the +annotated dataset before the protocol is frozen. Everything else is ready to use. + +This handbook governs the **post-hoc** assignment of a *primary failure layer* to +each failed model output in the counterfactual evaluation. It is the reference that +annotators consult while filling the CSV produced by +`bcbench.analysis.annotation.sample_failures` / `write_annotation_csv`. + +--- + +## 1. Purpose and scope + +- **Unit of annotation:** one *failed instance* (a base or CF run whose + `FAIL_TO_PASS` tests did not all pass), not a family. +- **Goal:** record the single abstraction layer at which the model's solution + *first* breaks, so we can test H3 (AL failures concentrate in higher layers). +- **What we do NOT do here:** we do not score correctness (that is the execution + pipeline's job), and we do not label passing instances. + +### Core principles + +1. **Post-hoc only.** The layer label is assigned *after* runs exist, from the + model's actual output and error evidence. Layer labels never live in the + dataset and are never shown to the model. (The `failure_layer` field in the + dataset is nulled for exactly this reason.) +2. **Earliest-violation rule.** When a single output violates several layers, + the **primary** layer is the *lowest-numbered* (most fundamental) layer that + is violated. Everything above it is treated as a downstream symptom and may be + recorded in `annotator_notes` as secondary, but does not change the primary. +3. **Evidence-grounded.** Every label must cite concrete evidence in + `error_evidence` (a compiler message, a failing assertion, a diff hunk, etc.). + No evidence → the instance goes to adjudication, not a guessed label. +4. **Refinement-permissive.** The taxonomy is a falsifiable instrument. If a + cluster of instances does not fit any layer, log it (Section 7) — do not force + a label. Persistent misfits trigger a taxonomy revision, not silent coercion. + +--- + +## 2. The five-layer taxonomy + +Layers are ordered from most fundamental (L1) to most ecosystem-dependent (L5). +The enum values are the canonical strings written into the CSV +(`bcbench.types.FailureLayer`). + +| Layer | Canonical value | Structural focus | The question it answers | +|-------|-----------------|------------------|-------------------------| +| L1 | `L1-syntax-representation` | Syntax, object declarations, types, signatures | *Is it even valid AL that compiles?* | +| L2 | `L2-execution-validation` | Record lifecycle, validation order, runtime state | *Does it use the runtime/validation model correctly?* | +| L3 | `L3-event-driven-paradigm` | Publisher–subscriber, trigger responsibilities | *Does it extend via events instead of editing core objects?* | +| L4 | `L4-workflow-business-logic` | Multi-step validation / posting / approval composition | *Is the business process composed correctly and completely?* | +| L5 | `L5-toolchain-ecosystem` | Object/event availability, extension architecture | *Does it respect what actually exists and is allowed?* | + +### L1 — Syntax / Representation + +**Assign L1 when** the output is not valid AL or does not compile: malformed +object declarations, illegal triggers, wrong/typoed type or member names, broken +procedure signatures, unbalanced blocks. + +- **Decision rule:** if the compiler rejects the code for a *well-formedness* + reason (malformed syntax, illegal declaration, broken signature), it is L1. + **A compile failure is not automatically L1:** well-formed code that the + compiler rejects because a referenced object/member is *missing or inaccessible* + is **L5**, and a wrong *event* signature may be **L3** (see Section 3 callout). +- **Positive examples (failure *is* L1):** + - Declaring a `trigger OnFooBar()` that does not exist on the object. + - Calling a procedure with the wrong number/type of parameters. + - ⟨FILL: one real compiler-error instance_id + the exact error line⟩ +- **Boundary / NOT L1:** + - Code compiles but assigns a field directly instead of validating → that is + **L2**, not L1. + - Code references an object that does not exist in the extension surface → + prefer **L5** (availability) unless the failure is a pure syntax error. + +### L2 — Execution / Validation Semantics + +**Assign L2 when** the code compiles but misuses the BC runtime model: writing a +field with direct assignment where `Validate` is required, calling `Modify`/ +`Insert` in the wrong lifecycle position, ignoring `Get`/`Find` return values, +missing `TestField` before a state transition, or ordering validations wrongly. + +- **Decision rule:** compiles (passes L1) but the *runtime/validation contract* + is violated. +- **Positive examples:** + - `Rec."No." := X;` instead of `Rec.Validate("No.", X);` when validation logic + must fire. + - `InteractionLogEntry.Modify();` before the dependent field is set, so the + persisted state is wrong (cf. NAV-174087 family pattern). + - ⟨FILL: one real validation-order instance_id + failing assertion⟩ +- **Boundary / NOT L2:** + - The validation is *present and correct* but the model patched the core object + directly instead of subscribing to an event → **L3**. + - All single-step semantics are correct but a required *step in the process* is + missing → **L4**. + +### L3 — Event-Driven Paradigm + +**Assign L3 when** the failure concerns *publisher–subscriber model or trigger +responsibility* — the model put the **logic in the wrong trigger / event**, or +directly modified a core/base object instead of subscribing to events +(thesis taxonomy: *event placement*; Appendix indicator: "modifying core objects +instead of subscribing to events; **logic in wrong trigger**"). + +- **Decision rule:** the defect is *where* the logic is hooked — which + trigger / event / flow runs it — or the *mechanism of extension*, **not** whether + the business steps themselves are complete. Each operation may be locally valid; + the problem is that it lives at the wrong event/trigger site. +- **This is the key L3-vs-L4 distinction:** if the CF moved/placed logic into a + **different trigger, event, or processing flow** (e.g. "moved validation out of + the `OnValidate` trigger", "validation moved from the report to the creation + flow", "fallback triggered after retrieval instead of during calculation", + "filtering deferred to post-processing instead of at the source") → **L3**, not + L4. L4 is about *missing/extra/mis-ordered business steps*, not relocating logic + across triggers/events. +- **Positive examples:** + - `NAV-176194__cf-3` — "validation moved out of the `OnValidate` trigger to the + processing flow": correct logic, wrong trigger site → L3. + - `NAV-201169__cf-3` — "move empty-description validation from the report to the + product-creation flow": event/trigger placement → L3. + - Editing a base-app codeunit body instead of writing an `[EventSubscriber]` for + the relevant published event. +- **Boundary / NOT L3:** + - The logic is at the right trigger/event but a business *step* is missing or a + branch is wrong → **L4**. + - The chosen event/trigger simply does not exist in the toolchain → **L5**. + - A single-field assignment skips `Validate` at the same site → **L2**. + +### L4 — Workflow / Business-Logic Composition + +**Assign L4 when** the individual operations are valid (passes L1–L3) but the +*composition* of the business process is wrong: a missing validation/posting/ +approval step, an incorrect branch, an incomplete multi-step flow, or steps in +the wrong business order (as opposed to the runtime ordering of L2). + +- **Decision rule:** each step is locally correct, but the *process as a whole* + does not implement the required behaviour. +- **Positive examples:** + - Posting without the preceding approval/validation step the spec requires. + - Handling the happy path but dropping a required conditional branch. + - ⟨FILL: one real missing-step instance_id + which step is absent⟩ +- **Boundary / NOT L4:** + - The process is complete but invokes an object/event that is unavailable in + the extension surface → **L5**. + - A single validation is misused at the API level (e.g. no `Validate`) → **L2**. + +### L5 — Toolchain / Ecosystem Constraints + +**Assign L5 when** the failure is about the *ecosystem surface*: referencing an +event, object, field, or API that does not exist or is not accessible from the +extension, or violating extension-architecture constraints (e.g. modifying +something the extension model forbids). + +- **Decision rule:** the code's intent could be valid, but it assumes a toolchain + reality that does not hold. +- **Positive examples:** + - Subscribing to a non-existent event, or calling a method not exposed to + extensions. + - Assuming a table/field that the target app version does not provide. + - ⟨FILL: one real non-existent-object instance_id⟩ +- **Boundary / NOT L5:** + - The object exists and is accessible, but is edited directly rather than via + an event → **L3**. + - The reference is simply a typo of an existing member → **L1**. + +--- + +## 3. Primary-failure decision procedure (flowchart) + +Apply the checks **in order, L1 → L5, and stop at the first failure**. The layer +where you stop is the **primary failure layer**. Continue scanning only to record +*secondary* observations in notes. + +```mermaid +flowchart TD + A[Failed instance: read model output + error evidence] --> L1{Compiles / valid AL?} + L1 -- No --> R1[Primary = L1 syntax-representation] + L1 -- Yes --> L2{Runtime + validation semantics correct?
Validate, lifecycle order, TestField, Get/Find checks} + L2 -- No --> R2[Primary = L2 execution-validation] + L2 -- Yes --> L3{Extends via events,
not by editing core objects?} + L3 -- No --> R3[Primary = L3 event-driven-paradigm] + L3 -- Yes --> L4{Business process composed
completely and correctly?} + L4 -- No --> R4[Primary = L4 workflow-business-logic] + L4 -- Yes --> L5{All referenced objects/events exist
and are extension-legal?} + L5 -- No --> R5[Primary = L5 toolchain-ecosystem] + L5 -- Yes --> U[No layer violated by this rule →
send to adjudication / log as taxonomy misfit] +``` + +> Tie-breaking: if two violations appear at the *same* layer, the primary is still +> that layer; pick the one with the strongest evidence for `error_evidence`. +> If you cannot determine whether L_n is satisfied, do **not** skip ahead — mark +> the instance for adjudication. + +> **⚠️ A compile failure is not automatically L1.** L1 means the code is +> *malformed*. Well-formed AL that the compiler still rejects is classified by the +> *reason*, decided by the error code / message: +> - Pure syntax/declaration errors (e.g. `AL0104`, `AL0107`, `AL0110`, `AL0198`, +> `AL0305` name-length) → **L1**. +> - Missing or inaccessible object/member (e.g. `AL0185` "codeunit is missing", +> `AL0161` "inaccessible due to protection level", `AL0842` "Internal +> accessibility") → **L5** (the code is well-formed; the *ecosystem surface* +> does not provide it). +> - Wrong **event** subscriber signature (e.g. `AL0749` on an event method) → may +> be **L3** if the root cause is mis-wiring the event paradigm rather than a typo. +> - `AL0118` "name does not exist in current context" straddles L1 (typo) and L5 +> (real but unavailable object) — decide from the referenced name. + +--- + +## 4. Filling the annotation CSV + +Columns are produced by `bcbench.analysis.annotation.ANNOTATION_COLUMNS`: + +| Column | Who fills | Meaning | +|--------|-----------|---------| +| `family_id`, `instance_id` | pre-filled | identifiers | +| `family_type`, `pattern` | pre-filled | execution outcome context | +| `failure_layer` | pre-filled (blank) | legacy dataset field — leave blank | +| `base_passed`, `cf_passed` | pre-filled | pass/fail context | +| `primary_failure_layer` | **annotator** | one canonical value from Section 2 | +| `error_evidence` | **annotator** | quoted compiler line / assertion / diff hunk | +| `annotator_notes` | **annotator** | secondary layers, doubts, misfit flags | + +Rules: `primary_failure_layer` must be exactly one of the five canonical strings. +`error_evidence` must be non-empty for every labelled row. + +--- + +## 5. Double-annotation and inter-annotator agreement (IAA) + +1. **Sample:** draw a shared subset of **50–80 failed instances** for independent + double annotation (priority order: fragile → unsolved → inconsistent, as + `sample_failures` already sorts). +2. **Independence:** the two annotators label without seeing each other's labels. +3. **Compute IAA** with `bcbench.analysis.annotation.inter_annotator_agreement`, + which returns the raw agreement rate and **Cohen's kappa** over the shared, + non-empty labels. +4. **Interpretation targets (Landis & Koch):** κ ≥ 0.80 excellent, 0.60–0.79 + substantial, 0.40–0.59 moderate, < 0.40 → the rules are too ambiguous; revise + the handbook (Section 2 decision rules) before continuing. +5. **Disagreement resolution:** adjudicate each disagreement, record the final + label, and add the clarified rule/example to this handbook. Re-running IAA + after refinement is encouraged; report the *pre-adjudication* κ in the thesis. + +Example: + +```python +from bcbench.analysis.annotation import inter_annotator_agreement + +result = inter_annotator_agreement(annotator_a, annotator_b) # dict: instance_id -> layer +print(result.n, result.agreement_rate, result.cohen_kappa) +``` + +--- + +## 6. Worked examples + +### 6.1 Prefilled candidates — ⚠️ VERIFY layer attribution + +Sampled across **all four models** (Claude Opus 4.6, Sonnet 4.6, GPT-5.3-Codex, +GPT-5.4) via `sample_failures` and the build logs. Evidence is real — the quoted +`error AL####` is the model's *own* error. The **Tentative layer** is a suggestion +under the earliest-violation rule, **not a confirmed label** — confirm or correct +each before freezing. + +> **⚠️ Read past the noise.** Build logs recurringly include base-app +> *warnings-as-errors* — `AL0749` ("...has 'Internal' accessibility") and `AL0842` +> ("...will not be usable outside of this module") — in core files the model never +> touched. These are **not** the model's failure. Always locate the `error AL####` +> line in a file the model actually modified and use that as `error_evidence`. + +#### L1 candidates (malformed code — real `error AL`) + +- **`microsoftInternal__NAV-183399__cf-2`** (Opus) — `error AL0104: Syntax error, + ';' expected` in `PurchaseJournal.Page.al`. **Tentative: L1**, not confusable. +- **`microsoftInternal__NAV-176082__cf-1`** (Sonnet) — `error AL0110: Orphaned + ELSE statement` (stray semicolon before `ELSE`). **Tentative: L1.** +- **`microsoftInternal__NAV-188438__cf-1`** (GPT-5.4) — `error AL0104: Syntax + error, '}' expected`. **Tentative: L1.** +- **`microsoftInternal__NAV-176082__cf-2`** (GPT-5.3-Codex) — `error AL0118: The + name 'continue' does not exist in the current context`. The model emitted a + Python/C-style `continue`, which is not AL. **Tentative: L1** (cross-language + hallucination — a clean, distinctive L1 case). +- **`microsoftInternal__NAV-174087__cf-2`** (GPT-5.4) — `error AL0305: object + identifier ... cannot exceed 30 characters`. Declaration-rule violation. + **Tentative: L1** (representation). + +#### L5 candidates (well-formed but ecosystem-illegal — real `error AL`) + +- **`microsoftInternal__NAV-185488__cf-1`** (GPT-5.3-Codex) — `error AL0185: + Codeunit 'Data Type Management' is missing`. **Tentative: L5** (availability — + *not* L1; the code is syntactically valid). +- **`microsoftInternal__NAV-218062__cf-1`** (GPT-5.3-Codex) — `error AL0185: + Codeunit 'Warehouse Availability Mgt.' is missing`. **Tentative: L5.** +- **`microsoftInternal__NAV-215972__cf-1`** (GPT-5.3-Codex) — `error AL0161: + 'CheckReservationPolicy(...)' is inaccessible due to its protection level`. The + method exists but is not extension-legal to call. **Tentative: L5.** + *(Note: the same instance fails at **L2** under GPT-5.4 — layer is per failed + output, not per task.)* + +#### L1/L5 boundary — `AL0118` "name does not exist in the current context" + +The same error code spans L1 and L5; decide from the referenced name. + +- **`microsoftInternal__NAV-222092__cf-1` / `__cf-2`** (recurs across Opus, GPT-5.3, + GPT-5.4) — name `"G/L Account"`. A real BC table referenced without it being in + scope → leans **L5** (availability/namespace), unless it is a stray quote → L1. +- **`microsoftInternal__NAV-214557__cf-1`** (GPT-5.4) — name `"Prod. Order + Component"`; same L5-leaning pattern. +- **`microsoftInternal__NAV-174794__cf-2` / `__cf-3`** (Opus) — `error AL0132: + 'Record "Gen. Journal Line" temporary' does not contain a definition for + 'Customer Posting Group'`. The model referenced a field that exists on *Customer* + but not on *Gen. Journal Line* → assumed a member the type does not provide. + **Tentative: L5** (member availability) ⚠️ *Boundary L1* if read as a typo. + *(Correction: an earlier draft mislabelled this L1/L3 from the `AL0749` warning + noise; the model's real error is `AL0132`.)* + +#### L2 candidates (compiled, tests failed — validation semantics) + +- **`microsoftInternal__NAV-205825__cf-1`** (GPT-5.4) — variant *"VAT + Country/Region Code assigned directly without validation does not propagate VAT + setup."* Gold uses `Validate`; the model assigned the value directly, so the + dependent VAT setup never fired. **Tentative: L2** (skipped validation contract). +- **`microsoftInternal__NAV-176194__cf-3`** (GPT-5.4) — variant *"Qty. to Invoice + validation moved out of OnValidate trigger to processing flow."* Validation + relocated away from the field's `OnValidate`. **Tentative: L2.** + +#### L4 candidates (compiled, tests failed — business-logic composition) + +- **`microsoftInternal__NAV-175765__cf-2`** — variant *"Cost adjustment run + before undo transfer shipment instead of after."* Gold orchestrates the + adjustment inside `ItemJnlPostLine`; the model instead inserted + `MakeInventoryAdjustment();` near the **top** of the undo loop in + `UndoTransferShipment.Codeunit.al`. The operations compile and are individually + valid, but the **business step is in the wrong place in the process**. + **Tentative: L4** (workflow ordering). ⚠️ *Boundary L2:* this is process-step + ordering (L4), not runtime/validation ordering of a single record (L2). + +- **`microsoftInternal__NAV-176082__cf-1`** — variant *"Get Receipt Lines filters + by header-level location only instead of line-level location."* Gold adjusts the + filtering rule; the model simply **deleted** the + `SetRange("Location Code", ...)` line. The wrong set of records flows through the + business operation. **Tentative: L4** (business-rule/filter composition). + ⚠️ *Boundary L2:* if you view this as misusing record filtering semantics rather + than the business rule, it is L2 — verify against the failing assertion. + +- **`microsoftInternal__NAV-176150__cf-1`** — variant *"Preview Posting filters by + Production Order No. only instead of full page context."* Gold narrows + `MarkRelevantRec` via `SetRange("Order No.", ...)`; the model added extra + `SetRange` filters at a different call site, producing the wrong record scope. + **Tentative: L4** (business-logic scoping). ⚠️ *Boundary L2* as above. + +#### L3 candidates (event placement / wrong trigger) — recovered with the refined rule + +An earlier draft wrongly concluded "L3 is absent": it searched only for *new* +event publisher/subscriber declarations the model omitted. The thesis L3 definition +is broader — *event placement / logic in the wrong trigger* (Appendix). Under that +rule, GPT-5.3-Codex re-annotation found **13 L3 failures across 5 instances** (all +high-confidence), where the CF moved logic to a different trigger/event/flow: + +- **`NAV-176194__cf-3`** (Opus, GPT-5.4, GPT-5.3) — "validation moved out of the + `OnValidate` trigger to the processing flow." Right logic, wrong trigger → **L3**. +- **`NAV-201169__cf-3`** (all 3) — "move empty-description validation from the + report to the product-creation flow." Trigger/flow placement → **L3**. +- **`NAV-176426__cf-2`** (all 3) — "fallback triggered after item-cost retrieval + instead of during BOM-tree calculation." Trigger timing/site → **L3**. +- **`NAV-177493__cf-1`** (all 3) — "Reserve=Never filtering deferred to + post-processing instead of source-level filtering." Placement → **L3**. +- **`NAV-174087__cf-2`** (GPT-5.3) — "Evaluation persisted via the `OnModify` + trigger instead of the page workflow step." Wrong trigger → **L3**. + +> These confirm L3 *does* occur here; it was masked by a too-narrow rule. Verify +> the five before freezing, then promote to §6.2. + +### 6.2 Verified worked examples ⟨FILL⟩ + +After verification, promote confirmed candidates here as the gold reference for +onboarding a second annotator: model output snippet, error evidence, the L1→L5 +scan, and why the primary layer beat the tempting adjacent one. + +--- + +## 7. Misfit / taxonomy-revision log + +Record any failed instance that does not fit the five layers, with `instance_id`, +why it resists labelling, and a proposed resolution (new sub-rule vs. new layer). +A recurring misfit pattern is a finding, not an annotation error. + +| instance_id | why it misfits | proposed resolution | +|-------------|----------------|---------------------| +| ⟨FILL⟩ | | | diff --git a/notebooks/counterfactual-evaluation/codex_failure_layers_thesis.jsonl b/notebooks/counterfactual-evaluation/codex_failure_layers_thesis.jsonl new file mode 100644 index 000000000..8238a2ae1 --- /dev/null +++ b/notebooks/counterfactual-evaluation/codex_failure_layers_thesis.jsonl @@ -0,0 +1,179 @@ +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-174794__cf-2", "primary_failure_layer": "L5-toolchain-ecosystem", "confidence": "high", "secondary_layer": "", "evidence": "error AL0132: 'Record \"Gen. Journal Line\" temporary' does not contain a definition for 'Customer Posting Group'", "justification": "Earliest violation is L5 because 'AL0132' shows missing/inaccessible object/member in the extension ecosystem before higher-layer logic."} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-174794__cf-3", "primary_failure_layer": "L5-toolchain-ecosystem", "confidence": "high", "secondary_layer": "", "evidence": "error AL0132: 'Record \"Gen. Journal Line\" temporary' does not contain a definition for 'Customer Posting Group'", "justification": "Earliest violation is L5 because 'AL0132' shows missing/inaccessible object/member in the extension ecosystem before higher-layer logic."} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-175765__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Undo transfer shipment without running second cost adjustment", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-175765__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Cost adjustment run before undo transfer shipment instead of after", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-175765__cf-3", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Cost adjustment only applied when revaluation exists for original entry", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-176082__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Get Receipt Lines filters by header-level location only instead of line-level location", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-176082__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Receipt lines where line location differs from header location are excluded", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-176150__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Preview Posting filters by Production Order No. only instead of full page context", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-176194__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Qty. to Invoice validation removed entirely from Item Charge Assignment", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-176194__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Qty. to Invoice validated only when Default Qty is Remainder instead of skipped when Blank", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-176194__cf-3", "primary_failure_layer": "L3-event-driven-paradigm", "confidence": "high", "secondary_layer": "", "evidence": "Qty. to Invoice validation moved out of OnValidate trigger to processing flow", "justification": "Earliest violation is L3 because the defect is where logic is hooked (wrong trigger/event stage), preceding downstream business-step effects."} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-176426__cf-2", "primary_failure_layer": "L3-event-driven-paradigm", "confidence": "high", "secondary_layer": "", "evidence": "Fallback triggered after item cost retrieval instead of during BOM tree calculation", "justification": "Earliest violation is L3 because the defect is where logic is hooked (wrong trigger/event stage), preceding downstream business-step effects."} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-177493__cf-1", "primary_failure_layer": "L3-event-driven-paradigm", "confidence": "high", "secondary_layer": "", "evidence": "Reserve=Never filtering deferred to post-processing instead of source-level filtering for Sales demand", "justification": "Earliest violation is L3 because the defect is where logic is hooked (wrong trigger/event stage), preceding downstream business-step effects."} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-178045__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Fix only applies when multiple ILEs exist for the lot; test uses 2 journal lines instead of 3", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-179733__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Only Begin-Total task type explicitly excluded from customer field inheritance", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-182354__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "System should fallback to WorkDate only when Today is not initialized", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-183399__cf-1", "primary_failure_layer": "L1-syntax-representation", "confidence": "high", "secondary_layer": "", "evidence": "Document Amount field accepts up to 4 decimal places", "justification": "Earliest violation is L1 because this is a field/property representation concern (declaration-level), preceding runtime or workflow effects."} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-183399__cf-2", "primary_failure_layer": "L1-syntax-representation", "confidence": "high", "secondary_layer": "", "evidence": "error AL0104: Syntax error, ';' expected", "justification": "Earliest violation is L1 because 'AL0104' indicates syntax/declaration/type representation failure before runtime or workflow logic."} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-201169__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Whitespace-only description should be treated as empty and logged to skipped records", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-201169__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Exit early for items with empty description instead of continuing export", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-201169__cf-3", "primary_failure_layer": "L3-event-driven-paradigm", "confidence": "high", "secondary_layer": "", "evidence": "Move empty description validation from the report to the product creation flow", "justification": "Earliest violation is L3 because the defect is where logic is hooked (wrong trigger/event stage), preceding downstream business-step effects."} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-203923__cf-3", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Full VAT amount calculated but not reflected in non-deductible VAT entry fields", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-204450__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Statistics VAT modification skipped when Non-Deductible VAT is 100 percent", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-205825__cf-1", "primary_failure_layer": "L2-execution-validation", "confidence": "high", "secondary_layer": "", "evidence": "VAT Country/Region Code assigned directly without validation does not propagate VAT setup", "justification": "Earliest violation is L2 because the defect is a local execution/validation-contract misuse at the correct site (validation or modify-order semantics)."} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-205825__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Alternative VAT registration from Bill-To Customer applied only when Ship-to Country/Region Code is defined", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-206527__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "BOM Quantity Per = 0.005 (below rounding precision); must not round to zero", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-207236__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Add conditional reopen/release workflow in batch posting for sales invoices with currency code", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-207878__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Force availability warning when assembly line due date is before work date", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-208649__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Sales Order requesting 2 units of the finished good must scale component Expected Quantity accordingly", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-208649__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Production BOM consuming a different fractional quantity (0.49) must still keep correct Quantity per and Expected Quantity", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-209450__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Only Non-Inventory items are in scope for the non-reservable rule", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-209450__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Only Service items are in scope for the non-reservable rule", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-210200__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "When Get Std. Service Codes inserts a Reserve = Always item with a different quantity, the inserted line must still be automatically reserved for the", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-210200__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "When Get Std. Service Codes inserts multiple service lines, only the item whose reserve policy is Always must create a reservation entry automatically", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-215972__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Block reservation only when transfer quantity is greater than 0", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-215972__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Block reservation only for outbound quantities (Qty. to Ship > 0)", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-216918__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Non-deductible VAT should only be added to Job Journal Line when the Job currency code is defined (non-empty)", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-218323__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "VAT Settlement bypasses journal template name check for all account types except Vendor", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-222092__cf-2", "primary_failure_layer": "L5-toolchain-ecosystem", "confidence": "high", "secondary_layer": "", "evidence": "error AL0118: The name '\"G/L Account\"' does not exist in the current context.", "justification": "Earliest violation is L5 because 'AL0118' shows missing/inaccessible object/member in the extension ecosystem before higher-layer logic."} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-222484__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Non-specific reservation cleanup applies only when the location is configured to pick according to FEFO.", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-223493__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Only update Customer Ledger Entry when entry is not on hold", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-223790__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "secondary_layer": "L2-execution-validation", "evidence": "CalcLevels called with parameter 0 instead of 1; API semantic misuse in LLC calculation", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-226875__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Vendor Name should be populated only when Account Type is Vendor AND Document Type is Invoice", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "Claude Opus 4.6", "instance_id": "microsoft__BCApps-4699__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Currency conversion should only apply to Unit Price, not Unit Cost", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "Claude Opus 4.6", "instance_id": "microsoft__BCApps-5633__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Do not skip exporting if the third-party fulfillment location is the default fulfillment service", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-4", "instance_id": "microsoft__BCApps-4699__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Currency conversion should only apply to Unit Price, not Unit Cost", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-4", "instance_id": "microsoft__BCApps-4822__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Sell-to and Bill-to Customer No. populated from Customer record during company location creation", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-4", "instance_id": "microsoft__BCApps-5633__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Do not skip exporting if the third-party fulfillment location is the default fulfillment service", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-174087__cf-2", "primary_failure_layer": "L1-syntax-representation", "confidence": "high", "secondary_layer": "", "evidence": "error AL0305: The length of the application object identifier 'Interaction Log Entry Src. Mgt.' cannot exceed 30 characters.", "justification": "Earliest violation is L1 because 'AL0305' indicates syntax/declaration/type representation failure before runtime or workflow logic."} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-175765__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Cost adjustment run before undo transfer shipment instead of after", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-175765__cf-3", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Cost adjustment only applied when revaluation exists for original entry", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-176082__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Get Receipt Lines filters by header-level location only instead of line-level location", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-176082__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Receipt lines where line location differs from header location are excluded", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-176194__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Qty. to Invoice validation removed entirely from Item Charge Assignment", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-176194__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Qty. to Invoice validated only when Default Qty is Remainder instead of skipped when Blank", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-176194__cf-3", "primary_failure_layer": "L3-event-driven-paradigm", "confidence": "high", "secondary_layer": "", "evidence": "Qty. to Invoice validation moved out of OnValidate trigger to processing flow", "justification": "Earliest violation is L3 because the defect is where logic is hooked (wrong trigger/event stage), preceding downstream business-step effects."} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-176426__cf-2", "primary_failure_layer": "L3-event-driven-paradigm", "confidence": "high", "secondary_layer": "", "evidence": "Fallback triggered after item cost retrieval instead of during BOM tree calculation", "justification": "Earliest violation is L3 because the defect is where logic is hooked (wrong trigger/event stage), preceding downstream business-step effects."} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-177493__cf-1", "primary_failure_layer": "L3-event-driven-paradigm", "confidence": "high", "secondary_layer": "", "evidence": "Reserve=Never filtering deferred to post-processing instead of source-level filtering for Sales demand", "justification": "Earliest violation is L3 because the defect is where logic is hooked (wrong trigger/event stage), preceding downstream business-step effects."} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-178045__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Fix only applies when multiple ILEs exist for the lot; test uses 2 journal lines instead of 3", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-179733__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Only Begin-Total task type explicitly excluded from customer field inheritance", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-182354__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "System should fallback to WorkDate only when Today is not initialized", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-183399__cf-1", "primary_failure_layer": "L1-syntax-representation", "confidence": "high", "secondary_layer": "", "evidence": "Document Amount field accepts up to 4 decimal places", "justification": "Earliest violation is L1 because this is a field/property representation concern (declaration-level), preceding runtime or workflow effects."} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-183399__cf-2", "primary_failure_layer": "L1-syntax-representation", "confidence": "high", "secondary_layer": "", "evidence": "Document Amount field ignores currency precision by removing AutoFormatExpression", "justification": "Earliest violation is L1 because this is a field/property representation concern (declaration-level), preceding runtime or workflow effects."} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-188438__cf-1", "primary_failure_layer": "L1-syntax-representation", "confidence": "high", "secondary_layer": "", "evidence": "error AL0104: Syntax error, '}' expected", "justification": "Earliest violation is L1 because 'AL0104' indicates syntax/declaration/type representation failure before runtime or workflow logic."} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-193853__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Require all journal lines reference the same Incoming Document Entry No.", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-195193__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Only enforce correct debit/credit split for Net Change fields, not Balance", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-201169__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Whitespace-only description should be treated as empty and logged to skipped records", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-201169__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Exit early for items with empty description instead of continuing export", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-201169__cf-3", "primary_failure_layer": "L3-event-driven-paradigm", "confidence": "high", "secondary_layer": "", "evidence": "Move empty description validation from the report to the product creation flow", "justification": "Earliest violation is L3 because the defect is where logic is hooked (wrong trigger/event stage), preceding downstream business-step effects."} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-204450__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Statistics VAT modification skipped when Non-Deductible VAT is 100 percent", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-205825__cf-1", "primary_failure_layer": "L2-execution-validation", "confidence": "high", "secondary_layer": "", "evidence": "VAT Country/Region Code assigned directly without validation does not propagate VAT setup", "justification": "Earliest violation is L2 because the defect is a local execution/validation-contract misuse at the correct site (validation or modify-order semantics)."} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-205825__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Alternative VAT registration from Bill-To Customer applied only when Ship-to Country/Region Code is defined", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-206527__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "BOM Quantity Per = 0.005 (below rounding precision); must not round to zero", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-209450__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Only Non-Inventory items are in scope for the non-reservable rule", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-209450__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Only Service items are in scope for the non-reservable rule", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-209496__cf-2", "primary_failure_layer": "L5-toolchain-ecosystem", "confidence": "high", "secondary_layer": "", "evidence": "error AL0118: The name 'ReminderCommunication' does not exist in the current context.", "justification": "Earliest violation is L5 because 'AL0118' shows missing/inaccessible object/member in the extension ecosystem before higher-layer logic."} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-209835__cf-2", "primary_failure_layer": "L1-syntax-representation", "confidence": "high", "secondary_layer": "", "evidence": "error AL0193: Argument 3: cannot convert from 'Text' to the type of Argument 1 'Enum Microsoft.Inventory.Tracking.\"Action Message Type\"'", "justification": "Earliest violation is L1 because 'AL0193' indicates syntax/declaration/type representation failure before runtime or workflow logic."} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-214557__cf-1", "primary_failure_layer": "L5-toolchain-ecosystem", "confidence": "high", "secondary_layer": "", "evidence": "error AL0118: The name '\"Prod. Order Component\"' does not exist in the current context.", "justification": "Earliest violation is L5 because 'AL0118' shows missing/inaccessible object/member in the extension ecosystem before higher-layer logic."} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-215972__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Block reservation only when transfer quantity is greater than 0", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-215972__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Block reservation only for outbound quantities (Qty. to Ship > 0)", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-218323__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "VAT Settlement bypasses journal template name check for all account types except Vendor", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-220984__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Date condition: only set Ending Date when Starting Date is not WORKDATE", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-221877__cf-1", "primary_failure_layer": "L2-execution-validation", "confidence": "high", "secondary_layer": "", "evidence": "The service header status should update only after the service item line is committed (Modify)", "justification": "Earliest violation is L2 because the defect is a local execution/validation-contract misuse at the correct site (validation or modify-order semantics)."} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-222092__cf-1", "primary_failure_layer": "L5-toolchain-ecosystem", "confidence": "high", "secondary_layer": "", "evidence": "error AL0118: The name '\"G/L Account\"' does not exist in the current context.", "justification": "Earliest violation is L5 because 'AL0118' shows missing/inaccessible object/member in the extension ecosystem before higher-layer logic."} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-222092__cf-2", "primary_failure_layer": "L5-toolchain-ecosystem", "confidence": "high", "secondary_layer": "", "evidence": "error AL0118: The name '\"G/L Account\"' does not exist in the current context.", "justification": "Earliest violation is L5 because 'AL0118' shows missing/inaccessible object/member in the extension ecosystem before higher-layer logic."} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-222488__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Registration should include all lines only for Purchase Order source documents; other sources respect filter.", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-223790__cf-1", "primary_failure_layer": "L1-syntax-representation", "confidence": "high", "secondary_layer": "", "evidence": "error AL0305: The length of the application object identifier 'Stockkeeping Unit Production BOMs' cannot exceed 30 characters.", "justification": "Earliest violation is L1 because 'AL0305' indicates syntax/declaration/type representation failure before runtime or workflow logic."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-174087__cf-2", "primary_failure_layer": "L3-event-driven-paradigm", "confidence": "high", "secondary_layer": "", "evidence": "Evaluation persisted via OnModify trigger on Interaction Log Entry instead of page workflow step", "justification": "Earliest violation is L3 because the defect is where logic is hooked (wrong trigger/event stage), preceding downstream business-step effects."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-174794__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Allow Multiple Posting Groups setting ignored during Finance Charge Memo posting", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-175765__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Undo transfer shipment without running second cost adjustment", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-175765__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Cost adjustment run before undo transfer shipment instead of after", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-175765__cf-3", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Cost adjustment only applied when revaluation exists for original entry", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-176082__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Get Receipt Lines filters by header-level location only instead of line-level location", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-176082__cf-2", "primary_failure_layer": "L1-syntax-representation", "confidence": "high", "secondary_layer": "", "evidence": "error AL0118: The name 'continue' does not exist in the current context.", "justification": "Earliest violation is L1 because 'AL0118' indicates syntax/declaration/type representation failure before runtime or workflow logic."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-176082__cf-3", "primary_failure_layer": "L2-execution-validation", "confidence": "high", "secondary_layer": "", "evidence": "Appl.-to Item Entry saved without validation using Modify(false)", "justification": "Earliest violation is L2 because the defect is a local execution/validation-contract misuse at the correct site (validation or modify-order semantics)."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-176194__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Qty. to Invoice validation removed entirely from Item Charge Assignment", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-176194__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Qty. to Invoice validated only when Default Qty is Remainder instead of skipped when Blank", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-176194__cf-3", "primary_failure_layer": "L3-event-driven-paradigm", "confidence": "high", "secondary_layer": "", "evidence": "Qty. to Invoice validation moved out of OnValidate trigger to processing flow", "justification": "Earliest violation is L3 because the defect is where logic is hooked (wrong trigger/event stage), preceding downstream business-step effects."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-176426__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "GetItemUnitCost does not update Rolled-up Material Cost", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-176426__cf-2", "primary_failure_layer": "L3-event-driven-paradigm", "confidence": "high", "secondary_layer": "", "evidence": "Fallback triggered after item cost retrieval instead of during BOM tree calculation", "justification": "Earliest violation is L3 because the defect is where logic is hooked (wrong trigger/event stage), preceding downstream business-step effects."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-177493__cf-1", "primary_failure_layer": "L3-event-driven-paradigm", "confidence": "high", "secondary_layer": "", "evidence": "Reserve=Never filtering deferred to post-processing instead of source-level filtering for Sales demand", "justification": "Earliest violation is L3 because the defect is where logic is hooked (wrong trigger/event stage), preceding downstream business-step effects."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-178045__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Fix only applies when multiple ILEs exist for the lot; test uses 2 journal lines instead of 3", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-179733__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Only Begin-Total task type explicitly excluded from customer field inheritance", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-182354__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "System should fallback to WorkDate only when Today is not initialized", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-183399__cf-1", "primary_failure_layer": "L1-syntax-representation", "confidence": "high", "secondary_layer": "", "evidence": "Document Amount field accepts up to 4 decimal places", "justification": "Earliest violation is L1 because this is a field/property representation concern (declaration-level), preceding runtime or workflow effects."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-183399__cf-2", "primary_failure_layer": "L1-syntax-representation", "confidence": "high", "secondary_layer": "", "evidence": "Document Amount field ignores currency precision by removing AutoFormatExpression", "justification": "Earliest violation is L1 because this is a field/property representation concern (declaration-level), preceding runtime or workflow effects."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-185488__cf-1", "primary_failure_layer": "L5-toolchain-ecosystem", "confidence": "high", "secondary_layer": "", "evidence": "error AL0185: Codeunit 'Data Type Management' is missing", "justification": "Earliest violation is L5 because 'AL0185' shows missing/inaccessible object/member in the extension ecosystem before higher-layer logic."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-193853__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Require incoming document on last journal line instead of any line", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-195193__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Only enforce correct debit/credit split for Net Change fields, not Balance", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-201169__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Whitespace-only description should be treated as empty and logged to skipped records", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-201169__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Exit early for items with empty description instead of continuing export", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-201169__cf-3", "primary_failure_layer": "L3-event-driven-paradigm", "confidence": "high", "secondary_layer": "", "evidence": "Move empty description validation from the report to the product creation flow", "justification": "Earliest violation is L3 because the defect is where logic is hooked (wrong trigger/event stage), preceding downstream business-step effects."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-203923__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Full VAT treated as non-deductible but excluded when Non-Deductible VAT % is 100 or more", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-204450__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Statistics VAT modification skipped when Non-Deductible VAT is 100 percent", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-205825__cf-1", "primary_failure_layer": "L2-execution-validation", "confidence": "high", "secondary_layer": "", "evidence": "VAT Country/Region Code assigned directly without validation does not propagate VAT setup", "justification": "Earliest violation is L2 because the defect is a local execution/validation-contract misuse at the correct site (validation or modify-order semantics)."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-205825__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Alternative VAT registration from Bill-To Customer applied only when Ship-to Country/Region Code is defined", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-206527__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "BOM Quantity Per = 0.005 (below rounding precision); must not round to zero", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-208649__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Sales Order requesting 2 units of the finished good must scale component Expected Quantity accordingly", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-209450__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Only Non-Inventory items are in scope for the non-reservable rule", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-209450__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Only Service items are in scope for the non-reservable rule", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-209835__cf-1", "primary_failure_layer": "L1-syntax-representation", "confidence": "high", "secondary_layer": "", "evidence": "error AL0193: Argument 3: cannot convert from 'Text' to the type of Argument 1 'Enum Microsoft.Inventory.Tracking.\"Action Message Type\"'", "justification": "Earliest violation is L1 because 'AL0193' indicates syntax/declaration/type representation failure before runtime or workflow logic."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-214557__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Planning should suppress the requisition line when total supply is greater than or equal to total demand", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-215972__cf-1", "primary_failure_layer": "L5-toolchain-ecosystem", "confidence": "high", "secondary_layer": "", "evidence": "error AL0161: 'CheckReservationPolicy(Enum Microsoft.Foundation.Enums.\"Transfer Direction\")' is inaccessible due to its protection level", "justification": "Earliest violation is L5 because 'AL0161' shows missing/inaccessible object/member in the extension ecosystem before higher-layer logic."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-215972__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Block reservation only for outbound quantities (Qty. to Ship > 0)", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-216572__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Dimensions imported only for G/L Account destination type lines", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-217797__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "If the planning line has no worksheet template name, fallback to last opened batch", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-218062__cf-1", "primary_failure_layer": "L5-toolchain-ecosystem", "confidence": "high", "secondary_layer": "", "evidence": "error AL0185: Codeunit 'Warehouse Availability Mgt.' is missing", "justification": "Earliest violation is L5 because 'AL0185' shows missing/inaccessible object/member in the extension ecosystem before higher-layer logic."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-218323__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "VAT Settlement bypasses journal template name check for all account types except Vendor", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-222092__cf-1", "primary_failure_layer": "L5-toolchain-ecosystem", "confidence": "high", "secondary_layer": "", "evidence": "error AL0118: The name '\"G/L Account\"' does not exist in the current context.", "justification": "Earliest violation is L5 because 'AL0118' shows missing/inaccessible object/member in the extension ecosystem before higher-layer logic."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-222092__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Reminder Header dimensions should apply only to additional fee entries, not all entries", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-222488__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Registration should include all lines only for Purchase Order source documents; other sources respect filter.", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-223790__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "secondary_layer": "L2-execution-validation", "evidence": "CalcLevels called with parameter 0 instead of 1; API semantic misuse in LLC calculation", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoft__BCApps-4699__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Currency conversion should only apply to Unit Price, not Unit Cost", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoft__BCApps-4822__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Sell-to and Bill-to Customer No. populated from Customer record during company location creation", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "GPT-5-3 Codex", "instance_id": "microsoft__BCApps-5633__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Do not skip exporting if the third-party fulfillment location is the default fulfillment service", "justification": "Earliest violation is L4 because the hook is essentially correct but the business step/condition/filter/order is wrong in workflow logic."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-174087__cf-2", "primary_failure_layer": "L3-event-driven-paradigm", "confidence": "high", "secondary_layer": "L4-workflow-business-logic", "evidence": "Model uses table OnModify trigger; gold writes Evaluation in page Step 4 workflow.", "justification": "Earliest violation is L3 because persistence is attached to the wrong trigger/workflow hook."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-175765__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Cost adjustment call executes before undo-transfer processing instead of after.", "justification": "Earliest violation is L4 because the business-step sequence is incorrect."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-175765__cf-3", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "secondary_layer": "", "evidence": "Adjustment logic is gated by revaluation existence, skipping required correction path.", "justification": "Earliest violation is L4 because conditional business logic is narrowed incorrectly."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-176082__cf-1", "primary_failure_layer": "L1-syntax-representation", "confidence": "high", "secondary_layer": "", "evidence": "Build fails with AL0110 orphaned ELSE syntax error.", "justification": "Earliest violation is L1 because compilation fails from invalid control-flow syntax."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-176082__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Header-level location filtering excludes receipt lines with different line locations.", "justification": "Earliest violation is L4 because filtering logic is applied at the wrong business scope."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-176150__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Preview posting filters by Item No. only, omitting full page context.", "justification": "Earliest violation is L4 because required business-context filters are incomplete."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-176194__cf-1", "primary_failure_layer": "L2-execution-validation", "confidence": "high", "secondary_layer": "L4-workflow-business-logic", "evidence": "Qty. to Invoice TestField validation is removed from item charge assignment.", "justification": "Earliest violation is L2 because a required validation contract at execution time was removed."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-176194__cf-2", "primary_failure_layer": "L2-execution-validation", "confidence": "medium", "secondary_layer": "L4-workflow-business-logic", "evidence": "Qty. to Invoice validation is conditioned on Remainder instead of Blank semantics.", "justification": "Earliest violation is L2 because validation execution conditions are implemented incorrectly."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-176194__cf-3", "primary_failure_layer": "L3-event-driven-paradigm", "confidence": "high", "secondary_layer": "L4-workflow-business-logic", "evidence": "Qty. to Invoice check is moved out of OnValidate into later processing.", "justification": "Earliest violation is L3 because logic is placed in the wrong trigger-driven lifecycle point."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-176426__cf-2", "primary_failure_layer": "L3-event-driven-paradigm", "confidence": "medium", "secondary_layer": "L4-workflow-business-logic", "evidence": "Fallback runs after item-cost retrieval instead of during BOM-tree calculation.", "justification": "Earliest violation is L3 because behavior is hooked at the wrong processing event timing."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-177493__cf-1", "primary_failure_layer": "L3-event-driven-paradigm", "confidence": "high", "secondary_layer": "L4-workflow-business-logic", "evidence": "Reserve=Never filtering is deferred to post-processing, not source-level filtering.", "justification": "Earliest violation is L3 because filtering is shifted from the intended source-stage hook."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-178045__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "low", "secondary_layer": "", "evidence": "Fix only handles multi-ILE lot cases; required three-line scenario remains uncovered.", "justification": "Earliest violation is L4 because branch coverage of the business workflow is incomplete."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-179733__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Only Begin-Total is excluded; other system task types still inherit customer fields.", "justification": "Earliest violation is L4 because task-type branching rules are incomplete."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-182354__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "WorkDate fallback is not properly gated by uninitialized Today state.", "justification": "Earliest violation is L4 because fallback branching logic is incorrect."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-183399__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Document Amount accepts four decimals beyond intended precision behavior.", "justification": "Earliest violation is L4 because numeric precision business rules are violated."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-183399__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Removing AutoFormatExpression causes Document Amount to ignore currency precision.", "justification": "Earliest violation is L4 because currency-format business logic is broken."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-188438__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Collection logic excludes non-Direct Posting G/L accounts from amount calculation.", "justification": "Earliest violation is L4 because account-scope business rules are narrowed incorrectly."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-193853__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "secondary_layer": "", "evidence": "Sibling journal lines are not consistently constrained to one Incoming Document Entry No.", "justification": "Earliest violation is L4 because cross-line business consistency enforcement is incomplete."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-195193__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Zero values are classified as debit instead of neutral in split logic.", "justification": "Earliest violation is L4 because debit/credit branching behavior is wrong."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-195193__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Split correction applies to Net Change only, omitting Balance fields.", "justification": "Earliest violation is L4 because rule application scope is incomplete."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-195193__cf-3", "primary_failure_layer": "L2-execution-validation", "confidence": "medium", "secondary_layer": "L4-workflow-business-logic", "evidence": "OnValidate comparison change omits opposite-side zero reset, leaving inconsistent values.", "justification": "Earliest violation is L2 because field-validation execution contract is violated."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-201169__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "secondary_layer": "", "evidence": "Whitespace-only descriptions are not normalized to empty before skip logging.", "justification": "Earliest violation is L4 because preprocessing and skip-logging workflow logic is incomplete."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-201169__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Flow exits early for empty descriptions instead of continuing export processing.", "justification": "Earliest violation is L4 because control-flow behavior in the business process is wrong."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-201169__cf-3", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "secondary_layer": "", "evidence": "Empty-description validation is moved to product creation, missing report-stage enforcement.", "justification": "Earliest violation is L4 because validation is placed in the wrong business step."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-203923__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "100% non-deductible VAT path is excluded from full non-deductible treatment.", "justification": "Earliest violation is L4 because threshold branching for VAT logic is incorrect."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-205825__cf-1", "primary_failure_layer": "L2-execution-validation", "confidence": "high", "secondary_layer": "L4-workflow-business-logic", "evidence": "VAT Country/Region Code is assigned directly instead of using Validate.", "justification": "Earliest violation is L2 because validation-triggered propagation is bypassed at execution."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-205825__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "secondary_layer": "", "evidence": "Bill-to VAT registration fallback runs only when Ship-to country is set.", "justification": "Earliest violation is L4 because fallback condition logic is overly restrictive."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-206527__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "BOM Quantity Per of 0.005 is rounded to zero, losing valid precision.", "justification": "Earliest violation is L4 because quantity precision business rules are violated."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-207177__cf-3", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Blank attribute values are not gated before mapping insertion.", "justification": "Earliest violation is L4 because required conditional business guard is missing."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-208649__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Component Expected Quantity is not scaled by finished-good sales quantity.", "justification": "Earliest violation is L4 because quantity-scaling business logic is incorrect."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-208649__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Fractional BOM consumption case miscomputes Quantity per and Expected Quantity relation.", "justification": "Earliest violation is L4 because fractional-quantity business calculations are wrong."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-209450__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Non-reservable rule is applied beyond Non-Inventory item scope.", "justification": "Earliest violation is L4 because item-type scope logic is incorrect."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-209450__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Non-reservable rule is applied beyond Service item scope.", "justification": "Earliest violation is L4 because item-type scope logic is incorrect."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-210200__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Automatic reservations are created for multiple lines, not only Reserve=Always items.", "justification": "Earliest violation is L4 because per-line reservation branching is incorrect."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-211521__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Next Task Date drilldown still applies an unintended System Task Type filter.", "justification": "Earliest violation is L4 because query/filter business behavior is wrong."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-215972__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Reservation blocking runs even when transfer quantity is not positive.", "justification": "Earliest violation is L4 because quantity-condition workflow gating is incorrect."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-215972__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Reservation blocking is not restricted to outbound Qty. to Ship > 0.", "justification": "Earliest violation is L4 because outbound-only condition logic is missing."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-216572__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Dimension import is limited incorrectly to G/L Account destination lines.", "justification": "Earliest violation is L4 because destination-type business scope is narrowed incorrectly."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-216918__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "secondary_layer": "", "evidence": "Non-deductible VAT is added without requiring a non-empty Job currency code.", "justification": "Earliest violation is L4 because currency-dependent posting logic is applied unconditionally."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-218323__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Journal template-name check bypass is widened beyond the Vendor-only exception.", "justification": "Earliest violation is L4 because account-type branching in settlement validation is incorrect."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-226875__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Vendor Name population is not restricted to Vendor plus Invoice documents.", "justification": "Earliest violation is L4 because compound condition business logic is wrong."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoft__BCApps-4699__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Currency conversion is applied to Unit Cost instead of Unit Price only.", "justification": "Earliest violation is L4 because field-target business logic for conversion is incorrect."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoft__BCApps-4822__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Bill-to Customer No. is not copied when source value is empty.", "justification": "Earliest violation is L4 because copy-step business behavior is overly conditional."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoft__BCApps-5633__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Export is skipped when third-party location equals default fulfillment service.", "justification": "Earliest violation is L4 because the export eligibility branch is incorrect."} diff --git a/notebooks/counterfactual-evaluation/codex_sonnet_layers.jsonl b/notebooks/counterfactual-evaluation/codex_sonnet_layers.jsonl new file mode 100644 index 000000000..e0358249a --- /dev/null +++ b/notebooks/counterfactual-evaluation/codex_sonnet_layers.jsonl @@ -0,0 +1,44 @@ +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-174087__cf-2", "primary_failure_layer": "L3-event-driven-paradigm", "confidence": "high", "secondary_layer": "L4-workflow-business-logic", "evidence": "Model uses table OnModify trigger; gold writes Evaluation in page Step 4 workflow.", "justification": "Earliest violation is L3 because persistence is attached to the wrong trigger/workflow hook."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-175765__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Cost adjustment call executes before undo-transfer processing instead of after.", "justification": "Earliest violation is L4 because the business-step sequence is incorrect."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-175765__cf-3", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "secondary_layer": "", "evidence": "Adjustment logic is gated by revaluation existence, skipping required correction path.", "justification": "Earliest violation is L4 because conditional business logic is narrowed incorrectly."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-176082__cf-1", "primary_failure_layer": "L1-syntax-representation", "confidence": "high", "secondary_layer": "", "evidence": "Build fails with AL0110 orphaned ELSE syntax error.", "justification": "Earliest violation is L1 because compilation fails from invalid control-flow syntax."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-176082__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Header-level location filtering excludes receipt lines with different line locations.", "justification": "Earliest violation is L4 because filtering logic is applied at the wrong business scope."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-176150__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Preview posting filters by Item No. only, omitting full page context.", "justification": "Earliest violation is L4 because required business-context filters are incomplete."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-176194__cf-1", "primary_failure_layer": "L2-execution-validation", "confidence": "high", "secondary_layer": "L4-workflow-business-logic", "evidence": "Qty. to Invoice TestField validation is removed from item charge assignment.", "justification": "Earliest violation is L2 because a required validation contract at execution time was removed."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-176194__cf-2", "primary_failure_layer": "L2-execution-validation", "confidence": "medium", "secondary_layer": "L4-workflow-business-logic", "evidence": "Qty. to Invoice validation is conditioned on Remainder instead of Blank semantics.", "justification": "Earliest violation is L2 because validation execution conditions are implemented incorrectly."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-176194__cf-3", "primary_failure_layer": "L3-event-driven-paradigm", "confidence": "high", "secondary_layer": "L4-workflow-business-logic", "evidence": "Qty. to Invoice check is moved out of OnValidate into later processing.", "justification": "Earliest violation is L3 because logic is placed in the wrong trigger-driven lifecycle point."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-176426__cf-2", "primary_failure_layer": "L3-event-driven-paradigm", "confidence": "medium", "secondary_layer": "L4-workflow-business-logic", "evidence": "Fallback runs after item-cost retrieval instead of during BOM-tree calculation.", "justification": "Earliest violation is L3 because behavior is hooked at the wrong processing event timing."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-177493__cf-1", "primary_failure_layer": "L3-event-driven-paradigm", "confidence": "high", "secondary_layer": "L4-workflow-business-logic", "evidence": "Reserve=Never filtering is deferred to post-processing, not source-level filtering.", "justification": "Earliest violation is L3 because filtering is shifted from the intended source-stage hook."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-178045__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "low", "secondary_layer": "", "evidence": "Fix only handles multi-ILE lot cases; required three-line scenario remains uncovered.", "justification": "Earliest violation is L4 because branch coverage of the business workflow is incomplete."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-179733__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Only Begin-Total is excluded; other system task types still inherit customer fields.", "justification": "Earliest violation is L4 because task-type branching rules are incomplete."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-182354__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "WorkDate fallback is not properly gated by uninitialized Today state.", "justification": "Earliest violation is L4 because fallback branching logic is incorrect."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-183399__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Document Amount accepts four decimals beyond intended precision behavior.", "justification": "Earliest violation is L4 because numeric precision business rules are violated."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-183399__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Removing AutoFormatExpression causes Document Amount to ignore currency precision.", "justification": "Earliest violation is L4 because currency-format business logic is broken."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-188438__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Collection logic excludes non-Direct Posting G/L accounts from amount calculation.", "justification": "Earliest violation is L4 because account-scope business rules are narrowed incorrectly."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-193853__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "secondary_layer": "", "evidence": "Sibling journal lines are not consistently constrained to one Incoming Document Entry No.", "justification": "Earliest violation is L4 because cross-line business consistency enforcement is incomplete."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-195193__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Zero values are classified as debit instead of neutral in split logic.", "justification": "Earliest violation is L4 because debit/credit branching behavior is wrong."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-195193__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Split correction applies to Net Change only, omitting Balance fields.", "justification": "Earliest violation is L4 because rule application scope is incomplete."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-195193__cf-3", "primary_failure_layer": "L2-execution-validation", "confidence": "medium", "secondary_layer": "L4-workflow-business-logic", "evidence": "OnValidate comparison change omits opposite-side zero reset, leaving inconsistent values.", "justification": "Earliest violation is L2 because field-validation execution contract is violated."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-201169__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "secondary_layer": "", "evidence": "Whitespace-only descriptions are not normalized to empty before skip logging.", "justification": "Earliest violation is L4 because preprocessing and skip-logging workflow logic is incomplete."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-201169__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Flow exits early for empty descriptions instead of continuing export processing.", "justification": "Earliest violation is L4 because control-flow behavior in the business process is wrong."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-201169__cf-3", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "secondary_layer": "", "evidence": "Empty-description validation is moved to product creation, missing report-stage enforcement.", "justification": "Earliest violation is L4 because validation is placed in the wrong business step."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-203923__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "100% non-deductible VAT path is excluded from full non-deductible treatment.", "justification": "Earliest violation is L4 because threshold branching for VAT logic is incorrect."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-205825__cf-1", "primary_failure_layer": "L2-execution-validation", "confidence": "high", "secondary_layer": "L4-workflow-business-logic", "evidence": "VAT Country/Region Code is assigned directly instead of using Validate.", "justification": "Earliest violation is L2 because validation-triggered propagation is bypassed at execution."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-205825__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "secondary_layer": "", "evidence": "Bill-to VAT registration fallback runs only when Ship-to country is set.", "justification": "Earliest violation is L4 because fallback condition logic is overly restrictive."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-206527__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "BOM Quantity Per of 0.005 is rounded to zero, losing valid precision.", "justification": "Earliest violation is L4 because quantity precision business rules are violated."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-207177__cf-3", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Blank attribute values are not gated before mapping insertion.", "justification": "Earliest violation is L4 because required conditional business guard is missing."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-208649__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Component Expected Quantity is not scaled by finished-good sales quantity.", "justification": "Earliest violation is L4 because quantity-scaling business logic is incorrect."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-208649__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Fractional BOM consumption case miscomputes Quantity per and Expected Quantity relation.", "justification": "Earliest violation is L4 because fractional-quantity business calculations are wrong."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-209450__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Non-reservable rule is applied beyond Non-Inventory item scope.", "justification": "Earliest violation is L4 because item-type scope logic is incorrect."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-209450__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Non-reservable rule is applied beyond Service item scope.", "justification": "Earliest violation is L4 because item-type scope logic is incorrect."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-210200__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Automatic reservations are created for multiple lines, not only Reserve=Always items.", "justification": "Earliest violation is L4 because per-line reservation branching is incorrect."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-211521__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Next Task Date drilldown still applies an unintended System Task Type filter.", "justification": "Earliest violation is L4 because query/filter business behavior is wrong."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-215972__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Reservation blocking runs even when transfer quantity is not positive.", "justification": "Earliest violation is L4 because quantity-condition workflow gating is incorrect."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-215972__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Reservation blocking is not restricted to outbound Qty. to Ship > 0.", "justification": "Earliest violation is L4 because outbound-only condition logic is missing."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-216572__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Dimension import is limited incorrectly to G/L Account destination lines.", "justification": "Earliest violation is L4 because destination-type business scope is narrowed incorrectly."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-216918__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "secondary_layer": "", "evidence": "Non-deductible VAT is added without requiring a non-empty Job currency code.", "justification": "Earliest violation is L4 because currency-dependent posting logic is applied unconditionally."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-218323__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Journal template-name check bypass is widened beyond the Vendor-only exception.", "justification": "Earliest violation is L4 because account-type branching in settlement validation is incorrect."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-226875__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Vendor Name population is not restricted to Vendor plus Invoice documents.", "justification": "Earliest violation is L4 because compound condition business logic is wrong."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoft__BCApps-4699__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Currency conversion is applied to Unit Cost instead of Unit Price only.", "justification": "Earliest violation is L4 because field-target business logic for conversion is incorrect."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoft__BCApps-4822__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Bill-to Customer No. is not copied when source value is empty.", "justification": "Earliest violation is L4 because copy-step business behavior is overly conditional."} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoft__BCApps-5633__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "secondary_layer": "", "evidence": "Export is skipped when third-party location equals default fulfillment service.", "justification": "Earliest violation is L4 because the export eligibility branch is incorrect."} diff --git a/notebooks/counterfactual-evaluation/exp4_subset_instances.txt b/notebooks/counterfactual-evaluation/exp4_subset_instances.txt new file mode 100644 index 000000000..f3507b50b --- /dev/null +++ b/notebooks/counterfactual-evaluation/exp4_subset_instances.txt @@ -0,0 +1,60 @@ +microsoftInternal__NAV-176194 +microsoftInternal__NAV-176194__cf-1 +microsoftInternal__NAV-201169 +microsoftInternal__NAV-201169__cf-1 +microsoftInternal__NAV-175765 +microsoftInternal__NAV-175765__cf-1 +microsoftInternal__NAV-176082 +microsoftInternal__NAV-176082__cf-1 +microsoftInternal__NAV-183399 +microsoftInternal__NAV-183399__cf-1 +microsoftInternal__NAV-205825 +microsoftInternal__NAV-205825__cf-1 +microsoftInternal__NAV-209450 +microsoftInternal__NAV-209450__cf-1 +microsoftInternal__NAV-215972 +microsoftInternal__NAV-215972__cf-1 +microsoftInternal__NAV-208649 +microsoftInternal__NAV-208649__cf-1 +microsoftInternal__NAV-176426 +microsoftInternal__NAV-176426__cf-1 +microsoftInternal__NAV-177493 +microsoftInternal__NAV-177493__cf-1 +microsoftInternal__NAV-178045 +microsoftInternal__NAV-178045__cf-1 +microsoftInternal__NAV-179733 +microsoftInternal__NAV-179733__cf-1 +microsoftInternal__NAV-182354 +microsoftInternal__NAV-182354__cf-1 +microsoftInternal__NAV-203923 +microsoftInternal__NAV-203923__cf-1 +microsoftInternal__NAV-206527 +microsoftInternal__NAV-206527__cf-1 +microsoftInternal__NAV-210200 +microsoftInternal__NAV-210200__cf-1 +microsoftInternal__NAV-218323 +microsoftInternal__NAV-218323__cf-1 +microsoft__BCApps-4699 +microsoft__BCApps-4699__cf-1 +microsoft__BCApps-5633 +microsoft__BCApps-5633__cf-1 +microsoftInternal__NAV-216918 +microsoftInternal__NAV-216918__cf-1 +microsoftInternal__NAV-223790 +microsoftInternal__NAV-223790__cf-1 +microsoftInternal__NAV-188438 +microsoftInternal__NAV-188438__cf-1 +microsoftInternal__NAV-218062 +microsoftInternal__NAV-218062__cf-1 +microsoftInternal__NAV-222484 +microsoftInternal__NAV-222484__cf-1 +microsoftInternal__NAV-223493 +microsoftInternal__NAV-223493__cf-1 +microsoftInternal__NAV-180484 +microsoftInternal__NAV-180484__cf-1 +microsoftInternal__NAV-220036 +microsoftInternal__NAV-220036__cf-1 +microsoftInternal__NAV-195193 +microsoftInternal__NAV-195193__cf-1 +microsoftInternal__NAV-174794 +microsoftInternal__NAV-174794__cf-1 diff --git a/notebooks/counterfactual-evaluation/exp4_target_families.csv b/notebooks/counterfactual-evaluation/exp4_target_families.csv new file mode 100644 index 000000000..75273f7f1 --- /dev/null +++ b/notebooks/counterfactual-evaluation/exp4_target_families.csv @@ -0,0 +1,31 @@ +family_id,fail_count_of_3,dominant_layer,family_types +microsoftInternal__NAV-176194,3,L4,unsolved|unsolved|unsolved +microsoftInternal__NAV-201169,3,L4,unsolved|unsolved|unsolved +microsoftInternal__NAV-175765,3,L4,fragile|fragile|unsolved +microsoftInternal__NAV-176082,3,L4,fragile|fragile|fragile +microsoftInternal__NAV-183399,3,L1,unsolved|unsolved|unsolved +microsoftInternal__NAV-205825,3,L2,fragile|fragile|fragile +microsoftInternal__NAV-209450,3,L4,unsolved|unsolved|unsolved +microsoftInternal__NAV-215972,3,L4,fragile|fragile|fragile +microsoftInternal__NAV-208649,3,L4,unsolved|fragile|fragile +microsoftInternal__NAV-176426,3,L3,inconsistent|inconsistent|unsolved +microsoftInternal__NAV-177493,3,L3,fragile|fragile|fragile +microsoftInternal__NAV-178045,3,L4,unsolved|unsolved|unsolved +microsoftInternal__NAV-179733,3,L4,fragile|fragile|fragile +microsoftInternal__NAV-182354,3,L4,unsolved|unsolved|unsolved +microsoftInternal__NAV-203923,3,L4,fragile|fragile|fragile +microsoftInternal__NAV-206527,3,L4,unsolved|unsolved|unsolved +microsoftInternal__NAV-210200,3,L4,unsolved|inconsistent|inconsistent +microsoftInternal__NAV-218323,3,L4,fragile|unsolved|fragile +microsoft__BCApps-4699,3,L4,fragile|fragile|unsolved +microsoft__BCApps-5633,3,L4,unsolved|unsolved|unsolved +microsoftInternal__NAV-216918,3,L4,inconsistent|inconsistent|inconsistent +microsoftInternal__NAV-223790,3,L4,unsolved|inconsistent|fragile +microsoftInternal__NAV-188438,3,L4,inconsistent|unsolved|inconsistent +microsoftInternal__NAV-218062,3,L5,inconsistent|inconsistent|unsolved +microsoftInternal__NAV-222484,3,L4,unsolved|inconsistent|inconsistent +microsoftInternal__NAV-223493,3,L4,fragile|inconsistent|inconsistent +microsoftInternal__NAV-180484,3,,inconsistent|inconsistent|inconsistent +microsoftInternal__NAV-220036,3,,inconsistent|inconsistent|inconsistent +microsoftInternal__NAV-195193,2,L4,stable-correct|unsolved|inconsistent +microsoftInternal__NAV-174794,2,L5,fragile|stable-correct|fragile diff --git a/notebooks/counterfactual-evaluation/exp_difficulty_al.csv b/notebooks/counterfactual-evaluation/exp_difficulty_al.csv new file mode 100644 index 000000000..0d6ead29c --- /dev/null +++ b/notebooks/counterfactual-evaluation/exp_difficulty_al.csv @@ -0,0 +1,223 @@ +instance_id,kind,base_instance_id,patch_loc,patch_files,test_patch_loc,n_fail_to_pass,difficulty_z +microsoftInternal__NAV-210528,base,microsoftInternal__NAV-210528,13,1,41,1,-1.439 +microsoftInternal__NAV-224009,base,microsoftInternal__NAV-224009,2,1,97,1,-0.756 +microsoftInternal__NAV-211710,base,microsoftInternal__NAV-211710,2,1,59,1,-1.552 +microsoftInternal__NAV-220984,base,microsoftInternal__NAV-220984,2,1,88,1,-0.945 +microsoftInternal__NAV-224668,base,microsoftInternal__NAV-224668,2,1,27,1,-2.222 +microsoftInternal__NAV-218323,base,microsoftInternal__NAV-218323,24,3,47,1,2.159 +microsoftInternal__NAV-193853,base,microsoftInternal__NAV-193853,23,1,66,1,-0.471 +microsoftInternal__NAV-223493,base,microsoftInternal__NAV-223493,5,2,50,1,-0.115 +microsoftInternal__NAV-193649,base,microsoftInternal__NAV-193649,10,1,71,1,-0.945 +microsoftInternal__NAV-220036,base,microsoftInternal__NAV-220036,17,1,54,2,5.177 +microsoftInternal__NAV-188438,base,microsoftInternal__NAV-188438,2,1,46,1,-1.824 +microsoftInternal__NAV-224447,base,microsoftInternal__NAV-224447,8,1,99,1,-0.448 +microsoftInternal__NAV-226875,base,microsoftInternal__NAV-226875,10,1,47,1,-1.447 +microsoftInternal__NAV-226223,base,microsoftInternal__NAV-226223,2,1,32,1,-2.117 +microsoftInternal__NAV-221877,base,microsoftInternal__NAV-221877,4,1,49,1,-1.672 +microsoftInternal__NAV-219082,base,microsoftInternal__NAV-219082,5,1,57,1,-1.46 +microsoftInternal__NAV-216918,base,microsoftInternal__NAV-216918,78,4,55,1,6.219 +microsoftInternal__NAV-218856,base,microsoftInternal__NAV-218856,30,1,51,1,-0.473 +microsoftInternal__NAV-215225,base,microsoftInternal__NAV-215225,16,1,74,1,-0.615 +microsoftInternal__NAV-213629,base,microsoftInternal__NAV-213629,1,1,53,1,-1.722 +microsoftInternal__NAV-213524,base,microsoftInternal__NAV-213524,16,1,34,1,-1.452 +microsoftInternal__NAV-213741,base,microsoftInternal__NAV-213741,21,1,54,1,-0.812 +microsoftInternal__NAV-206527,base,microsoftInternal__NAV-206527,19,1,88,1,-0.189 +microsoftInternal__NAV-208851,base,microsoftInternal__NAV-208851,1,1,33,1,-2.14 +microsoftInternal__NAV-208320,base,microsoftInternal__NAV-208320,106,6,54,1,10.427 +microsoftInternal__NAV-227219,base,microsoftInternal__NAV-227219,4,1,52,1,-1.61 +microsoftInternal__NAV-227358,base,microsoftInternal__NAV-227358,1,1,83,1,-1.094 +microsoftInternal__NAV-226004,base,microsoftInternal__NAV-226004,32,1,223,1,3.216 +microsoftInternal__NAV-223202,base,microsoftInternal__NAV-223202,9,1,81,1,-0.779 +microsoftInternal__NAV-226448,base,microsoftInternal__NAV-226448,14,1,85,1,-0.474 +microsoftInternal__NAV-227153,base,microsoftInternal__NAV-227153,110,1,87,1,3.838 +microsoftInternal__NAV-227240,base,microsoftInternal__NAV-227240,3,1,62,1,-1.444 +microsoft__BCApps-5633,base,microsoft__BCApps-5633,32,1,41,1,-0.594 +microsoft__BCApps-4822,base,microsoft__BCApps-4822,11,1,32,1,-1.716 +microsoft__BCApps-4699,base,microsoft__BCApps-4699,12,1,39,1,-1.526 +microsoftInternal__NAV-223790,base,microsoftInternal__NAV-223790,22,1,119,1,0.594 +microsoftInternal__NAV-223819,base,microsoftInternal__NAV-223819,13,1,77,1,-0.685 +microsoftInternal__NAV-222092,base,microsoftInternal__NAV-222092,4,1,80,1,-1.023 +microsoftInternal__NAV-218062,base,microsoftInternal__NAV-218062,4,1,158,1,0.61 +microsoftInternal__NAV-218253,base,microsoftInternal__NAV-218253,12,1,101,1,-0.228 +microsoftInternal__NAV-218995,base,microsoftInternal__NAV-218995,3,1,41,1,-1.884 +microsoftInternal__NAV-218786,base,microsoftInternal__NAV-218786,29,1,145,1,1.449 +microsoftInternal__NAV-217974,base,microsoftInternal__NAV-217974,1,1,42,1,-1.952 +microsoftInternal__NAV-222488,base,microsoftInternal__NAV-222488,10,1,57,1,-1.238 +microsoftInternal__NAV-222484,base,microsoftInternal__NAV-222484,35,1,93,1,0.628 +microsoftInternal__NAV-220314,base,microsoftInternal__NAV-220314,1,1,48,1,-1.826 +microsoftInternal__NAV-214926,base,microsoftInternal__NAV-214926,67,2,70,1,3.06 +microsoftInternal__NAV-215972,base,microsoftInternal__NAV-215972,2,1,39,1,-1.971 +microsoftInternal__NAV-216057,base,microsoftInternal__NAV-216057,17,1,65,1,-0.759 +microsoftInternal__NAV-216572,base,microsoftInternal__NAV-216572,4,1,131,1,0.044 +microsoftInternal__NAV-217797,base,microsoftInternal__NAV-217797,7,2,109,1,1.209 +microsoftInternal__NAV-214557,base,microsoftInternal__NAV-214557,26,1,72,1,-0.212 +microsoftInternal__NAV-212355,base,microsoftInternal__NAV-212355,115,2,176,1,7.414 +microsoftInternal__NAV-214825,base,microsoftInternal__NAV-214825,1,1,61,1,-1.554 +microsoft__BCApps-4766,base,microsoft__BCApps-4766,72,2,87,2,9.806 +microsoftInternal__NAV-210200,base,microsoftInternal__NAV-210200,5,1,100,1,-0.56 +microsoftInternal__NAV-208649,base,microsoftInternal__NAV-208649,17,1,88,1,-0.278 +microsoftInternal__NAV-209496,base,microsoftInternal__NAV-209496,8,1,43,1,-1.62 +microsoftInternal__NAV-208748,base,microsoftInternal__NAV-208748,11,1,93,1,-0.439 +microsoftInternal__NAV-209450,base,microsoftInternal__NAV-209450,22,1,90,1,-0.013 +microsoftInternal__NAV-201169,base,microsoftInternal__NAV-201169,29,2,39,1,0.721 +microsoftInternal__NAV-209835,base,microsoftInternal__NAV-209835,2,1,92,1,-0.861 +microsoftInternal__NAV-211548,base,microsoftInternal__NAV-211548,6,1,126,1,0.029 +microsoftInternal__NAV-209737,base,microsoftInternal__NAV-209737,3,1,169,1,0.796 +microsoftInternal__NAV-211521,base,microsoftInternal__NAV-211521,2,1,33,1,-2.096 +microsoftInternal__NAV-213683,base,microsoftInternal__NAV-213683,5,1,52,1,-1.565 +microsoftInternal__NAV-213671,base,microsoftInternal__NAV-213671,2,1,39,1,-1.971 +microsoftInternal__NAV-215645,base,microsoftInternal__NAV-215645,5,1,35,1,-1.92 +microsoftInternal__NAV-220452,base,microsoftInternal__NAV-220452,66,1,68,1,1.483 +microsoftInternal__NAV-206135,base,microsoftInternal__NAV-206135,3,2,55,1,-0.1 +microsoftInternal__NAV-217104,base,microsoftInternal__NAV-217104,5,1,103,1,-0.497 +microsoftInternal__NAV-207247,base,microsoftInternal__NAV-207247,1,1,109,1,-0.549 +microsoftInternal__NAV-207177,base,microsoftInternal__NAV-207177,33,1,33,1,-0.717 +microsoftInternal__NAV-207236,base,microsoftInternal__NAV-207236,33,2,98,1,2.134 +microsoftInternal__NAV-206977,base,microsoftInternal__NAV-206977,20,2,48,1,0.51 +microsoftInternal__NAV-191624,base,microsoftInternal__NAV-191624,2,1,43,1,-1.887 +microsoftInternal__NAV-195193,base,microsoftInternal__NAV-195193,81,2,50,1,3.265 +microsoftInternal__NAV-207878,base,microsoftInternal__NAV-207878,26,2,162,1,3.163 +microsoftInternal__NAV-185792,base,microsoftInternal__NAV-185792,5,1,53,1,-1.544 +microsoftInternal__NAV-185488,base,microsoftInternal__NAV-185488,105,1,42,1,2.673 +microsoftInternal__NAV-192565,base,microsoftInternal__NAV-192565,1,1,28,1,-2.245 +microsoftInternal__NAV-181900,base,microsoftInternal__NAV-181900,37,1,37,1,-0.456 +microsoftInternal__NAV-182354,base,microsoftInternal__NAV-182354,12,1,81,1,-0.646 +microsoftInternal__NAV-205825,base,microsoftInternal__NAV-205825,5,1,38,1,-1.858 +microsoftInternal__NAV-185696,base,microsoftInternal__NAV-185696,2,2,53,1,-0.187 +microsoftInternal__NAV-176426,base,microsoftInternal__NAV-176426,28,2,39,1,0.677 +microsoftInternal__NAV-180484,base,microsoftInternal__NAV-180484,6,1,82,1,-0.892 +microsoftInternal__NAV-183399,base,microsoftInternal__NAV-183399,1,1,36,1,-2.078 +microsoftInternal__NAV-174794,base,microsoftInternal__NAV-174794,1,1,66,1,-1.449 +microsoftInternal__NAV-203923,base,microsoftInternal__NAV-203923,6,1,48,1,-1.604 +microsoftInternal__NAV-204450,base,microsoftInternal__NAV-204450,2,1,112,1,-0.442 +microsoftInternal__NAV-175577,base,microsoftInternal__NAV-175577,51,1,61,1,0.67 +microsoftInternal__NAV-176150,base,microsoftInternal__NAV-176150,2,1,106,1,-0.568 +microsoftInternal__NAV-175765,base,microsoftInternal__NAV-175765,22,2,80,1,1.269 +microsoftInternal__NAV-179733,base,microsoftInternal__NAV-179733,4,1,47,1,-1.714 +microsoftInternal__NAV-176194,base,microsoftInternal__NAV-176194,15,2,304,2,11.813 +microsoftInternal__NAV-177493,base,microsoftInternal__NAV-177493,4,1,55,1,-1.547 +microsoftInternal__NAV-177750,base,microsoftInternal__NAV-177750,75,3,60,1,4.699 +microsoftInternal__NAV-178045,base,microsoftInternal__NAV-178045,16,1,202,1,2.065 +microsoftInternal__NAV-176082,base,microsoftInternal__NAV-176082,29,1,154,1,1.638 +microsoftInternal__NAV-174087,base,microsoftInternal__NAV-174087,1,1,56,1,-1.659 +microsoftInternal__NAV-174087__cf-1,cf,microsoftInternal__NAV-174087,1,1,56,1,-1.659 +microsoftInternal__NAV-174087__cf-2,cf,microsoftInternal__NAV-174087,1,1,56,1,-1.659 +microsoftInternal__NAV-174794__cf-1,cf,microsoftInternal__NAV-174794,2,1,66,1,-1.405 +microsoftInternal__NAV-174794__cf-2,cf,microsoftInternal__NAV-174794,1,1,66,1,-1.449 +microsoftInternal__NAV-174794__cf-3,cf,microsoftInternal__NAV-174794,2,1,66,1,-1.405 +microsoftInternal__NAV-175765__cf-1,cf,microsoftInternal__NAV-175765,22,2,79,1,1.248 +microsoftInternal__NAV-175765__cf-2,cf,microsoftInternal__NAV-175765,22,2,80,1,1.269 +microsoftInternal__NAV-175765__cf-3,cf,microsoftInternal__NAV-175765,22,2,81,1,1.29 +microsoftInternal__NAV-176082__cf-1,cf,microsoftInternal__NAV-176082,27,1,154,1,1.549 +microsoftInternal__NAV-176082__cf-2,cf,microsoftInternal__NAV-176082,31,1,154,1,1.727 +microsoftInternal__NAV-176082__cf-3,cf,microsoftInternal__NAV-176082,29,1,154,1,1.638 +microsoftInternal__NAV-176150__cf-1,cf,microsoftInternal__NAV-176150,2,1,106,1,-0.568 +microsoftInternal__NAV-176150__cf-2,cf,microsoftInternal__NAV-176150,2,1,106,1,-0.568 +microsoftInternal__NAV-176194__cf-1,cf,microsoftInternal__NAV-176194,7,2,304,2,11.458 +microsoftInternal__NAV-176194__cf-2,cf,microsoftInternal__NAV-176194,14,2,304,2,11.769 +microsoftInternal__NAV-176194__cf-3,cf,microsoftInternal__NAV-176194,7,2,304,2,11.458 +microsoftInternal__NAV-176426__cf-1,cf,microsoftInternal__NAV-176426,26,2,39,1,0.588 +microsoftInternal__NAV-176426__cf-2,cf,microsoftInternal__NAV-176426,37,2,39,1,1.077 +microsoftInternal__NAV-177493__cf-1,cf,microsoftInternal__NAV-177493,4,1,58,1,-1.484 +microsoftInternal__NAV-177493__cf-2,cf,microsoftInternal__NAV-177493,4,1,47,1,-1.714 +microsoftInternal__NAV-177493__cf-3,cf,microsoftInternal__NAV-177493,4,1,55,1,-1.547 +microsoftInternal__NAV-178045__cf-1,cf,microsoftInternal__NAV-178045,16,1,202,1,2.065 +microsoftInternal__NAV-179733__cf-1,cf,microsoftInternal__NAV-179733,4,1,47,1,-1.714 +microsoftInternal__NAV-180484__cf-1,cf,microsoftInternal__NAV-180484,6,1,82,1,-0.892 +microsoftInternal__NAV-180484__cf-2,cf,microsoftInternal__NAV-180484,8,1,82,1,-0.803 +microsoftInternal__NAV-182354__cf-1,cf,microsoftInternal__NAV-182354,18,1,82,1,-0.358 +microsoftInternal__NAV-183399__cf-1,cf,microsoftInternal__NAV-183399,1,1,36,1,-2.078 +microsoftInternal__NAV-183399__cf-2,cf,microsoftInternal__NAV-183399,2,1,36,1,-2.034 +microsoftInternal__NAV-185488__cf-1,cf,microsoftInternal__NAV-185488,107,1,44,1,2.804 +microsoftInternal__NAV-185792__cf-1,cf,microsoftInternal__NAV-185792,5,1,53,1,-1.544 +microsoftInternal__NAV-188438__cf-1,cf,microsoftInternal__NAV-188438,6,1,51,1,-1.541 +microsoftInternal__NAV-192565__cf-1,cf,microsoftInternal__NAV-192565,2,1,29,1,-2.18 +microsoftInternal__NAV-192565__cf-2,cf,microsoftInternal__NAV-192565,2,1,30,1,-2.159 +microsoftInternal__NAV-192565__cf-3,cf,microsoftInternal__NAV-192565,3,1,29,1,-2.135 +microsoftInternal__NAV-193853__cf-1,cf,microsoftInternal__NAV-193853,23,1,66,1,-0.471 +microsoftInternal__NAV-193853__cf-2,cf,microsoftInternal__NAV-193853,23,1,66,1,-0.471 +microsoftInternal__NAV-195193__cf-1,cf,microsoftInternal__NAV-195193,81,2,50,1,3.265 +microsoftInternal__NAV-195193__cf-2,cf,microsoftInternal__NAV-195193,21,2,50,1,0.596 +microsoftInternal__NAV-195193__cf-3,cf,microsoftInternal__NAV-195193,17,2,30,1,-0.001 +microsoftInternal__NAV-201169__cf-1,cf,microsoftInternal__NAV-201169,29,2,41,1,0.763 +microsoftInternal__NAV-201169__cf-2,cf,microsoftInternal__NAV-201169,29,2,39,1,0.721 +microsoftInternal__NAV-201169__cf-3,cf,microsoftInternal__NAV-201169,29,2,39,1,0.721 +microsoftInternal__NAV-203923__cf-1,cf,microsoftInternal__NAV-203923,9,1,48,1,-1.47 +microsoftInternal__NAV-203923__cf-2,cf,microsoftInternal__NAV-203923,12,1,48,1,-1.337 +microsoftInternal__NAV-203923__cf-3,cf,microsoftInternal__NAV-203923,7,1,48,1,-1.559 +microsoftInternal__NAV-204450__cf-1,cf,microsoftInternal__NAV-204450,4,1,112,1,-0.353 +microsoftInternal__NAV-205825__cf-1,cf,microsoftInternal__NAV-205825,8,1,37,1,-1.746 +microsoftInternal__NAV-205825__cf-2,cf,microsoftInternal__NAV-205825,6,1,37,1,-1.835 +microsoftInternal__NAV-206527__cf-1,cf,microsoftInternal__NAV-206527,22,1,88,1,-0.055 +microsoftInternal__NAV-206977__cf-1,cf,microsoftInternal__NAV-206977,7,2,48,1,-0.068 +microsoftInternal__NAV-206977__cf-2,cf,microsoftInternal__NAV-206977,22,4,48,1,3.583 +microsoftInternal__NAV-206977__cf-3,cf,microsoftInternal__NAV-206977,23,4,48,1,3.627 +microsoftInternal__NAV-207177__cf-1,cf,microsoftInternal__NAV-207177,33,1,33,1,-0.717 +microsoftInternal__NAV-207177__cf-2,cf,microsoftInternal__NAV-207177,35,1,33,1,-0.628 +microsoftInternal__NAV-207177__cf-3,cf,microsoftInternal__NAV-207177,36,1,34,1,-0.563 +microsoftInternal__NAV-207236__cf-1,cf,microsoftInternal__NAV-207236,33,2,98,1,2.134 +microsoftInternal__NAV-207247__cf-1,cf,microsoftInternal__NAV-207247,2,1,109,1,-0.505 +microsoftInternal__NAV-207247__cf-2,cf,microsoftInternal__NAV-207247,1,1,109,1,-0.549 +microsoftInternal__NAV-207247__cf-3,cf,microsoftInternal__NAV-207247,1,1,109,1,-0.549 +microsoftInternal__NAV-207878__cf-1,cf,microsoftInternal__NAV-207878,28,2,162,1,3.252 +microsoftInternal__NAV-208649__cf-1,cf,microsoftInternal__NAV-208649,17,1,88,1,-0.278 +microsoftInternal__NAV-208649__cf-2,cf,microsoftInternal__NAV-208649,17,1,88,1,-0.278 +microsoftInternal__NAV-208748__cf-1,cf,microsoftInternal__NAV-208748,11,1,93,1,-0.439 +microsoftInternal__NAV-208748__cf-2,cf,microsoftInternal__NAV-208748,11,1,96,1,-0.376 +microsoftInternal__NAV-208851__cf-1,cf,microsoftInternal__NAV-208851,4,1,33,1,-2.007 +microsoftInternal__NAV-209450__cf-1,cf,microsoftInternal__NAV-209450,22,1,88,1,-0.055 +microsoftInternal__NAV-209450__cf-2,cf,microsoftInternal__NAV-209450,22,1,88,1,-0.055 +microsoftInternal__NAV-209496__cf-1,cf,microsoftInternal__NAV-209496,8,1,50,1,-1.473 +microsoftInternal__NAV-209496__cf-2,cf,microsoftInternal__NAV-209496,8,1,45,1,-1.578 +microsoftInternal__NAV-209835__cf-1,cf,microsoftInternal__NAV-209835,2,1,92,1,-0.861 +microsoftInternal__NAV-209835__cf-2,cf,microsoftInternal__NAV-209835,2,1,93,1,-0.84 +microsoftInternal__NAV-210200__cf-1,cf,microsoftInternal__NAV-210200,5,1,100,1,-0.56 +microsoftInternal__NAV-210200__cf-2,cf,microsoftInternal__NAV-210200,5,1,105,1,-0.455 +microsoftInternal__NAV-210528__cf-1,cf,microsoftInternal__NAV-210528,12,1,37,1,-1.568 +microsoftInternal__NAV-211521__cf-1,cf,microsoftInternal__NAV-211521,3,1,33,1,-2.051 +microsoftInternal__NAV-211521__cf-2,cf,microsoftInternal__NAV-211521,3,1,30,1,-2.114 +microsoftInternal__NAV-213671__cf-1,cf,microsoftInternal__NAV-213671,2,1,39,1,-1.971 +microsoftInternal__NAV-213671__cf-2,cf,microsoftInternal__NAV-213671,2,1,39,1,-1.971 +microsoftInternal__NAV-213683__cf-1,cf,microsoftInternal__NAV-213683,4,1,52,1,-1.61 +microsoftInternal__NAV-214557__cf-1,cf,microsoftInternal__NAV-214557,26,1,72,1,-0.212 +microsoftInternal__NAV-214825__cf-1,cf,microsoftInternal__NAV-214825,2,1,63,1,-1.468 +microsoftInternal__NAV-214825__cf-2,cf,microsoftInternal__NAV-214825,2,1,64,1,-1.447 +microsoftInternal__NAV-214926__cf-1,cf,microsoftInternal__NAV-214926,19,1,70,1,-0.566 +microsoftInternal__NAV-215972__cf-1,cf,microsoftInternal__NAV-215972,3,1,39,1,-1.926 +microsoftInternal__NAV-215972__cf-2,cf,microsoftInternal__NAV-215972,3,1,39,1,-1.926 +microsoftInternal__NAV-216572__cf-1,cf,microsoftInternal__NAV-216572,5,1,131,1,0.089 +microsoftInternal__NAV-216918__cf-1,cf,microsoftInternal__NAV-216918,80,4,54,1,6.287 +microsoftInternal__NAV-216918__cf-2,cf,microsoftInternal__NAV-216918,80,4,56,1,6.329 +microsoftInternal__NAV-217104__cf-1,cf,microsoftInternal__NAV-217104,5,1,103,1,-0.497 +microsoftInternal__NAV-217104__cf-2,cf,microsoftInternal__NAV-217104,5,1,103,1,-0.497 +microsoftInternal__NAV-217797__cf-1,cf,microsoftInternal__NAV-217797,7,2,109,1,1.209 +microsoftInternal__NAV-217974__cf-1,cf,microsoftInternal__NAV-217974,2,1,42,1,-1.908 +microsoftInternal__NAV-217974__cf-2,cf,microsoftInternal__NAV-217974,1,1,42,1,-1.952 +microsoftInternal__NAV-218062__cf-1,cf,microsoftInternal__NAV-218062,4,1,158,1,0.61 +microsoftInternal__NAV-218323__cf-1,cf,microsoftInternal__NAV-218323,25,3,47,1,2.203 +microsoftInternal__NAV-218786__cf-1,cf,microsoftInternal__NAV-218786,24,1,145,1,1.227 +microsoftInternal__NAV-220036__cf-1,cf,microsoftInternal__NAV-220036,19,1,54,1,-0.901 +microsoftInternal__NAV-220314__cf-1,cf,microsoftInternal__NAV-220314,3,1,48,1,-1.737 +microsoftInternal__NAV-220984__cf-1,cf,microsoftInternal__NAV-220984,2,1,88,1,-0.945 +microsoftInternal__NAV-221877__cf-1,cf,microsoftInternal__NAV-221877,4,1,49,1,-1.672 +microsoftInternal__NAV-222092__cf-1,cf,microsoftInternal__NAV-222092,4,1,81,1,-1.002 +microsoftInternal__NAV-222092__cf-2,cf,microsoftInternal__NAV-222092,5,1,80,1,-0.978 +microsoftInternal__NAV-222484__cf-1,cf,microsoftInternal__NAV-222484,38,1,93,1,0.761 +microsoftInternal__NAV-222488__cf-1,cf,microsoftInternal__NAV-222488,12,1,57,1,-1.149 +microsoftInternal__NAV-223202__cf-1,cf,microsoftInternal__NAV-223202,6,1,70,1,-1.144 +microsoftInternal__NAV-223493__cf-1,cf,microsoftInternal__NAV-223493,7,2,52,1,0.015 +microsoftInternal__NAV-223790__cf-1,cf,microsoftInternal__NAV-223790,22,1,119,1,0.594 +microsoftInternal__NAV-224447__cf-1,cf,microsoftInternal__NAV-224447,5,1,99,1,-0.581 +microsoftInternal__NAV-224668__cf-1,cf,microsoftInternal__NAV-224668,2,1,27,1,-2.222 +microsoftInternal__NAV-224668__cf-2,cf,microsoftInternal__NAV-224668,8,1,33,1,-1.829 +microsoftInternal__NAV-224668__cf-3,cf,microsoftInternal__NAV-224668,8,1,31,1,-1.871 +microsoftInternal__NAV-226875__cf-1,cf,microsoftInternal__NAV-226875,10,1,53,1,-1.322 +microsoftInternal__NAV-227153__cf-1,cf,microsoftInternal__NAV-227153,3,1,85,1,-0.963 +microsoftInternal__NAV-227153__cf-2,cf,microsoftInternal__NAV-227153,111,1,86,1,3.861 +microsoftInternal__NAV-227219__cf-1,cf,microsoftInternal__NAV-227219,4,1,63,1,-1.379 +microsoftInternal__NAV-227358__cf-1,cf,microsoftInternal__NAV-227358,3,1,87,1,-0.921 +microsoftInternal__NAV-227358__cf-2,cf,microsoftInternal__NAV-227358,3,1,83,1,-1.005 +microsoft__BCApps-4699__cf-1,cf,microsoft__BCApps-4699,9,1,39,1,-1.659 +microsoft__BCApps-4822__cf-1,cf,microsoft__BCApps-4822,10,1,32,1,-1.761 +microsoft__BCApps-4822__cf-2,cf,microsoft__BCApps-4822,12,1,34,1,-1.63 +microsoft__BCApps-5633__cf-1,cf,microsoft__BCApps-5633,32,1,42,1,-0.573 diff --git a/notebooks/counterfactual-evaluation/experiment1-base-performance.ipynb b/notebooks/counterfactual-evaluation/experiment1-base-performance.ipynb new file mode 100644 index 000000000..78d0c96fe --- /dev/null +++ b/notebooks/counterfactual-evaluation/experiment1-base-performance.ipynb @@ -0,0 +1,1087 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "e154f36a", + "metadata": {}, + "source": [ + "# Experiment 1: Base Performance (AL)\n", + "\n", + "AL base bug-fix performance is reported as a **supplement sourced from the official BC-Bench leaderboard** (`docs/_data/bug-fix.json`, GitHub Copilot, plain Setting A, 5 runs), not recomputed here. It is the AL side of H1; the Python control is analysed separately. Each row is the leaderboard's mean resolution with 95% CI and pass^5." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "f25c2cd0", + "metadata": { + "execution": { + "iopub.execute_input": "2026-06-20T13:20:02.746697Z", + "iopub.status.busy": "2026-06-20T13:20:02.745707Z", + "iopub.status.idle": "2026-06-20T13:20:06.162135Z", + "shell.execute_reply": "2026-06-20T13:20:06.160302Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Source: BC-Bench leaderboard (docs/_data/bug-fix.json), GitHub Copilot, plain Setting A, 5 runs\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ModelRunsMean Resolved (%)CI low (%)CI high (%)pass^5 (%)Ver
0Claude Opus 4.6566.964.669.745.50.5.0
1Claude Sonnet 4.6567.366.168.548.50.4.0
2GPT-5-4558.455.860.837.60.3.1
3GPT-5-3 Codex555.854.156.837.60.2.1
\n", + "
" + ], + "text/plain": [ + " Model Runs Mean Resolved (%) CI low (%) CI high (%) \\\n", + "0 Claude Opus 4.6 5 66.9 64.6 69.7 \n", + "1 Claude Sonnet 4.6 5 67.3 66.1 68.5 \n", + "2 GPT-5-4 5 58.4 55.8 60.8 \n", + "3 GPT-5-3 Codex 5 55.8 54.1 56.8 \n", + "\n", + " pass^5 (%) Ver \n", + "0 45.5 0.5.0 \n", + "1 48.5 0.4.0 \n", + "2 37.6 0.3.1 \n", + "3 37.6 0.2.1 " + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import json\n", + "from pathlib import Path\n", + "\n", + "import pandas as pd\n", + "import plotly.express as px\n", + "\n", + "# Locate the leaderboard data (repo docs/_data/bug-fix.json)\n", + "_root = Path.cwd()\n", + "while _root != _root.parent and not (_root / \"docs\" / \"_data\" / \"bug-fix.json\").exists():\n", + " _root = _root.parent\n", + "_lb = json.loads((_root / \"docs\" / \"_data\" / \"bug-fix.json\").read_text(encoding=\"utf-8\"))\n", + "\n", + "MODELS = {\n", + " \"claude-opus-4-6\": \"Claude Opus 4.6\",\n", + " \"claude-sonnet-4-6\": \"Claude Sonnet 4.6\",\n", + " \"gpt-5-4\": \"GPT-5-4\",\n", + " \"gpt-5-3-codex\": \"GPT-5-3 Codex\",\n", + "}\n", + "\n", + "rows = []\n", + "for a in _lb[\"aggregate\"]:\n", + " # plain Setting A only (GitHub Copilot, no MCP/experiment)\n", + " if a.get(\"agent_name\") != \"GitHub Copilot\" or a.get(\"model\") not in MODELS or a.get(\"experiment\"):\n", + " continue\n", + " rows.append({\n", + " \"Model\": MODELS[a[\"model\"]],\n", + " \"Runs\": a[\"num_runs\"],\n", + " \"Mean Resolved (%)\": round(a[\"average\"] * 100, 1),\n", + " \"CI low (%)\": round(a[\"ci_low\"] * 100, 1),\n", + " \"CI high (%)\": round(a[\"ci_high\"] * 100, 1),\n", + " \"pass^5 (%)\": round(a[\"pass_hat_5\"] * 100, 1),\n", + " \"Ver\": a[\"benchmark_version\"],\n", + " })\n", + "\n", + "order = list(MODELS.values())\n", + "supplement_df = pd.DataFrame(rows).sort_values(\"Model\", key=lambda s: s.map({m: i for i, m in enumerate(order)})).reset_index(drop=True)\n", + "print(\"Source: BC-Bench leaderboard (docs/_data/bug-fix.json), GitHub Copilot, plain Setting A, 5 runs\")\n", + "supplement_df" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "a683f108", + "metadata": { + "execution": { + "iopub.execute_input": "2026-06-20T13:20:06.168155Z", + "iopub.status.busy": "2026-06-20T13:20:06.167159Z", + "iopub.status.idle": "2026-06-20T13:20:12.445234Z", + "shell.execute_reply": "2026-06-20T13:20:12.443207Z" + } + }, + "outputs": [ + { + "data": { + "application/json": { + "data": [ + { + "error_y": { + "array": [ + 2.799999999999997, + 1.2000000000000028, + 2.3999999999999986, + 1.0 + ], + "arrayminus": [ + 2.3000000000000114, + 1.2000000000000028, + 2.6000000000000014, + 1.6999999999999957 + ], + "symmetric": false, + "type": "data" + }, + "hovertemplate": "Model=%{x}
Mean Resolved (%)=%{text}", + "legendgroup": "", + "marker": { + "color": "#636efa", + "pattern": { + "shape": "" + } + }, + "name": "", + "orientation": "v", + "showlegend": false, + "text": { + "bdata": "mpmZmZm5UEAzMzMzM9NQQDMzMzMzM01AZmZmZmbmS0A=", + "dtype": "f8" + }, + "textposition": "auto", + "type": "bar", + "x": [ + "Claude Opus 4.6", + "Claude Sonnet 4.6", + "GPT-5-4", + "GPT-5-3 Codex" + ], + "xaxis": "x", + "y": { + "bdata": "mpmZmZm5UEAzMzMzM9NQQDMzMzMzM01AZmZmZmbmS0A=", + "dtype": "f8" + }, + "yaxis": "y" + } + ], + "layout": { + "barmode": "relative", + "legend": { + "tracegroupgap": 0 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermap": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermap" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "AL Base Resolution by Model (BC-Bench leaderboard, 95% CI)" + }, + "xaxis": { + "anchor": "y", + "domain": [ + 0.0, + 1.0 + ], + "title": { + "text": "Model" + } + }, + "yaxis": { + "anchor": "x", + "domain": [ + 0.0, + 1.0 + ], + "range": [ + 0, + 100 + ], + "title": { + "text": "Mean Resolved (%)" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Mean base resolution with 95% CI (from the leaderboard)\n", + "fig = px.bar(\n", + " supplement_df, x=\"Model\", y=\"Mean Resolved (%)\", text=\"Mean Resolved (%)\",\n", + " title=\"AL Base Resolution by Model (BC-Bench leaderboard, 95% CI)\",\n", + ")\n", + "fig.update_traces(\n", + " error_y=dict(\n", + " type=\"data\", symmetric=False,\n", + " array=(supplement_df[\"CI high (%)\"] - supplement_df[\"Mean Resolved (%)\"]).tolist(),\n", + " arrayminus=(supplement_df[\"Mean Resolved (%)\"] - supplement_df[\"CI low (%)\"]).tolist(),\n", + " )\n", + ")\n", + "fig.update_layout(yaxis_range=[0, 100])\n", + "fig.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "bcbench", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/counterfactual-evaluation/experiment2-cf-sensitivity.ipynb b/notebooks/counterfactual-evaluation/experiment2-cf-sensitivity.ipynb new file mode 100644 index 000000000..a21d834f7 --- /dev/null +++ b/notebooks/counterfactual-evaluation/experiment2-cf-sensitivity.ipynb @@ -0,0 +1,8617 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "5a88f589", + "metadata": {}, + "source": [ + "# Experiment 2: Counterfactual Sensitivity\n", + "\n", + "Family-level analysis: fragility rate, severity distribution, pattern analysis.\n", + "\n", + "**Primary analysis unit**: family (not instance). Family members are correlated, not IID." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "7b135c50", + "metadata": { + "execution": { + "iopub.execute_input": "2026-06-20T20:58:13.472165Z", + "iopub.status.busy": "2026-06-20T20:58:13.472165Z", + "iopub.status.idle": "2026-06-20T20:58:26.294093Z", + "shell.execute_reply": "2026-06-20T20:58:26.293068Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Claude Opus 4.6: 626 results (base=505, cf=121) -> 71 families\n", + "Claude Sonnet 4.6: 222 results (base=101, cf=121) -> 71 families\n", + "GPT-5-4: 626 results (base=505, cf=121) -> 71 families\n", + "GPT-5-3 Codex: 222 results (base=101, cf=121) -> 71 families\n", + "gold test patches: 222\n", + "sensitivity models: {'Claude Opus 4.6': 121, 'Claude Sonnet 4.6': 121, 'GPT-5-3 Codex': 121}\n" + ] + } + ], + "source": [ + "import json\n", + "import sys\n", + "from pathlib import Path\n", + "\n", + "sys.path.insert(0, str(Path.cwd().parent))\n", + "\n", + "import pandas as pd\n", + "import plotly.express as px\n", + "from utils import load_all_results\n", + "\n", + "from bcbench.analysis.aggregator import build_families\n", + "from bcbench.analysis.family import FamilyOutcome\n", + "from bcbench.analysis.metrics import (\n", + " consistency_distribution,\n", + " correctness_drop,\n", + " family_type_distribution,\n", + " fragility_rate,\n", + " mean_severity,\n", + ")\n", + "from bcbench.analysis.sensitivity import (\n", + " build_patch_pairs,\n", + " mean_sensitivity,\n", + " median_sensitivity,\n", + " patch_distance,\n", + " reaction_distribution,\n", + " sensitivity_score,\n", + ")\n", + "from bcbench.results.base import ExecutionBasedEvaluationResult\n", + "\n", + "# All four CF setups now carry base (5 runs) + CF results, so family-level metrics\n", + "# (fragility, four-way consistency, correctness drop) are comparable across models.\n", + "SETUPS = {\n", + " \"copilot-cf-opus-4-6\": \"Claude Opus 4.6\",\n", + " \"copilot-cf-sonnet-4-6\": \"Claude Sonnet 4.6\",\n", + " \"copilot-cf-gpt-5-4\": \"GPT-5-4\",\n", + " \"copilot-cf-gpt-5-3-codex\": \"GPT-5-3 Codex\",\n", + "}\n", + "# Sensitivity / patch-distance need the base generated patch; only Opus retains\n", + "# per-instance base output (the other models' base artifacts expired, leaving\n", + "# resolved-only results recovered from the leaderboard), so structural metrics\n", + "# are computed for Opus only.\n", + "SENSITIVITY_SETUP = \"copilot-cf-opus-4-6\"\n", + "\n", + "all_results = load_all_results(category=\"bug-fix\")\n", + "\n", + "\n", + "def df_to_results(df: pd.DataFrame) -> list[ExecutionBasedEvaluationResult]:\n", + " results = []\n", + " for _, row in df.iterrows():\n", + " results.append(\n", + " ExecutionBasedEvaluationResult(\n", + " instance_id=row[\"instance_id\"],\n", + " project=row.get(\"project\", \"\"),\n", + " model=row.get(\"model\", \"unknown\"),\n", + " agent_name=\"GitHub Copilot\",\n", + " category=\"cf\",\n", + " resolved=bool(row.get(\"resolved\", False)),\n", + " build=bool(row.get(\"build\", False)),\n", + " output=row.get(\"output\", \"\"),\n", + " )\n", + " )\n", + " return results\n", + "\n", + "\n", + "families_by_model: dict[str, list[FamilyOutcome]] = {}\n", + "results_by_model: dict[str, list[ExecutionBasedEvaluationResult]] = {}\n", + "for setup, label in SETUPS.items():\n", + " if setup not in all_results:\n", + " print(f\"WARNING: {setup} not found\")\n", + " continue\n", + " res = df_to_results(all_results[setup])\n", + " results_by_model[label] = res\n", + " families_by_model[label] = build_families(res)\n", + " n_base = sum(1 for r in res if \"__cf-\" not in r.instance_id)\n", + " n_cf = sum(1 for r in res if \"__cf-\" in r.instance_id)\n", + " print(f\"{label}: {len(res)} results (base={n_base}, cf={n_cf}) -> {len(families_by_model[label])} families\")\n", + "\n", + "\n", + "# Gold test patches + model-generated patches for structural (sensitivity) metrics\n", + "def _load_gold_test_patches() -> dict[str, str]:\n", + " root = Path.cwd()\n", + " while root != root.parent and not (root / \"dataset\" / \"counterfactual.jsonl\").exists():\n", + " root = root.parent\n", + " gold: dict[str, str] = {}\n", + " for name in (\"bcbench.jsonl\", \"counterfactual.jsonl\"):\n", + " p = root / \"dataset\" / name\n", + " if not p.exists():\n", + " continue\n", + " for line in p.read_text(encoding=\"utf-8\").splitlines():\n", + " if line.strip():\n", + " o = json.loads(line)\n", + " if o.get(\"test_patch\") is not None:\n", + " gold[o[\"instance_id\"]] = o[\"test_patch\"]\n", + " return gold\n", + "\n", + "\n", + "gold_test_patches = _load_gold_test_patches()\n", + "# Sensitivity needs base generated patches. Build pairs only for models whose base\n", + "# outputs are present (Opus always; Sonnet & GPT-5.3-Codex after the base re-run).\n", + "# Models with resolved-only recovered base (e.g. GPT-5-4) are skipped automatically.\n", + "pairs_by_model: dict[str, list] = {}\n", + "for label, res in results_by_model.items():\n", + " gen = {r.instance_id: (r.output or \"\") for r in res}\n", + " passed = {r.instance_id: r.resolved for r in res}\n", + " base_has_output = any((\"__cf-\" not in iid) and gen.get(iid) for iid in gen)\n", + " if not base_has_output:\n", + " continue\n", + " p = build_patch_pairs(gen, gold_test_patches, passed)\n", + " if p:\n", + " pairs_by_model[label] = p\n", + "\n", + "print(f\"gold test patches: {len(gold_test_patches)}\")\n", + "print(\"sensitivity models:\", {k: len(v) for k, v in pairs_by_model.items()})" + ] + }, + { + "cell_type": "markdown", + "id": "21c81e16", + "metadata": {}, + "source": [ + "## Family Outcome Table\n", + "\n", + "Each row = one family. Columns: family_id, layer, base, cf1..cfN, pattern, type, fragile, severity." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "c55d1993", + "metadata": { + "execution": { + "iopub.execute_input": "2026-06-20T20:58:26.299094Z", + "iopub.status.busy": "2026-06-20T20:58:26.298097Z", + "iopub.status.idle": "2026-06-20T20:58:26.306640Z", + "shell.execute_reply": "2026-06-20T20:58:26.305089Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Family outcome table builder ready. Load results to populate.\n" + ] + } + ], + "source": [ + "def families_to_df(families: list[FamilyOutcome]) -> pd.DataFrame:\n", + " rows = []\n", + " for f in families:\n", + " row = {\n", + " \"family_id\": f.family_id,\n", + " \"layer\": f.failure_layer.value if f.failure_layer else \"unclassified\",\n", + " \"base\": int(f.base.passed),\n", + " \"pattern\": str(f.pattern),\n", + " \"type\": f.family_type.value,\n", + " \"fragile\": int(f.is_fragile),\n", + " \"severity\": f.severity,\n", + " \"cf_total\": f.cf_total,\n", + " \"cf_fail_count\": f.cf_fail_count,\n", + " }\n", + " for i, cf in enumerate(f.cfs):\n", + " row[f\"cf{i + 1}\"] = int(cf.passed)\n", + " rows.append(row)\n", + " return pd.DataFrame(rows)\n", + "\n", + "\n", + "print(\"Family outcome table builder ready. Load results to populate.\")" + ] + }, + { + "cell_type": "markdown", + "id": "f73746b5", + "metadata": {}, + "source": [ + "## Family Type Distribution" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "6901095c", + "metadata": { + "execution": { + "iopub.execute_input": "2026-06-20T20:58:26.310629Z", + "iopub.status.busy": "2026-06-20T20:58:26.310629Z", + "iopub.status.idle": "2026-06-20T20:58:26.319746Z", + "shell.execute_reply": "2026-06-20T20:58:26.318718Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "plot_family_type_distribution() ready\n" + ] + } + ], + "source": [ + "def plot_family_type_distribution(families_by_model: dict[str, list[FamilyOutcome]]):\n", + " rows = []\n", + " for model, families in families_by_model.items():\n", + " dist = family_type_distribution(families)\n", + " total = sum(dist.values())\n", + " for ftype, count in dist.items():\n", + " rows.append(\n", + " {\n", + " \"Model\": model,\n", + " \"Family Type\": ftype,\n", + " \"Count\": count,\n", + " \"Proportion (%)\": round(count / total * 100, 1) if total else 0,\n", + " }\n", + " )\n", + "\n", + " df = pd.DataFrame(rows)\n", + " fig = px.bar(\n", + " df,\n", + " x=\"Model\",\n", + " y=\"Proportion (%)\",\n", + " color=\"Family Type\",\n", + " title=\"Family Type Distribution by Model\",\n", + " barmode=\"stack\",\n", + " text_auto=True,\n", + " color_discrete_map={\n", + " \"stable-correct\": \"#2ecc71\",\n", + " \"fragile\": \"#e74c3c\",\n", + " \"unsolved\": \"#95a5a6\",\n", + " \"inconsistent\": \"#f39c12\",\n", + " },\n", + " )\n", + " fig.show()\n", + " return df\n", + "\n", + "\n", + "print(\"plot_family_type_distribution() ready\")" + ] + }, + { + "cell_type": "markdown", + "id": "0de21e9e", + "metadata": {}, + "source": [ + "## Fragility Rate (Main Thesis Figure)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "0cc55260", + "metadata": { + "execution": { + "iopub.execute_input": "2026-06-20T20:58:26.324763Z", + "iopub.status.busy": "2026-06-20T20:58:26.323746Z", + "iopub.status.idle": "2026-06-20T20:58:26.335254Z", + "shell.execute_reply": "2026-06-20T20:58:26.333227Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "plot_fragility_rate() ready\n" + ] + } + ], + "source": [ + "def plot_fragility_rate(families_by_model: dict[str, list[FamilyOutcome]]):\n", + " rows = []\n", + " for model, families in families_by_model.items():\n", + " rate = fragility_rate(families)\n", + " sev = mean_severity(families)\n", + " rows.append(\n", + " {\n", + " \"Model\": model,\n", + " \"Fragility Rate (%)\": round(rate * 100, 1),\n", + " \"Mean Severity\": round(sev, 3) if sev is not None else None,\n", + " }\n", + " )\n", + "\n", + " df = pd.DataFrame(rows)\n", + " fig = px.bar(\n", + " df,\n", + " x=\"Model\",\n", + " y=\"Fragility Rate (%)\",\n", + " title=\"Family Fragility Rate: P(CF fail | Base correct)\",\n", + " text_auto=True,\n", + " color_discrete_sequence=[\"#e74c3c\"],\n", + " )\n", + " fig.update_layout(yaxis_range=[0, 100])\n", + " fig.show()\n", + " return df\n", + "\n", + "\n", + "print(\"plot_fragility_rate() ready\")" + ] + }, + { + "cell_type": "markdown", + "id": "028d9011", + "metadata": {}, + "source": [ + "## Severity Distribution" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "ab3bac23", + "metadata": { + "execution": { + "iopub.execute_input": "2026-06-20T20:58:26.339116Z", + "iopub.status.busy": "2026-06-20T20:58:26.337260Z", + "iopub.status.idle": "2026-06-20T20:58:26.347405Z", + "shell.execute_reply": "2026-06-20T20:58:26.346381Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "plot_severity_distribution() ready\n" + ] + } + ], + "source": [ + "def plot_severity_distribution(families_by_model: dict[str, list[FamilyOutcome]]):\n", + " rows = []\n", + " for model, families in families_by_model.items():\n", + " for f in families:\n", + " if f.severity is not None:\n", + " rows.append({\"Model\": model, \"Severity\": f.severity, \"Type\": f.family_type.value})\n", + "\n", + " df = pd.DataFrame(rows)\n", + " if not df.empty:\n", + " fig = px.box(\n", + " df,\n", + " x=\"Model\",\n", + " y=\"Severity\",\n", + " color=\"Model\",\n", + " title=\"Fragility Severity Distribution (N_cf_fail / N_cf)\",\n", + " points=\"all\",\n", + " )\n", + " fig.show()\n", + " return df\n", + "\n", + "\n", + "print(\"plot_severity_distribution() ready\")" + ] + }, + { + "cell_type": "markdown", + "id": "9dd36a11", + "metadata": {}, + "source": [ + "## Pattern Analysis" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "63fc4617", + "metadata": { + "execution": { + "iopub.execute_input": "2026-06-20T20:58:26.352412Z", + "iopub.status.busy": "2026-06-20T20:58:26.351408Z", + "iopub.status.idle": "2026-06-20T20:58:26.362400Z", + "shell.execute_reply": "2026-06-20T20:58:26.360377Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "analyze_patterns() ready\n" + ] + } + ], + "source": [ + "from collections import Counter\n", + "\n", + "\n", + "def analyze_patterns(families: list[FamilyOutcome]) -> pd.DataFrame:\n", + " pattern_counts = Counter(f.pattern for f in families)\n", + " rows = [{\"Pattern\": str(p), \"Count\": c, \"Pct (%)\": round(c / len(families) * 100, 1)} for p, c in pattern_counts.most_common()]\n", + " return pd.DataFrame(rows)\n", + "\n", + "\n", + "print(\"analyze_patterns() ready\")" + ] + }, + { + "cell_type": "markdown", + "id": "8ba77088", + "metadata": {}, + "source": [ + "## Counterfactual Consistency (4-way)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "462e49a6", + "metadata": { + "execution": { + "iopub.execute_input": "2026-06-20T20:58:26.366401Z", + "iopub.status.busy": "2026-06-20T20:58:26.366401Z", + "iopub.status.idle": "2026-06-20T20:58:26.376579Z", + "shell.execute_reply": "2026-06-20T20:58:26.375549Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "plot_consistency() ready\n" + ] + } + ], + "source": [ + "def plot_consistency(families_by_model: dict[str, list[FamilyOutcome]]) -> pd.DataFrame:\n", + " \"\"\"Four-way consistency counted over every base->CF pair.\"\"\"\n", + " order = [\"both-correct\", \"base-correct-cf-incorrect\", \"both-incorrect\", \"base-incorrect-cf-correct\"]\n", + " rows = []\n", + " for model, families in families_by_model.items():\n", + " dist = consistency_distribution(families)\n", + " total = sum(dist.values()) or 1\n", + " for outcome in order:\n", + " rows.append({\"Model\": model, \"Outcome\": outcome, \"Count\": dist[outcome], \"Pct\": round(100 * dist[outcome] / total, 1)})\n", + " df = pd.DataFrame(rows)\n", + " fig = px.bar(\n", + " df, x=\"Outcome\", y=\"Count\", color=\"Model\", barmode=\"group\",\n", + " title=\"Counterfactual Consistency (per base->CF pair)\",\n", + " category_orders={\"Outcome\": order},\n", + " )\n", + " fig.show()\n", + " return df.pivot_table(index=\"Model\", columns=\"Outcome\", values=\"Count\", fill_value=0)[order]\n", + "\n", + "\n", + "print(\"plot_consistency() ready\")" + ] + }, + { + "cell_type": "markdown", + "id": "c98007b6", + "metadata": {}, + "source": [ + "## Correctness Drop (base -> CF)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "9e64c28b", + "metadata": { + "execution": { + "iopub.execute_input": "2026-06-20T20:58:26.380966Z", + "iopub.status.busy": "2026-06-20T20:58:26.378951Z", + "iopub.status.idle": "2026-06-20T20:58:26.390841Z", + "shell.execute_reply": "2026-06-20T20:58:26.389267Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "correctness_drop_table() ready\n" + ] + } + ], + "source": [ + "def correctness_drop_table(families_by_model: dict[str, list[FamilyOutcome]]) -> pd.DataFrame:\n", + " \"\"\"Pair-level P(CF fail | base correct), shown next to family-level fragility.\"\"\"\n", + " rows = []\n", + " for model, families in families_by_model.items():\n", + " rows.append({\n", + " \"Model\": model,\n", + " \"Correctness Drop (%)\": round(100 * correctness_drop(families), 1),\n", + " \"Fragility Rate (%)\": round(100 * fragility_rate(families), 1),\n", + " })\n", + " return pd.DataFrame(rows)\n", + "\n", + "\n", + "print(\"correctness_drop_table() ready\")" + ] + }, + { + "cell_type": "markdown", + "id": "bf66c69d", + "metadata": {}, + "source": [ + "## Sensitivity Score & Patch Distance" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "a3b9d361", + "metadata": { + "execution": { + "iopub.execute_input": "2026-06-20T20:58:26.395891Z", + "iopub.status.busy": "2026-06-20T20:58:26.394886Z", + "iopub.status.idle": "2026-06-20T20:58:26.409877Z", + "shell.execute_reply": "2026-06-20T20:58:26.408847Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "pairs_to_df() / plot_sensitivity() ready\n" + ] + } + ], + "source": [ + "def pairs_to_df(pairs) -> pd.DataFrame:\n", + " rows = []\n", + " for p in pairs:\n", + " pd_ = patch_distance(p)\n", + " rows.append({\n", + " \"family_id\": p.family_id,\n", + " \"cf\": p.cf_instance_id,\n", + " \"base_pass\": int(p.base_passed),\n", + " \"cf_pass\": int(p.cf_passed),\n", + " \"spec_delta\": round(p.spec_delta, 3),\n", + " \"output_delta\": round(p.output_delta, 3),\n", + " \"sensitivity\": round(pd_.ratio, 3) if pd_.ratio is not None else None,\n", + " \"reaction\": pd_.reaction.value if pd_.reaction else None,\n", + " \"unrelated_rewrite\": pd_.unrelated_rewrite,\n", + " })\n", + " return pd.DataFrame(rows)\n", + "\n", + "\n", + "def plot_sensitivity(pairs_by_model: dict) -> pd.DataFrame:\n", + " \"\"\"Mean sensitivity (S = output change / spec change) and reaction breakdown.\"\"\"\n", + " order = [\"under-reaction\", \"appropriate\", \"over-reaction\"]\n", + " summary, dist_rows = [], []\n", + " for model, pairs in pairs_by_model.items():\n", + " ms = mean_sensitivity(pairs)\n", + " md = median_sensitivity(pairs)\n", + " summary.append({\n", + " \"Model\": model,\n", + " \"Mean Sensitivity\": round(ms, 3) if ms is not None else None,\n", + " \"Median Sensitivity\": round(md, 3) if md is not None else None,\n", + " \"Pairs (spec changed)\": sum(1 for p in pairs if sensitivity_score(p) is not None),\n", + " \"Unrelated rewrites\": sum(1 for p in pairs if patch_distance(p).unrelated_rewrite),\n", + " })\n", + " dist = reaction_distribution(pairs)\n", + " for r in order:\n", + " dist_rows.append({\"Model\": model, \"Reaction\": r, \"Count\": dist[r]})\n", + " if any(d[\"Count\"] for d in dist_rows):\n", + " fig = px.bar(\n", + " pd.DataFrame(dist_rows), x=\"Reaction\", y=\"Count\", color=\"Model\", barmode=\"group\",\n", + " title=\"Output reaction to spec change (S<1 under, ~1 appropriate, S>1 over)\",\n", + " category_orders={\"Reaction\": order},\n", + " )\n", + " fig.show()\n", + " return pd.DataFrame(summary)\n", + "\n", + "\n", + "print(\"pairs_to_df() / plot_sensitivity() ready\")" + ] + }, + { + "cell_type": "markdown", + "id": "b0231d08", + "metadata": {}, + "source": [ + "## Run All Analysis" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "24677c46", + "metadata": { + "execution": { + "iopub.execute_input": "2026-06-20T20:58:26.415391Z", + "iopub.status.busy": "2026-06-20T20:58:26.413875Z", + "iopub.status.idle": "2026-06-20T20:58:34.312500Z", + "shell.execute_reply": "2026-06-20T20:58:34.310471Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "=== Claude Opus 4.6 (71 families) ===\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
family_idlayerbasepatterntypefragileseveritycf_totalcf_fail_countcf1cf2cf3
0microsoftInternal__NAV-174087unclassified1(1, 1, 1)stable-correct00.0000002011.0NaN
1microsoftInternal__NAV-174794unclassified1(1, 1, 0, 0)fragile10.6666673210.00.0
2microsoftInternal__NAV-175765unclassified1(1, 0, 0, 0)fragile11.0000003300.00.0
3microsoftInternal__NAV-176082unclassified1(1, 0, 0, 1)fragile10.6666673200.01.0
4microsoftInternal__NAV-176150unclassified1(1, 0, 1)fragile10.5000002101.0NaN
.......................................
66microsoftInternal__NAV-227219unclassified1(1, 1)stable-correct00.000000101NaNNaN
67microsoftInternal__NAV-227358unclassified1(1, 1, 1)stable-correct00.0000002011.0NaN
68microsoft__BCApps-4699unclassified1(1, 0)fragile11.000000110NaNNaN
69microsoft__BCApps-4822unclassified1(1, 1, 1)stable-correct00.0000002011.0NaN
70microsoft__BCApps-5633unclassified0(0, 0)unsolved0NaN110NaNNaN
\n", + "

71 rows × 12 columns

\n", + "
" + ], + "text/plain": [ + " family_id layer base pattern \\\n", + "0 microsoftInternal__NAV-174087 unclassified 1 (1, 1, 1) \n", + "1 microsoftInternal__NAV-174794 unclassified 1 (1, 1, 0, 0) \n", + "2 microsoftInternal__NAV-175765 unclassified 1 (1, 0, 0, 0) \n", + "3 microsoftInternal__NAV-176082 unclassified 1 (1, 0, 0, 1) \n", + "4 microsoftInternal__NAV-176150 unclassified 1 (1, 0, 1) \n", + ".. ... ... ... ... \n", + "66 microsoftInternal__NAV-227219 unclassified 1 (1, 1) \n", + "67 microsoftInternal__NAV-227358 unclassified 1 (1, 1, 1) \n", + "68 microsoft__BCApps-4699 unclassified 1 (1, 0) \n", + "69 microsoft__BCApps-4822 unclassified 1 (1, 1, 1) \n", + "70 microsoft__BCApps-5633 unclassified 0 (0, 0) \n", + "\n", + " type fragile severity cf_total cf_fail_count cf1 cf2 cf3 \n", + "0 stable-correct 0 0.000000 2 0 1 1.0 NaN \n", + "1 fragile 1 0.666667 3 2 1 0.0 0.0 \n", + "2 fragile 1 1.000000 3 3 0 0.0 0.0 \n", + "3 fragile 1 0.666667 3 2 0 0.0 1.0 \n", + "4 fragile 1 0.500000 2 1 0 1.0 NaN \n", + ".. ... ... ... ... ... ... ... ... \n", + "66 stable-correct 0 0.000000 1 0 1 NaN NaN \n", + "67 stable-correct 0 0.000000 2 0 1 1.0 NaN \n", + "68 fragile 1 1.000000 1 1 0 NaN NaN \n", + "69 stable-correct 0 0.000000 2 0 1 1.0 NaN \n", + "70 unsolved 0 NaN 1 1 0 NaN NaN \n", + "\n", + "[71 rows x 12 columns]" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "=== Claude Sonnet 4.6 (71 families) ===\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
family_idlayerbasepatterntypefragileseveritycf_totalcf_fail_countcf1cf2cf3
0microsoftInternal__NAV-174087unclassified1(1, 1, 0)fragile10.5000002110.0NaN
1microsoftInternal__NAV-174794unclassified1(1, 1, 1, 1)stable-correct00.0000003011.01.0
2microsoftInternal__NAV-175765unclassified1(1, 1, 0, 0)fragile10.6666673210.00.0
3microsoftInternal__NAV-176082unclassified1(1, 0, 0, 1)fragile10.6666673200.01.0
4microsoftInternal__NAV-176150unclassified1(1, 1, 0)fragile10.5000002110.0NaN
.......................................
66microsoftInternal__NAV-227219unclassified1(1, 1)stable-correct00.000000101NaNNaN
67microsoftInternal__NAV-227358unclassified1(1, 1, 1)stable-correct00.0000002011.0NaN
68microsoft__BCApps-4699unclassified1(1, 0)fragile11.000000110NaNNaN
69microsoft__BCApps-4822unclassified1(1, 0, 1)fragile10.5000002101.0NaN
70microsoft__BCApps-5633unclassified0(0, 0)unsolved0NaN110NaNNaN
\n", + "

71 rows × 12 columns

\n", + "
" + ], + "text/plain": [ + " family_id layer base pattern \\\n", + "0 microsoftInternal__NAV-174087 unclassified 1 (1, 1, 0) \n", + "1 microsoftInternal__NAV-174794 unclassified 1 (1, 1, 1, 1) \n", + "2 microsoftInternal__NAV-175765 unclassified 1 (1, 1, 0, 0) \n", + "3 microsoftInternal__NAV-176082 unclassified 1 (1, 0, 0, 1) \n", + "4 microsoftInternal__NAV-176150 unclassified 1 (1, 1, 0) \n", + ".. ... ... ... ... \n", + "66 microsoftInternal__NAV-227219 unclassified 1 (1, 1) \n", + "67 microsoftInternal__NAV-227358 unclassified 1 (1, 1, 1) \n", + "68 microsoft__BCApps-4699 unclassified 1 (1, 0) \n", + "69 microsoft__BCApps-4822 unclassified 1 (1, 0, 1) \n", + "70 microsoft__BCApps-5633 unclassified 0 (0, 0) \n", + "\n", + " type fragile severity cf_total cf_fail_count cf1 cf2 cf3 \n", + "0 fragile 1 0.500000 2 1 1 0.0 NaN \n", + "1 stable-correct 0 0.000000 3 0 1 1.0 1.0 \n", + "2 fragile 1 0.666667 3 2 1 0.0 0.0 \n", + "3 fragile 1 0.666667 3 2 0 0.0 1.0 \n", + "4 fragile 1 0.500000 2 1 1 0.0 NaN \n", + ".. ... ... ... ... ... ... ... ... \n", + "66 stable-correct 0 0.000000 1 0 1 NaN NaN \n", + "67 stable-correct 0 0.000000 2 0 1 1.0 NaN \n", + "68 fragile 1 1.000000 1 1 0 NaN NaN \n", + "69 fragile 1 0.500000 2 1 0 1.0 NaN \n", + "70 unsolved 0 NaN 1 1 0 NaN NaN \n", + "\n", + "[71 rows x 12 columns]" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "=== GPT-5-4 (71 families) ===\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
family_idlayerbasepatterntypefragileseveritycf_totalcf_fail_countcf1cf2cf3
0microsoftInternal__NAV-174087unclassified1(1, 1, 0)fragile10.5000002110.0NaN
1microsoftInternal__NAV-174794unclassified1(1, 1, 1, 1)stable-correct00.0000003011.01.0
2microsoftInternal__NAV-175765unclassified0(0, 1, 0, 0)inconsistent0NaN3210.00.0
3microsoftInternal__NAV-176082unclassified1(1, 0, 0, 1)fragile10.6666673200.01.0
4microsoftInternal__NAV-176150unclassified0(0, 1, 1)inconsistent0NaN2011.0NaN
.......................................
66microsoftInternal__NAV-227219unclassified1(1, 1)stable-correct00.000000101NaNNaN
67microsoftInternal__NAV-227358unclassified1(1, 1, 1)stable-correct00.0000002011.0NaN
68microsoft__BCApps-4699unclassified1(1, 0)fragile11.000000110NaNNaN
69microsoft__BCApps-4822unclassified0(0, 1, 0)inconsistent0NaN2110.0NaN
70microsoft__BCApps-5633unclassified0(0, 0)unsolved0NaN110NaNNaN
\n", + "

71 rows × 12 columns

\n", + "
" + ], + "text/plain": [ + " family_id layer base pattern \\\n", + "0 microsoftInternal__NAV-174087 unclassified 1 (1, 1, 0) \n", + "1 microsoftInternal__NAV-174794 unclassified 1 (1, 1, 1, 1) \n", + "2 microsoftInternal__NAV-175765 unclassified 0 (0, 1, 0, 0) \n", + "3 microsoftInternal__NAV-176082 unclassified 1 (1, 0, 0, 1) \n", + "4 microsoftInternal__NAV-176150 unclassified 0 (0, 1, 1) \n", + ".. ... ... ... ... \n", + "66 microsoftInternal__NAV-227219 unclassified 1 (1, 1) \n", + "67 microsoftInternal__NAV-227358 unclassified 1 (1, 1, 1) \n", + "68 microsoft__BCApps-4699 unclassified 1 (1, 0) \n", + "69 microsoft__BCApps-4822 unclassified 0 (0, 1, 0) \n", + "70 microsoft__BCApps-5633 unclassified 0 (0, 0) \n", + "\n", + " type fragile severity cf_total cf_fail_count cf1 cf2 cf3 \n", + "0 fragile 1 0.500000 2 1 1 0.0 NaN \n", + "1 stable-correct 0 0.000000 3 0 1 1.0 1.0 \n", + "2 inconsistent 0 NaN 3 2 1 0.0 0.0 \n", + "3 fragile 1 0.666667 3 2 0 0.0 1.0 \n", + "4 inconsistent 0 NaN 2 0 1 1.0 NaN \n", + ".. ... ... ... ... ... ... ... ... \n", + "66 stable-correct 0 0.000000 1 0 1 NaN NaN \n", + "67 stable-correct 0 0.000000 2 0 1 1.0 NaN \n", + "68 fragile 1 1.000000 1 1 0 NaN NaN \n", + "69 inconsistent 0 NaN 2 1 1 0.0 NaN \n", + "70 unsolved 0 NaN 1 1 0 NaN NaN \n", + "\n", + "[71 rows x 12 columns]" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "=== GPT-5-3 Codex (71 families) ===\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
family_idlayerbasepatterntypefragileseveritycf_totalcf_fail_countcf1cf2cf3
0microsoftInternal__NAV-174087unclassified1(1, 1, 0)fragile10.5000002110.0NaN
1microsoftInternal__NAV-174794unclassified1(1, 0, 1, 1)fragile10.3333333101.01.0
2microsoftInternal__NAV-175765unclassified0(0, 0, 0, 0)unsolved0NaN3300.00.0
3microsoftInternal__NAV-176082unclassified1(1, 0, 0, 0)fragile11.0000003300.00.0
4microsoftInternal__NAV-176150unclassified1(1, 1, 1)stable-correct00.0000002011.0NaN
.......................................
66microsoftInternal__NAV-227219unclassified1(1, 1)stable-correct00.000000101NaNNaN
67microsoftInternal__NAV-227358unclassified1(1, 1, 1)stable-correct00.0000002011.0NaN
68microsoft__BCApps-4699unclassified0(0, 0)unsolved0NaN110NaNNaN
69microsoft__BCApps-4822unclassified1(1, 1, 0)fragile10.5000002110.0NaN
70microsoft__BCApps-5633unclassified0(0, 0)unsolved0NaN110NaNNaN
\n", + "

71 rows × 12 columns

\n", + "
" + ], + "text/plain": [ + " family_id layer base pattern \\\n", + "0 microsoftInternal__NAV-174087 unclassified 1 (1, 1, 0) \n", + "1 microsoftInternal__NAV-174794 unclassified 1 (1, 0, 1, 1) \n", + "2 microsoftInternal__NAV-175765 unclassified 0 (0, 0, 0, 0) \n", + "3 microsoftInternal__NAV-176082 unclassified 1 (1, 0, 0, 0) \n", + "4 microsoftInternal__NAV-176150 unclassified 1 (1, 1, 1) \n", + ".. ... ... ... ... \n", + "66 microsoftInternal__NAV-227219 unclassified 1 (1, 1) \n", + "67 microsoftInternal__NAV-227358 unclassified 1 (1, 1, 1) \n", + "68 microsoft__BCApps-4699 unclassified 0 (0, 0) \n", + "69 microsoft__BCApps-4822 unclassified 1 (1, 1, 0) \n", + "70 microsoft__BCApps-5633 unclassified 0 (0, 0) \n", + "\n", + " type fragile severity cf_total cf_fail_count cf1 cf2 cf3 \n", + "0 fragile 1 0.500000 2 1 1 0.0 NaN \n", + "1 fragile 1 0.333333 3 1 0 1.0 1.0 \n", + "2 unsolved 0 NaN 3 3 0 0.0 0.0 \n", + "3 fragile 1 1.000000 3 3 0 0.0 0.0 \n", + "4 stable-correct 0 0.000000 2 0 1 1.0 NaN \n", + ".. ... ... ... ... ... ... ... ... \n", + "66 stable-correct 0 0.000000 1 0 1 NaN NaN \n", + "67 stable-correct 0 0.000000 2 0 1 1.0 NaN \n", + "68 unsolved 0 NaN 1 1 0 NaN NaN \n", + "69 fragile 1 0.500000 2 1 1 0.0 NaN \n", + "70 unsolved 0 NaN 1 1 0 NaN NaN \n", + "\n", + "[71 rows x 12 columns]" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/json": { + "data": [ + { + "hovertemplate": "Family Type=stable-correct
Model=%{x}
Proportion (%)=%{y}", + "legendgroup": "stable-correct", + "marker": { + "color": "#2ecc71", + "pattern": { + "shape": "" + } + }, + "name": "stable-correct", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "texttemplate": "%{y}", + "type": "bar", + "x": [ + "Claude Opus 4.6", + "Claude Sonnet 4.6", + "GPT-5-4", + "GPT-5-3 Codex" + ], + "xaxis": "x", + "y": { + "bdata": "ZmZmZmamSEAAAAAAAEBHQDMzMzMzs0NAMzMzMzOzQ0A=", + "dtype": "f8" + }, + "yaxis": "y" + }, + { + "hovertemplate": "Family Type=fragile
Model=%{x}
Proportion (%)=%{y}", + "legendgroup": "fragile", + "marker": { + "color": "#e74c3c", + "pattern": { + "shape": "" + } + }, + "name": "fragile", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "texttemplate": "%{y}", + "type": "bar", + "x": [ + "Claude Opus 4.6", + "Claude Sonnet 4.6", + "GPT-5-4", + "GPT-5-3 Codex" + ], + "xaxis": "x", + "y": { + "bdata": "mpmZmZkZNUBmZmZmZuY3QM3MzMzMTDJAAAAAAACANkA=", + "dtype": "f8" + }, + "yaxis": "y" + }, + { + "hovertemplate": "Family Type=unsolved
Model=%{x}
Proportion (%)=%{y}", + "legendgroup": "unsolved", + "marker": { + "color": "#95a5a6", + "pattern": { + "shape": "" + } + }, + "name": "unsolved", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "texttemplate": "%{y}", + "type": "bar", + "x": [ + "Claude Opus 4.6", + "Claude Sonnet 4.6", + "GPT-5-4", + "GPT-5-3 Codex" + ], + "xaxis": "x", + "y": { + "bdata": "MzMzMzOzM0AAAAAAAAAvQM3MzMzMTDJAZmZmZmbmN0A=", + "dtype": "f8" + }, + "yaxis": "y" + }, + { + "hovertemplate": "Family Type=inconsistent
Model=%{x}
Proportion (%)=%{y}", + "legendgroup": "inconsistent", + "marker": { + "color": "#f39c12", + "pattern": { + "shape": "" + } + }, + "name": "inconsistent", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "texttemplate": "%{y}", + "type": "bar", + "x": [ + "Claude Opus 4.6", + "Claude Sonnet 4.6", + "GPT-5-4", + "GPT-5-3 Codex" + ], + "xaxis": "x", + "y": { + "bdata": "zczMzMzMI0AzMzMzMzMsQGZmZmZm5jdAMzMzMzMzLEA=", + "dtype": "f8" + }, + "yaxis": "y" + } + ], + "layout": { + "barmode": "stack", + "legend": { + "title": { + "text": "Family Type" + }, + "tracegroupgap": 0 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermap": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermap" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Family Type Distribution by Model" + }, + "xaxis": { + "anchor": "y", + "domain": [ + 0.0, + 1.0 + ], + "title": { + "text": "Model" + } + }, + "yaxis": { + "anchor": "x", + "domain": [ + 0.0, + 1.0 + ], + "title": { + "text": "Proportion (%)" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ModelFamily TypeCountProportion (%)
0Claude Opus 4.6stable-correct3549.3
1Claude Opus 4.6fragile1521.1
2Claude Opus 4.6unsolved1419.7
3Claude Opus 4.6inconsistent79.9
4Claude Sonnet 4.6fragile1723.9
5Claude Sonnet 4.6stable-correct3346.5
6Claude Sonnet 4.6unsolved1115.5
7Claude Sonnet 4.6inconsistent1014.1
8GPT-5-4fragile1318.3
9GPT-5-4stable-correct2839.4
10GPT-5-4inconsistent1723.9
11GPT-5-4unsolved1318.3
12GPT-5-3 Codexfragile1622.5
13GPT-5-3 Codexunsolved1723.9
14GPT-5-3 Codexstable-correct2839.4
15GPT-5-3 Codexinconsistent1014.1
\n", + "
" + ], + "text/plain": [ + " Model Family Type Count Proportion (%)\n", + "0 Claude Opus 4.6 stable-correct 35 49.3\n", + "1 Claude Opus 4.6 fragile 15 21.1\n", + "2 Claude Opus 4.6 unsolved 14 19.7\n", + "3 Claude Opus 4.6 inconsistent 7 9.9\n", + "4 Claude Sonnet 4.6 fragile 17 23.9\n", + "5 Claude Sonnet 4.6 stable-correct 33 46.5\n", + "6 Claude Sonnet 4.6 unsolved 11 15.5\n", + "7 Claude Sonnet 4.6 inconsistent 10 14.1\n", + "8 GPT-5-4 fragile 13 18.3\n", + "9 GPT-5-4 stable-correct 28 39.4\n", + "10 GPT-5-4 inconsistent 17 23.9\n", + "11 GPT-5-4 unsolved 13 18.3\n", + "12 GPT-5-3 Codex fragile 16 22.5\n", + "13 GPT-5-3 Codex unsolved 17 23.9\n", + "14 GPT-5-3 Codex stable-correct 28 39.4\n", + "15 GPT-5-3 Codex inconsistent 10 14.1" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/json": { + "data": [ + { + "hovertemplate": "Model=%{x}
Fragility Rate (%)=%{y}", + "legendgroup": "", + "marker": { + "color": "#e74c3c", + "pattern": { + "shape": "" + } + }, + "name": "", + "orientation": "v", + "showlegend": false, + "textposition": "auto", + "texttemplate": "%{y}", + "type": "bar", + "x": [ + "Claude Opus 4.6", + "Claude Sonnet 4.6", + "GPT-5-4", + "GPT-5-3 Codex" + ], + "xaxis": "x", + "y": { + "bdata": "AAAAAAAAPkAAAAAAAABBQDMzMzMzsz9AMzMzMzMzQkA=", + "dtype": "f8" + }, + "yaxis": "y" + } + ], + "layout": { + "barmode": "relative", + "legend": { + "tracegroupgap": 0 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermap": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermap" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Family Fragility Rate: P(CF fail | Base correct)" + }, + "xaxis": { + "anchor": "y", + "domain": [ + 0.0, + 1.0 + ], + "title": { + "text": "Model" + } + }, + "yaxis": { + "anchor": "x", + "domain": [ + 0.0, + 1.0 + ], + "range": [ + 0, + 100 + ], + "title": { + "text": "Fragility Rate (%)" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ModelFragility Rate (%)Mean Severity
0Claude Opus 4.630.00.240
1Claude Sonnet 4.634.00.237
2GPT-5-431.70.256
3GPT-5-3 Codex36.40.261
\n", + "
" + ], + "text/plain": [ + " Model Fragility Rate (%) Mean Severity\n", + "0 Claude Opus 4.6 30.0 0.240\n", + "1 Claude Sonnet 4.6 34.0 0.237\n", + "2 GPT-5-4 31.7 0.256\n", + "3 GPT-5-3 Codex 36.4 0.261" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/json": { + "data": [ + { + "alignmentgroup": "True", + "boxpoints": "all", + "hovertemplate": "Model=%{x}
Severity=%{y}", + "legendgroup": "Claude Opus 4.6", + "marker": { + "color": "#636efa" + }, + "name": "Claude Opus 4.6", + "notched": false, + "offsetgroup": "Claude Opus 4.6", + "orientation": "v", + "showlegend": true, + "type": "box", + "x": [ + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6", + "Claude Opus 4.6" + ], + "x0": " ", + "xaxis": "x", + "y": { + "bdata": "AAAAAAAAAABVVVVVVVXlPwAAAAAAAPA/VVVVVVVV5T8AAAAAAADgP1VVVVVVVdU/AAAAAAAA8D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVVVVVVVV1T8AAAAAAADwPwAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAAAAAAAAAAAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAAAAAAAAAA==", + "dtype": "f8" + }, + "y0": " ", + "yaxis": "y" + }, + { + "alignmentgroup": "True", + "boxpoints": "all", + "hovertemplate": "Model=%{x}
Severity=%{y}", + "legendgroup": "Claude Sonnet 4.6", + "marker": { + "color": "#EF553B" + }, + "name": "Claude Sonnet 4.6", + "notched": false, + "offsetgroup": "Claude Sonnet 4.6", + "orientation": "v", + "showlegend": true, + "type": "box", + "x": [ + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6", + "Claude Sonnet 4.6" + ], + "x0": " ", + "xaxis": "x", + "y": { + "bdata": "AAAAAAAA4D8AAAAAAAAAAFVVVVVVVeU/VVVVVVVV5T8AAAAAAADgP1VVVVVVVdU/AAAAAAAA8D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgP1VVVVVVVdU/AAAAAAAAAAAAAAAAAADwPwAAAAAAAAAAVVVVVVVV1T8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8D8AAAAAAADgPw==", + "dtype": "f8" + }, + "y0": " ", + "yaxis": "y" + }, + { + "alignmentgroup": "True", + "boxpoints": "all", + "hovertemplate": "Model=%{x}
Severity=%{y}", + "legendgroup": "GPT-5-4", + "marker": { + "color": "#00cc96" + }, + "name": "GPT-5-4", + "notched": false, + "offsetgroup": "GPT-5-4", + "orientation": "v", + "showlegend": true, + "type": "box", + "x": [ + "GPT-5-4", + "GPT-5-4", + "GPT-5-4", + "GPT-5-4", + "GPT-5-4", + "GPT-5-4", + "GPT-5-4", + "GPT-5-4", + "GPT-5-4", + "GPT-5-4", + "GPT-5-4", + "GPT-5-4", + "GPT-5-4", + "GPT-5-4", + "GPT-5-4", + "GPT-5-4", + "GPT-5-4", + "GPT-5-4", + "GPT-5-4", + "GPT-5-4", + "GPT-5-4", + "GPT-5-4", + "GPT-5-4", + "GPT-5-4", + "GPT-5-4", + "GPT-5-4", + "GPT-5-4", + "GPT-5-4", + "GPT-5-4", + "GPT-5-4", + "GPT-5-4", + "GPT-5-4", + "GPT-5-4", + "GPT-5-4", + "GPT-5-4", + "GPT-5-4", + "GPT-5-4", + "GPT-5-4", + "GPT-5-4", + "GPT-5-4", + "GPT-5-4" + ], + "x0": " ", + "xaxis": "x", + "y": { + "bdata": "AAAAAAAA4D8AAAAAAAAAAFVVVVVVVeU/VVVVVVVV1T8AAAAAAADwPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4D8AAAAAAADgPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAAAAAAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPw==", + "dtype": "f8" + }, + "y0": " ", + "yaxis": "y" + }, + { + "alignmentgroup": "True", + "boxpoints": "all", + "hovertemplate": "Model=%{x}
Severity=%{y}", + "legendgroup": "GPT-5-3 Codex", + "marker": { + "color": "#ab63fa" + }, + "name": "GPT-5-3 Codex", + "notched": false, + "offsetgroup": "GPT-5-3 Codex", + "orientation": "v", + "showlegend": true, + "type": "box", + "x": [ + "GPT-5-3 Codex", + "GPT-5-3 Codex", + "GPT-5-3 Codex", + "GPT-5-3 Codex", + "GPT-5-3 Codex", + "GPT-5-3 Codex", + "GPT-5-3 Codex", + "GPT-5-3 Codex", + "GPT-5-3 Codex", + "GPT-5-3 Codex", + "GPT-5-3 Codex", + "GPT-5-3 Codex", + "GPT-5-3 Codex", + "GPT-5-3 Codex", + "GPT-5-3 Codex", + "GPT-5-3 Codex", + "GPT-5-3 Codex", + "GPT-5-3 Codex", + "GPT-5-3 Codex", + "GPT-5-3 Codex", + "GPT-5-3 Codex", + "GPT-5-3 Codex", + "GPT-5-3 Codex", + "GPT-5-3 Codex", + "GPT-5-3 Codex", + "GPT-5-3 Codex", + "GPT-5-3 Codex", + "GPT-5-3 Codex", + "GPT-5-3 Codex", + "GPT-5-3 Codex", + "GPT-5-3 Codex", + "GPT-5-3 Codex", + "GPT-5-3 Codex", + "GPT-5-3 Codex", + "GPT-5-3 Codex", + "GPT-5-3 Codex", + "GPT-5-3 Codex", + "GPT-5-3 Codex", + "GPT-5-3 Codex", + "GPT-5-3 Codex", + "GPT-5-3 Codex", + "GPT-5-3 Codex", + "GPT-5-3 Codex", + "GPT-5-3 Codex" + ], + "x0": " ", + "xaxis": "x", + "y": { + "bdata": "AAAAAAAA4D9VVVVVVVXVPwAAAAAAAPA/AAAAAAAAAABVVVVVVVXVPwAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOA/VVVVVVVV1T8AAAAAAADwPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAA8D8AAAAAAAAAAAAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwPwAAAAAAAAAAAAAAAAAA8D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgPw==", + "dtype": "f8" + }, + "y0": " ", + "yaxis": "y" + } + ], + "layout": { + "boxmode": "overlay", + "legend": { + "title": { + "text": "Model" + }, + "tracegroupgap": 0 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermap": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermap" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Fragility Severity Distribution (N_cf_fail / N_cf)" + }, + "xaxis": { + "anchor": "y", + "categoryarray": [ + "Claude Opus 4.6", + "Claude Sonnet 4.6", + "GPT-5-4", + "GPT-5-3 Codex" + ], + "categoryorder": "array", + "domain": [ + 0.0, + 1.0 + ], + "title": { + "text": "Model" + } + }, + "yaxis": { + "anchor": "x", + "domain": [ + 0.0, + 1.0 + ], + "title": { + "text": "Severity" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "=== Claude Opus 4.6 patterns ===\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PatternCountPct (%)
0(1, 1)1622.5
1(1, 1, 1)1318.3
2(0, 0)811.3
3(1, 0)68.5
4(1, 1, 1, 1)68.5
5(0, 0, 0)45.6
6(0, 1)45.6
7(0, 0, 0, 0)22.8
8(1, 0, 0)22.8
9(1, 1, 0, 0)11.4
10(1, 0, 0, 0)11.4
11(1, 0, 0, 1)11.4
12(1, 0, 1)11.4
13(0, 1, 0)11.4
14(1, 0, 1, 1)11.4
15(0, 1, 1)11.4
16(1, 1, 1, 0)11.4
17(0, 0, 1)11.4
18(1, 1, 0)11.4
\n", + "
" + ], + "text/plain": [ + " Pattern Count Pct (%)\n", + "0 (1, 1) 16 22.5\n", + "1 (1, 1, 1) 13 18.3\n", + "2 (0, 0) 8 11.3\n", + "3 (1, 0) 6 8.5\n", + "4 (1, 1, 1, 1) 6 8.5\n", + "5 (0, 0, 0) 4 5.6\n", + "6 (0, 1) 4 5.6\n", + "7 (0, 0, 0, 0) 2 2.8\n", + "8 (1, 0, 0) 2 2.8\n", + "9 (1, 1, 0, 0) 1 1.4\n", + "10 (1, 0, 0, 0) 1 1.4\n", + "11 (1, 0, 0, 1) 1 1.4\n", + "12 (1, 0, 1) 1 1.4\n", + "13 (0, 1, 0) 1 1.4\n", + "14 (1, 0, 1, 1) 1 1.4\n", + "15 (0, 1, 1) 1 1.4\n", + "16 (1, 1, 1, 0) 1 1.4\n", + "17 (0, 0, 1) 1 1.4\n", + "18 (1, 1, 0) 1 1.4" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "=== Claude Sonnet 4.6 patterns ===\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PatternCountPct (%)
0(1, 1)1825.4
1(1, 1, 1)1014.1
2(0, 0)68.5
3(0, 1)68.5
4(1, 1, 1, 1)57.0
5(1, 0)45.6
6(1, 1, 0)34.2
7(0, 0, 0, 0)34.2
8(1, 0, 0)34.2
9(0, 1, 0)22.8
10(0, 0, 0)22.8
11(1, 0, 1)22.8
12(1, 1, 0, 0)11.4
13(1, 0, 0, 1)11.4
14(1, 0, 1, 1)11.4
15(0, 1, 1)11.4
16(1, 1, 0, 1)11.4
17(1, 1, 1, 0)11.4
18(0, 0, 1)11.4
\n", + "
" + ], + "text/plain": [ + " Pattern Count Pct (%)\n", + "0 (1, 1) 18 25.4\n", + "1 (1, 1, 1) 10 14.1\n", + "2 (0, 0) 6 8.5\n", + "3 (0, 1) 6 8.5\n", + "4 (1, 1, 1, 1) 5 7.0\n", + "5 (1, 0) 4 5.6\n", + "6 (1, 1, 0) 3 4.2\n", + "7 (0, 0, 0, 0) 3 4.2\n", + "8 (1, 0, 0) 3 4.2\n", + "9 (0, 1, 0) 2 2.8\n", + "10 (0, 0, 0) 2 2.8\n", + "11 (1, 0, 1) 2 2.8\n", + "12 (1, 1, 0, 0) 1 1.4\n", + "13 (1, 0, 0, 1) 1 1.4\n", + "14 (1, 0, 1, 1) 1 1.4\n", + "15 (0, 1, 1) 1 1.4\n", + "16 (1, 1, 0, 1) 1 1.4\n", + "17 (1, 1, 1, 0) 1 1.4\n", + "18 (0, 0, 1) 1 1.4" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "=== GPT-5-4 patterns ===\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PatternCountPct (%)
0(1, 1)1419.7
1(0, 0)811.3
2(1, 1, 1, 1)79.9
3(1, 1, 1)79.9
4(0, 1, 1)68.5
5(1, 0)68.5
6(0, 1)68.5
7(1, 1, 0)34.2
8(0, 1, 0)34.2
9(0, 0, 0)34.2
10(0, 0, 0, 0)22.8
11(1, 0, 0)22.8
12(0, 1, 0, 0)11.4
13(1, 0, 0, 1)11.4
14(1, 0, 1, 1)11.4
15(0, 1, 0, 1)11.4
\n", + "
" + ], + "text/plain": [ + " Pattern Count Pct (%)\n", + "0 (1, 1) 14 19.7\n", + "1 (0, 0) 8 11.3\n", + "2 (1, 1, 1, 1) 7 9.9\n", + "3 (1, 1, 1) 7 9.9\n", + "4 (0, 1, 1) 6 8.5\n", + "5 (1, 0) 6 8.5\n", + "6 (0, 1) 6 8.5\n", + "7 (1, 1, 0) 3 4.2\n", + "8 (0, 1, 0) 3 4.2\n", + "9 (0, 0, 0) 3 4.2\n", + "10 (0, 0, 0, 0) 2 2.8\n", + "11 (1, 0, 0) 2 2.8\n", + "12 (0, 1, 0, 0) 1 1.4\n", + "13 (1, 0, 0, 1) 1 1.4\n", + "14 (1, 0, 1, 1) 1 1.4\n", + "15 (0, 1, 0, 1) 1 1.4" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "=== GPT-5-3 Codex patterns ===\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PatternCountPct (%)
0(1, 1)1521.1
1(0, 0)1014.1
2(1, 1, 1)811.3
3(1, 0)57.0
4(0, 1, 1)57.0
5(1, 1, 1, 1)57.0
6(0, 0, 0)45.6
7(0, 1)45.6
8(0, 0, 0, 0)34.2
9(1, 0, 1)34.2
10(1, 1, 0)22.8
11(1, 0, 1, 1)22.8
12(1, 0, 0)22.8
13(1, 0, 0, 0)11.4
14(0, 1, 0, 1)11.4
15(1, 1, 0, 1)11.4
\n", + "
" + ], + "text/plain": [ + " Pattern Count Pct (%)\n", + "0 (1, 1) 15 21.1\n", + "1 (0, 0) 10 14.1\n", + "2 (1, 1, 1) 8 11.3\n", + "3 (1, 0) 5 7.0\n", + "4 (0, 1, 1) 5 7.0\n", + "5 (1, 1, 1, 1) 5 7.0\n", + "6 (0, 0, 0) 4 5.6\n", + "7 (0, 1) 4 5.6\n", + "8 (0, 0, 0, 0) 3 4.2\n", + "9 (1, 0, 1) 3 4.2\n", + "10 (1, 1, 0) 2 2.8\n", + "11 (1, 0, 1, 1) 2 2.8\n", + "12 (1, 0, 0) 2 2.8\n", + "13 (1, 0, 0, 0) 1 1.4\n", + "14 (0, 1, 0, 1) 1 1.4\n", + "15 (1, 1, 0, 1) 1 1.4" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/json": { + "data": [ + { + "alignmentgroup": "True", + "hovertemplate": "Model=Claude Opus 4.6
Outcome=%{x}
Count=%{y}", + "legendgroup": "Claude Opus 4.6", + "marker": { + "color": "#636efa", + "pattern": { + "shape": "" + } + }, + "name": "Claude Opus 4.6", + "offsetgroup": "Claude Opus 4.6", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "type": "bar", + "x": [ + "both-correct", + "base-correct-cf-incorrect", + "both-incorrect", + "base-incorrect-cf-correct" + ], + "xaxis": "x", + "y": { + "bdata": "RBUYCA==", + "dtype": "i1" + }, + "yaxis": "y" + }, + { + "alignmentgroup": "True", + "hovertemplate": "Model=Claude Sonnet 4.6
Outcome=%{x}
Count=%{y}", + "legendgroup": "Claude Sonnet 4.6", + "marker": { + "color": "#EF553B", + "pattern": { + "shape": "" + } + }, + "name": "Claude Sonnet 4.6", + "offsetgroup": "Claude Sonnet 4.6", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "type": "bar", + "x": [ + "both-correct", + "base-correct-cf-incorrect", + "both-incorrect", + "base-incorrect-cf-correct" + ], + "xaxis": "x", + "y": { + "bdata": "QhYWCw==", + "dtype": "i1" + }, + "yaxis": "y" + }, + { + "alignmentgroup": "True", + "hovertemplate": "Model=GPT-5-4
Outcome=%{x}
Count=%{y}", + "legendgroup": "GPT-5-4", + "marker": { + "color": "#00cc96", + "pattern": { + "shape": "" + } + }, + "name": "GPT-5-4", + "offsetgroup": "GPT-5-4", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "type": "bar", + "x": [ + "both-correct", + "base-correct-cf-incorrect", + "both-incorrect", + "base-incorrect-cf-correct" + ], + "xaxis": "x", + "y": { + "bdata": "NxAaGA==", + "dtype": "i1" + }, + "yaxis": "y" + }, + { + "alignmentgroup": "True", + "hovertemplate": "Model=GPT-5-3 Codex
Outcome=%{x}
Count=%{y}", + "legendgroup": "GPT-5-3 Codex", + "marker": { + "color": "#ab63fa", + "pattern": { + "shape": "" + } + }, + "name": "GPT-5-3 Codex", + "offsetgroup": "GPT-5-3 Codex", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "type": "bar", + "x": [ + "both-correct", + "base-correct-cf-incorrect", + "both-incorrect", + "base-incorrect-cf-correct" + ], + "xaxis": "x", + "y": { + "bdata": "ORQcEA==", + "dtype": "i1" + }, + "yaxis": "y" + } + ], + "layout": { + "barmode": "group", + "legend": { + "title": { + "text": "Model" + }, + "tracegroupgap": 0 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermap": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermap" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Counterfactual Consistency (per base->CF pair)" + }, + "xaxis": { + "anchor": "y", + "categoryarray": [ + "both-correct", + "base-correct-cf-incorrect", + "both-incorrect", + "base-incorrect-cf-correct" + ], + "categoryorder": "array", + "domain": [ + 0.0, + 1.0 + ], + "title": { + "text": "Outcome" + } + }, + "yaxis": { + "anchor": "x", + "domain": [ + 0.0, + 1.0 + ], + "title": { + "text": "Count" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Outcomeboth-correctbase-correct-cf-incorrectboth-incorrectbase-incorrect-cf-correct
Model
Claude Opus 4.668.021.024.08.0
Claude Sonnet 4.666.022.022.011.0
GPT-5-3 Codex57.020.028.016.0
GPT-5-455.016.026.024.0
\n", + "
" + ], + "text/plain": [ + "Outcome both-correct base-correct-cf-incorrect both-incorrect \\\n", + "Model \n", + "Claude Opus 4.6 68.0 21.0 24.0 \n", + "Claude Sonnet 4.6 66.0 22.0 22.0 \n", + "GPT-5-3 Codex 57.0 20.0 28.0 \n", + "GPT-5-4 55.0 16.0 26.0 \n", + "\n", + "Outcome base-incorrect-cf-correct \n", + "Model \n", + "Claude Opus 4.6 8.0 \n", + "Claude Sonnet 4.6 11.0 \n", + "GPT-5-3 Codex 16.0 \n", + "GPT-5-4 24.0 " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ModelCorrectness Drop (%)Fragility Rate (%)
0Claude Opus 4.623.630.0
1Claude Sonnet 4.625.034.0
2GPT-5-422.531.7
3GPT-5-3 Codex26.036.4
\n", + "
" + ], + "text/plain": [ + " Model Correctness Drop (%) Fragility Rate (%)\n", + "0 Claude Opus 4.6 23.6 30.0\n", + "1 Claude Sonnet 4.6 25.0 34.0\n", + "2 GPT-5-4 22.5 31.7\n", + "3 GPT-5-3 Codex 26.0 36.4" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/json": { + "data": [ + { + "alignmentgroup": "True", + "hovertemplate": "Model=Claude Opus 4.6
Reaction=%{x}
Count=%{y}", + "legendgroup": "Claude Opus 4.6", + "marker": { + "color": "#636efa", + "pattern": { + "shape": "" + } + }, + "name": "Claude Opus 4.6", + "offsetgroup": "Claude Opus 4.6", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "type": "bar", + "x": [ + "under-reaction", + "appropriate", + "over-reaction" + ], + "xaxis": "x", + "y": { + "bdata": "FQJS", + "dtype": "i1" + }, + "yaxis": "y" + }, + { + "alignmentgroup": "True", + "hovertemplate": "Model=Claude Sonnet 4.6
Reaction=%{x}
Count=%{y}", + "legendgroup": "Claude Sonnet 4.6", + "marker": { + "color": "#EF553B", + "pattern": { + "shape": "" + } + }, + "name": "Claude Sonnet 4.6", + "offsetgroup": "Claude Sonnet 4.6", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "type": "bar", + "x": [ + "under-reaction", + "appropriate", + "over-reaction" + ], + "xaxis": "x", + "y": { + "bdata": "HAVI", + "dtype": "i1" + }, + "yaxis": "y" + }, + { + "alignmentgroup": "True", + "hovertemplate": "Model=GPT-5-3 Codex
Reaction=%{x}
Count=%{y}", + "legendgroup": "GPT-5-3 Codex", + "marker": { + "color": "#00cc96", + "pattern": { + "shape": "" + } + }, + "name": "GPT-5-3 Codex", + "offsetgroup": "GPT-5-3 Codex", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "type": "bar", + "x": [ + "under-reaction", + "appropriate", + "over-reaction" + ], + "xaxis": "x", + "y": { + "bdata": "AQFn", + "dtype": "i1" + }, + "yaxis": "y" + } + ], + "layout": { + "barmode": "group", + "legend": { + "title": { + "text": "Model" + }, + "tracegroupgap": 0 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermap": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermap" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Output reaction to spec change (S<1 under, ~1 appropriate, S>1 over)" + }, + "xaxis": { + "anchor": "y", + "categoryarray": [ + "under-reaction", + "appropriate", + "over-reaction" + ], + "categoryorder": "array", + "domain": [ + 0.0, + 1.0 + ], + "title": { + "text": "Reaction" + } + }, + "yaxis": { + "anchor": "x", + "domain": [ + 0.0, + 1.0 + ], + "title": { + "text": "Count" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ModelMean SensitivityMedian SensitivityPairs (spec changed)Unrelated rewrites
0Claude Opus 4.622.3006.38310536
1Claude Sonnet 4.620.2175.15510529
2GPT-5-3 Codex25.89014.30610542
\n", + "
" + ], + "text/plain": [ + " Model Mean Sensitivity Median Sensitivity \\\n", + "0 Claude Opus 4.6 22.300 6.383 \n", + "1 Claude Sonnet 4.6 20.217 5.155 \n", + "2 GPT-5-3 Codex 25.890 14.306 \n", + "\n", + " Pairs (spec changed) Unrelated rewrites \n", + "0 105 36 \n", + "1 105 29 \n", + "2 105 42 " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "=== Claude Opus 4.6: per-pair sensitivity (first 20) ===\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
family_idcfbase_passcf_passspec_deltaoutput_deltasensitivityreactionunrelated_rewrite
0microsoftInternal__NAV-174087microsoftInternal__NAV-174087__cf-1110.0000.850NaNNoneFalse
1microsoftInternal__NAV-174087microsoftInternal__NAV-174087__cf-2110.0120.90372.258over-reactionFalse
2microsoftInternal__NAV-174794microsoftInternal__NAV-174794__cf-1110.0480.50010.500over-reactionFalse
3microsoftInternal__NAV-174794microsoftInternal__NAV-174794__cf-2100.0240.50021.000over-reactionTrue
4microsoftInternal__NAV-174794microsoftInternal__NAV-174794__cf-3100.0000.500NaNNoneFalse
5microsoftInternal__NAV-175765microsoftInternal__NAV-175765__cf-1100.0520.90517.552over-reactionTrue
6microsoftInternal__NAV-175765microsoftInternal__NAV-175765__cf-2100.0460.93320.222over-reactionTrue
7microsoftInternal__NAV-175765microsoftInternal__NAV-175765__cf-3100.0510.95718.748over-reactionTrue
8microsoftInternal__NAV-176082microsoftInternal__NAV-176082__cf-1100.0000.371NaNNoneFalse
9microsoftInternal__NAV-176082microsoftInternal__NAV-176082__cf-2100.0000.655NaNNoneFalse
10microsoftInternal__NAV-176082microsoftInternal__NAV-176082__cf-3110.0000.707NaNNoneFalse
11microsoftInternal__NAV-176150microsoftInternal__NAV-176150__cf-1100.0040.760209.000over-reactionTrue
12microsoftInternal__NAV-176150microsoftInternal__NAV-176150__cf-2110.0040.36099.000over-reactionFalse
13microsoftInternal__NAV-176194microsoftInternal__NAV-176194__cf-1000.0001.000NaNNoneFalse
14microsoftInternal__NAV-176194microsoftInternal__NAV-176194__cf-2000.0050.973178.607over-reactionTrue
15microsoftInternal__NAV-176194microsoftInternal__NAV-176194__cf-3000.0001.000NaNNoneFalse
16microsoftInternal__NAV-176426microsoftInternal__NAV-176426__cf-1010.0510.70413.933over-reactionFalse
17microsoftInternal__NAV-176426microsoftInternal__NAV-176426__cf-2000.0400.83820.946over-reactionTrue
18microsoftInternal__NAV-177493microsoftInternal__NAV-177493__cf-1100.0600.3285.436over-reactionTrue
19microsoftInternal__NAV-177493microsoftInternal__NAV-177493__cf-2110.2120.6222.933over-reactionFalse
\n", + "
" + ], + "text/plain": [ + " family_id cf \\\n", + "0 microsoftInternal__NAV-174087 microsoftInternal__NAV-174087__cf-1 \n", + "1 microsoftInternal__NAV-174087 microsoftInternal__NAV-174087__cf-2 \n", + "2 microsoftInternal__NAV-174794 microsoftInternal__NAV-174794__cf-1 \n", + "3 microsoftInternal__NAV-174794 microsoftInternal__NAV-174794__cf-2 \n", + "4 microsoftInternal__NAV-174794 microsoftInternal__NAV-174794__cf-3 \n", + "5 microsoftInternal__NAV-175765 microsoftInternal__NAV-175765__cf-1 \n", + "6 microsoftInternal__NAV-175765 microsoftInternal__NAV-175765__cf-2 \n", + "7 microsoftInternal__NAV-175765 microsoftInternal__NAV-175765__cf-3 \n", + "8 microsoftInternal__NAV-176082 microsoftInternal__NAV-176082__cf-1 \n", + "9 microsoftInternal__NAV-176082 microsoftInternal__NAV-176082__cf-2 \n", + "10 microsoftInternal__NAV-176082 microsoftInternal__NAV-176082__cf-3 \n", + "11 microsoftInternal__NAV-176150 microsoftInternal__NAV-176150__cf-1 \n", + "12 microsoftInternal__NAV-176150 microsoftInternal__NAV-176150__cf-2 \n", + "13 microsoftInternal__NAV-176194 microsoftInternal__NAV-176194__cf-1 \n", + "14 microsoftInternal__NAV-176194 microsoftInternal__NAV-176194__cf-2 \n", + "15 microsoftInternal__NAV-176194 microsoftInternal__NAV-176194__cf-3 \n", + "16 microsoftInternal__NAV-176426 microsoftInternal__NAV-176426__cf-1 \n", + "17 microsoftInternal__NAV-176426 microsoftInternal__NAV-176426__cf-2 \n", + "18 microsoftInternal__NAV-177493 microsoftInternal__NAV-177493__cf-1 \n", + "19 microsoftInternal__NAV-177493 microsoftInternal__NAV-177493__cf-2 \n", + "\n", + " base_pass cf_pass spec_delta output_delta sensitivity reaction \\\n", + "0 1 1 0.000 0.850 NaN None \n", + "1 1 1 0.012 0.903 72.258 over-reaction \n", + "2 1 1 0.048 0.500 10.500 over-reaction \n", + "3 1 0 0.024 0.500 21.000 over-reaction \n", + "4 1 0 0.000 0.500 NaN None \n", + "5 1 0 0.052 0.905 17.552 over-reaction \n", + "6 1 0 0.046 0.933 20.222 over-reaction \n", + "7 1 0 0.051 0.957 18.748 over-reaction \n", + "8 1 0 0.000 0.371 NaN None \n", + "9 1 0 0.000 0.655 NaN None \n", + "10 1 1 0.000 0.707 NaN None \n", + "11 1 0 0.004 0.760 209.000 over-reaction \n", + "12 1 1 0.004 0.360 99.000 over-reaction \n", + "13 0 0 0.000 1.000 NaN None \n", + "14 0 0 0.005 0.973 178.607 over-reaction \n", + "15 0 0 0.000 1.000 NaN None \n", + "16 0 1 0.051 0.704 13.933 over-reaction \n", + "17 0 0 0.040 0.838 20.946 over-reaction \n", + "18 1 0 0.060 0.328 5.436 over-reaction \n", + "19 1 1 0.212 0.622 2.933 over-reaction \n", + "\n", + " unrelated_rewrite \n", + "0 False \n", + "1 False \n", + "2 False \n", + "3 True \n", + "4 False \n", + "5 True \n", + "6 True \n", + "7 True \n", + "8 False \n", + "9 False \n", + "10 False \n", + "11 True \n", + "12 False \n", + "13 False \n", + "14 True \n", + "15 False \n", + "16 False \n", + "17 True \n", + "18 True \n", + "19 False " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "=== Claude Sonnet 4.6: per-pair sensitivity (first 20) ===\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
family_idcfbase_passcf_passspec_deltaoutput_deltasensitivityreactionunrelated_rewrite
0microsoftInternal__NAV-174087microsoftInternal__NAV-174087__cf-1110.0000.786NaNNoneFalse
1microsoftInternal__NAV-174087microsoftInternal__NAV-174087__cf-2100.0120.90072.000over-reactionTrue
2microsoftInternal__NAV-174794microsoftInternal__NAV-174794__cf-1110.0480.0000.000under-reactionFalse
3microsoftInternal__NAV-174794microsoftInternal__NAV-174794__cf-2110.0240.0000.000under-reactionFalse
4microsoftInternal__NAV-174794microsoftInternal__NAV-174794__cf-3110.0000.500NaNNoneFalse
5microsoftInternal__NAV-175765microsoftInternal__NAV-175765__cf-1110.0520.0000.000under-reactionFalse
6microsoftInternal__NAV-175765microsoftInternal__NAV-175765__cf-2100.0460.93320.222over-reactionTrue
7microsoftInternal__NAV-175765microsoftInternal__NAV-175765__cf-3100.0510.93318.293over-reactionTrue
8microsoftInternal__NAV-176082microsoftInternal__NAV-176082__cf-1100.0000.420NaNNoneFalse
9microsoftInternal__NAV-176082microsoftInternal__NAV-176082__cf-2100.0000.516NaNNoneFalse
10microsoftInternal__NAV-176082microsoftInternal__NAV-176082__cf-3110.0000.931NaNNoneFalse
11microsoftInternal__NAV-176150microsoftInternal__NAV-176150__cf-1110.0040.0000.000under-reactionFalse
12microsoftInternal__NAV-176150microsoftInternal__NAV-176150__cf-2100.0041.000275.000over-reactionTrue
13microsoftInternal__NAV-176194microsoftInternal__NAV-176194__cf-1000.0001.000NaNNoneFalse
14microsoftInternal__NAV-176194microsoftInternal__NAV-176194__cf-2000.0050.953174.965over-reactionTrue
15microsoftInternal__NAV-176194microsoftInternal__NAV-176194__cf-3000.0001.000NaNNoneFalse
16microsoftInternal__NAV-176426microsoftInternal__NAV-176426__cf-1010.0510.0000.000under-reactionFalse
17microsoftInternal__NAV-176426microsoftInternal__NAV-176426__cf-2000.0400.0000.000under-reactionFalse
18microsoftInternal__NAV-177493microsoftInternal__NAV-177493__cf-1100.0600.3886.420over-reactionTrue
19microsoftInternal__NAV-177493microsoftInternal__NAV-177493__cf-2110.2120.5222.460over-reactionFalse
\n", + "
" + ], + "text/plain": [ + " family_id cf \\\n", + "0 microsoftInternal__NAV-174087 microsoftInternal__NAV-174087__cf-1 \n", + "1 microsoftInternal__NAV-174087 microsoftInternal__NAV-174087__cf-2 \n", + "2 microsoftInternal__NAV-174794 microsoftInternal__NAV-174794__cf-1 \n", + "3 microsoftInternal__NAV-174794 microsoftInternal__NAV-174794__cf-2 \n", + "4 microsoftInternal__NAV-174794 microsoftInternal__NAV-174794__cf-3 \n", + "5 microsoftInternal__NAV-175765 microsoftInternal__NAV-175765__cf-1 \n", + "6 microsoftInternal__NAV-175765 microsoftInternal__NAV-175765__cf-2 \n", + "7 microsoftInternal__NAV-175765 microsoftInternal__NAV-175765__cf-3 \n", + "8 microsoftInternal__NAV-176082 microsoftInternal__NAV-176082__cf-1 \n", + "9 microsoftInternal__NAV-176082 microsoftInternal__NAV-176082__cf-2 \n", + "10 microsoftInternal__NAV-176082 microsoftInternal__NAV-176082__cf-3 \n", + "11 microsoftInternal__NAV-176150 microsoftInternal__NAV-176150__cf-1 \n", + "12 microsoftInternal__NAV-176150 microsoftInternal__NAV-176150__cf-2 \n", + "13 microsoftInternal__NAV-176194 microsoftInternal__NAV-176194__cf-1 \n", + "14 microsoftInternal__NAV-176194 microsoftInternal__NAV-176194__cf-2 \n", + "15 microsoftInternal__NAV-176194 microsoftInternal__NAV-176194__cf-3 \n", + "16 microsoftInternal__NAV-176426 microsoftInternal__NAV-176426__cf-1 \n", + "17 microsoftInternal__NAV-176426 microsoftInternal__NAV-176426__cf-2 \n", + "18 microsoftInternal__NAV-177493 microsoftInternal__NAV-177493__cf-1 \n", + "19 microsoftInternal__NAV-177493 microsoftInternal__NAV-177493__cf-2 \n", + "\n", + " base_pass cf_pass spec_delta output_delta sensitivity reaction \\\n", + "0 1 1 0.000 0.786 NaN None \n", + "1 1 0 0.012 0.900 72.000 over-reaction \n", + "2 1 1 0.048 0.000 0.000 under-reaction \n", + "3 1 1 0.024 0.000 0.000 under-reaction \n", + "4 1 1 0.000 0.500 NaN None \n", + "5 1 1 0.052 0.000 0.000 under-reaction \n", + "6 1 0 0.046 0.933 20.222 over-reaction \n", + "7 1 0 0.051 0.933 18.293 over-reaction \n", + "8 1 0 0.000 0.420 NaN None \n", + "9 1 0 0.000 0.516 NaN None \n", + "10 1 1 0.000 0.931 NaN None \n", + "11 1 1 0.004 0.000 0.000 under-reaction \n", + "12 1 0 0.004 1.000 275.000 over-reaction \n", + "13 0 0 0.000 1.000 NaN None \n", + "14 0 0 0.005 0.953 174.965 over-reaction \n", + "15 0 0 0.000 1.000 NaN None \n", + "16 0 1 0.051 0.000 0.000 under-reaction \n", + "17 0 0 0.040 0.000 0.000 under-reaction \n", + "18 1 0 0.060 0.388 6.420 over-reaction \n", + "19 1 1 0.212 0.522 2.460 over-reaction \n", + "\n", + " unrelated_rewrite \n", + "0 False \n", + "1 True \n", + "2 False \n", + "3 False \n", + "4 False \n", + "5 False \n", + "6 True \n", + "7 True \n", + "8 False \n", + "9 False \n", + "10 False \n", + "11 False \n", + "12 True \n", + "13 False \n", + "14 True \n", + "15 False \n", + "16 False \n", + "17 False \n", + "18 True \n", + "19 False " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "=== GPT-5-3 Codex: per-pair sensitivity (first 20) ===\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
family_idcfbase_passcf_passspec_deltaoutput_deltasensitivityreactionunrelated_rewrite
0microsoftInternal__NAV-174087microsoftInternal__NAV-174087__cf-1110.0000.818NaNNoneFalse
1microsoftInternal__NAV-174087microsoftInternal__NAV-174087__cf-2100.0120.87770.123over-reactionTrue
2microsoftInternal__NAV-174794microsoftInternal__NAV-174794__cf-1100.0480.75015.750over-reactionTrue
3microsoftInternal__NAV-174794microsoftInternal__NAV-174794__cf-2110.0240.31013.034over-reactionFalse
4microsoftInternal__NAV-174794microsoftInternal__NAV-174794__cf-3110.0000.310NaNNoneFalse
5microsoftInternal__NAV-175765microsoftInternal__NAV-175765__cf-1000.0520.90317.523over-reactionTrue
6microsoftInternal__NAV-175765microsoftInternal__NAV-175765__cf-2000.0460.85718.571over-reactionTrue
7microsoftInternal__NAV-175765microsoftInternal__NAV-175765__cf-3000.0510.95718.748over-reactionTrue
8microsoftInternal__NAV-176082microsoftInternal__NAV-176082__cf-1100.0000.651NaNNoneFalse
9microsoftInternal__NAV-176082microsoftInternal__NAV-176082__cf-2100.0000.710NaNNoneFalse
10microsoftInternal__NAV-176082microsoftInternal__NAV-176082__cf-3100.0000.857NaNNoneFalse
11microsoftInternal__NAV-176150microsoftInternal__NAV-176150__cf-1110.0040.619170.238over-reactionFalse
12microsoftInternal__NAV-176150microsoftInternal__NAV-176150__cf-2110.0040.23665.000over-reactionFalse
13microsoftInternal__NAV-176194microsoftInternal__NAV-176194__cf-1000.0000.930NaNNoneFalse
14microsoftInternal__NAV-176194microsoftInternal__NAV-176194__cf-2000.0050.949174.090over-reactionTrue
15microsoftInternal__NAV-176194microsoftInternal__NAV-176194__cf-3000.0001.000NaNNoneFalse
16microsoftInternal__NAV-176426microsoftInternal__NAV-176426__cf-1000.0510.2945.824over-reactionTrue
17microsoftInternal__NAV-176426microsoftInternal__NAV-176426__cf-2000.0400.79219.792over-reactionTrue
18microsoftInternal__NAV-177493microsoftInternal__NAV-177493__cf-1100.0600.88014.569over-reactionTrue
19microsoftInternal__NAV-177493microsoftInternal__NAV-177493__cf-2110.2120.7863.704over-reactionFalse
\n", + "
" + ], + "text/plain": [ + " family_id cf \\\n", + "0 microsoftInternal__NAV-174087 microsoftInternal__NAV-174087__cf-1 \n", + "1 microsoftInternal__NAV-174087 microsoftInternal__NAV-174087__cf-2 \n", + "2 microsoftInternal__NAV-174794 microsoftInternal__NAV-174794__cf-1 \n", + "3 microsoftInternal__NAV-174794 microsoftInternal__NAV-174794__cf-2 \n", + "4 microsoftInternal__NAV-174794 microsoftInternal__NAV-174794__cf-3 \n", + "5 microsoftInternal__NAV-175765 microsoftInternal__NAV-175765__cf-1 \n", + "6 microsoftInternal__NAV-175765 microsoftInternal__NAV-175765__cf-2 \n", + "7 microsoftInternal__NAV-175765 microsoftInternal__NAV-175765__cf-3 \n", + "8 microsoftInternal__NAV-176082 microsoftInternal__NAV-176082__cf-1 \n", + "9 microsoftInternal__NAV-176082 microsoftInternal__NAV-176082__cf-2 \n", + "10 microsoftInternal__NAV-176082 microsoftInternal__NAV-176082__cf-3 \n", + "11 microsoftInternal__NAV-176150 microsoftInternal__NAV-176150__cf-1 \n", + "12 microsoftInternal__NAV-176150 microsoftInternal__NAV-176150__cf-2 \n", + "13 microsoftInternal__NAV-176194 microsoftInternal__NAV-176194__cf-1 \n", + "14 microsoftInternal__NAV-176194 microsoftInternal__NAV-176194__cf-2 \n", + "15 microsoftInternal__NAV-176194 microsoftInternal__NAV-176194__cf-3 \n", + "16 microsoftInternal__NAV-176426 microsoftInternal__NAV-176426__cf-1 \n", + "17 microsoftInternal__NAV-176426 microsoftInternal__NAV-176426__cf-2 \n", + "18 microsoftInternal__NAV-177493 microsoftInternal__NAV-177493__cf-1 \n", + "19 microsoftInternal__NAV-177493 microsoftInternal__NAV-177493__cf-2 \n", + "\n", + " base_pass cf_pass spec_delta output_delta sensitivity reaction \\\n", + "0 1 1 0.000 0.818 NaN None \n", + "1 1 0 0.012 0.877 70.123 over-reaction \n", + "2 1 0 0.048 0.750 15.750 over-reaction \n", + "3 1 1 0.024 0.310 13.034 over-reaction \n", + "4 1 1 0.000 0.310 NaN None \n", + "5 0 0 0.052 0.903 17.523 over-reaction \n", + "6 0 0 0.046 0.857 18.571 over-reaction \n", + "7 0 0 0.051 0.957 18.748 over-reaction \n", + "8 1 0 0.000 0.651 NaN None \n", + "9 1 0 0.000 0.710 NaN None \n", + "10 1 0 0.000 0.857 NaN None \n", + "11 1 1 0.004 0.619 170.238 over-reaction \n", + "12 1 1 0.004 0.236 65.000 over-reaction \n", + "13 0 0 0.000 0.930 NaN None \n", + "14 0 0 0.005 0.949 174.090 over-reaction \n", + "15 0 0 0.000 1.000 NaN None \n", + "16 0 0 0.051 0.294 5.824 over-reaction \n", + "17 0 0 0.040 0.792 19.792 over-reaction \n", + "18 1 0 0.060 0.880 14.569 over-reaction \n", + "19 1 1 0.212 0.786 3.704 over-reaction \n", + "\n", + " unrelated_rewrite \n", + "0 False \n", + "1 True \n", + "2 True \n", + "3 False \n", + "4 False \n", + "5 True \n", + "6 True \n", + "7 True \n", + "8 False \n", + "9 False \n", + "10 False \n", + "11 False \n", + "12 False \n", + "13 False \n", + "14 True \n", + "15 False \n", + "16 True \n", + "17 True \n", + "18 True \n", + "19 False " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Family outcome table\n", + "for model, families in families_by_model.items():\n", + " print(f\"\\n=== {model} ({len(families)} families) ===\")\n", + " df = families_to_df(families)\n", + " display(df)\n", + "\n", + "# Family type distribution\n", + "type_df = plot_family_type_distribution(families_by_model)\n", + "display(type_df)\n", + "\n", + "# Fragility rate\n", + "frag_df = plot_fragility_rate(families_by_model)\n", + "display(frag_df)\n", + "\n", + "# Severity distribution\n", + "sev_df = plot_severity_distribution(families_by_model)\n", + "\n", + "# Pattern analysis\n", + "for model, families in families_by_model.items():\n", + " print(f\"\\n=== {model} patterns ===\")\n", + " pat_df = analyze_patterns(families)\n", + " display(pat_df)\n", + "\n", + "# Counterfactual consistency (4-way)\n", + "cons_df = plot_consistency(families_by_model)\n", + "display(cons_df)\n", + "\n", + "# Correctness drop (base -> CF)\n", + "display(correctness_drop_table(families_by_model))\n", + "\n", + "# Sensitivity score & patch distance\n", + "sens_df = plot_sensitivity(pairs_by_model)\n", + "display(sens_df)\n", + "for model, pairs in pairs_by_model.items():\n", + " print(f\"\\n=== {model}: per-pair sensitivity (first 20) ===\")\n", + " display(pairs_to_df(pairs).head(20))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "bcbench", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/counterfactual-evaluation/experiment3-layered-failure.ipynb b/notebooks/counterfactual-evaluation/experiment3-layered-failure.ipynb new file mode 100644 index 000000000..8857cacc4 --- /dev/null +++ b/notebooks/counterfactual-evaluation/experiment3-layered-failure.ipynb @@ -0,0 +1,4747 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "097d3fd7", + "metadata": {}, + "source": [ + "# Experiment 3: Layered Failure Analysis\n", + "\n", + "L1-L5 failure distribution, layer-conditioned fragility, CF-exposed failures.\n", + "\n", + "**Core thesis claim**: AL failures concentrate in L3 (Event-driven), L4 (Workflow), L5 (Toolchain)." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "efb5224d", + "metadata": { + "execution": { + "iopub.execute_input": "2026-06-20T13:14:08.891105Z", + "iopub.status.busy": "2026-06-20T13:14:08.891105Z", + "iopub.status.idle": "2026-06-20T13:14:21.676396Z", + "shell.execute_reply": "2026-06-20T13:14:21.674371Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Claude Opus 4.6: 71 families, 45 layer-labeled failed instances\n", + "Claude Sonnet 4.6: 71 families, 44 layer-labeled failed instances\n", + "GPT-5-4: 71 families, 42 layer-labeled failed instances\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "GPT-5-3 Codex: 71 families, 48 layer-labeled failed instances\n", + "\n", + "Ready. 4 models, 179 labeled failed instances.\n" + ] + } + ], + "source": [ + "import json\n", + "import sys\n", + "from pathlib import Path\n", + "\n", + "sys.path.insert(0, str(Path.cwd().parent))\n", + "\n", + "import pandas as pd\n", + "import plotly.express as px\n", + "import plotly.graph_objects as go\n", + "from utils import load_all_results\n", + "\n", + "from bcbench.analysis.aggregator import build_families\n", + "from bcbench.analysis.family import FamilyOutcome\n", + "from bcbench.analysis.metrics import (\n", + " cf_exposed_failure_count,\n", + " failure_layer_distribution,\n", + " layer_conditioned_fragility,\n", + ")\n", + "from bcbench.results.base import ExecutionBasedEvaluationResult\n", + "from bcbench.types import FailureLayer\n", + "\n", + "LAYER_ORDER = [layer.value for layer in FailureLayer]\n", + "LAYER_SHORT = {layer.value: layer.name.split(\"_\")[0] for layer in FailureLayer}\n", + "\n", + "# 3 CFE runs\n", + "SETUPS = [\"copilot-cf-opus-4-6\", \"copilot-cf-sonnet-4-6\", \"copilot-cf-gpt-5-4\", \"copilot-cf-gpt-5-3-codex\"]\n", + "SETUP_LABELS = {\n", + " \"copilot-cf-opus-4-6\": \"Claude Opus 4.6\",\n", + " \"copilot-cf-sonnet-4-6\": \"Claude Sonnet 4.6\",\n", + " \"copilot-cf-gpt-5-4\": \"GPT-5-4\",\n", + " \"copilot-cf-gpt-5-3-codex\": \"GPT-5-3 Codex\",\n", + "}\n", + "\n", + "all_results = load_all_results(category=\"bug-fix\")\n", + "\n", + "\n", + "def df_to_results(df: pd.DataFrame) -> list[ExecutionBasedEvaluationResult]:\n", + " results = []\n", + " for _, row in df.iterrows():\n", + " results.append(\n", + " ExecutionBasedEvaluationResult(\n", + " instance_id=row[\"instance_id\"],\n", + " project=row.get(\"project\", \"\"),\n", + " model=row.get(\"model\", \"unknown\"),\n", + " agent_name=\"GitHub Copilot\",\n", + " category=\"cf\",\n", + " resolved=bool(row.get(\"resolved\", False)),\n", + " build=bool(row.get(\"build\", False)),\n", + " output=row.get(\"output\", \"\"),\n", + " )\n", + " )\n", + " return results\n", + "\n", + "\n", + "# Post-hoc failure-layer labels: LLM-annotated by GPT-5.3-Codex following the\n", + "# annotation handbook (notebooks/counterfactual-evaluation/ANNOTATION_HANDBOOK.md).\n", + "# Labels are per (model, instance) — a base and its CFs can fail at different layers.\n", + "_codex_path = Path.cwd() / \"codex_failure_layers_thesis.jsonl\"\n", + "if not _codex_path.exists():\n", + " _codex_path = Path.cwd() / \"counterfactual-evaluation\" / \"codex_failure_layers_thesis.jsonl\"\n", + "\n", + "_VALID = {layer.value for layer in FailureLayer}\n", + "instance_layers_by_model: dict[str, dict[str, FailureLayer]] = {}\n", + "if _codex_path.exists():\n", + " for _line in _codex_path.read_text(encoding=\"utf-8\").splitlines():\n", + " _line = _line.strip()\n", + " if not _line:\n", + " continue\n", + " _o = json.loads(_line)\n", + " if _o[\"primary_failure_layer\"] in _VALID: # skip UNCERTAIN\n", + " instance_layers_by_model.setdefault(_o[\"model\"], {})[_o[\"instance_id\"]] = FailureLayer(_o[\"primary_failure_layer\"])\n", + "\n", + "\n", + "def _base_id(instance_id: str) -> str:\n", + " return instance_id.split(\"__cf-\")[0]\n", + "\n", + "\n", + "def _family_layers(inst_layers: dict[str, FailureLayer]) -> dict[str, FailureLayer]:\n", + " \"\"\"Family-level map (base_id -> layer): keep the most fundamental (lowest) layer in the family.\"\"\"\n", + " order = list(FailureLayer)\n", + " out: dict[str, FailureLayer] = {}\n", + " for iid, lay in inst_layers.items():\n", + " b = _base_id(iid)\n", + " if b not in out or order.index(lay) < order.index(out[b]):\n", + " out[b] = lay\n", + " return out\n", + "\n", + "\n", + "families_by_model: dict[str, list[FamilyOutcome]] = {}\n", + "for setup in SETUPS:\n", + " if setup not in all_results:\n", + " print(f\"WARNING: {setup} not found\")\n", + " continue\n", + " label = SETUP_LABELS.get(setup, setup)\n", + " results = df_to_results(all_results[setup])\n", + " families = build_families(results, failure_layers=_family_layers(instance_layers_by_model.get(label, {})))\n", + " families_by_model[label] = families\n", + " print(f\"{label}: {len(families)} families, {len(instance_layers_by_model.get(label, {}))} layer-labeled failed instances\")\n", + "\n", + "# Per-instance long table (the faithful unit for layer distribution: one row per failed output)\n", + "_inst_rows = []\n", + "for model, inst_layers in instance_layers_by_model.items():\n", + " for iid, lay in inst_layers.items():\n", + " _inst_rows.append({\n", + " \"Model\": model,\n", + " \"instance_id\": iid,\n", + " \"Kind\": \"CF\" if \"__cf-\" in iid else \"base\",\n", + " \"Layer\": LAYER_SHORT[lay.value],\n", + " \"layer_value\": lay.value,\n", + " })\n", + "instance_layer_df = pd.DataFrame(_inst_rows)\n", + "\n", + "print(f\"\\nReady. {len(families_by_model)} models, {len(instance_layer_df)} labeled failed instances.\")" + ] + }, + { + "cell_type": "markdown", + "id": "37071846", + "metadata": {}, + "source": [ + "## L1-L5 Failure Distribution" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "7a9a7509", + "metadata": { + "execution": { + "iopub.execute_input": "2026-06-20T13:14:21.681397Z", + "iopub.status.busy": "2026-06-20T13:14:21.680401Z", + "iopub.status.idle": "2026-06-20T13:14:21.694372Z", + "shell.execute_reply": "2026-06-20T13:14:21.692822Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "plot_failure_layer_distribution() ready\n" + ] + } + ], + "source": [ + "def plot_failure_layer_distribution(families_by_model: dict[str, list[FamilyOutcome]]):\n", + " rows = []\n", + " for model, families in families_by_model.items():\n", + " dist = failure_layer_distribution(families)\n", + " total = sum(dist.values()) or 1\n", + " for layer in LAYER_ORDER:\n", + " count = dist.get(layer, 0)\n", + " rows.append(\n", + " {\n", + " \"Model\": model,\n", + " \"Layer\": LAYER_SHORT.get(layer, layer),\n", + " \"Count\": count,\n", + " \"Proportion (%)\": round(count / total * 100, 1),\n", + " }\n", + " )\n", + "\n", + " df = pd.DataFrame(rows)\n", + " fig = px.bar(\n", + " df,\n", + " x=\"Layer\",\n", + " y=\"Proportion (%)\",\n", + " color=\"Model\",\n", + " barmode=\"group\",\n", + " title=\"Failure Layer Distribution (L1-L5) by Model\",\n", + " text_auto=True,\n", + " category_orders={\"Layer\": [\"L1\", \"L2\", \"L3\", \"L4\", \"L5\"]},\n", + " )\n", + " fig.show()\n", + " return df\n", + "\n", + "\n", + "print(\"plot_failure_layer_distribution() ready\")" + ] + }, + { + "cell_type": "markdown", + "id": "e0adac47", + "metadata": {}, + "source": [ + "## Layer-Conditioned Fragility Heatmap\n", + "\n", + "Fragile family % per layer per model — the core diagnostic matrix." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "0c7e08b6", + "metadata": { + "execution": { + "iopub.execute_input": "2026-06-20T13:14:21.701364Z", + "iopub.status.busy": "2026-06-20T13:14:21.698373Z", + "iopub.status.idle": "2026-06-20T13:14:21.712552Z", + "shell.execute_reply": "2026-06-20T13:14:21.710905Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "plot_layer_conditioned_fragility() ready\n" + ] + } + ], + "source": [ + "def plot_layer_conditioned_fragility(families_by_model: dict[str, list[FamilyOutcome]]):\n", + " models = list(families_by_model.keys())\n", + " layers = [\"L1\", \"L2\", \"L3\", \"L4\", \"L5\"]\n", + " matrix = []\n", + "\n", + " for model in models:\n", + " lcf = layer_conditioned_fragility(families_by_model[model])\n", + " row = [round(lcf.get(layer, 0) * 100, 1) for layer in LAYER_ORDER]\n", + " matrix.append(row)\n", + "\n", + " fig = go.Figure(\n", + " data=go.Heatmap(\n", + " z=matrix,\n", + " x=layers,\n", + " y=models,\n", + " colorscale=\"RdYlGn_r\",\n", + " text=matrix,\n", + " texttemplate=\"%{text}%\",\n", + " colorbar_title=\"Fragility %\",\n", + " )\n", + " )\n", + " fig.update_layout(\n", + " title=\"Layer-Conditioned Fragility: P(CF fail | Base correct) per Layer\",\n", + " xaxis_title=\"Failure Layer\",\n", + " yaxis_title=\"Model\",\n", + " )\n", + " fig.show()\n", + "\n", + "\n", + "print(\"plot_layer_conditioned_fragility() ready\")" + ] + }, + { + "cell_type": "markdown", + "id": "194609c7", + "metadata": {}, + "source": [ + "## Layer-Conditioned Severity" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "d8556d7b", + "metadata": { + "execution": { + "iopub.execute_input": "2026-06-20T13:14:21.716573Z", + "iopub.status.busy": "2026-06-20T13:14:21.715573Z", + "iopub.status.idle": "2026-06-20T13:14:21.727557Z", + "shell.execute_reply": "2026-06-20T13:14:21.725529Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "plot_severity_by_layer() ready\n" + ] + } + ], + "source": [ + "def plot_severity_by_layer(families: list[FamilyOutcome]):\n", + " rows = []\n", + " for f in families:\n", + " if f.failure_layer and f.severity is not None:\n", + " rows.append(\n", + " {\n", + " \"Layer\": LAYER_SHORT.get(f.failure_layer.value, f.failure_layer.value),\n", + " \"Severity\": f.severity,\n", + " \"Type\": f.family_type.value,\n", + " }\n", + " )\n", + "\n", + " df = pd.DataFrame(rows)\n", + " if not df.empty:\n", + " fig = px.box(\n", + " df,\n", + " x=\"Layer\",\n", + " y=\"Severity\",\n", + " color=\"Layer\",\n", + " title=\"Fragility Severity by Failure Layer\",\n", + " points=\"all\",\n", + " category_orders={\"Layer\": [\"L1\", \"L2\", \"L3\", \"L4\", \"L5\"]},\n", + " )\n", + " fig.show()\n", + " return df\n", + "\n", + "\n", + "print(\"plot_severity_by_layer() ready\")" + ] + }, + { + "cell_type": "markdown", + "id": "a199405f", + "metadata": {}, + "source": [ + "## CF-Exposed Failure Analysis\n", + "\n", + "Families where failure ONLY appears in CF (base correct, all CFs fail)." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "bdc9f61b", + "metadata": { + "execution": { + "iopub.execute_input": "2026-06-20T13:14:21.732261Z", + "iopub.status.busy": "2026-06-20T13:14:21.731707Z", + "iopub.status.idle": "2026-06-20T13:14:21.741450Z", + "shell.execute_reply": "2026-06-20T13:14:21.739746Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "analyze_cf_exposed() ready\n" + ] + } + ], + "source": [ + "def analyze_cf_exposed(families_by_model: dict[str, list[FamilyOutcome]]):\n", + " rows = []\n", + " for model, families in families_by_model.items():\n", + " total = len(families)\n", + " exposed = cf_exposed_failure_count(families)\n", + " fragile = sum(1 for f in families if f.is_fragile)\n", + " rows.append(\n", + " {\n", + " \"Model\": model,\n", + " \"Total Families\": total,\n", + " \"Fragile\": fragile,\n", + " \"CF-Exposed (all CFs fail)\": exposed,\n", + " \"CF-Exposed %\": round(exposed / total * 100, 1) if total else 0,\n", + " }\n", + " )\n", + "\n", + " df = pd.DataFrame(rows)\n", + " print(df.to_string(index=False))\n", + " return df\n", + "\n", + "\n", + "print(\"analyze_cf_exposed() ready\")" + ] + }, + { + "cell_type": "markdown", + "id": "ae11e2f6", + "metadata": {}, + "source": [ + "## Per-Instance Failure Layer Distribution (post-hoc, Codex-annotated)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "ea56ae4e", + "metadata": { + "execution": { + "iopub.execute_input": "2026-06-20T13:14:21.745581Z", + "iopub.status.busy": "2026-06-20T13:14:21.744948Z", + "iopub.status.idle": "2026-06-20T13:14:21.756701Z", + "shell.execute_reply": "2026-06-20T13:14:21.754816Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "plot_instance_layer_distribution() ready\n" + ] + } + ], + "source": [ + "def plot_instance_layer_distribution(instance_layer_df: pd.DataFrame):\n", + " \"\"\"Layer distribution over individual failed outputs (not families).\"\"\"\n", + " order = [\"L1\", \"L2\", \"L3\", \"L4\", \"L5\"]\n", + " if instance_layer_df.empty:\n", + " print(\"No labeled instances.\")\n", + " return instance_layer_df\n", + "\n", + " by_model = (\n", + " instance_layer_df.groupby([\"Model\", \"Layer\"]).size().reset_index(name=\"Count\")\n", + " )\n", + " fig = px.bar(\n", + " by_model, x=\"Layer\", y=\"Count\", color=\"Model\", barmode=\"group\",\n", + " title=\"Failure Layer Distribution per Failed Output, by Model\",\n", + " category_orders={\"Layer\": order}, text_auto=True,\n", + " )\n", + " fig.show()\n", + "\n", + " by_kind = instance_layer_df.groupby([\"Kind\", \"Layer\"]).size().reset_index(name=\"Count\")\n", + " fig2 = px.bar(\n", + " by_kind, x=\"Layer\", y=\"Count\", color=\"Kind\", barmode=\"group\",\n", + " title=\"Failure Layer Distribution: base vs CF\",\n", + " category_orders={\"Layer\": order, \"Kind\": [\"base\", \"CF\"]}, text_auto=True,\n", + " )\n", + " fig2.show()\n", + "\n", + " pivot = instance_layer_df.pivot_table(index=\"Model\", columns=\"Layer\", values=\"instance_id\", aggfunc=\"count\", fill_value=0)\n", + " return pivot.reindex(columns=[c for c in order if c in pivot.columns])\n", + "\n", + "\n", + "print(\"plot_instance_layer_distribution() ready\")" + ] + }, + { + "cell_type": "markdown", + "id": "f701b75f", + "metadata": {}, + "source": [ + "## Inter-Annotator Agreement (post-hoc layer labels)\n", + "\n", + "Annotator A = GPT-5.3-Codex (the canonical `codex_failure_layers_thesis.jsonl`); annotator B = an independent Claude Opus 4.8 pass over a stratified 70-instance double-annotation subset (all non-L4 labels plus a random L4 sample, so the hard L2/L3/L4 boundaries are stressed). Agreement is computed with `bcbench.analysis.annotation.inter_annotator_agreement`." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "ef273860", + "metadata": { + "execution": { + "iopub.execute_input": "2026-06-20T13:14:21.761303Z", + "iopub.status.busy": "2026-06-20T13:14:21.760742Z", + "iopub.status.idle": "2026-06-20T13:14:21.842020Z", + "shell.execute_reply": "2026-06-20T13:14:21.839762Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "IAA (codex A vs Opus-4.8 B): n=70 agreement=0.643 Cohen kappa=0.525\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
BL1L2L3L4L5
A
L180050
L201080
L3006110
L4000200
L5100010
\n", + "
" + ], + "text/plain": [ + "B L1 L2 L3 L4 L5\n", + "A \n", + "L1 8 0 0 5 0\n", + "L2 0 1 0 8 0\n", + "L3 0 0 6 11 0\n", + "L4 0 0 0 20 0\n", + "L5 1 0 0 0 10" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from bcbench.analysis.annotation import inter_annotator_agreement\n", + "\n", + "def _load_labels(fname, key=\"primary_failure_layer\"):\n", + " out = {}\n", + " p = Path.cwd() / fname\n", + " if not p.exists():\n", + " p = Path.cwd() / \"counterfactual-evaluation\" / fname\n", + " if not p.exists():\n", + " return out\n", + " for line in p.read_text(encoding=\"utf-8\").splitlines():\n", + " if line.strip():\n", + " o = json.loads(line)\n", + " out[(o[\"model\"], o[\"instance_id\"])] = o[key]\n", + " return out\n", + "\n", + "_A = _load_labels(\"codex_failure_layers_thesis.jsonl\")\n", + "_B = _load_labels(\"iaa_annotator_b.jsonl\")\n", + "_keys = sorted(set(_A) & set(_B))\n", + "if _keys:\n", + " a = {f\"{m}|{i}\": _A[(m, i)] for (m, i) in _keys}\n", + " b = {f\"{m}|{i}\": _B[(m, i)] for (m, i) in _keys}\n", + " iaa = inter_annotator_agreement(a, b)\n", + " print(f\"IAA (codex A vs Opus-4.8 B): n={iaa.n} agreement={iaa.agreement_rate:.3f} Cohen kappa={iaa.cohen_kappa:.3f}\")\n", + "\n", + " conf = (\n", + " pd.DataFrame({\"A\": [LAYER_SHORT.get(a[k], a[k]) for k in a],\n", + " \"B\": [LAYER_SHORT.get(b[k], b[k]) for k in a]})\n", + " .pivot_table(index=\"A\", columns=\"B\", aggfunc=len, fill_value=0)\n", + " )\n", + " display(conf)\n", + "else:\n", + " print(\"Second-annotator file iaa_annotator_b.jsonl not found; skipping IAA.\")" + ] + }, + { + "cell_type": "markdown", + "id": "bd94b73f", + "metadata": {}, + "source": [ + "## Run All Analysis" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "a0d664b9", + "metadata": { + "execution": { + "iopub.execute_input": "2026-06-20T13:14:21.846216Z", + "iopub.status.busy": "2026-06-20T13:14:21.846216Z", + "iopub.status.idle": "2026-06-20T13:14:30.012803Z", + "shell.execute_reply": "2026-06-20T13:14:30.011258Z" + } + }, + "outputs": [ + { + "data": { + "application/json": { + "data": [ + { + "alignmentgroup": "True", + "hovertemplate": "Model=Claude Opus 4.6
Layer=%{x}
Proportion (%)=%{y}", + "legendgroup": "Claude Opus 4.6", + "marker": { + "color": "#636efa", + "pattern": { + "shape": "" + } + }, + "name": "Claude Opus 4.6", + "offsetgroup": "Claude Opus 4.6", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "texttemplate": "%{y}", + "type": "bar", + "x": [ + "L1", + "L2", + "L3", + "L4", + "L5" + ], + "xaxis": "x", + "y": { + "bdata": "mpmZmZmZCUCamZmZmZkJQM3MzMzMzClAzczMzMyMUkAAAAAAAAAaQA==", + "dtype": "f8" + }, + "yaxis": "y" + }, + { + "alignmentgroup": "True", + "hovertemplate": "Model=Claude Sonnet 4.6
Layer=%{x}
Proportion (%)=%{y}", + "legendgroup": "Claude Sonnet 4.6", + "marker": { + "color": "#EF553B", + "pattern": { + "shape": "" + } + }, + "name": "Claude Sonnet 4.6", + "offsetgroup": "Claude Sonnet 4.6", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "texttemplate": "%{y}", + "type": "bar", + "x": [ + "L1", + "L2", + "L3", + "L4", + "L5" + ], + "xaxis": "x", + "y": { + "bdata": "mpmZmZmZCUBmZmZmZmYjQGZmZmZmZiNAmpmZmZlZU0AAAAAAAAAAAA==", + "dtype": "f8" + }, + "yaxis": "y" + }, + { + "alignmentgroup": "True", + "hovertemplate": "Model=GPT-5-4
Layer=%{x}
Proportion (%)=%{y}", + "legendgroup": "GPT-5-4", + "marker": { + "color": "#00cc96", + "pattern": { + "shape": "" + } + }, + "name": "GPT-5-4", + "offsetgroup": "GPT-5-4", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "texttemplate": "%{y}", + "type": "bar", + "x": [ + "L1", + "L2", + "L3", + "L4", + "L5" + ], + "xaxis": "x", + "y": { + "bdata": "mpmZmZkZMEAAAAAAAAAaQM3MzMzMzClAZmZmZmZmS0BmZmZmZmYjQA==", + "dtype": "f8" + }, + "yaxis": "y" + }, + { + "alignmentgroup": "True", + "hovertemplate": "Model=GPT-5-3 Codex
Layer=%{x}
Proportion (%)=%{y}", + "legendgroup": "GPT-5-3 Codex", + "marker": { + "color": "#ab63fa", + "pattern": { + "shape": "" + } + }, + "name": "GPT-5-3 Codex", + "offsetgroup": "GPT-5-3 Codex", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "texttemplate": "%{y}", + "type": "bar", + "x": [ + "L1", + "L2", + "L3", + "L4", + "L5" + ], + "xaxis": "x", + "y": { + "bdata": "mpmZmZmZIUAzMzMzMzMHQGZmZmZmZi1AZmZmZmbmUECamZmZmZkXQA==", + "dtype": "f8" + }, + "yaxis": "y" + } + ], + "layout": { + "barmode": "group", + "legend": { + "title": { + "text": "Model" + }, + "tracegroupgap": 0 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermap": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermap" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Failure Layer Distribution (L1-L5) by Model" + }, + "xaxis": { + "anchor": "y", + "categoryarray": [ + "L1", + "L2", + "L3", + "L4", + "L5" + ], + "categoryorder": "array", + "domain": [ + 0.0, + 1.0 + ], + "title": { + "text": "Layer" + } + }, + "yaxis": { + "anchor": "x", + "domain": [ + 0.0, + 1.0 + ], + "title": { + "text": "Proportion (%)" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ModelLayerCountProportion (%)
0Claude Opus 4.6L113.2
1Claude Opus 4.6L213.2
2Claude Opus 4.6L3412.9
3Claude Opus 4.6L42374.2
4Claude Opus 4.6L526.5
5Claude Sonnet 4.6L113.2
6Claude Sonnet 4.6L239.7
7Claude Sonnet 4.6L339.7
8Claude Sonnet 4.6L42477.4
9Claude Sonnet 4.6L500.0
10GPT-5-4L1516.1
11GPT-5-4L226.5
12GPT-5-4L3412.9
13GPT-5-4L41754.8
14GPT-5-4L539.7
15GPT-5-3 CodexL138.8
16GPT-5-3 CodexL212.9
17GPT-5-3 CodexL3514.7
18GPT-5-3 CodexL42367.6
19GPT-5-3 CodexL525.9
\n", + "
" + ], + "text/plain": [ + " Model Layer Count Proportion (%)\n", + "0 Claude Opus 4.6 L1 1 3.2\n", + "1 Claude Opus 4.6 L2 1 3.2\n", + "2 Claude Opus 4.6 L3 4 12.9\n", + "3 Claude Opus 4.6 L4 23 74.2\n", + "4 Claude Opus 4.6 L5 2 6.5\n", + "5 Claude Sonnet 4.6 L1 1 3.2\n", + "6 Claude Sonnet 4.6 L2 3 9.7\n", + "7 Claude Sonnet 4.6 L3 3 9.7\n", + "8 Claude Sonnet 4.6 L4 24 77.4\n", + "9 Claude Sonnet 4.6 L5 0 0.0\n", + "10 GPT-5-4 L1 5 16.1\n", + "11 GPT-5-4 L2 2 6.5\n", + "12 GPT-5-4 L3 4 12.9\n", + "13 GPT-5-4 L4 17 54.8\n", + "14 GPT-5-4 L5 3 9.7\n", + "15 GPT-5-3 Codex L1 3 8.8\n", + "16 GPT-5-3 Codex L2 1 2.9\n", + "17 GPT-5-3 Codex L3 5 14.7\n", + "18 GPT-5-3 Codex L4 23 67.6\n", + "19 GPT-5-3 Codex L5 2 5.9" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/json": { + "data": [ + { + "colorbar": { + "title": { + "text": "Fragility %" + } + }, + "colorscale": [ + [ + 0.0, + "rgb(0,104,55)" + ], + [ + 0.1, + "rgb(26,152,80)" + ], + [ + 0.2, + "rgb(102,189,99)" + ], + [ + 0.3, + "rgb(166,217,106)" + ], + [ + 0.4, + "rgb(217,239,139)" + ], + [ + 0.5, + "rgb(255,255,191)" + ], + [ + 0.6, + "rgb(254,224,139)" + ], + [ + 0.7, + "rgb(253,174,97)" + ], + [ + 0.8, + "rgb(244,109,67)" + ], + [ + 0.9, + "rgb(215,48,39)" + ], + [ + 1.0, + "rgb(165,0,38)" + ] + ], + "text": [ + [ + 0.0, + 100.0, + 100.0, + 100.0, + 100.0 + ], + [ + 100.0, + 100.0, + 100.0, + 100.0, + 0 + ], + [ + 100.0, + 100.0, + 100.0, + 100.0, + 100.0 + ], + [ + 100.0, + 0.0, + 100.0, + 100.0, + 0.0 + ] + ], + "texttemplate": "%{text}%", + "type": "heatmap", + "x": [ + "L1", + "L2", + "L3", + "L4", + "L5" + ], + "y": [ + "Claude Opus 4.6", + "Claude Sonnet 4.6", + "GPT-5-4", + "GPT-5-3 Codex" + ], + "z": [ + [ + 0.0, + 100.0, + 100.0, + 100.0, + 100.0 + ], + [ + 100.0, + 100.0, + 100.0, + 100.0, + 0 + ], + [ + 100.0, + 100.0, + 100.0, + 100.0, + 100.0 + ], + [ + 100.0, + 0.0, + 100.0, + 100.0, + 0.0 + ] + ] + } + ], + "layout": { + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermap": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermap" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Layer-Conditioned Fragility: P(CF fail | Base correct) per Layer" + }, + "xaxis": { + "title": { + "text": "Failure Layer" + } + }, + "yaxis": { + "title": { + "text": "Model" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Model Total Families Fragile CF-Exposed (all CFs fail) CF-Exposed %\n", + " Claude Opus 4.6 71 15 9 12.7\n", + "Claude Sonnet 4.6 71 15 7 9.9\n", + " GPT-5-4 71 13 8 11.3\n", + " GPT-5-3 Codex 71 13 7 9.9\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ModelTotal FamiliesFragileCF-Exposed (all CFs fail)CF-Exposed %
0Claude Opus 4.67115912.7
1Claude Sonnet 4.6711579.9
2GPT-5-47113811.3
3GPT-5-3 Codex711379.9
\n", + "
" + ], + "text/plain": [ + " Model Total Families Fragile CF-Exposed (all CFs fail) \\\n", + "0 Claude Opus 4.6 71 15 9 \n", + "1 Claude Sonnet 4.6 71 15 7 \n", + "2 GPT-5-4 71 13 8 \n", + "3 GPT-5-3 Codex 71 13 7 \n", + "\n", + " CF-Exposed % \n", + "0 12.7 \n", + "1 9.9 \n", + "2 11.3 \n", + "3 9.9 " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/json": { + "data": [ + { + "alignmentgroup": "True", + "hovertemplate": "Model=Claude Opus 4.6
Layer=%{x}
Count=%{y}", + "legendgroup": "Claude Opus 4.6", + "marker": { + "color": "#636efa", + "pattern": { + "shape": "" + } + }, + "name": "Claude Opus 4.6", + "offsetgroup": "Claude Opus 4.6", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "texttemplate": "%{y}", + "type": "bar", + "x": [ + "L1", + "L2", + "L3", + "L4", + "L5" + ], + "xaxis": "x", + "y": { + "bdata": "AgEEIwM=", + "dtype": "i1" + }, + "yaxis": "y" + }, + { + "alignmentgroup": "True", + "hovertemplate": "Model=Claude Sonnet 4.6
Layer=%{x}
Count=%{y}", + "legendgroup": "Claude Sonnet 4.6", + "marker": { + "color": "#EF553B", + "pattern": { + "shape": "" + } + }, + "name": "Claude Sonnet 4.6", + "offsetgroup": "Claude Sonnet 4.6", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "texttemplate": "%{y}", + "type": "bar", + "x": [ + "L1", + "L2", + "L3", + "L4" + ], + "xaxis": "x", + "y": { + "bdata": "AQQEIw==", + "dtype": "i1" + }, + "yaxis": "y" + }, + { + "alignmentgroup": "True", + "hovertemplate": "Model=GPT-5-3 Codex
Layer=%{x}
Count=%{y}", + "legendgroup": "GPT-5-3 Codex", + "marker": { + "color": "#00cc96", + "pattern": { + "shape": "" + } + }, + "name": "GPT-5-3 Codex", + "offsetgroup": "GPT-5-3 Codex", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "texttemplate": "%{y}", + "type": "bar", + "x": [ + "L1", + "L2", + "L3", + "L4", + "L5" + ], + "xaxis": "x", + "y": { + "bdata": "BAIFIQQ=", + "dtype": "i1" + }, + "yaxis": "y" + }, + { + "alignmentgroup": "True", + "hovertemplate": "Model=GPT-5-4
Layer=%{x}
Count=%{y}", + "legendgroup": "GPT-5-4", + "marker": { + "color": "#ab63fa", + "pattern": { + "shape": "" + } + }, + "name": "GPT-5-4", + "offsetgroup": "GPT-5-4", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "texttemplate": "%{y}", + "type": "bar", + "x": [ + "L1", + "L2", + "L3", + "L4", + "L5" + ], + "xaxis": "x", + "y": { + "bdata": "BgIEGgQ=", + "dtype": "i1" + }, + "yaxis": "y" + } + ], + "layout": { + "barmode": "group", + "legend": { + "title": { + "text": "Model" + }, + "tracegroupgap": 0 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermap": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermap" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Failure Layer Distribution per Failed Output, by Model" + }, + "xaxis": { + "anchor": "y", + "categoryarray": [ + "L1", + "L2", + "L3", + "L4", + "L5" + ], + "categoryorder": "array", + "domain": [ + 0.0, + 1.0 + ], + "title": { + "text": "Layer" + } + }, + "yaxis": { + "anchor": "x", + "domain": [ + 0.0, + 1.0 + ], + "title": { + "text": "Count" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/json": { + "data": [ + { + "alignmentgroup": "True", + "hovertemplate": "Kind=CF
Layer=%{x}
Count=%{y}", + "legendgroup": "CF", + "marker": { + "color": "#EF553B", + "pattern": { + "shape": "" + } + }, + "name": "CF", + "offsetgroup": "CF", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "texttemplate": "%{y}", + "type": "bar", + "x": [ + "L1", + "L2", + "L3", + "L4", + "L5" + ], + "xaxis": "x", + "y": { + "bdata": "DQAJABEAgQALAA==", + "dtype": "i2" + }, + "yaxis": "y" + } + ], + "layout": { + "barmode": "group", + "legend": { + "title": { + "text": "Kind" + }, + "tracegroupgap": 0 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermap": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermap" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Failure Layer Distribution: base vs CF" + }, + "xaxis": { + "anchor": "y", + "categoryarray": [ + "L1", + "L2", + "L3", + "L4", + "L5" + ], + "categoryorder": "array", + "domain": [ + 0.0, + 1.0 + ], + "title": { + "text": "Layer" + } + }, + "yaxis": { + "anchor": "x", + "domain": [ + 0.0, + 1.0 + ], + "title": { + "text": "Count" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
LayerL1L2L3L4L5
Model
Claude Opus 4.6214353
Claude Sonnet 4.6144350
GPT-5-3 Codex425334
GPT-5-4624264
\n", + "
" + ], + "text/plain": [ + "Layer L1 L2 L3 L4 L5\n", + "Model \n", + "Claude Opus 4.6 2 1 4 35 3\n", + "Claude Sonnet 4.6 1 4 4 35 0\n", + "GPT-5-3 Codex 4 2 5 33 4\n", + "GPT-5-4 6 2 4 26 4" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Layer distribution (needs failure_layers populated)\n", + "layer_df = plot_failure_layer_distribution(families_by_model)\n", + "display(layer_df)\n", + "\n", + "# Layer-conditioned fragility heatmap\n", + "plot_layer_conditioned_fragility(families_by_model)\n", + "\n", + "# CF-exposed failures\n", + "cf_df = analyze_cf_exposed(families_by_model)\n", + "display(cf_df)\n", + "\n", + "# Per-instance (post-hoc Codex-annotated) layer distribution\n", + "inst_layer_pivot = plot_instance_layer_distribution(instance_layer_df)\n", + "display(inst_layer_pivot)" + ] + } + ], + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/counterfactual-evaluation/experiment4-optimization.ipynb b/notebooks/counterfactual-evaluation/experiment4-optimization.ipynb new file mode 100644 index 000000000..d58bd60ae --- /dev/null +++ b/notebooks/counterfactual-evaluation/experiment4-optimization.ipynb @@ -0,0 +1,341 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "ae088059", + "metadata": {}, + "source": [ + "# Experiment 4: Limited Optimization (RQ4)\n", + "\n", + "Single intervention on 30 high-failure AL families (base + 1 CF each = 60 instances), 3 models (Opus 4.6, Sonnet 4.6, GPT-5-3-Codex):\n", + "- **Skill** = AL-structured bug-fix guidance skill (`al-bugfix-structured`), copied to `.github/skills/` (enabled via `skills.enabled` in config.yaml).\n", + "\n", + "Baseline = existing plain CF results. Metrics: correctness gain, layer-specific gain, fragile->stable conversion. The skill result dirs (`*-skill`) are auto-loaded once present; until then only the baseline columns populate." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "518c3804", + "metadata": { + "execution": { + "iopub.execute_input": "2026-06-20T22:13:12.347070Z", + "iopub.status.busy": "2026-06-20T22:13:12.346075Z", + "iopub.status.idle": "2026-06-20T22:13:18.607952Z", + "shell.execute_reply": "2026-06-20T22:13:18.606927Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "60 subset instances, 30 families. setups available: 7\n" + ] + } + ], + "source": [ + "import csv\n", + "import sys\n", + "from pathlib import Path\n", + "\n", + "sys.path.insert(0, str(Path.cwd().parent))\n", + "import pandas as pd\n", + "from utils import load_all_results\n", + "\n", + "BASELINES = {\n", + " \"Claude Opus 4.6\": \"copilot-cf-opus-4-6\",\n", + " \"Claude Sonnet 4.6\": \"copilot-cf-sonnet-4-6\",\n", + " \"GPT-5-3 Codex\": \"copilot-cf-gpt-5-3-codex\",\n", + "}\n", + "\n", + "# 30 target families + dominant layer\n", + "target = {}\n", + "with open(\"exp4_target_families.csv\", encoding=\"utf-8\") as f:\n", + " for r in csv.DictReader(f):\n", + " target[r[\"family_id\"]] = r[\"dominant_layer\"] or \"-\"\n", + "\n", + "subset = [l.strip() for l in Path(\"exp4_subset_instances.txt\").read_text(encoding=\"utf-8\").splitlines() if l.strip()]\n", + "def base_of(iid): return iid.split(\"__cf-\")[0]\n", + "layer_of = {iid: target.get(base_of(iid), \"-\") for iid in subset}\n", + "\n", + "all_results = load_all_results(category=\"bug-fix\")\n", + "print(f\"{len(subset)} subset instances, {len(target)} families. setups available: {len(all_results)}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "cd50580e", + "metadata": { + "execution": { + "iopub.execute_input": "2026-06-20T22:13:18.611949Z", + "iopub.status.busy": "2026-06-20T22:13:18.611949Z", + "iopub.status.idle": "2026-06-20T22:13:18.622500Z", + "shell.execute_reply": "2026-06-20T22:13:18.619955Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Skill result dirs present:\n", + " copilot-cf-opus-4-6-skill: not yet\n", + " copilot-cf-sonnet-4-6-skill: not yet\n", + " copilot-cf-gpt-5-3-codex-skill: not yet\n" + ] + } + ], + "source": [ + "def resolved_map(setup: str) -> dict[str, bool]:\n", + " \"\"\"instance_id -> resolved (majority across runs) for the subset, or {} if absent.\"\"\"\n", + " if setup not in all_results:\n", + " return {}\n", + " df = all_results[setup]\n", + " df = df[df[\"instance_id\"].isin(subset)]\n", + " if df.empty:\n", + " return {}\n", + " return (df.groupby(\"instance_id\")[\"resolved\"].mean() >= 0.5).to_dict()\n", + "\n", + "def skill_setup(base_setup: str) -> str:\n", + " return f\"{base_setup}-skill\"\n", + "\n", + "print(\"Skill result dirs present:\")\n", + "for label, base in BASELINES.items():\n", + " s = skill_setup(base)\n", + " print(f\" {s}: {'YES' if s in all_results else 'not yet'}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "ace37137", + "metadata": { + "execution": { + "iopub.execute_input": "2026-06-20T22:13:18.626501Z", + "iopub.status.busy": "2026-06-20T22:13:18.625504Z", + "iopub.status.idle": "2026-06-20T22:13:18.665023Z", + "shell.execute_reply": "2026-06-20T22:13:18.660994Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ModelSubset nBaseline (%)Skill (%)Gain (pp)
0Claude Opus 4.66031.7NoneNone
1Claude Sonnet 4.66035.0NoneNone
2GPT-5-3 Codex6031.7NoneNone
\n", + "
" + ], + "text/plain": [ + " Model Subset n Baseline (%) Skill (%) Gain (pp)\n", + "0 Claude Opus 4.6 60 31.7 None None\n", + "1 Claude Sonnet 4.6 60 35.0 None None\n", + "2 GPT-5-3 Codex 60 31.7 None None" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Correctness gain: mean resolved on the 60-instance subset, baseline vs skill\n", + "rows = []\n", + "for label, base in BASELINES.items():\n", + " base_res = resolved_map(base)\n", + " if not base_res:\n", + " continue\n", + " n = len(base_res)\n", + " base_rate = sum(base_res.values()) / n * 100\n", + " row = {\"Model\": label, \"Subset n\": n, \"Baseline (%)\": round(base_rate, 1)}\n", + " sres = resolved_map(skill_setup(base))\n", + " if sres:\n", + " common = [i for i in base_res if i in sres]\n", + " srate = sum(sres[i] for i in common) / len(common) * 100\n", + " row[\"Skill (%)\"] = round(srate, 1)\n", + " row[\"Gain (pp)\"] = round(srate - base_rate, 1)\n", + " else:\n", + " row[\"Skill (%)\"] = None\n", + " row[\"Gain (pp)\"] = None\n", + " rows.append(row)\n", + "correctness_gain_df = pd.DataFrame(rows)\n", + "correctness_gain_df" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "1f177dc9", + "metadata": { + "execution": { + "iopub.execute_input": "2026-06-20T22:13:18.669052Z", + "iopub.status.busy": "2026-06-20T22:13:18.668048Z", + "iopub.status.idle": "2026-06-20T22:13:18.686266Z", + "shell.execute_reply": "2026-06-20T22:13:18.685238Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "'No skill results yet.'" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Layer-specific gain: delta resolved grouped by the family's dominant failure layer\n", + "layer_rows = []\n", + "for label, base in BASELINES.items():\n", + " base_res = resolved_map(base)\n", + " if not base_res:\n", + " continue\n", + " sres = resolved_map(skill_setup(base))\n", + " if not sres:\n", + " continue\n", + " by_layer = {}\n", + " for iid, b in base_res.items():\n", + " if iid not in sres:\n", + " continue\n", + " lay = layer_of.get(iid, \"-\")\n", + " by_layer.setdefault(lay, []).append(sres[iid] - b)\n", + " for lay, deltas in sorted(by_layer.items()):\n", + " layer_rows.append({\n", + " \"Model\": label, \"Layer\": lay,\n", + " \"n\": len(deltas), \"Gain (pp)\": round(sum(deltas) / len(deltas) * 100, 1),\n", + " })\n", + "layer_gain_df = pd.DataFrame(layer_rows)\n", + "layer_gain_df if not layer_gain_df.empty else \"No skill results yet.\"" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "acc3b60f", + "metadata": { + "execution": { + "iopub.execute_input": "2026-06-20T22:13:18.691270Z", + "iopub.status.busy": "2026-06-20T22:13:18.691270Z", + "iopub.status.idle": "2026-06-20T22:13:18.770534Z", + "shell.execute_reply": "2026-06-20T22:13:18.766959Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "'No skill results yet.'" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Fragile/unsolved -> stable conversion, per family (base + its CFs in the subset)\n", + "from bcbench.analysis.aggregator import build_families\n", + "from bcbench.analysis.family import FamilyType\n", + "from bcbench.results.base import ExecutionBasedEvaluationResult\n", + "\n", + "def families_on_subset(setup: str):\n", + " if setup not in all_results:\n", + " return {}\n", + " df = all_results[setup]\n", + " df = df[df[\"instance_id\"].isin(subset)]\n", + " res = [ExecutionBasedEvaluationResult(instance_id=r[\"instance_id\"], project=\"\", model=setup,\n", + " agent_name=\"x\", category=\"cf\", resolved=bool(r[\"resolved\"]), build=bool(r.get(\"build\", False)),\n", + " output=r.get(\"output\", \"\")) for _, r in df.iterrows()]\n", + " return {f.family_id: f.family_type for f in build_families(res)}\n", + "\n", + "conv_rows = []\n", + "for label, base in BASELINES.items():\n", + " base_fam = families_on_subset(base)\n", + " if not base_fam:\n", + " continue\n", + " sfam = families_on_subset(skill_setup(base))\n", + " if not sfam:\n", + " continue\n", + " converted = sum(1 for fid, t in base_fam.items()\n", + " if t != FamilyType.STABLE_CORRECT\n", + " and sfam.get(fid) == FamilyType.STABLE_CORRECT)\n", + " eligible = sum(1 for t in base_fam.values() if t != FamilyType.STABLE_CORRECT)\n", + " conv_rows.append({\"Model\": label,\n", + " \"Non-stable families\": eligible, \"-> stable\": converted,\n", + " \"Conversion (%)\": round(converted / eligible * 100, 1) if eligible else None})\n", + "conversion_df = pd.DataFrame(conv_rows)\n", + "conversion_df if not conversion_df.empty else \"No skill results yet.\"" + ] + } + ], + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/counterfactual-evaluation/iaa_annotator_b.jsonl b/notebooks/counterfactual-evaluation/iaa_annotator_b.jsonl new file mode 100644 index 000000000..14cbad34f --- /dev/null +++ b/notebooks/counterfactual-evaluation/iaa_annotator_b.jsonl @@ -0,0 +1,70 @@ +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-174794__cf-2", "primary_failure_layer": "L5-toolchain-ecosystem", "confidence": "high", "evidence": "AL0132: 'Customer Posting Group' not a field on Gen. Journal Line temporary; gold uses existing 'Posting Group'"} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-174794__cf-3", "primary_failure_layer": "L5-toolchain-ecosystem", "confidence": "high", "evidence": "AL0132: model assigns nonexistent 'Customer Posting Group' member"} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-176194__cf-3", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "Removed OnValidate TestField but never relocated validation to processing flow; missing step"} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-176426__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "Edited CalculateBOMTree branching instead of adding GetItemCosts fallback procedure"} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-177493__cf-1", "primary_failure_layer": "L3-event-driven-paradigm", "confidence": "medium", "evidence": "Used post-processing CurrReport.Skip instead of source-level OnPreDataItem SetFilter (wrong report stage)"} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-183399__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "Added AutoFormatType=1 instead of DecimalPlaces=0:4; wrong property"} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-183399__cf-2", "primary_failure_layer": "L1-syntax-representation", "confidence": "high", "evidence": "AL0104/AL0107 syntax: 'DocumentAmount: Decimal decimalplaces = 0 : 5'"} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-201169__cf-3", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "Checks TempShopifyProduct.Title='' instead of Rec.Description=''; wrong field"} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-205825__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "Added GetCustVATCalc guard; missing VAT posting-group propagation steps"} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-222092__cf-2", "primary_failure_layer": "L5-toolchain-ecosystem", "confidence": "high", "evidence": "AL0118 '\"G/L Account\"' table not in scope (Database::\"G/L Account\")"} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-174087__cf-2", "primary_failure_layer": "L1-syntax-representation", "confidence": "high", "evidence": "AL0305: object identifier 'Interaction Log Entry Src. Mgt.' exceeds 30 chars"} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-176194__cf-3", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "Removed OnValidate TestField, no relocation to processing flow; missing validation"} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-176426__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "Rewrote HasBomStructure logic instead of adding GetItemCosts fallback"} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-177493__cf-1", "primary_failure_layer": "L3-event-driven-paradigm", "confidence": "medium", "evidence": "Applied source-level SetFilter to Sales where gold defers to post-processing stage"} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-183399__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "AutoFormatType=1 instead of DecimalPlaces=0:4"} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-183399__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "AutoFormatType=1; didn't remove AutoFormatExpression nor add DecimalPlaces"} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-188438__cf-1", "primary_failure_layer": "L1-syntax-representation", "confidence": "high", "evidence": "AL0104 '}' expected, AL0198 object keyword expected; malformed object"} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-201169__cf-3", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "Guarded UpdateProductTranslations; missing empty-description validation step"} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-205825__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "Reworked GetCustVATCalc resolution; missing VAT setup propagation"} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-209496__cf-2", "primary_failure_layer": "L1-syntax-representation", "confidence": "medium", "evidence": "AL0118 'ReminderCommunication' undeclared local var referenced after removal"} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-209835__cf-2", "primary_failure_layer": "L1-syntax-representation", "confidence": "high", "evidence": "AL0193 cannot convert Text to Enum 'Action Message Type' in SetFilter"} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-214557__cf-1", "primary_failure_layer": "L5-toolchain-ecosystem", "confidence": "high", "evidence": "AL0118 '\"Prod. Order Component\"' table not in scope (missing using)"} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-221877__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "Deleted repair-status block in wrong trigger, not the post-Modify Service Item No validation"} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-222092__cf-1", "primary_failure_layer": "L5-toolchain-ecosystem", "confidence": "high", "evidence": "AL0118 '\"G/L Account\"' not in scope; Database::\"G/L Account\" reference"} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-222092__cf-2", "primary_failure_layer": "L5-toolchain-ecosystem", "confidence": "high", "evidence": "AL0118 '\"G/L Account\"' not in scope"} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-223790__cf-1", "primary_failure_layer": "L1-syntax-representation", "confidence": "high", "evidence": "AL0305: object name 'Stockkeeping Unit Production BOMs' exceeds 30 chars"} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-174087__cf-2", "primary_failure_layer": "L3-event-driven-paradigm", "confidence": "high", "evidence": "Added OnModify trigger on Interaction Log Entry table instead of page Step 4 workflow"} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-176082__cf-2", "primary_failure_layer": "L1-syntax-representation", "confidence": "high", "evidence": "AL0118 'continue' keyword-like stray token invalid in AL"} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-176082__cf-3", "primary_failure_layer": "L2-execution-validation", "confidence": "medium", "evidence": "Revalidates Appl.-to Item Entry instead of direct assignment + Modify(false)"} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-176194__cf-3", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "Removed OnValidate TestField only; no processing-flow validation"} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-176426__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "Removed GetItemCosts call instead of adding fallback procedure"} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-177493__cf-1", "primary_failure_layer": "L3-event-driven-paradigm", "confidence": "medium", "evidence": "Added source-level SetFilter on Sales where gold defers to post-processing"} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-183399__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "AutoFormatType=1 instead of DecimalPlaces=0:4"} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-183399__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "AutoFormatType=1; didn't remove AutoFormatExpression nor add DecimalPlaces=0:3"} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-185488__cf-1", "primary_failure_layer": "L5-toolchain-ecosystem", "confidence": "high", "evidence": "AL0185 Codeunit 'Data Type Management' missing/inaccessible in module"} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-201169__cf-3", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "Added product-create-failed handling; missing empty-description validation"} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-205825__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "Added empty ship-to guard; missing VAT posting-group propagation"} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-209835__cf-1", "primary_failure_layer": "L1-syntax-representation", "confidence": "high", "evidence": "AL0193 cannot convert Text to Enum 'Action Message Type'"} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-215972__cf-1", "primary_failure_layer": "L5-toolchain-ecosystem", "confidence": "high", "evidence": "AL0161 CheckReservationPolicy inaccessible (protection level)"} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-218062__cf-1", "primary_failure_layer": "L5-toolchain-ecosystem", "confidence": "high", "evidence": "AL0185 Codeunit 'Warehouse Availability Mgt.' and Table 'Item' missing"} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-222092__cf-1", "primary_failure_layer": "L5-toolchain-ecosystem", "confidence": "high", "evidence": "AL0118 '\"G/L Account\"' not in scope"} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-174087__cf-2", "primary_failure_layer": "L3-event-driven-paradigm", "confidence": "high", "evidence": "Added OnModify trigger on table instead of page workflow step"} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-176082__cf-1", "primary_failure_layer": "L1-syntax-representation", "confidence": "high", "evidence": "AL0110 orphaned ELSE (semicolon before else)"} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-176194__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "Removed page-action TestField, not the table OnValidate triggers gold targets"} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-176194__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "Used '<>Blank' condition in codeunit vs gold's '=Remainder' in OnValidate"} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-176194__cf-3", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "Removed OnValidate TestField; no processing-flow relocation"} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-176426__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "Added Routing No. to HasBomStructure instead of fallback in GetItemCosts"} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-177493__cf-1", "primary_failure_layer": "L3-event-driven-paradigm", "confidence": "medium", "evidence": "Post-processing CurrReport.Skip in all sections instead of source-level filter"} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-195193__cf-3", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "Changed field refs in ACY OnValidate triggers; didn't change >0 to >=0"} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-205825__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "Validates Alt. fields to false instead of propagating AltCustVATReg posting groups"} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-218323__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "Populated Journal Template Name in report instead of bypass flag in check codeunit"} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-176194__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "Removed page TestField plus Sales table trigger; over/under-removal vs gold"} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-179733__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "Edited CopyJob codeunit instead of JobTask inheritance procedure"} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-175765__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "Per-item adjustment list instead of marking applied inbound entries for adjustment"} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-215972__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "Direction-gated test + extra reserve-codeunit validation vs simple Qty-to-Ship check"} +{"model": "GPT-5-4", "instance_id": "microsoft__BCApps-4699__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "high", "evidence": "Applied ConvertToLCY to Unit Cost too; gold converts only Unit Price"} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-215972__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "TestItemReserve unconditional (option=1) without Qty. to Ship>0 guard"} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-209450__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "Applied rule to all non-inventoriable, not only Service; edited table not reserve codeunit"} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-201169__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "Checks Title='' instead of Description; wrong field"} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-178045__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "Changed Count=1 to Count>=1 in different procedure, not AppliedQty consumption fix"} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-176194__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "Edited SalesLine qty-to-ship init, not item-charge OnValidate validation condition"} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-210200__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "Edited Standard Service Code table, unconditional AutoReserve, missing Type/Reserve guards"} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-209450__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "Applied to all non-inventoriable via Error, not only Service; wrong location"} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-220984__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "Omitted StartingDate<>WorkDate condition; Validate(StartingDate) vs assign StartingDate-1"} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-201169__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "Added Shopify-rejection handling; missing empty-description early exit"} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-201169__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "Checks Title.Trim()='' instead of Description; wrong field"} +{"model": "GPT-5-4", "instance_id": "microsoftInternal__NAV-215972__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "Gated on Outbound & 'Qty. to Ship' vs gold's Quantity>0"} +{"model": "Claude Sonnet 4.6", "instance_id": "microsoftInternal__NAV-208649__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "Edited Planning Component table removing precision checks, not Calculate Prod. Order scaling"} +{"model": "GPT-5-3 Codex", "instance_id": "microsoftInternal__NAV-182354__cf-1", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "Date via helper but kept 'Remaining Amount' filters gold removed"} +{"model": "Claude Opus 4.6", "instance_id": "microsoftInternal__NAV-175765__cf-2", "primary_failure_layer": "L4-workflow-business-logic", "confidence": "medium", "evidence": "Calls MakeInventoryAdjustment before undo loop instead of marking inbound entries for adjustment"} diff --git a/notebooks/result/bug-fix/copilot-cf-gpt-5-3-codex/base-out-run-27870251254.jsonl b/notebooks/result/bug-fix/copilot-cf-gpt-5-3-codex/base-out-run-27870251254.jsonl new file mode 100644 index 000000000..ab8e0dcb5 --- /dev/null +++ b/notebooks/result/bug-fix/copilot-cf-gpt-5-3-codex/base-out-run-27870251254.jsonl @@ -0,0 +1,101 @@ +{"instance_id": "microsoftInternal__NAV-210528", "project": "Sustainability", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al b/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al\nindex 335c0099..87ec6807 100644\n--- a/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al\n+++ b/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al\n@@ -148,9 +148,14 @@ table 6217 \"Sustainability Setup\"\n \n trigger OnValidate()\n begin\n- if Rec.\"Enable Value Chain Tracking\" then\n+ if Rec.\"Enable Value Chain Tracking\" then begin\n if not ConfirmManagement.GetResponseOrDefault(ConfirmEnableValueChainTrackingQst, false) then\n Error('');\n+ Rec.\"Use Emissions In Purch. Doc.\" := true;\n+ Rec.\"Item Emissions\" := true;\n+ Rec.\"Resource Emissions\" := true;\n+ Rec.\"Work/Machine Center Emissions\" := true;\n+ end;\n end;\n }\n }\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-224009", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/ReservationEntry.Table.al b/App/Layers/W1/BaseApp/Inventory/Tracking/ReservationEntry.Table.al\nindex c1b41b15..8800d323 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/ReservationEntry.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/ReservationEntry.Table.al\n@@ -907,6 +907,7 @@ table 337 \"Reservation Entry\"\n local procedure CalcReservationQuantity(): Decimal\n var\n ReservEntry: Record \"Reservation Entry\";\n+ TotalQuantity: Decimal;\n begin\n if \"Qty. per Unit of Measure\" = 1 then\n exit(\"Quantity (Base)\");\n@@ -916,9 +917,8 @@ table 337 \"Reservation Entry\"\n ReservEntry.SetSourceFilter(\"Source Batch Name\", \"Source Prod. Order Line\");\n ReservEntry.SetRange(\"Reservation Status\", \"Reservation Status\"::Reservation);\n ReservEntry.CalcSums(\"Quantity (Base)\", Quantity);\n- exit(\n- Round((ReservEntry.\"Quantity (Base)\" + \"Quantity (Base)\") / \"Qty. per Unit of Measure\", UOMMgt.QtyRndPrecision()) -\n- ReservEntry.Quantity);\n+ TotalQuantity := Round((ReservEntry.\"Quantity (Base)\" + \"Quantity (Base)\") / \"Qty. per Unit of Measure\", UOMMgt.QtyRndPrecision());\n+ exit(Round(TotalQuantity - ReservEntry.Quantity, UOMMgt.QtyRndPrecision()));\n end;\n \n procedure ClearApplFromToItemEntry()\n@@ -1442,4 +1442,3 @@ table 337 \"Reservation Entry\"\n begin\n end;\n }\n-\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137045'\nCodeunit 137045 SCM Bugfixes\n Testfunction CheckTrackingReservationEntriesUpdatedWheLotNoAllocated Failure (11.1 seconds)\n Error:\n Quantity must be equal to '-12' in Reservation Entry: Entry No.=0, Positive=No. Current value is '-12.00001'.\n Call Stack:\n \"SCM Bugfixes\"(CodeUnit 137045).VerifyReservationEntryQuantity line 7 - Tests-SCM by Microsoft version 27.0.0.0\n \"SCM Bugfixes\"(CodeUnit 137045).CheckTrackingReservationEntriesUpdatedWheLotNoAllocated line 65 - Tests-SCM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"instance_id": "microsoftInternal__NAV-211710", "project": "Shopify", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al b/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al\nindex 773ba116..52bfd17f 100644\n--- a/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al\n+++ b/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al\n@@ -17,7 +17,7 @@ report 30118 \"Shpfy Suggest Payments\"\n dataitem(OrderTransaction; \"Shpfy Order Transaction\")\n {\n RequestFilterFields = \"Created At\";\n- DataItemTableView = sorting(Type) where(Type = filter(Capture | Sale | Refund));\n+ DataItemTableView = sorting(Type) where(Type = filter(Capture | Sale | Refund), Status = const(Success));\n \n trigger OnAfterGetRecord()\n begin\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-220984", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al\nindex 83bf3f09..ef676aec 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al\n@@ -157,7 +157,7 @@ report 99001043 \"Exchange Production BOM Item\"\n CopyPositionFields(ProductionBOMLine2, ProductionBOMLine3);\n ShouldModifyProductionBOMLine := true;\n OnIntegerOnPostDataItemOnBeforeModifyProductionBOMLine(ProductionBOMLine, ShouldModifyProductionBOMLine);\n- if not ShouldModifyProductionBOMLine then begin\n+ if ShouldModifyProductionBOMLine then begin\n ProductionBOMLine.\"Ending Date\" := StartingDate - 1;\n ProductionBOMLine.Modify();\n end;\n@@ -601,4 +601,3 @@ report 99001043 \"Exchange Production BOM Item\"\n begin\n end;\n }\n-\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-224668", "project": "EssentialBusinessHeadlines", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\nindex 831aa80e..10436a09 100644\n--- a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n+++ b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n@@ -677,7 +677,7 @@ codeunit 1437 \"Essential Bus. Headline Mgt.\"\n var\n EssentialBusinessHeadline: Record \"Ess. Business Headline Per Usr\";\n begin\n- if EssentialBusinessHeadline.Get(HeadlineName) then begin\n+ if EssentialBusinessHeadline.Get(HeadlineName, UserSecurityId()) then begin\n EssentialBusinessHeadline.Validate(\"Headline Visible\", false);\n EssentialBusinessHeadline.Modify();\n end;\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-218323", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al b/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al\nindex 88068be0..798384c9 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al\n@@ -773,6 +773,7 @@ report 20 \"Calc. and Post VAT Settlement\"\n #pragma warning restore AA0470\n #pragma warning restore AA0074\n EnterVATDateLbl: Label 'Enter the VAT Date';\n+ NoGenJnlTemplateErr: Label 'No general journal template exists. Create one and try again.';\n CalcandPostVATSettlementCaptionLbl: Label 'Calc. and Post VAT Settlement';\n PageCaptionLbl: Label 'Page';\n TestReportnotpostedCaptionLbl: Label 'Test Report (Not Posted)';\n@@ -842,6 +843,7 @@ report 20 \"Calc. and Post VAT Settlement\"\n DimMgt: Codeunit DimensionManagement;\n DefaultDimSource: List of [Dictionary of [Integer, Code[20]]];\n begin\n+ SetJournalTemplateNameIfMandatory(GenJnlLine);\n DimMgt.AddDimSource(DefaultDimSource, Database::\"G/L Account\", GenJnlLine.\"Account No.\");\n DimMgt.AddDimSource(DefaultDimSource, Database::\"G/L Account\", GenJnlLine.\"Bal. Account No.\");\n GenJnlLine.\"Dimension Set ID\" :=\n@@ -875,6 +877,40 @@ report 20 \"Calc. and Post VAT Settlement\"\n OnAfterCopyAmounts(GenJournalLine, VATEntry);\n end;\n \n+ local procedure SetJournalTemplateNameIfMandatory(var GenJnlLine: Record \"Gen. Journal Line\")\n+ var\n+ GenJnlTemplate: Record \"Gen. Journal Template\";\n+ begin\n+ if not GLSetup.\"Journal Templ. Name Mandatory\" then\n+ exit;\n+\n+ if GenJnlLine.\"Journal Template Name\" <> '' then\n+ exit;\n+\n+ if (GLSetup.\"Apply Jnl. Template Name\" <> '') and GenJnlTemplate.Get(GLSetup.\"Apply Jnl. Template Name\") then\n+ if IsPostingDateInTemplateRange(GenJnlTemplate, GenJnlLine.\"Posting Date\") then begin\n+ GenJnlLine.\"Journal Template Name\" := GenJnlTemplate.Name;\n+ exit;\n+ end;\n+\n+ GenJnlTemplate.SetFilter(\"Allow Posting Date From\", '<=%1|%2', GenJnlLine.\"Posting Date\", 0D);\n+ GenJnlTemplate.SetFilter(\"Allow Posting Date To\", '>=%1|%2', GenJnlLine.\"Posting Date\", 0D);\n+ if not GenJnlTemplate.FindFirst() then begin\n+ GenJnlTemplate.Reset();\n+ if not GenJnlTemplate.FindFirst() then\n+ Error(NoGenJnlTemplateErr);\n+ end;\n+\n+ GenJnlLine.\"Journal Template Name\" := GenJnlTemplate.Name;\n+ end;\n+\n+ local procedure IsPostingDateInTemplateRange(GenJnlTemplate: Record \"Gen. Journal Template\"; PostingDate: Date): Boolean\n+ begin\n+ exit(\n+ ((GenJnlTemplate.\"Allow Posting Date From\" = 0D) or (PostingDate >= GenJnlTemplate.\"Allow Posting Date From\")) and\n+ ((GenJnlTemplate.\"Allow Posting Date To\" = 0D) or (PostingDate <= GenJnlTemplate.\"Allow Posting Date To\")));\n+ end;\n+\n local procedure CreateGenJnlLine(var GenJnlLine2: Record \"Gen. Journal Line\"; AccountNo: Code[20]; Amount: Decimal; AmountACY: Decimal)\n begin\n Clear(GenJnlLine2);\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-193853", "project": "EnforcedDigitalVouchers", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al b/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\nindex 72dc980e..680f0e3b 100644\n--- a/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\n+++ b/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\n@@ -267,13 +267,38 @@ codeunit 5579 \"Digital Voucher Impl.\"\n begin\n Clear(IncomingDocument);\n if not IncomingDocument.FindFromIncomingDocumentEntryNo(MainRecordRef, IncomingDocument) then\n- IncomingDocument.FindByDocumentNoAndPostingDate(MainRecordRef, IncomingDocument);\n+ if not IncomingDocument.FindByDocumentNoAndPostingDate(MainRecordRef, IncomingDocument) then\n+ if not FindIncomingDocumentFromRelatedGenJournalLines(MainRecordRef, IncomingDocument) then\n+ exit(false);\n if IncomingDocument.\"Entry No.\" = 0 then\n exit(false);\n IncomingDocumentAttachment.SetRange(\"Incoming Document Entry No.\", IncomingDocument.\"Entry No.\");\n exit(true);\n end;\n \n+ local procedure FindIncomingDocumentFromRelatedGenJournalLines(MainRecordRef: RecordRef; var IncomingDocument: Record \"Incoming Document\"): Boolean\n+ var\n+ GenJournalLine: Record \"Gen. Journal Line\";\n+ RelatedGenJournalLine: Record \"Gen. Journal Line\";\n+ begin\n+ if MainRecordRef.Number <> Database::\"Gen. Journal Line\" then\n+ exit(false);\n+\n+ MainRecordRef.SetTable(GenJournalLine);\n+ if (GenJournalLine.\"Document No.\" = '') or (GenJournalLine.\"Posting Date\" = 0D) then\n+ exit(false);\n+\n+ RelatedGenJournalLine.SetRange(\"Journal Template Name\", GenJournalLine.\"Journal Template Name\");\n+ RelatedGenJournalLine.SetRange(\"Journal Batch Name\", GenJournalLine.\"Journal Batch Name\");\n+ RelatedGenJournalLine.SetRange(\"Document No.\", GenJournalLine.\"Document No.\");\n+ RelatedGenJournalLine.SetRange(\"Posting Date\", GenJournalLine.\"Posting Date\");\n+ RelatedGenJournalLine.SetFilter(\"Incoming Document Entry No.\", '<>%1', 0);\n+ if not RelatedGenJournalLine.FindFirst() then\n+ exit(false);\n+\n+ exit(IncomingDocument.Get(RelatedGenJournalLine.\"Incoming Document Entry No.\"));\n+ end;\n+\n local procedure AttachGenJnlLinePDFToIncomingDocument(RecRef: RecordRef)\n var\n GenJournalLine: Record \"Gen. Journal Line\";\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-223493", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al b/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al\nindex 6a5f0a88..b6ec4168 100644\n--- a/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al\n@@ -53,6 +53,7 @@ codeunit 1409 \"Sales Inv. Header - Edit\"\n \n CustLedgerEntry.\"Payment Method Code\" := SalesInvoiceHeader.\"Payment Method Code\";\n CustLedgerEntry.\"Payment Reference\" := SalesInvoiceHeader.\"Payment Reference\";\n+ CustLedgerEntry.\"Your Reference\" := SalesInvoiceHeader.\"Your Reference\";\n CustLedgerEntry.Description := SalesInvoiceHeader.\"Posting Description\";\n CustLedgerEntry.\"Promised Pay Date\" := SalesInvoiceHeader.\"Promised Pay Date\";\n CustLedgerEntry.\"Due Date\" := SalesInvoiceHeader.\"Due Date\";\n@@ -109,4 +110,3 @@ codeunit 1409 \"Sales Inv. Header - Edit\"\n begin\n end;\n }\n-\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134658'\nCodeunit 134658 Edit Posted Documents\n Testfunction VerifyYourReferenceUpdatedInCustLedgerEntry Failure (27.024 seconds)\n Error:\n Assert.AreEqual failed. Expected:<23c7122aac7b4d8faf06ad3ccc25e5f56a2> (Text). Actual:<> (Text). Customer Ledger Entry Your Reference not updated.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"Edit Posted Documents\"(CodeUnit 134658).VerifyYourReferenceUpdatedInCustLedgerEntry line 32 - Tests-ERM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"instance_id": "microsoftInternal__NAV-193649", "project": "Shopify", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Apps/W1/Shopify/app/src/Invoicing/Codeunits/ShpfyCopyDocumentMgt.Codeunit.al b/App/Apps/W1/Shopify/app/src/Invoicing/Codeunits/ShpfyCopyDocumentMgt.Codeunit.al\nnew file mode 100644\nindex 00000000..1ffac0f6\n--- /dev/null\n+++ b/App/Apps/W1/Shopify/app/src/Invoicing/Codeunits/ShpfyCopyDocumentMgt.Codeunit.al\n@@ -0,0 +1,16 @@\n+namespace Microsoft.Integration.Shopify;\n+\n+using Microsoft.Sales.Document;\n+using Microsoft.Utilities;\n+\n+codeunit 30366 \"Shpfy Copy Document Mgt.\"\n+{\n+ Access = Internal;\n+\n+ [EventSubscriber(ObjectType::Codeunit, Codeunit::\"Copy Document Mgt.\", 'OnCopySalesDocOnAfterTransferPostedInvoiceFields', '', false, false)]\n+ local procedure ClearShopifyOrderOnAfterTransferPostedInvoiceFields(var ToSalesHeader: Record \"Sales Header\")\n+ begin\n+ ToSalesHeader.\"Shpfy Order Id\" := 0;\n+ ToSalesHeader.\"Shpfy Order No.\" := '';\n+ end;\n+}\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-220036", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/Reminder.Page.al b/App/Layers/W1/BaseApp/Sales/Reminder/Reminder.Page.al\nindex 8810e93d..7a5e02a5 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/Reminder.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/Reminder.Page.al\n@@ -50,7 +50,7 @@ page 434 Reminder\n \n trigger OnValidate()\n begin\n- ContactCustomer.GetPrimaryContact(Rec.\"Customer No.\", PrimaryContact);\n+ UpdateContactInformation();\n end;\n }\n field(Name; Rec.Name)\n@@ -106,14 +106,14 @@ page 434 Reminder\n ExtendedDatatype = PhoneNo;\n ToolTip = 'Specifies the mobile telephone number of the customer contact person the reminder is for.';\n }\n- field(ContactEmail; PrimaryContact.\"E-Mail\")\n+ field(ContactEmail; ContactEmail)\n {\n Caption = 'Email';\n ApplicationArea = Basic, Suite;\n ExtendedDatatype = EMail;\n Editable = false;\n Importance = Additional;\n- ToolTip = 'Specifies the email address of the customer contact person the reminder is for.';\n+ ToolTip = 'Specifies the email address of the customer contact person the reminder is for. If no contact email exists, the customer email is shown.';\n }\n field(\"Posting Date\"; Rec.\"Posting Date\")\n {\n@@ -543,12 +543,13 @@ page 434 Reminder\n \n trigger OnAfterGetRecord()\n begin\n- ContactCustomer.GetPrimaryContact(Rec.\"Customer No.\", PrimaryContact);\n+ UpdateContactInformation();\n end;\n \n var\n ContactCustomer: Record Customer;\n PrimaryContact: Record Contact;\n+ ContactEmail: Text[250];\n ReminderHeader: Record \"Reminder Header\";\n CurrExchRate: Record \"Currency Exchange Rate\";\n ChangeExchangeRate: Page \"Change Exchange Rate\";\n@@ -563,5 +564,18 @@ page 434 Reminder\n begin\n DocNoVisible := DocumentNoVisibility.SalesDocumentNoIsVisible(DocType::Reminder, Rec.\"No.\");\n end;\n-}\n \n+ local procedure UpdateContactInformation()\n+ begin\n+ Clear(PrimaryContact);\n+ ContactEmail := '';\n+ if Rec.\"Customer No.\" = '' then\n+ exit;\n+\n+ ContactCustomer.GetPrimaryContact(Rec.\"Customer No.\", PrimaryContact);\n+ ContactEmail := PrimaryContact.\"E-Mail\";\n+ if ContactEmail = '' then\n+ if ContactCustomer.Get(Rec.\"Customer No.\") then\n+ ContactEmail := ContactCustomer.\"E-Mail\";\n+ end;\n+}\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134905'\nCodeunit 134905 ERM Issued Reminder Addnl Fee\n Testfunction VerifyEmailOnReminderPageWhenCustomerHasNoContacts Success (19.764 seconds)\n\u001b[32m[17:24:28] Tests passed for Codeunit 134905\u001b[0m\nSetting test codeunit range '134825'\nCodeunit 134825 UT Customer Table\n Testfunction GetPrimaryConactCustomerWithoutContact Failure (2.01 seconds)\n Error:\n Assert.IsTrue failed. Contact No. should not be empty\n Call Stack:\n Assert(CodeUnit 130000).IsTrue line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"UT Customer Table\"(CodeUnit 134825).GetPrimaryConactCustomerWithoutContact line 15 - Tests-Misc by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"instance_id": "microsoftInternal__NAV-188438", "project": "Sustainability", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al b/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al\nindex 4644c873..e3cd8fe4 100644\n--- a/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al\n+++ b/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al\n@@ -88,7 +88,7 @@ codeunit 6218 \"Sustainability Calc. Mgt.\"\n CollectAmountFromGLEntry.LookupMode(true);\n if CollectAmountFromGLEntry.RunModal() = Action::LookupOK then begin\n CollectAmountFromGLEntry.GetDates(FromDate, ToDate);\n- SustainabilityJnlLine.Validate(\"Custom Amount\", GetCollectableGLAmount(SustainAccountCategory, FromDate, ToDate));\n+ SustainabilityJnlLine.Validate(\"Custom Amount\", Abs(GetCollectableGLAmount(SustainAccountCategory, FromDate, ToDate)));\n end;\n end;\n \n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '148181'\nCodeunit 148181 Sustainability Journal Test\n Testfunction TestCustomAmountIsPositiveForNegativeTotalOfGL Failure (4.383 seconds)\n Error:\n Assert.AreEqual failed. Expected:<248.67> (Decimal). Actual:<-248.67> (Decimal). The custom amount must be positive.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"Sustainability Journal Test\"(CodeUnit 148181).TestCustomAmountIsPositiveForNegativeTotalOfGL line 31 - Sustainability Tests by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"instance_id": "microsoftInternal__NAV-224447", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/SendReminder.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Reminder/SendReminder.Codeunit.al\nindex 94cce9d1..899079d6 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/SendReminder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/SendReminder.Codeunit.al\n@@ -43,6 +43,20 @@ codeunit 545 \"Send Reminder\"\n Rec.ClearSentEmailFieldsOnLevelUpdate(Rec);\n end;\n \n+ [EventSubscriber(ObjectType::Table, Database::\"Report Selections\", 'OnAfterIsCustomerAccount', '', false, false)]\n+ local procedure OnAfterIsCustomerAccount(DocumentTableId: Integer; var IsCustomer: Boolean)\n+ begin\n+ if DocumentTableId = Database::\"Issued Reminder Header\" then\n+ IsCustomer := true;\n+ end;\n+\n+ [EventSubscriber(ObjectType::Table, Database::\"Report Selections\", 'OnSendEmailDirectlyOnAfterSetFieldName', '', false, false)]\n+ local procedure OnSendEmailDirectlyOnAfterSetFieldName(DocumentTableId: Integer; var FieldName: Text)\n+ begin\n+ if DocumentTableId = Database::\"Issued Reminder Header\" then\n+ FieldName := 'Customer No.';\n+ end;\n+\n procedure UpdateReminderSentFromUI(var IssuedReminderHeader: Record \"Issued Reminder Header\")\n var\n SelectedOption: Integer;\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-226875", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\nindex fa043e01..96fb13d6 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n@@ -153,7 +153,7 @@ page 254 \"Purchase Journal\"\n \n trigger OnValidate()\n begin\n- GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ SetAccountNames();\n EnableApplyEntriesAction();\n CurrPage.SaveRecord();\n end;\n@@ -165,12 +165,12 @@ page 254 \"Purchase Journal\"\n \n trigger OnValidate()\n begin\n- GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ SetAccountNames();\n Rec.ShowShortcutDimCode(ShortcutDimCode);\n CurrPage.SaveRecord();\n end;\n }\n- field(\"\"; AccName)\n+ field(\"\"; VendorName)\n {\n ApplicationArea = Basic, Suite;\n Caption = 'Vendor Name';\n@@ -379,6 +379,7 @@ page 254 \"Purchase Journal\"\n \n trigger OnValidate()\n begin\n+ SetAccountNames();\n EnableApplyEntriesAction();\n end;\n }\n@@ -389,7 +390,7 @@ page 254 \"Purchase Journal\"\n \n trigger OnValidate()\n begin\n- GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ SetAccountNames();\n Rec.ShowShortcutDimCode(ShortcutDimCode);\n CurrPage.SaveRecord();\n end;\n@@ -1493,7 +1494,7 @@ page 254 \"Purchase Journal\"\n trigger OnAfterGetCurrRecord()\n begin\n HasIncomingDocument := Rec.\"Incoming Document Entry No.\" <> 0;\n- GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ SetAccountNames();\n UpdateBalance();\n EnableApplyEntriesAction();\n SetControlAppearance();\n@@ -1507,7 +1508,7 @@ page 254 \"Purchase Journal\"\n begin\n Rec.ShowShortcutDimCode(ShortcutDimCode);\n DocumentAmount := Abs(Rec.Amount);\n- GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ SetAccountNames();\n CurrPage.IncomingDocAttachFactBox.PAGE.SetCurrentRecordID(Rec.RecordId());\n ApprovalMgmt.GetGenJnlLineApprovalStatus(Rec, GenJnlLineApprovalStatus, EnabledGenJnlLineWorkflowsExist);\n end;\n@@ -1639,6 +1640,7 @@ page 254 \"Purchase Journal\"\n ShortcutDimCode: array[8] of Code[20];\n AccName: Text[100];\n BalAccName: Text[100];\n+ VendorName: Text[100];\n DimVisible1: Boolean;\n DimVisible2: Boolean;\n DimVisible3: Boolean;\n@@ -1661,6 +1663,23 @@ page 254 \"Purchase Journal\"\n NumberOfRecords := Rec.Count();\n end;\n \n+ local procedure SetAccountNames()\n+ begin\n+ GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ UpdateVendorName();\n+ end;\n+\n+ local procedure UpdateVendorName()\n+ begin\n+ if Rec.\"Account Type\" = Rec.\"Account Type\"::Vendor then\n+ VendorName := AccName\n+ else\n+ if Rec.\"Bal. Account Type\" = Rec.\"Bal. Account Type\"::Vendor then\n+ VendorName := BalAccName\n+ else\n+ Clear(VendorName);\n+ end;\n+\n local procedure EnableApplyEntriesAction()\n begin\n ApplyEntriesActionEnabled :=\n@@ -1858,4 +1877,3 @@ page 254 \"Purchase Journal\"\n begin\n end;\n }\n-\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-226223", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/Currency/ExchRateAdjmtProcess.Codeunit.al b/App/Layers/W1/BaseApp/Finance/Currency/ExchRateAdjmtProcess.Codeunit.al\nindex 467c235c..f95156e8 100644\n--- a/App/Layers/W1/BaseApp/Finance/Currency/ExchRateAdjmtProcess.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/Currency/ExchRateAdjmtProcess.Codeunit.al\n@@ -307,8 +307,11 @@ codeunit 699 \"Exch. Rate Adjmt. Process\"\n begin\n Window.Open(AdjustingVATEntriesTxt + VATEntryProgressBarTxt);\n \n- VATEntryNoTotal := VATEntry.Count();\n SetVATEntryFilters(VATEntry, ExchRateAdjmtParameters.\"Start Date\", ExchRateAdjmtParameters.\"End Date\");\n+ VATEntryNoTotal := VATEntry.Count();\n+ if VATEntryNoTotal = 0 then\n+ exit;\n+\n if VATPostingSetup.FindSet() then\n repeat\n VATEntryNo := VATEntryNo + 1;\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-221877", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al b/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al\nindex 1c8fcc9e..6e55d81b 100644\n--- a/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al\n@@ -1580,6 +1580,9 @@ table 5901 \"Service Item Line\"\n if not IsHandled then\n ServOrderMgt.UpdatePriority(Rec, false);\n \n+ if \"Repair Status Code\" <> '' then\n+ Validate(\"Repair Status Code\", \"Repair Status Code\");\n+\n if \"Line No.\" = 0 then\n LendLoanerWithConfirmation(false);\n \n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-219082", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Service/Document/ServiceOrder.Page.al b/App/Layers/W1/BaseApp/Service/Document/ServiceOrder.Page.al\nindex 130ccae8..8fc3ce0f 100644\n--- a/App/Layers/W1/BaseApp/Service/Document/ServiceOrder.Page.al\n+++ b/App/Layers/W1/BaseApp/Service/Document/ServiceOrder.Page.al\n@@ -1355,7 +1355,8 @@ page 5900 \"Service Order\"\n var\n ServDocumentPrint: Codeunit \"Serv. Document Print\";\n begin\n- CurrPage.Update(true);\n+ CurrPage.SaveRecord();\n+ Commit();\n ServDocumentPrint.PrintServiceHeader(Rec);\n end;\n }\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-216918", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\nindex d541dd08..ded23599 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\n@@ -451,6 +451,7 @@ codeunit 1004 \"Job Transfer Line\"\n Job: Record Job;\n JobTask: Record \"Job Task\";\n NonDeductibleVAT: Codeunit \"Non-Deductible VAT\";\n+ NonDeductibleVATAmountInJobCurrency: Decimal;\n begin\n OnBeforeFromGenJnlLineToJnlLine(JobJnlLine, GenJnlLine);\n \n@@ -498,17 +499,18 @@ codeunit 1004 \"Job Transfer Line\"\n JobJnlLine.\"Total Cost (LCY)\" := GenJnlLine.\"Job Total Cost (LCY)\";\n JobJnlLine.\"Total Cost\" := GenJnlLine.\"Job Total Cost\";\n \n+ NonDeductibleVATAmountInJobCurrency := ConvertNonDeductibleVATAmountToJobCurrency(GenJnlLine, JobJnlLine);\n if NonDeductibleVAT.UseNonDeductibleVATAmountForJobCost() then\n if JobJnlLine.\"Unit Cost\" > 0 then begin\n JobJnlLine.\"Unit Cost (LCY)\" += Abs(Round(GenJnlLine.\"Non-Deductible VAT Amount LCY\" / JobJnlLine.Quantity));\n- JobJnlLine.\"Unit Cost\" += Abs(Round(GenJnlLine.\"Non-Deductible VAT Amount\" / JobJnlLine.Quantity));\n+ JobJnlLine.\"Unit Cost\" += Abs(Round(NonDeductibleVATAmountInJobCurrency / JobJnlLine.Quantity));\n JobJnlLine.\"Total Cost (LCY)\" += Abs(GenJnlLine.\"Non-Deductible VAT Amount LCY\");\n- JobJnlLine.\"Total Cost\" += Abs(GenJnlLine.\"Non-Deductible VAT Amount\");\n+ JobJnlLine.\"Total Cost\" += Abs(NonDeductibleVATAmountInJobCurrency);\n end else begin\n JobJnlLine.\"Unit Cost (LCY)\" += Round(GenJnlLine.\"Non-Deductible VAT Amount LCY\" / JobJnlLine.Quantity);\n- JobJnlLine.\"Unit Cost\" += Round(GenJnlLine.\"Non-Deductible VAT Amount\" / JobJnlLine.Quantity);\n+ JobJnlLine.\"Unit Cost\" += Round(NonDeductibleVATAmountInJobCurrency / JobJnlLine.Quantity);\n JobJnlLine.\"Total Cost (LCY)\" += GenJnlLine.\"Non-Deductible VAT Amount LCY\";\n- JobJnlLine.\"Total Cost\" += GenJnlLine.\"Non-Deductible VAT Amount\";\n+ JobJnlLine.\"Total Cost\" += NonDeductibleVATAmountInJobCurrency;\n end;\n \n JobJnlLine.\"Unit Price (LCY)\" := GenJnlLine.\"Job Unit Price (LCY)\";\n@@ -840,6 +842,39 @@ codeunit 1004 \"Job Transfer Line\"\n LCYCurrency.InitRoundingPrecision();\n end;\n \n+ local procedure ConvertNonDeductibleVATAmountToJobCurrency(GenJnlLine: Record \"Gen. Journal Line\"; JobJnlLine: Record \"Job Journal Line\"): Decimal\n+ var\n+ JobCurrency: Record Currency;\n+ begin\n+ if JobJnlLine.\"Currency Code\" = '' then\n+ exit(GenJnlLine.\"Non-Deductible VAT Amount LCY\");\n+\n+ if GenJnlLine.\"Currency Code\" = JobJnlLine.\"Currency Code\" then\n+ exit(GenJnlLine.\"Non-Deductible VAT Amount\");\n+\n+ JobCurrency.Get(JobJnlLine.\"Currency Code\");\n+ JobCurrency.TestField(\"Amount Rounding Precision\");\n+\n+ if GenJnlLine.\"Currency Code\" = '' then\n+ exit(\n+ Round(\n+ CurrencyExchRate.ExchangeAmtLCYToFCY(\n+ GenJnlLine.\"Posting Date\",\n+ JobJnlLine.\"Currency Code\",\n+ GenJnlLine.\"Non-Deductible VAT Amount LCY\",\n+ JobJnlLine.\"Currency Factor\"),\n+ JobCurrency.\"Amount Rounding Precision\"));\n+\n+ exit(\n+ Round(\n+ CurrencyExchRate.ExchangeAmtFCYToFCY(\n+ GenJnlLine.\"Posting Date\",\n+ GenJnlLine.\"Currency Code\",\n+ JobJnlLine.\"Currency Code\",\n+ GenJnlLine.\"Non-Deductible VAT Amount\"),\n+ JobCurrency.\"Amount Rounding Precision\"));\n+ end;\n+\n local procedure DoUpdateUnitCost(SalesLine: Record \"Sales Line\"): Boolean\n var\n Item: Record Item;\n@@ -986,4 +1021,3 @@ codeunit 1004 \"Job Transfer Line\"\n begin\n end;\n }\n-\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134284'\nCodeunit 134284 Non Ded. VAT Misc.\n Testfunction JobJnlLineWithNonDeductNormalVATInFCYFromGenJnlLine Failure (4.653 seconds)\n Error:\n Assert.AreEqual failed. Expected:<10.76> (Decimal). Actual:<10.31> (Decimal). Unit Cost (LCY) with Non-Deductible VAT amount is not correct in Job Journal Line.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"Non Ded. VAT Misc.\"(CodeUnit 134284).JobJnlLineWithNonDeductNormalVATInFCYFromGenJnlLine line 32 - Tests-VAT by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"instance_id": "microsoftInternal__NAV-218856", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Service/Contract/ServiceContractHeader.Table.al b/App/Layers/W1/BaseApp/Service/Contract/ServiceContractHeader.Table.al\nindex 4f315c8f..563f75ad 100644\n--- a/App/Layers/W1/BaseApp/Service/Contract/ServiceContractHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Service/Contract/ServiceContractHeader.Table.al\n@@ -1335,7 +1335,7 @@ table 5965 \"Service Contract Header\"\n if (\"Customer No.\" <> '') and (\"Contact No.\" <> '') then begin\n Cont.Get(\"Contact No.\");\n if ContBusinessRelation.FindByRelation(ContBusinessRelation.\"Link to Table\"::Customer, \"Customer No.\") then\n- if ContBusinessRelation.\"Contact No.\" <> Cont.\"Company No.\" then\n+ if (ContBusinessRelation.\"Contact No.\" <> Cont.\"Company No.\") and (ContBusinessRelation.\"Contact No.\" <> Cont.\"No.\") then\n Error(Text045, Cont.\"No.\", Cont.Name, \"Customer No.\");\n end;\n \n@@ -1389,7 +1389,7 @@ table 5965 \"Service Contract Header\"\n if (\"Bill-to Customer No.\" <> '') and (\"Bill-to Contact No.\" <> '') then begin\n Cont.Get(\"Bill-to Contact No.\");\n if ContBusinessRelation.FindByRelation(ContBusinessRelation.\"Link to Table\"::Customer, \"Bill-to Customer No.\") then\n- if ContBusinessRelation.\"Contact No.\" <> Cont.\"Company No.\" then\n+ if (ContBusinessRelation.\"Contact No.\" <> Cont.\"Company No.\") and (ContBusinessRelation.\"Contact No.\" <> Cont.\"No.\") then\n Error(Text045, Cont.\"No.\", Cont.Name, \"Bill-to Customer No.\");\n end;\n \n@@ -2240,6 +2240,7 @@ table 5965 \"Service Contract Header\"\n ContBusinessRelation: Record \"Contact Business Relation\";\n Cust: Record Customer;\n Cont: Record Contact;\n+ ContactBusinessRelationFound: Boolean;\n IsHandled: Boolean;\n begin\n IsHandled := false;\n@@ -2265,7 +2266,12 @@ table 5965 \"Service Contract Header\"\n exit;\n end;\n \n- if ContBusinessRelation.FindByContact(ContBusinessRelation.\"Link to Table\"::Customer, Cont.\"Company No.\") then begin\n+ if Cont.Type = Cont.Type::Person then\n+ ContactBusinessRelationFound := ContBusinessRelation.FindByContact(ContBusinessRelation.\"Link to Table\"::Customer, Cont.\"No.\");\n+ if not ContactBusinessRelationFound then\n+ ContactBusinessRelationFound := ContBusinessRelation.FindByContact(ContBusinessRelation.\"Link to Table\"::Customer, Cont.\"Company No.\");\n+\n+ if ContactBusinessRelationFound then begin\n if (\"Customer No.\" <> '') and\n (\"Customer No.\" <> ContBusinessRelation.\"No.\")\n then\n@@ -2289,6 +2295,7 @@ table 5965 \"Service Contract Header\"\n ContBusinessRelation: Record \"Contact Business Relation\";\n Cust: Record Customer;\n Cont: Record Contact;\n+ ContactBusinessRelationFound: Boolean;\n begin\n if Cont.Get(ContactNo) then begin\n \"Bill-to Contact No.\" := Cont.\"No.\";\n@@ -2305,7 +2312,12 @@ table 5965 \"Service Contract Header\"\n end;\n \n OnUpdateBillToCustOnBeforeContBusinessRelationFindByContact(Rec, Cust, Cont);\n- if ContBusinessRelation.FindByContact(ContBusinessRelation.\"Link to Table\"::Customer, Cont.\"Company No.\") then begin\n+ if Cont.Type = Cont.Type::Person then\n+ ContactBusinessRelationFound := ContBusinessRelation.FindByContact(ContBusinessRelation.\"Link to Table\"::Customer, Cont.\"No.\");\n+ if not ContactBusinessRelationFound then\n+ ContactBusinessRelationFound := ContBusinessRelation.FindByContact(ContBusinessRelation.\"Link to Table\"::Customer, Cont.\"Company No.\");\n+\n+ if ContactBusinessRelationFound then begin\n if \"Bill-to Customer No.\" = '' then begin\n SkipBillToContact := true;\n Validate(\"Bill-to Customer No.\", ContBusinessRelation.\"No.\");\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-215225", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": false, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobJournalLine.Table.al b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobJournalLine.Table.al\nindex fb253f0b..fdffa343 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobJournalLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobJournalLine.Table.al\n@@ -1859,6 +1859,8 @@ table 210 \"Job Journal Line\"\n \n case Type of\n Type::Item:\n+ if ShouldRetrievePriceForRecurringVariableOnQuantity(CalledByFieldNo) then\n+ exit(true);\n if (\"No.\" <> xRec.\"No.\") or\n IsQuantityChangedForPrice() or\n (\"Location Code\" <> xRec.\"Location Code\") or\n@@ -1869,6 +1871,8 @@ table 210 \"Job Journal Line\"\n then\n exit(true);\n Type::Resource:\n+ if ShouldRetrievePriceForRecurringVariableOnQuantity(CalledByFieldNo) then\n+ exit(true);\n if (\"No.\" <> xRec.\"No.\") or\n IsQuantityChangedForPrice() or\n (\"Work Type Code\" <> xRec.\"Work Type Code\") or\n@@ -1885,6 +1889,19 @@ table 210 \"Job Journal Line\"\n exit(false);\n end;\n \n+ local procedure ShouldRetrievePriceForRecurringVariableOnQuantity(CalledByFieldNo: Integer): Boolean\n+ begin\n+ exit(\n+ (\"Recurring Method\" = \"Recurring Method\"::Variable) and\n+ (CalledByFieldNo = FieldNo(Quantity)) and\n+ (xRec.Quantity = 0) and\n+ (Quantity <> 0) and\n+ (\"Unit Cost\" = 0) and\n+ (\"Unit Price\" = 0) and\n+ (\"Unit Cost (LCY)\" = 0) and\n+ (\"Unit Price (LCY)\" = 0));\n+ end;\n+\n local procedure IsQuantityChangedForPrice(): Boolean;\n #if not CLEAN25\n var\n@@ -2819,4 +2836,3 @@ table 210 \"Job Journal Line\"\n begin\n end;\n }\n-\n", "error_message": "Build or publish failed for App\\Layers\\W1\\BaseApp:\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Projects\\Project\\Journal\\JobJournalLine.Table.al(1864,17): error AL0224: Expression expected\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Projects\\Project\\Journal\\JobJournalLine.Table.al(1864,20): error AL0104: Syntax error, ':' expected\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Projects\\Project\\Journal\\JobJournalLine.Table.al(1871,1): error AL0111: Semicolon expected\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Projects\\Project\\Journal\\JobJournalLine.Table.al(1871,17): error AL0224: Expression expected\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Projects\\Project\\Journal\\JobJournalLine.Table.al(1872,21): error AL0104: Syntax error, ':' expected\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Projects\\Project\\Journal\\JobJournalLine.Table.al(1876,17): error AL0224: Expression expected\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Projects\\Project\\Journal\\JobJournalLine.Table.al(1876,20): error AL0104: Syntax error, ':' expected\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Projects\\Project\\Journal\\JobJournalLine.Table.al(1881,1): error AL0111: Semicolon expected\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Projects\\Project\\Journal\\JobJournalLine.Table.al(1881,17): error AL0224: Expression expected\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Projects\\Project\\Journal\\JobJournalLine.Table.al(1882,21): error AL0104: Syntax error, ':' expected"} +{"instance_id": "microsoftInternal__NAV-213629", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al\nindex 162d6cc5..ee7389f3 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al\n@@ -170,6 +170,7 @@ codeunit 1006 \"Copy Job\"\n NextPlanningLineNo += 10000;\n TargetJobPlanningLine.Validate(\"Line No.\", NextPlanningLineNo);\n TargetJobPlanningLine.TransferFields(SourceJobPlanningLine, false);\n+ TargetJobPlanningLine.\"System-Created Entry\" := false;\n if not CopyPrices then\n TargetJobPlanningLine.UpdateAllAmounts();\n \n@@ -500,4 +501,3 @@ codeunit 1006 \"Copy Job\"\n begin\n end;\n }\n-\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-213524", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/Intercompany/ICNavigation.Codeunit.al b/App/Layers/W1/BaseApp/Finance/Intercompany/ICNavigation.Codeunit.al\nindex 92bf43b1..df28fe36 100644\n--- a/App/Layers/W1/BaseApp/Finance/Intercompany/ICNavigation.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/Intercompany/ICNavigation.Codeunit.al\n@@ -56,6 +56,20 @@ codeunit 437 \"IC Navigation\"\n exit(true);\n end;\n \n+ local procedure NavigateToSalesCreditMemo(DocumentNo: Code[20]): Boolean\n+ var\n+ SalesCrMemoHeader: Record \"Sales Cr.Memo Header\";\n+ PostedSalesCreditMemo: Page \"Posted Sales Credit Memo\";\n+ begin\n+ // An IC Transaction of type Sales Credit Memo can only be sent when posted, not received.\n+ if not SalesCrMemoHeader.Get(DocumentNo) then\n+ exit(false);\n+ // The related document is a Posted Sales Credit Memo.\n+ PostedSalesCreditMemo.SetRecord(SalesCrMemoHeader);\n+ PostedSalesCreditMemo.Run();\n+ exit(true);\n+ end;\n+\n local procedure NavigateToSalesInvoice(DocumentNo: Code[20]; ICPartnerCode: Code[20]): Boolean\n var\n Customer: Record Customer;\n@@ -120,6 +134,8 @@ codeunit 437 \"IC Navigation\"\n exit(NavigateToSalesOrderDocument(DocumentNo, ICDirectionType, ICPartnerCode));\n DocumentType::Invoice:\n exit(NavigateToSalesInvoice(DocumentNo));\n+ DocumentType::\"Credit Memo\":\n+ exit(NavigateToSalesCreditMemo(DocumentNo));\n else begin\n ShouldNavigateToDoc := false;\n OnNavigateToSalesDocumentOnAfterCheckDocumentType(DocumentNo, ICDirectionType, ICPartnerCode, DocumentType, ShouldNavigateToDoc);\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-213741", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Costing/InventoryPostingToGL.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Costing/InventoryPostingToGL.Codeunit.al\nindex 9b9c14ed..fbf552ce 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Costing/InventoryPostingToGL.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Costing/InventoryPostingToGL.Codeunit.al\n@@ -564,6 +564,14 @@ codeunit 5802 \"Inventory Posting To G/L\"\n TempGlobalInvtPostingBuffer.\"Account Type\"::Inventory,\n TempGlobalInvtPostingBuffer.\"Account Type\"::\"Inventory Adjmt.\",\n CostToPost, CostToPostACY, false);\n+ ValueEntry.\"Entry Type\"::\"Direct Cost - Non Inventory\":\n+ if (CostToPost <> 0) or (CostToPostACY <> 0) then\n+ if MfgCostCalcMgt.CanIncNonInvCostIntoProductionItem() then\n+ InitInvtPostBuf(\n+ ValueEntry,\n+ TempGlobalInvtPostingBuffer.\"Account Type\"::Inventory,\n+ TempGlobalInvtPostingBuffer.\"Account Type\"::\"Direct Cost Non-Inventory Applied\",\n+ CostToPost, CostToPostACY, false);\n ValueEntry.\"Entry Type\"::\"Indirect Cost\":\n InitInvtPostBuf(\n ValueEntry,\n@@ -1652,4 +1660,3 @@ codeunit 5802 \"Inventory Posting To G/L\"\n begin\n end;\n }\n-\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137911'\nCodeunit 137911 SCM Calculate Assembly Cost\n Testfunction VerifyAdjustCostItemEntriesMustBeExecutedForAssemblyItem Failure (7.827 seconds)\n Error:\n Assert.RecordCount failed. Expected number of Value Entry entries: 0. Actual: 1. Filters: Item No.: GL00000000, Item Ledger Entry Type: Assembly Output, Entry Type: Direct Cost - Non Inventory. Records: 678, GL00000000, 06/03/26, Assembly Output, GL00000000, A00001, , , FINISHED, , 676, 1, 0, 0, 233, 0, 430, 0, , 0, ADMIN, INVTADJMT, 0, , , Item, 233, 0, , No, , DOMESTIC, RETAIL, 06/03/26, , 0, 0, 0, Posted Assembly, 0, 06/03/26, Assembly, A00001, 0, No, , No, No, Yes, 06/03/26, Direct Cost - Non Inventory, , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , 0, , Yes, No, 0, , , , , , , , , , , ; \n Call Stack:\n Assert(CodeUnit 130000).RecordCount line 18 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"SCM Calculate Assembly Cost\"(CodeUnit 137911).VerifyAdjustCostItemEntriesMustBeExecutedForAssemblyItem line 43 - Tests-SCM-Assembly by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"instance_id": "microsoftInternal__NAV-206527", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\nindex 36930a9e..6b1d464c 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n@@ -263,7 +263,6 @@ codeunit 99000773 \"Calculate Prod. Order\"\n Item2: Record Item;\n ComponentSKU: Record \"Stockkeeping Unit\";\n IsHandled: Boolean;\n- QtyRoundPrecision: Decimal;\n begin\n ProdOrderComp.Reset();\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\", \"Item No.\");\n@@ -295,12 +294,7 @@ codeunit 99000773 \"Calculate Prod. Order\"\n ProdOrderComp.\"Bin Code\" := GetDefaultBin();\n ProdOrderComp.Description := ProdBOMLine[Level].Description;\n ProdOrderComp.Validate(\"Unit of Measure Code\", ProdBOMLine[Level].\"Unit of Measure Code\");\n- if (ProdOrderComp.\"Item No.\" <> '') and Item2.Get(ProdOrderComp.\"Item No.\") then\n- QtyRoundPrecision := UOMMgt.GetQtyRoundingPrecision(Item2, ProdBOMLine[Level].\"Unit of Measure Code\");\n- if QtyRoundPrecision <> 0 then\n- ProdOrderComp.\"Quantity per\" := Round(ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM, QtyRoundPrecision)\n- else\n- ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n+ ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n ProdOrderComp.Length := ProdBOMLine[Level].Length;\n ProdOrderComp.Width := ProdBOMLine[Level].Width;\n ProdOrderComp.Weight := ProdBOMLine[Level].Weight;\n@@ -1230,4 +1224,3 @@ codeunit 99000773 \"Calculate Prod. Order\"\n begin\n end;\n }\n-\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137088'\nCodeunit 137088 SCM Order Planning - III\n Testfunction ReleasedProdOrderQuantityPerandExpectedQtyRoundingPrecisionChecking Failure (8.487 seconds)\n Error:\n The value in the Qty. Rounding Precision field on the Item Unit of Measure page is causing the rounding precision for the Expected Quantity field to be incorrect.\n Call Stack:\n \"Prod. Order Component\"(Table 5407).\"Expected Quantity - OnValidate\"(Trigger) line 26 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).UpdateExpectedQuantity line 14 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).\"Routing Link Code - OnValidate\"(Trigger) line 5 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).TransferBOMProcessItem line 45 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).TransferBOM line 70 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).Calculate line 105 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order Lines\"(CodeUnit 99000787).ProcessProdOrderLines line 13 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order Lines\"(CodeUnit 99000787).Copy line 23 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order from Sale\"(CodeUnit 99000792).CreateProductionOrder line 54 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateOrder line 11 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateOrders line 35 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateProdOrder line 24 - Base Application by Microsoft version 26.0.0.0\n \"Library - Planning\"(CodeUnit 132203).CreateProdOrderUsingPlanning line 6 - Tests-TestLibraries by Microsoft version 26.0.0.0\n \"SCM Order Planning - III\"(CodeUnit 137088).ReleasedProdOrderQuantityPerandExpectedQtyRoundingPrecisionChecking line 50 - Tests-SCM by Microsoft version 26.0.0.0"} +{"instance_id": "microsoftInternal__NAV-208851", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al b/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al\nindex fb6adbb6..96864380 100644\n--- a/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al\n@@ -563,9 +563,10 @@ table 7000 \"Price List Header\"\n xAmountType: Enum \"Price Amount Type\";\n begin\n xAmountType := \"Amount Type\";\n- if \"Source Type\" in [\"Source Type\"::\"Customer Disc. Group\", \"Source Type\"::\"Customer Price Group\"] then\n- \"Amount Type\" := PriceSource.GetDefaultAmountType()\n- else\n+ if \"Source Type\" in [\"Source Type\"::\"Customer Disc. Group\", \"Source Type\"::\"Customer Price Group\"] then begin\n+ CopyTo(PriceSource);\n+ \"Amount Type\" := PriceSource.GetDefaultAmountType();\n+ end else\n \"Amount Type\" := CalcAmountType();\n if \"Amount Type\" <> xAmountType then\n Modify()\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-208320", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesInvoice.Page.al b/App/Layers/W1/BaseApp/Sales/Document/SalesInvoice.Page.al\nindex ee0d93e0..6f4998ac 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesInvoice.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesInvoice.Page.al\n@@ -800,6 +800,7 @@ page 43 \"Sales Invoice\"\n if Rec.\"Bill-to Customer No.\" <> xRec.\"Bill-to Customer No.\" then\n Rec.SetRange(\"Bill-to Customer No.\");\n \n+ BillToContact.GetOrClear(Rec.\"Bill-to Contact No.\");\n CurrPage.Update();\n end;\n end;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134386'\nCodeunit 134386 ERM Sales Documents II\n Testfunction UpdateEmailAndPhoneNoWhenChangeBillToOfSalesInvoice Failure (9.09 seconds)\n Error:\n AssertEquals for Field: BillToContactPhoneNo Expected = '333333333', Actual = '111111111'\n Call Stack:\n \"ERM Sales Documents II\"(CodeUnit 134386).UpdateEmailAndPhoneNoWhenChangeBillToOfSalesInvoice line 34 - Tests-ERM by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0"} +{"instance_id": "microsoftInternal__NAV-227219", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al\nindex 979cdb45..d057df0b 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al\n@@ -119,7 +119,7 @@ codeunit 5708 \"Release Transfer Document\"\n if IsHandled then\n exit;\n \n- TransLine.SetLoadFields(\"Document No.\", Quantity, \"Item No.\");\n+ TransLine.SetLoadFields(\"Document No.\", Quantity, \"Item No.\", \"Variant Code\");\n TransLine.SetRange(\"Document No.\", TransHeader.\"No.\");\n TransLine.SetFilter(Quantity, '<>0');\n if TransLine.IsEmpty() then\n@@ -129,8 +129,11 @@ codeunit 5708 \"Release Transfer Document\"\n if TransLine.FindSet() then\n repeat\n Item.Get(TransLine.\"Item No.\");\n- if Item.IsInventoriableType() then\n+ if Item.IsInventoriableType() then begin\n TransLine.TestField(\"Unit of Measure Code\");\n+ if Item.IsVariantMandatory(InvtSetup.\"Variant Mandatory if Exists\") then\n+ TransLine.TestField(\"Variant Code\");\n+ end;\n until TransLine.Next() = 0;\n TransLine.SetFilter(\"Item No.\", '');\n end;\n@@ -175,4 +178,3 @@ codeunit 5708 \"Release Transfer Document\"\n begin\n end;\n }\n-\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-227358", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\nindex 61aff663..abd7f2e0 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\n@@ -1006,6 +1006,10 @@ codeunit 13 \"Gen. Jnl.-Post Batch\"\n exit;\n if not CurrGenJnlTemplate.\"Unlink Inc. Doc On Posting\" then\n exit;\n+\n+ if not GenJnlLine.Get(GenJnlLine.\"Journal Template Name\", GenJnlLine.\"Journal Batch Name\", GenJnlLine.\"Line No.\") then\n+ exit;\n+\n GenJnlLine.\"Incoming Document Entry No.\" := 0;\n GenJnlLine.Modify();\n end;\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-226004", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al b/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al\nindex d086521b..7caac344 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al\n@@ -738,11 +738,13 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n QtyAvailToPickBase: Decimal;\n OriginalRemQtyToPickBase: Decimal;\n QtyRemToPickBase: Decimal;\n+ PickedQtyBase: Decimal;\n ITQtyToPickBase: Decimal;\n TotalITQtyToPickBase: Decimal;\n QtyToTrackBase: Decimal;\n EntriesExist: Boolean;\n ShouldInsertPickOrMoveDefaultBin: Boolean;\n+ FirstLineNo: Integer;\n IsHandled: Boolean;\n begin\n GetLocation(NewWarehouseActivityLine.\"Location Code\");\n@@ -755,6 +757,7 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n \n HasExpiredItems := false;\n OriginalRemQtyToPickBase := RemQtyToPickBase;\n+ FirstLineNo := NextLineNo;\n \n QtyAvailToPickBase := CalcInvtAvailability(NewWarehouseActivityLine, WhseItemTrackingSetup);\n if WMSManagement.GetATOSalesLine(\n@@ -912,6 +915,9 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n end;\n \n QtyRemToPickBase := OriginalRemQtyToPickBase - QtyAvailToPickBase + RemQtyToPickBase;\n+ PickedQtyBase := OriginalRemQtyToPickBase - QtyRemToPickBase;\n+ if (not IsInvtMovement) and (PickedQtyBase > 0) then\n+ AdjustPickLineQtyRounding(NewWarehouseActivityLine, FirstLineNo, PickedQtyBase);\n if CurrLocation.\"Always Create Pick Line\" and (QtyRemToPickBase > 0) then begin\n MakeWarehouseActivityHeader();\n MakeWarehouseActivityLine(NewWarehouseActivityLine, '', QtyRemToPickBase, QtyRemToPickBase);\n@@ -922,6 +928,43 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n RemQtyToPickBase, CompleteShipment, ReservationExists, WhseItemTrackingSetup);\n end;\n \n+ local procedure AdjustPickLineQtyRounding(NewWarehouseActivityLine: Record \"Warehouse Activity Line\"; FirstLineNo: Integer; PickedQtyBase: Decimal)\n+ var\n+ WarehouseActivityLine: Record \"Warehouse Activity Line\";\n+ CreatedPickLines: Record \"Warehouse Activity Line\";\n+ TargetQty: Decimal;\n+ QtyDiff: Decimal;\n+ begin\n+ if PickedQtyBase <= 0 then\n+ exit;\n+\n+ CreatedPickLines.SetRange(\"Activity Type\", CurrWarehouseActivityHeader.Type);\n+ CreatedPickLines.SetRange(\"No.\", CurrWarehouseActivityHeader.\"No.\");\n+ CreatedPickLines.SetRange(\"Action Type\", CreatedPickLines.\"Action Type\"::Take);\n+ CreatedPickLines.SetRange(\"Source Type\", NewWarehouseActivityLine.\"Source Type\");\n+ CreatedPickLines.SetRange(\"Source Subtype\", NewWarehouseActivityLine.\"Source Subtype\");\n+ CreatedPickLines.SetRange(\"Source No.\", NewWarehouseActivityLine.\"Source No.\");\n+ CreatedPickLines.SetRange(\"Source Line No.\", NewWarehouseActivityLine.\"Source Line No.\");\n+ CreatedPickLines.SetRange(\"Source Subline No.\", NewWarehouseActivityLine.\"Source Subline No.\");\n+ CreatedPickLines.SetFilter(\"Line No.\", '>=%1', FirstLineNo);\n+ if CreatedPickLines.IsEmpty() then\n+ exit;\n+\n+ CreatedPickLines.CalcSums(Quantity);\n+ TargetQty := NewWarehouseActivityLine.CalcQty(PickedQtyBase);\n+ QtyDiff := TargetQty - CreatedPickLines.Quantity;\n+ if (QtyDiff = 0) or (Abs(QtyDiff) > NewWarehouseActivityLine.\"Qty. Rounding Precision\") then\n+ exit;\n+\n+ WarehouseActivityLine.Copy(CreatedPickLines);\n+ if not WarehouseActivityLine.FindLast() then\n+ exit;\n+\n+ WarehouseActivityLine.Quantity += QtyDiff;\n+ WarehouseActivityLine.\"Qty. Outstanding\" += QtyDiff;\n+ WarehouseActivityLine.Modify();\n+ end;\n+\n local procedure CalcRemQtyToPickOrMoveBase(NewWarehouseActivityLine: Record \"Warehouse Activity Line\"; OutstandingQtyBase: Decimal; var RemQtyToPickBase: Decimal)\n var\n ATOSalesLine: Record \"Sales Line\";\n@@ -2851,4 +2894,3 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n begin\n end;\n }\n-\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137055'\nCodeunit 137055 SCM Warehouse Pick\n Testfunction InventoryPickRoundingCausesResidualQuantity Failure (21.75 seconds)\n Error:\n Assert.AreEqual failed. Expected:<248> (Decimal). Actual:<247.99999> (Decimal). Sales line should be fully shipped with no residual quantity.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"SCM Warehouse Pick\"(CodeUnit 137055).InventoryPickRoundingCausesResidualQuantity line 86 - Tests-SCM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"instance_id": "microsoftInternal__NAV-223202", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al\nindex 84769ae0..7c0aabe8 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al\n@@ -253,11 +253,19 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ProdOrderRtngLine: Record \"Prod. Order Routing Line\";\n ExpOperCost: Decimal;\n ExpMfgDirCost: Decimal;\n+ InitialExpMatCost: Decimal;\n+ InitialExpCapDirCost: Decimal;\n+ InitialExpSubDirCost: Decimal;\n+ InitialExpCapOvhdCost: Decimal;\n ExpCapDirCostRtng: Decimal;\n ExpSubDirCostRtng: Decimal;\n ExpCapOvhdCostRtng: Decimal;\n- ExpOvhdCost: Decimal;\n begin\n+ InitialExpMatCost := ExpMatCost;\n+ InitialExpCapDirCost := ExpCapDirCost;\n+ InitialExpSubDirCost := ExpSubDirCost;\n+ InitialExpCapOvhdCost := ExpCapOvhdCost;\n+\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\");\n ProdOrderComp.SetRange(Status, ProdOrderLine.Status);\n ProdOrderComp.SetRange(\"Prod. Order No.\", ProdOrderLine.\"Prod. Order No.\");\n@@ -304,9 +312,12 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ExpCapDirCost := ExpCapDirCost + Round(ExpCapDirCostRtng * ShareOfTotalCapCost);\n ExpSubDirCost := ExpSubDirCost + Round(ExpSubDirCostRtng * ShareOfTotalCapCost);\n ExpCapOvhdCost := ExpCapOvhdCost + Round(ExpCapOvhdCostRtng * ShareOfTotalCapCost);\n- ExpMfgDirCost := ExpMatCost + ExpCapDirCost + ExpSubDirCost + ExpCapOvhdCost;\n- ExpOvhdCost := ExpMfgOvhdCost + ProdOrderLine.\"Overhead Rate\" * ProdOrderLine.\"Quantity (Base)\";\n- ExpMfgOvhdCost := ExpOvhdCost +\n+ ExpMfgDirCost :=\n+ (ExpMatCost - InitialExpMatCost) +\n+ (ExpCapDirCost - InitialExpCapDirCost) +\n+ (ExpSubDirCost - InitialExpSubDirCost) +\n+ (ExpCapOvhdCost - InitialExpCapOvhdCost);\n+ ExpMfgOvhdCost := ExpMfgOvhdCost + ProdOrderLine.\"Overhead Rate\" * ProdOrderLine.\"Quantity (Base)\" +\n Round(CostCalculationMgt.CalcOvhdCost(ExpMfgDirCost, ProdOrderLine.\"Indirect Cost %\", 0, 0));\n \n OnAfterCalcProdOrderLineExpCost(ProdOrderLine, ShareOfTotalCapCost, ExpMatCost, ExpCapDirCost, ExpSubDirCost, ExpCapOvhdCost, ExpMfgOvhdCost);\n@@ -323,11 +334,21 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ProdOrderRtngLine: Record \"Prod. Order Routing Line\";\n ExpOperCost: Decimal;\n ExpMfgDirCost: Decimal;\n+ InitialExpMatCost: Decimal;\n+ InitialExpNonInvMatCost: Decimal;\n+ InitialExpCapDirCost: Decimal;\n+ InitialExpSubDirCost: Decimal;\n+ InitialExpCapOvhdCost: Decimal;\n ExpCapDirCostRtng: Decimal;\n ExpSubDirCostRtng: Decimal;\n ExpCapOvhdCostRtng: Decimal;\n- ExpOvhdCost: Decimal;\n begin\n+ InitialExpMatCost := ExpMatCost;\n+ InitialExpNonInvMatCost := ExpNonInvMatCost;\n+ InitialExpCapDirCost := ExpCapDirCost;\n+ InitialExpSubDirCost := ExpSubDirCost;\n+ InitialExpCapOvhdCost := ExpCapOvhdCost;\n+\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\");\n ProdOrderComp.SetRange(Status, ProdOrderLine.Status);\n ProdOrderComp.SetRange(\"Prod. Order No.\", ProdOrderLine.\"Prod. Order No.\");\n@@ -366,9 +387,13 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ExpCapDirCost := ExpCapDirCost + Round(ExpCapDirCostRtng * ShareOfTotalCapCost);\n ExpSubDirCost := ExpSubDirCost + Round(ExpSubDirCostRtng * ShareOfTotalCapCost);\n ExpCapOvhdCost := ExpCapOvhdCost + Round(ExpCapOvhdCostRtng * ShareOfTotalCapCost);\n- ExpMfgDirCost := ExpMatCost + ExpNonInvMatCost + ExpCapDirCost + ExpSubDirCost + ExpCapOvhdCost;\n- ExpOvhdCost := ExpMfgOvhdCost + ProdOrderLine.\"Overhead Rate\" * ProdOrderLine.\"Quantity (Base)\";\n- ExpMfgOvhdCost := ExpOvhdCost +\n+ ExpMfgDirCost :=\n+ (ExpMatCost - InitialExpMatCost) +\n+ (ExpNonInvMatCost - InitialExpNonInvMatCost) +\n+ (ExpCapDirCost - InitialExpCapDirCost) +\n+ (ExpSubDirCost - InitialExpSubDirCost) +\n+ (ExpCapOvhdCost - InitialExpCapOvhdCost);\n+ ExpMfgOvhdCost := ExpMfgOvhdCost + ProdOrderLine.\"Overhead Rate\" * ProdOrderLine.\"Quantity (Base)\" +\n Round(CostCalculationMgt.CalcOvhdCost(ExpMfgDirCost, ProdOrderLine.\"Indirect Cost %\", 0, 0));\n end;\n \n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-226448", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/VATAmountLine.Table.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/VATAmountLine.Table.al\nindex 5706c4b1..0a7af0e1 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/VATAmountLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/VATAmountLine.Table.al\n@@ -687,6 +687,7 @@ table 290 \"VAT Amount Line\"\n OnUpdateLinesOnAfterCalcVATAmount(Rec, PrevVATAmountLine, Currency, VATBaseDiscountPerc, PricesIncludingVAT);\n \"Amount Including VAT\" := \"VAT Base\" + \"VAT Amount\";\n OnUpdateLinesOnAfterCalcAmountIncludingVATNormalVAT(Rec, PrevVATAmountLine, Currency, VATBaseDiscountPerc, PricesIncludingVAT);\n+ NonDeductibleVAT.UpdateNonDeductibleAmountsWithDiffInVATAmountLine(Rec, Currency);\n if Positive then\n PrevVATAmountLine.Init()\n else begin\n@@ -1122,4 +1123,3 @@ table 290 \"VAT Amount Line\"\n begin\n end;\n }\n-\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-227153", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\nindex e033f91e..ecb2f315 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\n@@ -472,130 +472,82 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n \n local procedure CalcCustAccAmount(PostingGr: Code[20]): Decimal\n var\n- Cust: Record Customer;\n DtldCustLedgEntry: Record \"Detailed Cust. Ledg. Entry\";\n CustAccAmount: Decimal;\n begin\n- Cust.SetCurrentKey(\"Customer Posting Group\");\n- Cust.SetRange(\"Customer Posting Group\", PostingGr);\n-\n- if Cust.Find('-') then\n- repeat\n- DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\");\n- DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n- DtldCustLedgEntry.CalcSums(\"Amount (LCY)\");\n- CustAccAmount := CustAccAmount + DtldCustLedgEntry.\"Amount (LCY)\";\n- until Cust.Next() = 0;\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n+ DtldCustLedgEntry.CalcSums(\"Amount (LCY)\");\n+ CustAccAmount := DtldCustLedgEntry.\"Amount (LCY)\";\n \n exit(CustAccAmount);\n end;\n \n local procedure CalcCustCreditAmount(PostingGr: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n var\n- Cust: Record Customer;\n DtldCustLedgEntry: Record \"Detailed Cust. Ledg. Entry\";\n CustCreditAmount: Decimal;\n begin\n- Cust.SetCurrentKey(\"Customer Posting Group\");\n- Cust.SetRange(\"Customer Posting Group\", PostingGr);\n-\n- if Cust.Find('-') then\n- repeat\n- DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\", \"Entry Type\");\n- DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n- DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n- DtldCustLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n- CustCreditAmount := CustCreditAmount + DtldCustLedgEntry.\"Credit Amount (LCY)\";\n- until Cust.Next() = 0;\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n+ DtldCustLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n+ CustCreditAmount := DtldCustLedgEntry.\"Credit Amount (LCY)\";\n \n exit(CustCreditAmount);\n end;\n \n local procedure CalcCustDebitAmount(PostingGr: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n var\n- Cust: Record Customer;\n DtldCustLedgEntry: Record \"Detailed Cust. Ledg. Entry\";\n CustDebitAmount: Decimal;\n begin\n- Cust.SetCurrentKey(\"Customer Posting Group\");\n- Cust.SetRange(\"Customer Posting Group\", PostingGr);\n-\n- if Cust.Find('-') then\n- repeat\n- DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\", \"Entry Type\");\n- DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n- DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n- DtldCustLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n- CustDebitAmount := CustDebitAmount + DtldCustLedgEntry.\"Debit Amount (LCY)\";\n- until Cust.Next() = 0;\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n+ DtldCustLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n+ CustDebitAmount := DtldCustLedgEntry.\"Debit Amount (LCY)\";\n \n exit(-CustDebitAmount);\n end;\n \n local procedure CalcVendAccAmount(PostingGr: Code[20]): Decimal\n var\n- Vend: Record Vendor;\n DtldVendLedgEntry: Record \"Detailed Vendor Ledg. Entry\";\n VendAccAmount: Decimal;\n begin\n- Vend.SetCurrentKey(\"Vendor Posting Group\");\n- Vend.SetRange(\"Vendor Posting Group\", PostingGr);\n-\n- if Vend.Find('-') then\n- repeat\n- DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\");\n- DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n- DtldVendLedgEntry.CalcSums(\"Amount (LCY)\");\n- VendAccAmount := VendAccAmount + DtldVendLedgEntry.\"Amount (LCY)\";\n- until Vend.Next() = 0;\n+ DtldVendLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n+ DtldVendLedgEntry.CalcSums(\"Amount (LCY)\");\n+ VendAccAmount := DtldVendLedgEntry.\"Amount (LCY)\";\n \n exit(VendAccAmount);\n end;\n \n local procedure CalcVendCreditAmount(PostingGr: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n var\n- Vend: Record Vendor;\n DtldVendLedgEntry: Record \"Detailed Vendor Ledg. Entry\";\n VendCreditAmount: Decimal;\n begin\n- Vend.SetCurrentKey(\"Vendor Posting Group\");\n- Vend.SetRange(\"Vendor Posting Group\", PostingGr);\n-\n- if Vend.Find('-') then\n- repeat\n- DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\", \"Entry Type\");\n- DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n- DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n- DtldVendLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n- VendCreditAmount := VendCreditAmount + DtldVendLedgEntry.\"Credit Amount (LCY)\";\n- until Vend.Next() = 0;\n+ DtldVendLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n+ DtldVendLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n+ VendCreditAmount := DtldVendLedgEntry.\"Credit Amount (LCY)\";\n \n exit(VendCreditAmount);\n end;\n \n local procedure CalcVendDebitAmount(PostingGr: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n var\n- Vend: Record Vendor;\n DtldVendLedgEntry: Record \"Detailed Vendor Ledg. Entry\";\n VendDebitAmount: Decimal;\n begin\n- Vend.SetCurrentKey(\"Vendor Posting Group\");\n- Vend.SetRange(\"Vendor Posting Group\", PostingGr);\n-\n- if Vend.Find('-') then\n- repeat\n- DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\", \"Entry Type\");\n- DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n- DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n- DtldVendLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n- VendDebitAmount := VendDebitAmount + DtldVendLedgEntry.\"Debit Amount (LCY)\";\n- until Vend.Next() = 0;\n+ DtldVendLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n+ DtldVendLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n+ VendDebitAmount := DtldVendLedgEntry.\"Debit Amount (LCY)\";\n \n exit(-VendDebitAmount);\n end;\n@@ -640,4 +592,3 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n exit(ObjTransl.TranslateObject(ObjTransl.\"Object Type\"::Table, ReconCustVendBuffer.\"Table ID\"));\n end;\n }\n-\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-227240", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\nindex 9ff59101..fac53166 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n@@ -409,7 +409,7 @@ codeunit 393 \"Reminder-Issue\"\n if IsHandled then\n exit;\n \n- if NewDueDate < ReminderEntry2.\"Due Date\" then\n+ if ReminderEntry2.\"Due Date\" = NewDueDate then\n exit;\n \n ReminderEntry2.Validate(\"Due Date\", NewDueDate);\n@@ -832,4 +832,3 @@ codeunit 393 \"Reminder-Issue\"\n begin\n end;\n }\n-\n", "error_message": null} +{"instance_id": "microsoft__BCApps-5633", "project": "Shopify", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al b/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al\nindex 1f790f9..e6b7c2f 100644\n--- a/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al\n@@ -17,13 +17,15 @@ codeunit 30190 \"Shpfy Export Shipments\"\n Permissions =\n tabledata \"Sales Shipment Header\" = rm,\n tabledata \"Sales Shipment Line\" = r,\n- tabledata \"Shipping Agent\" = r;\n+ tabledata \"Shipping Agent\" = r,\n+ tabledata \"Shpfy Shop Location\" = r;\n \n var\n ShopifyCommunicationMgt: Codeunit \"Shpfy Communication Mgt.\";\n ShippingEvents: Codeunit \"Shpfy Shipping Events\";\n NoCorrespondingFulfillmentLinesLbl: Label 'No corresponding fulfillment lines found.';\n NoFulfillmentCreatedInShopifyLbl: Label 'Fulfillment was not created in Shopify.';\n+ ThirdPartyFulfillmentServiceLocationSkippedLbl: Label 'Shipment was skipped because it is assigned to a third-party fulfillment service location.';\n \n /// \n /// Create Shopify Fulfillment.\n@@ -58,6 +60,14 @@ codeunit 30190 \"Shpfy Export Shipments\"\n if ShopifyOrderHeader.Get(SalesShipmentHeader.\"Shpfy Order Id\") then begin\n ShopifyCommunicationMgt.SetShop(ShopifyOrderHeader.\"Shop Code\");\n Shop.Get(ShopifyOrderHeader.\"Shop Code\");\n+ if IsThirdPartyFulfillmentServiceLocation(Shop.Code, LocationId) then begin\n+ SkippedRecord.LogSkippedRecord(SalesShipmentHeader.\"Shpfy Order Id\", SalesShipmentHeader.RecordId, ThirdPartyFulfillmentServiceLocationSkippedLbl, Shop);\n+ if SalesShipmentHeader.\"Shpfy Fulfillment Id\" = 0 then begin\n+ SalesShipmentHeader.\"Shpfy Fulfillment Id\" := -2;\n+ SalesShipmentHeader.Modify(true);\n+ end;\n+ exit;\n+ end;\n FulfillmentOrderRequests := CreateFulfillmentOrderRequest(SalesShipmentHeader, Shop, LocationId, DeliveryMethodType, AssignedFulfillmentOrderIds);\n if FulfillmentOrderRequests.Count <> 0 then\n foreach FulfillmentOrderRequest in FulfillmentOrderRequests do begin\n@@ -80,6 +90,26 @@ codeunit 30190 \"Shpfy Export Shipments\"\n end;\n end;\n \n+ local procedure IsThirdPartyFulfillmentServiceLocation(ShopCode: Code[20]; LocationId: BigInteger): Boolean\n+ var\n+ ShopLocation: Record \"Shpfy Shop Location\";\n+ SyncShopLocations: Codeunit \"Shpfy Sync Shop Locations\";\n+ begin\n+ if LocationId = 0 then\n+ exit(false);\n+\n+ if not ShopLocation.Get(ShopCode, LocationId) then\n+ exit(false);\n+\n+ if not ShopLocation.\"Is Fulfillment Service\" then\n+ exit(false);\n+\n+ if ShopLocation.\"Fulfillment Srv. Callback Url\" = '' then\n+ exit(true);\n+\n+ exit(UpperCase(ShopLocation.\"Fulfillment Srv. Callback Url\") <> UpperCase(SyncShopLocations.GetFulfillmentServiceCallbackUrl()));\n+ end;\n+\n internal procedure CreateFulfillmentOrderRequest(SalesShipmentHeader: Record \"Sales Shipment Header\"; Shop: Record \"Shpfy Shop\"; LocationId: BigInteger; DeliveryMethodType: Enum \"Shpfy Delivery Method Type\"; var AssignedFulfillmentOrderIds: Dictionary of [BigInteger, Code[20]]) Requests: List of [Text];\n var\n SalesShipmentLine: Record \"Sales Shipment Line\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139606'\nCodeunit 139606 Shpfy Shipping Test\n Testfunction UnitTestExportShipmentThirdParty Failure (6.183 seconds)\n Error:\n Assert.AreEqual failed. Expected:<0> (Integer). Actual:<1> (Integer). FulfillmentRequest count check.\n Call Stack:\n \"Library Assert\"(CodeUnit 130002).AreEqual line 3 - Library Assert by Microsoft version 27.2.0.0\n \"Shpfy Shipping Test\"(CodeUnit 139606).UnitTestExportShipmentThirdParty line 26 - Shopify Connector Test by Microsoft version 27.2.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.2.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.2.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.2.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.2.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.2.0.0"} +{"instance_id": "microsoft__BCApps-4822", "project": "Shopify", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\nindex 2d20144..2f94630 100644\n--- a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\n@@ -555,6 +555,7 @@ codeunit 30286 \"Shpfy Company API\"\n local procedure CreateCustomerLocation(JCompanyLocation: JsonObject; ShopifyCompany: Record \"Shpfy Company\"; CustomerId: Guid): BigInteger\n var\n CompanyLocation: Record \"Shpfy Company Location\";\n+ Customer: Record Customer;\n CompanyLocationId: BigInteger;\n PhoneNo: Text;\n begin\n@@ -581,6 +582,13 @@ codeunit 30286 \"Shpfy Company API\"\n CompanyLocation.Recipient := CopyStr(JsonHelper.GetValueAsText(JCompanyLocation, 'billingAddress.recipient', MaxStrLen(CompanyLocation.Recipient)), 1, MaxStrLen(CompanyLocation.Recipient));\n CompanyLocation.\"Shpfy Payment Terms Id\" := CommunicationMgt.GetIdOfGId(JsonHelper.GetValueAsText(JCompanyLocation, 'buyerExperienceConfiguration.paymentTermsTemplate.id'));\n CompanyLocation.\"Customer Id\" := CustomerId;\n+ if Customer.GetBySystemId(CustomerId) then begin\n+ CompanyLocation.\"Sell-to Customer No.\" := Customer.\"No.\";\n+ if Customer.\"Bill-to Customer No.\" <> '' then\n+ CompanyLocation.\"Bill-to Customer No.\" := Customer.\"Bill-to Customer No.\"\n+ else\n+ CompanyLocation.\"Bill-to Customer No.\" := Customer.\"No.\";\n+ end;\n CompanyLocation.Modify(true);\n exit(CompanyLocationId);\n end;\n", "error_message": null} +{"instance_id": "microsoft__BCApps-4699", "project": "Shopify", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": false, "output": "diff --git a/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al b/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al\nindex 4e6ffd2..48176fa 100644\n--- a/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al\n@@ -258,10 +258,10 @@ codeunit 30171 \"Shpfy Create Item\"\n CreateItemUnitOfMeasure(ShopifyVariant, Item);\n \n if ShopifyVariant.\"Unit Cost\" <> 0 then\n- Item.Validate(\"Unit Cost\", ShopifyVariant.\"Unit Cost\");\n+ Item.Validate(\"Unit Cost\", ConvertAmountToLCY(ShopifyVariant.\"Unit Cost\"));\n \n if ShopifyVariant.Price <> 0 then\n- Item.Validate(\"Unit Price\", ShopifyVariant.Price);\n+ Item.Validate(\"Unit Price\", ConvertAmountToLCY(ShopifyVariant.Price));\n \n if ShopifyProduct.\"Product Type\" <> '' then begin\n ItemCategory.SetFilter(Description, FilterMgt.CleanFilterValue(ShopifyProduct.\"Product Type\", MaxStrLen(ItemCategory.Description)));\n@@ -288,6 +288,20 @@ codeunit 30171 \"Shpfy Create Item\"\n CreateReferences(ShopifyProduct, ShopifyVariant, Item, ItemVariant);\n end;\n \n+ local procedure ConvertAmountToLCY(Amount: Decimal): Decimal\n+ var\n+ CurrExchRate: Record \"Currency Exchange Rate\";\n+ begin\n+ if (Amount = 0) or (Shop.\"Currency Code\" = '') then\n+ exit(Amount);\n+\n+ exit(CurrExchRate.ExchangeAmtFCYToLCY(\n+ WorkDate(),\n+ Shop.\"Currency Code\",\n+ Amount,\n+ CurrExchRate.ExchangeRate(WorkDate(), Shop.\"Currency Code\")));\n+ end;\n+\n local procedure CreateItemUnitOfMeasure(ShopifyVariant: Record \"Shpfy Variant\"; Item: Record Item)\n var\n ItemUnitofMeasure: Record \"Item Unit of Measure\";\n", "error_message": "Build or publish failed for src\\Apps\\W1\\Shopify\\App:\nC:\\Source\\src\\Apps\\W1\\Shopify\\App\\src\\Products\\Codeunits\\ShpfyCreateItem.Codeunit.al(293,23): error AL0185: Table 'Currency Exchange Rate' is missing"} +{"instance_id": "microsoftInternal__NAV-223790", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al\nindex b86a1c27..cddbae2c 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al\n@@ -422,6 +422,31 @@ codeunit 99000795 \"Mfg. Item Integration\"\n Rec.TransferManufCostsFromItem(Item);\n end;\n \n+ [EventSubscriber(ObjectType::Table, Database::\"Stockkeeping Unit\", 'OnAfterValidateEvent', 'Production BOM No.', false, false)]\n+ local procedure OnAfterValidateEventProductionBOMNo(var Rec: Record \"Stockkeeping Unit\"; var xRec: Record \"Stockkeeping Unit\")\n+ var\n+ Item: Record Item;\n+ ManufacturingSetup: Record \"Manufacturing Setup\";\n+ begin\n+ if Rec.IsTemporary() then\n+ exit;\n+\n+ if Rec.\"Production BOM No.\" = xRec.\"Production BOM No.\" then\n+ exit;\n+ if Rec.\"Production BOM No.\" = '' then\n+ exit;\n+\n+ if not ManufacturingSetup.Get() then\n+ exit;\n+ if not ManufacturingSetup.\"Dynamic Low-Level Code\" then\n+ exit;\n+\n+ if not Item.Get(Rec.\"Item No.\") then\n+ exit;\n+\n+ UpdateLowLevelCodeFromSKUProductionBOM(Item, Rec.\"Production BOM No.\");\n+ end;\n+\n // Catalog Item Management\n \n [EventSubscriber(ObjectType::Codeunit, Codeunit::\"Catalog Item Management\", 'OnCreateNewItemOnBeforeItemInsert', '', false, false)]\n@@ -467,4 +492,19 @@ codeunit 99000795 \"Mfg. Item Integration\"\n if ManufacturingSetup.Get() then\n ItemTempl.\"Flushing Method\" := ManufacturingSetup.\"Default Flushing Method\";\n end;\n+\n+ local procedure UpdateLowLevelCodeFromSKUProductionBOM(var Item: Record Item; ProductionBOMNo: Code[20])\n+ var\n+ CalculateLowLevelCode: Codeunit \"Calculate Low-Level Code\";\n+ ProductionBOMHeader: Record \"Production BOM Header\";\n+ begin\n+ Codeunit.Run(Codeunit::\"Calculate Low-Level Code\", Item);\n+\n+ if not ProductionBOMHeader.Get(ProductionBOMNo) then\n+ exit;\n+ if ProductionBOMHeader.Status <> ProductionBOMHeader.Status::Certified then\n+ exit;\n+\n+ CalculateLowLevelCode.SetRecursiveLevelsOnBOM(ProductionBOMHeader, Item.\"Low-Level Code\" + 1, false);\n+ end;\n }\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-223819", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al b/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\nindex 7fc2d985..a49f2152 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\n@@ -549,8 +549,11 @@ table 83 \"Item Journal Line\"\n \n trigger OnValidate()\n begin\n- if (\"Order Type\" <> GetOrderTypeProduction()) or (\"Order No.\" = '') then\n+ if (\"Order Type\" <> GetOrderTypeProduction()) or (\"Order No.\" = '') then begin\n CreateDimFromDefaultDim(rec.FieldNo(\"Salespers./Purch. Code\"));\n+ if \"Entry Type\" = \"Entry Type\"::Transfer then\n+ CreateNewDimFromDefaultDim(Rec.FieldNo(\"Salespers./Purch. Code\"));\n+ end;\n end;\n }\n field(26; \"Source Code\"; Code[10])\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134474'\nCodeunit 134474 ERM Dimension Locations\n Testfunction OverrideDimWithNewLocationsAndSalespersonOnItemJournalLine Failure (5.627 seconds)\n Error:\n New Department Code must be equal to 'GU00000001' in Item Journal Line: Journal Template Name=GU00000008, Journal Batch Name=GU00000009, Line No.=10000. Current value is 'GU00000000'.\n Call Stack:\n \"ERM Dimension Locations\"(CodeUnit 134474).OverrideDimWithNewLocationsAndSalespersonOnItemJournalLine line 48 - Tests-Dimension by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"instance_id": "microsoftInternal__NAV-222092", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\nindex 825eb23c..fc13cf95 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n@@ -270,11 +270,15 @@ codeunit 393 \"Reminder-Issue\"\n begin\n GenJnlLine2.\"Shortcut Dimension 1 Code\" := GlobalReminderHeader.\"Shortcut Dimension 1 Code\";\n GenJnlLine2.\"Shortcut Dimension 2 Code\" := GlobalReminderHeader.\"Shortcut Dimension 2 Code\";\n- DimSetIDArr[1] := GlobalReminderHeader.\"Dimension Set ID\";\n- DimSetIDArr[2] := TempGenJnlLine.\"Dimension Set ID\";\n- GenJnlLine2.\"Dimension Set ID\" :=\n- DimMgt.GetCombinedDimensionSetID(\n- DimSetIDArr, GenJnlLine2.\"Shortcut Dimension 1 Code\", GenJnlLine2.\"Shortcut Dimension 2 Code\");\n+ if TempGenJnlLine.\"Account Type\" = TempGenJnlLine.\"Account Type\"::Customer then\n+ GenJnlLine2.\"Dimension Set ID\" := GlobalReminderHeader.\"Dimension Set ID\"\n+ else begin\n+ DimSetIDArr[1] := GlobalReminderHeader.\"Dimension Set ID\";\n+ DimSetIDArr[2] := TempGenJnlLine.\"Dimension Set ID\";\n+ GenJnlLine2.\"Dimension Set ID\" :=\n+ DimMgt.GetCombinedDimensionSetID(\n+ DimSetIDArr, GenJnlLine2.\"Shortcut Dimension 1 Code\", GenJnlLine2.\"Shortcut Dimension 2 Code\");\n+ end;\n \n OnAfterSetGenJnlLine2Dim(GlobalReminderHeader, GenJnlLine2);\n end;\n@@ -832,4 +836,3 @@ codeunit 393 \"Reminder-Issue\"\n begin\n end;\n }\n-\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134904'\nCodeunit 134904 ERM Reminder For Additinal Fee\n Testfunction DimensionsInGeneralLedgerEntriesWhenDimensionsModifiedInReminderBeforeIssuing Failure (16.78 seconds)\n Error:\n Assert.AreEqual failed. Expected: (Text). Actual: (Text). Dimension Value code should be GU000000001.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"ERM Reminder For Additinal Fee\"(CodeUnit 134904).DimensionsInGeneralLedgerEntriesWhenDimensionsModifiedInReminderBeforeIssuing line 76 - Tests-ERM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"instance_id": "microsoftInternal__NAV-218062", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderWarehouseMgt.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderWarehouseMgt.Codeunit.al\nindex 519c89f5..67d06aa8 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderWarehouseMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderWarehouseMgt.Codeunit.al\n@@ -1233,6 +1233,79 @@ codeunit 5996 \"Prod. Order Warehouse Mgt.\"\n end;\n end;\n \n+ [EventSubscriber(ObjectType::Table, Database::\"Whse. Worksheet Line\", 'OnBeforeCalcAvailableQtyBase', '', false, false)]\n+ local procedure OnBeforeCalcAvailableQtyBase(var WhseWorksheetLine: Record \"Whse. Worksheet Line\"; var AvailableQty: Decimal; var IsHandled: Boolean)\n+ var\n+ WarehouseAvailabilityMgt: Codeunit \"Warehouse Availability Mgt.\";\n+ Location: Record Location;\n+ begin\n+ if WhseWorksheetLine.\"Source Type\" <> Database::\"Prod. Order Component\" then\n+ exit;\n+ if not Location.Get(WhseWorksheetLine.\"Location Code\") then\n+ exit;\n+ if not Location.\"Bin Mandatory\" then\n+ exit;\n+ if Location.\"Directed Put-away and Pick\" then\n+ exit;\n+\n+ AvailableQty :=\n+ WarehouseAvailabilityMgt.CalcQtyAvailToTakeOnWhseWorksheetLine(WhseWorksheetLine) -\n+ WarehouseAvailabilityMgt.CalcQtyAssgndOnWksh(WhseWorksheetLine, true, true) +\n+ WhseWorksheetLine.AssignedQtyOnReservedLines() +\n+ CalcAssignedQtyOnReservedNotOnILELines(WhseWorksheetLine);\n+ IsHandled := true;\n+ end;\n+\n+ local procedure CalcAssignedQtyOnReservedNotOnILELines(WhseWorksheetLine: Record \"Whse. Worksheet Line\"): Decimal\n+ var\n+ RelatedWhseWorksheetLine: Record \"Whse. Worksheet Line\";\n+ AssignedReservedQtyBase: Decimal;\n+ ReservedNotOnILEQtyBase: Decimal;\n+ begin\n+ AssignedReservedQtyBase := CalcReservedQtyNotOnILEForLine(WhseWorksheetLine);\n+\n+ RelatedWhseWorksheetLine.SetCurrentKey(\"Item No.\", \"Location Code\", \"Worksheet Template Name\", \"Variant Code\");\n+ RelatedWhseWorksheetLine.SetRange(\"Item No.\", WhseWorksheetLine.\"Item No.\");\n+ RelatedWhseWorksheetLine.SetRange(\"Location Code\", WhseWorksheetLine.\"Location Code\");\n+ RelatedWhseWorksheetLine.SetRange(\"Worksheet Template Name\", WhseWorksheetLine.\"Worksheet Template Name\");\n+ RelatedWhseWorksheetLine.SetRange(\"Variant Code\", WhseWorksheetLine.\"Variant Code\");\n+ if RelatedWhseWorksheetLine.FindSet() then\n+ repeat\n+ if RelatedWhseWorksheetLine.RecordId <> WhseWorksheetLine.RecordId then begin\n+ ReservedNotOnILEQtyBase := CalcReservedQtyNotOnILEForLine(RelatedWhseWorksheetLine);\n+ if ReservedNotOnILEQtyBase > 0 then\n+ if ReservedNotOnILEQtyBase <= RelatedWhseWorksheetLine.\"Qty. to Handle (Base)\" then\n+ AssignedReservedQtyBase += ReservedNotOnILEQtyBase\n+ else\n+ AssignedReservedQtyBase += RelatedWhseWorksheetLine.\"Qty. to Handle (Base)\";\n+ end;\n+ until RelatedWhseWorksheetLine.Next() = 0;\n+\n+ exit(AssignedReservedQtyBase);\n+ end;\n+\n+ local procedure CalcReservedQtyNotOnILEForLine(WhseWorksheetLine: Record \"Whse. Worksheet Line\"): Decimal\n+ var\n+ ReservationEntry: Record \"Reservation Entry\";\n+ CreatePick: Codeunit \"Create Pick\";\n+ ReservedNotOnILEQtyBase: Decimal;\n+ begin\n+ ReservationEntry.SetLoadFields(\"Entry No.\", Positive);\n+ CreatePick.SetFiltersOnReservEntry(\n+ ReservationEntry,\n+ WhseWorksheetLine.\"Source Type\",\n+ WhseWorksheetLine.\"Source Subtype\",\n+ WhseWorksheetLine.\"Source No.\",\n+ WhseWorksheetLine.\"Source Line No.\",\n+ WhseWorksheetLine.\"Source Subline No.\");\n+ if ReservationEntry.FindSet() then\n+ repeat\n+ ReservedNotOnILEQtyBase += CreatePick.CalcQtyResvdNotOnILE(ReservationEntry.\"Entry No.\", ReservationEntry.Positive);\n+ until ReservationEntry.Next() = 0;\n+\n+ exit(Abs(ReservedNotOnILEQtyBase));\n+ end;\n+\n [EventSubscriber(ObjectType::Codeunit, Codeunit::\"Warehouse Availability Mgt.\", 'OnCalcLineReservQtyOnPicksShipsOnAfterCalcPickedNotYetShippedQty', '', false, false)]\n local procedure OnCalcLineReservQtyOnPicksShipsOnAfterCalcPickedNotYetShippedQty(SourceType: Integer; SourceSubType: Option; SourceID: Code[20]; SourceProdOrderLine: Integer; SourceRefNo: Integer; var PickedNotYetShippedQty: Decimal)\n begin\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137294'\nCodeunit 137294 SCM Inventory Miscellaneous II\n Testfunction NoErrorOfAvailabilityWhenCreatePickFromPickWorkSheetForProductionOrder Failure (13.493 seconds)\n Error:\n You can create a Pick only for the available quantity in Whse. Worksheet Line Worksheet Template Name = PICK,Name = DEFAULT,Location Code = GU00000000,Line No. = 20000.\n Call Stack:\n \"Create Pick\"(Report 5754).CreateTempLine line 23 - Base Application by Microsoft version 27.0.0.0\n \"Create Pick\"(Report 5754).SetPerDateFilters line 8 - Base Application by Microsoft version 27.0.0.0\n \"Create Pick\"(Report 5754).SetPickFilters line 21 - Base Application by Microsoft version 27.0.0.0\n \"Create Pick\"(Report 5754).\"Integer - OnAfterGetRecord\"(Trigger) line 31 - Base Application by Microsoft version 27.0.0.0\n \"Whse. Create Pick\"(CodeUnit 5778).OnRun(Trigger) line 11 - Base Application by Microsoft version 27.0.0.0\n \"Pick Worksheet\"(Page 7345).\"CreatePick - OnAction\"(Trigger) line 2 - Base Application by Microsoft version 27.0.0.0\n \"SCM Inventory Miscellaneous II\"(CodeUnit 137294).GetWarehouseDocumentFromPickWorksheet line 14 - Tests-SCM by Microsoft version 27.0.0.0\n \"SCM Inventory Miscellaneous II\"(CodeUnit 137294).NoErrorOfAvailabilityWhenCreatePickFromPickWorkSheetForProductionOrder line 71 - Tests-SCM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"instance_id": "microsoftInternal__NAV-218253", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesLineReserve.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Document/SalesLineReserve.Codeunit.al\nindex 15a14be1..1d28846d 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesLineReserve.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesLineReserve.Codeunit.al\n@@ -1301,7 +1301,11 @@ codeunit 99000832 \"Sales Line-Reserve\"\n var\n Item: Record Item;\n begin\n- if (NewSalesLine.Type <> NewSalesLine.Type::Item) or (NewSalesLine.Quantity = 0) or (NewSalesLine.Reserve <> NewSalesLine.Reserve::Always) then\n+ if (NewSalesLine.Type <> NewSalesLine.Type::Item) or\n+ (NewSalesLine.\"Document Type\" <> NewSalesLine.\"Document Type\"::Order) or\n+ (NewSalesLine.Quantity = 0) or\n+ (NewSalesLine.Reserve <> NewSalesLine.Reserve::Always)\n+ then\n exit(false);\n \n Item.SetLoadFields(\"Costing Method\");\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-218995", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Posting/JobPostLine.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Posting/JobPostLine.Codeunit.al\nindex a913f1c1..bd54e22b 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Posting/JobPostLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Posting/JobPostLine.Codeunit.al\n@@ -478,6 +478,9 @@ codeunit 1001 \"Job Post-Line\"\n if IsHandled then\n exit;\n \n+ if PurchaseLine.IsNonInventoriableItem() then\n+ exit;\n+\n Job.Get(PurchaseLine.\"Job No.\");\n if Job.GetQuantityAvailable(PurchaseLine.\"No.\", PurchaseLine.\"Location Code\", PurchaseLine.\"Variant Code\", 0, 2) <\n -PurchaseLine.\"Return Qty. to Ship (Base)\"\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-218786", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al\nindex 0b806569..f25085d0 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al\n@@ -3112,6 +3112,9 @@ table 5767 \"Warehouse Activity Line\"\n if FromWhseActivityLine.\"Activity Type\" <> FromWhseActivityLine.\"Activity Type\"::Pick then\n exit;\n \n+ if FromWhseActivityLine.\"Action Type\" <> FromWhseActivityLine.\"Action Type\"::Take then\n+ exit;\n+\n if (xWhseActivityLine.Quantity = 0) and (FromWhseActivityLine.Quantity <> 0) then\n exit;\n \n@@ -3125,7 +3128,7 @@ table 5767 \"Warehouse Activity Line\"\n Item.Get(FromWhseActivityLine.\"Item No.\");\n Item.TestField(\"Allow Whse. Overpick\");\n \n- WhseActivityLine.SetLoadFields(\"Activity Type\", \"No.\", \"Line No.\", \"Item No.\", \"Variant Code\", \"Location Code\", \"Action Type\", Quantity, \"Lot No.\", \"Serial No.\", \"Source No.\", \"Source Line No.\", \"Source Document\");\n+ WhseActivityLine.SetLoadFields(\"Activity Type\", \"No.\", \"Line No.\", \"Item No.\", \"Variant Code\", \"Location Code\", \"Action Type\", Quantity, \"Lot No.\", \"Serial No.\", \"Source No.\", \"Source Line No.\", \"Source Subline No.\", \"Source Document\", \"Breakbulk No.\");\n WhseActivityLine.SetRange(\"Activity Type\", FromWhseActivityLine.\"Activity Type\");\n WhseActivityLine.SetRange(\"No.\", FromWhseActivityLine.\"No.\");\n WhseActivityLine.SetFilter(\"Line No.\", '<>%1', FromWhseActivityLine.\"Line No.\");\n@@ -3139,8 +3142,12 @@ table 5767 \"Warehouse Activity Line\"\n WhseActivityLine.SetRange(\"Source Document\", FromWhseActivityLine.\"Source Document\");\n WhseActivityLine.SetRange(\"Source No.\", FromWhseActivityLine.\"Source No.\");\n WhseActivityLine.SetRange(\"Source Line No.\", FromWhseActivityLine.\"Source Line No.\");\n+ WhseActivityLine.SetRange(\"Source Subline No.\", FromWhseActivityLine.\"Source Subline No.\");\n+ WhseActivityLine.SetRange(\"Breakbulk No.\", FromWhseActivityLine.\"Breakbulk No.\");\n+ WhseActivityLine.SetFilter(\"Line No.\", '>%1', FromWhseActivityLine.\"Line No.\");\n \n- WhseActivityLine.FindFirst();\n+ if not WhseActivityLine.FindFirst() then\n+ exit;\n \n WhseActivityLine.Validate(Quantity, FromWhseActivityLine.Quantity);\n WhseActivityLine.Modify(true);\n@@ -3745,4 +3752,3 @@ table 5767 \"Warehouse Activity Line\"\n begin\n end;\n }\n-\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-217974", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\nindex 780de254..0a811e48 100644\n--- a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n@@ -1757,6 +1757,8 @@ codeunit 6620 \"Copy Document Mgt.\"\n OnUpdateSalesHeaderWhenCopyFromSalesHeaderOnBeforeValidateShipToCode(SalesHeader);\n SalesHeader.Validate(SalesHeader.\"Ship-to Code\");\n end;\n+ if MoveNegLines then\n+ UpdateShipToAddress(SalesHeader);\n if FromDocType in [\"Sales Document Type From\"::Quote, \"Sales Document Type From\"::\"Blanket Order\"] then\n if OriginalSalesHeader.\"Posting Date\" = 0D then\n SalesHeader.\"Posting Date\" := WorkDate()\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-222488", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al\nindex 07db37f9..ea162ea1 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al\n@@ -484,11 +484,11 @@ page 5771 \"Whse. Put-away Subform\"\n var\n WhseActivLine: Record \"Warehouse Activity Line\";\n begin\n- WhseActivLine.Copy(Rec);\n- WhseActivLine.FilterGroup(3);\n- WhseActivLine.SetRange(Breakbulk);\n- WhseActivLine.FilterGroup(0);\n- CODEUNIT.Run(CODEUNIT::\"Whse.-Act.-Register (Yes/No)\", WhseActivLine);\n+ WhseActivLine.SetCurrentKey(\"Activity Type\", \"No.\", \"Sorting Sequence No.\");\n+ WhseActivLine.SetRange(\"Activity Type\", Rec.\"Activity Type\");\n+ WhseActivLine.SetRange(\"No.\", Rec.\"No.\");\n+ if WhseActivLine.FindSet() then\n+ CODEUNIT.Run(CODEUNIT::\"Whse.-Act.-Register (Yes/No)\", WhseActivLine);\n Rec.Reset();\n Rec.SetCurrentKey(\"Activity Type\", \"No.\", \"Sorting Sequence No.\");\n Rec.FilterGroup(4);\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-222484", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WhseActivityRegister.Codeunit.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WhseActivityRegister.Codeunit.al\nindex 06bc6408..6e932dad 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WhseActivityRegister.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WhseActivityRegister.Codeunit.al\n@@ -1489,6 +1489,7 @@ codeunit 7307 \"Whse.-Activity-Register\"\n WhseEntry: Record \"Warehouse Entry\";\n ItemLedgEntry: Record \"Item Ledger Entry\";\n TempWhseActivLine2: Record \"Warehouse Activity Line\" temporary;\n+ TempTrackingSpecification: Record \"Tracking Specification\" temporary;\n WarehouseActivityLine: Record \"Warehouse Activity Line\";\n WhseActivLineItemTrackingSetup: Record \"Item Tracking Setup\";\n CreatePick: Codeunit \"Create Pick\";\n@@ -1556,12 +1557,22 @@ codeunit 7307 \"Whse.-Activity-Register\"\n TempWhseActivLine2.Insert();\n until WarehouseActivityLine.Next() = 0;\n \n- QtyReservedOnPickShipBase :=\n- WhseAvailMgt.CalcReservQtyOnPicksShips(WhseActivLine.\"Location Code\", WhseActivLine.\"Item No.\", WhseActivLine.\"Variant Code\", TempWhseActivLine2);\n+ if WhseItemTrackingSetup.TrackingExists() then begin\n+ TempTrackingSpecification.CopyTrackingFromItemTrackingSetup(WhseItemTrackingSetup);\n+ QtyReservedOnPickShipBase :=\n+ WhseAvailMgt.CalcReservQtyOnPicksShipsWithItemTracking(TempWhseActivLine2, TempTrackingSpecification, WhseActivLine.\"Location Code\", WhseActivLine.\"Item No.\", WhseActivLine.\"Variant Code\");\n+ end else\n+ QtyReservedOnPickShipBase :=\n+ WhseAvailMgt.CalcReservQtyOnPicksShips(WhseActivLine.\"Location Code\", WhseActivLine.\"Item No.\", WhseActivLine.\"Variant Code\", TempWhseActivLine2);\n \n- LineReservedQtyBase :=\n- WhseAvailMgt.CalcLineReservedQtyOnInvt(\n- WhseActivLine.\"Source Type\", WhseActivLine.\"Source Subtype\", WhseActivLine.\"Source No.\", WhseActivLine.\"Source Line No.\", WhseActivLine.\"Source Subline No.\", true, TempWhseActivLine2);\n+ if WhseItemTrackingSetup.TrackingExists() and (QtyReservedOnPickShipBase > 0) then\n+ LineReservedQtyBase :=\n+ WhseAvailMgt.CalcLineReservedQtyOnInvt(\n+ WhseActivLine.\"Source Type\", WhseActivLine.\"Source Subtype\", WhseActivLine.\"Source No.\", WhseActivLine.\"Source Line No.\", WhseActivLine.\"Source Subline No.\", true, WhseItemTrackingSetup, TempWhseActivLine2)\n+ else\n+ LineReservedQtyBase :=\n+ WhseAvailMgt.CalcLineReservedQtyOnInvt(\n+ WhseActivLine.\"Source Type\", WhseActivLine.\"Source Subtype\", WhseActivLine.\"Source No.\", WhseActivLine.\"Source Line No.\", WhseActivLine.\"Source Subline No.\", true, TempWhseActivLine2);\n \n if Abs(SubTotalBase) < QtyReservedOnPickShipBase + LineReservedQtyBase then\n QtyReservedOnPickShipBase := Abs(SubTotalBase) - LineReservedQtyBase;\n@@ -2722,4 +2733,3 @@ codeunit 7307 \"Whse.-Activity-Register\"\n begin\n end;\n }\n-\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137260'\nCodeunit 137260 SCM Inventory Item Tracking\n Testfunction RegisterPickWithNoErrorForFEFOLocation Failure (18.273 seconds)\n Error:\n Lot No. GU00000024 is not available on inventory or it has already been reserved for another document.\n Call Stack:\n \"Whse.-Activity-Register\"(CodeUnit 7307).AvailabilityError line 5 - Base Application by Microsoft version 27.0.0.0\n \"Whse.-Activity-Register\"(CodeUnit 7307).CheckWhseItemTrkgLine line 83 - Base Application by Microsoft version 27.0.0.0\n \"Whse.-Activity-Register\"(CodeUnit 7307).Code line 18 - Base Application by Microsoft version 27.0.0.0\n \"Whse.-Activity-Register\"(CodeUnit 7307).OnRun(Trigger) line 4 - Base Application by Microsoft version 27.0.0.0\n \"Library - Warehouse\"(CodeUnit 132204).RegisterWhseActivity line 10 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"SCM Inventory Item Tracking\"(CodeUnit 137260).RegisterPickWithNoErrorForFEFOLocation line 56 - Tests-SCM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"instance_id": "microsoftInternal__NAV-220314", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al b/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\nindex fb9253b7..ad41ac36 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\n@@ -76,6 +76,7 @@ table 83 \"Item Journal Line\"\n if \"Item No.\" <> xRec.\"Item No.\" then begin\n \"Variant Code\" := '';\n \"Bin Code\" := '';\n+ \"Unit of Measure Code\" := '';\n if CurrFieldNo <> 0 then begin\n GetItem();\n if Item.IsInventoriableType() then\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-214926", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al b/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\nindex ebeb6ca1..b522f79e 100644\n--- a/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\n@@ -2364,7 +2364,7 @@ table 18 Customer\n RetRcdNotInvAmountLCY := GetReturnRcdNotInvAmountLCY();\n \n TotalAmountLCY :=\n- \"Balance (LCY)\" + \"Outstanding Orders (LCY)\" + \"Shipped Not Invoiced (LCY)\" + \"Outstanding Invoices (LCY)\" +\n+ \"Balance (LCY)\" + \"Outstanding Orders (LCY)\" + \"Shipped Not Invoiced (LCY)\" + \"Outstanding Invoices (LCY)\" -\n SalesOutstandingAmountFromShipment - InvoicedPrepmtAmountLCY - RetRcdNotInvAmountLCY + AdditionalAmountLCY;\n \n OnAfterGetTotalAmountLCYCommon(Rec, TotalAmountLCY);\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-215972", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\nindex 9ab054c5..72f38fac 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\n@@ -1592,6 +1592,8 @@ table 5741 \"Transfer Line\"\n exit;\n \n TestField(\"Item No.\");\n+ GetItem();\n+ Item.TestField(Reserve);\n Clear(Reservation);\n OptionNumber := StrMenu(Text011);\n if OptionNumber > 0 then begin\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-216057", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al\nindex eda188fe..2d1f0861 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al\n@@ -1520,7 +1520,10 @@ codeunit 99000854 \"Inventory Profile Offsetting\"\n if DemandExists then\n Track(SupplyInvtProfile, DemandInvtProfile, false, false, SupplyInvtProfile.Binding)\n else\n- Track(SupplyInvtProfile, DemandInvtProfile, true, false, SupplyInvtProfile.Binding::\" \");\n+ if not ((SupplyInvtProfile.\"Planning Flexibility\" = SupplyInvtProfile.\"Planning Flexibility\"::None) and\n+ (SupplyInvtProfile.\"Action Message\" = SupplyInvtProfile.\"Action Message\"::\" \"))\n+ then\n+ Track(SupplyInvtProfile, DemandInvtProfile, true, false, SupplyInvtProfile.Binding::\" \");\n SupplyInvtProfile.Delete();\n end;\n \n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-216572", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al\nindex 130b3e0f..0fc9c9c1 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al\n@@ -669,6 +669,7 @@ table 221 \"Gen. Jnl. Allocation\"\n begin\n Rec.Validate(\"Account No.\", AllocAccountDistribution.\"Destination Account Number\");\n Rec.Validate(\"Allocation %\", AllocAccountDistribution.Percent);\n+ Rec.Validate(\"Dimension Set ID\", AllocAccountDistribution.\"Dimension Set ID\");\n end;\n \n local procedure CheckGLAccount(var GLAccount: Record \"G/L Account\")\n@@ -755,4 +756,3 @@ table 221 \"Gen. Jnl. Allocation\"\n begin\n end;\n }\n-\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134227'\nCodeunit 134227 ERM PostRecurringJournal\n Testfunction CheckDimensionOfRecurringJournalImportAllocationFromAllocationAccount Failure (6.497 seconds)\n Error:\n Assert.AreEqual failed. Expected:<0> (Integer). Actual:<19> (Integer). Allocation dimension is not correct.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"ERM PostRecurringJournal\"(CodeUnit 134227).VerifyGenJnlAllocationDimension line 7 - Tests-ERM by Microsoft version 27.0.0.0\n \"ERM PostRecurringJournal\"(CodeUnit 134227).CheckDimensionOfRecurringJournalImportAllocationFromAllocationAccount line 36 - Tests-ERM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"instance_id": "microsoftInternal__NAV-217797", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Availability/CalcItemAvailability.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Availability/CalcItemAvailability.Codeunit.al\nindex 21992d4e..37737961 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Availability/CalcItemAvailability.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Availability/CalcItemAvailability.Codeunit.al\n@@ -906,6 +906,10 @@ codeunit 5530 \"Calc. Item Availability\"\n RecRef.SetTable(RequisitionLine);\n ReqWkshTemplate.Get(RequisitionLine.\"Worksheet Template Name\");\n ReqWkshTemplate.TestField(\"Page ID\");\n+ RequisitionLine.FilterGroup := 2;\n+ RequisitionLine.SetRange(\"Worksheet Template Name\", RequisitionLine.\"Worksheet Template Name\");\n+ RequisitionLine.FilterGroup := 0;\n+ RequisitionLine.\"Worksheet Template Name\" := '';\n PAGE.RunModal(ReqWkshTemplate.\"Page ID\", RequisitionLine);\n end;\n Database::\"Planning Component\":\n@@ -1155,4 +1159,3 @@ codeunit 5530 \"Calc. Item Availability\"\n begin\n end;\n }\n-\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-214557", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Planning/MfgPlanningIntegration.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Planning/MfgPlanningIntegration.Codeunit.al\nindex 20d37627..408f7321 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Planning/MfgPlanningIntegration.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Planning/MfgPlanningIntegration.Codeunit.al\n@@ -114,10 +114,9 @@ codeunit 99000861 \"Mfg. Planning Integration\"\n case RequisitionLine.\"Ref. Order Type\" of\n RequisitionLine.\"Ref. Order Type\"::\"Prod. Order\":\n begin\n- ReservEntry.SetRange(\"Source ID\", RequisitionLine.\"Ref. Order No.\");\n- ReservEntry.SetRange(\"Source Type\", Database::\"Prod. Order Line\");\n- ReservEntry.SetRange(\"Source Subtype\", RequisitionLine.\"Ref. Order Status\");\n- ReservEntry.SetRange(\"Source Prod. Order Line\", RequisitionLine.\"Ref. Line No.\");\n+ ReservEntry.SetSourceFilter(\n+ Database::\"Prod. Order Line\", RequisitionLine.\"Ref. Order Status\".AsInteger(), RequisitionLine.\"Ref. Order No.\", 0, true);\n+ ReservEntry.SetSourceFilter('', RequisitionLine.\"Ref. Line No.\");\n end;\n end;\n end;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137075'\nCodeunit 137075 SCM Planning Order Tracking\n Testfunction ReqLineIsNotCreatedWhenCalcRegenPlanForCompItemPresentInRelProdOrder Failure (7.333 seconds)\n Error:\n Assert.IsTrue failed. The requisition line for location should not exist\n Call Stack:\n Assert(CodeUnit 130000).IsTrue line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"SCM Planning Order Tracking\"(CodeUnit 137075).ReqLineIsNotCreatedWhenCalcRegenPlanForCompItemPresentInRelProdOrder line 58 - Tests-SCM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"instance_id": "microsoftInternal__NAV-212355", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Routing/CalculateRoutingLine.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Routing/CalculateRoutingLine.Codeunit.al\nindex c46c8c20..f2e76142 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Routing/CalculateRoutingLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Routing/CalculateRoutingLine.Codeunit.al\n@@ -1231,6 +1231,8 @@ codeunit 99000774 \"Calculate Routing Line\"\n MfgCostCalcMgt: Codeunit \"Mfg. Cost Calculation Mgt.\";\n ExpectedOperOutput: Decimal;\n ActualOperOutput: Decimal;\n+ RemainingOperOutput: Decimal;\n+ LotSizeBasis: Decimal;\n TotalQtyPerOperation: Decimal;\n TotalCapacityPerOperation: Decimal;\n IsHandled: Boolean;\n@@ -1291,25 +1293,34 @@ codeunit 99000774 \"Calculate Routing Line\"\n ProdOrderLine.SetRange(\"Prod. Order No.\", ProdOrderRoutingLine.\"Prod. Order No.\");\n ProdOrderLine.SetRange(\"Routing Reference No.\", ProdOrderRoutingLine.\"Routing Reference No.\");\n ProdOrderLine.SetRange(\"Routing No.\", ProdOrderRoutingLine.\"Routing No.\");\n- ProdOrderLine.SetLoadFields(\"Quantity (Base)\", \"Scrap %\", \"Prod. Order No.\", \"Line No.\", Status, \"Routing No.\", \"Routing Version Code\", \"Ending Date\", \"Ending Time\");\n+ ProdOrderLine.SetLoadFields(\"Quantity (Base)\", \"Remaining Qty. (Base)\", \"Scrap %\", \"Prod. Order No.\", \"Line No.\", Status, \"Routing No.\", \"Routing Version Code\", \"Ending Date\", \"Ending Time\");\n OnCalculateRoutingLineOnAfterProdOrderLineSetFilters(ProdOrderLine, ProdOrder, ProdOrderRoutingLine);\n if ProdOrderLine.Find('-') then begin\n ExpectedOperOutput := 0;\n+ RemainingOperOutput := 0;\n repeat\n IsHandled := false;\n OnCalculateRoutingLineOnBeforeCalcExpectedOperOutput(ProdOrderLine, ExpectedOperOutput, IsHandled);\n if not IsHandled then\n ExpectedOperOutput := ExpectedOperOutput + ProdOrderLine.\"Quantity (Base)\";\n+ RemainingOperOutput := RemainingOperOutput + ProdOrderLine.\"Remaining Qty. (Base)\";\n TotalScrap := TotalScrap + ProdOrderLine.\"Scrap %\";\n until ProdOrderLine.Next() = 0;\n- ActualOperOutput := MfgCostCalcMgt.CalcActOutputQtyBase(ProdOrderLine, ProdOrderRoutingLine);\n- ProdOrderQty := ExpectedOperOutput - ActualOperOutput;\n- if ProdOrderQty < 0 then\n- ProdOrderQty := 0;\n+ if ProdOrder.Status = ProdOrder.Status::Released then\n+ ProdOrderQty := RemainingOperOutput\n+ else begin\n+ ActualOperOutput := MfgCostCalcMgt.CalcActOutputQtyBase(ProdOrderLine, ProdOrderRoutingLine);\n+ ProdOrderQty := ExpectedOperOutput - ActualOperOutput;\n+ if ProdOrderQty < 0 then\n+ ProdOrderQty := 0;\n+ end;\n end;\n \n+ LotSizeBasis := ExpectedOperOutput;\n+ if ProdOrder.Status = ProdOrder.Status::Released then\n+ LotSizeBasis := RemainingOperOutput;\n MaxLotSize :=\n- ExpectedOperOutput *\n+ LotSizeBasis *\n (1 + ProdOrderRoutingLine.\"Scrap Factor % (Accumulated)\") *\n (1 + TotalScrap / 100) +\n ProdOrderRoutingLine.\"Fixed Scrap Qty. (Accum.)\";\n@@ -2389,4 +2400,3 @@ codeunit 99000774 \"Calculate Routing Line\"\n begin\n end;\n }\n-\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-214825", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\nindex 604bb915..789de8f8 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\n@@ -74,6 +74,7 @@ codeunit 1018 \"Purchase Doc. From Job\"\n RecRef: RecordRef;\n begin\n JobPlanningLine.SetLoadFields(\"Job Contract Entry No.\");\n+ JobPlanningLine.SetCurrentKey(\"Job Contract Entry No.\");\n JobPlanningLine.SetRange(\"Job No.\", JobTask.\"Job No.\");\n JobPlanningLine.SetRange(\"Job Task No.\", JobTask.\"Job Task No.\");\n if JobPlanningLine.IsEmpty() then\n", "error_message": null} +{"instance_id": "microsoft__BCApps-4766", "project": "Subscription Billing", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/src/Apps/W1/Subscription Billing/App/Customer Contracts/Tables/CustSubContractLine.Table.al b/src/Apps/W1/Subscription Billing/App/Customer Contracts/Tables/CustSubContractLine.Table.al\nindex 91f83b1..6484d4d 100644\n--- a/src/Apps/W1/Subscription Billing/App/Customer Contracts/Tables/CustSubContractLine.Table.al\t\n+++ b/src/Apps/W1/Subscription Billing/App/Customer Contracts/Tables/CustSubContractLine.Table.al\t\n@@ -66,6 +66,7 @@ table 8062 \"Cust. Sub. Contract Line\"\n end;\n end;\n \n+ CheckAndDisconnectContractLine();\n TempCustomerContractLine := Rec;\n Init();\n SystemId := TempCustomerContractLine.SystemId;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '148155'\nCodeunit 148155 Contracts Test\n Testfunction ContractLineDisconnectServiceOnNoChange Failure (9.38 seconds)\n Error:\n Item with the No. does not exist.\n Call Stack:\n \"Cust. Sub. Contract Line\"(Table 8062).\"No. - OnValidate\"(Trigger) line 10 - Subscription Billing by Microsoft version 27.0.0.0\n \"Contracts Test\"(CodeUnit 148155).ContractLineDisconnectServiceOnNoChange line 24 - Subscription Billing Test by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0\nSetting test codeunit range '148154'\nCodeunit 148154 Vendor Contracts Test\n Testfunction ContractLineDisconnectServiceOnNoChange Failure (2.284 seconds)\n Error:\n Item with the No. does not exist.\n Call Stack:\n \"Vend. Sub. Contract Line\"(Table 8065).\"No. - OnValidate\"(Trigger) line 10 - Subscription Billing by Microsoft version 27.0.0.0"} +{"instance_id": "microsoftInternal__NAV-210200", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Service/Document/StandardServiceCode.Table.al b/App/Layers/W1/BaseApp/Service/Document/StandardServiceCode.Table.al\nindex 986aeff9..49e34226 100644\n--- a/App/Layers/W1/BaseApp/Service/Document/StandardServiceCode.Table.al\n+++ b/App/Layers/W1/BaseApp/Service/Document/StandardServiceCode.Table.al\n@@ -191,12 +191,25 @@ table 5996 \"Standard Service Code\"\n ServLine.\"Line No.\" := ServLine.GetLineNo();\n OnBeforeInsertServLine(ServLine);\n ServLine.Insert(true);\n+ AutoReserveAlwaysServiceLine(ServLine);\n InsertExtendedText(ServLine);\n end;\n until StdServLine.Next() = 0;\n end;\n end;\n \n+ local procedure AutoReserveAlwaysServiceLine(var ServiceLine: Record \"Service Line\")\n+ begin\n+ if ServiceLine.Type <> ServiceLine.Type::Item then\n+ exit;\n+ if ServiceLine.Reserve <> ServiceLine.Reserve::Always then\n+ exit;\n+ if ServiceLine.Quantity = 0 then\n+ exit;\n+\n+ ServiceLine.AutoReserve(false);\n+ end;\n+\n procedure InsertExtendedText(ServLine: Record \"Service Line\")\n var\n ServiceTransferExtText: Codeunit \"Service Transfer Ext. Text\";\n@@ -215,4 +228,3 @@ table 5996 \"Standard Service Code\"\n begin\n end;\n }\n-\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136119'\nCodeunit 136119 Service Standard Codes\n Testfunction ReservationEntryMustBeCreatedWhenReserveIsAlwaysInServiceLine Failure (8.927 seconds)\n Error:\n Assert.AreEqual failed. Expected:<5> (Integer). Actual:<0> (Decimal). Reserved Qty. (Base) must be equal to 5 in Service Line.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 26.0.0.0\n \"Service Standard Codes\"(CodeUnit 136119).ReservationEntryMustBeCreatedWhenReserveIsAlwaysInServiceLine line 61 - Tests-SCM-Service by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0"} +{"instance_id": "microsoftInternal__NAV-208649", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Planning/PlanningLineManagement.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Planning/PlanningLineManagement.Codeunit.al\nindex fe992506..bc61f23d 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Planning/PlanningLineManagement.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Planning/PlanningLineManagement.Codeunit.al\n@@ -615,6 +615,15 @@ codeunit 99000809 \"Planning Line Management\"\n PlanningComponent.Description := ProdBOMLine.Description;\n PlanningComponent.\"Planning Line Origin\" := ReqLine.\"Planning Line Origin\";\n PlanningComponent.Validate(\"Unit of Measure Code\", ProdBOMLine.\"Unit of Measure Code\");\n+ if Item2.Get(PlanningComponent.\"Item No.\") then begin\n+ if Item2.\"Rounding Precision\" > 0 then begin\n+ if (PlanningComponent.\"Qty. Rounding Precision\" = 0) or (PlanningComponent.\"Qty. Rounding Precision\" > Item2.\"Rounding Precision\") then\n+ PlanningComponent.\"Qty. Rounding Precision\" := Item2.\"Rounding Precision\";\n+ if (PlanningComponent.\"Qty. Rounding Precision (Base)\" = 0) or (PlanningComponent.\"Qty. Rounding Precision (Base)\" > Item2.\"Rounding Precision\") then\n+ PlanningComponent.\"Qty. Rounding Precision (Base)\" := Item2.\"Rounding Precision\";\n+ end;\n+ PlanningComponent.Critical := Item2.Critical;\n+ end;\n PlanningComponent.\"Quantity per\" := ProdBOMLine.\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n PlanningComponent.Validate(\"Routing Link Code\", ProdBOMLine.\"Routing Link Code\");\n PlanningComponent.Length := ProdBOMLine.Length;\n@@ -630,8 +639,6 @@ codeunit 99000809 \"Planning Line Management\"\n PlanningComponent.Validate(\"Calculation Formula\", ProdBOMLine.\"Calculation Formula\");\n \n GetPlanningParameters.AtSKU(CompSKU, PlanningComponent.\"Item No.\", PlanningComponent.\"Variant Code\", PlanningComponent.\"Location Code\");\n- if Item2.Get(PlanningComponent.\"Item No.\") then\n- PlanningComponent.Critical := Item2.Critical;\n \n PlanningComponent.\"Flushing Method\" := CompSKU.\"Flushing Method\";\n OnTransferBOMOnBeforeGetDefaultBin(PlanningComponent, ProdBOMLine, ReqLine, SKU);\n@@ -1184,4 +1191,3 @@ codeunit 99000809 \"Planning Line Management\"\n begin\n end;\n }\n-\ndiff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\nindex 36930a9e..e4b60ce9 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n@@ -263,7 +263,6 @@ codeunit 99000773 \"Calculate Prod. Order\"\n Item2: Record Item;\n ComponentSKU: Record \"Stockkeeping Unit\";\n IsHandled: Boolean;\n- QtyRoundPrecision: Decimal;\n begin\n ProdOrderComp.Reset();\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\", \"Item No.\");\n@@ -296,11 +295,13 @@ codeunit 99000773 \"Calculate Prod. Order\"\n ProdOrderComp.Description := ProdBOMLine[Level].Description;\n ProdOrderComp.Validate(\"Unit of Measure Code\", ProdBOMLine[Level].\"Unit of Measure Code\");\n if (ProdOrderComp.\"Item No.\" <> '') and Item2.Get(ProdOrderComp.\"Item No.\") then\n- QtyRoundPrecision := UOMMgt.GetQtyRoundingPrecision(Item2, ProdBOMLine[Level].\"Unit of Measure Code\");\n- if QtyRoundPrecision <> 0 then\n- ProdOrderComp.\"Quantity per\" := Round(ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM, QtyRoundPrecision)\n- else\n- ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n+ if Item2.\"Rounding Precision\" > 0 then begin\n+ if (ProdOrderComp.\"Qty. Rounding Precision\" = 0) or (ProdOrderComp.\"Qty. Rounding Precision\" > Item2.\"Rounding Precision\") then\n+ ProdOrderComp.\"Qty. Rounding Precision\" := Item2.\"Rounding Precision\";\n+ if (ProdOrderComp.\"Qty. Rounding Precision (Base)\" = 0) or (ProdOrderComp.\"Qty. Rounding Precision (Base)\" > Item2.\"Rounding Precision\") then\n+ ProdOrderComp.\"Qty. Rounding Precision (Base)\" := Item2.\"Rounding Precision\";\n+ end;\n+ ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n ProdOrderComp.Length := ProdBOMLine[Level].Length;\n ProdOrderComp.Width := ProdBOMLine[Level].Width;\n ProdOrderComp.Weight := ProdBOMLine[Level].Weight;\n@@ -1230,4 +1231,3 @@ codeunit 99000773 \"Calculate Prod. Order\"\n begin\n end;\n }\n-\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-209496", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\nindex 10d284cc..59dc544a 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\n@@ -116,6 +116,7 @@ page 835 \"Reminder Level Communication\"\n ReminderCommunication: Codeunit \"Reminder Communication\";\n Languages: Page \"Languages\";\n FilterText: Text;\n+ LocalGuid: Guid;\n begin\n FilterText := ReminderCommunication.GetListOfAttachmentLanguagesFromIdWithSeparator(Rec.\"Reminder Attachment Text\", DifferentOperatorTok);\n if FilterText <> '' then\n@@ -131,9 +132,19 @@ page 835 \"Reminder Level Communication\"\n Languages.SetSelectionFilter(LocalLanguage);\n LocalLanguage.FindFirst();\n \n- // Necessary when the user has deleted all languages or has not created any language yet\n+ if not IsNullGuid(Rec.\"Reminder Attachment Text\") then\n+ LocalGuid := Rec.\"Reminder Attachment Text\"\n+ else\n+ if not IsNullGuid(Rec.\"Reminder Email Text\") then\n+ LocalGuid := Rec.\"Reminder Email Text\"\n+ else\n+ LocalGuid := CreateGuid();\n+\n if IsNullGuid(Rec.\"Reminder Attachment Text\") then\n- ReminderCommunication.SetDefaultContentForNewLanguage(CreateGuid(), LocalLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Level\", Rec.SystemId);\n+ Rec.\"Reminder Attachment Text\" := LocalGuid;\n+ if IsNullGuid(Rec.\"Reminder Email Text\") then\n+ Rec.\"Reminder Email Text\" := LocalGuid;\n+ Rec.Modify(true);\n \n SelectedNewLanguage := true;\n SelectLanguageAndText(LocalLanguage.Code, true);\ndiff --git a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al\nindex 5cce8ad7..60254dc7 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al\n@@ -109,6 +109,7 @@ page 1897 \"Reminder Term Communication\"\n ReminderCommunication: Codeunit \"Reminder Communication\";\n Languages: Page \"Languages\";\n FilterText: Text;\n+ LocalGuid: Guid;\n begin\n FilterText := ReminderCommunication.GetListOfAttachmentLanguagesFromIdWithSeparator(Rec.\"Reminder Attachment Text\", DifferentOperatorTok);\n if FilterText <> '' then\n@@ -124,9 +125,19 @@ page 1897 \"Reminder Term Communication\"\n Languages.SetSelectionFilter(LocalLanguage);\n LocalLanguage.FindFirst();\n \n- // Necessary when the user has deleted all languages or has not created any language yet\n+ if not IsNullGuid(Rec.\"Reminder Attachment Text\") then\n+ LocalGuid := Rec.\"Reminder Attachment Text\"\n+ else\n+ if not IsNullGuid(Rec.\"Reminder Email Text\") then\n+ LocalGuid := Rec.\"Reminder Email Text\"\n+ else\n+ LocalGuid := CreateGuid();\n+\n if IsNullGuid(Rec.\"Reminder Attachment Text\") then\n- ReminderCommunication.SetDefaultContentForNewLanguage(CreateGuid(), LocalLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Term\", Rec.SystemId);\n+ Rec.\"Reminder Attachment Text\" := LocalGuid;\n+ if IsNullGuid(Rec.\"Reminder Email Text\") then\n+ Rec.\"Reminder Email Text\" := LocalGuid;\n+ Rec.Modify(true);\n \n SelectedNewLanguage := true;\n SelectLanguageAndText(LocalLanguage.Code, true);\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-208748", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\nindex 7c1943c5..e67db440 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\n@@ -2,6 +2,7 @@\n \n using Microsoft.Assembly.Document;\n using Microsoft.Finance.ReceivablesPayables;\n+using Microsoft.Foundation.ExtendedText;\n using Microsoft.Foundation.UOM;\n using Microsoft.Inventory.Availability;\n using Microsoft.Inventory.Tracking;\n@@ -123,10 +124,14 @@ codeunit 87 \"Blanket Sales Order to Order\"\n ATOLink: Record \"Assemble-to-Order Link\";\n PrepmtMgt: Codeunit \"Prepayment Mgt.\";\n SalesLineReserve: Codeunit \"Sales Line-Reserve\";\n+ TransferOldExtTextLines: Codeunit \"Transfer Old Ext. Text Lines\";\n QuantityOnOrders: Decimal;\n+ OldLineNo: Integer;\n IsHandled: Boolean;\n ProcessLine: Boolean;\n begin\n+ TransferOldExtTextLines.ClearLineNumbers();\n+\n if not SalesLineBlanketOrder.FindSet() then\n exit;\n \n@@ -162,8 +167,12 @@ codeunit 87 \"Blanket Sales Order to Order\"\n ResetQuantityFields(SalesLineOrder);\n SalesLineOrder.\"Document Type\" := SalesHeaderOrder.\"Document Type\";\n SalesLineOrder.\"Document No.\" := SalesHeaderOrder.\"No.\";\n+ OldLineNo := SalesLineOrder.\"Line No.\";\n NextLineNo += 10000;\n SalesLineOrder.\"Line No.\" := NextLineNo;\n+ SalesLineOrder.\"Attached to Line No.\" :=\n+ TransferOldExtTextLines.TransferExtendedText(\n+ OldLineNo, SalesLineOrder.\"Line No.\", SalesLineBlanketOrder.\"Attached to Line No.\");\n SalesLineOrder.\"Blanket Order No.\" := SalesHeaderBlanketOrder.\"No.\";\n SalesLineOrder.\"Blanket Order Line No.\" := SalesLineBlanketOrder.\"Line No.\";\n if (SalesLineOrder.\"No.\" <> '') and (SalesLineOrder.Type <> SalesLineOrder.Type::\" \") then begin\n@@ -599,4 +608,3 @@ codeunit 87 \"Blanket Sales Order to Order\"\n begin\n end;\n }\n-\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-209450", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\nindex bb5d38d2..aaae7fd8 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\n@@ -1074,6 +1074,8 @@ table 1003 \"Job Planning Line\"\n if Reserve <> Reserve::Never then begin\n TestField(Type, Type::Item);\n TestField(\"No.\");\n+ GetItem();\n+ Item.TestField(Type, Item.Type::Inventory);\n TestField(\"Usage Link\");\n end;\n CalcFields(\"Reserved Qty. (Base)\");\n@@ -2620,6 +2622,8 @@ table 1003 \"Job Planning Line\"\n begin\n TestField(Type, Type::Item);\n TestField(\"No.\");\n+ GetItem();\n+ Item.TestField(Type, Item.Type::Inventory);\n TestField(Reserve);\n TestField(\"Usage Link\");\n Reservation.SetReservSource(Rec);\n@@ -2632,6 +2636,8 @@ table 1003 \"Job Planning Line\"\n begin\n TestField(Type, Type::Item);\n TestField(\"No.\");\n+ GetItem();\n+ Item.TestField(Type, Item.Type::Inventory);\n ReservEntry.InitSortingAndFilters(true);\n SetReservationFilters(ReservEntry);\n if Modal then\n@@ -2649,6 +2655,8 @@ table 1003 \"Job Planning Line\"\n begin\n TestField(Type, Type::Item);\n TestField(\"No.\");\n+ GetItem();\n+ Item.TestField(Type, Item.Type::Inventory);\n if Reserve = Reserve::Never then\n FieldError(Reserve);\n JobPlanningLineReserve.ReservQuantity(Rec, QtyToReserve, QtyToReserveBase);\n@@ -2728,8 +2736,15 @@ table 1003 \"Job Planning Line\"\n end;\n \n procedure FilterLinesForReservation(ReservationEntry: Record \"Reservation Entry\"; NewStatus: Option; AvailabilityFilter: Text; Positive: Boolean)\n+ var\n+ ReservItem: Record Item;\n begin\n Reset();\n+ if (ReservationEntry.\"Item No.\" = '') or (not ReservItem.Get(ReservationEntry.\"Item No.\")) or (not ReservItem.IsInventoriableType()) then begin\n+ SetRange(\"Line No.\", -1);\n+ exit;\n+ end;\n+\n SetCurrentKey(Status, Type, \"No.\", \"Variant Code\", \"Location Code\", \"Planning Date\");\n SetRange(Status, NewStatus);\n SetRange(Type, Type::Item);\n@@ -3754,4 +3769,3 @@ table 1003 \"Job Planning Line\"\n begin\n end;\n }\n-\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136302'\nCodeunit 136302 Job Consumption Purchase\n Testfunction PurchaseLineNotReservedWhenItemTypeNonInventoryOrService Failure (15.694 seconds)\n Error:\n Type must be equal to 'Inventory' in Item: No.=GL00000001. Current value is 'Non-Inventory'.\n Call Stack:\n \"Job Planning Line\"(Table 1003).\"Reserve - OnValidate\"(Trigger) line 6 - Base Application by Microsoft version 26.0.0.0\n \"Job Consumption Purchase\"(CodeUnit 136302).PurchaseLineNotReservedWhenItemTypeNonInventoryOrService line 34 - Tests-Job by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0"} +{"instance_id": "microsoftInternal__NAV-201169", "project": "Shopify", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\nindex 38d77856..3dd419bb 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n@@ -26,11 +26,13 @@ codeunit 30174 \"Shpfy Create Product\"\n Getlocations: Boolean;\n ProductId: BigInteger;\n ItemVariantIsBlockedLbl: Label 'Item variant is blocked or sales blocked.';\n+ ItemHasEmptyTitleLbl: Label 'Item is skipped because description is empty.';\n \n trigger OnRun()\n var\n ShopifyProduct: Record \"Shpfy Product\";\n begin\n+ ProductId := 0;\n if Getlocations then begin\n Codeunit.Run(Codeunit::\"Shpfy Sync Shop Locations\", Shop);\n Commit();\n@@ -51,13 +53,21 @@ codeunit 30174 \"Shpfy Create Product\"\n TempShopifyProduct: Record \"Shpfy Product\" temporary;\n TempShopifyVariant: Record \"Shpfy Variant\" temporary;\n TempShopifyTag: Record \"Shpfy Tag\" temporary;\n+ SkippedRecord: Codeunit \"Shpfy Skipped Record\";\n begin\n CreateTempProduct(Item, TempShopifyProduct, TempShopifyVariant, TempShopifyTag);\n+ if DelChr(TempShopifyProduct.Title, '<>', ' ') = '' then begin\n+ SkippedRecord.LogSkippedRecord(Item.RecordId, ItemHasEmptyTitleLbl, Shop);\n+ exit;\n+ end;\n+\n if not VariantApi.FindShopifyProductVariant(TempShopifyProduct, TempShopifyVariant) then\n ProductId := ProductApi.CreateProduct(TempShopifyProduct, TempShopifyVariant, TempShopifyTag)\n else\n ProductId := TempShopifyProduct.Id;\n- ProductExport.UpdateProductTranslations(ProductId, Item);\n+\n+ if ProductId <> 0 then\n+ ProductExport.UpdateProductTranslations(ProductId, Item);\n end;\n \n internal procedure CreateTempProduct(Item: Record Item; var TempShopifyProduct: Record \"Shpfy Product\" temporary; var TempShopifyVariant: Record \"Shpfy Variant\" temporary; var TempShopifyTag: Record \"Shpfy Tag\" temporary)\ndiff --git a/App/Apps/W1/Shopify/app/src/Products/Reports/ShpfyAddItemtoShopify.Report.al b/App/Apps/W1/Shopify/app/src/Products/Reports/ShpfyAddItemtoShopify.Report.al\nindex b99f15d3..49d05d07 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Reports/ShpfyAddItemtoShopify.Report.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Reports/ShpfyAddItemtoShopify.Report.al\n@@ -67,7 +67,8 @@ report 30106 \"Shpfy Add Item to Shopify\"\n \n ShopifyCreateProduct.Run(Item);\n \n- ProductFilter += Format(ShopifyCreateProduct.GetProductId()) + '|';\n+ if ShopifyCreateProduct.GetProductId() <> 0 then\n+ ProductFilter += Format(ShopifyCreateProduct.GetProductId()) + '|';\n end;\n end;\n \n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139581'\nCodeunit 139581 Shpfy Skipped Record Log Test\n Testfunction UnitTestLogItemEmptyDescription Failure (6.766 seconds)\n Error:\n The response from Shopify contains no JSON. \\Requested: {\"query\":\"{ locations(first: 20, includeLegacy: true) { pageInfo { hasNextPage endCursor } nodes { legacyResourceId isActive isPrimary name fulfillmentService { serviceName }}}}\"} \\Response: \n Call Stack:\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 21 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 4 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 6 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Sync Shop Locations\"(CodeUnit 30198).SyncLocations line 20 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Sync Shop Locations\"(CodeUnit 30198).OnRun(Trigger) line 4 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Create Product\"(CodeUnit 30174).OnRun(Trigger) line 6 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Add Item to Shopify\"(Report 30106).\"Item - OnAfterGetRecord\"(Trigger) line 12 - Shopify Connector by Microsoft version 26.0.0.0"} +{"instance_id": "microsoftInternal__NAV-209835", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\nindex 78996b41..3fbcb8f9 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\n@@ -473,7 +473,9 @@ report 99001020 \"Carry Out Action Msg. - Plan.\"\n if CurrReqWkshTemp <> '' then\n \"Requisition Line\".SetRange(\"Journal Batch Name\", CurrReqWkshName);\n \"Requisition Line\".SetRange(Type, \"Requisition Line\".Type::Item);\n+ \"Requisition Line\".FilterGroup(2);\n \"Requisition Line\".SetFilter(\"Action Message\", '<>%1', \"Requisition Line\".\"Action Message\"::\" \");\n+ \"Requisition Line\".FilterGroup(0);\n OnAfterSetReqLineFilters(\"Requisition Line\");\n end;\n \n@@ -669,4 +671,3 @@ report 99001020 \"Carry Out Action Msg. - Plan.\"\n begin\n end;\n }\n-\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-211548", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/AllocationAccount/GenJournalAllocAccMgt.Codeunit.al b/App/Layers/W1/BaseApp/Finance/AllocationAccount/GenJournalAllocAccMgt.Codeunit.al\nindex fbe1c90d..7429c607 100644\n--- a/App/Layers/W1/BaseApp/Finance/AllocationAccount/GenJournalAllocAccMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/AllocationAccount/GenJournalAllocAccMgt.Codeunit.al\n@@ -465,8 +465,12 @@ codeunit 2677 \"Gen. Journal Alloc. Acc. Mgt.\"\n var\n Increment: Integer;\n begin\n- Increment := Round((NextLineNo - CurrentLineNo) / LinesToInsert, 1);\n- if Increment < LinesToInsert then\n+ if (LinesToInsert <= 0) or ((NextLineNo - CurrentLineNo) <= LinesToInsert) then\n+ exit(-1);\n+\n+ // Keep generated lines strictly between current and next line no.\n+ Increment := (NextLineNo - CurrentLineNo) div (LinesToInsert + 1);\n+ if Increment < 1 then\n exit(-1);\n \n if Increment >= 1000 then\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-209737", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WhseActivityPost.Codeunit.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WhseActivityPost.Codeunit.al\nindex 191a270e..fe342312 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WhseActivityPost.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WhseActivityPost.Codeunit.al\n@@ -465,6 +465,7 @@ codeunit 7324 \"Whse.-Activity-Post\"\n SalesRelease.Reopen(SalesHeader);\n SalesRelease.SetSkipCheckReleaseRestrictions();\n SalesHeader.SetHideValidationDialog(true);\n+ SalesHeader.SetCalledFromWhseDoc(true);\n SalesHeader.Validate(\"Posting Date\", WhseActivHeader.\"Posting Date\");\n OnReleaseSalesDocumentOnBeforeSalesReleaseRun(SalesHeader, WhseActivHeader);\n SalesRelease.Run(SalesHeader);\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-211521", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al b/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\nindex 401cabee..42569b9b 100644\n--- a/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\n+++ b/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\n@@ -565,8 +565,7 @@ table 5050 Contact\n {\n CalcFormula = min(\"To-do\".Date where(\"Contact Company No.\" = field(\"Company No.\"),\n \"Contact No.\" = field(filter(\"Lookup Contact No.\")),\n- Closed = const(false),\n- \"System To-do Type\" = const(\"Contact Attendee\")));\n+ Closed = const(false)));\n Caption = 'Next Task Date';\n Editable = false;\n FieldClass = FlowField;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136201'\nCodeunit 136201 Marketing Contacts\n Testfunction TaskListPageHasFixedSystemTaskTypeFilterAsOrganiserOrContactAttendee Failure (5.677 seconds)\n Error:\n Assert.AreEqual failed. Expected: (Text). Actual:<> (Text). Wrong filter was set.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 26.0.0.0\n \"Marketing Contacts\"(CodeUnit 136201).TaskListPageHasFixedSystemTaskTypeFilterAsOrganiserOrContactAttendee line 26 - Tests-Marketing by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0"} +{"instance_id": "microsoftInternal__NAV-213683", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al\nindex 9735e4b2..db3e02c8 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al\n@@ -172,8 +172,6 @@ codeunit 99000795 \"Mfg. Item Integration\"\n RequisitionLine: Record \"Requisition Line\";\n TransferLine: Record \"Transfer Line\";\n ItemJournalLine: Record \"Item Journal Line\";\n- ValueEntry: Record \"Value Entry\";\n- ItemLedgerEntry: Record \"Item Ledger Entry\";\n ProdOrderLine: Record \"Prod. Order Line\";\n begin\n if xRec.\"Item No.\" <> Rec.\"Item No.\" then begin\n@@ -230,15 +228,6 @@ codeunit 99000795 \"Mfg. Item Integration\"\n if not ItemJournalLine.IsEmpty() then\n Error(CannotRenameItemErr, Rec.FieldCaption(\"Item No.\"), Rec.TableCaption(), ItemJournalLine.TableCaption());\n \n- ItemLedgerEntry.SetRange(\"Item No.\", xRec.\"Item No.\");\n- ItemLedgerEntry.SetRange(\"Variant Code\", xRec.Code);\n- if not ItemLedgerEntry.IsEmpty() then\n- Error(CannotRenameItemErr, Rec.FieldCaption(\"Item No.\"), Rec.TableCaption(), ItemLedgerEntry.TableCaption());\n-\n- ValueEntry.SetRange(\"Item No.\", xRec.\"Item No.\");\n- ValueEntry.SetRange(\"Variant Code\", xRec.Code);\n- if not ValueEntry.IsEmpty() then\n- Error(CannotRenameItemErr, Rec.FieldCaption(\"Item No.\"), Rec.TableCaption(), ValueEntry.TableCaption());\n end;\n end;\n \n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-213671", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al b/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\nindex c70c6c1e..ca600211 100644\n--- a/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\n+++ b/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\n@@ -630,7 +630,7 @@ page 5123 \"Opportunity List\"\n if Filter <> '' then begin\n RecRef.GetTable(RecVar);\n IndexFieldRef := RecRef.Field(IndexFieldNo);\n- IndexFieldRef.SetRange(Filter);\n+ IndexFieldRef.SetFilter(Filter);\n if RecRef.FindFirst() then begin\n TextFieldRef := RecRef.Field(TextFieldNo);\n CaptionText := CopyStr(Format(IndexFieldRef.Value) + ' ' + Format(TextFieldRef.Value), 1, MaxStrLen(CaptionText));\n@@ -645,4 +645,3 @@ page 5123 \"Opportunity List\"\n begin\n end;\n }\n-\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-215645", "project": "SubscriptionBilling", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Apps/W1/SubscriptionBilling/App/Billing/Codeunits/CreateBillingDocuments.Codeunit.al b/App/Apps/W1/SubscriptionBilling/App/Billing/Codeunits/CreateBillingDocuments.Codeunit.al\nindex c7efaed2..61887d88 100644\n--- a/App/Apps/W1/SubscriptionBilling/App/Billing/Codeunits/CreateBillingDocuments.Codeunit.al\n+++ b/App/Apps/W1/SubscriptionBilling/App/Billing/Codeunits/CreateBillingDocuments.Codeunit.al\n@@ -250,6 +250,7 @@ codeunit 8060 \"Create Billing Documents\"\n SalesLine.\"Recurring Billing from\" := TempBillingLine.\"Billing from\";\n SalesLine.\"Recurring Billing to\" := TempBillingLine.\"Billing to\";\n SalesLine.\"Discount\" := TempBillingLine.Discount;\n+ SalesLine.Validate(\"Exclude from Doc. Total\", false);\n SalesLine.GetCombinedDimensionSetID(SalesLine.\"Dimension Set ID\", ServiceCommitment.\"Dimension Set ID\");\n TranslationHelper.SetGlobalLanguageByCode(SalesHeader.\"Language Code\");\n SalesLine.Description :=\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '148155'\nCodeunit 148155 Contracts Test\n Testfunction SalesInvoiceShowsSubtotalForServCommItem Failure (9.44 seconds)\n Error:\n Exclude from Document Total must be equal to 'No' in Sales Line: Document Type=Invoice, Document No.=102222, Line No.=10000. Current value is 'Yes'.\n Call Stack:\n \"Contracts Test\"(CodeUnit 148155).SalesInvoiceShowsSubtotalForServCommItem line 22 - Subscription Billing Test by Microsoft version 26.3.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.3.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.3.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.3.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.3.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.3.0.0"} +{"instance_id": "microsoftInternal__NAV-220452", "project": "Shopify", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al b/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al\nindex 62d92a55..60c1e696 100644\n--- a/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al\n+++ b/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al\n@@ -212,7 +212,9 @@ report 30118 \"Shpfy Suggest Payments\"\n SalesInvoiceHeader: Record \"Sales Invoice Header\";\n SalesCreditMemoHeader: Record \"Sales Cr.Memo Header\";\n CustLedgerEntry: Record \"Cust. Ledger Entry\";\n+ DocLinkToBCDoc: Record \"Shpfy Doc. Link To Doc.\";\n RefundHeader: Record \"Shpfy Refund Header\";\n+ SuggestedInvoices: List of [Code[20]];\n AmountToApply: Decimal;\n Applied: Boolean;\n begin\n@@ -226,22 +228,25 @@ report 30118 \"Shpfy Suggest Payments\"\n SalesInvoiceHeader.SetRange(Closed, false);\n if SalesInvoiceHeader.FindSet() then begin\n repeat\n- CustLedgerEntry.SetAutoCalcFields(\"Remaining Amount\");\n- CustLedgerEntry.SetRange(\"Open\", true);\n- CustLedgerEntry.SetRange(\"Applies-to ID\", '');\n- CustLedgerEntry.SetRange(\"Document Type\", CustLedgerEntry.\"Document Type\"::Invoice);\n- CustLedgerEntry.SetRange(\"Document No.\", SalesInvoiceHeader.\"No.\");\n- if CustLedgerEntry.FindSet() then begin\n- Applied := true;\n- repeat\n- CreateSuggestPaymentDocument(CustLedgerEntry, AmountToApply, true);\n- until CustLedgerEntry.Next() = 0;\n- end;\n+ SuggestedInvoices.Add(SalesInvoiceHeader.\"No.\");\n+ ApplyOpenCustomerEntriesForInvoice(SalesInvoiceHeader.\"No.\", AmountToApply, Applied);\n until SalesInvoiceHeader.Next() = 0;\n-\n- if Applied and (AmountToApply > 0) then\n- CreateSuggestPaymentGLAccount(AmountToApply, true);\n end;\n+\n+ // Posted invoices created from receipt lines can miss Shopify order data on the header.\n+ // Use document links to resolve all posted sales invoices related to the Shopify order.\n+ DocLinkToBCDoc.SetLoadFields(\"Document No.\");\n+ DocLinkToBCDoc.SetRange(\"Shopify Document Type\", \"Shpfy Shop Document Type\"::\"Shopify Shop Order\");\n+ DocLinkToBCDoc.SetRange(\"Shopify Document Id\", OrderTransaction.\"Shopify Order Id\");\n+ DocLinkToBCDoc.SetRange(\"Document Type\", \"Shpfy Document Type\"::\"Posted Sales Invoice\");\n+ if DocLinkToBCDoc.FindSet() then\n+ repeat\n+ if not SuggestedInvoices.Contains(DocLinkToBCDoc.\"Document No.\") then\n+ ApplyOpenCustomerEntriesForInvoice(DocLinkToBCDoc.\"Document No.\", AmountToApply, Applied);\n+ until DocLinkToBCDoc.Next() = 0;\n+\n+ if Applied and (AmountToApply > 0) then\n+ CreateSuggestPaymentGLAccount(AmountToApply, true);\n end;\n OrderTransaction.Type::Refund:\n begin\n@@ -275,6 +280,23 @@ report 30118 \"Shpfy Suggest Payments\"\n end;\n end;\n \n+ local procedure ApplyOpenCustomerEntriesForInvoice(InvoiceNo: Code[20]; var AmountToApply: Decimal; var Applied: Boolean)\n+ var\n+ CustLedgerEntry: Record \"Cust. Ledger Entry\";\n+ begin\n+ CustLedgerEntry.SetAutoCalcFields(\"Remaining Amount\");\n+ CustLedgerEntry.SetRange(\"Open\", true);\n+ CustLedgerEntry.SetRange(\"Applies-to ID\", '');\n+ CustLedgerEntry.SetRange(\"Document Type\", CustLedgerEntry.\"Document Type\"::Invoice);\n+ CustLedgerEntry.SetRange(\"Document No.\", InvoiceNo);\n+ if CustLedgerEntry.FindSet() then begin\n+ Applied := true;\n+ repeat\n+ CreateSuggestPaymentDocument(CustLedgerEntry, AmountToApply, true);\n+ until CustLedgerEntry.Next() = 0;\n+ end;\n+ end;\n+\n local procedure CreateSuggestPaymentDocument(var CustLedgerEntry: Record \"Cust. Ledger Entry\"; var AmountToApply: Decimal; IsInvoice: Boolean)\n begin\n TempSuggestPayment.Init();\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-206135", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Document/WhseShipmentSubform.Page.al b/App/Layers/W1/BaseApp/Warehouse/Document/WhseShipmentSubform.Page.al\nindex 052023ce..685199aa 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Document/WhseShipmentSubform.Page.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Document/WhseShipmentSubform.Page.al\n@@ -392,6 +392,8 @@ page 7336 \"Whse. Shipment Subform\"\n begin\n WhseShptLine.Copy(Rec);\n WhsePostShipmentYesNo.Preview(WhseShptLine);\n+ Rec.Reset();\n+ Rec.SetCurrentKey(\"No.\", \"Sorting Sequence No.\");\n CurrPage.Update(false);\n end;\n \n@@ -473,4 +475,3 @@ page 7336 \"Whse. Shipment Subform\"\n begin\n end;\n }\n-\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137154'\nCodeunit 137154 SCM Warehouse Management II\n Testfunction WarehouseShipmentPageRemainsOpenWhenRunPreviewPostAndCloseGLPostingPreviewPage Failure (13.434 seconds)\n Error:\n The TestPage is not open.\n Call Stack:\n \"SCM Warehouse Management II\"(CodeUnit 137154).WarehouseShipmentPageRemainsOpenWhenRunPreviewPostAndCloseGLPostingPreviewPage line 49 - Tests-SCM by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0"} +{"instance_id": "microsoftInternal__NAV-217104", "project": "AutomaticAccountCodes", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al b/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\nindex 0e4bcfe3..60948e9e 100644\n--- a/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\n+++ b/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\n@@ -71,7 +71,9 @@ codeunit 4850 \"AA Codes Posting Helper\"\n GenJnlCheckLine: Codeunit \"Gen. Jnl.-Check Line\";\n NoOfAutoAccounts: Decimal;\n TotalAmount: Decimal;\n+ TotalAmountLCY: Decimal;\n TotalAltAmount: Decimal;\n+ AutoAccAmountLCY: Decimal;\n SourceCurrBaseAmount: Decimal;\n AccLine: Integer;\n begin\n@@ -114,17 +116,22 @@ codeunit 4850 \"AA Codes Posting Helper\"\n GenJnlLine2.\"Shortcut Dimension 1 Code\" := GenJnlLine.\"Shortcut Dimension 1 Code\";\n GenJnlLine2.\"Shortcut Dimension 2 Code\" := GenJnlLine.\"Shortcut Dimension 2 Code\";\n CopyDimensionFromAutoAccLine(GenJnlLine2, AutomaticAccountLine);\n+\n+ AutoAccAmountLCY := GenJnlLine.\"VAT Base Amount (LCY)\" * AutomaticAccountLine.\"Allocation %\" / 100;\n AccLine := AccLine + 1;\n TotalAmount := TotalAmount + GenJnlLine2.Amount;\n+ TotalAmountLCY := TotalAmountLCY + AutoAccAmountLCY;\n TotalAltAmount := TotalAltAmount + GenJnlLine2.\"Source Currency Amount\";\n if (AccLine = NoOfAutoAccounts) and (TotalAmount <> 0) then\n GenJnlLine2.Validate(Amount, GenJnlLine2.Amount - TotalAmount);\n+ if (AccLine = NoOfAutoAccounts) and (TotalAmountLCY <> 0) then\n+ AutoAccAmountLCY := AutoAccAmountLCY - TotalAmountLCY;\n if (AccLine = NoOfAutoAccounts) and (TotalAltAmount <> 0) then\n GenJnlLine2.Validate(\"Source Currency Amount\", GenJnlLine2.\"Source Currency Amount\" - TotalAltAmount);\n GenJnlCheckLine.RunCheck(GenJnlLine2);\n \n sender.InitGLEntry(GenJnlLine2, GLEntry,\n- GenJnlLine2.\"Account No.\", GenJnlLine2.\"Amount (LCY)\",\n+ GenJnlLine2.\"Account No.\", AutoAccAmountLCY,\n GenJnlLine2.\"Source Currency Amount\", true, GenJnlLine2.\"System-Created Entry\");\n GLEntry.\"Gen. Posting Type\" := GenJnlLine.\"Gen. Posting Type\";\n GLEntry.\"Bal. Account Type\" := GenJnlLine.\"Bal. Account Type\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139598'\nCodeunit 139598 AAC Auto. Acc. Group Posting\n Testfunction PostGenJnlLineWithAmountDivisionWithAccGroup Failure (6.523 seconds)\n Error:\n Amount (LCY) 2,633.335 needs to be rounded in G/L Entry Entry No.='3332'.\n Call Stack:\n \"Gen. Jnl.-Post Line\"(CodeUnit 12).InsertGLEntry line 13 - Base Application by Microsoft version 27.0.0.0\n \"AA Codes Posting Helper\"(CodeUnit 4850).PostAutoAcc line 82 - Automatic Account Codes by Microsoft version 27.0.0.0\n \"AA Codes Posting Helper\"(CodeUnit 4850).PostAccGroup line 3 - Automatic Account Codes by Microsoft version 27.0.0.0\n \"AA Codes Posting Helper\"(CodeUnit 4850).OnPostGLAccOnBeforeDeferralPosting line 2 - Automatic Account Codes by Microsoft version 27.0.0.0\n \"Gen. Jnl.-Post Line\"(CodeUnit 12).OnPostGLAccOnBeforeDeferralPosting(Event) line 2 - Base Application by Microsoft version 27.0.0.0\n \"Gen. Jnl.-Post Line\"(CodeUnit 12).PostGLAcc line 42 - Base Application by Microsoft version 27.0.0.0\n \"Gen. Jnl.-Post Line\"(CodeUnit 12).PostGenJnlLine line 6 - Base Application by Microsoft version 27.0.0.0\n \"Gen. Jnl.-Post Line\"(CodeUnit 12).Code line 67 - Base Application by Microsoft version 27.0.0.0\n \"Gen. Jnl.-Post Line\"(CodeUnit 12).RunWithoutCheck line 11 - Base Application by Microsoft version 27.0.0.0\n \"Gen. Jnl.-Post Batch\"(CodeUnit 13).PostGenJournalLine line 23 - Base Application by Microsoft version 27.0.0.0\n \"Gen. Jnl.-Post Batch\"(CodeUnit 13).ProcessLines line 86 - Base Application by Microsoft version 27.0.0.0\n \"Gen. Jnl.-Post Batch\"(CodeUnit 13).Code line 30 - Base Application by Microsoft version 27.0.0.0\n \"Gen. Jnl.-Post Batch\"(CodeUnit 13).OnRun(Trigger) line 9 - Base Application by Microsoft version 27.0.0.0\n \"Library - ERM\"(CodeUnit 131300).PostGeneralJnlLine line 2 - Tests-TestLibraries by Microsoft version 27.0.0.0"} +{"instance_id": "microsoftInternal__NAV-207247", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\nindex bd370429..1a4bd6d8 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n@@ -1539,8 +1539,9 @@ codeunit 99000813 \"Carry Out Action\"\n ActiveVersionCode := VersionManagement.GetBOMVersion(ProductionBOMHeader.\"No.\", WorkDate(), true);\n \n ProductionBOMLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n+ ProductionBOMLine.SetRange(\"Version Code\", ActiveVersionCode);\n ProductionBOMLine.SetRange(Type, ProductionBOMLine.Type::Item);\n- ProductionBOMLine.SetRange(\"No.\", ProdOrderComponent.\"Item No.\");\n+ SetFiltersFromProdOrderComponent(ProductionBOMLine, ProdOrderComponent);\n if ProductionBOMLine.FindSet() then\n repeat\n ProductionBOMCommentLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n@@ -1555,6 +1556,22 @@ codeunit 99000813 \"Carry Out Action\"\n until ProductionBOMLine.Next() = 0;\n end;\n \n+ local procedure SetFiltersFromProdOrderComponent(var ProductionBOMLine: Record \"Production BOM Line\"; ProdOrderComponent: Record \"Prod. Order Component\")\n+ begin\n+ ProductionBOMLine.SetRange(\"No.\", ProdOrderComponent.\"Item No.\");\n+ ProductionBOMLine.SetRange(\"Variant Code\", ProdOrderComponent.\"Variant Code\");\n+ ProductionBOMLine.SetRange(\"Routing Link Code\", ProdOrderComponent.\"Routing Link Code\");\n+ ProductionBOMLine.SetRange(Position, ProdOrderComponent.Position);\n+ ProductionBOMLine.SetRange(\"Position 2\", ProdOrderComponent.\"Position 2\");\n+ ProductionBOMLine.SetRange(\"Position 3\", ProdOrderComponent.\"Position 3\");\n+ ProductionBOMLine.SetRange(Length, ProdOrderComponent.Length);\n+ ProductionBOMLine.SetRange(Width, ProdOrderComponent.Width);\n+ ProductionBOMLine.SetRange(Weight, ProdOrderComponent.Weight);\n+ ProductionBOMLine.SetRange(Depth, ProdOrderComponent.Depth);\n+ ProductionBOMLine.SetRange(\"Unit of Measure Code\", ProdOrderComponent.\"Unit of Measure Code\");\n+ ProductionBOMLine.SetRange(\"Calculation Formula\", ProdOrderComponent.\"Calculation Formula\");\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnAfterCarryOutToReqWksh(var RequisitionLine: Record \"Requisition Line\"; RequisitionLine2: Record \"Requisition Line\")\n begin\n@@ -1920,4 +1937,3 @@ codeunit 99000813 \"Carry Out Action\"\n begin\n end;\n }\n-\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-207177", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\nindex a84b0558..23da6721 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n@@ -42,7 +42,7 @@ page 7504 \"Item Attribute Value List\"\n DeleteItemAttributeValueMapping(ItemAttribute.ID);\n end;\n \n- if not Rec.FindAttributeValue(ItemAttributeValue) then\n+ if (Rec.Value <> '') and (not Rec.FindAttributeValue(ItemAttributeValue)) then\n Rec.InsertItemAttributeValue(ItemAttributeValue, Rec);\n \n if ItemAttributeValue.Get(ItemAttributeValue.\"Attribute ID\", ItemAttributeValue.ID) then begin\n@@ -184,4 +184,3 @@ page 7504 \"Item Attribute Value List\"\n begin\n end;\n }\n-\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-207236", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al b/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\nindex fbf39fce..81fb4dbf 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\n@@ -7037,6 +7037,7 @@ table 36 \"Sales Header\"\n if DeferralHeadersExist() then\n exit;\n \n+ xRec := Rec;\n \"Posting Date\" := PostingDateReq;\n Validate(\"Currency Code\");\n \n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-206977", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\nindex 0877c357..849f8e78 100644\n--- a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\n+++ b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\n@@ -161,7 +161,14 @@ page 903 \"Assembly Lines\"\n AssemblyHeader: Record \"Assembly Header\";\n begin\n AssemblyHeader.Get(Rec.\"Document Type\", Rec.\"Document No.\");\n- PAGE.Run(PAGE::\"Assembly Order\", AssemblyHeader);\n+ case AssemblyHeader.\"Document Type\" of\n+ AssemblyHeader.\"Document Type\"::Quote:\n+ PAGE.Run(PAGE::\"Assembly Quote\", AssemblyHeader);\n+ AssemblyHeader.\"Document Type\"::Order:\n+ PAGE.Run(PAGE::\"Assembly Order\", AssemblyHeader);\n+ AssemblyHeader.\"Document Type\"::\"Blanket Order\":\n+ PAGE.Run(PAGE::\"Blanket Assembly Order\", AssemblyHeader);\n+ end;\n end;\n }\n action(\"Reservation Entries\")\n@@ -211,4 +218,3 @@ page 903 \"Assembly Lines\"\n }\n }\n }\n-\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-191624", "project": "ExcelReports", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": false, "output": "diff --git a/App/Apps/W1/ExcelReports/app/src/Financials/EXRFixedAssetAnalysisExcel.Report.al b/App/Apps/W1/ExcelReports/app/src/Financials/EXRFixedAssetAnalysisExcel.Report.al\nindex 686231b5..3e239b72 100644\n--- a/App/Apps/W1/ExcelReports/app/src/Financials/EXRFixedAssetAnalysisExcel.Report.al\n+++ b/App/Apps/W1/ExcelReports/app/src/Financials/EXRFixedAssetAnalysisExcel.Report.al\n@@ -32,6 +32,18 @@ report 4412 \"EXR Fixed Asset Analysis Excel\"\n column(DisposalDateField; DisposalDate) { }\n column(GlobalDimension1Code; \"Global Dimension 1 Code\") { IncludeCaption = true; }\n column(GlobalDimension2Code; \"Global Dimension 2 Code\") { IncludeCaption = true; }\n+ trigger OnAfterGetRecord()\n+ var\n+ FADepreciationBook: Record \"FA Depreciation Book\";\n+ begin\n+ Clear(AcquisitionDate);\n+ Clear(DisposalDate);\n+ if FADepreciationBook.Get(FixedAssetData.\"No.\", DepreciationBookCode) then begin\n+ AcquisitionDate := FADepreciationBook.\"Acquisition Date\";\n+ DisposalDate := FADepreciationBook.\"Disposal Date\";\n+ end;\n+ end;\n+\n dataitem(FAPostingType; \"FA Posting Type\")\n {\n DataItemTableView = where(\"FA Entry\" = const(true));\n@@ -42,16 +54,12 @@ report 4412 \"EXR Fixed Asset Analysis Excel\"\n column(NetChange; NetChange) { }\n trigger OnAfterGetRecord()\n var\n- FADepreciationBook: Record \"FA Depreciation Book\";\n FAGeneralReport: Codeunit \"FA General Report\";\n BudgetDepreciation: Codeunit \"Budget Depreciation\";\n BeforeAmount, EndingAmount : Decimal;\n begin\n if ShouldSkipRecord() then\n CurrReport.Skip();\n- FADepreciationBook.Get(FixedAssetData.\"No.\", DepreciationBookCode);\n- AcquisitionDate := FADepreciationBook.\"Acquisition Date\";\n- DisposalDate := FADepreciationBook.\"Disposal Date\";\n if BudgetReport then\n BudgetDepreciation.Calculate(FixedAssetData.\"No.\", StartingDate - 1, EndingDate, DepreciationBookCode, BeforeAmount, EndingAmount);\n \n", "error_message": "Build or publish failed for App\\Apps\\W1\\ExcelReports\\app:\nC:\\Source\\App\\Apps\\W1\\ExcelReports\\app\\src\\Financials\\EXRFixedAssetAnalysisExcel.Report.al(47,13): error AL0104: Syntax error, '}' expected\nC:\\Source\\App\\Apps\\W1\\ExcelReports\\app\\src\\Financials\\EXRFixedAssetAnalysisExcel.Report.al(77,5): error AL0198: Expected one of the application object keywords (table, tableextension, page, pageextension, pagecustomization, profile, profileextension, codeunit, report, reportextension, xmlport, query, controladdin, dotnet, enum, enumextension, interface, permissionset, permissionsetextension, entitlement)\nC:\\Source\\App\\Apps\\W1\\ExcelReports\\app\\src\\Financials\\EXRFixedAssetAnalysisExcel.Report.al(223,35): error AL0114: Syntax error, integer literal expected\nC:\\Source\\App\\Apps\\W1\\ExcelReports\\app\\src\\Financials\\EXRFixedAssetAnalysisExcel.Report.al(223,54): error AL0104: Syntax error, '{' expected\nC:\\Source\\App\\Apps\\W1\\ExcelReports\\app\\src\\Financials\\EXRFixedAssetAnalysisExcel.Report.al(223,54): error AL0104: Syntax error, '}' expected\nC:\\Source\\App\\Apps\\W1\\ExcelReports\\app\\src\\Financials\\EXRFixedAssetAnalysisExcel.Report.al(223,54): error AL0198: Expected one of the application object keywords (table, tableextension, page, pageextension, pagecustomization, profile, profileextension, codeunit, report, reportextension, xmlport, query, controladdin, dotnet, enum, enumextension, interface, permissionset, permissionsetextension, entitlement)"} +{"instance_id": "microsoftInternal__NAV-195193", "project": "ExcelReports", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al b/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al\nindex 7cf0915e..9db99c2c 100644\n--- a/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al\n+++ b/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al\n@@ -119,6 +119,7 @@ codeunit 4410 \"Trial Balance\"\n \n local procedure InsertTrialBalanceDataForGLAccountWithFilters(var GLAccount: Record \"G/L Account\"; Dimension1ValueCode: Code[20]; Dimension2ValueCode: Code[20]; BusinessUnitCode: Code[20]; var TrialBalanceData: Record \"EXR Trial Balance Buffer\"; var Dimension1Values: Record \"Dimension Value\" temporary; var Dimension2Values: Record \"Dimension Value\" temporary)\n begin\n+ TrialBalanceData.Init();\n GlAccount.CalcFields(\"Net Change\", \"Balance at Date\", \"Additional-Currency Net Change\", \"Add.-Currency Balance at Date\", \"Budgeted Amount\", \"Budget at Date\");\n TrialBalanceData.\"G/L Account No.\" := GlAccount.\"No.\";\n TrialBalanceData.\"Dimension 1 Code\" := Dimension1ValueCode;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139544'\nCodeunit 139544 Trial Balance Excel Reports\n Testfunction TrialBalanceBufferNetChangeSplitsIntoDebitAndCreditWhenCalledSeveralTimes Failure (0.363 seconds)\n Error:\n Assert.AreEqual failed. Expected:<110> (Decimal). Actual:<947> (Decimal). Split in line in credit and debit should be the same as the inserted value..\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"Trial Balance Excel Reports\"(CodeUnit 139544).TrialBalanceBufferNetChangeSplitsIntoDebitAndCreditWhenCalledSeveralTimes line 38 - Dynamics BC Excel Reports Tests by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"instance_id": "microsoftInternal__NAV-207878", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLine.Table.al b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLine.Table.al\nindex 62ba45ed..120cb2f8 100644\n--- a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLine.Table.al\n@@ -1489,12 +1489,9 @@ table 901 \"Assembly Line\"\n OldAssemblyLine: Record \"Assembly Line\";\n CompanyInfo: Record \"Company Information\";\n AvailableToPromise: Codeunit \"Available to Promise\";\n- LookaheadDateFormula: DateFormula;\n- AvailabilityDate: Date;\n ReservedReceipt: Decimal;\n ReservedRequirement: Decimal;\n QtyAvailable: Decimal;\n- PeriodType: Enum \"Analysis Period Type\";\n begin\n OnBeforeCalcAvailQuantities(Rec);\n SetItemFilter(Item);\n@@ -1507,18 +1504,6 @@ table 901 \"Assembly Line\"\n GrossRequirement -= OldAssemblyLine.\"Remaining Quantity (Base)\";\n \n CompanyInfo.Get();\n- LookaheadDateFormula := CompanyInfo.\"Check-Avail. Period Calc.\";\n- if Format(LookaheadDateFormula) <> '' then begin\n- AvailabilityDate := Item.GetRangeMax(\"Date Filter\");\n- PeriodType := CompanyInfo.\"Check-Avail. Time Bucket\";\n-\n- GrossRequirement :=\n- GrossRequirement +\n- AvailableToPromise.CalculateForward(\n- Item, PeriodType,\n- AvailabilityDate + 1,\n- AvailableToPromise.GetPeriodEndingDate(CalcDate(LookaheadDateFormula, AvailabilityDate), PeriodType));\n- end;\n \n EarliestDate :=\n AvailableToPromise.CalcEarliestAvailabilityDate(\n@@ -2319,4 +2304,3 @@ table 901 \"Assembly Line\"\n begin\n end;\n }\n-\ndiff --git a/App/Layers/W1/BaseApp/Inventory/Availability/ItemCheckAvail.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Availability/ItemCheckAvail.Codeunit.al\nindex 26f5dfa5..03096f3b 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Availability/ItemCheckAvail.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Availability/ItemCheckAvail.Codeunit.al\n@@ -47,6 +47,7 @@ codeunit 311 \"Item-Check Avail.\"\n EarliestAvailDate: Date;\n InventoryQty: Decimal;\n OldItemShipmentDate: Date;\n+ CalculateByDueDateOnly: Boolean;\n ContextInfo: Dictionary of [Text, Text];\n \n #pragma warning disable AA0074\n@@ -324,6 +325,7 @@ codeunit 311 \"Item-Check Avail.\"\n \n local procedure QtyAvailToPromise(var Item: Record Item; CompanyInfo: Record \"Company Information\")\n var\n+ AvailabilityPeriodCalc: DateFormula;\n IsHandled: Boolean;\n begin\n IsHandled := false;\n@@ -331,9 +333,14 @@ codeunit 311 \"Item-Check Avail.\"\n if IsHandled then\n exit;\n \n+ if CalculateByDueDateOnly then\n+ Evaluate(AvailabilityPeriodCalc, '<0D>')\n+ else\n+ AvailabilityPeriodCalc := CompanyInfo.\"Check-Avail. Period Calc.\";\n+\n AvailableToPromise.CalcQtyAvailabletoPromise(\n Item, GrossReq, SchedRcpt, Item.GetRangeMax(\"Date Filter\"),\n- CompanyInfo.\"Check-Avail. Time Bucket\", CompanyInfo.\"Check-Avail. Period Calc.\");\n+ CompanyInfo.\"Check-Avail. Time Bucket\", AvailabilityPeriodCalc);\n InventoryQty := ConvertQty(AvailableToPromise.CalcAvailableInventory(Item) - OldItemNetResChange);\n GrossReq := ConvertQty(GrossReq);\n ReservedReq := ConvertQty(AvailableToPromise.CalcReservedRequirement(Item) + OldItemNetResChange);\n@@ -512,7 +519,8 @@ codeunit 311 \"Item-Check Avail.\"\n if IsHandled then\n exit(IsWarning);\n \n- exit(\n+ CalculateByDueDateOnly := true;\n+ IsWarning :=\n ShowWarning(\n AssemblyLine.\"No.\",\n AssemblyLine.\"Variant Code\",\n@@ -522,7 +530,9 @@ codeunit 311 \"Item-Check Avail.\"\n -AssemblyLine.\"Remaining Quantity\",\n OldItemNetChange,\n AssemblyLine.\"Due Date\",\n- OldAssemblyLine.\"Due Date\"));\n+ OldAssemblyLine.\"Due Date\");\n+ CalculateByDueDateOnly := false;\n+ exit(IsWarning);\n end;\n \n procedure AsmOrderCalculate(AssemblyHeader: Record \"Assembly Header\"; var InventoryQty2: Decimal; var GrossReq2: Decimal; var ReservedReq2: Decimal; var SchedRcpt2: Decimal; var ReservedRcpt2: Decimal)\n@@ -538,7 +548,9 @@ codeunit 311 \"Item-Check Avail.\"\n AssemblyHeader.\"Due Date\" := WorkDate();\n SetFilterOnItem(Item, AssemblyHeader.\"Item No.\", AssemblyHeader.\"Variant Code\", AssemblyHeader.\"Location Code\", AssemblyHeader.\"Due Date\");\n CompanyInfo.Get();\n+ CalculateByDueDateOnly := true;\n QtyAvailToPromise(Item, CompanyInfo);\n+ CalculateByDueDateOnly := false;\n \n OldAssemblyHeader := AssemblyHeader;\n if OldAssemblyHeader.Find() then\n@@ -952,4 +964,3 @@ codeunit 311 \"Item-Check Avail.\"\n begin\n end;\n }\n-\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-185792", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\nindex 53e7159a..da7c4360 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\n@@ -598,6 +598,11 @@ table 81 \"Gen. Journal Line\"\n Validate(\"VAT %\");\n Validate(\"Bal. VAT %\");\n UpdateLineBalance();\n+\n+ if JobTaskIsSet() then begin\n+ CreateTempJobJnlLine();\n+ UpdatePricesFromJobJnlLine();\n+ end;\n end;\n end;\n }\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-185488", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al b/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al\nindex bcd82095..cbf6a4f3 100644\n--- a/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al\n@@ -368,7 +368,7 @@ codeunit 1521 \"Workflow Response Handling\"\n DoNothingCode():\n DoNothing();\n CreateNotificationEntryCode():\n- CreateNotificationEntry(ResponseWorkflowStepInstance, xVariant);\n+ CreateNotificationEntry(ResponseWorkflowStepInstance, Variant);\n ReleaseDocumentCode():\n ReleaseDocument(Variant);\n OpenDocumentCode():\n@@ -624,22 +624,63 @@ codeunit 1521 \"Workflow Response Handling\"\n begin\n end;\n \n- local procedure CreateNotificationEntry(WorkflowStepInstance: Record \"Workflow Step Instance\"; ApprovalEntry: Record \"Approval Entry\")\n+ local procedure CreateNotificationEntry(WorkflowStepInstance: Record \"Workflow Step Instance\"; NotificationSource: Variant)\n var\n WorkflowStepArgument: Record \"Workflow Step Argument\";\n NotificationEntry: Record \"Notification Entry\";\n+ ApprovalEntry: Record \"Approval Entry\";\n+ NotificationUserID: Text[50];\n+ NotificationRecord: Variant;\n+ ApprovalEntryFound: Boolean;\n IsHandled: Boolean;\n begin\n+ ApprovalEntryFound := TryGetApprovalEntryForNotification(NotificationSource, ApprovalEntry);\n+\n IsHandled := false;\n OnBeforeCreateNotificationEntry(WorkflowStepInstance, ApprovalEntry, IsHandled);\n if IsHandled then\n exit;\n \n- if WorkflowStepArgument.Get(WorkflowStepInstance.Argument) then\n- NotificationEntry.CreateNotificationEntry(\n- WorkflowStepArgument.\"Notification Entry Type\",\n- WorkflowStepArgument.GetNotificationUserID(ApprovalEntry), ApprovalEntry, WorkflowStepArgument.\"Link Target Page\",\n- WorkflowStepArgument.\"Custom Link\", UserID);\n+ if not WorkflowStepArgument.Get(WorkflowStepInstance.Argument) then\n+ exit;\n+\n+ if (WorkflowStepArgument.\"Notification Entry Type\" = WorkflowStepArgument.\"Notification Entry Type\"::Approval) or\n+ (WorkflowStepArgument.\"Notification User ID\" = '')\n+ then\n+ if not ApprovalEntryFound then\n+ exit;\n+\n+ if WorkflowStepArgument.\"Notification User ID\" <> '' then\n+ NotificationUserID := WorkflowStepArgument.\"Notification User ID\"\n+ else\n+ NotificationUserID := WorkflowStepArgument.GetNotificationUserID(ApprovalEntry);\n+\n+ if WorkflowStepArgument.\"Notification Entry Type\" = WorkflowStepArgument.\"Notification Entry Type\"::Approval then\n+ NotificationRecord := ApprovalEntry\n+ else\n+ NotificationRecord := NotificationSource;\n+\n+ NotificationEntry.CreateNotificationEntry(\n+ WorkflowStepArgument.\"Notification Entry Type\",\n+ NotificationUserID,\n+ NotificationRecord,\n+ WorkflowStepArgument.\"Link Target Page\",\n+ WorkflowStepArgument.\"Custom Link\",\n+ UserID);\n+ end;\n+\n+ local procedure TryGetApprovalEntryForNotification(NotificationSource: Variant; var ApprovalEntry: Record \"Approval Entry\"): Boolean\n+ var\n+ ApprovalsMgmt: Codeunit \"Approvals Mgmt.\";\n+ RecRef: RecordRef;\n+ begin\n+ RecRef.GetTable(NotificationSource);\n+ if RecRef.Number = DATABASE::\"Approval Entry\" then begin\n+ ApprovalEntry := NotificationSource;\n+ exit(true);\n+ end;\n+\n+ exit(ApprovalsMgmt.FindApprovalEntryByRecordId(ApprovalEntry, RecRef.RecordId));\n end;\n \n local procedure ReleaseDocument(var Variant: Variant)\n@@ -1402,4 +1443,3 @@ codeunit 1521 \"Workflow Response Handling\"\n begin\n end;\n }\n-\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134184'\nCodeunit 134184 WF Demo Purch Quote Approvals\n Testfunction CanRequestApprovalPurchaseQuoteWithNotifySender Failure (4.904 seconds)\n Error:\n Microsoft.Dynamics.Nav.Runtime.NavVariant variable not initialized.\n Call Stack:\n \"Workflow Response Handling\"(CodeUnit 1521).TryGetApprovalEntryForNotification line 5 - Base Application by Microsoft\n \"Workflow Response Handling\"(CodeUnit 1521).CreateNotificationEntry line 10 - Base Application by Microsoft\n \"Workflow Response Handling\"(CodeUnit 1521).ExecuteResponse line 27 - Base Application by Microsoft\n \"WF Demo Purch Quote Approvals\"(CodeUnit 134184).CanRequestApprovalPurchaseQuoteWithNotifySender line 38 - Tests-Workflow by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"instance_id": "microsoftInternal__NAV-192565", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\nindex fb45dbcf..8d0de910 100644\n--- a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n@@ -5365,6 +5365,8 @@ table 39 \"Purchase Line\"\n Amount := 0;\n \"VAT Base Amount\" := 0;\n \"Amount Including VAT\" := 0;\n+ NonDeductibleVAT.Update(Rec, Currency);\n+ NonDeductibleVAT.InitNonDeductibleVATDiff(Rec);\n OnUpdateVATAmountsOnBeforePurchLineModify(Rec, PurchLine2);\n if (Quantity = 0) and (xRec.Quantity <> 0) and (xRec.Amount <> 0) then begin\n if \"Line No.\" <> 0 then\n@@ -11627,4 +11629,3 @@ table 39 \"Purchase Line\"\n begin\n end;\n }\n-\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-181900", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/OtherCapabilities/Approvals/ApprovalsMgmt.Codeunit.al b/App/Layers/W1/BaseApp/OtherCapabilities/Approvals/ApprovalsMgmt.Codeunit.al\nindex 266d61e5..7d4c411b 100644\n--- a/App/Layers/W1/BaseApp/OtherCapabilities/Approvals/ApprovalsMgmt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/OtherCapabilities/Approvals/ApprovalsMgmt.Codeunit.al\n@@ -2499,6 +2499,9 @@ codeunit 1535 \"Approvals Mgmt.\"\n FieldRef: FieldRef;\n ApprovalStatusName: Text;\n begin\n+ if HasOpenOrPendingApprovalEntries(GenJournalBatch.RecordId) then\n+ exit(CopyStr(PendingApprovalLbl, 1, 20));\n+\n GetApprovalEntryStatusFieldRef(FieldRef, ApprovalEntry);\n ApprovalStatusName := GetApprovalEntryStatusValueName(FieldRef, ApprovalEntry);\n if ApprovalStatusName = 'Open' then\n@@ -2528,6 +2531,9 @@ codeunit 1535 \"Approvals Mgmt.\"\n FieldRef: FieldRef;\n ApprovalStatusName: Text;\n begin\n+ if HasOpenOrPendingApprovalEntries(GenJournalLine.RecordId) then\n+ exit(CopyStr(PendingApprovalLbl, 1, 20));\n+\n GetApprovalEntryStatusFieldRef(FieldRef, ApprovalEntry);\n ApprovalStatusName := GetApprovalEntryStatusValueName(FieldRef, ApprovalEntry);\n if ApprovalStatusName = 'Open' then\n@@ -2565,12 +2571,14 @@ codeunit 1535 \"Approvals Mgmt.\"\n begin\n if GenJournalBatch.Get(GenJournalLine.\"Journal Template Name\", GenJournalLine.\"Journal Batch Name\") then\n if IsGeneralJournalBatchApprovalsWorkflowEnabled(GenJournalBatch) then\n- if FindApprovalEntryByRecordId(ApprovalEntry, GenJournalBatch.RecordId) and (ApprovalEntry.Status = ApprovalEntry.Status::Approved) then\n- GenJnlBatchApprovalStatus := CopyStr(ImposedRestrictionLbl, 1, 20);\n+ if not HasOpenOrPendingApprovalEntries(GenJournalBatch.RecordId) then\n+ if FindApprovalEntryByRecordId(ApprovalEntry, GenJournalBatch.RecordId) and (ApprovalEntry.Status = ApprovalEntry.Status::Approved) then\n+ GenJnlBatchApprovalStatus := CopyStr(ImposedRestrictionLbl, 1, 20);\n \n if IsGeneralJournalLineApprovalsWorkflowEnabled(GenJournalLine) then\n- if FindApprovalEntryByRecordId(ApprovalEntry, GenJournalLine.RecordId) and (ApprovalEntry.Status = ApprovalEntry.Status::Approved) then\n- GenJnlLineApprovalStatus := CopyStr(ImposedRestrictionLbl, 1, 20);\n+ if not HasOpenOrPendingApprovalEntries(GenJournalLine.RecordId) then\n+ if FindApprovalEntryByRecordId(ApprovalEntry, GenJournalLine.RecordId) and (ApprovalEntry.Status = ApprovalEntry.Status::Approved) then\n+ GenJnlLineApprovalStatus := CopyStr(ImposedRestrictionLbl, 1, 20);\n end;\n \n local procedure FindOpenApprovalEntryForSequenceNo(RecRef: RecordRef; WorkflowStepInstance: Record \"Workflow Step Instance\"; SequenceNo: Integer): Boolean\n@@ -3108,4 +3116,3 @@ codeunit 1535 \"Approvals Mgmt.\"\n begin\n end;\n }\n-\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134321'\nCodeunit 134321 General Journal Batch Approval\n Testfunction ShowImposedRestrictionBatchStatusForWorkflowUserGroupIfFirstApprovalEntryIsApproved Failure (7.493 seconds)\n Error:\n Assert.AreEqual failed. Expected: (Text). Actual: (Text). Imposed restriction is not shown.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"General Journal Batch Approval\"(CodeUnit 134321).ShowImposedRestrictionBatchStatusForWorkflowUserGroupIfFirstApprovalEntryIsApproved line 30 - Tests-General Journal by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"instance_id": "microsoftInternal__NAV-182354", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/RoleCenters/FinanceCue.Table.al b/App/Layers/W1/BaseApp/Finance/RoleCenters/FinanceCue.Table.al\nindex f1aab59d..ced2add0 100644\n--- a/App/Layers/W1/BaseApp/Finance/RoleCenters/FinanceCue.Table.al\n+++ b/App/Layers/W1/BaseApp/Finance/RoleCenters/FinanceCue.Table.al\n@@ -199,7 +199,7 @@ table 9054 \"Finance Cue\"\n Caption = 'Total Overdue (LCY)';\n FieldClass = FlowField;\n CalcFormula = sum(\"Detailed Cust. Ledg. Entry\".\"Amount (LCY)\" where(\n- \"Initial Entry Due Date\" = field(upperlimit(\"Overdue Date Filter\"))\n+ \"Initial Entry Due Date\" = field(\"Overdue Date Filter\")\n ));\n }\n field(35; \"Total Outstanding (LCY)\"; Decimal)\n@@ -271,4 +271,3 @@ table 9054 \"Finance Cue\"\n exit(ActivitiesCue.GetAmountFormat());\n end;\n }\n-\ndiff --git a/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al b/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al\nindex 737182d0..19077f26 100644\n--- a/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al\n+++ b/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al\n@@ -28,7 +28,7 @@ page 1318 \"Account Receivables KPIs\"\n begin\n CustLedgerEntry.SetRange(Open, true);\n CustLedgerEntry.SetFilter(\"Remaining Amount\", '>%1', 0);\n- CustLedgerEntry.SetFilter(\"Due Date\", '<=%1', WorkDate());\n+ CustLedgerEntry.SetFilter(\"Due Date\", '<=%1', Today);\n CustomerLedgerEntries.SetTableView(CustLedgerEntry);\n CustomerLedgerEntries.Run();\n end;\n@@ -98,7 +98,7 @@ page 1318 \"Account Receivables KPIs\"\n CuesAndKPIs: Codeunit \"Cues And KPIs\";\n SalesInvoicesDueNextWeekStyle: Enum \"Cues And KPIs Style\";\n begin\n- Rec.SetRange(\"Overdue Date Filter\", 0D, WorkDate());\n+ Rec.SetRange(\"Overdue Date Filter\", 0D, Today);\n if not Rec.Get() then begin\n Clear(Rec);\n Rec.Insert();\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134924'\nCodeunit 134924 ERM Cues\n Testfunction TotalOverdueLCYInFinanceCue Failure (6.817 seconds)\n Error:\n Assert.AreEqual failed. Expected:<> (Text). Actual:<50.17> (Text). The total overdue LCY amount is not calculated correctly..\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"ERM Cues\"(CodeUnit 134924).TotalOverdueLCYInFinanceCue line 37 - Tests-ERM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"instance_id": "microsoftInternal__NAV-205825", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\nindex da15d9ef..03126252 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\n@@ -124,6 +124,7 @@ codeunit 205 \"Alt. Cust. VAT Reg. Doc. Impl.\" implements \"Alt. Cust. VAT Reg. Do\n procedure UpdateSetupOnBillToCustomerChangeInSalesHeader(var SalesHeader: Record \"Sales Header\"; xSalesHeader: Record \"Sales Header\"; BillToCustomer: Record Customer)\n var\n GLSetup: Record \"General Ledger Setup\";\n+ ShouldUpdateFromShipToCountry: Boolean;\n begin\n GLSetup.Get();\n if GLSetup.\"Bill-to/Sell-to VAT Calc.\" <> GLSetup.\"Bill-to/Sell-to VAT Calc.\"::\"Bill-to/Pay-to No.\" then\n@@ -133,16 +134,22 @@ codeunit 205 \"Alt. Cust. VAT Reg. Doc. Impl.\" implements \"Alt. Cust. VAT Reg. Do\n if SalesHeader.\"Bill-to Customer No.\" = SalesHeader.\"Sell-to Customer No.\" then\n exit;\n CopyFromCustomer(SalesHeader, xSalesHeader, BillToCustomer);\n- exit;\n+ end else begin\n+ if (SalesHeader.\"VAT Bus. Posting Group\" <> '') and (SalesHeader.\"VAT Bus. Posting Group\" <> BillToCustomer.\"VAT Bus. Posting Group\") then\n+ SalesHeader.Validate(\"VAT Bus. Posting Group\", BillToCustomer.\"VAT Bus. Posting Group\")\n+ else\n+ SalesHeader.\"VAT Bus. Posting Group\" := BillToCustomer.\"VAT Bus. Posting Group\";\n+ SalesHeader.\"VAT Country/Region Code\" := BillToCustomer.\"Country/Region Code\";\n+ SalesHeader.\"VAT Registration No.\" := BillToCustomer.\"VAT Registration No.\";\n+ SalesHeader.\"Registration Number\" := BillToCustomer.\"Registration Number\";\n+ SalesHeader.\"Gen. Bus. Posting Group\" := BillToCustomer.\"Gen. Bus. Posting Group\";\n end;\n- if (SalesHeader.\"VAT Bus. Posting Group\" <> '') and (SalesHeader.\"VAT Bus. Posting Group\" <> BillToCustomer.\"VAT Bus. Posting Group\") then\n- SalesHeader.Validate(\"VAT Bus. Posting Group\", BillToCustomer.\"VAT Bus. Posting Group\")\n- else\n- SalesHeader.\"VAT Bus. Posting Group\" := BillToCustomer.\"VAT Bus. Posting Group\";\n- SalesHeader.\"VAT Country/Region Code\" := BillToCustomer.\"Country/Region Code\";\n- SalesHeader.\"VAT Registration No.\" := BillToCustomer.\"VAT Registration No.\";\n- SalesHeader.\"Registration Number\" := BillToCustomer.\"Registration Number\";\n- SalesHeader.\"Gen. Bus. Posting Group\" := BillToCustomer.\"Gen. Bus. Posting Group\";\n+\n+ ShouldUpdateFromShipToCountry :=\n+ (SalesHeader.\"Ship-to Country/Region Code\" <> '') and\n+ (SalesHeader.\"Ship-to Country/Region Code\" <> SalesHeader.\"VAT Country/Region Code\");\n+ if ShouldUpdateFromShipToCountry then\n+ UpdateSetupOnShipToCountryChangeInSalesHeader(SalesHeader, xSalesHeader);\n end;\n \n local procedure IsAltVATRegUsed(SalesHeader: Record \"Sales Header\"): Boolean\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-185696", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListLines.Page.al b/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListLines.Page.al\nindex bb986d65..8e37088c 100644\n--- a/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListLines.Page.al\n+++ b/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListLines.Page.al\n@@ -293,6 +293,7 @@ page 7001 \"Price List Lines\"\n begin\n if not GetHeader() then\n exit;\n+ Rec.SetNewRecord(true);\n if PriceListHeader.\"Allow Updating Defaults\" then begin\n Rec.CopySourceFrom(PriceListHeader);\n if Rec.\"Starting Date\" = 0D then\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-176426", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\nindex d639a562..25b915a1 100644\n--- a/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\n@@ -983,6 +983,8 @@ codeunit 5870 \"Calculate BOM Tree\"\n local procedure HasBomStructure(ItemNo: Code[20]): Boolean\n var\n Item: Record Item;\n+ ProdBOMLine: Record \"Production BOM Line\";\n+ VersionMgt: Codeunit VersionManagement;\n begin\n Item.Get(ItemNo);\n case Item.\"Replenishment System\" of\n@@ -993,8 +995,15 @@ codeunit 5870 \"Calculate BOM Tree\"\n exit(true);\n end;\n Item.\"Replenishment System\"::\"Prod. Order\":\n- if Item.\"Production BOM No.\" <> '' then\n- exit(true);\n+ if Item.\"Production BOM No.\" <> '' then begin\n+ ProdBOMLine.SetRange(\"Production BOM No.\", Item.\"Production BOM No.\");\n+ ProdBOMLine.SetRange(\"Version Code\", VersionMgt.GetBOMVersion(Item.\"Production BOM No.\", WorkDate(), true));\n+ ProdBOMLine.SetFilter(\"Starting Date\", '%1|..%2', 0D, WorkDate());\n+ ProdBOMLine.SetFilter(\"Ending Date\", '%1|%2..', 0D, WorkDate());\n+ ProdBOMLine.SetFilter(\"No.\", '<>%1', '');\n+ if not ProdBOMLine.IsEmpty() then\n+ exit(true);\n+ end;\n end;\n end;\n \n@@ -1174,4 +1183,3 @@ codeunit 5870 \"Calculate BOM Tree\"\n begin\n end;\n }\n-\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137391'\nCodeunit 137391 SCM - BOM Cost Shares Report\n Testfunction RolledUpMaterialAndCapacityCostWithRoutingAndNoBOM Failure (3.506 seconds)\n Error:\n AssertEquals for Field: Rolled-up Capacity Cost Expected = '24.48', Actual = '146.88'\n Call Stack:\n \"SCM - BOM Cost Shares Report\"(CodeUnit 137391).VerifyParentItemMaterialAndCapacityCost line 8 - Tests-SCM by Microsoft\n \"SCM - BOM Cost Shares Report\"(CodeUnit 137391).RolledUpMaterialAndCapacityCostWithRoutingAndNoBOM line 34 - Tests-SCM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"instance_id": "microsoftInternal__NAV-180484", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/eServices/EDocument/IncomingDocument.Table.al b/App/Layers/W1/BaseApp/eServices/EDocument/IncomingDocument.Table.al\nindex 2341887c..549f7cfe 100644\n--- a/App/Layers/W1/BaseApp/eServices/EDocument/IncomingDocument.Table.al\n+++ b/App/Layers/W1/BaseApp/eServices/EDocument/IncomingDocument.Table.al\n@@ -509,9 +509,13 @@ table 130 \"Incoming Document\"\n procedure CreateDocumentWithDataExchange()\n var\n RelatedRecord: Variant;\n+ ReleaseIncomingDocument: Codeunit \"Release Incoming Document\";\n begin\n- if GetRecord(RelatedRecord) then\n+ if GetRecord(RelatedRecord) then begin\n+ if Status = Status::New then\n+ ReleaseIncomingDocument.Create(Rec);\n Error(DocAlreadyCreatedErr);\n+ end;\n \n CreateWithDataExchange(\"Document Type\"::\" \")\n end;\n@@ -2410,4 +2414,3 @@ table 130 \"Incoming Document\"\n begin\n end;\n }\n-\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139154'\nCodeunit 139154 Incoming Doc. To Data Exch.UT\n Testfunction StatusRemainsCreatedIfHasLinkedDocWhenReopenIncomingDoc Failure (17.646 seconds)\n Error:\n Assert.AreEqual failed. Expected: (Text). Actual: (Text). Status must be Created in Incoming Document.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"Incoming Doc. To Data Exch.UT\"(CodeUnit 139154).StatusRemainsCreatedIfHasLinkedDocWhenReopenIncomingDoc line 53 - Tests-Data Exchange by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"instance_id": "microsoftInternal__NAV-183399", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\nindex 553ae9c0..9a0aba95 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n@@ -255,6 +255,7 @@ page 254 \"Purchase Journal\"\n {\n ApplicationArea = Basic, Suite;\n AutoFormatExpression = Rec.\"Currency Code\";\n+ AutoFormatType = 1;\n Caption = 'Document Amount';\n ToolTip = 'Specifies the total amount (including VAT) that the journal line consists of.';\n \n@@ -1835,4 +1836,3 @@ page 254 \"Purchase Journal\"\n begin\n end;\n }\n-\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134918'\nCodeunit 134918 ERM Sales/Purchase Application\n Testfunction DocumentAmountInPurchJnlAcceptsMaxThreeDecimalPlacesValue Failure (4.713 seconds)\n Error:\n Assert.AreEqual failed. Expected:<1.747> (Decimal). Actual:<1.75> (Decimal). The document amount is not correct. Expected: 1.747, Actual: 1.75.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"ERM Sales/Purchase Application\"(CodeUnit 134918).DocumentAmountInPurchJnlAcceptsMaxThreeDecimalPlacesValue line 25 - Tests-ERM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"instance_id": "microsoftInternal__NAV-174794", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\nindex b941d50c..79e59d5a 100644\n--- a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n@@ -285,6 +285,7 @@ codeunit 395 \"FinChrgMemo-Issue\"\n end;\n TempGenJnlLine.Validate(\"Currency Code\", FinChrgMemoHeader.\"Currency Code\");\n if TempGenJnlLine.\"Account Type\" = TempGenJnlLine.\"Account Type\"::Customer then begin\n+ TempGenJnlLine.\"Posting Group\" := FinChrgMemoHeader.\"Customer Posting Group\";\n TempGenJnlLine.Validate(Amount, TotalAmount);\n TempGenJnlLine.Validate(\"Amount (LCY)\", TotalAmountLCY);\n TempGenJnlLine.\"Due Date\" := FinChrgMemoHeader.\"Due Date\";\n@@ -578,4 +579,3 @@ codeunit 395 \"FinChrgMemo-Issue\"\n begin\n end;\n }\n-\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-203923", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\nindex 6bb15d7d..826e022f 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n@@ -93,7 +93,11 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetNonDeductibleVATPct(NonDeductibleVATPct, VATPostingSetup, GeneralPostingType, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (VATPostingSetup.\"VAT Calculation Type\" in [VATPostingSetup.\"VAT Calculation Type\"::\"Normal VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (VATPostingSetup.\"VAT Calculation Type\" in\n+ [VATPostingSetup.\"VAT Calculation Type\"::\"Normal VAT\",\n+ VATPostingSetup.\"VAT Calculation Type\"::\"Reverse Charge VAT\",\n+ VATPostingSetup.\"VAT Calculation Type\"::\"Full VAT\"])\n+ then\n exit(0);\n if (VATPostingSetup.\"Allow Non-Deductible VAT\" = VATPostingSetup.\"Allow Non-Deductible VAT\"::\"Do not allow\") or (GeneralPostingType <> GeneralPostingType::Purchase) then\n exit(0);\n@@ -786,7 +790,11 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeCalcNonDedAmountsInGenJnlLine(GenJournalLine, Currency, IsHandled);\n if IsHandled then\n exit;\n- if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"VAT Calculation Type\" in\n+ [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\",\n+ GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\",\n+ GenJournalLine.\"VAT Calculation Type\"::\"Full VAT\"])\n+ then\n exit;\n if not VATPostingSetup.Get(GenJournalLine.\"VAT Bus. Posting Group\", GenJournalLine.\"VAT Prod. Posting Group\") then\n exit;\n@@ -826,7 +834,11 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeCalcBalNonDedAmountsInGenJnlLine(GenJournalLine, Currency, IsHandled);\n if IsHandled then\n exit;\n- if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"Bal. VAT Calculation Type\" in\n+ [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\",\n+ GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\",\n+ GenJournalLine.\"Bal. VAT Calculation Type\"::\"Full VAT\"])\n+ then\n exit;\n if not VATPostingSetup.Get(GenJournalLine.\"Bal. VAT Bus. Posting Group\", GenJournalLine.\"Bal. VAT Prod. Posting Group\") then\n exit;\n@@ -1210,7 +1222,11 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetNonDedVATPctForGenJnlLine(NonDeductibleVATPct, GenJournalLine, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"VAT Calculation Type\" in\n+ [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\",\n+ GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\",\n+ GenJournalLine.\"VAT Calculation Type\"::\"Full VAT\"])\n+ then\n exit(0);\n if not VATPostingSetup.Get(GenJournalLine.\"VAT Bus. Posting Group\", GenJournalLine.\"VAT Prod. Posting Group\") then\n exit(0);\n@@ -1227,7 +1243,11 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetBalNonDedVATPctForGenJnlLine(NonDeductibleVATPct, GenJournalLine, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"Bal. VAT Calculation Type\" in\n+ [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\",\n+ GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\",\n+ GenJournalLine.\"Bal. VAT Calculation Type\"::\"Full VAT\"])\n+ then\n exit(0);\n if not VATPostingSetup.Get(GenJournalLine.\"Bal. VAT Bus. Posting Group\", GenJournalLine.\"Bal. VAT Prod. Posting Group\") then\n exit(0);\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-204450", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\nindex 09b9b67c..db85e497 100644\n--- a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n@@ -6909,9 +6909,11 @@ table 39 \"Purchase Line\"\n if (PurchLine.\"Deferral Code\" <> '') and (DeferralAmount <> PurchLine.GetDeferralAmount()) then\n PurchLine.UpdateDeferralAmounts();\n \n- TempVATAmountLineRemainder.\"Amount Including VAT\" :=\n- NewAmountIncludingVAT - Round(NewAmountIncludingVAT, Currency.\"Amount Rounding Precision\");\n- TempVATAmountLineRemainder.\"VAT Amount\" := VATAmount - NewAmountIncludingVAT + NewAmount;\n+ if QtyType = QtyType::General then begin\n+ TempVATAmountLineRemainder.\"Amount Including VAT\" :=\n+ NewAmountIncludingVAT - Round(NewAmountIncludingVAT, Currency.\"Amount Rounding Precision\");\n+ TempVATAmountLineRemainder.\"VAT Amount\" := VATAmount - NewAmountIncludingVAT + NewAmount;\n+ end;\n TempVATAmountLineRemainder.\"VAT Difference\" := VATDifference - PurchLine.\"VAT Difference\";\n OnUpdateVATOnLinesOnBeforeTempVATAmountLineRemainderModify(Rec, TempVATAmountLineRemainder, VATAmount, NewVATBaseAmount, PurchLine);\n TempVATAmountLineRemainder.Modify();\n@@ -11628,4 +11630,3 @@ table 39 \"Purchase Line\"\n begin\n end;\n }\n-\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134287'\nCodeunit 134287 Non-Deductible VAT Statistics\n Testfunction PurchaseInvoiceInCurrencyIsPostedWhenChangeVATAmountOnStatisticIfNDVATPctIs100 Failure (14.37 seconds)\n Error:\n The transaction cannot be completed because it will cause inconsistencies in the G/L Entry table. Check where and how the CONSISTENT function is used in the transaction to find the reason for the error.\\\\Contact your system administrator.\\\\Tables can be marked as inconsistent during comprehensive tasks, such as posting. This prevents data from being updated incorrectly.\n Call Stack:\n \"Purch.-Post\"(CodeUnit 90).FinalizePosting line 79 - Base Application by Microsoft\n \"Purch.-Post\"(CodeUnit 90).RunWithCheck line 142 - Base Application by Microsoft\n \"Purch.-Post\"(CodeUnit 90).OnRun(Trigger) line 2 - Base Application by Microsoft\n \"Library - Purchase\"(CodeUnit 130512).PostPurchaseDocument line 56 - Tests-TestLibraries by Microsoft\n \"Non-Deductible VAT Statistics\"(CodeUnit 134287).PurchaseInvoiceInCurrencyIsPostedWhenChangeVATAmountOnStatisticIfNDVATPctIs100 line 46 - Tests-VAT by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"instance_id": "microsoftInternal__NAV-175577", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobCreateInvoice.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobCreateInvoice.Codeunit.al\nindex 1e465e16..f60500bc 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobCreateInvoice.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobCreateInvoice.Codeunit.al\n@@ -384,6 +384,7 @@ codeunit 1002 \"Job Create-Invoice\"\n \n local procedure CreateNewInvoice(var JobTask: Record \"Job Task\"; InvoicePerTask: Boolean; var OldJobNo: Code[20]; var OldJobTaskNo: Code[20]; LastJobTask: Boolean): Boolean\n var\n+ Job: Record Job;\n NewInvoice: Boolean;\n IsHandled: Boolean;\n begin\n@@ -396,9 +397,15 @@ codeunit 1002 \"Job Create-Invoice\"\n NewInvoice := true\n else begin\n if OldJobNo <> '' then begin\n- if InvoicePerTask then\n- if (OldJobNo <> JobTask.\"Job No.\") or (OldJobTaskNo <> JobTask.\"Job Task No.\") then\n- NewInvoice := true;\n+ if InvoicePerTask then begin\n+ Job.Get(JobTask.\"Job No.\");\n+ if Job.\"Task Billing Method\" = Job.\"Task Billing Method\"::\"Multiple customers\" then begin\n+ if not IsSameInvoiceGroupForTaskBilling(JobTask, OldJobNo, OldJobTaskNo) then\n+ NewInvoice := true;\n+ end else\n+ if (OldJobNo <> JobTask.\"Job No.\") or (OldJobTaskNo <> JobTask.\"Job Task No.\") then\n+ NewInvoice := true;\n+ end;\n if not InvoicePerTask then\n if OldJobNo <> JobTask.\"Job No.\" then\n NewInvoice := true;\n@@ -411,6 +418,34 @@ codeunit 1002 \"Job Create-Invoice\"\n exit(NewInvoice);\n end;\n \n+ local procedure IsSameInvoiceGroupForTaskBilling(CurrentJobTask: Record \"Job Task\"; PreviousJobNo: Code[20]; PreviousJobTaskNo: Code[20]): Boolean\n+ var\n+ Job: Record Job;\n+ PreviousJobTask: Record \"Job Task\";\n+ begin\n+ if (PreviousJobNo = '') or (PreviousJobTaskNo = '') then\n+ exit(false);\n+ if PreviousJobNo <> CurrentJobTask.\"Job No.\" then\n+ exit(false);\n+ if not PreviousJobTask.Get(PreviousJobNo, PreviousJobTaskNo) then\n+ exit(false);\n+\n+ Job.Get(CurrentJobTask.\"Job No.\");\n+\n+ exit(\n+ (PreviousJobTask.\"Sell-to Customer No.\" = CurrentJobTask.\"Sell-to Customer No.\") and\n+ (PreviousJobTask.\"Bill-to Customer No.\" = CurrentJobTask.\"Bill-to Customer No.\") and\n+ (GetInvoiceCurrencyCodeForTask(Job, PreviousJobTask) = GetInvoiceCurrencyCodeForTask(Job, CurrentJobTask)));\n+ end;\n+\n+ local procedure GetInvoiceCurrencyCodeForTask(Job: Record Job; JobTask: Record \"Job Task\"): Code[10]\n+ begin\n+ if Job.\"Currency Code\" <> '' then\n+ exit(Job.\"Currency Code\");\n+\n+ exit(JobTask.\"Invoice Currency Code\");\n+ end;\n+\n local procedure CreateSalesHeader(Job: Record Job; PostingDate: Date; DocumentDate: Date; JobPlanningLine: Record \"Job Planning Line\")\n var\n JobTask: Record \"Job Task\";\n@@ -1439,4 +1474,3 @@ codeunit 1002 \"Job Create-Invoice\"\n begin\n end;\n }\n-\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-176150", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al b/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\nindex 55d3fbad..c7e5cb54 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\n@@ -1016,6 +1016,19 @@ page 5510 \"Production Journal\"\n protected procedure MarkRelevantRec(var ItemJournalLine: Record \"Item Journal Line\")\n begin\n ItemJournalLine := Rec;\n+ ItemJournalLine.FilterGroup(2);\n+ ItemJournalLine.SetRange(\"Journal Template Name\", ToTemplateName);\n+ ItemJournalLine.SetRange(\"Journal Batch Name\", ToBatchName);\n+ ItemJournalLine.SetRange(\"Order Type\", ItemJournalLine.\"Order Type\"::Production);\n+ ItemJournalLine.SetRange(\"Order No.\", ProdOrder.\"No.\");\n+ if ProdOrderLineNo <> 0 then\n+ ItemJournalLine.SetRange(\"Order Line No.\", ProdOrderLineNo);\n+ if FlushingFilter <> FlushingFilter::\"All Methods\" then\n+ ItemJournalLine.SetRange(\"Flushing Method\", FlushingFilter)\n+ else\n+ ItemJournalLine.SetRange(\"Flushing Method\");\n+ ItemJournalLine.FilterGroup(0);\n+\n if ItemJournalLine.FindSet() then begin\n repeat\n case ItemJournalLine.\"Entry Type\" of\n@@ -1221,4 +1234,3 @@ page 5510 \"Production Journal\"\n begin\n end;\n }\n-\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-175765", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al\nindex b47fc326..398a4622 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al\n@@ -224,37 +224,22 @@ codeunit 9030 \"Undo Transfer Shipment\"\n TempWhseJnlLine.\"Reference Document\"::\"Posted T. Shipment\".AsInteger(), TempWhseJnlLine, NextLineNo);\n \n if GetShptEntries(TransShptLine, ItemLedgEntry) then begin\n- ItemLedgEntry.SetTrackingFilterBlank();\n- if ItemLedgEntry.FindSet() then begin\n- // First undo In-Transit item ledger entries\n- ItemLedgEntry.SetRange(\"Location Code\", TransShptHeader.\"In-Transit Code\");\n- ItemLedgEntry.FindSet();\n- PostCorrectiveItemLedgEntries(ItemJnlLine, ItemLedgEntry);\n-\n- // Then undo from-location item ledger entries\n- ItemLedgEntry.SetRange(\"Location Code\", TransShptHeader.\"Transfer-from Code\");\n- ItemLedgEntry.FindSet();\n- PostCorrectiveItemLedgEntries(ItemJnlLine, ItemLedgEntry);\n-\n- exit(ItemJnlLine.\"Item Shpt. Entry No.\");\n- end\n- else begin\n- ItemLedgEntry.ClearTrackingFilter();\n- ItemLedgEntry.FindSet();\n- MoveItemLedgerEntriesToTempRec(ItemLedgEntry, TempApplyToEntryList);\n- // First undo In-Transit item ledger entries\n- TempApplyToEntryList.SetRange(\"Location Code\", TransShptHeader.\"In-Transit Code\");\n- TempApplyToEntryList.FindSet();\n+ ItemLedgEntry.ClearTrackingFilter();\n+ ItemLedgEntry.FindSet();\n+ MoveItemLedgerEntriesToTempRec(ItemLedgEntry, TempApplyToEntryList);\n+\n+ // First undo In-Transit item ledger entries\n+ TempApplyToEntryList.SetRange(\"Location Code\", TransShptHeader.\"In-Transit Code\");\n+ if TempApplyToEntryList.FindSet() then\n //Pass dummy ItemEntryRelation because, these are not used for In-Transit location\n UndoPostingMgt.PostItemJnlLineAppliedToList(\n ItemJnlLine, TempApplyToEntryList, TransShptLine.Quantity, TransShptLine.\"Quantity (Base)\", TempGlobalItemLedgEntry, TempDummyItemEntryRelation, false);\n \n- // Then undo from-location item ledger entries\n- TempApplyToEntryList.SetRange(\"Location Code\", TransShptHeader.\"Transfer-from Code\");\n- TempApplyToEntryList.FindSet();\n+ // Then undo from-location item ledger entries\n+ TempApplyToEntryList.SetRange(\"Location Code\", TransShptHeader.\"Transfer-from Code\");\n+ if TempApplyToEntryList.FindSet() then\n UndoPostingMgt.PostItemJnlLineAppliedToList(\n ItemJnlLine, TempApplyToEntryList, TransShptLine.Quantity, TransShptLine.\"Quantity (Base)\", TempGlobalItemLedgEntry, TempGlobalItemEntryRelation, false);\n- end;\n end;\n exit(0);\n end;\n@@ -418,4 +403,3 @@ codeunit 9030 \"Undo Transfer Shipment\"\n begin\n end;\n }\n-\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137038'\nCodeunit 137038 SCM Transfers\n Testfunction AdjustCostOfUndoneTransferShipment Failure (4.71 seconds)\n Error:\n Unit Cost must be equal to '111.96' in Item: No.=GL00000000. Current value is '24.87'.\n Call Stack:\n \"SCM Transfers\"(CodeUnit 137038).AdjustCostOfUndoneTransferShipment line 46 - Tests-SCM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"instance_id": "microsoftInternal__NAV-179733", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Job/JobTask.Table.al b/App/Layers/W1/BaseApp/Projects/Project/Job/JobTask.Table.al\nindex ca6d73fa..0619937d 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Job/JobTask.Table.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Job/JobTask.Table.al\n@@ -1223,6 +1223,8 @@ table 1001 \"Job Task\"\n begin\n if not Job.Get(\"Job No.\") then\n exit;\n+ if \"Job Task Type\" <> \"Job Task Type\"::Posting then\n+ exit;\n if Job.\"Task Billing Method\" = Job.\"Task Billing Method\"::\"One customer\" then\n exit;\n \n@@ -1786,4 +1788,3 @@ table 1001 \"Job Task\"\n begin\n end;\n }\n-\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-176194", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\nindex 6dfc7efe..2598df1f 100644\n--- a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n@@ -2266,6 +2266,8 @@ codeunit 6620 \"Copy Document Mgt.\"\n ItemChargeAssgntSales: Codeunit \"Item Charge Assgnt. (Sales)\";\n IsHandled: Boolean;\n begin\n+ EnsureQtyToInvoiceOnCopiedSalesItemCharge(ToSalesLine);\n+\n FromItemChargeAssgntSales.Reset();\n FromItemChargeAssgntSales.SetRange(\"Document Type\", FromDocType);\n FromItemChargeAssgntSales.SetRange(\"Document No.\", FromDocNo);\n@@ -2418,6 +2420,8 @@ codeunit 6620 \"Copy Document Mgt.\"\n if IsHandled then\n exit;\n \n+ EnsureQtyToInvoiceOnCopiedSalesItemCharge(ToSalesLine);\n+\n if FromSalesLine.\"Document Type\" = FromSalesLine.\"Document Type\"::\"Credit Memo\" then\n ValueEntry.SetRange(\"Document Type\", ValueEntry.\"Document Type\"::\"Sales Credit Memo\")\n else\n@@ -2478,6 +2482,20 @@ codeunit 6620 \"Copy Document Mgt.\"\n end;\n end;\n \n+ local procedure EnsureQtyToInvoiceOnCopiedSalesItemCharge(var ToSalesLine: Record \"Sales Line\")\n+ begin\n+ if (ToSalesLine.\"Document Type\" <> ToSalesLine.\"Document Type\"::\"Return Order\") or\n+ (ToSalesLine.Type <> ToSalesLine.Type::\"Charge (Item)\") or\n+ (ToSalesLine.\"Qty. to Invoice\" <> 0) or\n+ (ToSalesLine.Quantity = 0)\n+ then\n+ exit;\n+\n+ ToSalesLine.\"Qty. to Invoice\" := ToSalesLine.Quantity;\n+ ToSalesLine.\"Qty. to Invoice (Base)\" := ToSalesLine.\"Quantity (Base)\";\n+ ToSalesLine.Modify();\n+ end;\n+\n local procedure AddRemainingQtyToPurchItemCharge(var ItemChargeAssignmentPurch: Record \"Item Charge Assignment (Purch)\"; RemainingQty: Decimal)\n begin\n ItemChargeAssignmentPurch.Validate(\n@@ -10392,4 +10410,3 @@ codeunit 6620 \"Copy Document Mgt.\"\n begin\n end;\n }\n-\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134329'\nCodeunit 134329 ERM Purchase Return Order\n Testfunction GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToReceiveIsBlankInPurchPayablesSetup Failure (10.733 seconds)\n Error:\n Qty. to Invoice must have a value in Purchase Line: Document Type=Return Order, Document No.=1001, Line No.=20000. It cannot be zero or empty.\n Call Stack:\n \"Item Charge Assignment (Purch)\"(Table 5805).\"Qty. to Assign - OnValidate\"(Trigger) line 4 - Base Application by Microsoft\n \"Item Charge Assgnt. (Purch.)\"(CodeUnit 5805).InsertItemChargeAssignmentWithValuesTo line 20 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyFromPurchLineItemChargeAssign line 47 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyPurchInvLinesToDoc line 144 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyPurchaseLinesToDoc line 15 - Base Application by Microsoft\n \"Posted Purchase Document Lines\"(Page 5855).CopyLineToDoc line 23 - Base Application by Microsoft\n \"Purchase Header\"(Table 38).GetPstdDocLinesToReverse line 9 - Base Application by Microsoft\n \"Purchase Return Order\"(Page 6640).\"GetPostedDocumentLinesToReverse - OnAction\"(Trigger) line 2 - Base Application by Microsoft\nSetting test codeunit range '134387'\nCodeunit 134387 ERM Sales Documents III\n Testfunction GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToShipIsBlankInSalesReceiSetup Success (4.303 seconds)\n\u001b[32m[19:09:44] Tests passed for Codeunit 134387\u001b[0m"} +{"instance_id": "microsoftInternal__NAV-177493", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\nindex bb47904d..b9416064 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n@@ -62,6 +62,9 @@ report 302 \"Get Demand To Reserve\"\n then\n CurrReport.Skip();\n \n+ if not IsItemAllowedForReservationWorksheet(\"No.\") then\n+ CurrReport.Skip();\n+\n if ItemFilterFromBatch <> '' then begin\n Item.SetView(ReservationWkshBatch.GetItemFilterBlobAsViewFilters());\n Item.FilterGroup(2);\n@@ -111,6 +114,9 @@ report 302 \"Get Demand To Reserve\"\n then\n CurrReport.Skip();\n \n+ if not IsItemAllowedForReservationWorksheet(\"Item No.\") then\n+ CurrReport.Skip();\n+\n if ItemFilterFromBatch <> '' then begin\n Item.SetView(ReservationWkshBatch.GetItemFilterBlobAsViewFilters());\n Item.FilterGroup(2);\n@@ -162,6 +168,9 @@ report 302 \"Get Demand To Reserve\"\n then\n CurrReport.Skip();\n \n+ if not IsItemAllowedForReservationWorksheet(\"No.\") then\n+ CurrReport.Skip();\n+\n if ItemFilterFromBatch <> '' then begin\n Item.SetView(ReservationWkshBatch.GetItemFilterBlobAsViewFilters());\n Item.FilterGroup(2);\n@@ -212,6 +221,9 @@ report 302 \"Get Demand To Reserve\"\n then\n CurrReport.Skip();\n \n+ if not IsItemAllowedForReservationWorksheet(\"No.\") then\n+ CurrReport.Skip();\n+\n if ItemFilterFromBatch <> '' then begin\n Item.SetView(ReservationWkshBatch.GetItemFilterBlobAsViewFilters());\n Item.FilterGroup(2);\n@@ -263,6 +275,9 @@ report 302 \"Get Demand To Reserve\"\n then\n CurrReport.Skip();\n \n+ if not IsItemAllowedForReservationWorksheet(\"No.\") then\n+ CurrReport.Skip();\n+\n if ItemFilterFromBatch <> '' then begin\n Item.SetView(ReservationWkshBatch.GetItemFilterBlobAsViewFilters());\n Item.FilterGroup(2);\n@@ -313,6 +328,9 @@ report 302 \"Get Demand To Reserve\"\n then\n CurrReport.Skip();\n \n+ if not IsItemAllowedForReservationWorksheet(\"Item No.\") then\n+ CurrReport.Skip();\n+\n if ItemFilterFromBatch <> '' then begin\n Item.SetView(ReservationWkshBatch.GetItemFilterBlobAsViewFilters());\n Item.FilterGroup(2);\n@@ -544,6 +562,16 @@ report 302 \"Get Demand To Reserve\"\n DateFilter := Format(StartDate) + '..' + Format(EndDate);\n end;\n \n+ local procedure IsItemAllowedForReservationWorksheet(ItemNo: Code[20]): Boolean\n+ var\n+ Item: Record Item;\n+ begin\n+ if not Item.Get(ItemNo) then\n+ exit(false);\n+\n+ exit(Item.Reserve <> Item.Reserve::Never);\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnSalesOrderLineOnAfterGetRecordOnBeforeSetTempSalesLine(var OrderSalesLine: Record \"Sales Line\")\n begin\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-177750", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al b/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al\nindex 320720d7..cbc1fcfb 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al\n@@ -2155,6 +2155,7 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n procedure CreateATOPickLine(NewWarehouseActivityLine: Record \"Warehouse Activity Line\"; BinCode: Code[20]; var RemQtyToPickBase: Decimal)\n var\n ATOSalesLine: Record \"Sales Line\";\n+ ATOJobPlanningLine: Record \"Job Planning Line\";\n AssemblyHeader: Record \"Assembly Header\";\n AssemblySetup: Record \"Assembly Setup\";\n ReservationEntry: Record \"Reservation Entry\";\n@@ -2163,36 +2164,70 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n QtyToAsmBase: Decimal;\n QtyToPickBase: Decimal;\n begin\n- if (not IsInvtMovement) and\n- WMSManagement.GetATOSalesLine(NewWarehouseActivityLine.\"Source Type\",\n- NewWarehouseActivityLine.\"Source Subtype\",\n- NewWarehouseActivityLine.\"Source No.\",\n- NewWarehouseActivityLine.\"Source Line No.\",\n- ATOSalesLine)\n- then begin\n- ATOSalesLine.AsmToOrderExists(AssemblyHeader);\n- if NewWarehouseActivityLine.TrackingExists() then begin\n- AssemblyHeader.SetReservationFilters(ReservationEntry);\n- ReservationEntry.SetTrackingFilterFromWhseActivityLine(NewWarehouseActivityLine);\n- ReservationEntry.SetRange(Positive, true);\n- if ItemTrackingManagement.SumUpItemTracking(ReservationEntry, TempTrackingSpecification1, true, true) then\n- QtyToAsmBase := Abs(TempTrackingSpecification1.\"Qty. to Handle (Base)\");\n+ if not IsInvtMovement then begin\n+ if WMSManagement.GetATOSalesLine(NewWarehouseActivityLine.\"Source Type\",\n+ NewWarehouseActivityLine.\"Source Subtype\",\n+ NewWarehouseActivityLine.\"Source No.\",\n+ NewWarehouseActivityLine.\"Source Line No.\",\n+ ATOSalesLine)\n+ then begin\n+ ATOSalesLine.AsmToOrderExists(AssemblyHeader);\n+ if NewWarehouseActivityLine.TrackingExists() then begin\n+ AssemblyHeader.SetReservationFilters(ReservationEntry);\n+ ReservationEntry.SetTrackingFilterFromWhseActivityLine(NewWarehouseActivityLine);\n+ ReservationEntry.SetRange(Positive, true);\n+ if ItemTrackingManagement.SumUpItemTracking(ReservationEntry, TempTrackingSpecification1, true, true) then\n+ QtyToAsmBase := Abs(TempTrackingSpecification1.\"Qty. to Handle (Base)\");\n+ end else\n+ QtyToAsmBase := ATOSalesLine.QtyToAsmBaseOnATO();\n+ WhseItemTrackingSetup.CopyTrackingFromWhseActivityLine(NewWarehouseActivityLine);\n+ QtyToPickBase := QtyToAsmBase - WMSManagement.CalcQtyBaseOnATOInvtPick(ATOSalesLine, WhseItemTrackingSetup);\n+ OnCreateATOPickLineOnAfterCalcQtyToPickBase(RemQtyToPickBase, QtyToPickBase, ATOSalesLine);\n+ if QtyToPickBase > 0 then begin\n+ MakeWarehouseActivityHeader();\n+ if CurrLocation.\"Bin Mandatory\" and (BinCode = '') then\n+ ATOSalesLine.GetATOBin(CurrLocation, BinCode);\n+ NewWarehouseActivityLine.\"Assemble to Order\" := true;\n+ MakeWarehouseActivityLine(NewWarehouseActivityLine, BinCode, QtyToPickBase, RemQtyToPickBase);\n+\n+ AssemblySetup.Get();\n+ if AssemblySetup.\"Create Movements Automatically\" then\n+ CreateATOInventoryMovementsAutomatically(AssemblyHeader, ATOInvtMovementsCreated, TotalATOInvtMovementsToBeCreated);\n+ end;\n end else\n- QtyToAsmBase := ATOSalesLine.QtyToAsmBaseOnATO();\n- WhseItemTrackingSetup.CopyTrackingFromWhseActivityLine(NewWarehouseActivityLine);\n- QtyToPickBase := QtyToAsmBase - WMSManagement.CalcQtyBaseOnATOInvtPick(ATOSalesLine, WhseItemTrackingSetup);\n- OnCreateATOPickLineOnAfterCalcQtyToPickBase(RemQtyToPickBase, QtyToPickBase, ATOSalesLine);\n- if QtyToPickBase > 0 then begin\n- MakeWarehouseActivityHeader();\n- if CurrLocation.\"Bin Mandatory\" and (BinCode = '') then\n- ATOSalesLine.GetATOBin(CurrLocation, BinCode);\n- NewWarehouseActivityLine.\"Assemble to Order\" := true;\n- MakeWarehouseActivityLine(NewWarehouseActivityLine, BinCode, QtyToPickBase, RemQtyToPickBase);\n-\n- AssemblySetup.Get();\n- if AssemblySetup.\"Create Movements Automatically\" then\n- CreateATOInventoryMovementsAutomatically(AssemblyHeader, ATOInvtMovementsCreated, TotalATOInvtMovementsToBeCreated);\n- end;\n+ if WMSManagement.GetATOJobPlanningLine(\n+ NewWarehouseActivityLine.\"Source Type\",\n+ NewWarehouseActivityLine.\"Source No.\",\n+ NewWarehouseActivityLine.\"Source Line No.\",\n+ NewWarehouseActivityLine.\"Source Subline No.\",\n+ ATOJobPlanningLine)\n+ then begin\n+ ATOJobPlanningLine.AsmToOrderExists(AssemblyHeader);\n+ if NewWarehouseActivityLine.TrackingExists() then begin\n+ AssemblyHeader.SetReservationFilters(ReservationEntry);\n+ ReservationEntry.SetTrackingFilterFromWhseActivityLine(NewWarehouseActivityLine);\n+ ReservationEntry.SetRange(Positive, true);\n+ if ItemTrackingManagement.SumUpItemTracking(ReservationEntry, TempTrackingSpecification1, true, true) then\n+ QtyToAsmBase := Abs(TempTrackingSpecification1.\"Qty. to Handle (Base)\");\n+ end else\n+ QtyToAsmBase := ATOJobPlanningLine.QtyToAsmBaseOnATO();\n+ QtyToPickBase := QtyToAsmBase;\n+ if QtyToPickBase > 0 then begin\n+ MakeWarehouseActivityHeader();\n+ if CurrLocation.\"Bin Mandatory\" and (BinCode = '') then begin\n+ if not CurrLocation.\"Require Shipment\" then\n+ BinCode := CurrLocation.\"Asm.-to-Order Shpt. Bin Code\";\n+ if BinCode = '' then\n+ AssemblyHeader.GetFromAssemblyBin(CurrLocation, BinCode);\n+ end;\n+ NewWarehouseActivityLine.\"Assemble to Order\" := true;\n+ MakeWarehouseActivityLine(NewWarehouseActivityLine, BinCode, QtyToPickBase, RemQtyToPickBase);\n+\n+ AssemblySetup.Get();\n+ if AssemblySetup.\"Create Movements Automatically\" then\n+ CreateATOInventoryMovementsAutomatically(AssemblyHeader, ATOInvtMovementsCreated, TotalATOInvtMovementsToBeCreated);\n+ end;\n+ end;\n end;\n OnAfterCreateATOPickLine(QtyToPickBase, AssemblyHeader, NewWarehouseActivityLine, CurrWarehouseActivityHeader, RemQtyToPickBase);\n end;\n@@ -2771,4 +2806,3 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n begin\n end;\n }\n-\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136322'\nCodeunit 136322 Jobs - Assemble-to Order\n Testfunction PostInventoryPickForAssemblyItemRelatedToJobPlanningLineWithBin Failure (6.193 seconds)\n Error:\n Status must be equal to 'Released' in Assembly Header: Document Type=Order, No.=A00001. Current value is 'Open'.\n Call Stack:\n \"Assembly Header\"(Table 900).CreateInvtMovement line 11 - Base Application by Microsoft\n \"Create Inventory Pick/Movement\"(CodeUnit 7322).CreateATOInventoryMovementsAutomatically line 11 - Base Application by Microsoft\n \"Create Inventory Pick/Movement\"(CodeUnit 7322).CreateATOPickLine line 73 - Base Application by Microsoft\n \"Create Inventory Pick/Movement\"(CodeUnit 7322).InsertPickOrMoveBinWhseActLine line 15 - Base Application by Microsoft\n \"Create Inventory Pick/Movement\"(CodeUnit 7322).CreatePickOrMoveLine line 153 - Base Application by Microsoft\n \"Create Inventory Pick/Movement\"(CodeUnit 7322).CreatePickOrMoveFromJobPlanning line 48 - Base Application by Microsoft\n \"Create Inventory Pick/Movement\"(CodeUnit 7322).AutoCreatePickOrMove line 30 - Base Application by Microsoft\n \"Create Invt Put-away/Pick/Mvmt\"(Report 7323).\"Warehouse Request - OnAfterGetRecord\"(Trigger) line 49 - Base Application by Microsoft"} +{"instance_id": "microsoftInternal__NAV-178045", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/ItemTrackingManagement.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Tracking/ItemTrackingManagement.Codeunit.al\nindex 73c8a100..fd36fd74 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/ItemTrackingManagement.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/ItemTrackingManagement.Codeunit.al\n@@ -421,6 +421,10 @@ codeunit 6500 \"Item Tracking Management\"\n end;\n OnBeforeFindTempHandlingSpecification(TempHandlingSpecification, ReservEntry);\n if TempHandlingSpecification.FindFirst() then begin\n+ if TempHandlingSpecification.\"Appl.-to Item Entry\" <> ReservEntry.\"Appl.-to Item Entry\" then\n+ TempHandlingSpecification.\"Appl.-to Item Entry\" := 0;\n+ if TempHandlingSpecification.\"Appl.-from Item Entry\" <> ReservEntry.\"Appl.-from Item Entry\" then\n+ TempHandlingSpecification.\"Appl.-from Item Entry\" := 0;\n TempHandlingSpecification.\"Quantity (Base)\" += ReservEntry.\"Quantity (Base)\";\n TempHandlingSpecification.\"Qty. to Handle (Base)\" += ReservEntry.\"Qty. to Handle (Base)\";\n TempHandlingSpecification.\"Qty. to Invoice (Base)\" += ReservEntry.\"Qty. to Invoice (Base)\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137404'\nCodeunit 137404 SCM Manufacturing\n Testfunction ConsumptionIsPostedForMultipleILEsOfSameLotNo Failure (7.766 seconds)\n Error:\n You have insufficient quantity of Item GL00000000 on inventory.\n Call Stack:\n \"Production Journal Mgt\"(CodeUnit 5510).Handling line 30 - Base Application by Microsoft\n \"Released Prod. Order Lines\"(Page 99000832).ShowProductionJournal line 10 - Base Application by Microsoft\n \"Released Prod. Order Lines\"(Page 99000832).\"ProductionJournal - OnAction\"(Trigger) line 2 - Base Application by Microsoft"} +{"instance_id": "microsoftInternal__NAV-176082", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\nindex 5fe44b45..f740a0b2 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\n@@ -1304,7 +1304,6 @@ table 5740 \"Transfer Header\"\n TempPurchRcptHeader: Record \"Purch. Rcpt. Header\" temporary;\n PostedPurchaseReceipts: Page \"Posted Purchase Receipts\";\n begin\n- PurchRcptHeader.SetRange(\"Location Code\", \"Transfer-from Code\");\n PostedPurchaseReceipts.SetTableView(PurchRcptHeader);\n PostedPurchaseReceipts.LookupMode := true;\n if PostedPurchaseReceipts.RunModal() = ACTION::LookupOK then begin\n@@ -1370,6 +1369,10 @@ table 5740 \"Transfer Header\"\n TransferLine.\"Shortcut Dimension 1 Code\" := PurchRcptLine.\"Shortcut Dimension 1 Code\";\n TransferLine.\"Shortcut Dimension 2 Code\" := PurchRcptLine.\"Shortcut Dimension 2 Code\";\n TransferLine.\"Dimension Set ID\" := PurchRcptLine.\"Dimension Set ID\";\n+ if PurchRcptLine.\"Item Rcpt. Entry No.\" <> 0 then\n+ if ItemLedgerEntry.Get(PurchRcptLine.\"Item Rcpt. Entry No.\") then\n+ if (ItemLedgerEntry.\"Lot No.\" = '') and (ItemLedgerEntry.\"Serial No.\" = '') then\n+ TransferLine.Validate(\"Appl.-to Item Entry\", ItemLedgerEntry.\"Entry No.\");\n OnAddTransferLineFromReceiptLineOnBeforeTransferLineInsert(TransferLine, PurchRcptLine, Rec);\n TransferLine.Insert(true);\n \n@@ -1776,4 +1779,3 @@ table 5740 \"Transfer Header\"\n begin\n end;\n }\n-\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-174087", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al b/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\nindex ff43f4ff..87c8128b 100644\n--- a/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\n+++ b/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\n@@ -362,6 +362,11 @@ page 5077 \"Create Interaction\"\n Enabled = IsMainInfoSet;\n Importance = Additional;\n ToolTip = 'Specifies the evaluation of the interaction involving the contact in the segment.';\n+\n+ trigger OnValidate()\n+ begin\n+ InteractionLogEntry.Evaluation := Rec.Evaluation;\n+ end;\n }\n field(ShowMoreLess4; GetShowMoreLessLbl(ShowLessStep4))\n {\n@@ -725,4 +730,3 @@ page 5077 \"Create Interaction\"\n begin\n end;\n }\n-\n", "error_message": null} diff --git a/notebooks/result/bug-fix/copilot-cf-gpt-5-3-codex/run-25315417087.jsonl b/notebooks/result/bug-fix/copilot-cf-gpt-5-3-codex/run-25315417087.jsonl new file mode 100644 index 000000000..28b16420a --- /dev/null +++ b/notebooks/result/bug-fix/copilot-cf-gpt-5-3-codex/run-25315417087.jsonl @@ -0,0 +1,121 @@ +{"instance_id": "microsoftInternal__NAV-174087__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al b/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\nindex ff43f4ff..ee42672e 100644\n--- a/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\n+++ b/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\n@@ -694,6 +694,7 @@ page 5077 \"Create Interaction\"\n end;\n Step::\"Step 4\":\n begin\n+ InteractionLogEntry.Evaluation := Rec.Evaluation;\n InteractionLogEntry.Modify();\n CurrPage.Close();\n end;\n", "error_message": null, "metrics": {"execution_time": 128.0, "llm_duration": null, "turn_count": 10, "prompt_tokens": 294400, "completion_tokens": 2400, "tool_usage": {"rg": 7, "glob": 1, "view": 7, "report_intent": 1, "apply_patch": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-174087__cf-2", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Interaction/InteractionLogEntry.Table.al b/App/Layers/W1/BaseApp/CRM/Interaction/InteractionLogEntry.Table.al\nindex 9eed442c..a5514082 100644\n--- a/App/Layers/W1/BaseApp/CRM/Interaction/InteractionLogEntry.Table.al\n+++ b/App/Layers/W1/BaseApp/CRM/Interaction/InteractionLogEntry.Table.al\n@@ -334,7 +334,18 @@ table 5065 \"Interaction Log Entry\"\n Attachment.RemoveAttachment(false);\n end;\n \n+ trigger OnModify()\n+ begin\n+ if not HasSegmentLineForModify then\n+ exit;\n+\n+ CopyFromSegment(SegmentLineForModify);\n+ HasSegmentLineForModify := false;\n+ end;\n+\n var\n+ SegmentLineForModify: Record \"Segment Line\" temporary;\n+ HasSegmentLineForModify: Boolean;\n Text000: Label '%1 %2 is marked %3.\\';\n Text001: Label 'Do you wish to remove the checkmark?';\n Text002: Label 'Do you wish to mark %1 %2 as %3?';\n@@ -424,6 +435,12 @@ table 5065 \"Interaction Log Entry\"\n OnAfterCopyFromSegment(Rec, SegLine);\n end;\n \n+ internal procedure SetSegmentLineForModify(SegmentLine: Record \"Segment Line\")\n+ begin\n+ SegmentLineForModify := SegmentLine;\n+ HasSegmentLineForModify := true;\n+ end;\n+\n procedure CreateInteraction()\n var\n TempSegLine: Record \"Segment Line\" temporary;\ndiff --git a/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al b/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\nindex ff43f4ff..05970d18 100644\n--- a/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\n+++ b/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\n@@ -580,8 +580,10 @@ page 5077 \"Create Interaction\"\n \n trigger OnQueryClosePage(CloseAction: Action): Boolean\n begin\n- if UpdateLogEntry then\n+ if UpdateLogEntry then begin\n+ InteractionLogEntry.SetSegmentLineForModify(Rec);\n InteractionLogEntry.Modify();\n+ end;\n end;\n \n var\n@@ -694,6 +696,7 @@ page 5077 \"Create Interaction\"\n end;\n Step::\"Step 4\":\n begin\n+ InteractionLogEntry.SetSegmentLineForModify(Rec);\n InteractionLogEntry.Modify();\n CurrPage.Close();\n end;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136208'\nCodeunit 136208 Marketing Interaction\n Testfunction PopulateEvaluationFieldInInteractionLogEntry Failure (4.714 seconds)\n Error:\n Assert.AreEqual failed. Expected: (Integer). Actual:< > (Integer). Evaluation must be Positive in Interaction Log Entry.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"Marketing Interaction\"(CodeUnit 136208).PopulateEvaluationFieldInInteractionLogEntry line 31 - Tests-Marketing by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 412.0, "llm_duration": null, "turn_count": 28, "prompt_tokens": 1500000, "completion_tokens": 14500, "tool_usage": {"rg": 19, "glob": 1, "view": 25, "report_intent": 2, "apply_patch": 3, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-174794__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\nindex b941d50c..ba9d84b1 100644\n--- a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n@@ -10,6 +10,7 @@ using Microsoft.Foundation.AuditCodes;\n using Microsoft.Foundation.NoSeries;\n using Microsoft.Sales.Customer;\n using Microsoft.Sales.Receivables;\n+using Microsoft.Sales.Setup;\n \n codeunit 395 \"FinChrgMemo-Issue\"\n {\n@@ -27,6 +28,7 @@ codeunit 395 \"FinChrgMemo-Issue\"\n ReminderFinChargeEntry: Record \"Reminder/Fin. Charge Entry\";\n FinChrgCommentLine: Record \"Fin. Charge Comment Line\";\n CurrencyExchangeRate: Record \"Currency Exchange Rate\";\n+ SalesSetup: Record \"Sales & Receivables Setup\";\n IsHandled: Boolean;\n begin\n IsHandled := false;\n@@ -66,9 +68,15 @@ codeunit 395 \"FinChrgMemo-Issue\"\n \n Customer.Get(FinChrgMemoHeader.\"Customer No.\");\n Customer.TestField(\"Customer Posting Group\");\n- if FinChrgMemoHeader.\"Customer Posting Group\" <> Customer.\"Customer Posting Group\" then\n- Customer.CheckAllowMultiplePostingGroups();\n- CustomerPostingGroup.Get(FinChrgMemoHeader.\"Customer Posting Group\");\n+ CustomerPostingGroupCode := Customer.\"Customer Posting Group\";\n+ if FinChrgMemoHeader.\"Customer Posting Group\" <> Customer.\"Customer Posting Group\" then begin\n+ SalesSetup.Get();\n+ if SalesSetup.\"Allow Multiple Posting Groups\" then begin\n+ Customer.CheckAllowMultiplePostingGroups();\n+ CustomerPostingGroupCode := FinChrgMemoHeader.\"Customer Posting Group\";\n+ end;\n+ end;\n+ CustomerPostingGroup.Get(CustomerPostingGroupCode);\n FinChrgMemoHeader.CalcFields(\"Interest Amount\", \"Additional Fee\", \"Remaining Amount\");\n if (FinChrgMemoHeader.\"Interest Amount\" = 0) and (FinChrgMemoHeader.\"Additional Fee\" = 0) and (FinChrgMemoHeader.\"Remaining Amount\" = 0) then\n Error(Text000);\n@@ -232,6 +240,7 @@ codeunit 395 \"FinChrgMemo-Issue\"\n ReplacePostingDate: Boolean;\n PostingDate: Date;\n SrcCode: Code[10];\n+ CustomerPostingGroupCode: Code[20];\n FinChrgMemoInterestAmount: Decimal;\n FinChrgMemoInterestVATAmount: Decimal;\n TotalAmount: Decimal;\n@@ -285,6 +294,7 @@ codeunit 395 \"FinChrgMemo-Issue\"\n end;\n TempGenJnlLine.Validate(\"Currency Code\", FinChrgMemoHeader.\"Currency Code\");\n if TempGenJnlLine.\"Account Type\" = TempGenJnlLine.\"Account Type\"::Customer then begin\n+ TempGenJnlLine.\"Posting Group\" := CustomerPostingGroupCode;\n TempGenJnlLine.Validate(Amount, TotalAmount);\n TempGenJnlLine.Validate(\"Amount (LCY)\", TotalAmountLCY);\n TempGenJnlLine.\"Due Date\" := FinChrgMemoHeader.\"Due Date\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134911'\nCodeunit 134911 ERM Create Finance Charge Memo\n Testfunction IssueFinChargeMemoCreatesGLEntryOfAltCustPostingGrpIfAllowMultiPostingGrps Failure (4.51 seconds)\n Error:\n Assert.IsFalse failed. GL Entry for alternate posting group must not be empty when Allow Multiple Posting Groups is enabled.\n Call Stack:\n Assert(CodeUnit 130000).IsFalse line 3 - Tests-TestLibraries by Microsoft\n \"ERM Create Finance Charge Memo\"(CodeUnit 134911).IssueFinChargeMemoCreatesGLEntryOfAltCustPostingGrpIfAllowMultiPostingGrps line 60 - Tests-ERM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 233.0, "llm_duration": null, "turn_count": 14, "prompt_tokens": 481700, "completion_tokens": 5600, "tool_usage": {"rg": 7, "glob": 4, "view": 13, "report_intent": 3, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-174794__cf-2", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\nindex b941d50c..0c971eaa 100644\n--- a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n@@ -285,6 +285,7 @@ codeunit 395 \"FinChrgMemo-Issue\"\n end;\n TempGenJnlLine.Validate(\"Currency Code\", FinChrgMemoHeader.\"Currency Code\");\n if TempGenJnlLine.\"Account Type\" = TempGenJnlLine.\"Account Type\"::Customer then begin\n+ TempGenJnlLine.Validate(\"Posting Group\", FinChrgMemoHeader.\"Customer Posting Group\");\n TempGenJnlLine.Validate(Amount, TotalAmount);\n TempGenJnlLine.Validate(\"Amount (LCY)\", TotalAmountLCY);\n TempGenJnlLine.\"Due Date\" := FinChrgMemoHeader.\"Due Date\";\n", "error_message": null, "metrics": {"execution_time": 148.0, "llm_duration": null, "turn_count": 14, "prompt_tokens": 436000, "completion_tokens": 4300, "tool_usage": {"rg": 15, "view": 12, "report_intent": 4, "glob": 1, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-174794__cf-3", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\nindex b941d50c..0c971eaa 100644\n--- a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n@@ -285,6 +285,7 @@ codeunit 395 \"FinChrgMemo-Issue\"\n end;\n TempGenJnlLine.Validate(\"Currency Code\", FinChrgMemoHeader.\"Currency Code\");\n if TempGenJnlLine.\"Account Type\" = TempGenJnlLine.\"Account Type\"::Customer then begin\n+ TempGenJnlLine.Validate(\"Posting Group\", FinChrgMemoHeader.\"Customer Posting Group\");\n TempGenJnlLine.Validate(Amount, TotalAmount);\n TempGenJnlLine.Validate(\"Amount (LCY)\", TotalAmountLCY);\n TempGenJnlLine.\"Due Date\" := FinChrgMemoHeader.\"Due Date\";\n", "error_message": null, "metrics": {"execution_time": 190.0, "llm_duration": null, "turn_count": 17, "prompt_tokens": 586200, "completion_tokens": 5500, "tool_usage": {"glob": 3, "rg": 20, "report_intent": 5, "view": 19, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-175765__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al\nindex b47fc326..b2a074dd 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al\n@@ -70,6 +70,7 @@ codeunit 9030 \"Undo Transfer Shipment\"\n var\n PostedWhseShptLine: Record \"Posted Whse. Shipment Line\";\n TransferLine: Record \"Transfer Line\";\n+ TempAdjustedItem: Record Item temporary;\n WhseJnlRegisterLine: Codeunit \"Whse. Jnl.-Register Line\";\n Window: Dialog;\n ItemShptEntryNo: Integer;\n@@ -139,10 +140,11 @@ codeunit 9030 \"Undo Transfer Shipment\"\n TransShptLine.\"Correction Line\" := true;\n OnBeforeModifyTransShptLine(TransShptLine);\n TransShptLine.Modify();\n+ AddItemToTempList(TempAdjustedItem, TransShptLine.\"Item No.\");\n \n until TransShptLine.Next() = 0;\n \n- MakeInventoryAdjustment();\n+ MakeInventoryAdjustment(TempAdjustedItem);\n OnAfterCode(TransShptLine);\n end;\n \n@@ -341,8 +343,21 @@ codeunit 9030 \"Undo Transfer Shipment\"\n exit(ItemLedgEntry.FindSet());\n end;\n \n- local procedure MakeInventoryAdjustment()\n+ local procedure AddItemToTempList(var TempAdjustedItem: Record Item temporary; ItemNo: Code[20])\n+ begin\n+ if ItemNo = '' then\n+ exit;\n+ if TempAdjustedItem.Get(ItemNo) then\n+ exit;\n+\n+ TempAdjustedItem.Init();\n+ TempAdjustedItem.\"No.\" := ItemNo;\n+ TempAdjustedItem.Insert();\n+ end;\n+\n+ local procedure MakeInventoryAdjustment(var TempAdjustedItem: Record Item temporary)\n var\n+ ItemToAdjust: Record Item;\n InvtSetup: Record \"Inventory Setup\";\n InvtAdjmtHandler: Codeunit \"Inventory Adjustment Handler\";\n begin\n@@ -350,7 +365,18 @@ codeunit 9030 \"Undo Transfer Shipment\"\n if InvtSetup.\"Automatic Cost Adjustment\" <> InvtSetup.\"Automatic Cost Adjustment\"::Never then begin\n InvtAdjmtHandler.SetJobUpdateProperties(true);\n InvtAdjmtHandler.MakeInventoryAdjustment(true, InvtSetup.\"Automatic Cost Posting\");\n+ exit;\n end;\n+\n+ if TempAdjustedItem.FindSet() then\n+ repeat\n+ ItemToAdjust.SetRange(\"No.\", TempAdjustedItem.\"No.\");\n+ InvtAdjmtHandler.SetFilterItem(ItemToAdjust);\n+ InvtAdjmtHandler.SetJobUpdateProperties(true);\n+ InvtAdjmtHandler.MakeInventoryAdjustment(true, InvtSetup.\"Automatic Cost Posting\");\n+ Clear(InvtAdjmtHandler);\n+ ItemToAdjust.Reset();\n+ until TempAdjustedItem.Next() = 0;\n end;\n \n [IntegrationEvent(false, false)]\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137038'\nCodeunit 137038 SCM Transfers\n Testfunction AdjustCostOfUndoneTransferShipment Failure (4.853 seconds)\n Error:\n Unit Cost must be equal to '111.96' in Item: No.=GL00000000. Current value is '24.87'.\n Call Stack:\n \"SCM Transfers\"(CodeUnit 137038).AdjustCostOfUndoneTransferShipment line 45 - Tests-SCM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 1112.0, "llm_duration": null, "turn_count": 27, "prompt_tokens": 1200000, "completion_tokens": 16600, "tool_usage": {"rg": 22, "glob": 12, "report_intent": 6, "view": 26, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-175765__cf-2", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al\nindex b47fc326..868fe925 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al\n@@ -92,6 +92,8 @@ codeunit 9030 \"Undo Transfer Shipment\"\n CheckTransferShptLine(TransShptLine);\n until TransShptLine.Next() = 0;\n \n+ MakeInventoryAdjustment();\n+\n TransShptLine.FindSet();\n repeat\n OnCodeOnBeforeUndoLoop(TransShptLine);\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137038'\nCodeunit 137038 SCM Transfers\n Testfunction AdjustCostOfUndoneTransferShipment Failure (5.677 seconds)\n Error:\n Unit Cost must be equal to '111.96' in Item: No.=GL00000000. Current value is '24.87'.\n Call Stack:\n \"SCM Transfers\"(CodeUnit 137038).AdjustCostOfUndoneTransferShipment line 46 - Tests-SCM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 154.0, "llm_duration": null, "turn_count": 9, "prompt_tokens": 240700, "completion_tokens": 2600, "tool_usage": {"rg": 10, "glob": 3, "view": 3, "report_intent": 2, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-175765__cf-3", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Costing/InventoryAdjustment.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Costing/InventoryAdjustment.Codeunit.al\nindex a12484a4..562bc709 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Costing/InventoryAdjustment.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Costing/InventoryAdjustment.Codeunit.al\n@@ -945,6 +945,10 @@ codeunit 5895 \"Inventory Adjustment\" implements \"Inventory Adjustment\"\n OutbndValueEntry.SetRange(\"Item Ledger Entry No.\", OutbndItemLedgEntryNo);\n OutbndValueEntry.SetFilter(\"Item Ledger Entry Quantity\", '<>0');\n OutbndValueEntry.FindFirst();\n+ if IsUndoTransferShipmentCostReversal(OutbndItemLedgEntryNo) then\n+ exit(\n+ (OutbndValueEntry.\"Entry No.\" > InbndValueEntry.\"Entry No.\") or\n+ (OutbndValueEntry.\"Entry No.\" = 0));\n exit(\n (OutbndValueEntry.\"Entry No.\" > InbndValueEntry.\"Entry No.\") or\n (OutbndValueEntry.GetValuationDate() > InbndValueEntry.\"Valuation Date\") or\n@@ -954,6 +958,19 @@ codeunit 5895 \"Inventory Adjustment\" implements \"Inventory Adjustment\"\n exit(InbndValueEntry.\"Entry Type\" <> InbndValueEntry.\"Entry Type\"::Rounding);\n end;\n \n+ local procedure IsUndoTransferShipmentCostReversal(ItemLedgerEntryNo: Integer): Boolean\n+ var\n+ ItemLedgerEntry: Record \"Item Ledger Entry\";\n+ begin\n+ if not ItemLedgerEntry.Get(ItemLedgerEntryNo) then\n+ exit(false);\n+\n+ exit(\n+ (ItemLedgerEntry.\"Entry Type\" = ItemLedgerEntry.\"Entry Type\"::Transfer) and\n+ (ItemLedgerEntry.\"Document Type\" = ItemLedgerEntry.\"Document Type\"::\"Transfer Shipment\") and\n+ ItemLedgerEntry.Correction);\n+ end;\n+\n local procedure CalcOutbndDocOldCost(var CostElementBuf: Record \"Cost Element Buffer\"; OutbndValueEntry: Record \"Value Entry\"; ExactCostReversing: Boolean)\n var\n ValueEntry: Record \"Value Entry\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137038'\nCodeunit 137038 SCM Transfers\n Testfunction AdjustCostOfUndoneTransferShipment Failure (6.557 seconds)\n Error:\n Unit Cost must be equal to '111.96' in Item: No.=GL00000000. Current value is '24.87'.\n Call Stack:\n \"SCM Transfers\"(CodeUnit 137038).AdjustCostOfUndoneTransferShipment line 47 - Tests-SCM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 374.0, "llm_duration": null, "turn_count": 24, "prompt_tokens": 1600000, "completion_tokens": 11900, "tool_usage": {"rg": 22, "glob": 2, "view": 21, "report_intent": 2, "apply_patch": 1, "powershell": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-176082__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\nindex 5fe44b45..29c52789 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\n@@ -1304,7 +1304,7 @@ table 5740 \"Transfer Header\"\n TempPurchRcptHeader: Record \"Purch. Rcpt. Header\" temporary;\n PostedPurchaseReceipts: Page \"Posted Purchase Receipts\";\n begin\n- PurchRcptHeader.SetRange(\"Location Code\", \"Transfer-from Code\");\n+ SetPostedPurchaseReceiptHeaderFilter(PurchRcptHeader);\n PostedPurchaseReceipts.SetTableView(PurchRcptHeader);\n PostedPurchaseReceipts.LookupMode := true;\n if PostedPurchaseReceipts.RunModal() = ACTION::LookupOK then begin\n@@ -1313,6 +1313,21 @@ table 5740 \"Transfer Header\"\n end;\n end;\n \n+ local procedure SetPostedPurchaseReceiptHeaderFilter(var PurchRcptHeader: Record \"Purch. Rcpt. Header\")\n+ var\n+ PurchRcptLine: Record \"Purch. Rcpt. Line\";\n+ begin\n+ PurchRcptLine.SetRange(Type, PurchRcptLine.Type::Item);\n+ PurchRcptLine.SetRange(\"Location Code\", \"Transfer-from Code\");\n+ if PurchRcptLine.FindSet() then\n+ repeat\n+ if PurchRcptHeader.Get(PurchRcptLine.\"Document No.\") then\n+ PurchRcptHeader.Mark(true);\n+ until PurchRcptLine.Next() = 0;\n+\n+ PurchRcptHeader.MarkedOnly(true);\n+ end;\n+\n local procedure CreateTransferLinesFromSelectedPurchReceipts(var TempPurchRcptHeader: Record \"Purch. Rcpt. Header\" temporary)\n var\n PurchRcptLine: Record \"Purch. Rcpt. Line\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137038'\nCodeunit 137038 SCM Transfers\n Testfunction GetReceiptLinesShowListOfPostedPurchRcptsHavingTransferFromCodeInLocationCodeOfPurchRcptLines Failure (11.594 seconds)\n Error:\n Assert.AreEqual failed. Expected:<3> (Integer). Actual:<0> (Integer). Appl.-to Item Entry must be 3 in Transfer Line..\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"SCM Transfers\"(CodeUnit 137038).GetReceiptLinesShowListOfPostedPurchRcptsHavingTransferFromCodeInLocationCodeOfPurchRcptLines line 80 - Tests-SCM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 170.0, "llm_duration": null, "turn_count": 14, "prompt_tokens": 317000, "completion_tokens": 4600, "tool_usage": {"rg": 15, "glob": 3, "report_intent": 2, "view": 4, "apply_patch": 2, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-176082__cf-2", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\nindex 5fe44b45..19d6c40b 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\n@@ -1301,10 +1301,35 @@ table 5740 \"Transfer Header\"\n procedure GetReceiptLines()\n var\n PurchRcptHeader: Record \"Purch. Rcpt. Header\";\n+ PurchRcptLine: Record \"Purch. Rcpt. Line\";\n+ TempFilteredPurchRcptHeader: Record \"Purch. Rcpt. Header\" temporary;\n TempPurchRcptHeader: Record \"Purch. Rcpt. Header\" temporary;\n+ SelectionFilterManagement: Codeunit SelectionFilterManagement;\n PostedPurchaseReceipts: Page \"Posted Purchase Receipts\";\n+ RecRef: RecordRef;\n begin\n- PurchRcptHeader.SetRange(\"Location Code\", \"Transfer-from Code\");\n+ PurchRcptLine.SetRange(Type, PurchRcptLine.Type::Item);\n+ PurchRcptLine.SetRange(\"Location Code\", \"Transfer-from Code\");\n+ if PurchRcptLine.FindSet() then\n+ repeat\n+ if TempFilteredPurchRcptHeader.Get(PurchRcptLine.\"Document No.\") then\n+ continue;\n+\n+ if not PurchRcptHeader.Get(PurchRcptLine.\"Document No.\") then\n+ continue;\n+\n+ TempFilteredPurchRcptHeader := PurchRcptHeader;\n+ TempFilteredPurchRcptHeader.Insert();\n+ until PurchRcptLine.Next() = 0;\n+\n+ if TempFilteredPurchRcptHeader.IsEmpty then\n+ PurchRcptHeader.SetRange(\"No.\", '')\n+ else begin\n+ RecRef.GetTable(TempFilteredPurchRcptHeader);\n+ PurchRcptHeader.SetFilter(\n+ \"No.\",\n+ SelectionFilterManagement.GetSelectionFilter(RecRef, TempFilteredPurchRcptHeader.FieldNo(\"No.\")));\n+ end;\n PostedPurchaseReceipts.SetTableView(PurchRcptHeader);\n PostedPurchaseReceipts.LookupMode := true;\n if PostedPurchaseReceipts.RunModal() = ACTION::LookupOK then begin\n", "error_message": "Build or publish failed for App\\Layers\\W1\\BaseApp:\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Inventory\\Costing\\CalcInventoryAdjmtOrder.Codeunit.al(459,186): warning AL0749: The type 'CalculateActualMaterialCost' of the parameter 'Calculate Actual Material Cost' of the event method 'OnCalcActualMaterialCostsOnAfterSetFilters' has 'Internal' accessibility. The method will not be callable outside of this module without an implicit conversion.\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Finance\\GeneralLedger\\Setup\\GeneralLedgerSetup.Table.al(888,20): warning AL0842: The type 'VAT Period Control' of the public field 'Control VAT Period' has 'Internal' accessibility. The field will not be usable outside of this module without an implicit conversion.\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Inventory\\Transfer\\TransferHeader.Table.al(1316,21): error AL0118: The name 'continue' does not exist in the current context.\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Inventory\\Transfer\\TransferHeader.Table.al(1319,21): error AL0118: The name 'continue' does not exist in the current context.", "metrics": {"execution_time": 159.0, "llm_duration": null, "turn_count": 11, "prompt_tokens": 268300, "completion_tokens": 4800, "tool_usage": {"rg": 7, "glob": 3, "report_intent": 3, "view": 4, "apply_patch": 2, "powershell": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": false} +{"instance_id": "microsoftInternal__NAV-176082__cf-3", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\nindex 5fe44b45..222176ca 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\n@@ -1376,10 +1376,23 @@ table 5740 \"Transfer Header\"\n PurchRcptLine.FilterPstdDocLnItemLedgEntries(ItemLedgerEntry);\n ItemTrackingDocMgt.CopyItemLedgerEntriesToTemp(TempItemLedgerEntry, ItemLedgerEntry);\n ItemTrackingMgt.CopyItemLedgEntryTrkgToTransferLine(TempItemLedgerEntry, TransferLine);\n+ RevalidateTransferLineApplToItemEntry(LineNo);\n \n OnAfterAddTransferLineFromReceiptLine(TransferLine, PurchRcptLine, TempItemLedgerEntry, Rec);\n end;\n \n+ local procedure RevalidateTransferLineApplToItemEntry(LineNo: Integer)\n+ var\n+ TransferLine: Record \"Transfer Line\";\n+ begin\n+ if not TransferLine.Get(\"No.\", LineNo) then\n+ exit;\n+ if TransferLine.\"Appl.-to Item Entry\" = 0 then\n+ exit;\n+\n+ TransferLine.Validate(\"Appl.-to Item Entry\", TransferLine.\"Appl.-to Item Entry\");\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnUpdateTransLines(var TransferLine: Record \"Transfer Line\"; TransferHeader: Record \"Transfer Header\"; FieldID: Integer)\n begin\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137038'\nCodeunit 137038 SCM Transfers\n Testfunction GetReceiptLinesShowListOfPostedPurchRcptsHavingTransferFromCodeInLocationCodeOfPurchRcptLines Failure (9.19 seconds)\n Error:\n Assert.AreEqual failed. Expected:<3> (Integer). Actual:<0> (Integer). Appl.-to Item Entry must be 3 in Transfer Line..\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"SCM Transfers\"(CodeUnit 137038).GetReceiptLinesShowListOfPostedPurchRcptsHavingTransferFromCodeInLocationCodeOfPurchRcptLines line 80 - Tests-SCM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 517.0, "llm_duration": null, "turn_count": 39, "prompt_tokens": 2200000, "completion_tokens": 12200, "tool_usage": {"rg": 39, "report_intent": 8, "glob": 3, "view": 27, "powershell": 2, "apply_patch": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-176150__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al b/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\nindex 55d3fbad..b22bf513 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\n@@ -1015,7 +1015,7 @@ page 5510 \"Production Journal\"\n \n protected procedure MarkRelevantRec(var ItemJournalLine: Record \"Item Journal Line\")\n begin\n- ItemJournalLine := Rec;\n+ ItemJournalLine.Copy(Rec);\n if ItemJournalLine.FindSet() then begin\n repeat\n case ItemJournalLine.\"Entry Type\" of\n", "error_message": null, "metrics": {"execution_time": 203.0, "llm_duration": null, "turn_count": 13, "prompt_tokens": 443400, "completion_tokens": 6600, "tool_usage": {"rg": 15, "view": 15, "glob": 3, "report_intent": 2, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-176150__cf-2", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al b/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\nindex 55d3fbad..618f4fc2 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\n@@ -1015,7 +1015,20 @@ page 5510 \"Production Journal\"\n \n protected procedure MarkRelevantRec(var ItemJournalLine: Record \"Item Journal Line\")\n begin\n- ItemJournalLine := Rec;\n+ ItemJournalLine.Reset();\n+ ItemJournalLine.FilterGroup(2);\n+ ItemJournalLine.SetRange(\"Journal Template Name\", ToTemplateName);\n+ ItemJournalLine.SetRange(\"Journal Batch Name\", ToBatchName);\n+ ItemJournalLine.SetRange(\"Order Type\", ItemJournalLine.\"Order Type\"::Production);\n+ ItemJournalLine.SetRange(\"Order No.\", ProdOrder.\"No.\");\n+ if ProdOrderLineNo <> 0 then\n+ ItemJournalLine.SetRange(\"Order Line No.\", ProdOrderLineNo);\n+ if FlushingFilter <> FlushingFilter::\"All Methods\" then\n+ ItemJournalLine.SetRange(\"Flushing Method\", FlushingFilter)\n+ else\n+ ItemJournalLine.SetRange(\"Flushing Method\");\n+ ItemJournalLine.FilterGroup(0);\n+\n if ItemJournalLine.FindSet() then begin\n repeat\n case ItemJournalLine.\"Entry Type\" of\n", "error_message": null, "metrics": {"execution_time": 206.0, "llm_duration": null, "turn_count": 12, "prompt_tokens": 466600, "completion_tokens": 5800, "tool_usage": {"rg": 16, "view": 13, "report_intent": 2, "glob": 1, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-176194__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssgntSales.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssgntSales.Codeunit.al\nindex de917342..cf2fb6f9 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssgntSales.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssgntSales.Codeunit.al\n@@ -206,7 +206,6 @@ codeunit 5807 \"Item Charge Assgnt. (Sales)\"\n SuggestItemChargeMessageTxt: Text;\n IsHandled: Boolean;\n begin\n- SalesLine.TestField(\"Qty. to Invoice\");\n ItemChargeAssgntSales.SetRange(\"Document Type\", SalesLine.\"Document Type\");\n ItemChargeAssgntSales.SetRange(\"Document No.\", SalesLine.\"Document No.\");\n ItemChargeAssgntSales.SetRange(\"Document Line No.\", SalesLine.\"Line No.\");\ndiff --git a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Page.al b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Page.al\nindex 0893904c..09b7d9ce 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Page.al\n@@ -310,8 +310,6 @@ page 5814 \"Item Charge Assignment (Sales)\"\n ItemChargeAssgntSales: Record \"Item Charge Assignment (Sales)\";\n ShipmentLines: Page \"Sales Shipment Lines\";\n begin\n- SalesLine2.TestField(\"Qty. to Invoice\");\n-\n ItemChargeAssgntSales.SetRange(\"Document Type\", Rec.\"Document Type\");\n ItemChargeAssgntSales.SetRange(\"Document No.\", Rec.\"Document No.\");\n ItemChargeAssgntSales.SetRange(\"Document Line No.\", Rec.\"Document Line No.\");\ndiff --git a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al\nindex 7cd86681..54a3ab82 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al\n@@ -58,8 +58,6 @@ table 5809 \"Item Charge Assignment (Sales)\"\n trigger OnValidate()\n begin\n SalesLine.Get(\"Document Type\", \"Document No.\", \"Document Line No.\");\n- if Rec.\"Qty. to Assign\" <> xRec.\"Qty. to Assign\" then\n- SalesLine.TestField(\"Qty. to Invoice\");\n TestField(\"Applies-to Doc. Line No.\");\n if (\"Qty. to Assign\" <> 0) and (\"Applies-to Doc. Type\" = \"Document Type\") then\n if SalesLineInvoiced() then\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134329'\nCodeunit 134329 ERM Purchase Return Order\n Testfunction GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToReceiveIsBlankInPurchPayablesSetup Failure (11.76 seconds)\n Error:\n Qty. to Invoice must have a value in Purchase Line: Document Type=Return Order, Document No.=1001, Line No.=20000. It cannot be zero or empty.\n Call Stack:\n \"Item Charge Assignment (Purch)\"(Table 5805).\"Qty. to Assign - OnValidate\"(Trigger) line 4 - Base Application by Microsoft\n \"Item Charge Assgnt. (Purch.)\"(CodeUnit 5805).InsertItemChargeAssignmentWithValuesTo line 20 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyFromPurchLineItemChargeAssign line 47 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyPurchInvLinesToDoc line 144 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyPurchaseLinesToDoc line 15 - Base Application by Microsoft\n \"Posted Purchase Document Lines\"(Page 5855).CopyLineToDoc line 23 - Base Application by Microsoft\n \"Purchase Header\"(Table 38).GetPstdDocLinesToReverse line 9 - Base Application by Microsoft\n \"Purchase Return Order\"(Page 6640).\"GetPostedDocumentLinesToReverse - OnAction\"(Trigger) line 2 - Base Application by Microsoft\nSetting test codeunit range '134387'\nCodeunit 134387 ERM Sales Documents III\n Testfunction GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToShipIsBlankInSalesReceiSetup Success (4.047 seconds)\n\u001b[32m[14:51:13] Tests passed for Codeunit 134387\u001b[0m", "metrics": {"execution_time": 117.0, "llm_duration": null, "turn_count": 9, "prompt_tokens": 179700, "completion_tokens": 2900, "tool_usage": {"rg": 9, "report_intent": 2, "view": 3, "apply_patch": 3, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-176194__cf-2", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al\nindex 7cd86681..8586a713 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al\n@@ -7,6 +7,7 @@ namespace Microsoft.Sales.Document;\n using Microsoft.Finance.Currency;\n using Microsoft.Inventory.Item;\n using Microsoft.Sales.History;\n+using Microsoft.Sales.Setup;\n \n table 5809 \"Item Charge Assignment (Sales)\"\n {\n@@ -56,10 +57,15 @@ table 5809 \"Item Charge Assignment (Sales)\"\n DecimalPlaces = 0 : 5;\n \n trigger OnValidate()\n+ var\n+ SalesSetup: Record \"Sales & Receivables Setup\";\n begin\n SalesLine.Get(\"Document Type\", \"Document No.\", \"Document Line No.\");\n- if Rec.\"Qty. to Assign\" <> xRec.\"Qty. to Assign\" then\n- SalesLine.TestField(\"Qty. to Invoice\");\n+ if Rec.\"Qty. to Assign\" <> xRec.\"Qty. to Assign\" then begin\n+ SalesSetup.Get();\n+ if SalesSetup.\"Default Quantity to Ship\" <> SalesSetup.\"Default Quantity to Ship\"::Blank then\n+ SalesLine.TestField(\"Qty. to Invoice\");\n+ end;\n TestField(\"Applies-to Doc. Line No.\");\n if (\"Qty. to Assign\" <> 0) and (\"Applies-to Doc. Type\" = \"Document Type\") then\n if SalesLineInvoiced() then\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134329'\nCodeunit 134329 ERM Purchase Return Order\n Testfunction GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToReceiveIsBlankInPurchPayablesSetup Failure (12.66 seconds)\n Error:\n Qty. to Invoice must have a value in Purchase Line: Document Type=Return Order, Document No.=1001, Line No.=20000. It cannot be zero or empty.\n Call Stack:\n \"Item Charge Assignment (Purch)\"(Table 5805).\"Qty. to Assign - OnValidate\"(Trigger) line 4 - Base Application by Microsoft\n \"Item Charge Assgnt. (Purch.)\"(CodeUnit 5805).InsertItemChargeAssignmentWithValuesTo line 20 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyFromPurchLineItemChargeAssign line 47 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyPurchInvLinesToDoc line 144 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyPurchaseLinesToDoc line 15 - Base Application by Microsoft\n \"Posted Purchase Document Lines\"(Page 5855).CopyLineToDoc line 23 - Base Application by Microsoft\n \"Purchase Header\"(Table 38).GetPstdDocLinesToReverse line 9 - Base Application by Microsoft\n \"Purchase Return Order\"(Page 6640).\"GetPostedDocumentLinesToReverse - OnAction\"(Trigger) line 2 - Base Application by Microsoft\nSetting test codeunit range '134387'\nCodeunit 134387 ERM Sales Documents III\n Testfunction GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToShipIsBlankInSalesReceiSetup Success (4.487 seconds)\n\u001b[32m[14:59:43] Tests passed for Codeunit 134387\u001b[0m", "metrics": {"execution_time": 474.0, "llm_duration": null, "turn_count": 34, "prompt_tokens": 1500000, "completion_tokens": 12700, "tool_usage": {"rg": 37, "glob": 2, "report_intent": 6, "view": 32, "powershell": 2, "apply_patch": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-176194__cf-3", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al\nindex 7cd86681..54a3ab82 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al\n@@ -58,8 +58,6 @@ table 5809 \"Item Charge Assignment (Sales)\"\n trigger OnValidate()\n begin\n SalesLine.Get(\"Document Type\", \"Document No.\", \"Document Line No.\");\n- if Rec.\"Qty. to Assign\" <> xRec.\"Qty. to Assign\" then\n- SalesLine.TestField(\"Qty. to Invoice\");\n TestField(\"Applies-to Doc. Line No.\");\n if (\"Qty. to Assign\" <> 0) and (\"Applies-to Doc. Type\" = \"Document Type\") then\n if SalesLineInvoiced() then\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134329'\nCodeunit 134329 ERM Purchase Return Order\n Testfunction GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToReceiveIsBlankInPurchPayablesSetup Failure (12.666 seconds)\n Error:\n Qty. to Invoice must have a value in Purchase Line: Document Type=Return Order, Document No.=1001, Line No.=20000. It cannot be zero or empty.\n Call Stack:\n \"Item Charge Assignment (Purch)\"(Table 5805).\"Qty. to Assign - OnValidate\"(Trigger) line 4 - Base Application by Microsoft\n \"Item Charge Assgnt. (Purch.)\"(CodeUnit 5805).InsertItemChargeAssignmentWithValuesTo line 20 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyFromPurchLineItemChargeAssign line 47 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyPurchInvLinesToDoc line 144 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyPurchaseLinesToDoc line 15 - Base Application by Microsoft\n \"Posted Purchase Document Lines\"(Page 5855).CopyLineToDoc line 23 - Base Application by Microsoft\n \"Purchase Header\"(Table 38).GetPstdDocLinesToReverse line 9 - Base Application by Microsoft\n \"Purchase Return Order\"(Page 6640).\"GetPostedDocumentLinesToReverse - OnAction\"(Trigger) line 2 - Base Application by Microsoft\nSetting test codeunit range '134387'\nCodeunit 134387 ERM Sales Documents III\n Testfunction GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToShipIsBlankInSalesReceiSetup Success (4.054 seconds)\n\u001b[32m[14:52:20] Tests passed for Codeunit 134387\u001b[0m", "metrics": {"execution_time": 124.0, "llm_duration": null, "turn_count": 10, "prompt_tokens": 212400, "completion_tokens": 2500, "tool_usage": {"rg": 6, "glob": 2, "view": 6, "report_intent": 2, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-176426__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\nindex d639a562..878de9b5 100644\n--- a/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\n@@ -983,6 +983,9 @@ codeunit 5870 \"Calculate BOM Tree\"\n local procedure HasBomStructure(ItemNo: Code[20]): Boolean\n var\n Item: Record Item;\n+ ProdBOMLine: Record \"Production BOM Line\";\n+ VersionMgt: Codeunit VersionManagement;\n+ VersionCode: Code[20];\n begin\n Item.Get(ItemNo);\n case Item.\"Replenishment System\" of\n@@ -993,8 +996,15 @@ codeunit 5870 \"Calculate BOM Tree\"\n exit(true);\n end;\n Item.\"Replenishment System\"::\"Prod. Order\":\n- if Item.\"Production BOM No.\" <> '' then\n- exit(true);\n+ if Item.\"Production BOM No.\" <> '' then begin\n+ VersionCode := VersionMgt.GetBOMVersion(Item.\"Production BOM No.\", WorkDate(), true);\n+ ProdBOMLine.SetRange(\"Production BOM No.\", Item.\"Production BOM No.\");\n+ ProdBOMLine.SetRange(\"Version Code\", VersionCode);\n+ ProdBOMLine.SetFilter(\"No.\", '<>%1', '');\n+ ProdBOMLine.SetFilter(\"Starting Date\", '%1|..%2', 0D, WorkDate());\n+ ProdBOMLine.SetFilter(\"Ending Date\", '%1|%2..', 0D, WorkDate());\n+ exit(not ProdBOMLine.IsEmpty());\n+ end;\n end;\n end;\n \n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137391'\nCodeunit 137391 SCM - BOM Cost Shares Report\n Testfunction RolledUpMaterialAndCapacityCostWithRoutingAndNoBOM Failure (3.73 seconds)\n Error:\n AssertEquals for Field: Rolled-up Material Cost Expected = '', Actual = '497.28'\n Call Stack:\n \"SCM - BOM Cost Shares Report\"(CodeUnit 137391).VerifyParentItemMaterialAndCapacityCost line 7 - Tests-SCM by Microsoft\n \"SCM - BOM Cost Shares Report\"(CodeUnit 137391).RolledUpMaterialAndCapacityCostWithRoutingAndNoBOM line 34 - Tests-SCM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 356.0, "llm_duration": null, "turn_count": 21, "prompt_tokens": 890700, "completion_tokens": 9800, "tool_usage": {"rg": 22, "report_intent": 18, "view": 16, "glob": 4, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-176426__cf-2", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\nindex d639a562..fab60756 100644\n--- a/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\n@@ -720,7 +720,6 @@ codeunit 5870 \"Calculate BOM Tree\"\n end else\n if BOMBuffer.Type = BOMBuffer.Type::Item then begin\n BOMBuffer.RoundCosts(1 / LotSize);\n- BOMBuffer.GetItemCosts();\n end;\n \n BOMBuffer.CalcUnitCost();\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137391'\nCodeunit 137391 SCM - BOM Cost Shares Report\n Testfunction RolledUpMaterialAndCapacityCostWithRoutingAndNoBOM Failure (3.973 seconds)\n Error:\n AssertEquals for Field: Rolled-up Material Cost Expected = '497.28', Actual = ''\n Call Stack:\n \"SCM - BOM Cost Shares Report\"(CodeUnit 137391).VerifyParentItemMaterialAndCapacityCost line 7 - Tests-SCM by Microsoft\n \"SCM - BOM Cost Shares Report\"(CodeUnit 137391).RolledUpMaterialAndCapacityCostWithRoutingAndNoBOM line 34 - Tests-SCM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 274.0, "llm_duration": null, "turn_count": 17, "prompt_tokens": 788000, "completion_tokens": 6800, "tool_usage": {"rg": 18, "glob": 1, "report_intent": 2, "view": 14, "powershell": 2, "apply_patch": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-177493__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\nindex bb47904d..2cb7b754 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n@@ -40,6 +40,7 @@ report 302 \"Get Demand To Reserve\"\n SetFilter(\"Variant Code\", FilterItem.GetFilter(\"Variant Filter\"));\n SetFilter(\"Location Code\", FilterItem.GetFilter(\"Location Filter\"));\n SetFilter(\"Shipment Date\", FilterItem.GetFilter(\"Date Filter\"));\n+ SetFilter(Reserve, '<>%1', Reserve::Never);\n \n FilterGroup(2);\n if DateFilter <> '' then\n@@ -548,4 +549,4 @@ report 302 \"Get Demand To Reserve\"\n local procedure OnSalesOrderLineOnAfterGetRecordOnBeforeSetTempSalesLine(var OrderSalesLine: Record \"Sales Line\")\n begin\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137023'\nCodeunit 137023 SCM Reservation Worksheet\n Testfunction ItemWithReserveNeverNotInReservationWorksheet Failure (8.323 seconds)\n Error:\n Assert.IsFalse failed. Sales demand with Reserve=Never should appear (filtering deferred to post-processing).\n Call Stack:\n Assert(CodeUnit 130000).IsFalse line 3 - Tests-TestLibraries by Microsoft\n \"SCM Reservation Worksheet\"(CodeUnit 137023).ItemWithReserveNeverNotInReservationWorksheet line 50 - Tests-SCM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 233.0, "llm_duration": null, "turn_count": 14, "prompt_tokens": 410000, "completion_tokens": 4100, "tool_usage": {"rg": 8, "glob": 2, "view": 9, "powershell": 4, "report_intent": 1, "apply_patch": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-177493__cf-2", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\nindex bb47904d..d770da63 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n@@ -58,6 +58,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if Reserve = Reserve::Never then\n+ CurrReport.Skip();\n+\n if not CheckIfSalesLineMeetsReservedFromStockSetting(Abs(\"Outstanding Qty. (Base)\"), ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -158,6 +161,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if Reserve = Reserve::Never then\n+ CurrReport.Skip();\n+\n if not CheckIfServiceLineMeetsReservedFromStockSetting(Abs(\"Outstanding Qty. (Base)\"), ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -548,4 +554,4 @@ report 302 \"Get Demand To Reserve\"\n local procedure OnSalesOrderLineOnAfterGetRecordOnBeforeSetTempSalesLine(var OrderSalesLine: Record \"Sales Line\")\n begin\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": null, "metrics": {"execution_time": 231.0, "llm_duration": null, "turn_count": 17, "prompt_tokens": 685300, "completion_tokens": 5300, "tool_usage": {"glob": 1, "rg": 15, "view": 11, "powershell": 2, "report_intent": 1, "apply_patch": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-177493__cf-3", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\nindex bb47904d..c6ca5c39 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n@@ -55,6 +55,9 @@ report 302 \"Get Demand To Reserve\"\n var\n Item: Record Item;\n begin\n+ if not CanReserve(SalesOrderLine.Reserve) then\n+ CurrReport.Skip();\n+\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n@@ -107,6 +110,11 @@ report 302 \"Get Demand To Reserve\"\n var\n Item: Record Item;\n begin\n+ if not Item.Get(\"Item No.\") then\n+ CurrReport.Skip();\n+ if not CanReserve(Item.Reserve) then\n+ CurrReport.Skip();\n+\n if not CheckIfTransferLineMeetsReservedFromStockSetting(\"Outstanding Qty. (Base)\", ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -155,6 +163,9 @@ report 302 \"Get Demand To Reserve\"\n var\n Item: Record Item;\n begin\n+ if not CanReserve(ServiceOrderLine.Reserve) then\n+ CurrReport.Skip();\n+\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n@@ -205,6 +216,9 @@ report 302 \"Get Demand To Reserve\"\n var\n Item: Record Item;\n begin\n+ if not CanReserve(JobPlanningLine.Reserve) then\n+ CurrReport.Skip();\n+\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n@@ -256,6 +270,9 @@ report 302 \"Get Demand To Reserve\"\n var\n Item: Record Item;\n begin\n+ if not CanReserve(AssemblyLine.Reserve) then\n+ CurrReport.Skip();\n+\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n@@ -306,6 +323,11 @@ report 302 \"Get Demand To Reserve\"\n var\n Item: Record Item;\n begin\n+ if not Item.Get(\"Item No.\") then\n+ CurrReport.Skip();\n+ if not CanReserve(Item.Reserve) then\n+ CurrReport.Skip();\n+\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n@@ -544,8 +566,13 @@ report 302 \"Get Demand To Reserve\"\n DateFilter := Format(StartDate) + '..' + Format(EndDate);\n end;\n \n+ local procedure CanReserve(ReserveMethod: Enum \"Reserve Method\"): Boolean\n+ begin\n+ exit(ReserveMethod <> ReserveMethod::Never);\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnSalesOrderLineOnAfterGetRecordOnBeforeSetTempSalesLine(var OrderSalesLine: Record \"Sales Line\")\n begin\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": null, "metrics": {"execution_time": 338.0, "llm_duration": null, "turn_count": 27, "prompt_tokens": 1300000, "completion_tokens": 10600, "tool_usage": {"rg": 30, "report_intent": 5, "view": 25, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-178045__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\nindex 7e739c29..2b31c296 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\n@@ -7129,11 +7129,10 @@ codeunit 22 \"Item Jnl.-Post Line\"\n ItemLedgerEntry.SetRange(Positive, true);\n ItemLedgerEntry.SetRange(Open, true);\n ItemLedgerEntry.SetFilter(\"Remaining Quantity\", '>=%1', -ItemJournalLine.\"Output Quantity (Base)\");\n- if not ItemLedgerEntry.IsEmpty() then\n- if ItemLedgerEntry.Count = 1 then begin\n- ItemLedgerEntry.FindFirst();\n- exit(ItemLedgerEntry.\"Entry No.\");\n- end;\n+ if not ItemLedgerEntry.IsEmpty() then begin\n+ ItemLedgerEntry.FindFirst();\n+ exit(ItemLedgerEntry.\"Entry No.\");\n+ end;\n \n exit(0);\n end;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137404'\nCodeunit 137404 SCM Manufacturing\n Testfunction ConsumptionIsPostedForMultipleILEsOfSameLotNo Failure (8.54 seconds)\n Error:\n You have insufficient quantity of Item GL00000000 on inventory.\n Call Stack:\n \"Production Journal Mgt\"(CodeUnit 5510).Handling line 30 - Base Application by Microsoft\n \"Released Prod. Order Lines\"(Page 99000832).ShowProductionJournal line 10 - Base Application by Microsoft\n \"Released Prod. Order Lines\"(Page 99000832).\"ProductionJournal - OnAction\"(Trigger) line 2 - Base Application by Microsoft", "metrics": {"execution_time": 814.0, "llm_duration": null, "turn_count": 52, "prompt_tokens": 4500000, "completion_tokens": 22000, "tool_usage": {"rg": 72, "glob": 1, "view": 21, "report_intent": 3, "powershell": 4, "apply_patch": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-179733__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al\nindex efa323e6..9fb8dc36 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al\n@@ -91,7 +91,9 @@ codeunit 1006 \"Copy Job\"\n TargetJobTask.Validate(\"Job No.\", TargetJob.\"No.\");\n TargetJobTask.Validate(\"Job Task No.\", SourceJobTask.\"Job Task No.\");\n TargetJobTask.TransferFields(SourceJobTask, false);\n- if SourceJob.\"Task Billing Method\" = SourceJob.\"Task Billing Method\"::\"Multiple customers\" then begin\n+ if (TargetJob.\"Task Billing Method\" = TargetJob.\"Task Billing Method\"::\"Multiple customers\") and\n+ (SourceJobTask.\"Job Task Type\" <> SourceJobTask.\"Job Task Type\"::\"Begin-Total\")\n+ then begin\n TargetJobTask.SetHideValidationDialog(true);\n TargetJobTask.Validate(\"Sell-to Customer No.\", '');\n end;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136323'\nCodeunit 136323 Jobs - Multiple Customers\n Testfunction CopyTotalsProjectTasksTypeIntoProjectsWithMultipleCustomerBillingOption Failure (1.783 seconds)\n Error:\n Project Task Type must be equal to 'Posting' in Project Task: Project No.=ZZZJ002, Project Task No.=ZZZJT001. Current value is 'Begin-Total'.\n Call Stack:\n \"Job Task\"(Table 1001).\"Sell-to Customer No. - OnValidate\"(Trigger) line 3 - Base Application by Microsoft\n \"Job Task\"(Table 1001).InitCustomer line 9 - Base Application by Microsoft\n \"Job Task\"(Table 1001).OnInsert(Trigger) line 20 - Base Application by Microsoft\n \"Copy Job\"(CodeUnit 1006).CopyJobTasks line 45 - Base Application by Microsoft\n \"Jobs - Multiple Customers\"(CodeUnit 136323).CopyTotalsProjectTasksTypeIntoProjectsWithMultipleCustomerBillingOption line 34 - Tests-Job by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 454.0, "llm_duration": null, "turn_count": 24, "prompt_tokens": 967400, "completion_tokens": 10100, "tool_usage": {"rg": 13, "glob": 3, "view": 18, "apply_patch": 1, "report_intent": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-180484__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/eServices/EDocument/ReleaseIncomingDocument.Codeunit.al b/App/Layers/W1/BaseApp/eServices/EDocument/ReleaseIncomingDocument.Codeunit.al\nindex 4e5ba08c..ef423281 100644\n--- a/App/Layers/W1/BaseApp/eServices/EDocument/ReleaseIncomingDocument.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/eServices/EDocument/ReleaseIncomingDocument.Codeunit.al\n@@ -44,9 +44,13 @@ codeunit 132 \"Release Incoming Document\"\n #pragma warning restore AA0470\n \n procedure Reopen(var IncomingDocument: Record \"Incoming Document\")\n+ var\n+ RelatedRecord: Variant;\n begin\n if IncomingDocument.Status = IncomingDocument.Status::New then\n exit;\n+ if IncomingDocument.GetRecord(RelatedRecord) then\n+ exit;\n ClearReleaseFields(IncomingDocument);\n IncomingDocument.Status := IncomingDocument.Status::New;\n \n", "error_message": null, "metrics": {"execution_time": 181.0, "llm_duration": null, "turn_count": 13, "prompt_tokens": 358400, "completion_tokens": 4000, "tool_usage": {"glob": 3, "rg": 7, "view": 17, "report_intent": 2, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-180484__cf-2", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/eServices/EDocument/ReleaseIncomingDocument.Codeunit.al b/App/Layers/W1/BaseApp/eServices/EDocument/ReleaseIncomingDocument.Codeunit.al\nindex 4e5ba08c..ef423281 100644\n--- a/App/Layers/W1/BaseApp/eServices/EDocument/ReleaseIncomingDocument.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/eServices/EDocument/ReleaseIncomingDocument.Codeunit.al\n@@ -44,9 +44,13 @@ codeunit 132 \"Release Incoming Document\"\n #pragma warning restore AA0470\n \n procedure Reopen(var IncomingDocument: Record \"Incoming Document\")\n+ var\n+ RelatedRecord: Variant;\n begin\n if IncomingDocument.Status = IncomingDocument.Status::New then\n exit;\n+ if IncomingDocument.GetRecord(RelatedRecord) then\n+ exit;\n ClearReleaseFields(IncomingDocument);\n IncomingDocument.Status := IncomingDocument.Status::New;\n \n", "error_message": null, "metrics": {"execution_time": 178.0, "llm_duration": null, "turn_count": 12, "prompt_tokens": 387600, "completion_tokens": 4200, "tool_usage": {"rg": 11, "report_intent": 1, "view": 14, "apply_patch": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-182354__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al b/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al\nindex 737182d0..1b2a3ac8 100644\n--- a/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al\n+++ b/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al\n@@ -28,7 +28,7 @@ page 1318 \"Account Receivables KPIs\"\n begin\n CustLedgerEntry.SetRange(Open, true);\n CustLedgerEntry.SetFilter(\"Remaining Amount\", '>%1', 0);\n- CustLedgerEntry.SetFilter(\"Due Date\", '<=%1', WorkDate());\n+ CustLedgerEntry.SetFilter(\"Due Date\", '<=%1', GetOverdueFilterDate());\n CustomerLedgerEntries.SetTableView(CustLedgerEntry);\n CustomerLedgerEntries.Run();\n end;\n@@ -98,7 +98,7 @@ page 1318 \"Account Receivables KPIs\"\n CuesAndKPIs: Codeunit \"Cues And KPIs\";\n SalesInvoicesDueNextWeekStyle: Enum \"Cues And KPIs Style\";\n begin\n- Rec.SetRange(\"Overdue Date Filter\", 0D, WorkDate());\n+ Rec.SetRange(\"Overdue Date Filter\", 0D, GetOverdueFilterDate());\n if not Rec.Get() then begin\n Clear(Rec);\n Rec.Insert();\n@@ -120,4 +120,15 @@ page 1318 \"Account Receivables KPIs\"\n begin\n AverageCollectionDays := ActivitiesMgt.CalcAverageCollectionDays();\n end;\n-}\n\\ No newline at end of file\n+\n+ local procedure GetOverdueFilterDate(): Date\n+ var\n+ OverdueFilterDate: Date;\n+ begin\n+ OverdueFilterDate := Today;\n+ if OverdueFilterDate = 0D then\n+ OverdueFilterDate := WorkDate();\n+\n+ exit(OverdueFilterDate);\n+ end;\n+}\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134924'\nCodeunit 134924 ERM Cues\n Testfunction TotalOverdueLCYInFinanceCue Failure (6.283 seconds)\n Error:\n Assert.AreEqual failed. Expected:<> (Text). Actual:<50.17> (Text). The total overdue LCY amount is not calculated correctly..\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"ERM Cues\"(CodeUnit 134924).TotalOverdueLCYInFinanceCue line 38 - Tests-ERM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 144.0, "llm_duration": null, "turn_count": 12, "prompt_tokens": 254200, "completion_tokens": 3500, "tool_usage": {"rg": 8, "glob": 1, "view": 8, "report_intent": 2, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-183399__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\nindex 553ae9c0..cec7b1ec 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n@@ -255,6 +255,7 @@ page 254 \"Purchase Journal\"\n {\n ApplicationArea = Basic, Suite;\n AutoFormatExpression = Rec.\"Currency Code\";\n+ AutoFormatType = 1;\n Caption = 'Document Amount';\n ToolTip = 'Specifies the total amount (including VAT) that the journal line consists of.';\n \n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134918'\nCodeunit 134918 ERM Sales/Purchase Application\n Testfunction DocumentAmountInPurchJnlAcceptsMaxThreeDecimalPlacesValue Failure (4.13 seconds)\n Error:\n Assert.AreEqual failed. Expected:<1.7461> (Decimal). Actual:<1.75> (Decimal). The document amount is not correct. Expected: 1.7461, Actual: 1.75.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"ERM Sales/Purchase Application\"(CodeUnit 134918).DocumentAmountInPurchJnlAcceptsMaxThreeDecimalPlacesValue line 25 - Tests-ERM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 110.0, "llm_duration": null, "turn_count": 9, "prompt_tokens": 252800, "completion_tokens": 3100, "tool_usage": {"rg": 6, "report_intent": 3, "view": 8, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-183399__cf-2", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\nindex 553ae9c0..cec7b1ec 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n@@ -255,6 +255,7 @@ page 254 \"Purchase Journal\"\n {\n ApplicationArea = Basic, Suite;\n AutoFormatExpression = Rec.\"Currency Code\";\n+ AutoFormatType = 1;\n Caption = 'Document Amount';\n ToolTip = 'Specifies the total amount (including VAT) that the journal line consists of.';\n \n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134918'\nCodeunit 134918 ERM Sales/Purchase Application\n Testfunction DocumentAmountInPurchJnlAcceptsMaxThreeDecimalPlacesValue Failure (3.966 seconds)\n Error:\n Assert.AreEqual failed. Expected:<1.747> (Decimal). Actual:<1.75> (Decimal). The document amount is not correct. Expected: 1.747, Actual: 1.75.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"ERM Sales/Purchase Application\"(CodeUnit 134918).DocumentAmountInPurchJnlAcceptsMaxThreeDecimalPlacesValue line 25 - Tests-ERM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 116.0, "llm_duration": null, "turn_count": 9, "prompt_tokens": 211700, "completion_tokens": 2900, "tool_usage": {"rg": 8, "view": 5, "report_intent": 1, "powershell": 2, "apply_patch": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-185488__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al b/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al\nindex bcd82095..c7fdfb32 100644\n--- a/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al\n@@ -624,12 +624,22 @@ codeunit 1521 \"Workflow Response Handling\"\n begin\n end;\n \n- local procedure CreateNotificationEntry(WorkflowStepInstance: Record \"Workflow Step Instance\"; ApprovalEntry: Record \"Approval Entry\")\n+ local procedure CreateNotificationEntry(WorkflowStepInstance: Record \"Workflow Step Instance\"; ApprovalEntryVariant: Variant)\n var\n WorkflowStepArgument: Record \"Workflow Step Argument\";\n NotificationEntry: Record \"Notification Entry\";\n+ ApprovalEntry: Record \"Approval Entry\";\n+ ApprovalEntryRecRef: RecordRef;\n+ DataTypeManagement: Codeunit \"Data Type Management\";\n IsHandled: Boolean;\n begin\n+ if not DataTypeManagement.GetRecordRef(ApprovalEntryVariant, ApprovalEntryRecRef) then\n+ exit;\n+ if ApprovalEntryRecRef.Number <> Database::\"Approval Entry\" then\n+ exit;\n+ if not ApprovalEntry.Get(ApprovalEntryRecRef.RecordId) then\n+ exit;\n+\n IsHandled := false;\n OnBeforeCreateNotificationEntry(WorkflowStepInstance, ApprovalEntry, IsHandled);\n if IsHandled then\n", "error_message": "Build or publish failed for App\\Layers\\W1\\BaseApp:\nC:\\Source\\App\\Layers\\W1\\BaseApp\\System\\Workflow\\WorkflowResponseHandling.Codeunit.al(633,29): error AL0185: Codeunit 'Data Type Management' is missing", "metrics": {"execution_time": 182.0, "llm_duration": null, "turn_count": 13, "prompt_tokens": 350100, "completion_tokens": 4300, "tool_usage": {"glob": 1, "rg": 8, "view": 7, "report_intent": 1, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": false} +{"instance_id": "microsoftInternal__NAV-185792__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\nindex 53e7159a..dfedc162 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\n@@ -598,6 +598,10 @@ table 81 \"Gen. Journal Line\"\n Validate(\"VAT %\");\n Validate(\"Bal. VAT %\");\n UpdateLineBalance();\n+ if JobTaskIsSet() then begin\n+ CreateTempJobJnlLine();\n+ UpdatePricesFromJobJnlLine();\n+ end;\n end;\n end;\n }\n", "error_message": null, "metrics": {"execution_time": 213.0, "llm_duration": null, "turn_count": 12, "prompt_tokens": 329000, "completion_tokens": 3800, "tool_usage": {"rg": 15, "report_intent": 3, "view": 8, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-188438__cf-1", "project": "Sustainability", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al b/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al\nindex 4644c873..2f0e2131 100644\n--- a/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al\n+++ b/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al\n@@ -2,6 +2,7 @@ namespace Microsoft.Sustainability.Calculation;\n \n using Microsoft.Sustainability.Journal;\n using Microsoft.Sustainability.Account;\n+using Microsoft.Finance.GeneralLedger.Account;\n using Microsoft.Finance.GeneralLedger.Ledger;\n \n codeunit 6218 \"Sustainability Calc. Mgt.\"\n@@ -66,11 +67,23 @@ codeunit 6218 \"Sustainability Calc. Mgt.\"\n /// The sum of G/L Entry Amounts.\n procedure GetCollectableGLAmount(SustainAccountCategory: Record \"Sustain. Account Category\"; FromDate: Date; ToDate: Date): Decimal\n var\n+ GLAccount: Record \"G/L Account\";\n GLEntry: Record \"G/L Entry\";\n+ CollectableAmount: Decimal;\n begin\n FilterGLEntry(SustainAccountCategory, FromDate, ToDate, GLEntry);\n- GLEntry.CalcSums(Amount);\n- exit(GLEntry.Amount);\n+\n+ GLAccount.SetFilter(\"No.\", SustainAccountCategory.\"G/L Account Filter\");\n+ GLAccount.SetRange(\"Direct Posting\", true);\n+\n+ if GLAccount.FindSet() then\n+ repeat\n+ GLEntry.SetRange(\"G/L Account No.\", GLAccount.\"No.\");\n+ GLEntry.CalcSums(Amount);\n+ CollectableAmount += GLEntry.Amount;\n+ until GLAccount.Next() = 0;\n+\n+ exit(Abs(CollectableAmount));\n end;\n \n internal procedure CollectGeneralLedgerAmount(var SustainabilityJnlLine: Record \"Sustainability Jnl. Line\")\n@@ -112,4 +125,4 @@ codeunit 6218 \"Sustainability Calc. Mgt.\"\n local procedure OnBeforeCalculationEmissions(var IsHandled: Boolean; var SustainabilityJnlLine: Record \"Sustainability Jnl. Line\")\n begin\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": null, "metrics": {"execution_time": 105.0, "llm_duration": null, "turn_count": 8, "prompt_tokens": 197500, "completion_tokens": 3300, "tool_usage": {"rg": 4, "report_intent": 1, "view": 6, "apply_patch": 1, "powershell": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-192565__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\nindex fb45dbcf..09b9b67c 100644\n--- a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n@@ -5365,6 +5365,7 @@ table 39 \"Purchase Line\"\n Amount := 0;\n \"VAT Base Amount\" := 0;\n \"Amount Including VAT\" := 0;\n+ NonDeductibleVAT.ClearNonDeductibleVAT(Rec);\n OnUpdateVATAmountsOnBeforePurchLineModify(Rec, PurchLine2);\n if (Quantity = 0) and (xRec.Quantity <> 0) and (xRec.Amount <> 0) then begin\n if \"Line No.\" <> 0 then\n", "error_message": null, "metrics": {"execution_time": 213.0, "llm_duration": null, "turn_count": 15, "prompt_tokens": 519900, "completion_tokens": 4200, "tool_usage": {"rg": 13, "view": 10, "glob": 1, "report_intent": 2, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-192565__cf-2", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\nindex fb45dbcf..b59c9d7a 100644\n--- a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n@@ -5365,6 +5365,7 @@ table 39 \"Purchase Line\"\n Amount := 0;\n \"VAT Base Amount\" := 0;\n \"Amount Including VAT\" := 0;\n+ NonDeductibleVAT.Update(Rec, Currency);\n OnUpdateVATAmountsOnBeforePurchLineModify(Rec, PurchLine2);\n if (Quantity = 0) and (xRec.Quantity <> 0) and (xRec.Amount <> 0) then begin\n if \"Line No.\" <> 0 then\n", "error_message": null, "metrics": {"execution_time": 221.0, "llm_duration": null, "turn_count": 18, "prompt_tokens": 625600, "completion_tokens": 5000, "tool_usage": {"rg": 18, "glob": 4, "report_intent": 15, "view": 14, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-192565__cf-3", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\nindex fb45dbcf..0db25d89 100644\n--- a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n@@ -5365,6 +5365,8 @@ table 39 \"Purchase Line\"\n Amount := 0;\n \"VAT Base Amount\" := 0;\n \"Amount Including VAT\" := 0;\n+ NonDeductibleVAT.ClearNonDeductibleVAT(Rec);\n+ NonDeductibleVAT.InitNonDeductibleVATDiff(Rec);\n OnUpdateVATAmountsOnBeforePurchLineModify(Rec, PurchLine2);\n if (Quantity = 0) and (xRec.Quantity <> 0) and (xRec.Amount <> 0) then begin\n if \"Line No.\" <> 0 then\n", "error_message": null, "metrics": {"execution_time": 227.0, "llm_duration": null, "turn_count": 20, "prompt_tokens": 982600, "completion_tokens": 6100, "tool_usage": {"rg": 18, "glob": 3, "view": 22, "report_intent": 1, "apply_patch": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-193853__cf-1", "project": "EnforcedDigitalVouchers", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al b/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\nindex 72dc980e..c6ad1efb 100644\n--- a/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\n+++ b/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\n@@ -268,12 +268,32 @@ codeunit 5579 \"Digital Voucher Impl.\"\n Clear(IncomingDocument);\n if not IncomingDocument.FindFromIncomingDocumentEntryNo(MainRecordRef, IncomingDocument) then\n IncomingDocument.FindByDocumentNoAndPostingDate(MainRecordRef, IncomingDocument);\n+ if (IncomingDocument.\"Entry No.\" = 0) and (MainRecordRef.Number = Database::\"Gen. Journal Line\") then\n+ TryGetIncomingDocumentFromAttachmentByDocNoAndPostingDate(IncomingDocument, MainRecordRef);\n if IncomingDocument.\"Entry No.\" = 0 then\n exit(false);\n IncomingDocumentAttachment.SetRange(\"Incoming Document Entry No.\", IncomingDocument.\"Entry No.\");\n exit(true);\n end;\n \n+ local procedure TryGetIncomingDocumentFromAttachmentByDocNoAndPostingDate(var IncomingDocument: Record \"Incoming Document\"; MainRecordRef: RecordRef): Boolean\n+ var\n+ IncomingDocumentAttachment: Record \"Incoming Document Attachment\";\n+ DummyDocType: Text;\n+ DocNo: Code[20];\n+ PostingDate: Date;\n+ begin\n+ if not DigitalVoucherEntry.GetDocNoAndPostingDateFromRecRef(DummyDocType, DocNo, PostingDate, MainRecordRef) then\n+ exit(false);\n+ if (DocNo = '') or (PostingDate = 0D) then\n+ exit(false);\n+ IncomingDocumentAttachment.SetRange(\"Document No.\", DocNo);\n+ IncomingDocumentAttachment.SetRange(\"Posting Date\", PostingDate);\n+ if not IncomingDocumentAttachment.FindFirst() then\n+ exit(false);\n+ exit(IncomingDocument.Get(IncomingDocumentAttachment.\"Incoming Document Entry No.\"));\n+ end;\n+\n local procedure AttachGenJnlLinePDFToIncomingDocument(RecRef: RecordRef)\n var\n GenJournalLine: Record \"Gen. Journal Line\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139515'\nCodeunit 139515 Digital Vouchers Tests\n Testfunction PostMultipleGeneralJournalLinesSamePostingDateDocNoOnlyFirstHasIncDoc Failure (4.11 seconds)\n Error:\n Not possible to post without attaching the digital voucher.\n Call Stack:\n \"Voucher Attachment Check\"(CodeUnit 5580).CheckVoucherIsAttachedToDocument line 7 - Enforced Digital Vouchers by Microsoft\n \"Digital Voucher Impl.\"(CodeUnit 5579).HandleDigitalVoucherForEntryTypeAndDoc line 9 - Enforced Digital Vouchers by Microsoft\n \"Digital Voucher Impl.\"(CodeUnit 5579).OnAfterCheckGenJnlLine line 12 - Enforced Digital Vouchers by Microsoft\n \"Gen. Jnl.-Check Line\"(CodeUnit 11).OnAfterCheckGenJnlLine(Event) line 2 - Base Application by Microsoft\n \"Gen. Jnl.-Check Line\"(CodeUnit 11).RunCheck line 118 - Base Application by Microsoft\n \"Gen. Jnl.-Post Batch\"(CodeUnit 13).CheckLine line 26 - Base Application by Microsoft\n \"Gen. Jnl.-Post Batch\"(CodeUnit 13).ProcessLines line 51 - Base Application by Microsoft\n \"Gen. Jnl.-Post Batch\"(CodeUnit 13).Code line 30 - Base Application by Microsoft\n \"Gen. Jnl.-Post Batch\"(CodeUnit 13).OnRun(Trigger) line 9 - Base Application by Microsoft\n \"Digital Vouchers Tests\"(CodeUnit 139515).PostMultipleGeneralJournalLinesSamePostingDateDocNoOnlyFirstHasIncDoc line 42 - Enforced Digital Vouchers Tests by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft", "metrics": {"execution_time": 276.0, "llm_duration": null, "turn_count": 22, "prompt_tokens": 1200000, "completion_tokens": 7800, "tool_usage": {"rg": 21, "view": 28, "report_intent": 2, "glob": 1, "apply_patch": 2, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-193853__cf-2", "project": "EnforcedDigitalVouchers", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al b/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\nindex 72dc980e..c3a815d2 100644\n--- a/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\n+++ b/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\n@@ -267,13 +267,38 @@ codeunit 5579 \"Digital Voucher Impl.\"\n begin\n Clear(IncomingDocument);\n if not IncomingDocument.FindFromIncomingDocumentEntryNo(MainRecordRef, IncomingDocument) then\n- IncomingDocument.FindByDocumentNoAndPostingDate(MainRecordRef, IncomingDocument);\n+ if not IncomingDocument.FindByDocumentNoAndPostingDate(MainRecordRef, IncomingDocument) then\n+ FindIncomingDocumentFromGenJnlLineDocument(MainRecordRef, IncomingDocument);\n if IncomingDocument.\"Entry No.\" = 0 then\n exit(false);\n IncomingDocumentAttachment.SetRange(\"Incoming Document Entry No.\", IncomingDocument.\"Entry No.\");\n exit(true);\n end;\n \n+ local procedure FindIncomingDocumentFromGenJnlLineDocument(MainRecordRef: RecordRef; var IncomingDocument: Record \"Incoming Document\"): Boolean\n+ var\n+ GenJournalLine: Record \"Gen. Journal Line\";\n+ RelatedGenJournalLine: Record \"Gen. Journal Line\";\n+ begin\n+ if MainRecordRef.Number <> Database::\"Gen. Journal Line\" then\n+ exit(false);\n+\n+ MainRecordRef.SetTable(GenJournalLine);\n+ if GenJournalLine.\"Incoming Document Entry No.\" <> 0 then\n+ exit(false);\n+\n+ RelatedGenJournalLine.SetRange(\"Journal Template Name\", GenJournalLine.\"Journal Template Name\");\n+ RelatedGenJournalLine.SetRange(\"Journal Batch Name\", GenJournalLine.\"Journal Batch Name\");\n+ RelatedGenJournalLine.SetRange(\"Posting Date\", GenJournalLine.\"Posting Date\");\n+ RelatedGenJournalLine.SetRange(\"Document No.\", GenJournalLine.\"Document No.\");\n+ RelatedGenJournalLine.SetFilter(\"Line No.\", '<>%1', GenJournalLine.\"Line No.\");\n+ RelatedGenJournalLine.SetFilter(\"Incoming Document Entry No.\", '<>%1', 0);\n+ if not RelatedGenJournalLine.FindFirst() then\n+ exit(false);\n+\n+ exit(IncomingDocument.Get(RelatedGenJournalLine.\"Incoming Document Entry No.\"));\n+ end;\n+\n local procedure AttachGenJnlLinePDFToIncomingDocument(RecRef: RecordRef)\n var\n GenJournalLine: Record \"Gen. Journal Line\";\n", "error_message": null, "metrics": {"execution_time": 437.0, "llm_duration": null, "turn_count": 30, "prompt_tokens": 2000000, "completion_tokens": 12900, "tool_usage": {"rg": 48, "view": 38, "report_intent": 3, "glob": 2, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-195193__cf-1", "project": "ExcelReports", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al b/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\nindex 00c238ae..0177d244 100644\n--- a/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\n+++ b/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\n@@ -44,10 +44,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Net Change\" > 0) then\n- Validate(\"Net Change (Debit)\", \"Net Change\")\n- else\n+ if (\"Net Change\" >= 0) then begin\n+ Validate(\"Net Change (Debit)\", \"Net Change\");\n+ Validate(\"Net Change (Credit)\", 0);\n+ end else begin\n+ Validate(\"Net Change (Debit)\", 0);\n Validate(\"Net Change (Credit)\", -\"Net Change\");\n+ end;\n end;\n }\n field(11; \"Net Change (Debit)\"; Decimal)\n@@ -64,10 +67,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Balance\" > 0) then\n- Validate(\"Balance (Debit)\", \"Balance\")\n- else\n+ if (\"Balance\" >= 0) then begin\n+ Validate(\"Balance (Debit)\", \"Balance\");\n+ Validate(\"Balance (Credit)\", 0);\n+ end else begin\n+ Validate(\"Balance (Debit)\", 0);\n Validate(\"Balance (Credit)\", -\"Balance\");\n+ end;\n end;\n }\n field(14; \"Balance (Debit)\"; Decimal)\n@@ -156,10 +162,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Net Change\" > 0) then\n- Validate(\"Net Change (Debit) (ACY)\", \"Net Change (ACY)\")\n- else\n+ if (\"Net Change (ACY)\" >= 0) then begin\n+ Validate(\"Net Change (Debit) (ACY)\", \"Net Change (ACY)\");\n+ Validate(\"Net Change (Credit) (ACY)\", 0);\n+ end else begin\n+ Validate(\"Net Change (Debit) (ACY)\", 0);\n Validate(\"Net Change (Credit) (ACY)\", -\"Net Change (ACY)\");\n+ end;\n end;\n }\n field(111; \"Net Change (Debit) (ACY)\"; Decimal)\n@@ -176,10 +185,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Balance\" > 0) then\n- Validate(\"Balance (Debit) (ACY)\", \"Balance (ACY)\")\n- else\n+ if (\"Balance (ACY)\" >= 0) then begin\n+ Validate(\"Balance (Debit) (ACY)\", \"Balance (ACY)\");\n+ Validate(\"Balance (Credit) (ACY)\", 0);\n+ end else begin\n+ Validate(\"Balance (Debit) (ACY)\", 0);\n Validate(\"Balance (Credit) (ACY)\", -\"Balance (ACY)\");\n+ end;\n end;\n }\n field(114; \"Balance (Debit) (ACY)\"; Decimal)\n", "error_message": null, "metrics": {"execution_time": 103.0, "llm_duration": null, "turn_count": 8, "prompt_tokens": 194800, "completion_tokens": 2900, "tool_usage": {"glob": 2, "rg": 5, "report_intent": 3, "view": 5, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-195193__cf-2", "project": "ExcelReports", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al b/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al\nindex 7cf0915e..682a1c56 100644\n--- a/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al\n+++ b/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al\n@@ -120,6 +120,7 @@ codeunit 4410 \"Trial Balance\"\n local procedure InsertTrialBalanceDataForGLAccountWithFilters(var GLAccount: Record \"G/L Account\"; Dimension1ValueCode: Code[20]; Dimension2ValueCode: Code[20]; BusinessUnitCode: Code[20]; var TrialBalanceData: Record \"EXR Trial Balance Buffer\"; var Dimension1Values: Record \"Dimension Value\" temporary; var Dimension2Values: Record \"Dimension Value\" temporary)\n begin\n GlAccount.CalcFields(\"Net Change\", \"Balance at Date\", \"Additional-Currency Net Change\", \"Add.-Currency Balance at Date\", \"Budgeted Amount\", \"Budget at Date\");\n+ Clear(TrialBalanceData);\n TrialBalanceData.\"G/L Account No.\" := GlAccount.\"No.\";\n TrialBalanceData.\"Dimension 1 Code\" := Dimension1ValueCode;\n TrialBalanceData.\"Dimension 2 Code\" := Dimension2ValueCode;\n@@ -162,4 +163,4 @@ codeunit 4410 \"Trial Balance\"\n InsertedDimensionValues.Copy(DimensionValue);\n InsertedDimensionValues.Insert();\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139544'\nCodeunit 139544 Trial Balance Excel Reports\n Testfunction TrialBalanceBufferNetChangeSplitsIntoDebitAndCreditWhenCalledSeveralTimes Failure (0.587 seconds)\n Error:\n Assert.AreEqual failed. Expected:<110> (Decimal). Actual:<947> (Decimal). Split in line in credit and debit should be the same as the inserted value..\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"Trial Balance Excel Reports\"(CodeUnit 139544).TrialBalanceBufferNetChangeSplitsIntoDebitAndCreditWhenCalledSeveralTimes line 38 - Dynamics BC Excel Reports Tests by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 117.0, "llm_duration": null, "turn_count": 10, "prompt_tokens": 248800, "completion_tokens": 4100, "tool_usage": {"rg": 5, "glob": 2, "report_intent": 1, "view": 8, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-195193__cf-3", "project": "ExcelReports", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al b/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\nindex 00c238ae..b7bea519 100644\n--- a/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\n+++ b/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\n@@ -44,10 +44,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Net Change\" > 0) then\n- Validate(\"Net Change (Debit)\", \"Net Change\")\n- else\n+ if (\"Net Change\" > 0) then begin\n+ Validate(\"Net Change (Debit)\", \"Net Change\");\n+ Validate(\"Net Change (Credit)\", 0);\n+ end else begin\n+ Validate(\"Net Change (Debit)\", 0);\n Validate(\"Net Change (Credit)\", -\"Net Change\");\n+ end;\n end;\n }\n field(11; \"Net Change (Debit)\"; Decimal)\n@@ -64,10 +67,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Balance\" > 0) then\n- Validate(\"Balance (Debit)\", \"Balance\")\n- else\n+ if (\"Balance\" > 0) then begin\n+ Validate(\"Balance (Debit)\", \"Balance\");\n+ Validate(\"Balance (Credit)\", 0);\n+ end else begin\n+ Validate(\"Balance (Debit)\", 0);\n Validate(\"Balance (Credit)\", -\"Balance\");\n+ end;\n end;\n }\n field(14; \"Balance (Debit)\"; Decimal)\n@@ -100,10 +106,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Net\" > 0) then\n- Validate(\"Last Period Net (Debit)\", \"Last Period Net\")\n- else\n+ if (\"Last Period Net\" > 0) then begin\n+ Validate(\"Last Period Net (Debit)\", \"Last Period Net\");\n+ Validate(\"Last Period Net (Credit)\", 0);\n+ end else begin\n+ Validate(\"Last Period Net (Debit)\", 0);\n Validate(\"Last Period Net (Credit)\", -\"Last Period Net\");\n+ end;\n end;\n }\n field(51; \"Last Period Net (Debit)\"; Decimal)\n@@ -120,10 +129,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Bal.\" > 0) then\n- Validate(\"Last Period Bal. (Debit)\", \"Last Period Bal.\")\n- else\n+ if (\"Last Period Bal.\" > 0) then begin\n+ Validate(\"Last Period Bal. (Debit)\", \"Last Period Bal.\");\n+ Validate(\"Last Period Bal. (Credit)\", 0);\n+ end else begin\n+ Validate(\"Last Period Bal. (Debit)\", 0);\n Validate(\"Last Period Bal. (Credit)\", -\"Last Period Bal.\");\n+ end;\n end;\n }\n field(61; \"Last Period Bal. (Debit)\"; Decimal)\n@@ -156,10 +168,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Net Change\" > 0) then\n- Validate(\"Net Change (Debit) (ACY)\", \"Net Change (ACY)\")\n- else\n+ if (\"Net Change (ACY)\" > 0) then begin\n+ Validate(\"Net Change (Debit) (ACY)\", \"Net Change (ACY)\");\n+ Validate(\"Net Change (Credit) (ACY)\", 0);\n+ end else begin\n+ Validate(\"Net Change (Debit) (ACY)\", 0);\n Validate(\"Net Change (Credit) (ACY)\", -\"Net Change (ACY)\");\n+ end;\n end;\n }\n field(111; \"Net Change (Debit) (ACY)\"; Decimal)\n@@ -176,10 +191,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Balance\" > 0) then\n- Validate(\"Balance (Debit) (ACY)\", \"Balance (ACY)\")\n- else\n+ if (\"Balance (ACY)\" > 0) then begin\n+ Validate(\"Balance (Debit) (ACY)\", \"Balance (ACY)\");\n+ Validate(\"Balance (Credit) (ACY)\", 0);\n+ end else begin\n+ Validate(\"Balance (Debit) (ACY)\", 0);\n Validate(\"Balance (Credit) (ACY)\", -\"Balance (ACY)\");\n+ end;\n end;\n }\n field(114; \"Balance (Debit) (ACY)\"; Decimal)\n@@ -196,10 +214,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Net\" > 0) then\n- Validate(\"Last Period Net (Debit) (ACY)\", \"Last Period Net (ACY)\")\n- else\n+ if (\"Last Period Net (ACY)\" > 0) then begin\n+ Validate(\"Last Period Net (Debit) (ACY)\", \"Last Period Net (ACY)\");\n+ Validate(\"Last Period Net (Credit) (ACY)\", 0);\n+ end else begin\n+ Validate(\"Last Period Net (Debit) (ACY)\", 0);\n Validate(\"Last Period Net (Credit) (ACY)\", -\"Last Period Net (ACY)\");\n+ end;\n end;\n }\n field(151; \"Last Period Net (Debit) (ACY)\"; Decimal)\n@@ -216,10 +237,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Bal.\" > 0) then\n- Validate(\"Last Period Bal. (Debit) (ACY)\", \"Last Period Bal. (ACY)\")\n- else\n+ if (\"Last Period Bal. (ACY)\" > 0) then begin\n+ Validate(\"Last Period Bal. (Debit) (ACY)\", \"Last Period Bal. (ACY)\");\n+ Validate(\"Last Period Bal. (Cred.) (ACY)\", 0);\n+ end else begin\n+ Validate(\"Last Period Bal. (Debit) (ACY)\", 0);\n Validate(\"Last Period Bal. (Cred.) (ACY)\", -\"Last Period Bal. (ACY)\");\n+ end;\n end;\n }\n field(161; \"Last Period Bal. (Debit) (ACY)\"; Decimal)\n", "error_message": null, "metrics": {"execution_time": 173.0, "llm_duration": null, "turn_count": 13, "prompt_tokens": 434900, "completion_tokens": 5500, "tool_usage": {"glob": 4, "rg": 7, "report_intent": 9, "view": 12, "apply_patch": 1, "powershell": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-201169__cf-1", "project": "Shopify", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\nindex 38d77856..b45e47b3 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n@@ -26,6 +26,7 @@ codeunit 30174 \"Shpfy Create Product\"\n Getlocations: Boolean;\n ProductId: BigInteger;\n ItemVariantIsBlockedLbl: Label 'Item variant is blocked or sales blocked.';\n+ ItemWithoutTitleLbl: Label 'Item was skipped because description is empty or contains only whitespace.';\n \n trigger OnRun()\n var\n@@ -51,13 +52,21 @@ codeunit 30174 \"Shpfy Create Product\"\n TempShopifyProduct: Record \"Shpfy Product\" temporary;\n TempShopifyVariant: Record \"Shpfy Variant\" temporary;\n TempShopifyTag: Record \"Shpfy Tag\" temporary;\n+ SkippedRecord: Codeunit \"Shpfy Skipped Record\";\n begin\n+ ProductId := 0;\n CreateTempProduct(Item, TempShopifyProduct, TempShopifyVariant, TempShopifyTag);\n+ if TempShopifyProduct.Title.Trim() = '' then begin\n+ SkippedRecord.LogSkippedRecord(Item.RecordId, ItemWithoutTitleLbl, Shop);\n+ exit;\n+ end;\n+\n if not VariantApi.FindShopifyProductVariant(TempShopifyProduct, TempShopifyVariant) then\n ProductId := ProductApi.CreateProduct(TempShopifyProduct, TempShopifyVariant, TempShopifyTag)\n else\n ProductId := TempShopifyProduct.Id;\n- ProductExport.UpdateProductTranslations(ProductId, Item);\n+ if ProductId <> 0 then\n+ ProductExport.UpdateProductTranslations(ProductId, Item);\n end;\n \n internal procedure CreateTempProduct(Item: Record Item; var TempShopifyProduct: Record \"Shpfy Product\" temporary; var TempShopifyVariant: Record \"Shpfy Variant\" temporary; var TempShopifyTag: Record \"Shpfy Tag\" temporary)\n@@ -274,4 +283,4 @@ codeunit 30174 \"Shpfy Create Product\"\n Page.Run(Page::\"Shpfy Shop Locations Mapping\", ShopLocation);\n end;\n end;\n-}\n\\ No newline at end of file\n+}\ndiff --git a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyProductExport.Codeunit.al b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyProductExport.Codeunit.al\nindex 25e90220..9e3a2ce6 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyProductExport.Codeunit.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyProductExport.Codeunit.al\n@@ -798,6 +798,8 @@ codeunit 30178 \"Shpfy Product Export\"\n begin\n if OnlyUpdatePrice then\n exit;\n+ if ProductId = 0 then\n+ exit;\n \n TempTranslation.\"Resource Type\" := TempTranslation.\"Resource Type\"::Product;\n TempTranslation.\"Resource ID\" := ProductId;\ndiff --git a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfySyncProducts.Codeunit.al b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfySyncProducts.Codeunit.al\nindex ff317b9e..1c4e4175 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfySyncProducts.Codeunit.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfySyncProducts.Codeunit.al\n@@ -233,7 +233,8 @@ codeunit 30185 \"Shpfy Sync Products\"\n if ShopifyShop.\"Sync Item Images\" = ShopifyShop.\"Sync Item Images\"::\"To Shopify\" then begin\n if GuiAllowed then\n ProgressDialog.Update(1, FinishSyncProgressLbl);\n- BackgroundSyncs.ProductImagesSync(ShopifyShop.Code, Format(ShopifyCreateProduct.GetProductId()));\n+ if ShopifyCreateProduct.GetProductId() <> 0 then\n+ BackgroundSyncs.ProductImagesSync(ShopifyShop.Code, Format(ShopifyCreateProduct.GetProductId()));\n end;\n \n ShopLocation.SetRange(\"Shop Code\", ShopifyShop.Code);\n@@ -261,4 +262,4 @@ codeunit 30185 \"Shpfy Sync Products\"\n begin\n BackgroundSyncs.ProductsSync(CopyStr(Notification.GetData('ShopCode'), 1, MaxStrLen(Shop.Code)));\n end;\n-}\n\\ No newline at end of file\n+}\ndiff --git a/App/Apps/W1/Shopify/app/src/Products/Reports/ShpfyAddItemtoShopify.Report.al b/App/Apps/W1/Shopify/app/src/Products/Reports/ShpfyAddItemtoShopify.Report.al\nindex b99f15d3..906c16b7 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Reports/ShpfyAddItemtoShopify.Report.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Reports/ShpfyAddItemtoShopify.Report.al\n@@ -67,7 +67,8 @@ report 30106 \"Shpfy Add Item to Shopify\"\n \n ShopifyCreateProduct.Run(Item);\n \n- ProductFilter += Format(ShopifyCreateProduct.GetProductId()) + '|';\n+ if ShopifyCreateProduct.GetProductId() <> 0 then\n+ ProductFilter += Format(ShopifyCreateProduct.GetProductId()) + '|';\n end;\n end;\n \n@@ -199,4 +200,4 @@ report 30106 \"Shpfy Add Item to Shopify\"\n begin\n ShopCode := Shop;\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139581'\nCodeunit 139581 Shpfy Skipped Record Log Test\n Testfunction UnitTestLogItemEmptyDescription Failure (6.807 seconds)\n Error:\n The response from Shopify contains no JSON. \\Requested: {\"query\":\"{ locations(first: 20, includeLegacy: true) { pageInfo { hasNextPage endCursor } nodes { legacyResourceId isActive isPrimary name fulfillmentService { serviceName }}}}\"} \\Response: \n Call Stack:\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 21 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 4 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 6 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Sync Shop Locations\"(CodeUnit 30198).SyncLocations line 20 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Sync Shop Locations\"(CodeUnit 30198).OnRun(Trigger) line 4 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Create Product\"(CodeUnit 30174).OnRun(Trigger) line 5 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Add Item to Shopify\"(Report 30106).\"Item - OnAfterGetRecord\"(Trigger) line 12 - Shopify Connector by Microsoft version 26.0.0.0", "metrics": {"execution_time": 227.0, "llm_duration": null, "turn_count": 22, "prompt_tokens": 653600, "completion_tokens": 7300, "tool_usage": {"rg": 15, "glob": 2, "view": 18, "report_intent": 4, "apply_patch": 6, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-201169__cf-2", "project": "Shopify", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\nindex 38d77856..e8aa9630 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n@@ -26,6 +26,8 @@ codeunit 30174 \"Shpfy Create Product\"\n Getlocations: Boolean;\n ProductId: BigInteger;\n ItemVariantIsBlockedLbl: Label 'Item variant is blocked or sales blocked.';\n+ ProductNotCreatedLbl: Label 'Product was not created in Shopify.';\n+ ProductNotCreatedWithErrorLbl: Label 'Product was not created in Shopify. %1', Comment = '%1 = Shopify user error message.';\n \n trigger OnRun()\n var\n@@ -51,13 +53,24 @@ codeunit 30174 \"Shpfy Create Product\"\n TempShopifyProduct: Record \"Shpfy Product\" temporary;\n TempShopifyVariant: Record \"Shpfy Variant\" temporary;\n TempShopifyTag: Record \"Shpfy Tag\" temporary;\n+ SkippedRecord: Codeunit \"Shpfy Skipped Record\";\n+ ErrorMessage: Text;\n begin\n CreateTempProduct(Item, TempShopifyProduct, TempShopifyVariant, TempShopifyTag);\n- if not VariantApi.FindShopifyProductVariant(TempShopifyProduct, TempShopifyVariant) then\n- ProductId := ProductApi.CreateProduct(TempShopifyProduct, TempShopifyVariant, TempShopifyTag)\n- else\n+ if not VariantApi.FindShopifyProductVariant(TempShopifyProduct, TempShopifyVariant) then begin\n+ ProductId := ProductApi.CreateProduct(TempShopifyProduct, TempShopifyVariant, TempShopifyTag);\n+ if ProductId = 0 then begin\n+ ErrorMessage := ProductApi.GetLastCreateProductError();\n+ if ErrorMessage = '' then\n+ SkippedRecord.LogSkippedRecord(Item.RecordId, ProductNotCreatedLbl, Shop)\n+ else\n+ SkippedRecord.LogSkippedRecord(Item.RecordId, StrSubstNo(ProductNotCreatedWithErrorLbl, ErrorMessage), Shop);\n+ end;\n+ end else\n ProductId := TempShopifyProduct.Id;\n- ProductExport.UpdateProductTranslations(ProductId, Item);\n+\n+ if ProductId <> 0 then\n+ ProductExport.UpdateProductTranslations(ProductId, Item);\n end;\n \n internal procedure CreateTempProduct(Item: Record Item; var TempShopifyProduct: Record \"Shpfy Product\" temporary; var TempShopifyVariant: Record \"Shpfy Variant\" temporary; var TempShopifyTag: Record \"Shpfy Tag\" temporary)\n@@ -274,4 +287,4 @@ codeunit 30174 \"Shpfy Create Product\"\n Page.Run(Page::\"Shpfy Shop Locations Mapping\", ShopLocation);\n end;\n end;\n-}\n\\ No newline at end of file\n+}\ndiff --git a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyProductAPI.Codeunit.al b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyProductAPI.Codeunit.al\nindex 80138999..7f4d90c7 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyProductAPI.Codeunit.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyProductAPI.Codeunit.al\n@@ -18,6 +18,7 @@ codeunit 30176 \"Shpfy Product API\"\n ProductEvents: Codeunit \"Shpfy Product Events\";\n VariantApi: Codeunit \"Shpfy Variant API\";\n MetafieldAPI: Codeunit \"Shpfy Metafield API\";\n+ LastCreateProductError: Text;\n \n /// \n /// Create Product.\n@@ -36,6 +37,7 @@ codeunit 30176 \"Shpfy Product API\"\n GraphQuery: TextBuilder;\n \n begin\n+ Clear(LastCreateProductError);\n ShopifyVariant.FindSet();\n ProductEvents.OnBeforeSendCreateShopifyProduct(Shop, ShopifyProduct, ShopifyVariant, ShopifyTag);\n GraphQuery.Append('{\"query\":\"mutation {productCreate(input: {');\n@@ -95,8 +97,10 @@ codeunit 30176 \"Shpfy Product API\"\n JResponse := CommunicationMgt.ExecuteGraphQL(GraphQuery.ToText());\n NewShopifyProduct := ShopifyProduct;\n NewShopifyProduct.Id := JsonHelper.GetValueAsBigInteger(JResponse, 'data.productCreate.product.legacyResourceId');\n- if NewShopifyProduct.Id = 0 then\n+ if NewShopifyProduct.Id = 0 then begin\n+ LastCreateProductError := GetCreateProductUserErrors(JResponse);\n exit;\n+ end;\n #pragma warning disable AA0139\n NewShopifyProduct.\"Preview URL\" := JsonHelper.GetValueAsText(JResponse, 'data.productCreate.product.onlineStorePreviewUrl', MaxStrLen(NewShopifyProduct.\"Preview URL\"));\n NewShopifyProduct.URL := JsonHelper.GetValueAsText(JResponse, 'data.productCreate.product.onlineStoreUrl', MaxStrLen(NewShopifyProduct.URL));\n@@ -125,6 +129,31 @@ codeunit 30176 \"Shpfy Product API\"\n exit(NewShopifyProduct.Id);\n end;\n \n+ internal procedure GetLastCreateProductError(): Text\n+ begin\n+ exit(LastCreateProductError);\n+ end;\n+\n+ local procedure GetCreateProductUserErrors(JResponse: JsonToken): Text\n+ var\n+ JUserErrors: JsonArray;\n+ JUserError: JsonToken;\n+ UserErrorMessage: Text;\n+ UserErrors: TextBuilder;\n+ begin\n+ if JsonHelper.GetJsonArray(JResponse, JUserErrors, 'data.productCreate.userErrors') then\n+ foreach JUserError in JUserErrors do begin\n+ UserErrorMessage := JsonHelper.GetValueAsText(JUserError, 'message');\n+ if UserErrorMessage <> '' then begin\n+ if UserErrors.Length > 0 then\n+ UserErrors.Append('; ');\n+ UserErrors.Append(UserErrorMessage);\n+ end;\n+ end;\n+\n+ exit(UserErrors.ToText());\n+ end;\n+\n local procedure CreateImageUploadUrl(Item: Record Item; var Url: Text; var ResourceUrl: Text; var TenantMedia: Record \"Tenant Media\"): boolean\n var\n MimeType: Text;\n@@ -590,4 +619,4 @@ codeunit 30176 \"Shpfy Product API\"\n foreach JOption in JOptions do\n Options.Add(JsonHelper.GetValueAsText(JOption, 'id'), JsonHelper.GetValueAsText(JOption, 'name'));\n end;\n-}\n\\ No newline at end of file\n+}\ndiff --git a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfySyncProducts.Codeunit.al b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfySyncProducts.Codeunit.al\nindex ff317b9e..1c4e4175 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfySyncProducts.Codeunit.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfySyncProducts.Codeunit.al\n@@ -233,7 +233,8 @@ codeunit 30185 \"Shpfy Sync Products\"\n if ShopifyShop.\"Sync Item Images\" = ShopifyShop.\"Sync Item Images\"::\"To Shopify\" then begin\n if GuiAllowed then\n ProgressDialog.Update(1, FinishSyncProgressLbl);\n- BackgroundSyncs.ProductImagesSync(ShopifyShop.Code, Format(ShopifyCreateProduct.GetProductId()));\n+ if ShopifyCreateProduct.GetProductId() <> 0 then\n+ BackgroundSyncs.ProductImagesSync(ShopifyShop.Code, Format(ShopifyCreateProduct.GetProductId()));\n end;\n \n ShopLocation.SetRange(\"Shop Code\", ShopifyShop.Code);\n@@ -261,4 +262,4 @@ codeunit 30185 \"Shpfy Sync Products\"\n begin\n BackgroundSyncs.ProductsSync(CopyStr(Notification.GetData('ShopCode'), 1, MaxStrLen(Shop.Code)));\n end;\n-}\n\\ No newline at end of file\n+}\ndiff --git a/App/Apps/W1/Shopify/app/src/Products/Reports/ShpfyAddItemtoShopify.Report.al b/App/Apps/W1/Shopify/app/src/Products/Reports/ShpfyAddItemtoShopify.Report.al\nindex b99f15d3..bc222579 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Reports/ShpfyAddItemtoShopify.Report.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Reports/ShpfyAddItemtoShopify.Report.al\n@@ -67,7 +67,8 @@ report 30106 \"Shpfy Add Item to Shopify\"\n \n ShopifyCreateProduct.Run(Item);\n \n- ProductFilter += Format(ShopifyCreateProduct.GetProductId()) + '|';\n+ if ShopifyCreateProduct.GetProductId() <> 0 then\n+ ProductFilter += Format(ShopifyCreateProduct.GetProductId()) + '|';\n end;\n end;\n \n@@ -167,7 +168,7 @@ report 30106 \"Shpfy Add Item to Shopify\"\n BackgroundSyncs: Codeunit \"Shpfy Background Syncs\";\n begin\n ProductFilter := ProductFilter.TrimEnd('|');\n- if SyncImages then\n+ if SyncImages and (ProductFilter <> '') then\n BackgroundSyncs.ProductImagesSync(ShopCode, ProductFilter);\n if SyncInventory then\n BackgroundSyncs.InventorySync(ShopCode);\n@@ -199,4 +200,4 @@ report 30106 \"Shpfy Add Item to Shopify\"\n begin\n ShopCode := Shop;\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139581'\nCodeunit 139581 Shpfy Skipped Record Log Test\n Testfunction UnitTestLogItemEmptyDescription Failure (7.137 seconds)\n Error:\n The response from Shopify contains no JSON. \\Requested: {\"query\":\"{ locations(first: 20, includeLegacy: true) { pageInfo { hasNextPage endCursor } nodes { legacyResourceId isActive isPrimary name fulfillmentService { serviceName }}}}\"} \\Response: \n Call Stack:\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 21 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 4 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 6 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Sync Shop Locations\"(CodeUnit 30198).SyncLocations line 20 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Sync Shop Locations\"(CodeUnit 30198).OnRun(Trigger) line 4 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Create Product\"(CodeUnit 30174).OnRun(Trigger) line 5 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Add Item to Shopify\"(Report 30106).\"Item - OnAfterGetRecord\"(Trigger) line 12 - Shopify Connector by Microsoft version 26.0.0.0", "metrics": {"execution_time": 285.0, "llm_duration": null, "turn_count": 25, "prompt_tokens": 1200000, "completion_tokens": 9700, "tool_usage": {"rg": 15, "glob": 7, "view": 20, "report_intent": 2, "apply_patch": 5, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-201169__cf-3", "project": "Shopify", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\nindex 38d77856..7b909ed1 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n@@ -26,6 +26,7 @@ codeunit 30174 \"Shpfy Create Product\"\n Getlocations: Boolean;\n ProductId: BigInteger;\n ItemVariantIsBlockedLbl: Label 'Item variant is blocked or sales blocked.';\n+ ProductCreateFailedLbl: Label 'Product was not created in Shopify. Check Shopify Log Entries for more details.';\n \n trigger OnRun()\n var\n@@ -51,12 +52,23 @@ codeunit 30174 \"Shpfy Create Product\"\n TempShopifyProduct: Record \"Shpfy Product\" temporary;\n TempShopifyVariant: Record \"Shpfy Variant\" temporary;\n TempShopifyTag: Record \"Shpfy Tag\" temporary;\n+ SkippedRecord: Codeunit \"Shpfy Skipped Record\";\n+ ProductCreateError: Text;\n begin\n CreateTempProduct(Item, TempShopifyProduct, TempShopifyVariant, TempShopifyTag);\n if not VariantApi.FindShopifyProductVariant(TempShopifyProduct, TempShopifyVariant) then\n ProductId := ProductApi.CreateProduct(TempShopifyProduct, TempShopifyVariant, TempShopifyTag)\n else\n ProductId := TempShopifyProduct.Id;\n+\n+ if ProductId = 0 then begin\n+ ProductCreateError := CopyStr(ProductApi.GetLastCreateProductError(), 1, 250);\n+ if ProductCreateError = '' then\n+ ProductCreateError := ProductCreateFailedLbl;\n+ SkippedRecord.LogSkippedRecord(Item.RecordId, ProductCreateError, Shop);\n+ exit;\n+ end;\n+\n ProductExport.UpdateProductTranslations(ProductId, Item);\n end;\n \n@@ -274,4 +286,4 @@ codeunit 30174 \"Shpfy Create Product\"\n Page.Run(Page::\"Shpfy Shop Locations Mapping\", ShopLocation);\n end;\n end;\n-}\n\\ No newline at end of file\n+}\ndiff --git a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyProductAPI.Codeunit.al b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyProductAPI.Codeunit.al\nindex 80138999..db1589bd 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyProductAPI.Codeunit.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyProductAPI.Codeunit.al\n@@ -18,6 +18,7 @@ codeunit 30176 \"Shpfy Product API\"\n ProductEvents: Codeunit \"Shpfy Product Events\";\n VariantApi: Codeunit \"Shpfy Variant API\";\n MetafieldAPI: Codeunit \"Shpfy Metafield API\";\n+ LastCreateProductError: Text;\n \n /// \n /// Create Product.\n@@ -30,12 +31,14 @@ codeunit 30176 \"Shpfy Product API\"\n NewShopifyVariant: Record \"Shpfy Variant\";\n EmptyShopifyVariant: Record \"Shpfy Variant\";\n JArray: JsonArray;\n+ JUserErrors: JsonArray;\n JResponse: JsonToken;\n JToken: JsonToken;\n Data: Text;\n GraphQuery: TextBuilder;\n \n begin\n+ Clear(LastCreateProductError);\n ShopifyVariant.FindSet();\n ProductEvents.OnBeforeSendCreateShopifyProduct(Shop, ShopifyProduct, ShopifyVariant, ShopifyTag);\n GraphQuery.Append('{\"query\":\"mutation {productCreate(input: {');\n@@ -93,6 +96,8 @@ codeunit 30176 \"Shpfy Product API\"\n GraphQuery.Append('}\"}');\n \n JResponse := CommunicationMgt.ExecuteGraphQL(GraphQuery.ToText());\n+ if JsonHelper.GetJsonArray(JResponse, JUserErrors, 'data.productCreate.userErrors') and JUserErrors.Get(0, JToken) then\n+ LastCreateProductError := JsonHelper.GetValueAsText(JToken, 'message');\n NewShopifyProduct := ShopifyProduct;\n NewShopifyProduct.Id := JsonHelper.GetValueAsBigInteger(JResponse, 'data.productCreate.product.legacyResourceId');\n if NewShopifyProduct.Id = 0 then\n@@ -125,6 +130,11 @@ codeunit 30176 \"Shpfy Product API\"\n exit(NewShopifyProduct.Id);\n end;\n \n+ internal procedure GetLastCreateProductError(): Text\n+ begin\n+ exit(LastCreateProductError);\n+ end;\n+\n local procedure CreateImageUploadUrl(Item: Record Item; var Url: Text; var ResourceUrl: Text; var TenantMedia: Record \"Tenant Media\"): boolean\n var\n MimeType: Text;\n@@ -590,4 +600,4 @@ codeunit 30176 \"Shpfy Product API\"\n foreach JOption in JOptions do\n Options.Add(JsonHelper.GetValueAsText(JOption, 'id'), JsonHelper.GetValueAsText(JOption, 'name'));\n end;\n-}\n\\ No newline at end of file\n+}\ndiff --git a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfySyncProducts.Codeunit.al b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfySyncProducts.Codeunit.al\nindex ff317b9e..5062ca34 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfySyncProducts.Codeunit.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfySyncProducts.Codeunit.al\n@@ -223,6 +223,7 @@ codeunit 30185 \"Shpfy Sync Products\"\n ShopifyCreateProduct: Codeunit \"Shpfy Create Product\";\n BackgroundSyncs: Codeunit \"Shpfy Background Syncs\";\n ProgressDialog: Dialog;\n+ ProductId: BigInteger;\n begin\n if GuiAllowed then begin\n ProgressDialog.Open(DialogMsg);\n@@ -230,10 +231,11 @@ codeunit 30185 \"Shpfy Sync Products\"\n end;\n ShopifyCreateProduct.SetShop(ShopifyShop.Code);\n ShopifyCreateProduct.Run(Item);\n- if ShopifyShop.\"Sync Item Images\" = ShopifyShop.\"Sync Item Images\"::\"To Shopify\" then begin\n+ ProductId := ShopifyCreateProduct.GetProductId();\n+ if (ProductId > 0) and (ShopifyShop.\"Sync Item Images\" = ShopifyShop.\"Sync Item Images\"::\"To Shopify\") then begin\n if GuiAllowed then\n ProgressDialog.Update(1, FinishSyncProgressLbl);\n- BackgroundSyncs.ProductImagesSync(ShopifyShop.Code, Format(ShopifyCreateProduct.GetProductId()));\n+ BackgroundSyncs.ProductImagesSync(ShopifyShop.Code, Format(ProductId));\n end;\n \n ShopLocation.SetRange(\"Shop Code\", ShopifyShop.Code);\n@@ -261,4 +263,4 @@ codeunit 30185 \"Shpfy Sync Products\"\n begin\n BackgroundSyncs.ProductsSync(CopyStr(Notification.GetData('ShopCode'), 1, MaxStrLen(Shop.Code)));\n end;\n-}\n\\ No newline at end of file\n+}\ndiff --git a/App/Apps/W1/Shopify/app/src/Products/Reports/ShpfyAddItemtoShopify.Report.al b/App/Apps/W1/Shopify/app/src/Products/Reports/ShpfyAddItemtoShopify.Report.al\nindex b99f15d3..719491d6 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Reports/ShpfyAddItemtoShopify.Report.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Reports/ShpfyAddItemtoShopify.Report.al\n@@ -67,7 +67,8 @@ report 30106 \"Shpfy Add Item to Shopify\"\n \n ShopifyCreateProduct.Run(Item);\n \n- ProductFilter += Format(ShopifyCreateProduct.GetProductId()) + '|';\n+ if ShopifyCreateProduct.GetProductId() > 0 then\n+ ProductFilter += Format(ShopifyCreateProduct.GetProductId()) + '|';\n end;\n end;\n \n@@ -167,7 +168,7 @@ report 30106 \"Shpfy Add Item to Shopify\"\n BackgroundSyncs: Codeunit \"Shpfy Background Syncs\";\n begin\n ProductFilter := ProductFilter.TrimEnd('|');\n- if SyncImages then\n+ if SyncImages and (ProductFilter <> '') then\n BackgroundSyncs.ProductImagesSync(ShopCode, ProductFilter);\n if SyncInventory then\n BackgroundSyncs.InventorySync(ShopCode);\n@@ -199,4 +200,4 @@ report 30106 \"Shpfy Add Item to Shopify\"\n begin\n ShopCode := Shop;\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139581'\nCodeunit 139581 Shpfy Skipped Record Log Test\n Testfunction UnitTestLogItemEmptyDescription Failure (6.903 seconds)\n Error:\n The response from Shopify contains no JSON. \\Requested: {\"query\":\"{ locations(first: 20, includeLegacy: true) { pageInfo { hasNextPage endCursor } nodes { legacyResourceId isActive isPrimary name fulfillmentService { serviceName }}}}\"} \\Response: \n Call Stack:\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 21 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 4 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 6 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Sync Shop Locations\"(CodeUnit 30198).SyncLocations line 20 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Sync Shop Locations\"(CodeUnit 30198).OnRun(Trigger) line 4 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Create Product\"(CodeUnit 30174).OnRun(Trigger) line 5 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Add Item to Shopify\"(Report 30106).\"Item - OnAfterGetRecord\"(Trigger) line 12 - Shopify Connector by Microsoft version 26.0.0.0", "metrics": {"execution_time": 235.0, "llm_duration": null, "turn_count": 21, "prompt_tokens": 1000000, "completion_tokens": 7200, "tool_usage": {"rg": 14, "report_intent": 2, "view": 16, "apply_patch": 4, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-203923__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\nindex 6bb15d7d..0f27c901 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n@@ -93,7 +93,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetNonDeductibleVATPct(NonDeductibleVATPct, VATPostingSetup, GeneralPostingType, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (VATPostingSetup.\"VAT Calculation Type\" in [VATPostingSetup.\"VAT Calculation Type\"::\"Normal VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (VATPostingSetup.\"VAT Calculation Type\" in [VATPostingSetup.\"VAT Calculation Type\"::\"Normal VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Full VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n exit(0);\n if (VATPostingSetup.\"Allow Non-Deductible VAT\" = VATPostingSetup.\"Allow Non-Deductible VAT\"::\"Do not allow\") or (GeneralPostingType <> GeneralPostingType::Purchase) then\n exit(0);\n@@ -786,7 +786,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeCalcNonDedAmountsInGenJnlLine(GenJournalLine, Currency, IsHandled);\n if IsHandled then\n exit;\n- if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Full VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n exit;\n if not VATPostingSetup.Get(GenJournalLine.\"VAT Bus. Posting Group\", GenJournalLine.\"VAT Prod. Posting Group\") then\n exit;\n@@ -826,7 +826,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeCalcBalNonDedAmountsInGenJnlLine(GenJournalLine, Currency, IsHandled);\n if IsHandled then\n exit;\n- if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Full VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n exit;\n if not VATPostingSetup.Get(GenJournalLine.\"Bal. VAT Bus. Posting Group\", GenJournalLine.\"Bal. VAT Prod. Posting Group\") then\n exit;\n@@ -1210,7 +1210,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetNonDedVATPctForGenJnlLine(NonDeductibleVATPct, GenJournalLine, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Full VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n exit(0);\n if not VATPostingSetup.Get(GenJournalLine.\"VAT Bus. Posting Group\", GenJournalLine.\"VAT Prod. Posting Group\") then\n exit(0);\n@@ -1227,7 +1227,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetBalNonDedVATPctForGenJnlLine(NonDeductibleVATPct, GenJournalLine, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Full VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n exit(0);\n if not VATPostingSetup.Get(GenJournalLine.\"Bal. VAT Bus. Posting Group\", GenJournalLine.\"Bal. VAT Prod. Posting Group\") then\n exit(0);\n@@ -1253,4 +1253,4 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n exit;\n VATSetup.Insert(true);\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": null, "metrics": {"execution_time": 163.0, "llm_duration": null, "turn_count": 14, "prompt_tokens": 439600, "completion_tokens": 4500, "tool_usage": {"rg": 15, "view": 11, "report_intent": 2, "glob": 4, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-203923__cf-2", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostLine.Codeunit.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostLine.Codeunit.al\nindex db6fcc12..cbab93ca 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostLine.Codeunit.al\n@@ -919,7 +919,7 @@ codeunit 12 \"Gen. Jnl.-Post Line\"\n begin\n OnBeforeCreateNormalVATGLEntries(GenJnlLine, VATPostingSetup);\n \n- if VATPostingParameters.\"Unrealized VAT\" or (VATPostingParameters.\"Non-Deductible VAT %\" <> 100) then\n+ if VATPostingParameters.\"Unrealized VAT\" or (VATPostingParameters.\"Non-Deductible VAT %\" <> 100) or (VATPostingSetup.\"VAT Calculation Type\" = VATPostingSetup.\"VAT Calculation Type\"::\"Full VAT\") then\n CreateGLEntry(\n GenJnlLine, VATPostingSetup.GetPurchAccount(VATPostingParameters.\"Unrealized VAT\"),\n VATPostingParameters.\"Deductible VAT Amount\", VATPostingParameters.\"Deductible VAT Amount ACY\", true);\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134288'\nCodeunit 134288 Non-Deductible VAT Journal\n Testfunction NonDeductibleVATShouldShowAsNonDeductibleOnDoingFullVAT Failure (4.887 seconds)\n Error:\n Assert.AreEqual failed. Expected:<12.44> (Decimal). Actual:<0> (Decimal). Non-Deductable VAT Amount must be 12.44 in VAT Entries.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"Non-Deductible VAT Journal\"(CodeUnit 134288).NonDeductibleVATShouldShowAsNonDeductibleOnDoingFullVAT line 34 - Tests-VAT by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 328.0, "llm_duration": null, "turn_count": 31, "prompt_tokens": 1100000, "completion_tokens": 10500, "tool_usage": {"rg": 24, "glob": 1, "report_intent": 4, "view": 22, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-203923__cf-3", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\nindex 6bb15d7d..3834d2a9 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n@@ -93,7 +93,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetNonDeductibleVATPct(NonDeductibleVATPct, VATPostingSetup, GeneralPostingType, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (VATPostingSetup.\"VAT Calculation Type\" in [VATPostingSetup.\"VAT Calculation Type\"::\"Normal VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (VATPostingSetup.\"VAT Calculation Type\" in [VATPostingSetup.\"VAT Calculation Type\"::\"Normal VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Reverse Charge VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if (VATPostingSetup.\"Allow Non-Deductible VAT\" = VATPostingSetup.\"Allow Non-Deductible VAT\"::\"Do not allow\") or (GeneralPostingType <> GeneralPostingType::Purchase) then\n exit(0);\n@@ -786,7 +786,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeCalcNonDedAmountsInGenJnlLine(GenJournalLine, Currency, IsHandled);\n if IsHandled then\n exit;\n- if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit;\n if not VATPostingSetup.Get(GenJournalLine.\"VAT Bus. Posting Group\", GenJournalLine.\"VAT Prod. Posting Group\") then\n exit;\n@@ -826,7 +826,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeCalcBalNonDedAmountsInGenJnlLine(GenJournalLine, Currency, IsHandled);\n if IsHandled then\n exit;\n- if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Full VAT\"]) then\n exit;\n if not VATPostingSetup.Get(GenJournalLine.\"Bal. VAT Bus. Posting Group\", GenJournalLine.\"Bal. VAT Prod. Posting Group\") then\n exit;\n@@ -1210,7 +1210,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetNonDedVATPctForGenJnlLine(NonDeductibleVATPct, GenJournalLine, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if not VATPostingSetup.Get(GenJournalLine.\"VAT Bus. Posting Group\", GenJournalLine.\"VAT Prod. Posting Group\") then\n exit(0);\n@@ -1227,7 +1227,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetBalNonDedVATPctForGenJnlLine(NonDeductibleVATPct, GenJournalLine, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if not VATPostingSetup.Get(GenJournalLine.\"Bal. VAT Bus. Posting Group\", GenJournalLine.\"Bal. VAT Prod. Posting Group\") then\n exit(0);\n@@ -1253,4 +1253,4 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n exit;\n VATSetup.Insert(true);\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": null, "metrics": {"execution_time": 159.0, "llm_duration": null, "turn_count": 15, "prompt_tokens": 697300, "completion_tokens": 5500, "tool_usage": {"rg": 11, "glob": 1, "view": 14, "report_intent": 2, "apply_patch": 1, "powershell": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-204450__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\nindex 6bb15d7d..2a91ae47 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n@@ -602,6 +602,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n \n TotalPurchaseLine.\"Non-Deductible VAT Base\" += PurchaseLine.\"Non-Deductible VAT Base\";\n TotalPurchaseLine.\"Non-Deductible VAT Amount\" += PurchaseLine.\"Non-Deductible VAT Amount\";\n+ TotalPurchaseLine.\"Non-Deductible VAT Diff.\" += PurchaseLine.\"Non-Deductible VAT Diff.\";\n end;\n \n procedure Increment(var TotalInvoicePostingBuffer: Record \"Invoice Posting Buffer\"; InvoicePostingBuffer: Record \"Invoice Posting Buffer\")\n@@ -683,6 +684,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n if PurchaseLine.\"Non-Deductible VAT %\" = 100 then begin\n PurchaseLine.\"Non-Deductible VAT Base\" := PurchaseLine.\"VAT Base Amount\";\n PurchaseLine.\"Non-Deductible VAT Amount\" := PurchaseLine.\"Amount Including VAT\" - PurchaseLine.\"VAT Base Amount\" - PurchaseLine.\"VAT Difference\";\n+ PurchaseLine.\"Non-Deductible VAT Diff.\" := PurchaseLine.\"VAT Difference\";\n exit;\n end;\n PurchaseLine.\"Non-Deductible VAT Base\" :=\n@@ -697,6 +699,12 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n PurchaseHeader.GetUseDate(), PurchaseHeader.\"Currency Code\",\n TotalPurchaseLine.\"Non-Deductible VAT Amount\", PurchaseHeader.\"Currency Factor\")) -\n TotalPurchaseLineLCY.\"Non-Deductible VAT Amount\";\n+ PurchaseLine.\"Non-Deductible VAT Diff.\" :=\n+ Round(\n+ CurrExchRate.ExchangeAmtFCYToLCY(\n+ PurchaseHeader.GetUseDate(), PurchaseHeader.\"Currency Code\",\n+ TotalPurchaseLine.\"Non-Deductible VAT Diff.\", PurchaseHeader.\"Currency Factor\")) -\n+ TotalPurchaseLineLCY.\"Non-Deductible VAT Diff.\";\n end;\n \n procedure ClearNonDeductibleVAT(var PurchaseLine: Record \"Purchase Line\")\n@@ -1253,4 +1261,4 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n exit;\n VATSetup.Insert(true);\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nat , : line 75\n\nException Script Stack Trace:\nat , : line 75\n\nPowerShell Call Stack:\nat Invoke-BCTest, C:\\vss-agent\\2.334.0\\_work\\BC-Bench\\BC-Bench\\scripts\\AppUtils.psm1: line 166\nat Invoke-DatasetTests, C:\\vss-agent\\2.334.0\\_work\\BC-Bench\\BC-Bench\\scripts\\AppUtils.psm1: line 233\nat , : line 10\n\nContainer Free Physical Memory: 8.5Gb\nDisk C: Free 120Gb from 127Gb\n\nServices in container bcbench-204450:\n- MicrosoftDynamicsNavServer$BC is Running\n- MSSQL$SQLEXPRESS is Running\n\nRun-TestsInBcContainer Telemetry Correlation Id: 2e9bb588-a5c5-4c94-968e-03a13c573274", "metrics": {"execution_time": 571.0, "llm_duration": null, "turn_count": 50, "prompt_tokens": 4800000, "completion_tokens": 15300, "tool_usage": {"rg": 32, "report_intent": 46, "glob": 9, "view": 43, "apply_patch": 2, "powershell": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-205825__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\nindex da15d9ef..b61233ba 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\n@@ -94,6 +94,12 @@ codeunit 205 \"Alt. Cust. VAT Reg. Doc. Impl.\" implements \"Alt. Cust. VAT Reg. Do\n AltCustVATReg: Record \"Alt. Cust. VAT Reg.\";\n VATCustomer: Record Customer;\n begin\n+ if SalesHeader.\"Ship-to Country/Region Code\" = '' then begin\n+ if IsAltVATRegUsed(SalesHeader) then\n+ CopyFromCustomer(SalesHeader, xSalesHeader);\n+ exit;\n+ end;\n+\n GetCustVATCalc(VATCustomer, SalesHeader);\n if AltCustVATRegFacade.GetAlternativeCustVATReg(AltCustVATReg, VATCustomer.\"No.\", SalesHeader.\"Ship-to Country/Region Code\") then\n SalesHeader.Validate(\"VAT Country/Region Code\", AltCustVATReg.\"VAT Country/Region Code\")\n@@ -368,4 +374,4 @@ codeunit 205 \"Alt. Cust. VAT Reg. Doc. Impl.\" implements \"Alt. Cust. VAT Reg. Do\n begin\n SalesLinesRecreated := true;\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134237'\nCodeunit 134237 Alt. Cust. VAT. Doc. Tests\n Testfunction ShipToCodeConnectionAltCustVATSetupOfBillToCustomer Failure (4.794 seconds)\n Error:\n VAT Country/Region Code must be equal to 'GU00000009' in Sales Header: Document Type=Order, No.=101005. Current value is 'GU00000006'.\n Call Stack:\n \"Alt. Cust. VAT. Doc. Tests\"(CodeUnit 134237).VerifyVATRegDataInSalesHeader line 2 - Tests-VAT by Microsoft\n \"Alt. Cust. VAT. Doc. Tests\"(CodeUnit 134237).ShipToCodeConnectionAltCustVATSetupOfBillToCustomer line 27 - Tests-VAT by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 215.0, "llm_duration": null, "turn_count": 18, "prompt_tokens": 863600, "completion_tokens": 7800, "tool_usage": {"rg": 15, "report_intent": 2, "view": 19, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-205825__cf-2", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\nindex da15d9ef..e697040e 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\n@@ -93,12 +93,18 @@ codeunit 205 \"Alt. Cust. VAT Reg. Doc. Impl.\" implements \"Alt. Cust. VAT Reg. Do\n var\n AltCustVATReg: Record \"Alt. Cust. VAT Reg.\";\n VATCustomer: Record Customer;\n+ xSalesHeaderLocal: Record \"Sales Header\";\n begin\n GetCustVATCalc(VATCustomer, SalesHeader);\n if AltCustVATRegFacade.GetAlternativeCustVATReg(AltCustVATReg, VATCustomer.\"No.\", SalesHeader.\"Ship-to Country/Region Code\") then\n SalesHeader.Validate(\"VAT Country/Region Code\", AltCustVATReg.\"VAT Country/Region Code\")\n else\n- CopyFromCustomer(SalesHeader, xSalesHeader);\n+ if SalesHeader.\"Ship-to Country/Region Code\" = '' then begin\n+ xSalesHeaderLocal := xSalesHeader;\n+ xSalesHeaderLocal.\"VAT Country/Region Code\" := SalesHeader.\"VAT Country/Region Code\";\n+ CopyFromCustomer(SalesHeader, xSalesHeaderLocal);\n+ end else\n+ CopyFromCustomer(SalesHeader, xSalesHeader);\n end;\n \n procedure UpdateSetupOnVATCountryChangeInSalesHeader(var SalesHeader: Record \"Sales Header\"; xSalesHeader: Record \"Sales Header\")\n@@ -368,4 +374,4 @@ codeunit 205 \"Alt. Cust. VAT Reg. Doc. Impl.\" implements \"Alt. Cust. VAT Reg. Do\n begin\n SalesLinesRecreated := true;\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134237'\nCodeunit 134237 Alt. Cust. VAT. Doc. Tests\n Testfunction ShipToCodeConnectionAltCustVATSetupOfBillToCustomer Failure (6.773 seconds)\n Error:\n VAT Country/Region Code must be equal to 'GU00000009' in Sales Header: Document Type=Order, No.=101005. Current value is 'GU00000006'.\n Call Stack:\n \"Alt. Cust. VAT. Doc. Tests\"(CodeUnit 134237).VerifyVATRegDataInSalesHeader line 2 - Tests-VAT by Microsoft\n \"Alt. Cust. VAT. Doc. Tests\"(CodeUnit 134237).ShipToCodeConnectionAltCustVATSetupOfBillToCustomer line 27 - Tests-VAT by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 216.0, "llm_duration": null, "turn_count": 13, "prompt_tokens": 412300, "completion_tokens": 7600, "tool_usage": {"rg": 10, "glob": 1, "report_intent": 1, "view": 13, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-206527__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al b/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\nindex e3280001..23732fc6 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\n@@ -182,28 +182,8 @@ table 99000829 \"Planning Component\"\n Editable = false;\n \n trigger OnValidate()\n- var\n- ItemUnitOfMeasure: Record \"Item Unit of Measure\";\n- UnroundedExpectedQuantity: Decimal;\n- ItemPrecRoundedExpectedQuantity: Decimal;\n- BaseUOMPrecRoundedExpectedQuantity: Decimal;\n begin\n- UnroundedExpectedQuantity := \"Expected Quantity\";\n-\n- if Item.Get(\"Item No.\") and (\"Ref. Order Type\" <> \"Ref. Order Type\"::Assembly) then\n- if Item.\"Rounding Precision\" > 0 then\n- \"Expected Quantity\" := UOMMgt.RoundToItemRndPrecision(\"Expected Quantity\", Item.\"Rounding Precision\");\n-\n- ItemPrecRoundedExpectedQuantity := \"Expected Quantity\";\n- BaseUOMPrecRoundedExpectedQuantity := UOMMgt.RoundQty(\"Expected Quantity\", \"Qty. Rounding Precision\");\n-\n- if (\"Qty. Rounding Precision\" > 0) and (BaseUOMPrecRoundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity) then\n- if UnroundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity then\n- Error(WrongPrecisionItemAndUOMExpectedQtyErr, Item.FieldCaption(\"Rounding Precision\"), Item.TableCaption(), ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"))\n- else\n- Error(WrongPrecOnUOMExpectedQtyErr, ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"));\n-\n- \"Expected Quantity\" := BaseUOMPrecRoundedExpectedQuantity;\n+ \"Expected Quantity\" := UOMMgt.RoundQty(\"Expected Quantity\", UOMMgt.QtyRndPrecision());\n \"Expected Quantity (Base)\" := CalcBaseQty(\"Expected Quantity\", FieldCaption(\"Expected Quantity\"), FieldCaption(\"Expected Quantity (Base)\"));\n \n \"Net Quantity (Base)\" := \"Expected Quantity (Base)\" - \"Original Expected Qty. (Base)\";\n@@ -654,8 +634,6 @@ table 99000829 \"Planning Component\"\n CannotRenameErr: Label 'You cannot rename a %1.', Comment = '%1 - Planning Component';\n CannotChangeErr: Label 'You cannot change %1 when %2 is %3.', Comment = '%1 - FieldCaption(\"Unit Cost\"), %2 - Item.FieldCaption(\"Costing Method\"), %3 - Item.\"Costing Method\"';\n LocationCodeMustBeBlankErr: Label 'The Location Code field must be blank for items of type Non-Inventory.';\n- WrongPrecisionItemAndUOMExpectedQtyErr: Label 'The value in the %1 field on the %2 page, and %3 field on the %4 page, are causing the rounding precision for the %5 field to be incorrect.', Comment = '%1 = field caption, %2 = table caption, %3 field caption, %4 = table caption, %5 = field caption';\n- WrongPrecOnUOMExpectedQtyErr: Label 'The value in the %1 field on the %2 page is causing the rounding precision for the %3 field to be incorrect.', Comment = '%1 = field caption, %2 = table caption, %3 field caption';\n \n protected var\n ReqLine: Record \"Requisition Line\";\ndiff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\nindex 36930a9e..058f96b4 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n@@ -263,7 +263,6 @@ codeunit 99000773 \"Calculate Prod. Order\"\n Item2: Record Item;\n ComponentSKU: Record \"Stockkeeping Unit\";\n IsHandled: Boolean;\n- QtyRoundPrecision: Decimal;\n begin\n ProdOrderComp.Reset();\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\", \"Item No.\");\n@@ -295,12 +294,7 @@ codeunit 99000773 \"Calculate Prod. Order\"\n ProdOrderComp.\"Bin Code\" := GetDefaultBin();\n ProdOrderComp.Description := ProdBOMLine[Level].Description;\n ProdOrderComp.Validate(\"Unit of Measure Code\", ProdBOMLine[Level].\"Unit of Measure Code\");\n- if (ProdOrderComp.\"Item No.\" <> '') and Item2.Get(ProdOrderComp.\"Item No.\") then\n- QtyRoundPrecision := UOMMgt.GetQtyRoundingPrecision(Item2, ProdBOMLine[Level].\"Unit of Measure Code\");\n- if QtyRoundPrecision <> 0 then\n- ProdOrderComp.\"Quantity per\" := Round(ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM, QtyRoundPrecision)\n- else\n- ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n+ ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n ProdOrderComp.Length := ProdBOMLine[Level].Length;\n ProdOrderComp.Width := ProdBOMLine[Level].Width;\n ProdOrderComp.Weight := ProdBOMLine[Level].Weight;\ndiff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al b/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\nindex c532e014..fb7504ac 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\n@@ -249,10 +249,6 @@ table 5407 \"Prod. Order Component\"\n \n trigger OnValidate()\n var\n- ItemUnitOfMeasure: Record \"Item Unit of Measure\";\n- UnroundedExpectedQuantity: Decimal;\n- ItemPrecRoundedExpectedQuantity: Decimal;\n- BaseUOMPrecRoundedExpectedQuantity: Decimal;\n IsHandled: Boolean;\n begin\n IsHandled := false;\n@@ -260,26 +256,11 @@ table 5407 \"Prod. Order Component\"\n if IsHandled then\n exit;\n \n- UnroundedExpectedQuantity := \"Expected Quantity\";\n- if Item.Get(\"Item No.\") then\n- if Item.\"Rounding Precision\" > 0 then\n- RoundExpectedQuantity();\n-\n- ItemPrecRoundedExpectedQuantity := \"Expected Quantity\";\n-\n- BaseUOMPrecRoundedExpectedQuantity := UOMMgt.RoundQty(\"Expected Quantity\", \"Qty. Rounding Precision\");\n-\n- if (\"Qty. Rounding Precision\" > 0) and (BaseUOMPrecRoundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity) then\n- if UnroundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity then\n- Error(WrongPrecisionItemAndUOMExpectedQtyErr, Item.FieldCaption(\"Rounding Precision\"), Item.TableCaption(), ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"))\n- else\n- Error(WrongPrecOnUOMExpectedQtyErr, ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"));\n-\n- \"Expected Quantity\" := BaseUOMPrecRoundedExpectedQuantity;\n+ \"Expected Quantity\" := UOMMgt.RoundQty(\"Expected Quantity\", UOMMgt.QtyRndPrecision());\n \"Expected Qty. (Base)\" := CalcBaseQty(\"Expected Quantity\", FieldCaption(\"Expected Quantity\"), FieldCaption(\"Expected Qty. (Base)\"));\n \n // Recalculate 'Expected Quantity' based on the base value to make sure values are consistent\n- \"Expected Quantity\" := UOMMgt.RoundQty(\"Expected Qty. (Base)\" / \"Qty. per Unit of Measure\", \"Qty. Rounding Precision\");\n+ \"Expected Quantity\" := UOMMgt.RoundQty(\"Expected Qty. (Base)\" / \"Qty. per Unit of Measure\", UOMMgt.QtyRndPrecision());\n \n if (Status in [Status::Released, Status::Finished]) and\n (xRec.\"Item No.\" <> '') and\n@@ -289,7 +270,7 @@ table 5407 \"Prod. Order Component\"\n \n OnValidateExpectedQuantityOnAfterCalcActConsumptionQty(Rec, xRec);\n \"Remaining Quantity\" := \"Expected Quantity\" - \"Act. Consumption (Qty)\" / \"Qty. per Unit of Measure\";\n- \"Remaining Quantity\" := UOMMgt.RoundQty(\"Remaining Quantity\", \"Qty. Rounding Precision\");\n+ \"Remaining Quantity\" := UOMMgt.RoundQty(\"Remaining Quantity\", UOMMgt.QtyRndPrecision());\n \n if (\"Remaining Quantity\" * \"Expected Quantity\") <= 0 then\n \"Remaining Quantity\" := 0;\n@@ -562,7 +543,7 @@ table 5407 \"Prod. Order Component\"\n exit;\n \n CalculateQuantity(Quantity);\n- Quantity := UOMMgt.RoundAndValidateQty(Quantity, \"Qty. Rounding Precision\", FieldCaption(Quantity));\n+ Quantity := UOMMgt.RoundAndValidateQty(Quantity, UOMMgt.QtyRndPrecision(), FieldCaption(Quantity));\n \n OnValidateCalculationFormulaOnAfterSetQuantity(Rec);\n \"Quantity (Base)\" := CalcBaseQty(Quantity, FieldCaption(Quantity), FieldCaption(\"Quantity (Base)\"));\n@@ -1028,8 +1009,6 @@ table 5407 \"Prod. Order Component\"\n Text99000003: Label 'You cannot change %1 when %2 is %3.';\n #pragma warning restore AA0470\n #pragma warning restore AA0074\n- WrongPrecisionItemAndUOMExpectedQtyErr: Label 'The value in the %1 field on the %2 page, and %3 field on the %4 page, are causing the rounding precision for the %5 field to be incorrect.', Comment = '%1 = field caption, %2 = table caption, %3 field caption, %4 = table caption, %5 = field caption';\n- WrongPrecOnUOMExpectedQtyErr: Label 'The value in the %1 field on the %2 page is causing the rounding precision for the %3 field to be incorrect.', Comment = '%1 = field caption, %2 = table caption, %3 field caption';\n Item: Record Item;\n ReservEntry: Record \"Reservation Entry\";\n GLSetup: Record \"General Ledger Setup\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137088'\nCodeunit 137088 SCM Order Planning - III\n Testfunction ReleasedProdOrderQuantityPerandExpectedQtyRoundingPrecisionChecking Failure (7.35 seconds)\n Error:\n Qty. Rounding Precision on Item-GL00000000 causes the Expected Quantity and Expected Qty. (Base) to be out of balance. Rounding of the field Expected Qty. (Base) results to 0.\n Call Stack:\n \"Unit of Measure Management\"(CodeUnit 5402).CalcBaseQty line 9 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).CalcBaseQty line 9 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).\"Expected Quantity - OnValidate\"(Trigger) line 10 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).UpdateExpectedQuantity line 14 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).\"Routing Link Code - OnValidate\"(Trigger) line 5 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).TransferBOMProcessItem line 45 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).TransferBOM line 70 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).Calculate line 105 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order Lines\"(CodeUnit 99000787).ProcessProdOrderLines line 13 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order Lines\"(CodeUnit 99000787).Copy line 23 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order from Sale\"(CodeUnit 99000792).CreateProductionOrder line 54 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateOrder line 11 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateOrders line 35 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateProdOrder line 24 - Base Application by Microsoft version 26.0.0.0", "metrics": {"execution_time": 301.0, "llm_duration": null, "turn_count": 28, "prompt_tokens": 1400000, "completion_tokens": 10800, "tool_usage": {"rg": 18, "glob": 4, "report_intent": 3, "view": 19, "apply_patch": 4, "powershell": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-206977__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\nindex 0877c357..dbb3e2af 100644\n--- a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\n+++ b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\n@@ -161,7 +161,14 @@ page 903 \"Assembly Lines\"\n AssemblyHeader: Record \"Assembly Header\";\n begin\n AssemblyHeader.Get(Rec.\"Document Type\", Rec.\"Document No.\");\n- PAGE.Run(PAGE::\"Assembly Order\", AssemblyHeader);\n+ case Rec.\"Document Type\" of\n+ Rec.\"Document Type\"::Quote:\n+ PAGE.Run(PAGE::\"Assembly Quote\", AssemblyHeader);\n+ Rec.\"Document Type\"::Order:\n+ PAGE.Run(PAGE::\"Assembly Order\", AssemblyHeader);\n+ Rec.\"Document Type\"::\"Blanket Order\":\n+ PAGE.Run(PAGE::\"Blanket Assembly Order\", AssemblyHeader);\n+ end;\n end;\n }\n action(\"Reservation Entries\")\n", "error_message": null, "metrics": {"execution_time": 116.0, "llm_duration": null, "turn_count": 10, "prompt_tokens": 223900, "completion_tokens": 3000, "tool_usage": {"rg": 8, "glob": 3, "view": 9, "report_intent": 1, "apply_patch": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-206977__cf-2", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\nindex 0877c357..c642ab93 100644\n--- a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\n+++ b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\n@@ -161,7 +161,14 @@ page 903 \"Assembly Lines\"\n AssemblyHeader: Record \"Assembly Header\";\n begin\n AssemblyHeader.Get(Rec.\"Document Type\", Rec.\"Document No.\");\n- PAGE.Run(PAGE::\"Assembly Order\", AssemblyHeader);\n+ case AssemblyHeader.\"Document Type\" of\n+ AssemblyHeader.\"Document Type\"::Quote:\n+ PAGE.Run(PAGE::\"Assembly Quote\", AssemblyHeader);\n+ AssemblyHeader.\"Document Type\"::\"Blanket Order\":\n+ PAGE.Run(PAGE::\"Blanket Assembly Order\", AssemblyHeader);\n+ else\n+ PAGE.Run(PAGE::\"Assembly Order\", AssemblyHeader);\n+ end;\n end;\n }\n action(\"Reservation Entries\")\n", "error_message": null, "metrics": {"execution_time": 111.0, "llm_duration": null, "turn_count": 9, "prompt_tokens": 217800, "completion_tokens": 2400, "tool_usage": {"rg": 7, "glob": 1, "report_intent": 3, "view": 6, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-206977__cf-3", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\nindex 0877c357..cdc6d505 100644\n--- a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\n+++ b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\n@@ -161,7 +161,14 @@ page 903 \"Assembly Lines\"\n AssemblyHeader: Record \"Assembly Header\";\n begin\n AssemblyHeader.Get(Rec.\"Document Type\", Rec.\"Document No.\");\n- PAGE.Run(PAGE::\"Assembly Order\", AssemblyHeader);\n+ case AssemblyHeader.\"Document Type\" of\n+ AssemblyHeader.\"Document Type\"::Quote:\n+ PAGE.Run(PAGE::\"Assembly Quote\", AssemblyHeader);\n+ AssemblyHeader.\"Document Type\"::Order:\n+ PAGE.Run(PAGE::\"Assembly Order\", AssemblyHeader);\n+ AssemblyHeader.\"Document Type\"::\"Blanket Order\":\n+ PAGE.Run(PAGE::\"Blanket Assembly Order\", AssemblyHeader);\n+ end;\n end;\n }\n action(\"Reservation Entries\")\n", "error_message": null, "metrics": {"execution_time": 126.0, "llm_duration": null, "turn_count": 13, "prompt_tokens": 254400, "completion_tokens": 2900, "tool_usage": {"rg": 6, "glob": 4, "view": 9, "report_intent": 3, "apply_patch": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-207177__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\nindex a84b0558..38c79c10 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n@@ -42,6 +42,9 @@ page 7504 \"Item Attribute Value List\"\n DeleteItemAttributeValueMapping(ItemAttribute.ID);\n end;\n \n+ if Rec.Value = '' then\n+ exit;\n+\n if not Rec.FindAttributeValue(ItemAttributeValue) then\n Rec.InsertItemAttributeValue(ItemAttributeValue, Rec);\n \n@@ -71,6 +74,11 @@ page 7504 \"Item Attribute Value List\"\n ItemAttributeValueMapping: Record \"Item Attribute Value Mapping\";\n ItemAttribute: Record \"Item Attribute\";\n begin\n+ if Rec.Value = '' then begin\n+ DeleteItemAttributeValueMapping(Rec.\"Attribute ID\");\n+ exit;\n+ end;\n+\n if not Rec.FindAttributeValue(ItemAttributeValue) then\n Rec.InsertItemAttributeValue(ItemAttributeValue, Rec);\n \n", "error_message": null, "metrics": {"execution_time": 150.0, "llm_duration": null, "turn_count": 13, "prompt_tokens": 481300, "completion_tokens": 4800, "tool_usage": {"rg": 11, "glob": 1, "view": 17, "report_intent": 2, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-207177__cf-2", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\nindex a84b0558..c2210f0e 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n@@ -42,6 +42,9 @@ page 7504 \"Item Attribute Value List\"\n DeleteItemAttributeValueMapping(ItemAttribute.ID);\n end;\n \n+ if Rec.Value = '' then\n+ exit;\n+\n if not Rec.FindAttributeValue(ItemAttributeValue) then\n Rec.InsertItemAttributeValue(ItemAttributeValue, Rec);\n \n@@ -71,17 +74,32 @@ page 7504 \"Item Attribute Value List\"\n ItemAttributeValueMapping: Record \"Item Attribute Value Mapping\";\n ItemAttribute: Record \"Item Attribute\";\n begin\n- if not Rec.FindAttributeValue(ItemAttributeValue) then\n- Rec.InsertItemAttributeValue(ItemAttributeValue, Rec);\n-\n ItemAttributeValueMapping.SetRange(\"Table ID\", Database::Item);\n ItemAttributeValueMapping.SetRange(\"No.\", RelatedRecordCode);\n- ItemAttributeValueMapping.SetRange(\"Item Attribute ID\", ItemAttributeValue.\"Attribute ID\");\n- if ItemAttributeValueMapping.FindFirst() then begin\n- ItemAttributeValueMapping.\"Item Attribute Value ID\" := ItemAttributeValue.ID;\n- OnBeforeItemAttributeValueMappingModify(ItemAttributeValueMapping, ItemAttributeValue, RelatedRecordCode);\n- ItemAttributeValueMapping.Modify();\n- OnAfterItemAttributeValueMappingModify(ItemAttributeValueMapping, Rec);\n+ ItemAttributeValueMapping.SetRange(\"Item Attribute ID\", Rec.\"Attribute ID\");\n+\n+ if Rec.Value = '' then begin\n+ if ItemAttributeValueMapping.FindFirst() then\n+ DeleteItemAttributeValueMapping(Rec.\"Attribute ID\");\n+ end else begin\n+ if not Rec.FindAttributeValue(ItemAttributeValue) then\n+ Rec.InsertItemAttributeValue(ItemAttributeValue, Rec);\n+\n+ if ItemAttributeValueMapping.FindFirst() then begin\n+ ItemAttributeValueMapping.\"Item Attribute Value ID\" := ItemAttributeValue.ID;\n+ OnBeforeItemAttributeValueMappingModify(ItemAttributeValueMapping, ItemAttributeValue, RelatedRecordCode);\n+ ItemAttributeValueMapping.Modify();\n+ OnAfterItemAttributeValueMappingModify(ItemAttributeValueMapping, Rec);\n+ end else begin\n+ ItemAttributeValueMapping.Reset();\n+ ItemAttributeValueMapping.Init();\n+ ItemAttributeValueMapping.\"Table ID\" := Database::Item;\n+ ItemAttributeValueMapping.\"No.\" := RelatedRecordCode;\n+ ItemAttributeValueMapping.\"Item Attribute ID\" := ItemAttributeValue.\"Attribute ID\";\n+ ItemAttributeValueMapping.\"Item Attribute Value ID\" := ItemAttributeValue.ID;\n+ OnBeforeItemAttributeValueMappingInsert(ItemAttributeValueMapping, ItemAttributeValue, Rec);\n+ ItemAttributeValueMapping.Insert();\n+ end;\n end;\n \n ItemAttribute.Get(Rec.\"Attribute ID\");\n", "error_message": null, "metrics": {"execution_time": 130.0, "llm_duration": null, "turn_count": 9, "prompt_tokens": 262700, "completion_tokens": 5000, "tool_usage": {"glob": 1, "rg": 4, "view": 17, "report_intent": 2, "apply_patch": 1, "powershell": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-207177__cf-3", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\nindex a84b0558..3bddf9e4 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n@@ -42,6 +42,9 @@ page 7504 \"Item Attribute Value List\"\n DeleteItemAttributeValueMapping(ItemAttribute.ID);\n end;\n \n+ if Rec.Value = '' then\n+ exit;\n+\n if not Rec.FindAttributeValue(ItemAttributeValue) then\n Rec.InsertItemAttributeValue(ItemAttributeValue, Rec);\n \n@@ -71,6 +74,17 @@ page 7504 \"Item Attribute Value List\"\n ItemAttributeValueMapping: Record \"Item Attribute Value Mapping\";\n ItemAttribute: Record \"Item Attribute\";\n begin\n+ if Rec.Value = '' then begin\n+ if Rec.\"Attribute ID\" <> 0 then begin\n+ DeleteItemAttributeValueMapping(Rec.\"Attribute ID\");\n+ ItemAttribute.Get(Rec.\"Attribute ID\");\n+ if (ItemAttribute.Type <> ItemAttribute.Type::Option) and Rec.FindAttributeValueFromRecord(ItemAttributeValue, xRec) then\n+ if not ItemAttributeValue.HasBeenUsed() then\n+ ItemAttributeValue.Delete();\n+ end;\n+ exit;\n+ end;\n+\n if not Rec.FindAttributeValue(ItemAttributeValue) then\n Rec.InsertItemAttributeValue(ItemAttributeValue, Rec);\n \n@@ -82,6 +96,15 @@ page 7504 \"Item Attribute Value List\"\n OnBeforeItemAttributeValueMappingModify(ItemAttributeValueMapping, ItemAttributeValue, RelatedRecordCode);\n ItemAttributeValueMapping.Modify();\n OnAfterItemAttributeValueMappingModify(ItemAttributeValueMapping, Rec);\n+ end else begin\n+ ItemAttributeValueMapping.Reset();\n+ ItemAttributeValueMapping.Init();\n+ ItemAttributeValueMapping.\"Table ID\" := Database::Item;\n+ ItemAttributeValueMapping.\"No.\" := RelatedRecordCode;\n+ ItemAttributeValueMapping.\"Item Attribute ID\" := ItemAttributeValue.\"Attribute ID\";\n+ ItemAttributeValueMapping.\"Item Attribute Value ID\" := ItemAttributeValue.ID;\n+ OnBeforeItemAttributeValueMappingInsert(ItemAttributeValueMapping, ItemAttributeValue, Rec);\n+ ItemAttributeValueMapping.Insert();\n end;\n \n ItemAttribute.Get(Rec.\"Attribute ID\");\n@@ -142,6 +165,9 @@ page 7504 \"Item Attribute Value List\"\n ItemAttributeValueMapping: Record \"Item Attribute Value Mapping\";\n ItemAttribute: Record \"Item Attribute\";\n begin\n+ if AttributeToDeleteID = 0 then\n+ exit;\n+\n ItemAttributeValueMapping.SetRange(\"Table ID\", Database::Item);\n ItemAttributeValueMapping.SetRange(\"No.\", RelatedRecordCode);\n ItemAttributeValueMapping.SetRange(\"Item Attribute ID\", AttributeToDeleteID);\n", "error_message": null, "metrics": {"execution_time": 122.0, "llm_duration": null, "turn_count": 7, "prompt_tokens": 212200, "completion_tokens": 4400, "tool_usage": {"rg": 3, "glob": 1, "report_intent": 4, "view": 14, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-207236__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al b/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\nindex fbf39fce..0454784a 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\n@@ -7037,6 +7037,7 @@ table 36 \"Sales Header\"\n if DeferralHeadersExist() then\n exit;\n \n+ xRec := Rec;\n \"Posting Date\" := PostingDateReq;\n Validate(\"Currency Code\");\n \n@@ -11244,4 +11245,4 @@ table 36 \"Sales Header\"\n local procedure OnBeforeValidatePrepmtCrMemoNoSeries(var SalesHeader: Record \"Sales Header\"; var IsHandled: Boolean)\n begin\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": null, "metrics": {"execution_time": 172.0, "llm_duration": null, "turn_count": 15, "prompt_tokens": 637700, "completion_tokens": 6600, "tool_usage": {"rg": 10, "glob": 2, "report_intent": 3, "view": 16, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-207247__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\nindex bd370429..88653d9e 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n@@ -1539,8 +1539,20 @@ codeunit 99000813 \"Carry Out Action\"\n ActiveVersionCode := VersionManagement.GetBOMVersion(ProductionBOMHeader.\"No.\", WorkDate(), true);\n \n ProductionBOMLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n+ ProductionBOMLine.SetRange(\"Version Code\", ActiveVersionCode);\n ProductionBOMLine.SetRange(Type, ProductionBOMLine.Type::Item);\n ProductionBOMLine.SetRange(\"No.\", ProdOrderComponent.\"Item No.\");\n+ ProductionBOMLine.SetRange(\"Variant Code\", ProdOrderComponent.\"Variant Code\");\n+ ProductionBOMLine.SetRange(\"Routing Link Code\", ProdOrderComponent.\"Routing Link Code\");\n+ ProductionBOMLine.SetRange(Position, ProdOrderComponent.Position);\n+ ProductionBOMLine.SetRange(\"Position 2\", ProdOrderComponent.\"Position 2\");\n+ ProductionBOMLine.SetRange(\"Position 3\", ProdOrderComponent.\"Position 3\");\n+ ProductionBOMLine.SetRange(Length, ProdOrderComponent.Length);\n+ ProductionBOMLine.SetRange(Width, ProdOrderComponent.Width);\n+ ProductionBOMLine.SetRange(Weight, ProdOrderComponent.Weight);\n+ ProductionBOMLine.SetRange(Depth, ProdOrderComponent.Depth);\n+ ProductionBOMLine.SetRange(\"Unit of Measure Code\", ProdOrderComponent.\"Unit of Measure Code\");\n+ ProductionBOMLine.SetRange(\"Calculation Formula\", ProdOrderComponent.\"Calculation Formula\");\n if ProductionBOMLine.FindSet() then\n repeat\n ProductionBOMCommentLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n", "error_message": null, "metrics": {"execution_time": 202.0, "llm_duration": null, "turn_count": 24, "prompt_tokens": 867800, "completion_tokens": 5400, "tool_usage": {"glob": 1, "rg": 16, "view": 19, "apply_patch": 1, "report_intent": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-207247__cf-2", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\nindex bd370429..88653d9e 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n@@ -1539,8 +1539,20 @@ codeunit 99000813 \"Carry Out Action\"\n ActiveVersionCode := VersionManagement.GetBOMVersion(ProductionBOMHeader.\"No.\", WorkDate(), true);\n \n ProductionBOMLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n+ ProductionBOMLine.SetRange(\"Version Code\", ActiveVersionCode);\n ProductionBOMLine.SetRange(Type, ProductionBOMLine.Type::Item);\n ProductionBOMLine.SetRange(\"No.\", ProdOrderComponent.\"Item No.\");\n+ ProductionBOMLine.SetRange(\"Variant Code\", ProdOrderComponent.\"Variant Code\");\n+ ProductionBOMLine.SetRange(\"Routing Link Code\", ProdOrderComponent.\"Routing Link Code\");\n+ ProductionBOMLine.SetRange(Position, ProdOrderComponent.Position);\n+ ProductionBOMLine.SetRange(\"Position 2\", ProdOrderComponent.\"Position 2\");\n+ ProductionBOMLine.SetRange(\"Position 3\", ProdOrderComponent.\"Position 3\");\n+ ProductionBOMLine.SetRange(Length, ProdOrderComponent.Length);\n+ ProductionBOMLine.SetRange(Width, ProdOrderComponent.Width);\n+ ProductionBOMLine.SetRange(Weight, ProdOrderComponent.Weight);\n+ ProductionBOMLine.SetRange(Depth, ProdOrderComponent.Depth);\n+ ProductionBOMLine.SetRange(\"Unit of Measure Code\", ProdOrderComponent.\"Unit of Measure Code\");\n+ ProductionBOMLine.SetRange(\"Calculation Formula\", ProdOrderComponent.\"Calculation Formula\");\n if ProductionBOMLine.FindSet() then\n repeat\n ProductionBOMCommentLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n", "error_message": null, "metrics": {"execution_time": 283.0, "llm_duration": null, "turn_count": 23, "prompt_tokens": 1000000, "completion_tokens": 9500, "tool_usage": {"glob": 9, "rg": 31, "report_intent": 4, "view": 27, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-207247__cf-3", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\nindex bd370429..39ebbf58 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n@@ -1527,6 +1527,7 @@ codeunit 99000813 \"Carry Out Action\"\n ProductionBOMHeader: Record \"Production BOM Header\";\n ProdOrderLine: Record \"Prod. Order Line\";\n ProdOrderCompCmtLine: Record \"Prod. Order Comp. Cmt Line\";\n+ FilteredProdOrderComponent: Record \"Prod. Order Component\";\n ProductionBOMLine: Record \"Production BOM Line\";\n VersionManagement: Codeunit VersionManagement;\n ActiveVersionCode: Code[20];\n@@ -1539,19 +1540,27 @@ codeunit 99000813 \"Carry Out Action\"\n ActiveVersionCode := VersionManagement.GetBOMVersion(ProductionBOMHeader.\"No.\", WorkDate(), true);\n \n ProductionBOMLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n+ ProductionBOMLine.SetRange(\"Version Code\", ActiveVersionCode);\n ProductionBOMLine.SetRange(Type, ProductionBOMLine.Type::Item);\n ProductionBOMLine.SetRange(\"No.\", ProdOrderComponent.\"Item No.\");\n if ProductionBOMLine.FindSet() then\n repeat\n- ProductionBOMCommentLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n- ProductionBOMCommentLine.SetRange(\"BOM Line No.\", ProductionBOMLine.\"Line No.\");\n- ProductionBOMCommentLine.SetRange(\"Version Code\", ActiveVersionCode);\n- if ProductionBOMCommentLine.FindSet() then\n- repeat\n- ProdOrderCompCmtLine.CopyFromProdBOMComponent(ProductionBOMCommentLine, ProdOrderComponent);\n- if not ProdOrderCompCmtLine.Insert() then\n- ProdOrderCompCmtLine.Modify();\n- until ProductionBOMCommentLine.Next() = 0;\n+ FilteredProdOrderComponent.SetRange(Status, ProdOrderComponent.Status);\n+ FilteredProdOrderComponent.SetRange(\"Prod. Order No.\", ProdOrderComponent.\"Prod. Order No.\");\n+ FilteredProdOrderComponent.SetRange(\"Prod. Order Line No.\", ProdOrderComponent.\"Prod. Order Line No.\");\n+ FilteredProdOrderComponent.SetRange(\"Line No.\", ProdOrderComponent.\"Line No.\");\n+ FilteredProdOrderComponent.SetFilterFromProdBOMLine(ProductionBOMLine);\n+ if FilteredProdOrderComponent.FindFirst() then begin\n+ ProductionBOMCommentLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n+ ProductionBOMCommentLine.SetRange(\"BOM Line No.\", ProductionBOMLine.\"Line No.\");\n+ ProductionBOMCommentLine.SetRange(\"Version Code\", ActiveVersionCode);\n+ if ProductionBOMCommentLine.FindSet() then\n+ repeat\n+ ProdOrderCompCmtLine.CopyFromProdBOMComponent(ProductionBOMCommentLine, ProdOrderComponent);\n+ if not ProdOrderCompCmtLine.Insert() then\n+ ProdOrderCompCmtLine.Modify();\n+ until ProductionBOMCommentLine.Next() = 0;\n+ end;\n until ProductionBOMLine.Next() = 0;\n end;\n \n", "error_message": null, "metrics": {"execution_time": 218.0, "llm_duration": null, "turn_count": 17, "prompt_tokens": 707100, "completion_tokens": 6300, "tool_usage": {"rg": 20, "glob": 1, "view": 17, "report_intent": 5, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-207878__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLine.Table.al b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLine.Table.al\nindex 62ba45ed..fe0d7e62 100644\n--- a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLine.Table.al\n@@ -1510,14 +1510,16 @@ table 901 \"Assembly Line\"\n LookaheadDateFormula := CompanyInfo.\"Check-Avail. Period Calc.\";\n if Format(LookaheadDateFormula) <> '' then begin\n AvailabilityDate := Item.GetRangeMax(\"Date Filter\");\n- PeriodType := CompanyInfo.\"Check-Avail. Time Bucket\";\n-\n- GrossRequirement :=\n- GrossRequirement +\n- AvailableToPromise.CalculateForward(\n- Item, PeriodType,\n- AvailabilityDate + 1,\n- AvailableToPromise.GetPeriodEndingDate(CalcDate(LookaheadDateFormula, AvailabilityDate), PeriodType));\n+ if AvailabilityDate >= WorkDate() then begin\n+ PeriodType := CompanyInfo.\"Check-Avail. Time Bucket\";\n+\n+ GrossRequirement :=\n+ GrossRequirement +\n+ AvailableToPromise.CalculateForward(\n+ Item, PeriodType,\n+ AvailabilityDate + 1,\n+ AvailableToPromise.GetPeriodEndingDate(CalcDate(LookaheadDateFormula, AvailabilityDate), PeriodType));\n+ end;\n end;\n \n EarliestDate :=\ndiff --git a/App/Layers/W1/BaseApp/Inventory/Availability/ItemCheckAvail.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Availability/ItemCheckAvail.Codeunit.al\nindex 26f5dfa5..36e4101a 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Availability/ItemCheckAvail.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Availability/ItemCheckAvail.Codeunit.al\n@@ -40,6 +40,7 @@ codeunit 311 \"Item-Check Avail.\"\n QtyPerUnitOfMeasure: Decimal;\n InitialQtyAvailable: Decimal;\n UseOrderPromise: Boolean;\n+ UseLookAheadPeriod: Boolean;\n GrossReq: Decimal;\n ReservedReq: Decimal;\n SchedRcpt: Decimal;\n@@ -144,6 +145,8 @@ codeunit 311 \"Item-Check Avail.\"\n if not ShowWarningForThisItem(ItemJnlLine.\"Item No.\") then\n exit(false);\n \n+ UseLookAheadPeriod := true;\n+\n case ItemJnlLine.\"Entry Type\" of\n ItemJnlLine.\"Entry Type\"::Purchase, ItemJnlLine.\"Entry Type\"::\"Positive Adjmt.\":\n ItemNetChange := ItemJnlLine.Quantity;\n@@ -191,6 +194,8 @@ codeunit 311 \"Item-Check Avail.\"\n if not ShowWarningForThisItem(SalesLine.\"No.\") then\n exit(false);\n \n+ UseLookAheadPeriod := true;\n+\n Clear(AvailableToPromise);\n \n OldItemNetChange := 0;\n@@ -324,6 +329,7 @@ codeunit 311 \"Item-Check Avail.\"\n \n local procedure QtyAvailToPromise(var Item: Record Item; CompanyInfo: Record \"Company Information\")\n var\n+ AvailabilityDate: Date;\n IsHandled: Boolean;\n begin\n IsHandled := false;\n@@ -331,8 +337,12 @@ codeunit 311 \"Item-Check Avail.\"\n if IsHandled then\n exit;\n \n+ AvailabilityDate := Item.GetRangeMax(\"Date Filter\");\n+ if not UseLookAheadPeriod then\n+ AvailabilityDate := 0D;\n+\n AvailableToPromise.CalcQtyAvailabletoPromise(\n- Item, GrossReq, SchedRcpt, Item.GetRangeMax(\"Date Filter\"),\n+ Item, GrossReq, SchedRcpt, AvailabilityDate,\n CompanyInfo.\"Check-Avail. Time Bucket\", CompanyInfo.\"Check-Avail. Period Calc.\");\n InventoryQty := ConvertQty(AvailableToPromise.CalcAvailableInventory(Item) - OldItemNetResChange);\n GrossReq := ConvertQty(GrossReq);\n@@ -384,6 +394,8 @@ codeunit 311 \"Item-Check Avail.\"\n if not ShowWarningForThisItem(TransLine.\"Item No.\") then\n exit(false);\n \n+ UseLookAheadPeriod := true;\n+\n UseOrderPromise := true;\n \n OldTransLine := TransLine;\n@@ -433,6 +445,8 @@ codeunit 311 \"Item-Check Avail.\"\n if not ShowWarningForThisItem(JobPlanningLine.\"No.\") then\n exit(false);\n \n+ UseLookAheadPeriod := true;\n+\n OldItemNetChange := 0;\n \n OldJobPlanningLine := JobPlanningLine;\n@@ -480,6 +494,8 @@ codeunit 311 \"Item-Check Avail.\"\n if not ShowWarningForThisItem(AssemblyLine.\"No.\") then\n exit(false);\n \n+ UseLookAheadPeriod := AssemblyLine.\"Due Date\" >= WorkDate();\n+\n Clear(AvailableToPromise);\n \n OldItemNetChange := 0;\n@@ -536,6 +552,7 @@ codeunit 311 \"Item-Check Avail.\"\n \n if AssemblyHeader.\"Due Date\" = 0D then\n AssemblyHeader.\"Due Date\" := WorkDate();\n+ UseLookAheadPeriod := AssemblyHeader.\"Due Date\" >= WorkDate();\n SetFilterOnItem(Item, AssemblyHeader.\"Item No.\", AssemblyHeader.\"Variant Code\", AssemblyHeader.\"Location Code\", AssemblyHeader.\"Due Date\");\n CompanyInfo.Get();\n QtyAvailToPromise(Item, CompanyInfo);\n@@ -722,6 +739,8 @@ codeunit 311 \"Item-Check Avail.\"\n ItemNetChange := -InvtDocLine.Quantity;\n end;\n \n+ UseLookAheadPeriod := true;\n+\n IsHandled := false;\n OnItemDocLineShowWarningOnBeforeShowWarning(InvtDocLine, ContextInfo, OldItemNetChange, IsWarning, IsHandled);\n if IsHandled then\n", "error_message": null, "metrics": {"execution_time": 513.0, "llm_duration": null, "turn_count": 44, "prompt_tokens": 3500000, "completion_tokens": 19500, "tool_usage": {"rg": 24, "report_intent": 3, "view": 42, "apply_patch": 12, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-208649__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al b/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\nindex e3280001..e6eb6d5e 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\n@@ -182,29 +182,15 @@ table 99000829 \"Planning Component\"\n Editable = false;\n \n trigger OnValidate()\n- var\n- ItemUnitOfMeasure: Record \"Item Unit of Measure\";\n- UnroundedExpectedQuantity: Decimal;\n- ItemPrecRoundedExpectedQuantity: Decimal;\n- BaseUOMPrecRoundedExpectedQuantity: Decimal;\n begin\n- UnroundedExpectedQuantity := \"Expected Quantity\";\n-\n if Item.Get(\"Item No.\") and (\"Ref. Order Type\" <> \"Ref. Order Type\"::Assembly) then\n if Item.\"Rounding Precision\" > 0 then\n \"Expected Quantity\" := UOMMgt.RoundToItemRndPrecision(\"Expected Quantity\", Item.\"Rounding Precision\");\n \n- ItemPrecRoundedExpectedQuantity := \"Expected Quantity\";\n- BaseUOMPrecRoundedExpectedQuantity := UOMMgt.RoundQty(\"Expected Quantity\", \"Qty. Rounding Precision\");\n-\n- if (\"Qty. Rounding Precision\" > 0) and (BaseUOMPrecRoundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity) then\n- if UnroundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity then\n- Error(WrongPrecisionItemAndUOMExpectedQtyErr, Item.FieldCaption(\"Rounding Precision\"), Item.TableCaption(), ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"))\n- else\n- Error(WrongPrecOnUOMExpectedQtyErr, ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"));\n-\n- \"Expected Quantity\" := BaseUOMPrecRoundedExpectedQuantity;\n- \"Expected Quantity (Base)\" := CalcBaseQty(\"Expected Quantity\", FieldCaption(\"Expected Quantity\"), FieldCaption(\"Expected Quantity (Base)\"));\n+ \"Expected Quantity (Base)\" :=\n+ UOMMgt.CalcBaseQty(\n+ \"Item No.\", \"Variant Code\", \"Unit of Measure Code\", \"Expected Quantity\", \"Qty. per Unit of Measure\", 0,\n+ FieldCaption(\"Qty. Rounding Precision\"), FieldCaption(\"Expected Quantity\"), FieldCaption(\"Expected Quantity (Base)\"));\n \n \"Net Quantity (Base)\" := \"Expected Quantity (Base)\" - \"Original Expected Qty. (Base)\";\n \n@@ -654,8 +640,6 @@ table 99000829 \"Planning Component\"\n CannotRenameErr: Label 'You cannot rename a %1.', Comment = '%1 - Planning Component';\n CannotChangeErr: Label 'You cannot change %1 when %2 is %3.', Comment = '%1 - FieldCaption(\"Unit Cost\"), %2 - Item.FieldCaption(\"Costing Method\"), %3 - Item.\"Costing Method\"';\n LocationCodeMustBeBlankErr: Label 'The Location Code field must be blank for items of type Non-Inventory.';\n- WrongPrecisionItemAndUOMExpectedQtyErr: Label 'The value in the %1 field on the %2 page, and %3 field on the %4 page, are causing the rounding precision for the %5 field to be incorrect.', Comment = '%1 = field caption, %2 = table caption, %3 field caption, %4 = table caption, %5 = field caption';\n- WrongPrecOnUOMExpectedQtyErr: Label 'The value in the %1 field on the %2 page is causing the rounding precision for the %3 field to be incorrect.', Comment = '%1 = field caption, %2 = table caption, %3 field caption';\n \n protected var\n ReqLine: Record \"Requisition Line\";\ndiff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al b/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\nindex c532e014..a05d2305 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\n@@ -249,10 +249,6 @@ table 5407 \"Prod. Order Component\"\n \n trigger OnValidate()\n var\n- ItemUnitOfMeasure: Record \"Item Unit of Measure\";\n- UnroundedExpectedQuantity: Decimal;\n- ItemPrecRoundedExpectedQuantity: Decimal;\n- BaseUOMPrecRoundedExpectedQuantity: Decimal;\n IsHandled: Boolean;\n begin\n IsHandled := false;\n@@ -260,26 +256,17 @@ table 5407 \"Prod. Order Component\"\n if IsHandled then\n exit;\n \n- UnroundedExpectedQuantity := \"Expected Quantity\";\n if Item.Get(\"Item No.\") then\n if Item.\"Rounding Precision\" > 0 then\n RoundExpectedQuantity();\n \n- ItemPrecRoundedExpectedQuantity := \"Expected Quantity\";\n-\n- BaseUOMPrecRoundedExpectedQuantity := UOMMgt.RoundQty(\"Expected Quantity\", \"Qty. Rounding Precision\");\n-\n- if (\"Qty. Rounding Precision\" > 0) and (BaseUOMPrecRoundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity) then\n- if UnroundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity then\n- Error(WrongPrecisionItemAndUOMExpectedQtyErr, Item.FieldCaption(\"Rounding Precision\"), Item.TableCaption(), ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"))\n- else\n- Error(WrongPrecOnUOMExpectedQtyErr, ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"));\n-\n- \"Expected Quantity\" := BaseUOMPrecRoundedExpectedQuantity;\n- \"Expected Qty. (Base)\" := CalcBaseQty(\"Expected Quantity\", FieldCaption(\"Expected Quantity\"), FieldCaption(\"Expected Qty. (Base)\"));\n+ \"Expected Qty. (Base)\" :=\n+ UOMMgt.CalcBaseQty(\n+ \"Item No.\", \"Variant Code\", \"Unit of Measure Code\", \"Expected Quantity\", \"Qty. per Unit of Measure\", 0,\n+ FieldCaption(\"Qty. Rounding Precision\"), FieldCaption(\"Expected Quantity\"), FieldCaption(\"Expected Qty. (Base)\"));\n \n // Recalculate 'Expected Quantity' based on the base value to make sure values are consistent\n- \"Expected Quantity\" := UOMMgt.RoundQty(\"Expected Qty. (Base)\" / \"Qty. per Unit of Measure\", \"Qty. Rounding Precision\");\n+ \"Expected Quantity\" := UOMMgt.RoundQty(\"Expected Qty. (Base)\" / \"Qty. per Unit of Measure\", UOMMgt.QtyRndPrecision());\n \n if (Status in [Status::Released, Status::Finished]) and\n (xRec.\"Item No.\" <> '') and\n@@ -289,7 +276,7 @@ table 5407 \"Prod. Order Component\"\n \n OnValidateExpectedQuantityOnAfterCalcActConsumptionQty(Rec, xRec);\n \"Remaining Quantity\" := \"Expected Quantity\" - \"Act. Consumption (Qty)\" / \"Qty. per Unit of Measure\";\n- \"Remaining Quantity\" := UOMMgt.RoundQty(\"Remaining Quantity\", \"Qty. Rounding Precision\");\n+ \"Remaining Quantity\" := UOMMgt.RoundQty(\"Remaining Quantity\", UOMMgt.QtyRndPrecision());\n \n if (\"Remaining Quantity\" * \"Expected Quantity\") <= 0 then\n \"Remaining Quantity\" := 0;\n@@ -1028,8 +1015,6 @@ table 5407 \"Prod. Order Component\"\n Text99000003: Label 'You cannot change %1 when %2 is %3.';\n #pragma warning restore AA0470\n #pragma warning restore AA0074\n- WrongPrecisionItemAndUOMExpectedQtyErr: Label 'The value in the %1 field on the %2 page, and %3 field on the %4 page, are causing the rounding precision for the %5 field to be incorrect.', Comment = '%1 = field caption, %2 = table caption, %3 field caption, %4 = table caption, %5 = field caption';\n- WrongPrecOnUOMExpectedQtyErr: Label 'The value in the %1 field on the %2 page is causing the rounding precision for the %3 field to be incorrect.', Comment = '%1 = field caption, %2 = table caption, %3 field caption';\n Item: Record Item;\n ReservEntry: Record \"Reservation Entry\";\n GLSetup: Record \"General Ledger Setup\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137088'\nCodeunit 137088 SCM Order Planning - III\n Testfunction ReleasedProdOrderQuantityPerandExpectedQtyRoundingPrecisionChecking Failure (9.956 seconds)\n Error:\n Assert.AreEqual failed. Expected:<0.11> (Decimal). Actual:<0> (Decimal). Relesed Production Order Item Component Quantity per 0 Not Match With Expected Result 0.11.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 26.0.0.0\n \"SCM Order Planning - III\"(CodeUnit 137088).ReleasedProdOrderQuantityPerandExpectedQtyRoundingPrecisionChecking line 61 - Tests-SCM by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0", "metrics": {"execution_time": 404.0, "llm_duration": null, "turn_count": 32, "prompt_tokens": 2100000, "completion_tokens": 15600, "tool_usage": {"glob": 3, "report_intent": 2, "rg": 31, "view": 27, "apply_patch": 2, "powershell": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-208649__cf-2", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Planning/PlanningLineManagement.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Planning/PlanningLineManagement.Codeunit.al\nindex fe992506..855fd273 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Planning/PlanningLineManagement.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Planning/PlanningLineManagement.Codeunit.al\n@@ -615,6 +615,11 @@ codeunit 99000809 \"Planning Line Management\"\n PlanningComponent.Description := ProdBOMLine.Description;\n PlanningComponent.\"Planning Line Origin\" := ReqLine.\"Planning Line Origin\";\n PlanningComponent.Validate(\"Unit of Measure Code\", ProdBOMLine.\"Unit of Measure Code\");\n+ if Item2.Get(PlanningComponent.\"Item No.\") then begin\n+ PlanningComponent.\"Qty. Rounding Precision\" := Item2.\"Rounding Precision\";\n+ PlanningComponent.\"Qty. Rounding Precision (Base)\" := Item2.\"Rounding Precision\";\n+ PlanningComponent.Critical := Item2.Critical;\n+ end;\n PlanningComponent.\"Quantity per\" := ProdBOMLine.\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n PlanningComponent.Validate(\"Routing Link Code\", ProdBOMLine.\"Routing Link Code\");\n PlanningComponent.Length := ProdBOMLine.Length;\n@@ -630,8 +635,6 @@ codeunit 99000809 \"Planning Line Management\"\n PlanningComponent.Validate(\"Calculation Formula\", ProdBOMLine.\"Calculation Formula\");\n \n GetPlanningParameters.AtSKU(CompSKU, PlanningComponent.\"Item No.\", PlanningComponent.\"Variant Code\", PlanningComponent.\"Location Code\");\n- if Item2.Get(PlanningComponent.\"Item No.\") then\n- PlanningComponent.Critical := Item2.Critical;\n \n PlanningComponent.\"Flushing Method\" := CompSKU.\"Flushing Method\";\n OnTransferBOMOnBeforeGetDefaultBin(PlanningComponent, ProdBOMLine, ReqLine, SKU);\ndiff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\nindex 36930a9e..f4571bbc 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n@@ -295,8 +295,11 @@ codeunit 99000773 \"Calculate Prod. Order\"\n ProdOrderComp.\"Bin Code\" := GetDefaultBin();\n ProdOrderComp.Description := ProdBOMLine[Level].Description;\n ProdOrderComp.Validate(\"Unit of Measure Code\", ProdBOMLine[Level].\"Unit of Measure Code\");\n- if (ProdOrderComp.\"Item No.\" <> '') and Item2.Get(ProdOrderComp.\"Item No.\") then\n- QtyRoundPrecision := UOMMgt.GetQtyRoundingPrecision(Item2, ProdBOMLine[Level].\"Unit of Measure Code\");\n+ if (ProdOrderComp.\"Item No.\" <> '') and Item2.Get(ProdOrderComp.\"Item No.\") then begin\n+ QtyRoundPrecision := Item2.\"Rounding Precision\";\n+ ProdOrderComp.\"Qty. Rounding Precision\" := QtyRoundPrecision;\n+ ProdOrderComp.\"Qty. Rounding Precision (Base)\" := QtyRoundPrecision;\n+ end;\n if QtyRoundPrecision <> 0 then\n ProdOrderComp.\"Quantity per\" := Round(ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM, QtyRoundPrecision)\n else\n", "error_message": null, "metrics": {"execution_time": 244.0, "llm_duration": null, "turn_count": 16, "prompt_tokens": 663000, "completion_tokens": 8800, "tool_usage": {"rg": 10, "glob": 2, "view": 18, "report_intent": 2, "apply_patch": 2, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-208748__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\nindex 7c1943c5..0e463c31 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\n@@ -8,6 +8,7 @@ using Microsoft.Inventory.Tracking;\n using Microsoft.Sales.Comment;\n using Microsoft.Sales.Customer;\n using Microsoft.Sales.Setup;\n+using Microsoft.Foundation.ExtendedText;\n using Microsoft.Utilities;\n using System.Utilities;\n \n@@ -121,12 +122,14 @@ codeunit 87 \"Blanket Sales Order to Order\"\n Customer: Record Customer;\n SalesLine: Record \"Sales Line\";\n ATOLink: Record \"Assemble-to-Order Link\";\n+ TransferOldExtLines: Codeunit \"Transfer Old Ext. Text Lines\";\n PrepmtMgt: Codeunit \"Prepayment Mgt.\";\n SalesLineReserve: Codeunit \"Sales Line-Reserve\";\n QuantityOnOrders: Decimal;\n IsHandled: Boolean;\n ProcessLine: Boolean;\n begin\n+ TransferOldExtLines.ClearLineNumbers();\n if not SalesLineBlanketOrder.FindSet() then\n exit;\n \n@@ -164,6 +167,9 @@ codeunit 87 \"Blanket Sales Order to Order\"\n SalesLineOrder.\"Document No.\" := SalesHeaderOrder.\"No.\";\n NextLineNo += 10000;\n SalesLineOrder.\"Line No.\" := NextLineNo;\n+ SalesLineOrder.\"Attached to Line No.\" :=\n+ TransferOldExtLines.TransferExtendedText(\n+ SalesLineBlanketOrder.\"Line No.\", NextLineNo, SalesLineBlanketOrder.\"Attached to Line No.\");\n SalesLineOrder.\"Blanket Order No.\" := SalesHeaderBlanketOrder.\"No.\";\n SalesLineOrder.\"Blanket Order Line No.\" := SalesLineBlanketOrder.\"Line No.\";\n if (SalesLineOrder.\"No.\" <> '') and (SalesLineOrder.Type <> SalesLineOrder.Type::\" \") then begin\n", "error_message": null, "metrics": {"execution_time": 256.0, "llm_duration": null, "turn_count": 17, "prompt_tokens": 606700, "completion_tokens": 7900, "tool_usage": {"rg": 19, "glob": 7, "report_intent": 14, "view": 15, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-208748__cf-2", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\nindex 7c1943c5..af281af0 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\n@@ -199,6 +199,7 @@ codeunit 87 \"Blanket Sales Order to Order\"\n SalesLineOrder.\"Qty. to Asm. to Order (Base)\" := SalesLineOrder.\"Quantity (Base)\";\n end;\n SalesLineOrder.DefaultDeferralCode();\n+ UpdateAttachedToLineNoForExtendedText(SalesLineOrder, SalesHeaderOrder);\n if IsSalesOrderLineToBeInserted(SalesLineOrder) then begin\n OnBeforeInsertSalesOrderLine(SalesLineOrder, SalesHeaderOrder, SalesLineBlanketOrder, SalesHeaderBlanketOrder);\n SalesLineOrder.Insert();\n@@ -454,6 +455,22 @@ codeunit 87 \"Blanket Sales Order to Order\"\n SalesOrderLine.\"Document Type\", SalesOrderLine.\"Document No.\", SalesOrderLine.\"Attached to Line No.\"));\n end;\n \n+ local procedure UpdateAttachedToLineNoForExtendedText(var SalesOrderLine: Record \"Sales Line\"; SalesHeaderOrder: Record \"Sales Header\")\n+ var\n+ AttachedToSalesLine: Record \"Sales Line\";\n+ begin\n+ if not SalesOrderLine.IsExtendedText() then\n+ exit;\n+\n+ AttachedToSalesLine.SetRange(\"Document Type\", SalesHeaderOrder.\"Document Type\");\n+ AttachedToSalesLine.SetRange(\"Document No.\", SalesHeaderOrder.\"No.\");\n+ AttachedToSalesLine.SetRange(\"Blanket Order Line No.\", SalesOrderLine.\"Attached to Line No.\");\n+ if AttachedToSalesLine.FindFirst() then\n+ SalesOrderLine.\"Attached to Line No.\" := AttachedToSalesLine.\"Line No.\"\n+ else\n+ SalesOrderLine.\"Attached to Line No.\" := 0;\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnAfterRun(var SalesHeader: Record \"Sales Header\"; var SalesOrderHeader: Record \"Sales Header\")\n begin\n", "error_message": null, "metrics": {"execution_time": 201.0, "llm_duration": null, "turn_count": 14, "prompt_tokens": 527000, "completion_tokens": 7800, "tool_usage": {"rg": 13, "view": 13, "glob": 4, "report_intent": 2, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-208851__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al b/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al\nindex fb6adbb6..373d3daa 100644\n--- a/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al\n@@ -563,9 +563,10 @@ table 7000 \"Price List Header\"\n xAmountType: Enum \"Price Amount Type\";\n begin\n xAmountType := \"Amount Type\";\n- if \"Source Type\" in [\"Source Type\"::\"Customer Disc. Group\", \"Source Type\"::\"Customer Price Group\"] then\n+ if \"Source Type\" in [\"Source Type\"::\"Customer Disc. Group\", \"Source Type\"::\"Customer Price Group\"] then begin\n+ CopyTo(PriceSource);\n \"Amount Type\" := PriceSource.GetDefaultAmountType()\n- else\n+ end else\n \"Amount Type\" := CalcAmountType();\n if \"Amount Type\" <> xAmountType then\n Modify()\n@@ -791,4 +792,4 @@ table 7000 \"Price List Header\"\n local procedure OnUpdateDatesInLinesOnBeforePriceListLineModifyAllEndingDate(var PriceListLine: Record \"Price List Line\"; var PriceListHeader: Record \"Price List Header\")\n begin\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": null, "metrics": {"execution_time": 85.0, "llm_duration": null, "turn_count": 8, "prompt_tokens": 226400, "completion_tokens": 2600, "tool_usage": {"rg": 1, "glob": 2, "view": 12, "report_intent": 2, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-209450__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\nindex bb5d38d2..83af0003 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\n@@ -1074,6 +1074,8 @@ table 1003 \"Job Planning Line\"\n if Reserve <> Reserve::Never then begin\n TestField(Type, Type::Item);\n TestField(\"No.\");\n+ GetItem();\n+ Item.TestField(Type, Item.Type::Inventory);\n TestField(\"Usage Link\");\n end;\n CalcFields(\"Reserved Qty. (Base)\");\ndiff --git a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLineReserve.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLineReserve.Codeunit.al\nindex 9a2e42ec..74ea73ae 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLineReserve.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLineReserve.Codeunit.al\n@@ -6,6 +6,7 @@ using Microsoft.Inventory.Planning;\n using Microsoft.Inventory.Requisition;\n using Microsoft.Inventory.Tracking;\n using Microsoft.Inventory.Ledger;\n+using Microsoft.Inventory.Item;\n using Microsoft.Projects.Project.Job;\n using Microsoft.Foundation.Navigate;\n using Microsoft.Foundation.UOM;\n@@ -36,6 +37,7 @@ codeunit 1032 \"Job Planning Line-Reserve\"\n \n procedure CreateReservation(JobPlanningLine: Record \"Job Planning Line\"; Description: Text[100]; ExpectedReceiptDate: Date; Quantity: Decimal; QuantityBase: Decimal; ForReservEntry: Record \"Reservation Entry\")\n var\n+ Item: Record Item;\n PlanningDate: Date;\n SignFactor: Integer;\n begin\n@@ -45,6 +47,8 @@ codeunit 1032 \"Job Planning Line-Reserve\"\n JobPlanningLine.TestField(Type, JobPlanningLine.Type::Item);\n JobPlanningLine.TestField(\"No.\");\n JobPlanningLine.TestField(\"Planning Date\");\n+ Item.Get(JobPlanningLine.\"No.\");\n+ Item.TestField(Type, Item.Type::Inventory);\n \n JobPlanningLine.CalcFields(\"Reserved Qty. (Base)\");\n CheckReservedQtyBase(JobPlanningLine, QuantityBase);\n@@ -969,10 +973,13 @@ codeunit 1032 \"Job Planning Line-Reserve\"\n local procedure OnTestItemType(SourceRecRef: RecordRef)\n var\n JobPlanningLine: Record \"Job Planning Line\";\n+ Item: Record Item;\n begin\n if SourceRecRef.Number = Database::\"Job Planning Line\" then begin\n SourceRecRef.SetTable(JobPlanningLine);\n JobPlanningLine.TestField(Type, JobPlanningLine.Type::Item);\n+ Item.Get(JobPlanningLine.\"No.\");\n+ Item.TestField(Type, Item.Type::Inventory);\n end;\n end;\n \n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136302'\nCodeunit 136302 Job Consumption Purchase\n Testfunction PurchaseLineNotReservedWhenItemTypeNonInventory Failure (17.12 seconds)\n Error:\n Type must be equal to 'Inventory' in Item: No.=GL00000001. Current value is 'Non-Inventory'.\n Call Stack:\n \"Job Planning Line\"(Table 1003).\"Reserve - OnValidate\"(Trigger) line 6 - Base Application by Microsoft version 26.0.0.0\n \"Job Consumption Purchase\"(CodeUnit 136302).PurchaseLineNotReservedWhenItemTypeNonInventory line 33 - Tests-Job by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0", "metrics": {"execution_time": 156.0, "llm_duration": null, "turn_count": 16, "prompt_tokens": 599600, "completion_tokens": 6200, "tool_usage": {"rg": 12, "glob": 1, "report_intent": 2, "view": 16, "apply_patch": 2, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-209450__cf-2", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\nindex bb5d38d2..b2b41853 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\n@@ -1075,6 +1075,8 @@ table 1003 \"Job Planning Line\"\n TestField(Type, Type::Item);\n TestField(\"No.\");\n TestField(\"Usage Link\");\n+ GetItem();\n+ Item.TestField(Type, Item.Type::Inventory);\n end;\n CalcFields(\"Reserved Qty. (Base)\");\n if (Reserve = Reserve::Never) and (\"Reserved Qty. (Base)\" > 0) then\n@@ -1668,10 +1670,13 @@ table 1003 \"Job Planning Line\"\n \"Gen. Prod. Posting Group\" := Item.\"Gen. Prod. Posting Group\";\n Validate(\"Unit of Measure Code\", Item.\"Base Unit of Measure\");\n if \"Usage Link\" then\n- if Item.Reserve = Item.Reserve::Optional then\n- Reserve := Job.Reserve\n+ if Item.IsInventoriableType() then\n+ if Item.Reserve = Item.Reserve::Optional then\n+ Reserve := Job.Reserve\n+ else\n+ Reserve := Item.Reserve\n else\n- Reserve := Item.Reserve;\n+ Reserve := Reserve::Never;\n OnAfterCopyFromItem(Rec, Job, Item);\n end;\n \n@@ -2584,11 +2589,14 @@ table 1003 \"Job Planning Line\"\n FieldNo(\"Usage Link\"):\n if (Type = Type::Item) and \"Usage Link\" then begin\n GetItem();\n- if Item.Reserve = Item.Reserve::Optional then begin\n- GetJob();\n- Reserve := Job.Reserve\n- end else\n- Reserve := Item.Reserve;\n+ if Item.IsInventoriableType() then\n+ if Item.Reserve = Item.Reserve::Optional then begin\n+ GetJob();\n+ Reserve := Job.Reserve\n+ end else\n+ Reserve := Item.Reserve\n+ else\n+ Reserve := Reserve::Never;\n end else\n Reserve := Reserve::Never;\n end;\ndiff --git a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLineReserve.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLineReserve.Codeunit.al\nindex 9a2e42ec..c9dc5274 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLineReserve.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLineReserve.Codeunit.al\n@@ -1,6 +1,7 @@\n \ufeffnamespace Microsoft.Projects.Project.Planning;\n \n using Microsoft.Inventory.Journal;\n+using Microsoft.Inventory.Item;\n using Microsoft.Inventory.Location;\n using Microsoft.Inventory.Planning;\n using Microsoft.Inventory.Requisition;\n@@ -969,10 +970,13 @@ codeunit 1032 \"Job Planning Line-Reserve\"\n local procedure OnTestItemType(SourceRecRef: RecordRef)\n var\n JobPlanningLine: Record \"Job Planning Line\";\n+ Item: Record Item;\n begin\n if SourceRecRef.Number = Database::\"Job Planning Line\" then begin\n SourceRecRef.SetTable(JobPlanningLine);\n JobPlanningLine.TestField(Type, JobPlanningLine.Type::Item);\n+ Item.Get(JobPlanningLine.\"No.\");\n+ Item.TestField(Type, Item.Type::Inventory);\n end;\n end;\n \n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136302'\nCodeunit 136302 Job Consumption Purchase\n Testfunction PurchaseLineNotReservedWhenItemTypeService Failure (15.637 seconds)\n Error:\n Type must be equal to 'Inventory' in Item: No.=GL00000001. Current value is 'Service'.\n Call Stack:\n \"Job Planning Line\"(Table 1003).\"Reserve - OnValidate\"(Trigger) line 7 - Base Application by Microsoft version 26.0.0.0\n \"Job Consumption Purchase\"(CodeUnit 136302).PurchaseLineNotReservedWhenItemTypeService line 33 - Tests-Job by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0", "metrics": {"execution_time": 180.0, "llm_duration": null, "turn_count": 18, "prompt_tokens": 625500, "completion_tokens": 6600, "tool_usage": {"rg": 12, "glob": 2, "view": 20, "report_intent": 2, "apply_patch": 2, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-209496__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\nindex 10d284cc..d919a3b0 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\n@@ -116,6 +116,7 @@ page 835 \"Reminder Level Communication\"\n ReminderCommunication: Codeunit \"Reminder Communication\";\n Languages: Page \"Languages\";\n FilterText: Text;\n+ LocalGuid: Guid;\n begin\n FilterText := ReminderCommunication.GetListOfAttachmentLanguagesFromIdWithSeparator(Rec.\"Reminder Attachment Text\", DifferentOperatorTok);\n if FilterText <> '' then\n@@ -132,8 +133,16 @@ page 835 \"Reminder Level Communication\"\n LocalLanguage.FindFirst();\n \n // Necessary when the user has deleted all languages or has not created any language yet\n- if IsNullGuid(Rec.\"Reminder Attachment Text\") then\n- ReminderCommunication.SetDefaultContentForNewLanguage(CreateGuid(), LocalLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Level\", Rec.SystemId);\n+ if IsNullGuid(Rec.\"Reminder Attachment Text\") or IsNullGuid(Rec.\"Reminder Email Text\") then begin\n+ LocalGuid := Rec.\"Reminder Attachment Text\";\n+ if IsNullGuid(LocalGuid) then\n+ LocalGuid := Rec.\"Reminder Email Text\";\n+ if IsNullGuid(LocalGuid) then\n+ LocalGuid := CreateGuid();\n+\n+ ReminderCommunication.SetDefaultContentForNewLanguage(LocalGuid, LocalLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Level\", Rec.SystemId);\n+ Rec.GetBySystemId(Rec.SystemId);\n+ end;\n \n SelectedNewLanguage := true;\n SelectLanguageAndText(LocalLanguage.Code, true);\n@@ -323,4 +332,4 @@ page 835 \"Reminder Level Communication\"\n CurrPage.ReminderAttachmentTextPart.Page.SetSourceDataAsLevel(CurrentLanguage.Code);\n CurrPage.ReminderEmailTextPart.Page.SetSourceData(CurrentLanguage.Code);\n end;\n-}\n\\ No newline at end of file\n+}\ndiff --git a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al\nindex 5cce8ad7..86692205 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al\n@@ -109,6 +109,7 @@ page 1897 \"Reminder Term Communication\"\n ReminderCommunication: Codeunit \"Reminder Communication\";\n Languages: Page \"Languages\";\n FilterText: Text;\n+ LocalGuid: Guid;\n begin\n FilterText := ReminderCommunication.GetListOfAttachmentLanguagesFromIdWithSeparator(Rec.\"Reminder Attachment Text\", DifferentOperatorTok);\n if FilterText <> '' then\n@@ -125,8 +126,16 @@ page 1897 \"Reminder Term Communication\"\n LocalLanguage.FindFirst();\n \n // Necessary when the user has deleted all languages or has not created any language yet\n- if IsNullGuid(Rec.\"Reminder Attachment Text\") then\n- ReminderCommunication.SetDefaultContentForNewLanguage(CreateGuid(), LocalLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Term\", Rec.SystemId);\n+ if IsNullGuid(Rec.\"Reminder Attachment Text\") or IsNullGuid(Rec.\"Reminder Email Text\") then begin\n+ LocalGuid := Rec.\"Reminder Attachment Text\";\n+ if IsNullGuid(LocalGuid) then\n+ LocalGuid := Rec.\"Reminder Email Text\";\n+ if IsNullGuid(LocalGuid) then\n+ LocalGuid := CreateGuid();\n+\n+ ReminderCommunication.SetDefaultContentForNewLanguage(LocalGuid, LocalLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Term\", Rec.SystemId);\n+ Rec.GetBySystemId(Rec.SystemId);\n+ end;\n \n SelectedNewLanguage := true;\n SelectLanguageAndText(LocalLanguage.Code, true);\n@@ -316,4 +325,4 @@ page 1897 \"Reminder Term Communication\"\n CurrPage.ReminderAttachmentTextPart.Page.SetSourceDataAsTerm(CurrentLanguage.Code);\n CurrPage.ReminderEmailTextPart.Page.SetSourceData(CurrentLanguage.Code);\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": null, "metrics": {"execution_time": 129.0, "llm_duration": null, "turn_count": 11, "prompt_tokens": 272100, "completion_tokens": 5200, "tool_usage": {"rg": 6, "view": 7, "report_intent": 1, "apply_patch": 2, "powershell": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-209496__cf-2", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\nindex 10d284cc..da11240d 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\n@@ -116,6 +116,7 @@ page 835 \"Reminder Level Communication\"\n ReminderCommunication: Codeunit \"Reminder Communication\";\n Languages: Page \"Languages\";\n FilterText: Text;\n+ NewReminderCommunicationId: Guid;\n begin\n FilterText := ReminderCommunication.GetListOfAttachmentLanguagesFromIdWithSeparator(Rec.\"Reminder Attachment Text\", DifferentOperatorTok);\n if FilterText <> '' then\n@@ -132,8 +133,11 @@ page 835 \"Reminder Level Communication\"\n LocalLanguage.FindFirst();\n \n // Necessary when the user has deleted all languages or has not created any language yet\n- if IsNullGuid(Rec.\"Reminder Attachment Text\") then\n- ReminderCommunication.SetDefaultContentForNewLanguage(CreateGuid(), LocalLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Level\", Rec.SystemId);\n+ if IsNullGuid(Rec.\"Reminder Attachment Text\") then begin\n+ NewReminderCommunicationId := CreateGuid();\n+ ReminderCommunication.SetDefaultContentForNewLanguage(NewReminderCommunicationId, LocalLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Level\", Rec.SystemId);\n+ Rec.GetBySystemId(Rec.SystemId);\n+ end;\n \n SelectedNewLanguage := true;\n SelectLanguageAndText(LocalLanguage.Code, true);\n@@ -323,4 +327,4 @@ page 835 \"Reminder Level Communication\"\n CurrPage.ReminderAttachmentTextPart.Page.SetSourceDataAsLevel(CurrentLanguage.Code);\n CurrPage.ReminderEmailTextPart.Page.SetSourceData(CurrentLanguage.Code);\n end;\n-}\n\\ No newline at end of file\n+}\ndiff --git a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al\nindex 5cce8ad7..3c08e0c2 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al\n@@ -109,6 +109,7 @@ page 1897 \"Reminder Term Communication\"\n ReminderCommunication: Codeunit \"Reminder Communication\";\n Languages: Page \"Languages\";\n FilterText: Text;\n+ NewReminderCommunicationId: Guid;\n begin\n FilterText := ReminderCommunication.GetListOfAttachmentLanguagesFromIdWithSeparator(Rec.\"Reminder Attachment Text\", DifferentOperatorTok);\n if FilterText <> '' then\n@@ -125,8 +126,11 @@ page 1897 \"Reminder Term Communication\"\n LocalLanguage.FindFirst();\n \n // Necessary when the user has deleted all languages or has not created any language yet\n- if IsNullGuid(Rec.\"Reminder Attachment Text\") then\n- ReminderCommunication.SetDefaultContentForNewLanguage(CreateGuid(), LocalLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Term\", Rec.SystemId);\n+ if IsNullGuid(Rec.\"Reminder Attachment Text\") then begin\n+ NewReminderCommunicationId := CreateGuid();\n+ ReminderCommunication.SetDefaultContentForNewLanguage(NewReminderCommunicationId, LocalLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Term\", Rec.SystemId);\n+ Rec.GetBySystemId(Rec.SystemId);\n+ end;\n \n SelectedNewLanguage := true;\n SelectLanguageAndText(LocalLanguage.Code, true);\n@@ -316,4 +320,4 @@ page 1897 \"Reminder Term Communication\"\n CurrPage.ReminderAttachmentTextPart.Page.SetSourceDataAsTerm(CurrentLanguage.Code);\n CurrPage.ReminderEmailTextPart.Page.SetSourceData(CurrentLanguage.Code);\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": null, "metrics": {"execution_time": 107.0, "llm_duration": null, "turn_count": 9, "prompt_tokens": 258800, "completion_tokens": 3900, "tool_usage": {"rg": 5, "glob": 1, "report_intent": 1, "view": 5, "apply_patch": 2, "powershell": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-209835__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\nindex 78996b41..c1022b99 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\n@@ -466,6 +466,8 @@ report 99001020 \"Carry Out Action Msg. - Plan.\"\n end;\n \n local procedure SetReqLineFilters()\n+ var\n+ ActionMessageFilter: Text;\n begin\n if ReqLineFilters.GetFilters <> '' then\n \"Requisition Line\".CopyFilters(ReqLineFilters);\n@@ -473,7 +475,11 @@ report 99001020 \"Carry Out Action Msg. - Plan.\"\n if CurrReqWkshTemp <> '' then\n \"Requisition Line\".SetRange(\"Journal Batch Name\", CurrReqWkshName);\n \"Requisition Line\".SetRange(Type, \"Requisition Line\".Type::Item);\n- \"Requisition Line\".SetFilter(\"Action Message\", '<>%1', \"Requisition Line\".\"Action Message\"::\" \");\n+ ActionMessageFilter := \"Requisition Line\".GetFilter(\"Action Message\");\n+ if ActionMessageFilter = '' then\n+ \"Requisition Line\".SetFilter(\"Action Message\", '<>%1', \"Requisition Line\".\"Action Message\"::\" \")\n+ else\n+ \"Requisition Line\".SetFilter(\"Action Message\", '%1&<>%2', ActionMessageFilter, \"Requisition Line\".\"Action Message\"::\" \");\n OnAfterSetReqLineFilters(\"Requisition Line\");\n end;\n \n", "error_message": "Build or publish failed for App\\Layers\\W1\\BaseApp:\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Inventory\\Requisition\\CarryOutActionMsgPlan.Report.al(482,71): error AL0193: Argument 3: cannot convert from 'Text' to the type of Argument 1 'Enum Microsoft.Inventory.Tracking.\"Action Message Type\"'", "metrics": {"execution_time": 122.0, "llm_duration": null, "turn_count": 9, "prompt_tokens": 235000, "completion_tokens": 3400, "tool_usage": {"rg": 5, "glob": 1, "report_intent": 2, "view": 11, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": false} +{"instance_id": "microsoftInternal__NAV-209835__cf-2", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\nindex 78996b41..43c6dbb9 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\n@@ -473,7 +473,8 @@ report 99001020 \"Carry Out Action Msg. - Plan.\"\n if CurrReqWkshTemp <> '' then\n \"Requisition Line\".SetRange(\"Journal Batch Name\", CurrReqWkshName);\n \"Requisition Line\".SetRange(Type, \"Requisition Line\".Type::Item);\n- \"Requisition Line\".SetFilter(\"Action Message\", '<>%1', \"Requisition Line\".\"Action Message\"::\" \");\n+ if \"Requisition Line\".GetFilter(\"Action Message\") = '' then\n+ \"Requisition Line\".SetFilter(\"Action Message\", '<>%1', \"Requisition Line\".\"Action Message\"::\" \");\n OnAfterSetReqLineFilters(\"Requisition Line\");\n end;\n \n", "error_message": null, "metrics": {"execution_time": 88.0, "llm_duration": null, "turn_count": 8, "prompt_tokens": 240500, "completion_tokens": 2600, "tool_usage": {"rg": 6, "report_intent": 2, "view": 6, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-210200__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Service/Item/StandardServiceItemGrCode.Table.al b/App/Layers/W1/BaseApp/Service/Item/StandardServiceItemGrCode.Table.al\nindex 33f69be4..aab06b77 100644\n--- a/App/Layers/W1/BaseApp/Service/Item/StandardServiceItemGrCode.Table.al\n+++ b/App/Layers/W1/BaseApp/Service/Item/StandardServiceItemGrCode.Table.al\n@@ -160,6 +160,8 @@ table 5998 \"Standard Service Item Gr. Code\"\n OnBeforeInsertServLine(ServLine);\n ServLine.Insert(true);\n InsertExtendedText(ServLine);\n+ if (ServLine.Type = ServLine.Type::Item) and (ServLine.Reserve = ServLine.Reserve::Always) and (ServLine.\"Outstanding Qty. (Base)\" <> 0) then\n+ ServLine.AutoReserve(false);\n end;\n until StdServLine.Next() = 0;\n end;\n", "error_message": null, "metrics": {"execution_time": 194.0, "llm_duration": null, "turn_count": 19, "prompt_tokens": 840100, "completion_tokens": 5800, "tool_usage": {"rg": 15, "report_intent": 1, "view": 18, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-210200__cf-2", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Service/Item/StandardServiceItemGrCode.Table.al b/App/Layers/W1/BaseApp/Service/Item/StandardServiceItemGrCode.Table.al\nindex 33f69be4..c34ed9bf 100644\n--- a/App/Layers/W1/BaseApp/Service/Item/StandardServiceItemGrCode.Table.al\n+++ b/App/Layers/W1/BaseApp/Service/Item/StandardServiceItemGrCode.Table.al\n@@ -159,6 +159,8 @@ table 5998 \"Standard Service Item Gr. Code\"\n ServLine.\"Line No.\" := ServLine.GetLineNo();\n OnBeforeInsertServLine(ServLine);\n ServLine.Insert(true);\n+ if (ServLine.Reserve = ServLine.Reserve::Always) and (ServLine.\"Outstanding Qty. (Base)\" <> 0) then\n+ ServLine.AutoReserve(false);\n InsertExtendedText(ServLine);\n end;\n until StdServLine.Next() = 0;\n", "error_message": null, "metrics": {"execution_time": 239.0, "llm_duration": null, "turn_count": 22, "prompt_tokens": 849400, "completion_tokens": 6200, "tool_usage": {"glob": 9, "rg": 12, "report_intent": 19, "view": 32, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-210528__cf-1", "project": "Sustainability", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al b/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al\nindex 335c0099..02c95b28 100644\n--- a/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al\n+++ b/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al\n@@ -148,9 +148,13 @@ table 6217 \"Sustainability Setup\"\n \n trigger OnValidate()\n begin\n- if Rec.\"Enable Value Chain Tracking\" then\n+ if Rec.\"Enable Value Chain Tracking\" and not xRec.\"Enable Value Chain Tracking\" then begin\n if not ConfirmManagement.GetResponseOrDefault(ConfirmEnableValueChainTrackingQst, false) then\n Error('');\n+ Rec.\"Use Emissions In Purch. Doc.\" := true;\n+ Rec.\"Item Emissions\" := true;\n+ Rec.\"Resource Emissions\" := true;\n+ end;\n end;\n }\n }\n@@ -241,4 +245,4 @@ table 6217 \"Sustainability Setup\"\n if not Get() then\n Insert();\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": null, "metrics": {"execution_time": 58.0, "llm_duration": null, "turn_count": 6, "prompt_tokens": 128900, "completion_tokens": 1500, "tool_usage": {"rg": 2, "view": 3, "report_intent": 2, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-211521__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al b/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\nindex 401cabee..c6193b76 100644\n--- a/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\n+++ b/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\n@@ -565,8 +565,7 @@ table 5050 Contact\n {\n CalcFormula = min(\"To-do\".Date where(\"Contact Company No.\" = field(\"Company No.\"),\n \"Contact No.\" = field(filter(\"Lookup Contact No.\")),\n- Closed = const(false),\n- \"System To-do Type\" = const(\"Contact Attendee\")));\n+ Closed = const(false)));\n Caption = 'Next Task Date';\n Editable = false;\n FieldClass = FlowField;\n@@ -3926,4 +3925,4 @@ table 5050 Contact\n local procedure OnShowBusinessRelationOnAfterFilterBusinessRelations(var Rec: Record Contact; var ContactBusinessRelation: Record \"Contact Business Relation\"; ContactBusinessRelationLinkToTable: Enum \"Contact Business Relation Link To Table\"; All: Boolean)\n begin\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": null, "metrics": {"execution_time": 100.0, "llm_duration": null, "turn_count": 13, "prompt_tokens": 234600, "completion_tokens": 2700, "tool_usage": {"rg": 7, "glob": 1, "report_intent": 3, "view": 7, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-211521__cf-2", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al b/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\nindex 401cabee..c6193b76 100644\n--- a/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\n+++ b/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\n@@ -565,8 +565,7 @@ table 5050 Contact\n {\n CalcFormula = min(\"To-do\".Date where(\"Contact Company No.\" = field(\"Company No.\"),\n \"Contact No.\" = field(filter(\"Lookup Contact No.\")),\n- Closed = const(false),\n- \"System To-do Type\" = const(\"Contact Attendee\")));\n+ Closed = const(false)));\n Caption = 'Next Task Date';\n Editable = false;\n FieldClass = FlowField;\n@@ -3926,4 +3925,4 @@ table 5050 Contact\n local procedure OnShowBusinessRelationOnAfterFilterBusinessRelations(var Rec: Record Contact; var ContactBusinessRelation: Record \"Contact Business Relation\"; ContactBusinessRelationLinkToTable: Enum \"Contact Business Relation Link To Table\"; All: Boolean)\n begin\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": null, "metrics": {"execution_time": 108.0, "llm_duration": null, "turn_count": 8, "prompt_tokens": 168700, "completion_tokens": 2500, "tool_usage": {"rg": 7, "glob": 1, "view": 4, "report_intent": 2, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-213671__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al b/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\nindex c70c6c1e..d63a5c01 100644\n--- a/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\n+++ b/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\n@@ -625,11 +625,15 @@ page 5123 \"Opportunity List\"\n RecRef: RecordRef;\n IndexFieldRef: FieldRef;\n TextFieldRef: FieldRef;\n+ MaxFieldLength: Integer;\n begin\n Filter := DelChr(Filter, '<>', '''');\n if Filter <> '' then begin\n RecRef.GetTable(RecVar);\n IndexFieldRef := RecRef.Field(IndexFieldNo);\n+ MaxFieldLength := IndexFieldRef.Length();\n+ if StrLen(Filter) > MaxFieldLength then\n+ Filter := CopyStr(Filter, 1, MaxFieldLength);\n IndexFieldRef.SetRange(Filter);\n if RecRef.FindFirst() then begin\n TextFieldRef := RecRef.Field(TextFieldNo);\n", "error_message": null, "metrics": {"execution_time": 97.0, "llm_duration": null, "turn_count": 9, "prompt_tokens": 204000, "completion_tokens": 3500, "tool_usage": {"rg": 8, "glob": 1, "view": 5, "report_intent": 3, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-213671__cf-2", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al b/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\nindex c70c6c1e..81667180 100644\n--- a/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\n+++ b/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\n@@ -630,7 +630,7 @@ page 5123 \"Opportunity List\"\n if Filter <> '' then begin\n RecRef.GetTable(RecVar);\n IndexFieldRef := RecRef.Field(IndexFieldNo);\n- IndexFieldRef.SetRange(Filter);\n+ IndexFieldRef.SetFilter(Filter);\n if RecRef.FindFirst() then begin\n TextFieldRef := RecRef.Field(TextFieldNo);\n CaptionText := CopyStr(Format(IndexFieldRef.Value) + ' ' + Format(TextFieldRef.Value), 1, MaxStrLen(CaptionText));\n", "error_message": null, "metrics": {"execution_time": 61.0, "llm_duration": null, "turn_count": 6, "prompt_tokens": 100200, "completion_tokens": 1500, "tool_usage": {"rg": 1, "view": 4, "report_intent": 1, "apply_patch": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-213683__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al\nindex 9735e4b2..bbcd8d3c 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al\n@@ -177,6 +177,9 @@ codeunit 99000795 \"Mfg. Item Integration\"\n ProdOrderLine: Record \"Prod. Order Line\";\n begin\n if xRec.\"Item No.\" <> Rec.\"Item No.\" then begin\n+ if IsItemNoRenamedOnParentItemRename(xRec.\"Item No.\", Rec.\"Item No.\") then\n+ exit;\n+\n ProdOrderLine.SetRange(\"Item No.\", xRec.\"Item No.\");\n ProdOrderLine.SetRange(\"Variant Code\", xRec.Code);\n if not ProdOrderLine.IsEmpty() then\n@@ -242,6 +245,20 @@ codeunit 99000795 \"Mfg. Item Integration\"\n end;\n end;\n \n+ local procedure IsItemNoRenamedOnParentItemRename(OldItemNo: Code[20]; NewItemNo: Code[20]): Boolean\n+ var\n+ OldItem: Record Item;\n+ NewItem: Record Item;\n+ begin\n+ if (OldItemNo = '') or (NewItemNo = '') or (OldItemNo = NewItemNo) then\n+ exit(false);\n+\n+ if OldItem.Get(OldItemNo) then\n+ exit(false);\n+\n+ exit(NewItem.Get(NewItemNo));\n+ end;\n+\n // Item Unit of Measure\n \n [EventSubscriber(ObjectType::Table, Database::\"Item Unit of Measure\", 'OnAfterCheckNoOutstandingQty', '', false, false)]\n", "error_message": null, "metrics": {"execution_time": 155.0, "llm_duration": null, "turn_count": 15, "prompt_tokens": 460800, "completion_tokens": 4800, "tool_usage": {"rg": 12, "glob": 2, "view": 11, "report_intent": 3, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-214557__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/ReservationManagement.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Tracking/ReservationManagement.Codeunit.al\nindex 605c2077..465a9834 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/ReservationManagement.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/ReservationManagement.Codeunit.al\n@@ -1536,6 +1536,9 @@ codeunit 99000845 \"Reservation Management\"\n Found := true;\n end;\n \n+ if not Found then\n+ Found := TryFindProdOrderSupplyForComponentDemand(SurplusEntry, ReservEntry);\n+\n if Found then begin\n ActionMessageEntry.TransferFromReservEntry(ReservEntry);\n ActionMessageEntry.Type := ActionMessageEntry.Type::\"Change Qty.\";\n@@ -1589,6 +1592,32 @@ codeunit 99000845 \"Reservation Management\"\n ActionMessageEntry.\"Entry No.\" += 1;\n end;\n \n+ local procedure TryFindProdOrderSupplyForComponentDemand(SurplusEntry: Record \"Reservation Entry\"; var ReservEntry: Record \"Reservation Entry\"): Boolean\n+ begin\n+ if not (\n+ (SurplusEntry.Binding = SurplusEntry.Binding::\"Order-to-Order\") and\n+ (SurplusEntry.\"Source Type\" = 5407) and // Database::\"Prod. Order Component\"\n+ (SurplusEntry.\"Source ID\" <> '') and\n+ (SurplusEntry.\"Source Prod. Order Line\" <> 0))\n+ then\n+ exit(false);\n+\n+ ReservEntry.Reset();\n+ ReservEntry.SetCurrentKey(\n+ \"Source ID\", \"Source Ref. No.\", \"Source Type\", \"Source Subtype\",\n+ \"Source Batch Name\", \"Source Prod. Order Line\", \"Reservation Status\", \"Shipment Date\", \"Expected Receipt Date\");\n+ ReservEntry.SetRange(\"Source Type\", 5406); // Database::\"Prod. Order Line\"\n+ ReservEntry.SetRange(\"Source Subtype\", SurplusEntry.\"Source Subtype\");\n+ ReservEntry.SetRange(\"Source ID\", SurplusEntry.\"Source ID\");\n+ ReservEntry.SetRange(\"Source Prod. Order Line\", SurplusEntry.\"Source Prod. Order Line\");\n+ ReservEntry.SetRange(\"Item No.\", SurplusEntry.\"Item No.\");\n+ ReservEntry.SetRange(\"Variant Code\", SurplusEntry.\"Variant Code\");\n+ ReservEntry.SetRange(\"Location Code\", SurplusEntry.\"Location Code\");\n+ ReservEntry.SetRange(\"Planning Flexibility\", ReservEntry.\"Planning Flexibility\"::Unlimited);\n+ ReservEntry.SetRange(Positive, true);\n+ exit(ReservEntry.FindFirst());\n+ end;\n+\n procedure ModifyActionMessage(RelatedToEntryNo: Integer; Quantity: Decimal; DoDelete: Boolean)\n var\n ActionMessageEntry: Record \"Action Message Entry\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137075'\nCodeunit 137075 SCM Planning Order Tracking\n Testfunction ReqLineIsNotCreatedWhenCalcRegenPlanForCompItemPresentInRelProdOrder Failure (8.797 seconds)\n Error:\n Assert.IsTrue failed. The requisition line for location should not exist\n Call Stack:\n Assert(CodeUnit 130000).IsTrue line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"SCM Planning Order Tracking\"(CodeUnit 137075).ReqLineIsNotCreatedWhenCalcRegenPlanForCompItemPresentInRelProdOrder line 58 - Tests-SCM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0", "metrics": {"execution_time": 281.0, "llm_duration": null, "turn_count": 27, "prompt_tokens": 1600000, "completion_tokens": 10400, "tool_usage": {"rg": 20, "glob": 5, "report_intent": 4, "view": 29, "apply_patch": 1, "powershell": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-214825__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\nindex 604bb915..36cdaf05 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\n@@ -73,7 +73,9 @@ codeunit 1018 \"Purchase Doc. From Job\"\n SelectionFilterMgt: Codeunit System.Text.SelectionFilterManagement;\n RecRef: RecordRef;\n begin\n+ Clear(ContractEntryNoFilter);\n JobPlanningLine.SetLoadFields(\"Job Contract Entry No.\");\n+ JobPlanningLine.SetCurrentKey(\"Job Contract Entry No.\");\n JobPlanningLine.SetRange(\"Job No.\", JobTask.\"Job No.\");\n JobPlanningLine.SetRange(\"Job Task No.\", JobTask.\"Job Task No.\");\n if JobPlanningLine.IsEmpty() then\n", "error_message": null, "metrics": {"execution_time": 115.0, "llm_duration": null, "turn_count": 11, "prompt_tokens": 302500, "completion_tokens": 3200, "tool_usage": {"rg": 5, "glob": 1, "view": 8, "report_intent": 1, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-214825__cf-2", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\nindex 604bb915..36cdaf05 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\n@@ -73,7 +73,9 @@ codeunit 1018 \"Purchase Doc. From Job\"\n SelectionFilterMgt: Codeunit System.Text.SelectionFilterManagement;\n RecRef: RecordRef;\n begin\n+ Clear(ContractEntryNoFilter);\n JobPlanningLine.SetLoadFields(\"Job Contract Entry No.\");\n+ JobPlanningLine.SetCurrentKey(\"Job Contract Entry No.\");\n JobPlanningLine.SetRange(\"Job No.\", JobTask.\"Job No.\");\n JobPlanningLine.SetRange(\"Job Task No.\", JobTask.\"Job Task No.\");\n if JobPlanningLine.IsEmpty() then\n", "error_message": null, "metrics": {"execution_time": 90.0, "llm_duration": null, "turn_count": 8, "prompt_tokens": 175600, "completion_tokens": 2300, "tool_usage": {"rg": 6, "view": 6, "apply_patch": 1, "report_intent": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-214926__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al b/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\nindex ebeb6ca1..f7537b65 100644\n--- a/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\n@@ -2345,11 +2345,9 @@ table 18 Customer\n \n local procedure GetTotalAmountLCYCommon(): Decimal\n var\n- [SecurityFiltering(SecurityFilter::Filtered)]\n- SalesLine: Record \"Sales Line\";\n- SalesOutstandingAmountFromShipment: Decimal;\n InvoicedPrepmtAmountLCY: Decimal;\n RetRcdNotInvAmountLCY: Decimal;\n+ ShippedOutstandingInvoicesLCY: Decimal;\n AdditionalAmountLCY: Decimal;\n IsHandled: Boolean;\n TotalAmountLCY: Decimal;\n@@ -2359,18 +2357,27 @@ table 18 Customer\n if IsHandled then\n exit(AdditionalAmountLCY);\n \n- SalesOutstandingAmountFromShipment := SalesLine.OutstandingInvoiceAmountFromShipment(\"No.\");\n+ ShippedOutstandingInvoicesLCY := GetShippedOutstandingInvoicesLCY();\n InvoicedPrepmtAmountLCY := GetInvoicedPrepmtAmountLCY();\n RetRcdNotInvAmountLCY := GetReturnRcdNotInvAmountLCY();\n \n TotalAmountLCY :=\n- \"Balance (LCY)\" + \"Outstanding Orders (LCY)\" + \"Shipped Not Invoiced (LCY)\" + \"Outstanding Invoices (LCY)\" +\n- SalesOutstandingAmountFromShipment - InvoicedPrepmtAmountLCY - RetRcdNotInvAmountLCY + AdditionalAmountLCY;\n+ \"Balance (LCY)\" + \"Outstanding Orders (LCY)\" + \"Shipped Not Invoiced (LCY)\" +\n+ (\"Outstanding Invoices (LCY)\" - ShippedOutstandingInvoicesLCY) -\n+ InvoicedPrepmtAmountLCY - RetRcdNotInvAmountLCY + AdditionalAmountLCY;\n \n OnAfterGetTotalAmountLCYCommon(Rec, TotalAmountLCY);\n exit(TotalAmountLCY);\n end;\n \n+ local procedure GetShippedOutstandingInvoicesLCY(): Decimal\n+ var\n+ [SecurityFiltering(SecurityFilter::Filtered)]\n+ SalesLine: Record \"Sales Line\";\n+ begin\n+ exit(SalesLine.OutstandingInvoiceAmountFromShipment(\"No.\"));\n+ end;\n+\n procedure GetSalesLCY() SalesLCY: Decimal\n var\n CustomerSalesYTD: Record Customer;\n", "error_message": null, "metrics": {"execution_time": 91.0, "llm_duration": null, "turn_count": 8, "prompt_tokens": 166300, "completion_tokens": 3100, "tool_usage": {"rg": 5, "report_intent": 3, "view": 7, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-215972__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\nindex 9ab054c5..2f6bf93e 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\n@@ -1584,6 +1584,7 @@ table 5741 \"Transfer Line\"\n procedure ShowReservation()\n var\n OptionNumber: Integer;\n+ Direction: Enum \"Transfer Direction\";\n IsHandled: Boolean;\n begin\n IsHandled := false;\n@@ -1595,7 +1596,9 @@ table 5741 \"Transfer Line\"\n Clear(Reservation);\n OptionNumber := StrMenu(Text011);\n if OptionNumber > 0 then begin\n- Reservation.SetReservSource(Rec, Enum::\"Transfer Direction\".FromInteger(OptionNumber - 1));\n+ Direction := Enum::\"Transfer Direction\".FromInteger(OptionNumber - 1);\n+ CheckReservationPolicy(Direction);\n+ Reservation.SetReservSource(Rec, Direction);\n Reservation.RunModal();\n end;\n \n@@ -2018,6 +2021,7 @@ table 5741 \"Transfer Line\"\n TransLine.SetAutoCalcFields(\"Reserved Quantity Outbnd.\", \"Reserved Qty. Outbnd. (Base)\");\n if TransLine.FindSet() then\n repeat\n+ TransLine.CheckReservationPolicy(Enum::\"Transfer Direction\"::Outbound);\n SourceRecRef.GetTable(TransLine);\n ReservMgt.SetReservSource(SourceRecRef);\n TransLine.TestField(\"Shipment Date\");\n@@ -2030,6 +2034,15 @@ table 5741 \"Transfer Line\"\n until TransLine.Next() = 0;\n end;\n \n+ local procedure CheckReservationPolicy(Direction: Enum \"Transfer Direction\")\n+ begin\n+ if (Direction <> Direction::Outbound) or (\"Qty. to Ship\" <= 0) then\n+ exit;\n+\n+ GetItem();\n+ Item.TestField(Reserve);\n+ end;\n+\n /// \n /// Determines if the dimensions of already shipped transfer line have been changed.\n /// \n", "error_message": "Build or publish failed for App\\Layers\\W1\\BaseApp:\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Inventory\\Transfer\\TransferLine.Table.al(2024,27): error AL0161: 'CheckReservationPolicy(Enum Microsoft.Foundation.Enums.\"Transfer Direction\")' is inaccessible due to its protection level", "metrics": {"execution_time": 180.0, "llm_duration": null, "turn_count": 17, "prompt_tokens": 767800, "completion_tokens": 6900, "tool_usage": {"rg": 16, "glob": 1, "report_intent": 2, "view": 22, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": false} +{"instance_id": "microsoftInternal__NAV-215972__cf-2", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\nindex 9ab054c5..11f6aa91 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\n@@ -1584,6 +1584,7 @@ table 5741 \"Transfer Line\"\n procedure ShowReservation()\n var\n OptionNumber: Integer;\n+ Direction: Enum \"Transfer Direction\";\n IsHandled: Boolean;\n begin\n IsHandled := false;\n@@ -1595,7 +1596,12 @@ table 5741 \"Transfer Line\"\n Clear(Reservation);\n OptionNumber := StrMenu(Text011);\n if OptionNumber > 0 then begin\n- Reservation.SetReservSource(Rec, Enum::\"Transfer Direction\".FromInteger(OptionNumber - 1));\n+ Direction := Enum::\"Transfer Direction\".FromInteger(OptionNumber - 1);\n+ if (Direction = Direction::Outbound) and (\"Qty. to Ship\" > 0) then begin\n+ GetItem();\n+ Item.TestField(Reserve);\n+ end;\n+ Reservation.SetReservSource(Rec, Direction);\n Reservation.RunModal();\n end;\n \n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137140'\nCodeunit 137140 SCM Inventory Documents\n Testfunction ReservationShouldNotPossibleOnTransferOrderIfItemReserveSetAsNever Failure (7.04 seconds)\n Error:\n Assert.ExpectedErrorCode failed. Expected: TestField. Actual: MissingUIHandler. Actual error message: Unhandled UI: StrMenu Outbound,Inbound.\n Call Stack:\n Assert(CodeUnit 130000).ExpectedErrorCode line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"SCM Inventory Documents\"(CodeUnit 137140).ReservationShouldNotPossibleOnTransferOrderIfItemReserveSetAsNever line 33 - Tests-SCM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0", "metrics": {"execution_time": 277.0, "llm_duration": null, "turn_count": 31, "prompt_tokens": 1300000, "completion_tokens": 9300, "tool_usage": {"glob": 8, "view": 27, "rg": 31, "report_intent": 3, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-216572__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al\nindex 130b3e0f..5fa8ef5d 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al\n@@ -669,6 +669,7 @@ table 221 \"Gen. Jnl. Allocation\"\n begin\n Rec.Validate(\"Account No.\", AllocAccountDistribution.\"Destination Account Number\");\n Rec.Validate(\"Allocation %\", AllocAccountDistribution.Percent);\n+ Rec.Validate(\"Dimension Set ID\", AllocAccountDistribution.\"Dimension Set ID\");\n end;\n \n local procedure CheckGLAccount(var GLAccount: Record \"G/L Account\")\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134227'\nCodeunit 134227 ERM PostRecurringJournal\n Testfunction CheckDimensionOfRecurringJournalImportAllocationFromAllocationAccount Failure (4.907 seconds)\n Error:\n Assert.AreEqual failed. Expected:<0> (Integer). Actual:<19> (Integer). Allocation dimension is not correct.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"ERM PostRecurringJournal\"(CodeUnit 134227).VerifyGenJnlAllocationDimension line 7 - Tests-ERM by Microsoft version 27.0.0.0\n \"ERM PostRecurringJournal\"(CodeUnit 134227).CheckDimensionOfRecurringJournalImportAllocationFromAllocationAccount line 36 - Tests-ERM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0", "metrics": {"execution_time": 132.0, "llm_duration": null, "turn_count": 15, "prompt_tokens": 581300, "completion_tokens": 4000, "tool_usage": {"rg": 15, "report_intent": 2, "glob": 4, "view": 9, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-216918__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\nindex d541dd08..4927dcf2 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\n@@ -451,6 +451,8 @@ codeunit 1004 \"Job Transfer Line\"\n Job: Record Job;\n JobTask: Record \"Job Task\";\n NonDeductibleVAT: Codeunit \"Non-Deductible VAT\";\n+ NonDeductibleVATAmountLCY: Decimal;\n+ NonDeductibleVATAmount: Decimal;\n begin\n OnBeforeFromGenJnlLineToJnlLine(JobJnlLine, GenJnlLine);\n \n@@ -498,19 +500,31 @@ codeunit 1004 \"Job Transfer Line\"\n JobJnlLine.\"Total Cost (LCY)\" := GenJnlLine.\"Job Total Cost (LCY)\";\n JobJnlLine.\"Total Cost\" := GenJnlLine.\"Job Total Cost\";\n \n- if NonDeductibleVAT.UseNonDeductibleVATAmountForJobCost() then\n+ if NonDeductibleVAT.UseNonDeductibleVATAmountForJobCost() and (JobJnlLine.\"Currency Code\" <> '') then begin\n+ Currency.Get(JobJnlLine.\"Currency Code\");\n+ Currency.TestField(\"Amount Rounding Precision\");\n+ LCYCurrency.InitRoundingPrecision();\n+ NonDeductibleVATAmountLCY := GenJnlLine.\"Non-Deductible VAT Amount LCY\";\n+ NonDeductibleVATAmount :=\n+ Round(\n+ CurrencyExchRate.ExchangeAmtLCYToFCY(\n+ GenJnlLine.\"Posting Date\",\n+ JobJnlLine.\"Currency Code\",\n+ NonDeductibleVATAmountLCY,\n+ JobJnlLine.\"Currency Factor\"),\n+ Currency.\"Amount Rounding Precision\");\n+\n if JobJnlLine.\"Unit Cost\" > 0 then begin\n- JobJnlLine.\"Unit Cost (LCY)\" += Abs(Round(GenJnlLine.\"Non-Deductible VAT Amount LCY\" / JobJnlLine.Quantity));\n- JobJnlLine.\"Unit Cost\" += Abs(Round(GenJnlLine.\"Non-Deductible VAT Amount\" / JobJnlLine.Quantity));\n- JobJnlLine.\"Total Cost (LCY)\" += Abs(GenJnlLine.\"Non-Deductible VAT Amount LCY\");\n- JobJnlLine.\"Total Cost\" += Abs(GenJnlLine.\"Non-Deductible VAT Amount\");\n- end else begin\n- JobJnlLine.\"Unit Cost (LCY)\" += Round(GenJnlLine.\"Non-Deductible VAT Amount LCY\" / JobJnlLine.Quantity);\n- JobJnlLine.\"Unit Cost\" += Round(GenJnlLine.\"Non-Deductible VAT Amount\" / JobJnlLine.Quantity);\n- JobJnlLine.\"Total Cost (LCY)\" += GenJnlLine.\"Non-Deductible VAT Amount LCY\";\n- JobJnlLine.\"Total Cost\" += GenJnlLine.\"Non-Deductible VAT Amount\";\n+ NonDeductibleVATAmountLCY := Abs(NonDeductibleVATAmountLCY);\n+ NonDeductibleVATAmount := Abs(NonDeductibleVATAmount);\n end;\n \n+ JobJnlLine.\"Unit Cost (LCY)\" += Round(NonDeductibleVATAmountLCY / JobJnlLine.Quantity, LCYCurrency.\"Unit-Amount Rounding Precision\");\n+ JobJnlLine.\"Unit Cost\" += Round(NonDeductibleVATAmount / JobJnlLine.Quantity, Currency.\"Unit-Amount Rounding Precision\");\n+ JobJnlLine.\"Total Cost (LCY)\" += NonDeductibleVATAmountLCY;\n+ JobJnlLine.\"Total Cost\" += NonDeductibleVATAmount;\n+ end;\n+\n JobJnlLine.\"Unit Price (LCY)\" := GenJnlLine.\"Job Unit Price (LCY)\";\n JobJnlLine.\"Unit Price\" := GenJnlLine.\"Job Unit Price\";\n \n", "error_message": null, "metrics": {"execution_time": 218.0, "llm_duration": null, "turn_count": 19, "prompt_tokens": 823900, "completion_tokens": 8000, "tool_usage": {"rg": 16, "glob": 4, "report_intent": 15, "view": 18, "apply_patch": 2, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-216918__cf-2", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\nindex d541dd08..1b004268 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\n@@ -451,6 +451,8 @@ codeunit 1004 \"Job Transfer Line\"\n Job: Record Job;\n JobTask: Record \"Job Task\";\n NonDeductibleVAT: Codeunit \"Non-Deductible VAT\";\n+ NonDeductibleVATAmount: Decimal;\n+ NonDeductibleVATAmountLCY: Decimal;\n begin\n OnBeforeFromGenJnlLineToJnlLine(JobJnlLine, GenJnlLine);\n \n@@ -498,18 +500,16 @@ codeunit 1004 \"Job Transfer Line\"\n JobJnlLine.\"Total Cost (LCY)\" := GenJnlLine.\"Job Total Cost (LCY)\";\n JobJnlLine.\"Total Cost\" := GenJnlLine.\"Job Total Cost\";\n \n- if NonDeductibleVAT.UseNonDeductibleVATAmountForJobCost() then\n- if JobJnlLine.\"Unit Cost\" > 0 then begin\n- JobJnlLine.\"Unit Cost (LCY)\" += Abs(Round(GenJnlLine.\"Non-Deductible VAT Amount LCY\" / JobJnlLine.Quantity));\n- JobJnlLine.\"Unit Cost\" += Abs(Round(GenJnlLine.\"Non-Deductible VAT Amount\" / JobJnlLine.Quantity));\n- JobJnlLine.\"Total Cost (LCY)\" += Abs(GenJnlLine.\"Non-Deductible VAT Amount LCY\");\n- JobJnlLine.\"Total Cost\" += Abs(GenJnlLine.\"Non-Deductible VAT Amount\");\n- end else begin\n- JobJnlLine.\"Unit Cost (LCY)\" += Round(GenJnlLine.\"Non-Deductible VAT Amount LCY\" / JobJnlLine.Quantity);\n- JobJnlLine.\"Unit Cost\" += Round(GenJnlLine.\"Non-Deductible VAT Amount\" / JobJnlLine.Quantity);\n- JobJnlLine.\"Total Cost (LCY)\" += GenJnlLine.\"Non-Deductible VAT Amount LCY\";\n- JobJnlLine.\"Total Cost\" += GenJnlLine.\"Non-Deductible VAT Amount\";\n- end;\n+ if NonDeductibleVAT.UseNonDeductibleVATAmountForJobCost() and (JobJnlLine.Quantity <> 0) then begin\n+ NonDeductibleVATAmountLCY := GenJnlLine.\"Non-Deductible VAT Amount LCY\";\n+ NonDeductibleVATAmount := ConvertAmountToJobCurrency(GenJnlLine.\"Non-Deductible VAT Amount\", GenJnlLine);\n+\n+ GetNonDeductibleVATAmtPerUnitCost(JobJnlLine, NonDeductibleVATAmountLCY, NonDeductibleVATAmount);\n+ JobJnlLine.\"Unit Cost (LCY)\" += Round(NonDeductibleVATAmountLCY / JobJnlLine.Quantity);\n+ JobJnlLine.\"Unit Cost\" += Round(NonDeductibleVATAmount / JobJnlLine.Quantity);\n+ JobJnlLine.\"Total Cost (LCY)\" += NonDeductibleVATAmountLCY;\n+ JobJnlLine.\"Total Cost\" += NonDeductibleVATAmount;\n+ end;\n \n JobJnlLine.\"Unit Price (LCY)\" := GenJnlLine.\"Job Unit Price (LCY)\";\n JobJnlLine.\"Unit Price\" := GenJnlLine.\"Job Unit Price\";\n@@ -886,6 +886,32 @@ codeunit 1004 \"Job Transfer Line\"\n end;\n end;\n \n+ local procedure ConvertAmountToJobCurrency(Amount: Decimal; GenJnlLine: Record \"Gen. Journal Line\"): Decimal\n+ var\n+ JobCurrency: Record Currency;\n+ OverallCurrencyFactor: Decimal;\n+ begin\n+ if GenJnlLine.\"Currency Factor\" = 0 then begin\n+ if GenJnlLine.\"Job Currency Factor\" = 0 then\n+ OverallCurrencyFactor := 1\n+ else\n+ OverallCurrencyFactor := GenJnlLine.\"Job Currency Factor\";\n+ end else\n+ if GenJnlLine.\"Job Currency Factor\" = 0 then\n+ OverallCurrencyFactor := 1 / GenJnlLine.\"Currency Factor\"\n+ else\n+ OverallCurrencyFactor := GenJnlLine.\"Job Currency Factor\" / GenJnlLine.\"Currency Factor\";\n+\n+ if GenJnlLine.\"Job Currency Code\" = '' then\n+ JobCurrency.InitRoundingPrecision()\n+ else begin\n+ JobCurrency.Get(GenJnlLine.\"Job Currency Code\");\n+ JobCurrency.TestField(\"Amount Rounding Precision\");\n+ end;\n+\n+ exit(Round(Amount * OverallCurrencyFactor, JobCurrency.\"Amount Rounding Precision\"));\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnAfterIsCreatedFromJob(var SalesLine: Record \"Sales Line\"; var Result: Boolean)\n begin\n", "error_message": null, "metrics": {"execution_time": 139.0, "llm_duration": null, "turn_count": 13, "prompt_tokens": 390400, "completion_tokens": 6100, "tool_usage": {"rg": 13, "glob": 3, "report_intent": 2, "view": 10, "apply_patch": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-217104__cf-1", "project": "AutomaticAccountCodes", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al b/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\nindex 0e4bcfe3..4c433552 100644\n--- a/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\n+++ b/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\n@@ -72,6 +72,7 @@ codeunit 4850 \"AA Codes Posting Helper\"\n NoOfAutoAccounts: Decimal;\n TotalAmount: Decimal;\n TotalAltAmount: Decimal;\n+ TotalAmountLCY: Decimal;\n SourceCurrBaseAmount: Decimal;\n AccLine: Integer;\n begin\n@@ -121,6 +122,9 @@ codeunit 4850 \"AA Codes Posting Helper\"\n GenJnlLine2.Validate(Amount, GenJnlLine2.Amount - TotalAmount);\n if (AccLine = NoOfAutoAccounts) and (TotalAltAmount <> 0) then\n GenJnlLine2.Validate(\"Source Currency Amount\", GenJnlLine2.\"Source Currency Amount\" - TotalAltAmount);\n+ TotalAmountLCY := TotalAmountLCY + GenJnlLine2.\"Amount (LCY)\";\n+ if (AccLine = NoOfAutoAccounts) and (TotalAmountLCY <> 0) then\n+ GenJnlLine2.Validate(\"Amount (LCY)\", GenJnlLine2.\"Amount (LCY)\" - TotalAmountLCY);\n GenJnlCheckLine.RunCheck(GenJnlLine2);\n \n sender.InitGLEntry(GenJnlLine2, GLEntry,\n@@ -247,4 +251,4 @@ codeunit 4850 \"AA Codes Posting Helper\"\n GenJournalLine.Modify();\n end;\n \n-}\n\\ No newline at end of file\n+}\n", "error_message": null, "metrics": {"execution_time": 153.0, "llm_duration": null, "turn_count": 18, "prompt_tokens": 824100, "completion_tokens": 6200, "tool_usage": {"rg": 11, "glob": 2, "report_intent": 1, "view": 13, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-217104__cf-2", "project": "AutomaticAccountCodes", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al b/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\nindex 0e4bcfe3..239cc0e7 100644\n--- a/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\n+++ b/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\n@@ -71,6 +71,7 @@ codeunit 4850 \"AA Codes Posting Helper\"\n GenJnlCheckLine: Codeunit \"Gen. Jnl.-Check Line\";\n NoOfAutoAccounts: Decimal;\n TotalAmount: Decimal;\n+ TotalAmountLCY: Decimal;\n TotalAltAmount: Decimal;\n SourceCurrBaseAmount: Decimal;\n AccLine: Integer;\n@@ -116,9 +117,12 @@ codeunit 4850 \"AA Codes Posting Helper\"\n CopyDimensionFromAutoAccLine(GenJnlLine2, AutomaticAccountLine);\n AccLine := AccLine + 1;\n TotalAmount := TotalAmount + GenJnlLine2.Amount;\n+ TotalAmountLCY := TotalAmountLCY + GenJnlLine2.\"Amount (LCY)\";\n TotalAltAmount := TotalAltAmount + GenJnlLine2.\"Source Currency Amount\";\n if (AccLine = NoOfAutoAccounts) and (TotalAmount <> 0) then\n GenJnlLine2.Validate(Amount, GenJnlLine2.Amount - TotalAmount);\n+ if (AccLine = NoOfAutoAccounts) and (GenJnlLine2.\"Currency Code\" <> '') and (TotalAmountLCY <> 0) then\n+ GenJnlLine2.\"Amount (LCY)\" := GenJnlLine2.\"Amount (LCY)\" - TotalAmountLCY;\n if (AccLine = NoOfAutoAccounts) and (TotalAltAmount <> 0) then\n GenJnlLine2.Validate(\"Source Currency Amount\", GenJnlLine2.\"Source Currency Amount\" - TotalAltAmount);\n GenJnlCheckLine.RunCheck(GenJnlLine2);\n@@ -247,4 +251,4 @@ codeunit 4850 \"AA Codes Posting Helper\"\n GenJournalLine.Modify();\n end;\n \n-}\n\\ No newline at end of file\n+}\n", "error_message": null, "metrics": {"execution_time": 185.0, "llm_duration": null, "turn_count": 21, "prompt_tokens": 801100, "completion_tokens": 6800, "tool_usage": {"glob": 4, "rg": 17, "view": 13, "report_intent": 1, "apply_patch": 2, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-217797__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/PlanningWorksheet.Page.al b/App/Layers/W1/BaseApp/Inventory/Requisition/PlanningWorksheet.Page.al\nindex 2eaf3fe5..09fcd1eb 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/PlanningWorksheet.Page.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/PlanningWorksheet.Page.al\n@@ -953,7 +953,7 @@ page 99000852 \"Planning Worksheet\"\n // if called from API (such as edit-in-excel), do not filter \n if ClientTypeManagement.GetCurrentClientType() = CLIENTTYPE::ODataV4 then\n exit;\n- OpenedFromBatch := (Rec.\"Journal Batch Name\" <> '') and (Rec.\"Worksheet Template Name\" = '');\n+ OpenedFromBatch := Rec.\"Journal Batch Name\" <> '';\n if OpenedFromBatch then begin\n CurrentWkshBatchName := Rec.\"Journal Batch Name\";\n ReqJnlManagement.OpenJnl(CurrentWkshBatchName, Rec);\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137009'\nCodeunit 137009 SCM Availability by Event\n Testfunction LookupItemAvailabilityByEventOnItemCardOpenTheCorrectPlanningWorksheetBatch Failure (17.537 seconds)\n Error:\n Specify a filter for the Worksheet Template Name field in the Requisition Line table.\n Call Stack:\n \"Calc. Item Availability\"(CodeUnit 5530).ShowDocument line 144 - Base Application by Microsoft version 27.0.0.0\n \"Calc. Inventory Page Data\"(CodeUnit 5531).ShowDocument line 2 - Base Application by Microsoft version 27.0.0.0\n \"Item Availability by Event\"(Page 5530).\"Show Document - OnAction\"(Trigger) line 2 - Base Application by Microsoft version 27.0.0.0\n \"SCM Availability by Event\"(CodeUnit 137009).ItemAvailabilityByEventPageHandler line 6 - Tests-SCM by Microsoft version 27.0.0.0\n \"Item Availability Forms Mgt\"(CodeUnit 353).ShowItemAvailabilityByEvent line 24 - Base Application by Microsoft version 27.0.0.0\n \"Item Availability Forms Mgt\"(CodeUnit 353).ShowItemAvailabilityFromItem line 22 - Base Application by Microsoft version 27.0.0.0\n \"Item Card\"(Page 30).\" - OnAction\"(Trigger) line 2 - Base Application by Microsoft version 27.0.0.0\n \"SCM Availability by Event\"(CodeUnit 137009).LookupItemAvailabilityByEventOnItemCardOpenTheCorrectPlanningWorksheetBatch line 46 - Tests-SCM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0", "metrics": {"execution_time": 191.0, "llm_duration": null, "turn_count": 17, "prompt_tokens": 502600, "completion_tokens": 7200, "tool_usage": {"rg": 16, "glob": 2, "report_intent": 2, "view": 13, "apply_patch": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-217974__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\nindex 780de254..754a83ed 100644\n--- a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n@@ -653,6 +653,8 @@ codeunit 6620 \"Copy Document Mgt.\"\n \"Sales Document Type From\"::\"Arch. Return Order\":\n CopySalesHeaderFromSalesHeaderArchive(FromSalesHeaderArchive, ToSalesHeader, OldSalesHeader);\n end;\n+ if MoveNegLines then\n+ UpdateShipToAddress(ToSalesHeader);\n OnAfterCopySalesHeaderDone(\n ToSalesHeader, OldSalesHeader, FromSalesHeader, FromSalesShptHeader, FromSalesInvHeader,\n FromReturnRcptHeader, FromSalesCrMemoHeader, FromSalesHeaderArchive, FromDocType);\n", "error_message": null, "metrics": {"execution_time": 184.0, "llm_duration": null, "turn_count": 20, "prompt_tokens": 810300, "completion_tokens": 6100, "tool_usage": {"rg": 16, "glob": 2, "view": 17, "report_intent": 2, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-217974__cf-2", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\nindex 780de254..41a6982f 100644\n--- a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n@@ -747,6 +747,8 @@ codeunit 6620 \"Copy Document Mgt.\"\n begin\n FromSalesHeader.CalcFields(\"Work Description\");\n ToSalesHeader.TransferFields(FromSalesHeader, false);\n+ if MoveNegLines and ToSalesHeader.IsCreditDocType() then\n+ ToSalesHeader.UpdateShipToAddress();\n UpdateSalesHeaderWhenCopyFromSalesHeader(ToSalesHeader, OldSalesHeader, FromDocType);\n SetReceivedFromCountryCode(FromDocType, ToSalesHeader);\n OnAfterCopySalesHeader(ToSalesHeader, OldSalesHeader, FromSalesHeader, FromDocType);\n", "error_message": null, "metrics": {"execution_time": 176.0, "llm_duration": null, "turn_count": 15, "prompt_tokens": 648100, "completion_tokens": 5700, "tool_usage": {"rg": 17, "view": 15, "report_intent": 3, "glob": 2, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-218062__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/CreatePick.Report.al b/App/Layers/W1/BaseApp/Warehouse/Activity/CreatePick.Report.al\nindex 47d27ef0..6da88901 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/CreatePick.Report.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/CreatePick.Report.al\n@@ -308,6 +308,7 @@ report 5754 \"Create Pick\"\n TotalQtyPickedBase: Decimal;\n PickListReportID: Integer;\n IsHandled: Boolean;\n+ AvailableQtyBase: Decimal;\n begin\n PickWhseWkshLine.LockTable();\n repeat\n@@ -317,7 +318,12 @@ report 5754 \"Create Pick\"\n IsHandled := false;\n OnCreateTempLineOnBeforeCalcAvailableQtyBase(PickWhseWkshLine, IsHandled);\n if not IsHandled then\n- if PickWhseWkshLine.CalcAvailableQtyBase() < PickWhseWkshLine.\"Qty. to Handle (Base)\" then\n+ if UseLocationLevelAvailabilityOnReservedProdOrderLine(PickWhseWkshLine) then\n+ AvailableQtyBase := CalcLocationLevelAvailableQtyBase(PickWhseWkshLine)\n+ else\n+ AvailableQtyBase := PickWhseWkshLine.CalcAvailableQtyBase();\n+ if not IsHandled then\n+ if AvailableQtyBase < PickWhseWkshLine.\"Qty. to Handle (Base)\" then\n Error(\n Text003,\n PickWhseWkshLine.TableCaption(), PickWhseWkshLine.FieldCaption(\"Worksheet Template Name\"),\n@@ -452,6 +458,54 @@ report 5754 \"Create Pick\"\n until PickWhseActivHeader.Next() = 0;\n end;\n \n+ local procedure UseLocationLevelAvailabilityOnReservedProdOrderLine(WhseWorksheetLine: Record \"Whse. Worksheet Line\"): Boolean\n+ var\n+ TempWhseActivLine: Record \"Warehouse Activity Line\" temporary;\n+ WarehouseAvailabilityMgt: Codeunit \"Warehouse Availability Mgt.\";\n+ begin\n+ if WhseWorksheetLine.\"Whse. Document Type\" <> WhseWorksheetLine.\"Whse. Document Type\"::Production then\n+ exit(false);\n+ if WhseWorksheetLine.\"Source Type\" <> Database::\"Prod. Order Component\" then\n+ exit(false);\n+\n+ exit(\n+ Abs(\n+ WarehouseAvailabilityMgt.CalcLineReservedQtyOnInvt(\n+ WhseWorksheetLine.\"Source Type\", WhseWorksheetLine.\"Source Subtype\",\n+ WhseWorksheetLine.\"Source No.\", WhseWorksheetLine.\"Source Line No.\",\n+ WhseWorksheetLine.\"Source Subline No.\", true, TempWhseActivLine)) > 0);\n+ end;\n+\n+ local procedure CalcLocationLevelAvailableQtyBase(WhseWorksheetLine: Record \"Whse. Worksheet Line\"): Decimal\n+ var\n+ Item: Record Item;\n+ TempWhseActivLine: Record \"Warehouse Activity Line\" temporary;\n+ WarehouseAvailabilityMgt: Codeunit \"Warehouse Availability Mgt.\";\n+ QtyAssgndOnWkshBase: Decimal;\n+ QtyReservedOnPickShip: Decimal;\n+ QtyReservedForCurrLine: Decimal;\n+ AvailableQtyBase: Decimal;\n+ begin\n+ if Item.Get(WhseWorksheetLine.\"Item No.\") then;\n+\n+ QtyAssgndOnWkshBase := WarehouseAvailabilityMgt.CalcQtyAssgndOnWksh(WhseWorksheetLine, true, true);\n+ AvailableQtyBase :=\n+ WarehouseAvailabilityMgt.CalcInvtAvailQty(Item, Location, WhseWorksheetLine.\"Variant Code\", TempWhseActivLine);\n+\n+ if Location.\"Require Pick\" then\n+ QtyReservedOnPickShip :=\n+ WarehouseAvailabilityMgt.CalcReservQtyOnPicksShips(\n+ WhseWorksheetLine.\"Location Code\", WhseWorksheetLine.\"Item No.\", WhseWorksheetLine.\"Variant Code\", TempWhseActivLine);\n+ QtyReservedForCurrLine :=\n+ Abs(\n+ WarehouseAvailabilityMgt.CalcLineReservedQtyOnInvt(\n+ WhseWorksheetLine.\"Source Type\", WhseWorksheetLine.\"Source Subtype\",\n+ WhseWorksheetLine.\"Source No.\", WhseWorksheetLine.\"Source Line No.\",\n+ WhseWorksheetLine.\"Source Subline No.\", true, TempWhseActivLine));\n+\n+ exit(AvailableQtyBase + QtyReservedOnPickShip + QtyReservedForCurrLine - QtyAssgndOnWkshBase + WhseWorksheetLine.AssignedQtyOnReservedLines());\n+ end;\n+\n procedure SetWkshPickLine(var PickWhseWkshLine2: Record \"Whse. Worksheet Line\")\n var\n SortingMethod: Option;\n", "error_message": "Build or publish failed for App\\Layers\\W1\\BaseApp:\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Warehouse\\Activity\\CreatePick.Report.al(464,35): error AL0185: Codeunit 'Warehouse Availability Mgt.' is missing\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Warehouse\\Activity\\CreatePick.Report.al(481,15): error AL0185: Table 'Item' is missing\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Warehouse\\Activity\\CreatePick.Report.al(483,35): error AL0185: Codeunit 'Warehouse Availability Mgt.' is missing", "metrics": {"execution_time": 213.0, "llm_duration": null, "turn_count": 18, "prompt_tokens": 774600, "completion_tokens": 8100, "tool_usage": {"rg": 12, "report_intent": 2, "view": 15, "glob": 2, "apply_patch": 1, "powershell": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": false} +{"instance_id": "microsoftInternal__NAV-218323__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al b/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al\nindex 88068be0..c75c3168 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al\n@@ -307,6 +307,7 @@ report 20 \"Calc. and Post VAT Settlement\"\n Clear(GenJnlLine);\n GenJnlLine.\"System-Created Entry\" := true;\n GenJnlLine.\"Account Type\" := GenJnlLine.\"Account Type\"::\"G/L Account\";\n+ SetJournalTemplateAndBatch(GenJnlLine);\n case VATType of\n VATEntry.Type::Purchase:\n GenJnlLine.Description :=\n@@ -516,6 +517,7 @@ report 20 \"Calc. and Post VAT Settlement\"\n GenJnlLine.Init();\n GenJnlLine.\"System-Created Entry\" := true;\n GenJnlLine.\"Account Type\" := GenJnlLine.\"Account Type\"::\"G/L Account\";\n+ SetJournalTemplateAndBatch(GenJnlLine);\n \n GLAccSettle.TestField(\"Gen. Posting Type\", GenJnlLine.\"Gen. Posting Type\"::\" \");\n GLAccSettle.TestField(\"VAT Bus. Posting Group\", '');\n@@ -608,6 +610,47 @@ report 20 \"Calc. and Post VAT Settlement\"\n Caption = 'VAT Date';\n ToolTip = 'Specifies the VAT date for the transfer to the VAT account. This field must be filled in.';\n }\n+ field(JnlTemplateName; GenJnlLineReq.\"Journal Template Name\")\n+ {\n+ ApplicationArea = Basic, Suite;\n+ Caption = 'Journal Template Name';\n+ Lookup = true;\n+ TableRelation = \"Gen. Journal Template\";\n+ Visible = IsJournalTemplNameVisible;\n+ ToolTip = 'Specifies the name of the journal template that is used for the posting.';\n+\n+ trigger OnValidate()\n+ begin\n+ GenJnlLineReq.\"Journal Batch Name\" := '';\n+ end;\n+ }\n+ field(JnlBatchName; GenJnlLineReq.\"Journal Batch Name\")\n+ {\n+ ApplicationArea = Basic, Suite;\n+ Caption = 'Journal Batch Name';\n+ Lookup = true;\n+ Visible = IsJournalTemplNameVisible;\n+ ToolTip = 'Specifies the name of the journal batch that is used for the posting.';\n+\n+ trigger OnLookup(var Text: Text): Boolean\n+ begin\n+ GenJnlLineReq.TestField(\"Journal Template Name\");\n+ GenJournalTemplate.Get(GenJnlLineReq.\"Journal Template Name\");\n+ GenJnlBatch.SetRange(\"Journal Template Name\", GenJnlLineReq.\"Journal Template Name\");\n+ GenJnlBatch.\"Journal Template Name\" := GenJnlLineReq.\"Journal Template Name\";\n+ GenJnlBatch.Name := GenJnlLineReq.\"Journal Batch Name\";\n+ if PAGE.RunModal(0, GenJnlBatch) = ACTION::LookupOK then\n+ GenJnlLineReq.\"Journal Batch Name\" := GenJnlBatch.Name;\n+ end;\n+\n+ trigger OnValidate()\n+ begin\n+ if GenJnlLineReq.\"Journal Batch Name\" <> '' then begin\n+ GenJnlLineReq.TestField(\"Journal Template Name\");\n+ GenJnlBatch.Get(GenJnlLineReq.\"Journal Template Name\", GenJnlLineReq.\"Journal Batch Name\");\n+ end;\n+ end;\n+ }\n field(DocumentNo; DocNo)\n {\n ApplicationArea = Basic, Suite;\n@@ -676,6 +719,12 @@ report 20 \"Calc. and Post VAT Settlement\"\n actions\n {\n }\n+\n+ trigger OnOpenPage()\n+ begin\n+ GLSetup.Get();\n+ IsJournalTemplNameVisible := GLSetup.\"Journal Templ. Name Mandatory\";\n+ end;\n }\n \n labels\n@@ -704,6 +753,16 @@ report 20 \"Calc. and Post VAT Settlement\"\n else\n VATDate := PostingDate;\n \n+ GLSetup.Get();\n+ IsJournalTemplNameVisible := GLSetup.\"Journal Templ. Name Mandatory\";\n+ if IsJournalTemplNameVisible then begin\n+ if GenJnlLineReq.\"Journal Template Name\" = '' then\n+ Error(MustBeEnteredErr, GenJnlLineReq.FieldCaption(\"Journal Template Name\"));\n+ if GenJnlLineReq.\"Journal Batch Name\" = '' then\n+ Error(MustBeEnteredErr, GenJnlLineReq.FieldCaption(\"Journal Batch Name\"));\n+ GenJnlBatch.Get(GenJnlLineReq.\"Journal Template Name\", GenJnlLineReq.\"Journal Batch Name\");\n+ end;\n+\n if DocNo = '' then\n Error(Text001);\n if GLAccSettle.\"No.\" = '' then\n@@ -732,6 +791,9 @@ report 20 \"Calc. and Post VAT Settlement\"\n SourceCodeSetup: Record \"Source Code Setup\";\n GenJnlLine: Record \"Gen. Journal Line\";\n GenJnlLine2: Record \"Gen. Journal Line\";\n+ GenJournalTemplate: Record \"Gen. Journal Template\";\n+ GenJnlBatch: Record \"Gen. Journal Batch\";\n+ GenJnlLineReq: Record \"Gen. Journal Line\";\n GLEntry: Record \"G/L Entry\";\n VATEntry: Record \"VAT Entry\";\n TaxJurisdiction: Record \"Tax Jurisdiction\";\n@@ -755,6 +817,7 @@ report 20 \"Calc. and Post VAT Settlement\"\n HeaderText: Text[30];\n CountryRegionFilter: Text;\n IsVATDateEnabled: Boolean;\n+ IsJournalTemplNameVisible: Boolean;\n #pragma warning disable AA0074\n Text000: Label 'Enter the posting date.';\n Text001: Label 'Enter the document no.';\n@@ -765,6 +828,7 @@ report 20 \"Calc. and Post VAT Settlement\"\n Text005: Label 'Period: %1';\n #pragma warning restore AA0470\n #pragma warning restore AA0074\n+ MustBeEnteredErr: Label '%1 must be entered.', Comment = '%1 = field name';\n AllAmountsAreInTxt: Label 'All amounts are in %1.', Comment = '%1 = Currency Code';\n #pragma warning disable AA0074\n #pragma warning disable AA0470\n@@ -880,6 +944,7 @@ report 20 \"Calc. and Post VAT Settlement\"\n Clear(GenJnlLine2);\n GenJnlLine2.\"System-Created Entry\" := true;\n GenJnlLine2.\"Account Type\" := GenJnlLine2.\"Account Type\"::\"G/L Account\";\n+ SetJournalTemplateAndBatch(GenJnlLine2);\n GenJnlLine2.Description := GenJnlLine.Description;\n GenJnlLine2.\"Posting Date\" := PostingDate;\n GenJnlLine2.\"VAT Reporting Date\" := VATDate;\n@@ -901,6 +966,15 @@ report 20 \"Calc. and Post VAT Settlement\"\n GenJnlLine.\"VAT Calculation Type\" := VATPostingSetup.\"VAT Calculation Type\";\n end;\n \n+ local procedure SetJournalTemplateAndBatch(var GenJournalLine: Record \"Gen. Journal Line\")\n+ begin\n+ if not IsJournalTemplNameVisible then\n+ exit;\n+\n+ GenJournalLine.\"Journal Template Name\" := GenJnlLineReq.\"Journal Template Name\";\n+ GenJournalLine.\"Journal Batch Name\" := GenJnlLineReq.\"Journal Batch Name\";\n+ end;\n+\n local procedure IncrementGenPostingType(var OldGenPostingType: Enum \"General Posting Type\") NewGenPostingType: Enum \"General Posting Type\"\n begin\n case OldGenPostingType of\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134992'\nCodeunit 134992 ERM Financial Reports IV\n Testfunction PostVATSettlementWhenJournalTemplateNameMandatoryIsEnabled Failure (11.046 seconds)\n Error:\n Journal Template Name must be entered.\n Call Stack:\n \"Calc. and Post VAT Settlement\"(Report 20).OnPreReport(Trigger) line 19 - Base Application by Microsoft version 27.0.0.0\n \"ERM Financial Reports IV\"(CodeUnit 134992).SaveCalcAndPostVATSettlementReport line 12 - Tests-ERM by Microsoft version 27.0.0.0\n \"ERM Financial Reports IV\"(CodeUnit 134992).PostVATSettlementWhenJournalTemplateNameMandatoryIsEnabled line 35 - Tests-ERM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0", "metrics": {"execution_time": 360.0, "llm_duration": null, "turn_count": 35, "prompt_tokens": 2100000, "completion_tokens": 14900, "tool_usage": {"rg": 30, "report_intent": 5, "view": 24, "glob": 5, "powershell": 3, "apply_patch": 7}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-218786__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al\nindex 0b806569..256940bc 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al\n@@ -3126,9 +3126,10 @@ table 5767 \"Warehouse Activity Line\"\n Item.TestField(\"Allow Whse. Overpick\");\n \n WhseActivityLine.SetLoadFields(\"Activity Type\", \"No.\", \"Line No.\", \"Item No.\", \"Variant Code\", \"Location Code\", \"Action Type\", Quantity, \"Lot No.\", \"Serial No.\", \"Source No.\", \"Source Line No.\", \"Source Document\");\n+ WhseActivityLine.SetCurrentKey(\"Activity Type\", \"No.\", \"Line No.\");\n WhseActivityLine.SetRange(\"Activity Type\", FromWhseActivityLine.\"Activity Type\");\n WhseActivityLine.SetRange(\"No.\", FromWhseActivityLine.\"No.\");\n- WhseActivityLine.SetFilter(\"Line No.\", '<>%1', FromWhseActivityLine.\"Line No.\");\n+ WhseActivityLine.SetFilter(\"Line No.\", '>%1', FromWhseActivityLine.\"Line No.\");\n WhseActivityLine.SetRange(\"Item No.\", FromWhseActivityLine.\"Item No.\");\n WhseActivityLine.SetRange(\"Variant Code\", FromWhseActivityLine.\"Variant Code\");\n WhseActivityLine.SetRange(\"Location Code\", FromWhseActivityLine.\"Location Code\");\n@@ -3140,7 +3141,11 @@ table 5767 \"Warehouse Activity Line\"\n WhseActivityLine.SetRange(\"Source No.\", FromWhseActivityLine.\"Source No.\");\n WhseActivityLine.SetRange(\"Source Line No.\", FromWhseActivityLine.\"Source Line No.\");\n \n- WhseActivityLine.FindFirst();\n+ if not WhseActivityLine.FindFirst() then begin\n+ WhseActivityLine.SetRange(\"Line No.\");\n+ WhseActivityLine.SetFilter(\"Line No.\", '<>%1', FromWhseActivityLine.\"Line No.\");\n+ WhseActivityLine.FindFirst();\n+ end;\n \n WhseActivityLine.Validate(Quantity, FromWhseActivityLine.Quantity);\n WhseActivityLine.Modify(true);\n", "error_message": null, "metrics": {"execution_time": 112.0, "llm_duration": null, "turn_count": 11, "prompt_tokens": 226700, "completion_tokens": 3500, "tool_usage": {"rg": 4, "report_intent": 8, "view": 7, "glob": 2, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-220036__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/Reminder.Page.al b/App/Layers/W1/BaseApp/Sales/Reminder/Reminder.Page.al\nindex 8810e93d..f028330a 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/Reminder.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/Reminder.Page.al\n@@ -50,7 +50,7 @@ page 434 Reminder\n \n trigger OnValidate()\n begin\n- ContactCustomer.GetPrimaryContact(Rec.\"Customer No.\", PrimaryContact);\n+ UpdateContactInformation();\n end;\n }\n field(Name; Rec.Name)\n@@ -106,14 +106,14 @@ page 434 Reminder\n ExtendedDatatype = PhoneNo;\n ToolTip = 'Specifies the mobile telephone number of the customer contact person the reminder is for.';\n }\n- field(ContactEmail; PrimaryContact.\"E-Mail\")\n+ field(ContactEmail; ContactEmail)\n {\n Caption = 'Email';\n ApplicationArea = Basic, Suite;\n ExtendedDatatype = EMail;\n Editable = false;\n Importance = Additional;\n- ToolTip = 'Specifies the email address of the customer contact person the reminder is for.';\n+ ToolTip = 'Specifies the email address for the reminder. The value comes from the customer''s primary contact, or from the customer card if the contact email is blank.';\n }\n field(\"Posting Date\"; Rec.\"Posting Date\")\n {\n@@ -543,7 +543,7 @@ page 434 Reminder\n \n trigger OnAfterGetRecord()\n begin\n- ContactCustomer.GetPrimaryContact(Rec.\"Customer No.\", PrimaryContact);\n+ UpdateContactInformation();\n end;\n \n var\n@@ -552,10 +552,24 @@ page 434 Reminder\n ReminderHeader: Record \"Reminder Header\";\n CurrExchRate: Record \"Currency Exchange Rate\";\n ChangeExchangeRate: Page \"Change Exchange Rate\";\n+ ContactEmail: Text[80];\n DocNoVisible: Boolean;\n IsOfficeAddin: Boolean;\n VATDateEnabled: Boolean;\n \n+ local procedure UpdateContactInformation()\n+ begin\n+ Clear(PrimaryContact);\n+ Clear(ContactEmail);\n+\n+ ContactCustomer.GetPrimaryContact(Rec.\"Customer No.\", PrimaryContact);\n+ ContactEmail := PrimaryContact.\"E-Mail\";\n+\n+ if (ContactEmail = '') and (Rec.\"Customer No.\" <> '') then\n+ if ContactCustomer.Get(Rec.\"Customer No.\") then\n+ ContactEmail := ContactCustomer.\"E-Mail\";\n+ end;\n+\n local procedure SetDocNoVisible()\n var\n DocumentNoVisibility: Codeunit DocumentNoVisibility;\n", "error_message": null, "metrics": {"execution_time": 120.0, "llm_duration": null, "turn_count": 12, "prompt_tokens": 396800, "completion_tokens": 4300, "tool_usage": {"rg": 6, "glob": 2, "view": 10, "report_intent": 1, "apply_patch": 3, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-220314__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al b/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\nindex fb9253b7..0b2e171f 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\n@@ -76,6 +76,8 @@ table 83 \"Item Journal Line\"\n if \"Item No.\" <> xRec.\"Item No.\" then begin\n \"Variant Code\" := '';\n \"Bin Code\" := '';\n+ if CurrFieldNo <> 0 then\n+ \"Unit of Measure Code\" := '';\n if CurrFieldNo <> 0 then begin\n GetItem();\n if Item.IsInventoriableType() then\n", "error_message": null, "metrics": {"execution_time": 108.0, "llm_duration": null, "turn_count": 9, "prompt_tokens": 253800, "completion_tokens": 3300, "tool_usage": {"rg": 6, "view": 8, "report_intent": 2, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-220984__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al\nindex 83bf3f09..4abbbfe3 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al\n@@ -155,7 +155,7 @@ report 99001043 \"Exchange Production BOM Item\"\n end else begin\n ProductionBOMLine2.\"Line No.\" := ProductionBOMLine3.\"Line No.\";\n CopyPositionFields(ProductionBOMLine2, ProductionBOMLine3);\n- ShouldModifyProductionBOMLine := true;\n+ ShouldModifyProductionBOMLine := false;\n OnIntegerOnPostDataItemOnBeforeModifyProductionBOMLine(ProductionBOMLine, ShouldModifyProductionBOMLine);\n if not ShouldModifyProductionBOMLine then begin\n ProductionBOMLine.\"Ending Date\" := StartingDate - 1;\n", "error_message": null, "metrics": {"execution_time": 101.0, "llm_duration": null, "turn_count": 9, "prompt_tokens": 204000, "completion_tokens": 2900, "tool_usage": {"rg": 5, "glob": 2, "view": 6, "report_intent": 1, "powershell": 2, "apply_patch": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-221877__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al b/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al\nindex 1c8fcc9e..eb2cae45 100644\n--- a/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al\n@@ -427,47 +427,7 @@ table 5901 \"Service Item Line\"\n until ServOrderAlloc.Next() = 0;\n end;\n \n- RepairStatusPriority := RepairStatus.Priority;\n- UseLineNo := \"Line No.\";\n- ServItemLine.Reset();\n- ServItemLine.SetRange(\"Document Type\", \"Document Type\");\n- ServItemLine.SetRange(\"Document No.\", \"Document No.\");\n- ServItemLine.SetFilter(\"Line No.\", '<>%1', \"Line No.\");\n- ServItemLine.SetFilter(\"Repair Status Code\", '<>%1', '');\n- if ServItemLine.Find('-') then\n- repeat\n- RepairStatus2.Get(ServItemLine.\"Repair Status Code\");\n- if RepairStatus2.Priority < RepairStatusPriority then begin\n- RepairStatusPriority := RepairStatus2.Priority;\n- UseLineNo := ServItemLine.\"Line No.\";\n- end;\n- until ServItemLine.Next() = 0;\n- if \"Line No.\" <> UseLineNo then begin\n- ServItemLine.Get(\"Document Type\", \"Document No.\", UseLineNo);\n- RepairStatus.Get(ServItemLine.\"Repair Status Code\");\n- end else\n- RepairStatus.Get(\"Repair Status Code\");\n- ServHeader2.Get(Rec.\"Document Type\", Rec.\"Document No.\");\n- ServHeader3 := ServHeader2;\n- if ServHeader2.Status <> RepairStatus.\"Service Order Status\" then begin\n- ServHeader2.SetValidatingFromLines(true);\n- if ServHeader2.\"Finishing Date\" = 0D then\n- ServHeader2.Validate(\"Finishing Date\", \"Finishing Date\");\n-\n- OnValidateRepairStatusCodeOnBeforeValidateStatus(Rec, ServHeader2);\n-\n- ServHeader2.Validate(Status, RepairStatus.\"Service Order Status\");\n- if not (ServHeader2.Status = ServHeader2.Status::Finished) then begin\n- ServHeader2.\"Finishing Date\" := 0D;\n- ServHeader2.\"Finishing Time\" := 0T;\n- ServHeader2.\"Service Time (Hours)\" := 0;\n- end;\n- ServHeader2.UpdateServiceOrderChangeLog(ServHeader3);\n- ServHeader2.Modify();\n- if ServHeader2.Status = ServHeader2.Status::Finished then\n- UpdateStartFinishDateTime(\"Document Type\", \"Document No.\", \"Line No.\", \"Starting Date\", \"Starting Time\",\n- \"Finishing Date\", \"Finishing Time\", false);\n- end;\n+ UpdateServiceHeaderStatusByRepairStatus();\n end;\n end;\n }\n@@ -1580,6 +1540,8 @@ table 5901 \"Service Item Line\"\n if not IsHandled then\n ServOrderMgt.UpdatePriority(Rec, false);\n \n+ UpdateServiceHeaderStatusByRepairStatus();\n+\n if \"Line No.\" = 0 then\n LendLoanerWithConfirmation(false);\n \n@@ -1777,6 +1739,55 @@ table 5901 \"Service Item Line\"\n OnAfterSetUpNewLine(Rec);\n end;\n \n+ local procedure UpdateServiceHeaderStatusByRepairStatus()\n+ begin\n+ if \"Repair Status Code\" = '' then\n+ exit;\n+\n+ RepairStatus.Get(\"Repair Status Code\");\n+ RepairStatusPriority := RepairStatus.Priority;\n+ UseLineNo := \"Line No.\";\n+ ServItemLine.Reset();\n+ ServItemLine.SetRange(\"Document Type\", \"Document Type\");\n+ ServItemLine.SetRange(\"Document No.\", \"Document No.\");\n+ ServItemLine.SetFilter(\"Line No.\", '<>%1', \"Line No.\");\n+ ServItemLine.SetFilter(\"Repair Status Code\", '<>%1', '');\n+ if ServItemLine.Find('-') then\n+ repeat\n+ RepairStatus2.Get(ServItemLine.\"Repair Status Code\");\n+ if RepairStatus2.Priority < RepairStatusPriority then begin\n+ RepairStatusPriority := RepairStatus2.Priority;\n+ UseLineNo := ServItemLine.\"Line No.\";\n+ end;\n+ until ServItemLine.Next() = 0;\n+ if \"Line No.\" <> UseLineNo then begin\n+ ServItemLine.Get(\"Document Type\", \"Document No.\", UseLineNo);\n+ RepairStatus.Get(ServItemLine.\"Repair Status Code\");\n+ end else\n+ RepairStatus.Get(\"Repair Status Code\");\n+ ServHeader2.Get(Rec.\"Document Type\", Rec.\"Document No.\");\n+ ServHeader3 := ServHeader2;\n+ if ServHeader2.Status <> RepairStatus.\"Service Order Status\" then begin\n+ ServHeader2.SetValidatingFromLines(true);\n+ if ServHeader2.\"Finishing Date\" = 0D then\n+ ServHeader2.Validate(\"Finishing Date\", \"Finishing Date\");\n+\n+ OnValidateRepairStatusCodeOnBeforeValidateStatus(Rec, ServHeader2);\n+\n+ ServHeader2.Validate(Status, RepairStatus.\"Service Order Status\");\n+ if not (ServHeader2.Status = ServHeader2.Status::Finished) then begin\n+ ServHeader2.\"Finishing Date\" := 0D;\n+ ServHeader2.\"Finishing Time\" := 0T;\n+ ServHeader2.\"Service Time (Hours)\" := 0;\n+ end;\n+ ServHeader2.UpdateServiceOrderChangeLog(ServHeader3);\n+ ServHeader2.Modify();\n+ if ServHeader2.Status = ServHeader2.Status::Finished then\n+ UpdateStartFinishDateTime(\"Document Type\", \"Document No.\", \"Line No.\", \"Starting Date\", \"Starting Time\",\n+ \"Finishing Date\", \"Finishing Time\", false);\n+ end;\n+ end;\n+\n local procedure ShowUpdateExistingServiceLinesMessage()\n var\n IsHandled: Boolean;\n", "error_message": null, "metrics": {"execution_time": 233.0, "llm_duration": null, "turn_count": 18, "prompt_tokens": 1000000, "completion_tokens": 10700, "tool_usage": {"rg": 16, "glob": 3, "view": 19, "report_intent": 4, "apply_patch": 3, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-222092__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\nindex 825eb23c..478836cc 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n@@ -266,15 +266,21 @@ codeunit 393 \"Reminder-Issue\"\n \n local procedure SetGenJnlLine2Dim()\n var\n- DimSetIDArr: array[10] of Integer;\n+ DefaultDimension: Record \"Default Dimension\";\n+ DefaultDimSource: List of [Dictionary of [Integer, Code[20]]];\n begin\n GenJnlLine2.\"Shortcut Dimension 1 Code\" := GlobalReminderHeader.\"Shortcut Dimension 1 Code\";\n GenJnlLine2.\"Shortcut Dimension 2 Code\" := GlobalReminderHeader.\"Shortcut Dimension 2 Code\";\n- DimSetIDArr[1] := GlobalReminderHeader.\"Dimension Set ID\";\n- DimSetIDArr[2] := TempGenJnlLine.\"Dimension Set ID\";\n- GenJnlLine2.\"Dimension Set ID\" :=\n- DimMgt.GetCombinedDimensionSetID(\n- DimSetIDArr, GenJnlLine2.\"Shortcut Dimension 1 Code\", GenJnlLine2.\"Shortcut Dimension 2 Code\");\n+ GenJnlLine2.\"Dimension Set ID\" := GlobalReminderHeader.\"Dimension Set ID\";\n+ if GenJnlLine2.\"Account Type\" = GenJnlLine2.\"Account Type\"::\"G/L Account\" then begin\n+ DimMgt.AddDimSource(DefaultDimSource, Database::\"G/L Account\", GenJnlLine2.\"Account No.\");\n+ DefaultDimension.SetRange(\"Table ID\", Database::\"G/L Account\");\n+ DefaultDimension.SetRange(\"No.\", GenJnlLine2.\"Account No.\");\n+ if not DefaultDimension.IsEmpty() then\n+ GenJnlLine2.\"Dimension Set ID\" :=\n+ DimMgt.GetRecDefaultDimID(\n+ GenJnlLine2, 0, DefaultDimSource, SrcCode, GenJnlLine2.\"Shortcut Dimension 1 Code\", GenJnlLine2.\"Shortcut Dimension 2 Code\", GenJnlLine2.\"Dimension Set ID\", 0);\n+ end;\n \n OnAfterSetGenJnlLine2Dim(GlobalReminderHeader, GenJnlLine2);\n end;\n", "error_message": "Build or publish failed for App\\Layers\\W1\\BaseApp:\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Sales\\Reminder\\ReminderIssue.Codeunit.al(276,61): error AL0118: The name '\"G/L Account\"' does not exist in the current context.\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Sales\\Reminder\\ReminderIssue.Codeunit.al(277,61): error AL0118: The name '\"G/L Account\"' does not exist in the current context.", "metrics": {"execution_time": 199.0, "llm_duration": null, "turn_count": 19, "prompt_tokens": 848400, "completion_tokens": 6500, "tool_usage": {"rg": 17, "glob": 5, "report_intent": 12, "view": 22, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": false} +{"instance_id": "microsoftInternal__NAV-222092__cf-2", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\nindex 825eb23c..d2e85572 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n@@ -270,11 +270,15 @@ codeunit 393 \"Reminder-Issue\"\n begin\n GenJnlLine2.\"Shortcut Dimension 1 Code\" := GlobalReminderHeader.\"Shortcut Dimension 1 Code\";\n GenJnlLine2.\"Shortcut Dimension 2 Code\" := GlobalReminderHeader.\"Shortcut Dimension 2 Code\";\n- DimSetIDArr[1] := GlobalReminderHeader.\"Dimension Set ID\";\n- DimSetIDArr[2] := TempGenJnlLine.\"Dimension Set ID\";\n- GenJnlLine2.\"Dimension Set ID\" :=\n- DimMgt.GetCombinedDimensionSetID(\n- DimSetIDArr, GenJnlLine2.\"Shortcut Dimension 1 Code\", GenJnlLine2.\"Shortcut Dimension 2 Code\");\n+ if TempGenJnlLine.\"Account Type\" = TempGenJnlLine.\"Account Type\"::Customer then\n+ GenJnlLine2.\"Dimension Set ID\" := GlobalReminderHeader.\"Dimension Set ID\"\n+ else begin\n+ DimSetIDArr[1] := GlobalReminderHeader.\"Dimension Set ID\";\n+ DimSetIDArr[2] := TempGenJnlLine.\"Dimension Set ID\";\n+ GenJnlLine2.\"Dimension Set ID\" :=\n+ DimMgt.GetCombinedDimensionSetID(\n+ DimSetIDArr, GenJnlLine2.\"Shortcut Dimension 1 Code\", GenJnlLine2.\"Shortcut Dimension 2 Code\");\n+ end;\n \n OnAfterSetGenJnlLine2Dim(GlobalReminderHeader, GenJnlLine2);\n end;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134904'\nCodeunit 134904 ERM Reminder For Additinal Fee\n Testfunction DimensionsInGeneralLedgerEntriesWhenDimensionsModifiedInReminderBeforeIssuing Failure (15.84 seconds)\n Error:\n Assert.AreEqual failed. Expected: (Text). Actual: (Text). Dimension Value code should be GU000000001.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"ERM Reminder For Additinal Fee\"(CodeUnit 134904).DimensionsInGeneralLedgerEntriesWhenDimensionsModifiedInReminderBeforeIssuing line 76 - Tests-ERM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0", "metrics": {"execution_time": 147.0, "llm_duration": null, "turn_count": 13, "prompt_tokens": 507200, "completion_tokens": 5300, "tool_usage": {"glob": 3, "rg": 10, "report_intent": 10, "view": 16, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-222484__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WhseActivityRegister.Codeunit.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WhseActivityRegister.Codeunit.al\nindex 06bc6408..66d3d962 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WhseActivityRegister.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WhseActivityRegister.Codeunit.al\n@@ -992,6 +992,7 @@ codeunit 7307 \"Whse.-Activity-Register\"\n QtyAvailToRegisterBase: Decimal;\n QtyAvailToInsertBase: Decimal;\n QtyToRegisterBase: Decimal;\n+ IsQtyAvailToPick: Boolean;\n AllowWhseOverpick: Boolean;\n IsHandled: Boolean;\n begin\n@@ -1067,7 +1068,11 @@ codeunit 7307 \"Whse.-Activity-Register\"\n \n if TempWhseActivLine.TrackingExists() then begin\n WhseItemTrackingSetup.CopyTrackingFromWhseActivityLine(TempWhseActivLine);\n- if not IsQtyAvailToPickNonSpecificReservation(TempWhseActivLine, WhseItemTrackingSetup, QtyToRegisterBase) then\n+ IsQtyAvailToPick := IsQtyAvailToPickNonSpecificReservation(TempWhseActivLine, WhseItemTrackingSetup, QtyToRegisterBase);\n+ if not IsQtyAvailToPick then\n+ if ShouldSkipReservationAvailabilityCheck(TempWhseActivLine) then\n+ IsQtyAvailToPick := true;\n+ if not IsQtyAvailToPick then\n AvailabilityError(TempWhseActivLine);\n end;\n \n@@ -1081,6 +1086,18 @@ codeunit 7307 \"Whse.-Activity-Register\"\n until TempWhseActivLine.Next() = 0; // Per document\n end;\n \n+ local procedure ShouldSkipReservationAvailabilityCheck(WhseActivLine: Record \"Warehouse Activity Line\"): Boolean\n+ begin\n+ if WhseActivLine.\"Activity Type\" <> WhseActivLine.\"Activity Type\"::Pick then\n+ exit(false);\n+\n+ if WhseActivLine.\"Source Document\" <> WhseActivLine.\"Source Document\"::\"Sales Order\" then\n+ exit(false);\n+\n+ LocationGet(WhseActivLine.\"Location Code\");\n+ exit(Location.\"Pick According to FEFO\");\n+ end;\n+\n local procedure RegisterWhseItemTrkgLine(WhseActivLine2: Record \"Warehouse Activity Line\")\n var\n JobPlanningLineRec: Record \"Job Planning Line\";\n", "error_message": null, "metrics": {"execution_time": 275.0, "llm_duration": null, "turn_count": 26, "prompt_tokens": 1700000, "completion_tokens": 10400, "tool_usage": {"rg": 21, "glob": 1, "report_intent": 1, "view": 26, "apply_patch": 2, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-222488__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al\nindex 07db37f9..fe0c7aa7 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al\n@@ -484,10 +484,15 @@ page 5771 \"Whse. Put-away Subform\"\n var\n WhseActivLine: Record \"Warehouse Activity Line\";\n begin\n- WhseActivLine.Copy(Rec);\n- WhseActivLine.FilterGroup(3);\n- WhseActivLine.SetRange(Breakbulk);\n- WhseActivLine.FilterGroup(0);\n+ if Rec.\"Source Document\" = Rec.\"Source Document\"::\"Purchase Order\" then begin\n+ WhseActivLine.SetRange(\"Activity Type\", Rec.\"Activity Type\");\n+ WhseActivLine.SetRange(\"No.\", Rec.\"No.\");\n+ end else begin\n+ WhseActivLine.Copy(Rec);\n+ WhseActivLine.FilterGroup(3);\n+ WhseActivLine.SetRange(Breakbulk);\n+ WhseActivLine.FilterGroup(0);\n+ end;\n CODEUNIT.Run(CODEUNIT::\"Whse.-Act.-Register (Yes/No)\", WhseActivLine);\n Rec.Reset();\n Rec.SetCurrentKey(\"Activity Type\", \"No.\", \"Sorting Sequence No.\");\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137152'\nCodeunit 137152 SCM Warehouse - Receiving\n Testfunction RegisterPutAwayWithBreakBulkFilterShouldRegisterAllLines Failure (17.536 seconds)\n Error:\n There is nothing to register.\n Call Stack:\n \"Whse.-Activity-Register\"(CodeUnit 7307).CheckWhseActivLineIsEmpty line 8 - Base Application by Microsoft version 27.0.0.0\n \"Whse.-Activity-Register\"(CodeUnit 7307).Code line 14 - Base Application by Microsoft version 27.0.0.0\n \"Whse.-Activity-Register\"(CodeUnit 7307).OnRun(Trigger) line 4 - Base Application by Microsoft version 27.0.0.0\n \"Whse.-Act.-Register (Yes/No)\"(CodeUnit 7306).Code line 19 - Base Application by Microsoft version 27.0.0.0\n \"Whse.-Act.-Register (Yes/No)\"(CodeUnit 7306).OnRun(Trigger) line 3 - Base Application by Microsoft version 27.0.0.0\n \"Whse. Put-away Subform\"(Page 5771).RegisterPutAwayYesNo line 13 - Base Application by Microsoft version 27.0.0.0\n \"Warehouse Put-away\"(Page 5770).RegisterPutAwayYesNo line 2 - Base Application by Microsoft version 27.0.0.0\n \"Warehouse Put-away\"(Page 5770).\"&Register Put-away - OnAction\"(Trigger) line 2 - Base Application by Microsoft version 27.0.0.0\n \"SCM Warehouse - Receiving\"(CodeUnit 137152).RegisterPutAwayWithBreakBulkFilterShouldRegisterAllLines line 46 - Tests-SCM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0", "metrics": {"execution_time": 149.0, "llm_duration": null, "turn_count": 13, "prompt_tokens": 438900, "completion_tokens": 6000, "tool_usage": {"rg": 13, "view": 14, "report_intent": 3, "glob": 2, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-223202__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al\nindex 84769ae0..2df7237e 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al\n@@ -253,10 +253,13 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ProdOrderRtngLine: Record \"Prod. Order Routing Line\";\n ExpOperCost: Decimal;\n ExpMfgDirCost: Decimal;\n+ ExpMatCostLine: Decimal;\n+ ExpCapDirCostLine: Decimal;\n+ ExpSubDirCostLine: Decimal;\n+ ExpCapOvhdCostLine: Decimal;\n ExpCapDirCostRtng: Decimal;\n ExpSubDirCostRtng: Decimal;\n ExpCapOvhdCostRtng: Decimal;\n- ExpOvhdCost: Decimal;\n begin\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\");\n ProdOrderComp.SetRange(Status, ProdOrderLine.Status);\n@@ -268,7 +271,7 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n #endif\n if ProdOrderComp.Find('-') then\n repeat\n- ExpMatCost := ExpMatCost + ProdOrderComp.\"Cost Amount\";\n+ ExpMatCostLine += ProdOrderComp.\"Cost Amount\";\n until ProdOrderComp.Next() = 0;\n \n ProdOrderRtngLine.SetRange(Status, ProdOrderLine.Status);\n@@ -301,12 +304,16 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ExpCapOvhdCostRtng := ExpCapOvhdCostRtng + ProdOrderRtngLine.\"Expected Capacity Ovhd. Cost\";\n until ProdOrderRtngLine.Next() = 0;\n \n- ExpCapDirCost := ExpCapDirCost + Round(ExpCapDirCostRtng * ShareOfTotalCapCost);\n- ExpSubDirCost := ExpSubDirCost + Round(ExpSubDirCostRtng * ShareOfTotalCapCost);\n- ExpCapOvhdCost := ExpCapOvhdCost + Round(ExpCapOvhdCostRtng * ShareOfTotalCapCost);\n- ExpMfgDirCost := ExpMatCost + ExpCapDirCost + ExpSubDirCost + ExpCapOvhdCost;\n- ExpOvhdCost := ExpMfgOvhdCost + ProdOrderLine.\"Overhead Rate\" * ProdOrderLine.\"Quantity (Base)\";\n- ExpMfgOvhdCost := ExpOvhdCost +\n+ ExpCapDirCostLine := Round(ExpCapDirCostRtng * ShareOfTotalCapCost);\n+ ExpSubDirCostLine := Round(ExpSubDirCostRtng * ShareOfTotalCapCost);\n+ ExpCapOvhdCostLine := Round(ExpCapOvhdCostRtng * ShareOfTotalCapCost);\n+ ExpMfgDirCost := ExpMatCostLine + ExpCapDirCostLine + ExpSubDirCostLine + ExpCapOvhdCostLine;\n+\n+ ExpMatCost += ExpMatCostLine;\n+ ExpCapDirCost += ExpCapDirCostLine;\n+ ExpSubDirCost += ExpSubDirCostLine;\n+ ExpCapOvhdCost += ExpCapOvhdCostLine;\n+ ExpMfgOvhdCost += ProdOrderLine.\"Overhead Rate\" * ProdOrderLine.\"Quantity (Base)\" +\n Round(CostCalculationMgt.CalcOvhdCost(ExpMfgDirCost, ProdOrderLine.\"Indirect Cost %\", 0, 0));\n \n OnAfterCalcProdOrderLineExpCost(ProdOrderLine, ShareOfTotalCapCost, ExpMatCost, ExpCapDirCost, ExpSubDirCost, ExpCapOvhdCost, ExpMfgOvhdCost);\n@@ -323,10 +330,14 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ProdOrderRtngLine: Record \"Prod. Order Routing Line\";\n ExpOperCost: Decimal;\n ExpMfgDirCost: Decimal;\n+ ExpMatCostLine: Decimal;\n+ ExpNonInvMatCostLine: Decimal;\n+ ExpCapDirCostLine: Decimal;\n+ ExpSubDirCostLine: Decimal;\n+ ExpCapOvhdCostLine: Decimal;\n ExpCapDirCostRtng: Decimal;\n ExpSubDirCostRtng: Decimal;\n ExpCapOvhdCostRtng: Decimal;\n- ExpOvhdCost: Decimal;\n begin\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\");\n ProdOrderComp.SetRange(Status, ProdOrderLine.Status);\n@@ -336,9 +347,9 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n repeat\n Item.Get(ProdOrderComp.\"Item No.\");\n if Item.IsNonInventoriableType() then\n- ExpNonInvMatCost += ProdOrderComp.\"Cost Amount\"\n+ ExpNonInvMatCostLine += ProdOrderComp.\"Cost Amount\"\n else\n- ExpMatCost := ExpMatCost + ProdOrderComp.\"Cost Amount\";\n+ ExpMatCostLine += ProdOrderComp.\"Cost Amount\";\n until ProdOrderComp.Next() = 0;\n \n ProdOrderRtngLine.SetRange(Status, ProdOrderLine.Status);\n@@ -363,12 +374,17 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ExpCapOvhdCostRtng := ExpCapOvhdCostRtng + ProdOrderRtngLine.\"Expected Capacity Ovhd. Cost\";\n until ProdOrderRtngLine.Next() = 0;\n \n- ExpCapDirCost := ExpCapDirCost + Round(ExpCapDirCostRtng * ShareOfTotalCapCost);\n- ExpSubDirCost := ExpSubDirCost + Round(ExpSubDirCostRtng * ShareOfTotalCapCost);\n- ExpCapOvhdCost := ExpCapOvhdCost + Round(ExpCapOvhdCostRtng * ShareOfTotalCapCost);\n- ExpMfgDirCost := ExpMatCost + ExpNonInvMatCost + ExpCapDirCost + ExpSubDirCost + ExpCapOvhdCost;\n- ExpOvhdCost := ExpMfgOvhdCost + ProdOrderLine.\"Overhead Rate\" * ProdOrderLine.\"Quantity (Base)\";\n- ExpMfgOvhdCost := ExpOvhdCost +\n+ ExpCapDirCostLine := Round(ExpCapDirCostRtng * ShareOfTotalCapCost);\n+ ExpSubDirCostLine := Round(ExpSubDirCostRtng * ShareOfTotalCapCost);\n+ ExpCapOvhdCostLine := Round(ExpCapOvhdCostRtng * ShareOfTotalCapCost);\n+ ExpMfgDirCost := ExpMatCostLine + ExpNonInvMatCostLine + ExpCapDirCostLine + ExpSubDirCostLine + ExpCapOvhdCostLine;\n+\n+ ExpMatCost += ExpMatCostLine;\n+ ExpNonInvMatCost += ExpNonInvMatCostLine;\n+ ExpCapDirCost += ExpCapDirCostLine;\n+ ExpSubDirCost += ExpSubDirCostLine;\n+ ExpCapOvhdCost += ExpCapOvhdCostLine;\n+ ExpMfgOvhdCost += ProdOrderLine.\"Overhead Rate\" * ProdOrderLine.\"Quantity (Base)\" +\n Round(CostCalculationMgt.CalcOvhdCost(ExpMfgDirCost, ProdOrderLine.\"Indirect Cost %\", 0, 0));\n end;\n \n@@ -1011,4 +1027,4 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n local procedure OnAfterCalculateCostTime(MfgItemQtyBase: Decimal; ScrapFactorPctAccum: Decimal; FixedScrapQtyAccum: Decimal; UnitCostCalculationType: Enum \"Unit Cost Calculation Type\"; var CostTime: Decimal)\n begin\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": null, "metrics": {"execution_time": 136.0, "llm_duration": null, "turn_count": 12, "prompt_tokens": 317000, "completion_tokens": 5000, "tool_usage": {"rg": 6, "glob": 1, "powershell": 3, "report_intent": 2, "view": 9, "apply_patch": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-223493__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al b/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al\nindex 6a5f0a88..cbde0e40 100644\n--- a/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al\n@@ -65,6 +65,8 @@ codeunit 1409 \"Sales Inv. Header - Edit\"\n if DisputeStatus.get(SalesInvoiceHeader.\"Dispute Status\") then\n if DisputeStatus.\"Overwrite on hold\" then\n CustLedgerEntry.\"On Hold\" := Copystr(MarkedAsOnHoldLbl, 1, MaxStrLen(CustLedgerEntry.\"On Hold\"));\n+ if CustLedgerEntry.\"On Hold\" = '' then\n+ CustLedgerEntry.\"Your Reference\" := SalesInvoiceHeader.\"Your Reference\";\n CustLedgerEntry.\"Dispute Status\" := SalesInvoiceHeader.\"Dispute Status\";\n OnBeforeUpdateCustLedgerEntryAfterSetValues(CustLedgerEntry, SalesInvoiceHeader);\n CustEntryEdit.SetCalledFromSalesInvoice(true);\ndiff --git a/App/Layers/W1/BaseApp/Sales/Receivables/CustEntryEdit.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Receivables/CustEntryEdit.Codeunit.al\nindex c64fa944..14cccf6f 100644\n--- a/App/Layers/W1/BaseApp/Sales/Receivables/CustEntryEdit.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Receivables/CustEntryEdit.Codeunit.al\n@@ -57,6 +57,7 @@ codeunit 103 \"Cust. Entry-Edit\"\n CustLedgEntry.\"Direct Debit Mandate ID\" := Rec.\"Direct Debit Mandate ID\";\n end;\n CustLedgEntry.Description := Rec.Description;\n+ CustLedgEntry.\"Your Reference\" := Rec.\"Your Reference\";\n CustLedgEntry.Validate(\"Exported to Payment File\", Rec.\"Exported to Payment File\");\n CustLedgEntry.Validate(\"Promised Pay Date\", Rec.\"Promised Pay Date\");\n CustLedgEntry.Validate(\"Dispute Status\", Rec.\"Dispute Status\");\n@@ -117,6 +118,7 @@ codeunit 103 \"Cust. Entry-Edit\"\n begin\n Changed :=\n (CurrCustLedgerEntry.Description <> NewCustLedgerEntry.Description) or\n+ (CurrCustLedgerEntry.\"Your Reference\" <> NewCustLedgerEntry.\"Your Reference\") or\n (CurrCustLedgerEntry.\"Due Date\" <> NewCustLedgerEntry.\"Due Date\") or\n (CurrCustLedgerEntry.\"Payment Method Code\" <> NewCustLedgerEntry.\"Payment Method Code\") or\n (CurrCustLedgerEntry.\"Payment Reference\" <> NewCustLedgerEntry.\"Payment Reference\") or\n", "error_message": null, "metrics": {"execution_time": 192.0, "llm_duration": null, "turn_count": 13, "prompt_tokens": 390900, "completion_tokens": 4600, "tool_usage": {"rg": 11, "glob": 4, "report_intent": 2, "view": 7, "apply_patch": 3, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-223790__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Location/MfgStockkeepingUnit.TableExt.al b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Location/MfgStockkeepingUnit.TableExt.al\nindex e6df0fd1..8e33b704 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Location/MfgStockkeepingUnit.TableExt.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Location/MfgStockkeepingUnit.TableExt.al\n@@ -8,6 +8,7 @@ using Microsoft.Inventory.Item;\n using Microsoft.Manufacturing.Document;\n using Microsoft.Manufacturing.ProductionBOM;\n using Microsoft.Manufacturing.Routing;\n+using Microsoft.Manufacturing.Setup;\n \n tableextension 99000759 \"Mfg. Stockkeeping Unit\" extends \"Stockkeeping Unit\"\n {\n@@ -62,6 +63,29 @@ tableextension 99000759 \"Mfg. Stockkeeping Unit\" extends \"Stockkeeping Unit\"\n Caption = 'Production BOM No.';\n DataClassification = CustomerContent;\n TableRelation = \"Production BOM Header\";\n+\n+ trigger OnValidate()\n+ var\n+ Item: Record Item;\n+ ManufacturingSetup: Record \"Manufacturing Setup\";\n+ ProductionBOMHeader: Record \"Production BOM Header\";\n+ begin\n+ if (\"Production BOM No.\" = '') or (\"Production BOM No.\" = xRec.\"Production BOM No.\") then\n+ exit;\n+\n+ ProductionBOMHeader.Get(\"Production BOM No.\");\n+ if ProductionBOMHeader.Status <> ProductionBOMHeader.Status::Certified then\n+ exit;\n+\n+ ManufacturingSetup.Get();\n+ if not ManufacturingSetup.\"Dynamic Low-Level Code\" then\n+ exit;\n+\n+ if not Item.Get(\"Item No.\") then\n+ exit;\n+\n+ Codeunit.Run(Codeunit::\"Calculate Low-Level Code\", Item);\n+ end;\n }\n field(99000765; \"Planned Order Receipt (Qty.)\"; Decimal)\n {\n@@ -216,4 +240,4 @@ tableextension 99000759 \"Mfg. Stockkeeping Unit\" extends \"Stockkeeping Unit\"\n Page.RunModal(Page::\"Production BOM\", ProductionBOMHeader);\n end;\n end;\n-}\n\\ No newline at end of file\n+}\ndiff --git a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/CalculateLowLevelCode.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/CalculateLowLevelCode.Codeunit.al\nindex 1dcd950b..3c9421b5 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/CalculateLowLevelCode.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/CalculateLowLevelCode.Codeunit.al\n@@ -6,11 +6,13 @@ namespace Microsoft.Manufacturing.ProductionBOM;\n \n using Microsoft.Inventory.BOM;\n using Microsoft.Inventory.Item;\n+using Microsoft.Inventory.Location;\n using Microsoft.Manufacturing.Setup;\n \n codeunit 99000793 \"Calculate Low-Level Code\"\n {\n Permissions = TableData Item = rm,\n+ TableData \"Stockkeeping Unit\" = r,\n TableData \"Manufacturing Setup\" = r;\n TableNo = Item;\n \n@@ -40,12 +42,14 @@ codeunit 99000793 \"Calculate Low-Level Code\"\n procedure CalcLevels(Type: Option \" \",Item,\"Production BOM\",Assembly; No: Code[20]; Level: Integer; LevelDepth: Integer) Result: Integer\n var\n Item2: Record Item;\n+ StockkeepingUnit: Record \"Stockkeeping Unit\";\n ProdBOMLine: Record \"Production BOM Line\";\n AsmBOMComp: Record \"BOM Component\";\n ActLevel: Integer;\n TotalLevels: Integer;\n CalculateDeeperLevel: Boolean;\n IsHandled: Boolean;\n+ ParentItemsHandled: Dictionary of [Code[20], Boolean];\n begin\n IsHandled := false;\n OnBeforeCalcLevels(Type, No, Level, LevelDepth, Result, IsHandled);\n@@ -64,10 +68,26 @@ codeunit 99000793 \"Calculate Low-Level Code\"\n Item2.SetRange(\"Production BOM No.\", No);\n if Item2.FindSet() then\n repeat\n- ActLevel := CalcLevels(Type::Item, Item2.\"No.\", Level + 1, LevelDepth + 1);\n- if ActLevel > TotalLevels then\n- TotalLevels := ActLevel;\n+ if not ParentItemsHandled.ContainsKey(Item2.\"No.\") then begin\n+ ParentItemsHandled.Add(Item2.\"No.\", true);\n+ ActLevel := CalcLevels(Type::Item, Item2.\"No.\", Level + 1, LevelDepth + 1);\n+ if ActLevel > TotalLevels then\n+ TotalLevels := ActLevel;\n+ end;\n until Item2.Next() = 0;\n+\n+ StockkeepingUnit.SetRange(\"Production BOM No.\", No);\n+ if StockkeepingUnit.FindSet() then\n+ repeat\n+ if not ParentItemsHandled.ContainsKey(StockkeepingUnit.\"Item No.\") then\n+ if Item2.Get(StockkeepingUnit.\"Item No.\") then begin\n+ ParentItemsHandled.Add(StockkeepingUnit.\"Item No.\", true);\n+ ActLevel := CalcLevels(Type::Item, Item2.\"No.\", Level + 1, LevelDepth + 1);\n+ if ActLevel > TotalLevels then\n+ TotalLevels := ActLevel;\n+ end;\n+ until StockkeepingUnit.Next() = 0;\n+\n OnCalcLevelsForProdBOM(Item2, No, Level, LevelDepth, TotalLevels);\n end;\n Type::Assembly:\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137035'\nCodeunit 137035 SCM PS Bugs-I\n Testfunction CheckPlanningWorksheetPlanComponentwhenStockkeepingUnitsSetup Failure (17.274 seconds)\n Error:\n Assert.AreEqual failed. Expected:<1> (Integer). Actual:<0> (Integer). New planning worksheet line not created for component item.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"SCM PS Bugs-I\"(CodeUnit 137035).CheckPlanningWorksheetPlanComponentwhenStockkeepingUnitsSetup line 85 - Tests-SCM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0", "metrics": {"execution_time": 366.0, "llm_duration": null, "turn_count": 28, "prompt_tokens": 1600000, "completion_tokens": 14700, "tool_usage": {"glob": 6, "rg": 39, "report_intent": 5, "view": 28, "apply_patch": 2, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-224447__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Foundation/Reporting/ReportSelections.Table.al b/App/Layers/W1/BaseApp/Foundation/Reporting/ReportSelections.Table.al\nindex 7a71bebb..5e7b5d9c 100644\n--- a/App/Layers/W1/BaseApp/Foundation/Reporting/ReportSelections.Table.al\n+++ b/App/Layers/W1/BaseApp/Foundation/Reporting/ReportSelections.Table.al\n@@ -1269,7 +1269,8 @@ table 77 \"Report Selections\"\n Database::\"Sales Invoice Header\",\n Database::\"Sales Cr.Memo Header\",\n Database::\"Sales Shipment Header\",\n- Database::\"Return Receipt Header\"];\n+ Database::\"Return Receipt Header\",\n+ Database::\"Issued Reminder Header\"];\n \n OnAfterIsCustomerAccount(DocumentTableId, IsCustomer);\n end;\n@@ -1521,7 +1522,10 @@ table 77 \"Report Selections\"\n // Related Source - Customer or vendor receiving the document\n TableId := GetAccountTableId(DocumentRecord.Number());\n if TableId = Database::Customer then begin\n- FieldName := 'Sell-to Customer No.';\n+ if DocumentRecord.Number() = Database::\"Issued Reminder Header\" then\n+ FieldName := 'Customer No.'\n+ else\n+ FieldName := 'Sell-to Customer No.';\n OnSendEmailDirectlyOnAfterSetFieldName(DocumentRecord.Number(), FieldName);\n if DataTypeManagement.FindfieldByName(DocumentRecord, FieldRef, FieldName) and Customer.Get(Format(FieldRef.Value())) then begin\n SourceTableIDs.Add(Database::Customer);\n", "error_message": null, "metrics": {"execution_time": 198.0, "llm_duration": null, "turn_count": 21, "prompt_tokens": 1200000, "completion_tokens": 6400, "tool_usage": {"rg": 21, "glob": 1, "view": 25, "report_intent": 2, "apply_patch": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-224668__cf-1", "project": "EssentialBusinessHeadlines", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\nindex 831aa80e..10436a09 100644\n--- a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n+++ b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n@@ -677,7 +677,7 @@ codeunit 1437 \"Essential Bus. Headline Mgt.\"\n var\n EssentialBusinessHeadline: Record \"Ess. Business Headline Per Usr\";\n begin\n- if EssentialBusinessHeadline.Get(HeadlineName) then begin\n+ if EssentialBusinessHeadline.Get(HeadlineName, UserSecurityId()) then begin\n EssentialBusinessHeadline.Validate(\"Headline Visible\", false);\n EssentialBusinessHeadline.Modify();\n end;\n", "error_message": null, "metrics": {"execution_time": 56.0, "llm_duration": null, "turn_count": 7, "prompt_tokens": 118100, "completion_tokens": 1600, "tool_usage": {"rg": 4, "glob": 1, "report_intent": 3, "view": 4, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-224668__cf-2", "project": "EssentialBusinessHeadlines", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\nindex 831aa80e..36cf212f 100644\n--- a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n+++ b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n@@ -677,10 +677,11 @@ codeunit 1437 \"Essential Bus. Headline Mgt.\"\n var\n EssentialBusinessHeadline: Record \"Ess. Business Headline Per Usr\";\n begin\n- if EssentialBusinessHeadline.Get(HeadlineName) then begin\n- EssentialBusinessHeadline.Validate(\"Headline Visible\", false);\n- EssentialBusinessHeadline.Modify();\n- end;\n+ if EssentialBusinessHeadline.Get(HeadlineName, UserSecurityId()) then\n+ if EssentialBusinessHeadline.\"Headline Visible\" then begin\n+ EssentialBusinessHeadline.Validate(\"Headline Visible\", false);\n+ EssentialBusinessHeadline.Modify();\n+ end;\n end;\n \n procedure FormatCurrency(AmountToFormat: Decimal; CurrencyCode: Code[10]): Text\n", "error_message": null, "metrics": {"execution_time": 58.0, "llm_duration": null, "turn_count": 8, "prompt_tokens": 130300, "completion_tokens": 1900, "tool_usage": {"glob": 2, "rg": 3, "view": 4, "report_intent": 2, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-224668__cf-3", "project": "EssentialBusinessHeadlines", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\nindex 831aa80e..6e66728c 100644\n--- a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n+++ b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n@@ -677,10 +677,9 @@ codeunit 1437 \"Essential Bus. Headline Mgt.\"\n var\n EssentialBusinessHeadline: Record \"Ess. Business Headline Per Usr\";\n begin\n- if EssentialBusinessHeadline.Get(HeadlineName) then begin\n- EssentialBusinessHeadline.Validate(\"Headline Visible\", false);\n- EssentialBusinessHeadline.Modify();\n- end;\n+ EssentialBusinessHeadline.GetOrCreateHeadline(HeadlineName);\n+ EssentialBusinessHeadline.Validate(\"Headline Visible\", false);\n+ EssentialBusinessHeadline.Modify();\n end;\n \n procedure FormatCurrency(AmountToFormat: Decimal; CurrencyCode: Code[10]): Text\n", "error_message": null, "metrics": {"execution_time": 76.0, "llm_duration": null, "turn_count": 8, "prompt_tokens": 158500, "completion_tokens": 2100, "tool_usage": {"rg": 6, "glob": 3, "view": 4, "report_intent": 2, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-226875__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\nindex fa043e01..9172aa5c 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n@@ -119,7 +119,9 @@ page 254 \"Purchase Journal\"\n Rec.Validate(Amount, Abs(Rec.Amount))\n else\n if Rec.Amount > 0 then\n- Rec.Validate(Amount, -1 * Rec.Amount)\n+ Rec.Validate(Amount, -1 * Rec.Amount);\n+\n+ UpdateVendorName();\n end;\n }\n field(\"Document No.\"; Rec.\"Document No.\")\n@@ -153,7 +155,7 @@ page 254 \"Purchase Journal\"\n \n trigger OnValidate()\n begin\n- GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ UpdateAccountNames();\n EnableApplyEntriesAction();\n CurrPage.SaveRecord();\n end;\n@@ -165,12 +167,12 @@ page 254 \"Purchase Journal\"\n \n trigger OnValidate()\n begin\n- GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ UpdateAccountNames();\n Rec.ShowShortcutDimCode(ShortcutDimCode);\n CurrPage.SaveRecord();\n end;\n }\n- field(\"\"; AccName)\n+ field(\"\"; VendorName)\n {\n ApplicationArea = Basic, Suite;\n Caption = 'Vendor Name';\n@@ -389,7 +391,7 @@ page 254 \"Purchase Journal\"\n \n trigger OnValidate()\n begin\n- GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ UpdateAccountNames();\n Rec.ShowShortcutDimCode(ShortcutDimCode);\n CurrPage.SaveRecord();\n end;\n@@ -1493,7 +1495,7 @@ page 254 \"Purchase Journal\"\n trigger OnAfterGetCurrRecord()\n begin\n HasIncomingDocument := Rec.\"Incoming Document Entry No.\" <> 0;\n- GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ UpdateAccountNames();\n UpdateBalance();\n EnableApplyEntriesAction();\n SetControlAppearance();\n@@ -1507,7 +1509,7 @@ page 254 \"Purchase Journal\"\n begin\n Rec.ShowShortcutDimCode(ShortcutDimCode);\n DocumentAmount := Abs(Rec.Amount);\n- GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ UpdateAccountNames();\n CurrPage.IncomingDocAttachFactBox.PAGE.SetCurrentRecordID(Rec.RecordId());\n ApprovalMgmt.GetGenJnlLineApprovalStatus(Rec, GenJnlLineApprovalStatus, EnabledGenJnlLineWorkflowsExist);\n end;\n@@ -1638,6 +1640,7 @@ page 254 \"Purchase Journal\"\n protected var\n ShortcutDimCode: array[8] of Code[20];\n AccName: Text[100];\n+ VendorName: Text[100];\n BalAccName: Text[100];\n DimVisible1: Boolean;\n DimVisible2: Boolean;\n@@ -1668,6 +1671,19 @@ page 254 \"Purchase Journal\"\n (Rec.\"Bal. Account Type\" in [Rec.\"Bal. Account Type\"::Customer, Rec.\"Bal. Account Type\"::Vendor]);\n end;\n \n+ local procedure UpdateAccountNames()\n+ begin\n+ GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ UpdateVendorName();\n+ end;\n+\n+ local procedure UpdateVendorName()\n+ begin\n+ Clear(VendorName);\n+ if (Rec.\"Account Type\" = Rec.\"Account Type\"::Vendor) and (Rec.\"Document Type\" = Rec.\"Document Type\"::Invoice) then\n+ VendorName := AccName;\n+ end;\n+\n local procedure CurrentJnlBatchNameOnAfterVali()\n begin\n CurrPage.SaveRecord();\n", "error_message": null, "metrics": {"execution_time": 155.0, "llm_duration": null, "turn_count": 15, "prompt_tokens": 421500, "completion_tokens": 5600, "tool_usage": {"glob": 6, "rg": 14, "view": 11, "report_intent": 1, "apply_patch": 1, "powershell": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-227153__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\nindex e033f91e..98b66bab 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\n@@ -483,6 +483,7 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n repeat\n DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\");\n DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", PostingGr);\n \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n DtldCustLedgEntry.CalcSums(\"Amount (LCY)\");\n CustAccAmount := CustAccAmount + DtldCustLedgEntry.\"Amount (LCY)\";\n@@ -504,6 +505,7 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n repeat\n DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\", \"Entry Type\");\n DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", PostingGr);\n DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n DtldCustLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n@@ -526,6 +528,7 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n repeat\n DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\", \"Entry Type\");\n DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", PostingGr);\n DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n DtldCustLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n@@ -548,6 +551,7 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n repeat\n DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\");\n DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n+ DtldVendLedgEntry.SetRange(\"Posting Group\", PostingGr);\n \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n DtldVendLedgEntry.CalcSums(\"Amount (LCY)\");\n VendAccAmount := VendAccAmount + DtldVendLedgEntry.\"Amount (LCY)\";\n@@ -569,6 +573,7 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n repeat\n DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\", \"Entry Type\");\n DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n+ DtldVendLedgEntry.SetRange(\"Posting Group\", PostingGr);\n DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n DtldVendLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n@@ -591,6 +596,7 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n repeat\n DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\", \"Entry Type\");\n DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n+ DtldVendLedgEntry.SetRange(\"Posting Group\", PostingGr);\n DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n DtldVendLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n", "error_message": null, "metrics": {"execution_time": 159.0, "llm_duration": null, "turn_count": 9, "prompt_tokens": 279900, "completion_tokens": 3400, "tool_usage": {"glob": 3, "rg": 6, "view": 6, "report_intent": 1, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-227153__cf-2", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\nindex e033f91e..dadef08d 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\n@@ -472,132 +472,72 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n \n local procedure CalcCustAccAmount(PostingGr: Code[20]): Decimal\n var\n- Cust: Record Customer;\n DtldCustLedgEntry: Record \"Detailed Cust. Ledg. Entry\";\n- CustAccAmount: Decimal;\n begin\n- Cust.SetCurrentKey(\"Customer Posting Group\");\n- Cust.SetRange(\"Customer Posting Group\", PostingGr);\n-\n- if Cust.Find('-') then\n- repeat\n- DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\");\n- DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n- DtldCustLedgEntry.CalcSums(\"Amount (LCY)\");\n- CustAccAmount := CustAccAmount + DtldCustLedgEntry.\"Amount (LCY)\";\n- until Cust.Next() = 0;\n-\n- exit(CustAccAmount);\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ DtldCustLedgEntry.SetRange(\"Document Type\", DtldCustLedgEntry.\"Document Type\"::Payment);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n+ DtldCustLedgEntry.CalcSums(\"Amount (LCY)\");\n+ exit(DtldCustLedgEntry.\"Amount (LCY)\");\n end;\n \n local procedure CalcCustCreditAmount(PostingGr: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n var\n- Cust: Record Customer;\n DtldCustLedgEntry: Record \"Detailed Cust. Ledg. Entry\";\n- CustCreditAmount: Decimal;\n begin\n- Cust.SetCurrentKey(\"Customer Posting Group\");\n- Cust.SetRange(\"Customer Posting Group\", PostingGr);\n-\n- if Cust.Find('-') then\n- repeat\n- DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\", \"Entry Type\");\n- DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n- DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n- DtldCustLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n- CustCreditAmount := CustCreditAmount + DtldCustLedgEntry.\"Credit Amount (LCY)\";\n- until Cust.Next() = 0;\n-\n- exit(CustCreditAmount);\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ DtldCustLedgEntry.SetRange(\"Document Type\", DtldCustLedgEntry.\"Document Type\"::Payment);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n+ DtldCustLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n+ exit(DtldCustLedgEntry.\"Credit Amount (LCY)\");\n end;\n \n local procedure CalcCustDebitAmount(PostingGr: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n var\n- Cust: Record Customer;\n DtldCustLedgEntry: Record \"Detailed Cust. Ledg. Entry\";\n- CustDebitAmount: Decimal;\n begin\n- Cust.SetCurrentKey(\"Customer Posting Group\");\n- Cust.SetRange(\"Customer Posting Group\", PostingGr);\n-\n- if Cust.Find('-') then\n- repeat\n- DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\", \"Entry Type\");\n- DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n- DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n- DtldCustLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n- CustDebitAmount := CustDebitAmount + DtldCustLedgEntry.\"Debit Amount (LCY)\";\n- until Cust.Next() = 0;\n-\n- exit(-CustDebitAmount);\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ DtldCustLedgEntry.SetRange(\"Document Type\", DtldCustLedgEntry.\"Document Type\"::Payment);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n+ DtldCustLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n+ exit(-DtldCustLedgEntry.\"Debit Amount (LCY)\");\n end;\n \n local procedure CalcVendAccAmount(PostingGr: Code[20]): Decimal\n var\n- Vend: Record Vendor;\n DtldVendLedgEntry: Record \"Detailed Vendor Ledg. Entry\";\n- VendAccAmount: Decimal;\n begin\n- Vend.SetCurrentKey(\"Vendor Posting Group\");\n- Vend.SetRange(\"Vendor Posting Group\", PostingGr);\n-\n- if Vend.Find('-') then\n- repeat\n- DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\");\n- DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n- DtldVendLedgEntry.CalcSums(\"Amount (LCY)\");\n- VendAccAmount := VendAccAmount + DtldVendLedgEntry.\"Amount (LCY)\";\n- until Vend.Next() = 0;\n-\n- exit(VendAccAmount);\n+ DtldVendLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ DtldVendLedgEntry.SetRange(\"Document Type\", DtldVendLedgEntry.\"Document Type\"::Payment);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n+ DtldVendLedgEntry.CalcSums(\"Amount (LCY)\");\n+ exit(DtldVendLedgEntry.\"Amount (LCY)\");\n end;\n \n local procedure CalcVendCreditAmount(PostingGr: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n var\n- Vend: Record Vendor;\n DtldVendLedgEntry: Record \"Detailed Vendor Ledg. Entry\";\n- VendCreditAmount: Decimal;\n begin\n- Vend.SetCurrentKey(\"Vendor Posting Group\");\n- Vend.SetRange(\"Vendor Posting Group\", PostingGr);\n-\n- if Vend.Find('-') then\n- repeat\n- DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\", \"Entry Type\");\n- DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n- DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n- DtldVendLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n- VendCreditAmount := VendCreditAmount + DtldVendLedgEntry.\"Credit Amount (LCY)\";\n- until Vend.Next() = 0;\n-\n- exit(VendCreditAmount);\n+ DtldVendLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ DtldVendLedgEntry.SetRange(\"Document Type\", DtldVendLedgEntry.\"Document Type\"::Payment);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n+ DtldVendLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n+ exit(DtldVendLedgEntry.\"Credit Amount (LCY)\");\n end;\n \n local procedure CalcVendDebitAmount(PostingGr: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n var\n- Vend: Record Vendor;\n DtldVendLedgEntry: Record \"Detailed Vendor Ledg. Entry\";\n- VendDebitAmount: Decimal;\n begin\n- Vend.SetCurrentKey(\"Vendor Posting Group\");\n- Vend.SetRange(\"Vendor Posting Group\", PostingGr);\n-\n- if Vend.Find('-') then\n- repeat\n- DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\", \"Entry Type\");\n- DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n- DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n- DtldVendLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n- VendDebitAmount := VendDebitAmount + DtldVendLedgEntry.\"Debit Amount (LCY)\";\n- until Vend.Next() = 0;\n-\n- exit(-VendDebitAmount);\n+ DtldVendLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ DtldVendLedgEntry.SetRange(\"Document Type\", DtldVendLedgEntry.\"Document Type\"::Payment);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n+ DtldVendLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n+ exit(-DtldVendLedgEntry.\"Debit Amount (LCY)\");\n end;\n \n local procedure CalcCurrGainLossAmount(CurrencyCode: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n", "error_message": null, "metrics": {"execution_time": 160.0, "llm_duration": null, "turn_count": 14, "prompt_tokens": 519799, "completion_tokens": 7300, "tool_usage": {"rg": 7, "view": 12, "report_intent": 2, "glob": 4, "apply_patch": 1, "powershell": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-227219__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al\nindex 979cdb45..ddae0cb3 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al\n@@ -119,18 +119,21 @@ codeunit 5708 \"Release Transfer Document\"\n if IsHandled then\n exit;\n \n- TransLine.SetLoadFields(\"Document No.\", Quantity, \"Item No.\");\n+ TransLine.SetLoadFields(\"Document No.\", Quantity, \"Item No.\", \"Variant Code\", \"Unit of Measure Code\");\n TransLine.SetRange(\"Document No.\", TransHeader.\"No.\");\n TransLine.SetFilter(Quantity, '<>0');\n if TransLine.IsEmpty() then\n Error(NothingToReleaseErr, TransHeader.\"No.\");\n \n TransLine.SetFilter(\"Item No.\", '<>%1', '');\n+ Item.SetLoadFields(\"No.\", \"Variant Mandatory if Exists\", Type);\n if TransLine.FindSet() then\n repeat\n Item.Get(TransLine.\"Item No.\");\n if Item.IsInventoriableType() then\n TransLine.TestField(\"Unit of Measure Code\");\n+ if Item.IsVariantMandatory(InvtSetup.\"Variant Mandatory if Exists\") then\n+ TransLine.TestField(\"Variant Code\");\n until TransLine.Next() = 0;\n TransLine.SetFilter(\"Item No.\", '');\n end;\n", "error_message": null, "metrics": {"execution_time": 109.0, "llm_duration": null, "turn_count": 10, "prompt_tokens": 249500, "completion_tokens": 3500, "tool_usage": {"rg": 9, "report_intent": 2, "glob": 2, "view": 9, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-227358__cf-1", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\nindex 61aff663..877c7c70 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\n@@ -999,15 +999,24 @@ codeunit 13 \"Gen. Jnl.-Post Batch\"\n local procedure UnlinkIncDocFromGenJnlLine(var GenJnlLine: Record \"Gen. Journal Line\")\n var\n CurrGenJnlTemplate: Record \"Gen. Journal Template\";\n+ CurrGenJnlLine: Record \"Gen. Journal Line\";\n begin\n if GenJnlLine.\"Journal Template Name\" = '' then\n exit;\n+ if GenJnlLine.\"Incoming Document Entry No.\" = 0 then\n+ exit;\n if not CurrGenJnlTemplate.Get(GenJnlLine.\"Journal Template Name\") then\n exit;\n if not CurrGenJnlTemplate.\"Unlink Inc. Doc On Posting\" then\n exit;\n+ if not CurrGenJnlLine.Get(GenJnlLine.\"Journal Template Name\", GenJnlLine.\"Journal Batch Name\", GenJnlLine.\"Line No.\") then\n+ exit;\n+ if CurrGenJnlLine.\"Incoming Document Entry No.\" = 0 then\n+ exit;\n+\n+ CurrGenJnlLine.\"Incoming Document Entry No.\" := 0;\n+ CurrGenJnlLine.Modify();\n GenJnlLine.\"Incoming Document Entry No.\" := 0;\n- GenJnlLine.Modify();\n end;\n \n local procedure CopyGenJnlLineBalancingData(var GenJnlLineTo: Record \"Gen. Journal Line\"; var GenJnlLineFrom: Record \"Gen. Journal Line\")\n", "error_message": null, "metrics": {"execution_time": 78.0, "llm_duration": null, "turn_count": 6, "prompt_tokens": 111500, "completion_tokens": 2700, "tool_usage": {"rg": 3, "view": 3, "apply_patch": 1, "report_intent": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-227358__cf-2", "project": "BaseApp", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\nindex 61aff663..f1618686 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\n@@ -999,6 +999,7 @@ codeunit 13 \"Gen. Jnl.-Post Batch\"\n local procedure UnlinkIncDocFromGenJnlLine(var GenJnlLine: Record \"Gen. Journal Line\")\n var\n CurrGenJnlTemplate: Record \"Gen. Journal Template\";\n+ CurrGenJnlLine: Record \"Gen. Journal Line\";\n begin\n if GenJnlLine.\"Journal Template Name\" = '' then\n exit;\n@@ -1006,8 +1007,14 @@ codeunit 13 \"Gen. Jnl.-Post Batch\"\n exit;\n if not CurrGenJnlTemplate.\"Unlink Inc. Doc On Posting\" then\n exit;\n+ if GenJnlLine.\"Incoming Document Entry No.\" = 0 then\n+ exit;\n+\n+ if not CurrGenJnlLine.Get(GenJnlLine.\"Journal Template Name\", GenJnlLine.\"Journal Batch Name\", GenJnlLine.\"Line No.\") then\n+ exit;\n+ CurrGenJnlLine.\"Incoming Document Entry No.\" := 0;\n+ CurrGenJnlLine.Modify();\n GenJnlLine.\"Incoming Document Entry No.\" := 0;\n- GenJnlLine.Modify();\n end;\n \n local procedure CopyGenJnlLineBalancingData(var GenJnlLineTo: Record \"Gen. Journal Line\"; var GenJnlLineFrom: Record \"Gen. Journal Line\")\n", "error_message": null, "metrics": {"execution_time": 84.0, "llm_duration": null, "turn_count": 7, "prompt_tokens": 146700, "completion_tokens": 3000, "tool_usage": {"rg": 5, "view": 6, "report_intent": 1, "apply_patch": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoft__BCApps-4699__cf-1", "project": "Shopify", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al b/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al\nindex 4e6ffd2..51c270b 100644\n--- a/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al\n@@ -9,6 +9,7 @@ using Microsoft.Inventory.Item;\n using Microsoft.Foundation.UOM;\n using Microsoft.Purchases.Vendor;\n using Microsoft.Inventory.Item.Catalog;\n+using Microsoft.Finance.Currency;\n \n /// \n /// Codeunit Shpfy Create Item (ID 30171).\n@@ -258,10 +259,10 @@ codeunit 30171 \"Shpfy Create Item\"\n CreateItemUnitOfMeasure(ShopifyVariant, Item);\n \n if ShopifyVariant.\"Unit Cost\" <> 0 then\n- Item.Validate(\"Unit Cost\", ShopifyVariant.\"Unit Cost\");\n+ Item.Validate(\"Unit Cost\", ConvertAmountToLCY(ShopifyVariant.\"Unit Cost\"));\n \n if ShopifyVariant.Price <> 0 then\n- Item.Validate(\"Unit Price\", ShopifyVariant.Price);\n+ Item.Validate(\"Unit Price\", ConvertAmountToLCY(ShopifyVariant.Price));\n \n if ShopifyProduct.\"Product Type\" <> '' then begin\n ItemCategory.SetFilter(Description, FilterMgt.CleanFilterValue(ShopifyProduct.\"Product Type\", MaxStrLen(ItemCategory.Description)));\n@@ -317,6 +318,22 @@ codeunit 30171 \"Shpfy Create Item\"\n end;\n end;\n \n+ local procedure ConvertAmountToLCY(Amount: Decimal): Decimal\n+ var\n+ CurrencyExchangeRate: Record \"Currency Exchange Rate\";\n+ begin\n+ if Shop.\"Currency Code\" = '' then\n+ exit(Amount);\n+\n+ exit(\n+ Round(\n+ CurrencyExchangeRate.ExchangeAmtFCYToLCY(\n+ WorkDate(),\n+ Shop.\"Currency Code\",\n+ Amount,\n+ CurrencyExchangeRate.ExchangeRate(WorkDate(), Shop.\"Currency Code\"))));\n+ end;\n+\n local procedure CreateItemFromTemplate(var Item: Record Item; ItemTemplCode: Code[20]; ItemNo: Code[20])\n var\n ItemTempl: Record \"Item Templ.\";\n@@ -501,4 +518,4 @@ codeunit 30171 \"Shpfy Create Item\"\n begin\n TemplateCode := Code;\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139567'\nCodeunit 139567 Shpfy Create Item Test\n Testfunction UnitTestCreateItemFCYToLCYConversion Failure (5.3 seconds)\n Error:\n Assert.AreNearlyEqual failed. Expected a difference no greater than <0.1> between expected value <6> and actual value <3>. Unit Cost\n Call Stack:\n \"Library Assert\"(CodeUnit 130002).AreNearlyEqual line 3 - Library Assert by Microsoft version 27.0.0.0\n \"Shpfy Create Item Test\"(CodeUnit 139567).UnitTestCreateItemFCYToLCYConversion line 28 - Shopify Connector Test by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0", "metrics": {"execution_time": 98.0, "llm_duration": null, "turn_count": 12, "prompt_tokens": 270600, "completion_tokens": 4300, "tool_usage": {"rg": 9, "glob": 3, "view": 10, "report_intent": 1, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoft__BCApps-4822__cf-1", "project": "Shopify", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\nindex 2d20144..b9b9083 100644\n--- a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\n@@ -523,7 +523,7 @@ codeunit 30286 \"Shpfy Company API\"\n JResponse := CommunicationMgt.ExecuteGraphQL(GraphQuery.ToText());\n if JResponse.SelectToken('$.data.companyLocationCreate.companyLocation', JCompanyLocation) then\n if not JsonHelper.IsTokenNull(JCompanyLocation) then begin\n- LocationId := CreateCustomerLocation(JCompanyLocation.AsObject(), ShopifyCompany, Customer.SystemId);\n+ LocationId := CreateCustomerLocation(JCompanyLocation.AsObject(), ShopifyCompany, Customer);\n if JsonHelper.GetJsonArray(JCompanyLocation, JContactRoles, 'company.contactRoles.edges') then begin\n foreach JItem in JContactRoles do\n CompanyContactRoles.Add(JsonHelper.GetValueAsText(JItem, 'node.name'), CommunicationMgt.GetIdOfGId(JsonHelper.GetValueAsText(JItem, 'node.id')));\n@@ -540,7 +540,7 @@ codeunit 30286 \"Shpfy Company API\"\n /// \n /// JSON object containing the company location data from Shopify API response.\n /// The parent Shopify company record.\n- /// The GUID of the Business Central customer that was exported.\n+ /// The Business Central customer that was exported.\n /// \n /// This procedure:\n /// - Extracts the Shopify-generated ID and creates the initial record\n@@ -552,7 +552,7 @@ codeunit 30286 \"Shpfy Company API\"\n /// The procedure assumes the JSON structure matches Shopify's companyLocationCreate response format.\n /// All text fields are properly truncated to match the field lengths in the table definition.\n /// \n- local procedure CreateCustomerLocation(JCompanyLocation: JsonObject; ShopifyCompany: Record \"Shpfy Company\"; CustomerId: Guid): BigInteger\n+ local procedure CreateCustomerLocation(JCompanyLocation: JsonObject; ShopifyCompany: Record \"Shpfy Company\"; Customer: Record Customer): BigInteger\n var\n CompanyLocation: Record \"Shpfy Company Location\";\n CompanyLocationId: BigInteger;\n@@ -580,7 +580,9 @@ codeunit 30286 \"Shpfy Company API\"\n #pragma warning restore AA0139\n CompanyLocation.Recipient := CopyStr(JsonHelper.GetValueAsText(JCompanyLocation, 'billingAddress.recipient', MaxStrLen(CompanyLocation.Recipient)), 1, MaxStrLen(CompanyLocation.Recipient));\n CompanyLocation.\"Shpfy Payment Terms Id\" := CommunicationMgt.GetIdOfGId(JsonHelper.GetValueAsText(JCompanyLocation, 'buyerExperienceConfiguration.paymentTermsTemplate.id'));\n- CompanyLocation.\"Customer Id\" := CustomerId;\n+ CompanyLocation.\"Sell-to Customer No.\" := Customer.\"No.\";\n+ CompanyLocation.\"Bill-to Customer No.\" := Customer.\"Bill-to Customer No.\";\n+ CompanyLocation.\"Customer Id\" := Customer.SystemId;\n CompanyLocation.Modify(true);\n exit(CompanyLocationId);\n end;\n@@ -633,4 +635,4 @@ codeunit 30286 \"Shpfy Company API\"\n exit(true);\n end;\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": null, "metrics": {"execution_time": 129.0, "llm_duration": null, "turn_count": 16, "prompt_tokens": 477400, "completion_tokens": 4200, "tool_usage": {"rg": 9, "view": 11, "glob": 2, "report_intent": 2, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoft__BCApps-4822__cf-2", "project": "Shopify", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\nindex 2d20144..80646bb 100644\n--- a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\n@@ -523,7 +523,7 @@ codeunit 30286 \"Shpfy Company API\"\n JResponse := CommunicationMgt.ExecuteGraphQL(GraphQuery.ToText());\n if JResponse.SelectToken('$.data.companyLocationCreate.companyLocation', JCompanyLocation) then\n if not JsonHelper.IsTokenNull(JCompanyLocation) then begin\n- LocationId := CreateCustomerLocation(JCompanyLocation.AsObject(), ShopifyCompany, Customer.SystemId);\n+ LocationId := CreateCustomerLocation(JCompanyLocation.AsObject(), ShopifyCompany, Customer);\n if JsonHelper.GetJsonArray(JCompanyLocation, JContactRoles, 'company.contactRoles.edges') then begin\n foreach JItem in JContactRoles do\n CompanyContactRoles.Add(JsonHelper.GetValueAsText(JItem, 'node.name'), CommunicationMgt.GetIdOfGId(JsonHelper.GetValueAsText(JItem, 'node.id')));\n@@ -540,7 +540,7 @@ codeunit 30286 \"Shpfy Company API\"\n /// \n /// JSON object containing the company location data from Shopify API response.\n /// The parent Shopify company record.\n- /// The GUID of the Business Central customer that was exported.\n+ /// The Business Central customer that was exported.\n /// \n /// This procedure:\n /// - Extracts the Shopify-generated ID and creates the initial record\n@@ -552,7 +552,7 @@ codeunit 30286 \"Shpfy Company API\"\n /// The procedure assumes the JSON structure matches Shopify's companyLocationCreate response format.\n /// All text fields are properly truncated to match the field lengths in the table definition.\n /// \n- local procedure CreateCustomerLocation(JCompanyLocation: JsonObject; ShopifyCompany: Record \"Shpfy Company\"; CustomerId: Guid): BigInteger\n+ local procedure CreateCustomerLocation(JCompanyLocation: JsonObject; ShopifyCompany: Record \"Shpfy Company\"; Customer: Record Customer): BigInteger\n var\n CompanyLocation: Record \"Shpfy Company Location\";\n CompanyLocationId: BigInteger;\n@@ -580,7 +580,12 @@ codeunit 30286 \"Shpfy Company API\"\n #pragma warning restore AA0139\n CompanyLocation.Recipient := CopyStr(JsonHelper.GetValueAsText(JCompanyLocation, 'billingAddress.recipient', MaxStrLen(CompanyLocation.Recipient)), 1, MaxStrLen(CompanyLocation.Recipient));\n CompanyLocation.\"Shpfy Payment Terms Id\" := CommunicationMgt.GetIdOfGId(JsonHelper.GetValueAsText(JCompanyLocation, 'buyerExperienceConfiguration.paymentTermsTemplate.id'));\n- CompanyLocation.\"Customer Id\" := CustomerId;\n+ CompanyLocation.\"Customer Id\" := Customer.SystemId;\n+ if Customer.\"No.\" <> '' then begin\n+ CompanyLocation.Validate(\"Sell-to Customer No.\", Customer.\"No.\");\n+ if Customer.\"Bill-to Customer No.\" <> '' then\n+ CompanyLocation.Validate(\"Bill-to Customer No.\", Customer.\"Bill-to Customer No.\");\n+ end;\n CompanyLocation.Modify(true);\n exit(CompanyLocationId);\n end;\n@@ -633,4 +638,4 @@ codeunit 30286 \"Shpfy Company API\"\n exit(true);\n end;\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139539'\nCodeunit 139539 Shpfy Company Locations Test\n Testfunction TestCreateCompanyLocationSellToBillTo Failure (6.13 seconds)\n Error:\n The field Bill-to Customer No. of table Shopify Company Location contains a value (BILLTO) that cannot be found in the related table (Customer).\n Call Stack:\n \"Shpfy Company API\"(CodeUnit 30286).CreateCustomerLocation line 32 - Shopify Connector by Microsoft version 27.0.0.0\n \"Shpfy Company API\"(CodeUnit 30286).CreateCustomerAsCompanyLocation line 55 - Shopify Connector by Microsoft version 27.0.0.0\n \"Shpfy Company Locations Test\"(CodeUnit 139539).TestCreateCompanyLocationSellToBillTo line 15 - Shopify Connector Test by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0", "metrics": {"execution_time": 114.0, "llm_duration": null, "turn_count": 13, "prompt_tokens": 360000, "completion_tokens": 3900, "tool_usage": {"rg": 7, "glob": 4, "report_intent": 10, "view": 12, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoft__BCApps-5633__cf-1", "project": "Shopify", "model": "gpt-5-3-codex", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al b/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al\nindex 1f790f9..4a9e3c8 100644\n--- a/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al\n@@ -24,6 +24,7 @@ codeunit 30190 \"Shpfy Export Shipments\"\n ShippingEvents: Codeunit \"Shpfy Shipping Events\";\n NoCorrespondingFulfillmentLinesLbl: Label 'No corresponding fulfillment lines found.';\n NoFulfillmentCreatedInShopifyLbl: Label 'Fulfillment was not created in Shopify.';\n+ ThirdPartyFulfillmentServiceLbl: Label 'The shipment was skipped because the associated fulfillment order is managed by a third-party fulfillment service.';\n \n /// \n /// Create Shopify Fulfillment.\n@@ -58,6 +59,12 @@ codeunit 30190 \"Shpfy Export Shipments\"\n if ShopifyOrderHeader.Get(SalesShipmentHeader.\"Shpfy Order Id\") then begin\n ShopifyCommunicationMgt.SetShop(ShopifyOrderHeader.\"Shop Code\");\n Shop.Get(ShopifyOrderHeader.\"Shop Code\");\n+ if IsThirdPartyFulfillmentServiceLocation(Shop, LocationId) then begin\n+ SkippedRecord.LogSkippedRecord(SalesShipmentHeader.\"Shpfy Order Id\", SalesShipmentHeader.RecordId, ThirdPartyFulfillmentServiceLbl, Shop);\n+ SalesShipmentHeader.\"Shpfy Fulfillment Id\" := -1;\n+ SalesShipmentHeader.Modify(true);\n+ exit;\n+ end;\n FulfillmentOrderRequests := CreateFulfillmentOrderRequest(SalesShipmentHeader, Shop, LocationId, DeliveryMethodType, AssignedFulfillmentOrderIds);\n if FulfillmentOrderRequests.Count <> 0 then\n foreach FulfillmentOrderRequest in FulfillmentOrderRequests do begin\n@@ -80,6 +87,26 @@ codeunit 30190 \"Shpfy Export Shipments\"\n end;\n end;\n \n+ local procedure IsThirdPartyFulfillmentServiceLocation(Shop: Record \"Shpfy Shop\"; LocationId: BigInteger): Boolean\n+ var\n+ ShopLocation: Record \"Shpfy Shop Location\";\n+ SyncShopLocations: Codeunit \"Shpfy Sync Shop Locations\";\n+ begin\n+ if not ShopLocation.Get(Shop.Code, LocationId) then\n+ exit(false);\n+\n+ if not ShopLocation.\"Is Fulfillment Service\" then\n+ exit(false);\n+\n+ if ShopLocation.Name = SyncShopLocations.GetFulfillmentServiceName() then\n+ exit(false);\n+\n+ if ShopLocation.\"Fulfillment Srv. Callback Url\" = SyncShopLocations.GetFulfillmentServiceCallbackUrl() then\n+ exit(false);\n+\n+ exit(true);\n+ end;\n+\n internal procedure CreateFulfillmentOrderRequest(SalesShipmentHeader: Record \"Sales Shipment Header\"; Shop: Record \"Shpfy Shop\"; LocationId: BigInteger; DeliveryMethodType: Enum \"Shpfy Delivery Method Type\"; var AssignedFulfillmentOrderIds: Dictionary of [BigInteger, Code[20]]) Requests: List of [Text];\n var\n SalesShipmentLine: Record \"Sales Shipment Line\";\n@@ -249,4 +276,4 @@ codeunit 30190 \"Shpfy Export Shipments\"\n if FulfillmentOrdersAPI.AcceptFulfillmentRequest(Shop, FulfillmentOrderHeader) then\n AssignedFulfillmentOrderIds.Remove(FulfillmentOrderId);\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139606'\nCodeunit 139606 Shpfy Shipping Test\n Testfunction UnitTestExportShipmentThirdParty Failure (5.737 seconds)\n Error:\n Assert.AreEqual failed. Expected:<0> (Integer). Actual:<1> (Integer). FulfillmentRequest count check.\n Call Stack:\n \"Library Assert\"(CodeUnit 130002).AreEqual line 3 - Library Assert by Microsoft version 27.2.0.0\n \"Shpfy Shipping Test\"(CodeUnit 139606).UnitTestExportShipmentThirdParty line 26 - Shopify Connector Test by Microsoft version 27.2.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.2.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.2.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.2.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.2.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.2.0.0", "metrics": {"execution_time": 139.0, "llm_duration": null, "turn_count": 14, "prompt_tokens": 487900, "completion_tokens": 5600, "tool_usage": {"glob": 2, "rg": 8, "report_intent": 8, "powershell": 2, "view": 16, "apply_patch": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} diff --git a/notebooks/result/bug-fix/copilot-cf-gpt-5-4/base-run-22944097295.jsonl b/notebooks/result/bug-fix/copilot-cf-gpt-5-4/base-run-22944097295.jsonl new file mode 100644 index 000000000..93c95a99f --- /dev/null +++ b/notebooks/result/bug-fix/copilot-cf-gpt-5-4/base-run-22944097295.jsonl @@ -0,0 +1,101 @@ +{"instance_id": "microsoftInternal__NAV-220452", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-224009", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-203923", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-209835", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-174087", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-217797", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-182354", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-178045", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-180484", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-223493", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-211548", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-222488", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-224447", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-218786", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-223790", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-204450", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-226223", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-174794", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-216918", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-215225", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-193649", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-227219", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-188438", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-213741", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-195193", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-216572", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-176150", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-217104", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-227153", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoft__BCApps-5633", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-219082", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-185792", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-218995", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-183399", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-213683", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-208851", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoft__BCApps-4822", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-191624", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-226448", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-214557", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-226875", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-220984", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-222484", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-223202", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-181900", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-177493", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-227358", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-223819", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-175577", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-207878", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-209450", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-176426", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-214926", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-221877", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoft__BCApps-4699", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-226004", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-213524", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-206527", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-179733", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-209737", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-218062", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-220036", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-176082", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-201169", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-185696", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-207247", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-208649", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-210528", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-210200", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-213629", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-211710", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-227240", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-218856", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-207177", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-206977", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-192565", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-208748", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-207236", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-209496", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-176194", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-212355", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-220314", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoft__BCApps-4766", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-216057", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-224668", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-175765", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-205825", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-218323", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-185488", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-215972", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-211521", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-222092", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-213671", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-214825", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-208320", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-177750", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-217974", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-206135", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-193853", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-215645", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} +{"instance_id": "microsoftInternal__NAV-218253", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22944097295"} diff --git a/notebooks/result/bug-fix/copilot-cf-gpt-5-4/base-run-22961946198.jsonl b/notebooks/result/bug-fix/copilot-cf-gpt-5-4/base-run-22961946198.jsonl new file mode 100644 index 000000000..b9acbc96a --- /dev/null +++ b/notebooks/result/bug-fix/copilot-cf-gpt-5-4/base-run-22961946198.jsonl @@ -0,0 +1,101 @@ +{"instance_id": "microsoftInternal__NAV-220452", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-224009", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-203923", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-209835", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-174087", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-217797", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-182354", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-178045", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-180484", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-223493", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-211548", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-222488", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-224447", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-218786", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-223790", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-204450", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-226223", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-174794", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-216918", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-215225", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-193649", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-227219", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-188438", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-213741", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-195193", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-216572", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-176150", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-217104", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-227153", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoft__BCApps-5633", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-219082", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-185792", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-218995", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-183399", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-213683", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-208851", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoft__BCApps-4822", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-191624", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-226448", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-214557", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-226875", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-220984", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-222484", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-223202", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-181900", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-177493", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-227358", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-223819", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-175577", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-207878", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-209450", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-176426", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-214926", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-221877", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoft__BCApps-4699", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-226004", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-213524", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-206527", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-179733", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-209737", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-218062", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-220036", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-176082", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-201169", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-185696", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-207247", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-208649", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-210528", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-210200", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-213629", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-211710", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-227240", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-218856", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-207177", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-206977", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-192565", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-208748", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-207236", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-209496", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-176194", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-212355", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-220314", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoft__BCApps-4766", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-216057", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-224668", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-175765", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-205825", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-218323", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-185488", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-215972", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-211521", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-222092", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-213671", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-214825", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-208320", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-177750", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-217974", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-206135", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-193853", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-215645", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} +{"instance_id": "microsoftInternal__NAV-218253", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22961946198"} diff --git a/notebooks/result/bug-fix/copilot-cf-gpt-5-4/base-run-22971801257.jsonl b/notebooks/result/bug-fix/copilot-cf-gpt-5-4/base-run-22971801257.jsonl new file mode 100644 index 000000000..471fc8358 --- /dev/null +++ b/notebooks/result/bug-fix/copilot-cf-gpt-5-4/base-run-22971801257.jsonl @@ -0,0 +1,101 @@ +{"instance_id": "microsoftInternal__NAV-220452", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-224009", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-203923", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-209835", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-174087", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-217797", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-182354", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-178045", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-180484", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-223493", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-211548", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-222488", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-224447", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-218786", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-223790", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-204450", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-226223", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-174794", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-216918", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-215225", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-193649", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-227219", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-188438", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-213741", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-195193", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-216572", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-176150", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-217104", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-227153", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoft__BCApps-5633", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-219082", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-185792", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-218995", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-183399", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-213683", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-208851", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoft__BCApps-4822", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-191624", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-226448", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-214557", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-226875", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-220984", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-222484", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-223202", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-181900", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-177493", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-227358", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-223819", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-175577", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-207878", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-209450", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-176426", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-214926", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-221877", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoft__BCApps-4699", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-226004", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-213524", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-206527", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-179733", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-209737", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-218062", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-220036", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-176082", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-201169", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-185696", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-207247", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-208649", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-210528", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-210200", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-213629", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-211710", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-227240", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-218856", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-207177", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-206977", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-192565", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-208748", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-207236", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-209496", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-176194", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-212355", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-220314", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoft__BCApps-4766", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-216057", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-224668", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-175765", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-205825", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-218323", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-185488", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-215972", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-211521", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-222092", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-213671", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-214825", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-208320", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-177750", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-217974", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-206135", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-193853", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-215645", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} +{"instance_id": "microsoftInternal__NAV-218253", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22971801257"} diff --git a/notebooks/result/bug-fix/copilot-cf-gpt-5-4/base-run-22980242744.jsonl b/notebooks/result/bug-fix/copilot-cf-gpt-5-4/base-run-22980242744.jsonl new file mode 100644 index 000000000..20f9e3028 --- /dev/null +++ b/notebooks/result/bug-fix/copilot-cf-gpt-5-4/base-run-22980242744.jsonl @@ -0,0 +1,101 @@ +{"instance_id": "microsoftInternal__NAV-220452", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-224009", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-203923", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-209835", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-174087", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-217797", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-182354", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-178045", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-180484", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-223493", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-211548", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-222488", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-224447", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-218786", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-223790", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-204450", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-226223", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-174794", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-216918", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-215225", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-193649", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-227219", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-188438", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-213741", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-195193", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-216572", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-176150", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-217104", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-227153", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoft__BCApps-5633", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-219082", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-185792", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-218995", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-183399", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-213683", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-208851", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoft__BCApps-4822", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-191624", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-226448", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-214557", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-226875", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-220984", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-222484", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-223202", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-181900", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-177493", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-227358", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-223819", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-175577", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-207878", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-209450", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-176426", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-214926", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-221877", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoft__BCApps-4699", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-226004", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-213524", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-206527", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-179733", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-209737", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-218062", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-220036", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-176082", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-201169", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-185696", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-207247", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-208649", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-210528", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-210200", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-213629", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-211710", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-227240", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-218856", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-207177", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-206977", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-192565", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-208748", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-207236", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-209496", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-176194", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-212355", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-220314", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoft__BCApps-4766", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-216057", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-224668", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-175765", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-205825", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-218323", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-185488", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-215972", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-211521", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-222092", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-213671", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-214825", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-208320", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-177750", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-217974", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-206135", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-193853", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-215645", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} +{"instance_id": "microsoftInternal__NAV-218253", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22980242744"} diff --git a/notebooks/result/bug-fix/copilot-cf-gpt-5-4/base-run-22993411078.jsonl b/notebooks/result/bug-fix/copilot-cf-gpt-5-4/base-run-22993411078.jsonl new file mode 100644 index 000000000..7546251ac --- /dev/null +++ b/notebooks/result/bug-fix/copilot-cf-gpt-5-4/base-run-22993411078.jsonl @@ -0,0 +1,101 @@ +{"instance_id": "microsoftInternal__NAV-220452", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-224009", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-203923", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-209835", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-174087", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-217797", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-182354", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-178045", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-180484", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-223493", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-211548", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-222488", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-224447", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-218786", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-223790", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-204450", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-226223", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-174794", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-216918", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-215225", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-193649", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-227219", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-188438", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-213741", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-195193", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-216572", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-176150", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-217104", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-227153", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoft__BCApps-5633", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-219082", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-185792", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-218995", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-183399", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-213683", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-208851", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoft__BCApps-4822", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-191624", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-226448", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-214557", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-226875", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-220984", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-222484", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-223202", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-181900", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-177493", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-227358", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-223819", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-175577", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-207878", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-209450", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-176426", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-214926", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-221877", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoft__BCApps-4699", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-226004", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-213524", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-206527", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-179733", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-209737", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-218062", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-220036", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-176082", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-201169", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-185696", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-207247", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-208649", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-210528", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-210200", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-213629", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-211710", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-227240", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-218856", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-207177", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-206977", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-192565", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-208748", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-207236", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-209496", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-176194", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-212355", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-220314", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoft__BCApps-4766", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-216057", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-224668", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-175765", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-205825", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-218323", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-185488", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-215972", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-211521", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-222092", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-213671", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-214825", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-208320", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-177750", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-217974", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-206135", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-193853", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-215645", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} +{"instance_id": "microsoftInternal__NAV-218253", "project": "", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "", "source": "leaderboard:docs/_data/bug-fix.json", "github_run_id": "22993411078"} diff --git a/notebooks/result/bug-fix/copilot-cf-gpt-5-4/run-25282504540.jsonl b/notebooks/result/bug-fix/copilot-cf-gpt-5-4/run-25282504540.jsonl new file mode 100644 index 000000000..7a46359a1 --- /dev/null +++ b/notebooks/result/bug-fix/copilot-cf-gpt-5-4/run-25282504540.jsonl @@ -0,0 +1,242 @@ +{"instance_id": "microsoft__BCApps-4699__cf-1", "project": "Shopify", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al b/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al\nindex 4e6ffd2..53f3b97 100644\n--- a/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al\n@@ -5,6 +5,7 @@\n \n namespace Microsoft.Integration.Shopify;\n \n+using Microsoft.Finance.Currency;\n using Microsoft.Inventory.Item;\n using Microsoft.Foundation.UOM;\n using Microsoft.Purchases.Vendor;\n@@ -258,10 +259,10 @@ codeunit 30171 \"Shpfy Create Item\"\n CreateItemUnitOfMeasure(ShopifyVariant, Item);\n \n if ShopifyVariant.\"Unit Cost\" <> 0 then\n- Item.Validate(\"Unit Cost\", ShopifyVariant.\"Unit Cost\");\n+ Item.Validate(\"Unit Cost\", ConvertToLCY(ShopifyVariant.\"Unit Cost\"));\n \n if ShopifyVariant.Price <> 0 then\n- Item.Validate(\"Unit Price\", ShopifyVariant.Price);\n+ Item.Validate(\"Unit Price\", ConvertToLCY(ShopifyVariant.Price));\n \n if ShopifyProduct.\"Product Type\" <> '' then begin\n ItemCategory.SetFilter(Description, FilterMgt.CleanFilterValue(ShopifyProduct.\"Product Type\", MaxStrLen(ItemCategory.Description)));\n@@ -288,6 +289,18 @@ codeunit 30171 \"Shpfy Create Item\"\n CreateReferences(ShopifyProduct, ShopifyVariant, Item, ItemVariant);\n end;\n \n+ local procedure ConvertToLCY(Amount: Decimal): Decimal\n+ var\n+ CurrencyExchangeRate: Record \"Currency Exchange Rate\";\n+ begin\n+ if Shop.\"Currency Code\" = '' then\n+ exit(Amount);\n+\n+ exit(CurrencyExchangeRate.ExchangeAmtFCYToLCY(\n+ WorkDate(), Shop.\"Currency Code\", Amount,\n+ CurrencyExchangeRate.ExchangeRate(WorkDate(), Shop.\"Currency Code\")));\n+ end;\n+\n local procedure CreateItemUnitOfMeasure(ShopifyVariant: Record \"Shpfy Variant\"; Item: Record Item)\n var\n ItemUnitofMeasure: Record \"Item Unit of Measure\";\n@@ -501,4 +514,4 @@ codeunit 30171 \"Shpfy Create Item\"\n begin\n TemplateCode := Code;\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139567'\nCodeunit 139567 Shpfy Create Item Test\n Testfunction UnitTestCreateItemFCYToLCYConversion Failure (5.673 seconds)\n Error:\n Assert.AreNearlyEqual failed. Expected a difference no greater than <0.1> between expected value <6> and actual value <3>. Unit Cost\n Call Stack:\n \"Library Assert\"(CodeUnit 130002).AreNearlyEqual line 3 - Library Assert by Microsoft version 27.0.0.0\n \"Shpfy Create Item Test\"(CodeUnit 139567).UnitTestCreateItemFCYToLCYConversion line 28 - Shopify Connector Test by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0", "metrics": {"execution_time": 78.0, "llm_duration": null, "turn_count": 8, "prompt_tokens": 228700, "completion_tokens": 4000, "tool_usage": {"rg": 6, "view": 6, "report_intent": 5, "glob": 1, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} + +{"instance_id": "microsoft__BCApps-4822__cf-1", "project": "Shopify", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\nindex 2d20144..e8dcece 100644\n--- a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\n@@ -555,6 +555,7 @@ codeunit 30286 \"Shpfy Company API\"\n local procedure CreateCustomerLocation(JCompanyLocation: JsonObject; ShopifyCompany: Record \"Shpfy Company\"; CustomerId: Guid): BigInteger\n var\n CompanyLocation: Record \"Shpfy Company Location\";\n+ Customer: Record Customer;\n CompanyLocationId: BigInteger;\n PhoneNo: Text;\n begin\n@@ -581,6 +582,10 @@ codeunit 30286 \"Shpfy Company API\"\n CompanyLocation.Recipient := CopyStr(JsonHelper.GetValueAsText(JCompanyLocation, 'billingAddress.recipient', MaxStrLen(CompanyLocation.Recipient)), 1, MaxStrLen(CompanyLocation.Recipient));\n CompanyLocation.\"Shpfy Payment Terms Id\" := CommunicationMgt.GetIdOfGId(JsonHelper.GetValueAsText(JCompanyLocation, 'buyerExperienceConfiguration.paymentTermsTemplate.id'));\n CompanyLocation.\"Customer Id\" := CustomerId;\n+ if Customer.GetBySystemId(CustomerId) then begin\n+ CompanyLocation.\"Sell-to Customer No.\" := Customer.\"No.\";\n+ CompanyLocation.\"Bill-to Customer No.\" := Customer.\"Bill-to Customer No.\";\n+ end;\n CompanyLocation.Modify(true);\n exit(CompanyLocationId);\n end;\n@@ -633,4 +638,4 @@ codeunit 30286 \"Shpfy Company API\"\n exit(true);\n end;\n end;\n-}\n\\ No newline at end of file\n+}\ndiff --git a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyExport.Codeunit.al b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyExport.Codeunit.al\nindex 9b3b3f1..151b082 100644\n--- a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyExport.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyExport.Codeunit.al\n@@ -125,6 +125,8 @@ codeunit 30284 \"Shpfy Company Export\"\n CompanyLocation.Zip := Customer.\"Post Code\";\n CompanyLocation.City := Customer.City;\n CompanyLocation.Recipient := Customer.Name;\n+ CompanyLocation.\"Sell-to Customer No.\" := Customer.\"No.\";\n+ CompanyLocation.\"Bill-to Customer No.\" := Customer.\"Bill-to Customer No.\";\n \n if Customer.County <> '' then begin\n TaxArea.SetRange(\"Country/Region Code\", Customer.\"Country/Region Code\");\n@@ -265,4 +267,4 @@ codeunit 30284 \"Shpfy Company Export\"\n exit(true);\n end;\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": null, "metrics": {"execution_time": 136.0, "llm_duration": null, "turn_count": 15, "prompt_tokens": 475500, "completion_tokens": 6500, "tool_usage": {"glob": 6, "rg": 18, "report_intent": 2, "view": 12, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoft__BCApps-4822__cf-2", "project": "Shopify", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\nindex 2d20144..7e94cb1 100644\n--- a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\n@@ -523,7 +523,7 @@ codeunit 30286 \"Shpfy Company API\"\n JResponse := CommunicationMgt.ExecuteGraphQL(GraphQuery.ToText());\n if JResponse.SelectToken('$.data.companyLocationCreate.companyLocation', JCompanyLocation) then\n if not JsonHelper.IsTokenNull(JCompanyLocation) then begin\n- LocationId := CreateCustomerLocation(JCompanyLocation.AsObject(), ShopifyCompany, Customer.SystemId);\n+ LocationId := CreateCustomerLocation(JCompanyLocation.AsObject(), ShopifyCompany, Customer);\n if JsonHelper.GetJsonArray(JCompanyLocation, JContactRoles, 'company.contactRoles.edges') then begin\n foreach JItem in JContactRoles do\n CompanyContactRoles.Add(JsonHelper.GetValueAsText(JItem, 'node.name'), CommunicationMgt.GetIdOfGId(JsonHelper.GetValueAsText(JItem, 'node.id')));\n@@ -540,7 +540,7 @@ codeunit 30286 \"Shpfy Company API\"\n /// \n /// JSON object containing the company location data from Shopify API response.\n /// The parent Shopify company record.\n- /// The GUID of the Business Central customer that was exported.\n+ /// The Business Central customer that was exported.\n /// \n /// This procedure:\n /// - Extracts the Shopify-generated ID and creates the initial record\n@@ -552,7 +552,7 @@ codeunit 30286 \"Shpfy Company API\"\n /// The procedure assumes the JSON structure matches Shopify's companyLocationCreate response format.\n /// All text fields are properly truncated to match the field lengths in the table definition.\n /// \n- local procedure CreateCustomerLocation(JCompanyLocation: JsonObject; ShopifyCompany: Record \"Shpfy Company\"; CustomerId: Guid): BigInteger\n+ local procedure CreateCustomerLocation(JCompanyLocation: JsonObject; ShopifyCompany: Record \"Shpfy Company\"; Customer: Record Customer): BigInteger\n var\n CompanyLocation: Record \"Shpfy Company Location\";\n CompanyLocationId: BigInteger;\n@@ -580,7 +580,14 @@ codeunit 30286 \"Shpfy Company API\"\n #pragma warning restore AA0139\n CompanyLocation.Recipient := CopyStr(JsonHelper.GetValueAsText(JCompanyLocation, 'billingAddress.recipient', MaxStrLen(CompanyLocation.Recipient)), 1, MaxStrLen(CompanyLocation.Recipient));\n CompanyLocation.\"Shpfy Payment Terms Id\" := CommunicationMgt.GetIdOfGId(JsonHelper.GetValueAsText(JCompanyLocation, 'buyerExperienceConfiguration.paymentTermsTemplate.id'));\n- CompanyLocation.\"Customer Id\" := CustomerId;\n+ CompanyLocation.\"Customer Id\" := Customer.SystemId;\n+ if Customer.\"No.\" <> '' then begin\n+ CompanyLocation.Validate(\"Sell-to Customer No.\", Customer.\"No.\");\n+ if Customer.\"Bill-to Customer No.\" <> '' then\n+ CompanyLocation.Validate(\"Bill-to Customer No.\", Customer.\"Bill-to Customer No.\")\n+ else\n+ CompanyLocation.Validate(\"Bill-to Customer No.\", Customer.\"No.\");\n+ end;\n CompanyLocation.Modify(true);\n exit(CompanyLocationId);\n end;\n@@ -633,4 +640,4 @@ codeunit 30286 \"Shpfy Company API\"\n exit(true);\n end;\n end;\n-}\n\\ No newline at end of file\n+}\ndiff --git a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyExport.Codeunit.al b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyExport.Codeunit.al\nindex 9b3b3f1..fa42fe7 100644\n--- a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyExport.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyExport.Codeunit.al\n@@ -177,6 +177,8 @@ codeunit 30284 \"Shpfy Company Export\"\n if GetShopifyPaymentTermsIdFromCustomer(Customer, PaymentTermsId) then\n CompanyLocation.\"Shpfy Payment Terms Id\" := PaymentTermsId;\n \n+ SetCompanyLocationCustomerNos(Customer, CompanyLocation);\n+\n exit(HasDiff(CompanyLocation, TempCompanyLocation));\n end;\n \n@@ -265,4 +267,28 @@ codeunit 30284 \"Shpfy Company Export\"\n exit(true);\n end;\n end;\n-}\n\\ No newline at end of file\n+\n+ local procedure SetCompanyLocationCustomerNos(Customer: Record Customer; var CompanyLocation: Record \"Shpfy Company Location\")\n+ var\n+ BillToCustomerNo: Code[20];\n+ SellToCustomerNo: Code[20];\n+ begin\n+ SellToCustomerNo := CompanyLocation.\"Sell-to Customer No.\";\n+ BillToCustomerNo := CompanyLocation.\"Bill-to Customer No.\";\n+\n+ if (SellToCustomerNo = '') and (Customer.\"No.\" <> '') then\n+ SellToCustomerNo := Customer.\"No.\";\n+\n+ if (BillToCustomerNo = '') and (SellToCustomerNo <> '') then\n+ if Customer.\"Bill-to Customer No.\" <> '' then\n+ BillToCustomerNo := Customer.\"Bill-to Customer No.\"\n+ else\n+ BillToCustomerNo := SellToCustomerNo;\n+\n+ if SellToCustomerNo <> CompanyLocation.\"Sell-to Customer No.\" then\n+ CompanyLocation.Validate(\"Sell-to Customer No.\", SellToCustomerNo);\n+\n+ if BillToCustomerNo <> CompanyLocation.\"Bill-to Customer No.\" then\n+ CompanyLocation.Validate(\"Bill-to Customer No.\", BillToCustomerNo);\n+ end;\n+}\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139539'\nCodeunit 139539 Shpfy Company Locations Test\n Testfunction TestCreateCompanyLocationSellToBillTo Failure (5.657 seconds)\n Error:\n The field Bill-to Customer No. of table Shopify Company Location contains a value (BILLTO) that cannot be found in the related table (Customer).\n Call Stack:\n \"Shpfy Company Export\"(CodeUnit 30284).SetCompanyLocationCustomerNos line 21 - Shopify Connector by Microsoft version 27.0.0.0\n \"Shpfy Company Export\"(CodeUnit 30284).FillInShopifyCompanyLocation line 70 - Shopify Connector by Microsoft version 27.0.0.0\n \"Shpfy Company API\"(CodeUnit 30286).CreateCustomerAsCompanyLocation line 16 - Shopify Connector by Microsoft version 27.0.0.0\n \"Shpfy Company Locations Test\"(CodeUnit 139539).TestCreateCompanyLocationSellToBillTo line 15 - Shopify Connector Test by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0", "metrics": {"execution_time": 178.0, "llm_duration": null, "turn_count": 18, "prompt_tokens": 764800, "completion_tokens": 9400, "tool_usage": {"glob": 4, "rg": 15, "report_intent": 7, "view": 15, "apply_patch": 3, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} + +{"instance_id": "microsoft__BCApps-5633__cf-1", "project": "Shopify", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al b/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al\nindex 1f790f9..b0f620a 100644\n--- a/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al\n@@ -24,6 +24,7 @@ codeunit 30190 \"Shpfy Export Shipments\"\n ShippingEvents: Codeunit \"Shpfy Shipping Events\";\n NoCorrespondingFulfillmentLinesLbl: Label 'No corresponding fulfillment lines found.';\n NoFulfillmentCreatedInShopifyLbl: Label 'Fulfillment was not created in Shopify.';\n+ ThirdPartyFulfillmentServiceLbl: Label 'Shipment is associated with a third-party fulfillment service and cannot be exported to Shopify.';\n \n /// \n /// Create Shopify Fulfillment.\n@@ -32,13 +33,33 @@ codeunit 30190 \"Shpfy Export Shipments\"\n /// Parameter of type Dictionary of [BigInteger, Code[20]].\n internal procedure CreateShopifyFulfillment(var SalesShipmentHeader: Record \"Sales Shipment Header\"; var AssignedFulfillmentOrderIds: Dictionary of [BigInteger, Code[20]]);\n var\n+ ShopifyOrderHeader: Record \"Shpfy Order Header\";\n+ Shop: Record \"Shpfy Shop\";\n ShipmentLocation: Query \"Shpfy Shipment Location\";\n+ SkippedRecord: Codeunit \"Shpfy Skipped Record\";\n+ HasExportableFulfillment: Boolean;\n+ HasThirdPartyFulfillment: Boolean;\n begin\n if (SalesShipmentHeader.\"Shpfy Order Id\" <> 0) and (SalesShipmentHeader.\"Shpfy Fulfillment Id\" = 0) then begin\n+ if not ShopifyOrderHeader.Get(SalesShipmentHeader.\"Shpfy Order Id\") then\n+ exit;\n+\n+ Shop.Get(ShopifyOrderHeader.\"Shop Code\");\n ShipmentLocation.SetRange(No, SalesShipmentHeader.\"No.\");\n if ShipmentLocation.Open() then\n while ShipmentLocation.Read() do\n- CreateShopifyFulfillment(SalesShipmentHeader, ShipmentLocation.LocationId, ShipmentLocation.DeliveryMethodType, AssignedFulfillmentOrderIds);\n+ if IsThirdPartyFulfillmentServiceLocation(Shop, ShipmentLocation.LocationId) then\n+ HasThirdPartyFulfillment := true\n+ else begin\n+ HasExportableFulfillment := true;\n+ CreateShopifyFulfillment(SalesShipmentHeader, ShipmentLocation.LocationId, ShipmentLocation.DeliveryMethodType, AssignedFulfillmentOrderIds);\n+ end;\n+\n+ if (not HasExportableFulfillment) and HasThirdPartyFulfillment then begin\n+ SkippedRecord.LogSkippedRecord(SalesShipmentHeader.\"Shpfy Order Id\", SalesShipmentHeader.RecordId, ThirdPartyFulfillmentServiceLbl, Shop);\n+ SalesShipmentHeader.\"Shpfy Fulfillment Id\" := -1;\n+ SalesShipmentHeader.Modify(true);\n+ end;\n end;\n end;\n \n@@ -96,6 +117,9 @@ codeunit 30190 \"Shpfy Export Shipments\"\n LineCount: Integer;\n GraphQueries: List of [Text];\n begin\n+ if IsThirdPartyFulfillmentServiceLocation(Shop, LocationId) then\n+ exit;\n+\n Clear(PrevFulfillmentOrderId);\n \n SalesShipmentLine.Reset();\n@@ -249,4 +273,28 @@ codeunit 30190 \"Shpfy Export Shipments\"\n if FulfillmentOrdersAPI.AcceptFulfillmentRequest(Shop, FulfillmentOrderHeader) then\n AssignedFulfillmentOrderIds.Remove(FulfillmentOrderId);\n end;\n-}\n\\ No newline at end of file\n+\n+ local procedure IsThirdPartyFulfillmentServiceLocation(Shop: Record \"Shpfy Shop\"; LocationId: BigInteger): Boolean\n+ var\n+ ShopLocation: Record \"Shpfy Shop Location\";\n+ begin\n+ if LocationId = 0 then\n+ exit(false);\n+ if not ShopLocation.Get(Shop.Code, LocationId) then\n+ exit(false);\n+ if not ShopLocation.\"Is Fulfillment Service\" then\n+ exit(false);\n+\n+ exit(not IsDefaultFulfillmentServiceLocation(ShopLocation));\n+ end;\n+\n+ local procedure IsDefaultFulfillmentServiceLocation(ShopLocation: Record \"Shpfy Shop Location\"): Boolean\n+ var\n+ SyncShopLocations: Codeunit \"Shpfy Sync Shop Locations\";\n+ begin\n+ exit(\n+ (ShopLocation.Name = CopyStr(SyncShopLocations.GetFulfillmentServiceName(), 1, MaxStrLen(ShopLocation.Name))) or\n+ (ShopLocation.\"Fulfillment Srv. Callback Url\" = CopyStr(SyncShopLocations.GetFulfillmentServiceCallbackUrl(), 1, MaxStrLen(ShopLocation.\"Fulfillment Srv. Callback Url\"))));\n+ end;\n+\n+}\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139606'\nCodeunit 139606 Shpfy Shipping Test\n Testfunction UnitTestExportShipmentThirdParty Failure (5.953 seconds)\n Error:\n Assert.AreEqual failed. Expected:<0> (Integer). Actual:<1> (Integer). FulfillmentRequest count check.\n Call Stack:\n \"Library Assert\"(CodeUnit 130002).AreEqual line 3 - Library Assert by Microsoft version 27.2.0.0\n \"Shpfy Shipping Test\"(CodeUnit 139606).UnitTestExportShipmentThirdParty line 26 - Shopify Connector Test by Microsoft version 27.2.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.2.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.2.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.2.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.2.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.2.0.0", "metrics": {"execution_time": 223.0, "llm_duration": null, "turn_count": 20, "prompt_tokens": 1000000, "completion_tokens": 10600, "tool_usage": {"glob": 1, "rg": 11, "report_intent": 3, "view": 20, "apply_patch": 3, "powershell": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} + +{"instance_id": "microsoftInternal__NAV-174087__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al b/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\nindex ff43f4ff..31374142 100644\n--- a/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\n+++ b/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\n@@ -581,7 +581,7 @@ page 5077 \"Create Interaction\"\n trigger OnQueryClosePage(CloseAction: Action): Boolean\n begin\n if UpdateLogEntry then\n- InteractionLogEntry.Modify();\n+ PersistInteractionEvaluation();\n end;\n \n var\n@@ -694,12 +694,18 @@ page 5077 \"Create Interaction\"\n end;\n Step::\"Step 4\":\n begin\n- InteractionLogEntry.Modify();\n+ PersistInteractionEvaluation();\n CurrPage.Close();\n end;\n end;\n end;\n \n+ local procedure PersistInteractionEvaluation()\n+ begin\n+ InteractionLogEntry.Evaluation := Rec.Evaluation;\n+ InteractionLogEntry.Modify();\n+ end;\n+\n local procedure ValidateStep1()\n begin\n if Rec.\"Interaction Template Code\" = '' then\n", "error_message": null, "metrics": {"execution_time": 115.0, "llm_duration": null, "turn_count": 12, "prompt_tokens": 325300, "completion_tokens": 3600, "tool_usage": {"glob": 1, "rg": 10, "report_intent": 2, "view": 13, "powershell": 2, "apply_patch": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-174087__cf-2", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Interaction/InteractionLogEntry.Table.al b/App/Layers/W1/BaseApp/CRM/Interaction/InteractionLogEntry.Table.al\nindex 9eed442c..a10e3e23 100644\n--- a/App/Layers/W1/BaseApp/CRM/Interaction/InteractionLogEntry.Table.al\n+++ b/App/Layers/W1/BaseApp/CRM/Interaction/InteractionLogEntry.Table.al\n@@ -319,6 +319,11 @@ table 5065 \"Interaction Log Entry\"\n }\n }\n \n+ trigger OnModify()\n+ begin\n+ ApplyPendingSegmentSource();\n+ end;\n+\n trigger OnDelete()\n var\n InteractionCommentLine: Record \"Inter. Log Entry Comment Line\";\n@@ -360,6 +365,13 @@ table 5065 \"Interaction Log Entry\"\n end;\n end;\n \n+ procedure RegisterSegmentSource(SegmentLine: Record \"Segment Line\")\n+ var\n+ InteractionLogEntrySourceMgt: Codeunit \"Interaction Log Entry Src. Mgt.\";\n+ begin\n+ InteractionLogEntrySourceMgt.RegisterSegmentLine(\"Entry No.\", SegmentLine);\n+ end;\n+\n procedure AssignNewOpportunity()\n var\n Opportunity: Record Opportunity;\n@@ -913,5 +925,29 @@ table 5065 \"Interaction Log Entry\"\n local procedure OnResumeInteractionOnAfterDateValidation(var TempSegmentLine: Record \"Segment Line\" temporary)\n begin\n end;\n+\n+ local procedure ApplyPendingSegmentSource()\n+ var\n+ TempSegmentLine: Record \"Segment Line\" temporary;\n+ InteractionLogEntrySourceMgt: Codeunit \"Interaction Log Entry Src. Mgt.\";\n+ CurrentDescription: Text[100];\n+ CurrentAttemptFailed: Boolean;\n+ CurrentSegmentNo: Code[20];\n+ begin\n+ if not InteractionLogEntrySourceMgt.GetSegmentLine(\"Entry No.\", TempSegmentLine) then\n+ exit;\n+\n+ CurrentDescription := Description;\n+ CurrentAttemptFailed := \"Attempt Failed\";\n+ CurrentSegmentNo := \"Segment No.\";\n+\n+ CopyFromSegment(TempSegmentLine);\n+\n+ Description := CurrentDescription;\n+ \"Attempt Failed\" := CurrentAttemptFailed;\n+ \"Segment No.\" := CurrentSegmentNo;\n+\n+ InteractionLogEntrySourceMgt.ClearSegmentLine(\"Entry No.\");\n+ end;\n }\n \ndiff --git a/App/Layers/W1/BaseApp/CRM/Interaction/InteractionLogEntrySourceMgt.Codeunit.al b/App/Layers/W1/BaseApp/CRM/Interaction/InteractionLogEntrySourceMgt.Codeunit.al\nnew file mode 100644\nindex 00000000..bbfc3321\n--- /dev/null\n+++ b/App/Layers/W1/BaseApp/CRM/Interaction/InteractionLogEntrySourceMgt.Codeunit.al\n@@ -0,0 +1,36 @@\n+namespace Microsoft.CRM.Interaction;\n+\n+using Microsoft.CRM.Segment;\n+\n+codeunit 5075 \"Interaction Log Entry Src. Mgt.\"\n+{\n+ SingleInstance = true;\n+\n+ var\n+ CachedSegmentLine: Record \"Segment Line\" temporary;\n+\n+ procedure RegisterSegmentLine(EntryNo: Integer; SegmentLine: Record \"Segment Line\")\n+ begin\n+ ClearSegmentLine(EntryNo);\n+\n+ CachedSegmentLine := SegmentLine;\n+ CachedSegmentLine.\"Segment No.\" := Format(EntryNo);\n+ CachedSegmentLine.\"Line No.\" := EntryNo;\n+ CachedSegmentLine.Insert();\n+ end;\n+\n+ procedure GetSegmentLine(EntryNo: Integer; var SegmentLine: Record \"Segment Line\" temporary): Boolean\n+ begin\n+ if not CachedSegmentLine.Get(Format(EntryNo), EntryNo) then\n+ exit(false);\n+\n+ SegmentLine := CachedSegmentLine;\n+ exit(true);\n+ end;\n+\n+ procedure ClearSegmentLine(EntryNo: Integer)\n+ begin\n+ if CachedSegmentLine.Get(Format(EntryNo), EntryNo) then\n+ CachedSegmentLine.Delete();\n+ end;\n+}\ndiff --git a/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al b/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\nindex ff43f4ff..222abd7e 100644\n--- a/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\n+++ b/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\n@@ -580,8 +580,10 @@ page 5077 \"Create Interaction\"\n \n trigger OnQueryClosePage(CloseAction: Action): Boolean\n begin\n- if UpdateLogEntry then\n- InteractionLogEntry.Modify();\n+ if UpdateLogEntry then begin\n+ InteractionLogEntry.RegisterSegmentSource(Rec);\n+ InteractionLogEntry.Modify(true);\n+ end;\n end;\n \n var\n@@ -694,7 +696,8 @@ page 5077 \"Create Interaction\"\n end;\n Step::\"Step 4\":\n begin\n- InteractionLogEntry.Modify();\n+ InteractionLogEntry.RegisterSegmentSource(Rec);\n+ InteractionLogEntry.Modify(true);\n CurrPage.Close();\n end;\n end;\n", "error_message": "Build or publish failed for App\\Layers\\W1\\BaseApp:\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Removed\\O365CouponClaim.Table.al(73,70): warning AL0603: An implicit conversion is being performed from a value of type 'Option' to a value of type 'Enum Microsoft.Sales.Document.\"Sales Document Type\"'. This conversion can lead to unexpected runtime issues.\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Removed\\O365SalesDocument.Table.al(52,86): warning AL0603: An implicit conversion is being performed from a value of type 'Option' to a value of type 'Enum Microsoft.Sales.Document.\"Sales Document Type\"'. This conversion can lead to unexpected runtime issues.\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Removed\\O365SalesDocument.Table.al(60,87): warning AL0603: An implicit conversion is being performed from a value of type 'Option' to a value of type 'Enum Microsoft.Sales.Document.\"Sales Document Type\"'. This conversion can lead to unexpected runtime issues.\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Removed\\O365SalesDocument.Table.al(71,68): warning AL0603: An implicit conversion is being performed from a value of type 'Option' to a value of type 'Enum Microsoft.Sales.Document.\"Sales Document Type\"'. This conversion can lead to unexpected runtime issues.\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Removed\\O365SalesDocument.Table.al(80,89): warning AL0603: An implicit conversion is being performed from a value of type 'Option' to a value of type 'Enum Microsoft.Sales.Document.\"Sales Document Type\"'. This conversion can lead to unexpected runtime issues.\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Removed\\O365SalesDocument.Table.al(148,80): warning AL0603: An implicit conversion is being performed from a value of type 'Option' to a value of type 'Enum Microsoft.Sales.Document.\"Sales Document Type\"'. This conversion can lead to unexpected runtime issues.\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Removed\\O365SalesDocument.Table.al(155,72): warning AL0603: An implicit conversion is being performed from a value of type 'Option' to a value of type 'Enum Microsoft.Sales.Document.\"Sales Document Type\"'. This conversion can lead to unexpected runtime issues.\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Removed\\O365SalesDocument.Table.al(162,80): warning AL0603: An implicit conversion is being performed from a value of type 'Option' to a value of type 'Enum Microsoft.Sales.Document.\"Sales Document Type\"'. This conversion can lead to unexpected runtime issues.\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Removed\\O365SalesDocument.Table.al(169,77): warning AL0603: An implicit conversion is being performed from a value of type 'Option' to a value of type 'Enum Microsoft.Sales.Document.\"Sales Document Type\"'. This conversion can lead to unexpected runtime issues.\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Inventory\\Costing\\CalcInventoryAdjmtOrder.Codeunit.al(459,186): warning AL0749: The type 'CalculateActualMaterialCost' of the parameter 'Calculate Actual Material Cost' of the event method 'OnCalcActualMaterialCostsOnAfterSetFilters' has 'Internal' accessibility. The method will not be callable outside of this module without an implicit conversion.\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Finance\\GeneralLedger\\Setup\\GeneralLedgerSetup.Table.al(887,20): warning AL0842: The type 'VAT Period Control' of the public field 'Control VAT Period' has 'Internal' accessibility. The field will not be usable outside of this module without an implicit conversion.\nC:\\Source\\App\\Layers\\W1\\BaseApp\\CRM\\Interaction\\InteractionLogEntrySourceMgt.Codeunit.al(5,15): error AL0305: The length of the application object identifier 'Interaction Log Entry Src. Mgt.' cannot exceed 30 characters.", "metrics": {"execution_time": 428.0, "llm_duration": null, "turn_count": 34, "prompt_tokens": 2200000, "completion_tokens": 18000, "tool_usage": {"glob": 5, "rg": 36, "report_intent": 2, "view": 23, "apply_patch": 3, "powershell": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": false} + +{"instance_id": "microsoftInternal__NAV-174794__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\nindex b941d50c..57fcbff2 100644\n--- a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n@@ -278,6 +278,8 @@ codeunit 395 \"FinChrgMemo-Issue\"\n TempGenJnlLine.\"Account Type\" := AccType;\n TempGenJnlLine.\"Account No.\" := AccNo;\n TempGenJnlLine.Validate(\"Account No.\");\n+ if TempGenJnlLine.\"Account Type\" = TempGenJnlLine.\"Account Type\"::Customer then\n+ TempGenJnlLine.Validate(\"Posting Group\", FinChrgMemoHeader.\"Customer Posting Group\");\n if TempGenJnlLine.\"Account Type\" = TempGenJnlLine.\"Account Type\"::\"G/L Account\" then begin\n TempGenJnlLine.\"Gen. Posting Type\" := TempGenJnlLine.\"Gen. Posting Type\"::Sale;\n TempGenJnlLine.\"Gen. Bus. Posting Group\" := FinChrgMemoHeader.\"Gen. Bus. Posting Group\";\n", "error_message": null, "metrics": {"execution_time": 161.0, "llm_duration": null, "turn_count": 18, "prompt_tokens": 764600, "completion_tokens": 5300, "tool_usage": {"rg": 17, "glob": 5, "view": 15, "apply_patch": 1, "report_intent": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-174794__cf-2", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\nindex b941d50c..0c971eaa 100644\n--- a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n@@ -285,6 +285,7 @@ codeunit 395 \"FinChrgMemo-Issue\"\n end;\n TempGenJnlLine.Validate(\"Currency Code\", FinChrgMemoHeader.\"Currency Code\");\n if TempGenJnlLine.\"Account Type\" = TempGenJnlLine.\"Account Type\"::Customer then begin\n+ TempGenJnlLine.Validate(\"Posting Group\", FinChrgMemoHeader.\"Customer Posting Group\");\n TempGenJnlLine.Validate(Amount, TotalAmount);\n TempGenJnlLine.Validate(\"Amount (LCY)\", TotalAmountLCY);\n TempGenJnlLine.\"Due Date\" := FinChrgMemoHeader.\"Due Date\";\n", "error_message": null, "metrics": {"execution_time": 134.0, "llm_duration": null, "turn_count": 12, "prompt_tokens": 488800, "completion_tokens": 4500, "tool_usage": {"sql": 2, "rg": 10, "glob": 4, "view": 15, "report_intent": 5, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-174794__cf-3", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\nindex b941d50c..b0359488 100644\n--- a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n@@ -285,6 +285,7 @@ codeunit 395 \"FinChrgMemo-Issue\"\n end;\n TempGenJnlLine.Validate(\"Currency Code\", FinChrgMemoHeader.\"Currency Code\");\n if TempGenJnlLine.\"Account Type\" = TempGenJnlLine.\"Account Type\"::Customer then begin\n+ TempGenJnlLine.\"Posting Group\" := FinChrgMemoHeader.\"Customer Posting Group\";\n TempGenJnlLine.Validate(Amount, TotalAmount);\n TempGenJnlLine.Validate(\"Amount (LCY)\", TotalAmountLCY);\n TempGenJnlLine.\"Due Date\" := FinChrgMemoHeader.\"Due Date\";\n", "error_message": null, "metrics": {"execution_time": 152.0, "llm_duration": null, "turn_count": 13, "prompt_tokens": 633000, "completion_tokens": 4500, "tool_usage": {"rg": 14, "glob": 3, "report_intent": 3, "view": 16, "apply_patch": 1, "powershell": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-175765__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\nindex 7eff4950..cde01e99 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\n@@ -3527,6 +3527,83 @@ codeunit 22 \"Item Jnl.-Post Line\"\n OnAfterCalcAdjustedCost(ItemJnlLine, AdjustedCostLCY, AdjustedCostACY);\n end;\n \n+ local procedure UpdateTransferCorrectionValueEntry(OldItemLedgEntry: Record \"Item Ledger Entry\"; var OldValueEntry: Record \"Value Entry\")\n+ var\n+ CostSourceItemLedgEntry: Record \"Item Ledger Entry\";\n+ AdjustedCostLCY: Decimal;\n+ AdjustedCostACY: Decimal;\n+ DiscountAmount: Decimal;\n+ begin\n+ if (OldItemLedgEntry.\"Entry Type\" <> OldItemLedgEntry.\"Entry Type\"::Transfer) or\n+ (OldItemLedgEntry.\"Document Type\" <> OldItemLedgEntry.\"Document Type\"::\"Transfer Shipment\")\n+ then\n+ exit;\n+\n+ if not FindTransferCorrectionCostSource(OldItemLedgEntry, CostSourceItemLedgEntry) then\n+ exit;\n+\n+ if CostSourceItemLedgEntry.\"Entry No.\" = OldItemLedgEntry.\"Entry No.\" then\n+ exit;\n+\n+ CalcAdjustedCost(CostSourceItemLedgEntry, Abs(OldItemLedgEntry.Quantity), AdjustedCostLCY, AdjustedCostACY, DiscountAmount);\n+ OldValueEntry.\"Cost Amount (Actual)\" := TransferCorrectionCostSign(OldItemLedgEntry.Quantity) * Abs(AdjustedCostLCY);\n+ OldValueEntry.\"Cost Amount (Actual) (ACY)\" := TransferCorrectionCostSign(OldItemLedgEntry.Quantity) * Abs(AdjustedCostACY);\n+ end;\n+\n+ local procedure FindTransferCorrectionCostSource(TransferItemLedgEntry: Record \"Item Ledger Entry\"; var CostSourceItemLedgEntry: Record \"Item Ledger Entry\"): Boolean\n+ var\n+ ItemApplnEntry: Record \"Item Application Entry\";\n+ SourceEntryNo: Integer;\n+ begin\n+ if TransferItemLedgEntry.Positive then\n+ SourceEntryNo := TransferItemLedgEntry.\"Entry No.\"\n+ else begin\n+ ItemApplnEntry.SetCurrentKey(\"Outbound Item Entry No.\", \"Item Ledger Entry No.\", \"Cost Application\", \"Transferred-from Entry No.\");\n+ ItemApplnEntry.SetRange(\"Outbound Item Entry No.\", TransferItemLedgEntry.\"Entry No.\");\n+ ItemApplnEntry.SetRange(\"Item Ledger Entry No.\", TransferItemLedgEntry.\"Entry No.\");\n+ if not ItemApplnEntry.FindFirst() then\n+ exit(false);\n+\n+ SourceEntryNo := ItemApplnEntry.\"Inbound Item Entry No.\";\n+ end;\n+\n+ SourceEntryNo := FindOriginalInboundTransferEntryNo(SourceEntryNo);\n+ if SourceEntryNo = 0 then\n+ exit(false);\n+\n+ exit(CostSourceItemLedgEntry.Get(SourceEntryNo));\n+ end;\n+\n+ local procedure FindOriginalInboundTransferEntryNo(EntryNo: Integer): Integer\n+ var\n+ ItemApplnEntry: Record \"Item Application Entry\";\n+ ItemLedgEntry: Record \"Item Ledger Entry\";\n+ begin\n+ if not ItemLedgEntry.Get(EntryNo) then\n+ exit(0);\n+\n+ if ItemLedgEntry.\"Entry Type\" <> ItemLedgEntry.\"Entry Type\"::Transfer then\n+ exit(EntryNo);\n+\n+ ItemApplnEntry.SetCurrentKey(\"Inbound Item Entry No.\", \"Item Ledger Entry No.\");\n+ ItemApplnEntry.SetRange(\"Inbound Item Entry No.\", EntryNo);\n+ ItemApplnEntry.SetRange(\"Item Ledger Entry No.\", EntryNo);\n+ if not ItemApplnEntry.FindFirst() then\n+ exit(EntryNo);\n+\n+ if ItemApplnEntry.\"Transferred-from Entry No.\" = 0 then\n+ exit(EntryNo);\n+\n+ exit(FindOriginalInboundTransferEntryNo(ItemApplnEntry.\"Transferred-from Entry No.\"));\n+ end;\n+\n+ local procedure TransferCorrectionCostSign(Quantity: Decimal): Integer\n+ begin\n+ if Quantity < 0 then\n+ exit(-1);\n+ exit(1);\n+ end;\n+\n local procedure GetMaxValuationDate(ItemLedgerEntry: Record \"Item Ledger Entry\"): Date\n var\n ValueEntry: Record \"Value Entry\";\n@@ -4496,6 +4573,7 @@ codeunit 22 \"Item Jnl.-Post Line\"\n GlobalItemLedgEntry := NewItemLedgEntry;\n \n CalcILEExpectedAmount(OldValueEntry, OldItemLedgEntry.\"Entry No.\");\n+ UpdateTransferCorrectionValueEntry(OldItemLedgEntry, OldValueEntry);\n if OldValueEntry.Inventoriable then\n AvgCostEntryPointHandler.UpdateValuationDate(OldValueEntry);\n \n", "error_message": null, "metrics": {"execution_time": 449.0, "llm_duration": null, "turn_count": 39, "prompt_tokens": 3000000, "completion_tokens": 18900, "tool_usage": {"rg": 31, "glob": 1, "report_intent": 3, "view": 45, "apply_patch": 4, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-175765__cf-2", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al\nindex b47fc326..a091d662 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al\n@@ -69,6 +69,7 @@ codeunit 9030 \"Undo Transfer Shipment\"\n local procedure \"Code\"()\n var\n PostedWhseShptLine: Record \"Posted Whse. Shipment Line\";\n+ TempItem: Record Item temporary;\n TransferLine: Record \"Transfer Line\";\n WhseJnlRegisterLine: Codeunit \"Whse. Jnl.-Register Line\";\n Window: Dialog;\n@@ -92,6 +93,9 @@ codeunit 9030 \"Undo Transfer Shipment\"\n CheckTransferShptLine(TransShptLine);\n until TransShptLine.Next() = 0;\n \n+ CollectItemsForCostAdjustment(TempItem);\n+ RunCostAdjustment(TempItem);\n+\n TransShptLine.FindSet();\n repeat\n OnCodeOnBeforeUndoLoop(TransShptLine);\n@@ -259,6 +263,38 @@ codeunit 9030 \"Undo Transfer Shipment\"\n exit(0);\n end;\n \n+ local procedure CollectItemsForCostAdjustment(var TempItem: Record Item temporary)\n+ begin\n+ TempItem.Reset();\n+ if not TempItem.IsEmpty() then\n+ TempItem.DeleteAll();\n+\n+ TransShptLine.FindSet();\n+ repeat\n+ if (TransShptLine.\"Item No.\" <> '') and (not TempItem.Get(TransShptLine.\"Item No.\")) then begin\n+ TempItem.Init();\n+ TempItem.\"No.\" := TransShptLine.\"Item No.\";\n+ TempItem.Insert();\n+ end;\n+ until TransShptLine.Next() = 0;\n+ end;\n+\n+ local procedure RunCostAdjustment(var TempItem: Record Item temporary)\n+ var\n+ Item: Record Item;\n+ InvtAdjmtHandler: Codeunit \"Inventory Adjustment Handler\";\n+ begin\n+ if not TempItem.FindSet() then\n+ exit;\n+\n+ repeat\n+ Item.Get(TempItem.\"No.\");\n+ InvtAdjmtHandler.SetFilterItem(Item);\n+ InvtAdjmtHandler.MakeInventoryAdjustment(true, false);\n+ Clear(InvtAdjmtHandler);\n+ until TempItem.Next() = 0;\n+ end;\n+\n local procedure MoveItemLedgerEntriesToTempRec(var ItemLedgerEntry: Record \"Item Ledger Entry\"; var TempItemLedgerEntry: Record \"Item Ledger Entry\" temporary)\n begin\n if ItemLedgerEntry.FindSet() then\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137038'\nCodeunit 137038 SCM Transfers\n Testfunction AdjustCostOfUndoneTransferShipment Failure (5.796 seconds)\n Error:\n Unit Cost must be equal to '111.96' in Item: No.=GL00000000. Current value is '24.87'.\n Call Stack:\n \"SCM Transfers\"(CodeUnit 137038).AdjustCostOfUndoneTransferShipment line 46 - Tests-SCM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 198.0, "llm_duration": null, "turn_count": 14, "prompt_tokens": 559800, "completion_tokens": 8100, "tool_usage": {"glob": 3, "rg": 11, "view": 16, "report_intent": 3, "apply_patch": 2, "powershell": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} + +{"instance_id": "microsoftInternal__NAV-175765__cf-3", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\nindex 7eff4950..79ce7374 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\n@@ -2711,7 +2711,8 @@ codeunit 22 \"Item Jnl.-Post Line\"\n begin\n ApplItemLedgEntry.Get(ItemApplnEntry.\"Item Ledger Entry No.\");\n ItemApplnEntry.\"Cost Application\" :=\n- (ApplItemLedgEntry.Quantity > 0) or (ApplItemLedgEntry.\"Applies-to Entry\" <> 0);\n+ not IsUndoTransferShipmentCorrection(ItemJnlLine, ApplItemLedgEntry) and\n+ ((ApplItemLedgEntry.Quantity > 0) or (ApplItemLedgEntry.\"Applies-to Entry\" <> 0));\n end;\n else\n if (ItemJnlLine.\"Applies-to Entry\" <> 0) or\n@@ -2728,6 +2729,15 @@ codeunit 22 \"Item Jnl.-Post Line\"\n end;\n end;\n \n+ local procedure IsUndoTransferShipmentCorrection(ItemJournalLine: Record \"Item Journal Line\"; AppliedItemLedgerEntry: Record \"Item Ledger Entry\"): Boolean\n+ begin\n+ exit(\n+ ItemJournalLine.Correction and\n+ (ItemJournalLine.\"Entry Type\" = ItemJournalLine.\"Entry Type\"::Transfer) and\n+ (AppliedItemLedgerEntry.\"Entry Type\" = AppliedItemLedgerEntry.\"Entry Type\"::Transfer) and\n+ (AppliedItemLedgerEntry.\"Document Type\" = AppliedItemLedgerEntry.\"Document Type\"::\"Transfer Shipment\"));\n+ end;\n+\n local procedure UpdateItemApplnEntry(ItemLedgEntryNo: Integer; PostingDate: Date)\n var\n ItemApplnEntry: Record \"Item Application Entry\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137038'\nCodeunit 137038 SCM Transfers\n Testfunction AdjustCostOfUndoneTransferShipment Failure (5.896 seconds)\n Error:\n Unit Cost must be equal to '111.96' in Item: No.=GL00000000. Current value is '24.87'.\n Call Stack:\n \"SCM Transfers\"(CodeUnit 137038).AdjustCostOfUndoneTransferShipment line 47 - Tests-SCM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 278.0, "llm_duration": null, "turn_count": 24, "prompt_tokens": 1100000, "completion_tokens": 10100, "tool_usage": {"rg": 28, "glob": 4, "view": 18, "report_intent": 2, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} + +{"instance_id": "microsoftInternal__NAV-176082__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\nindex 5fe44b45..aeaec014 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\n@@ -1304,7 +1304,7 @@ table 5740 \"Transfer Header\"\n TempPurchRcptHeader: Record \"Purch. Rcpt. Header\" temporary;\n PostedPurchaseReceipts: Page \"Posted Purchase Receipts\";\n begin\n- PurchRcptHeader.SetRange(\"Location Code\", \"Transfer-from Code\");\n+ SetReceiptHeaderFilters(PurchRcptHeader);\n PostedPurchaseReceipts.SetTableView(PurchRcptHeader);\n PostedPurchaseReceipts.LookupMode := true;\n if PostedPurchaseReceipts.RunModal() = ACTION::LookupOK then begin\n@@ -1313,6 +1313,37 @@ table 5740 \"Transfer Header\"\n end;\n end;\n \n+ local procedure SetReceiptHeaderFilters(var PurchRcptHeader: Record \"Purch. Rcpt. Header\")\n+ var\n+ PurchRcptLine: Record \"Purch. Rcpt. Line\";\n+ TempPurchRcptHeader: Record \"Purch. Rcpt. Header\" temporary;\n+ SelectionFilterManagement: Codeunit SelectionFilterManagement;\n+ RecRef: RecordRef;\n+ begin\n+ PurchRcptLine.SetCurrentKey(\"Document No.\");\n+ PurchRcptLine.SetRange(Type, PurchRcptLine.Type::Item);\n+ PurchRcptLine.SetRange(\"Location Code\", \"Transfer-from Code\");\n+\n+ if PurchRcptLine.FindSet() then\n+ repeat\n+ if not TempPurchRcptHeader.Get(PurchRcptLine.\"Document No.\") then begin\n+ TempPurchRcptHeader.Init();\n+ TempPurchRcptHeader.\"No.\" := PurchRcptLine.\"Document No.\";\n+ TempPurchRcptHeader.Insert();\n+ end;\n+ until PurchRcptLine.Next() = 0;\n+\n+ if TempPurchRcptHeader.IsEmpty then begin\n+ PurchRcptHeader.SetRange(\"No.\", '');\n+ exit;\n+ end;\n+\n+ RecRef.GetTable(TempPurchRcptHeader);\n+ PurchRcptHeader.SetFilter(\n+ \"No.\",\n+ SelectionFilterManagement.GetSelectionFilter(RecRef, TempPurchRcptHeader.FieldNo(\"No.\")));\n+ end;\n+\n local procedure CreateTransferLinesFromSelectedPurchReceipts(var TempPurchRcptHeader: Record \"Purch. Rcpt. Header\" temporary)\n var\n PurchRcptLine: Record \"Purch. Rcpt. Line\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137038'\nCodeunit 137038 SCM Transfers\n Testfunction GetReceiptLinesShowListOfPostedPurchRcptsHavingTransferFromCodeInLocationCodeOfPurchRcptLines Failure (10.31 seconds)\n Error:\n Assert.AreEqual failed. Expected:<3> (Integer). Actual:<0> (Integer). Appl.-to Item Entry must be 3 in Transfer Line..\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"SCM Transfers\"(CodeUnit 137038).GetReceiptLinesShowListOfPostedPurchRcptsHavingTransferFromCodeInLocationCodeOfPurchRcptLines line 80 - Tests-SCM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 137.0, "llm_duration": null, "turn_count": 12, "prompt_tokens": 407900, "completion_tokens": 5100, "tool_usage": {"glob": 1, "rg": 13, "report_intent": 3, "view": 8, "apply_patch": 2, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} + +{"instance_id": "microsoftInternal__NAV-176082__cf-2", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\nindex 5fe44b45..4d8bcbe5 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\n@@ -1304,15 +1304,44 @@ table 5740 \"Transfer Header\"\n TempPurchRcptHeader: Record \"Purch. Rcpt. Header\" temporary;\n PostedPurchaseReceipts: Page \"Posted Purchase Receipts\";\n begin\n- PurchRcptHeader.SetRange(\"Location Code\", \"Transfer-from Code\");\n+ SetPostedPurchaseReceiptFilter(PurchRcptHeader);\n PostedPurchaseReceipts.SetTableView(PurchRcptHeader);\n PostedPurchaseReceipts.LookupMode := true;\n if PostedPurchaseReceipts.RunModal() = ACTION::LookupOK then begin\n+ Clear(TempPurchRcptHeader);\n PostedPurchaseReceipts.GetSelectedRecords(TempPurchRcptHeader);\n CreateTransferLinesFromSelectedPurchReceipts(TempPurchRcptHeader);\n end;\n end;\n \n+ local procedure SetPostedPurchaseReceiptFilter(var PurchRcptHeader: Record \"Purch. Rcpt. Header\")\n+ var\n+ PurchRcptLine: Record \"Purch. Rcpt. Line\";\n+ TempPurchRcptHeader: Record \"Purch. Rcpt. Header\" temporary;\n+ SelectionFilterManagement: Codeunit SelectionFilterManagement;\n+ RecRef: RecordRef;\n+ begin\n+ PurchRcptLine.SetRange(Type, PurchRcptLine.Type::Item);\n+ PurchRcptLine.SetRange(\"Location Code\", \"Transfer-from Code\");\n+ if PurchRcptLine.FindSet() then\n+ repeat\n+ if PurchRcptHeader.Get(PurchRcptLine.\"Document No.\") then begin\n+ TempPurchRcptHeader := PurchRcptHeader;\n+ if TempPurchRcptHeader.Insert() then;\n+ end;\n+ until PurchRcptLine.Next() = 0;\n+\n+ if TempPurchRcptHeader.IsEmpty() then begin\n+ PurchRcptHeader.SetRange(\"No.\", '');\n+ exit;\n+ end;\n+\n+ RecRef.GetTable(TempPurchRcptHeader);\n+ PurchRcptHeader.SetFilter(\n+ \"No.\",\n+ SelectionFilterManagement.GetSelectionFilter(RecRef, TempPurchRcptHeader.FieldNo(\"No.\")));\n+ end;\n+\n local procedure CreateTransferLinesFromSelectedPurchReceipts(var TempPurchRcptHeader: Record \"Purch. Rcpt. Header\" temporary)\n var\n PurchRcptLine: Record \"Purch. Rcpt. Line\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137038'\nCodeunit 137038 SCM Transfers\n Testfunction GetReceiptLinesShowListOfPostedPurchRcptsHavingTransferFromCodeInLocationCodeOfPurchRcptLines Failure (11.68 seconds)\n Error:\n Assert.AreEqual failed. Expected:<3> (Integer). Actual:<0> (Integer). Appl.-to Item Entry must be 3 in Transfer Line..\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"SCM Transfers\"(CodeUnit 137038).GetReceiptLinesShowListOfPostedPurchRcptsHavingTransferFromCodeInLocationCodeOfPurchRcptLines line 80 - Tests-SCM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 160.0, "llm_duration": null, "turn_count": 13, "prompt_tokens": 376600, "completion_tokens": 5400, "tool_usage": {"glob": 1, "rg": 18, "sql": 2, "view": 7, "apply_patch": 2, "report_intent": 2, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} + +{"instance_id": "microsoftInternal__NAV-176082__cf-3", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\nindex 5fe44b45..f84ee80e 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\n@@ -1375,11 +1375,27 @@ table 5740 \"Transfer Header\"\n \n PurchRcptLine.FilterPstdDocLnItemLedgEntries(ItemLedgerEntry);\n ItemTrackingDocMgt.CopyItemLedgerEntriesToTemp(TempItemLedgerEntry, ItemLedgerEntry);\n+ ValidateTransferLineApplToItemEntry(TransferLine, TempItemLedgerEntry);\n ItemTrackingMgt.CopyItemLedgEntryTrkgToTransferLine(TempItemLedgerEntry, TransferLine);\n \n OnAfterAddTransferLineFromReceiptLine(TransferLine, PurchRcptLine, TempItemLedgerEntry, Rec);\n end;\n \n+ local procedure ValidateTransferLineApplToItemEntry(var TransferLine: Record \"Transfer Line\"; var TempItemLedgerEntry: Record \"Item Ledger Entry\" temporary)\n+ begin\n+ if not TempItemLedgerEntry.FindFirst() then\n+ exit;\n+\n+ if TempItemLedgerEntry.TrackingExists() then\n+ exit;\n+\n+ if TempItemLedgerEntry.Next() <> 0 then\n+ exit;\n+\n+ TransferLine.Validate(\"Appl.-to Item Entry\", TempItemLedgerEntry.\"Entry No.\");\n+ TransferLine.Modify(true);\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnUpdateTransLines(var TransferLine: Record \"Transfer Line\"; TransferHeader: Record \"Transfer Header\"; FieldID: Integer)\n begin\n", "error_message": null, "metrics": {"execution_time": 377.0, "llm_duration": null, "turn_count": 37, "prompt_tokens": 2200000, "completion_tokens": 12800, "tool_usage": {"rg": 53, "glob": 6, "report_intent": 7, "view": 35, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-176150__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al b/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\nindex 55d3fbad..d76dacd3 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\n@@ -1015,7 +1015,7 @@ page 5510 \"Production Journal\"\n \n protected procedure MarkRelevantRec(var ItemJournalLine: Record \"Item Journal Line\")\n begin\n- ItemJournalLine := Rec;\n+ SetPreviewFilters(ItemJournalLine);\n if ItemJournalLine.FindSet() then begin\n repeat\n case ItemJournalLine.\"Entry Type\" of\n@@ -1032,6 +1032,20 @@ page 5510 \"Production Journal\"\n end;\n end;\n \n+ local procedure SetPreviewFilters(var ItemJournalLine: Record \"Item Journal Line\")\n+ begin\n+ ItemJournalLine.Reset();\n+ ItemJournalLine.SetRange(\"Journal Template Name\", ToTemplateName);\n+ ItemJournalLine.SetRange(\"Journal Batch Name\", ToBatchName);\n+ ItemJournalLine.SetRange(\"Order Type\", ItemJournalLine.\"Order Type\"::Production);\n+ ItemJournalLine.SetRange(\"Order No.\", ProdOrder.\"No.\");\n+ if ProdOrderLineNo <> 0 then\n+ ItemJournalLine.SetRange(\"Order Line No.\", ProdOrderLineNo);\n+\n+ if FlushingFilter <> FlushingFilter::\"All Methods\" then\n+ ItemJournalLine.SetRange(\"Flushing Method\", FlushingFilter);\n+ end;\n+\n protected procedure InsertTempRec()\n begin\n if TempItemJnlLine.Find('-') then\n", "error_message": null, "metrics": {"execution_time": 228.0, "llm_duration": null, "turn_count": 19, "prompt_tokens": 721000, "completion_tokens": 9700, "tool_usage": {"sql": 2, "rg": 23, "powershell": 2, "report_intent": 4, "glob": 2, "view": 16, "apply_patch": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-176150__cf-2", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al b/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\nindex 55d3fbad..b22bf513 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\n@@ -1015,7 +1015,7 @@ page 5510 \"Production Journal\"\n \n protected procedure MarkRelevantRec(var ItemJournalLine: Record \"Item Journal Line\")\n begin\n- ItemJournalLine := Rec;\n+ ItemJournalLine.Copy(Rec);\n if ItemJournalLine.FindSet() then begin\n repeat\n case ItemJournalLine.\"Entry Type\" of\n", "error_message": null, "metrics": {"execution_time": 337.0, "llm_duration": null, "turn_count": 29, "prompt_tokens": 1600000, "completion_tokens": 12200, "tool_usage": {"glob": 1, "rg": 42, "report_intent": 2, "view": 25, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-176194__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssgntSales.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssgntSales.Codeunit.al\nindex de917342..cf2fb6f9 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssgntSales.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssgntSales.Codeunit.al\n@@ -206,7 +206,6 @@ codeunit 5807 \"Item Charge Assgnt. (Sales)\"\n SuggestItemChargeMessageTxt: Text;\n IsHandled: Boolean;\n begin\n- SalesLine.TestField(\"Qty. to Invoice\");\n ItemChargeAssgntSales.SetRange(\"Document Type\", SalesLine.\"Document Type\");\n ItemChargeAssgntSales.SetRange(\"Document No.\", SalesLine.\"Document No.\");\n ItemChargeAssgntSales.SetRange(\"Document Line No.\", SalesLine.\"Line No.\");\ndiff --git a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Page.al b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Page.al\nindex 0893904c..09b7d9ce 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Page.al\n@@ -310,8 +310,6 @@ page 5814 \"Item Charge Assignment (Sales)\"\n ItemChargeAssgntSales: Record \"Item Charge Assignment (Sales)\";\n ShipmentLines: Page \"Sales Shipment Lines\";\n begin\n- SalesLine2.TestField(\"Qty. to Invoice\");\n-\n ItemChargeAssgntSales.SetRange(\"Document Type\", Rec.\"Document Type\");\n ItemChargeAssgntSales.SetRange(\"Document No.\", Rec.\"Document No.\");\n ItemChargeAssgntSales.SetRange(\"Document Line No.\", Rec.\"Document Line No.\");\ndiff --git a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al\nindex 7cd86681..54a3ab82 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al\n@@ -58,8 +58,6 @@ table 5809 \"Item Charge Assignment (Sales)\"\n trigger OnValidate()\n begin\n SalesLine.Get(\"Document Type\", \"Document No.\", \"Document Line No.\");\n- if Rec.\"Qty. to Assign\" <> xRec.\"Qty. to Assign\" then\n- SalesLine.TestField(\"Qty. to Invoice\");\n TestField(\"Applies-to Doc. Line No.\");\n if (\"Qty. to Assign\" <> 0) and (\"Applies-to Doc. Type\" = \"Document Type\") then\n if SalesLineInvoiced() then\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134329'\nCodeunit 134329 ERM Purchase Return Order\n Testfunction GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToReceiveIsBlankInPurchPayablesSetup Failure (12.397 seconds)\n Error:\n Qty. to Invoice must have a value in Purchase Line: Document Type=Return Order, Document No.=1001, Line No.=20000. It cannot be zero or empty.\n Call Stack:\n \"Item Charge Assignment (Purch)\"(Table 5805).\"Qty. to Assign - OnValidate\"(Trigger) line 4 - Base Application by Microsoft\n \"Item Charge Assgnt. (Purch.)\"(CodeUnit 5805).InsertItemChargeAssignmentWithValuesTo line 20 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyFromPurchLineItemChargeAssign line 47 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyPurchInvLinesToDoc line 144 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyPurchaseLinesToDoc line 15 - Base Application by Microsoft\n \"Posted Purchase Document Lines\"(Page 5855).CopyLineToDoc line 23 - Base Application by Microsoft\n \"Purchase Header\"(Table 38).GetPstdDocLinesToReverse line 9 - Base Application by Microsoft\n \"Purchase Return Order\"(Page 6640).\"GetPostedDocumentLinesToReverse - OnAction\"(Trigger) line 2 - Base Application by Microsoft\nSetting test codeunit range '134387'\nCodeunit 134387 ERM Sales Documents III\n Testfunction GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToShipIsBlankInSalesReceiSetup Success (4.236 seconds)\n\u001b[32m[19:49:51] Tests passed for Codeunit 134387\u001b[0m", "metrics": {"execution_time": 152.0, "llm_duration": null, "turn_count": 14, "prompt_tokens": 454300, "completion_tokens": 5300, "tool_usage": {"glob": 2, "rg": 16, "report_intent": 2, "view": 17, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} + +{"instance_id": "microsoftInternal__NAV-176194__cf-2", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssgntSales.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssgntSales.Codeunit.al\nindex de917342..2523437c 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssgntSales.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssgntSales.Codeunit.al\n@@ -206,7 +206,7 @@ codeunit 5807 \"Item Charge Assgnt. (Sales)\"\n SuggestItemChargeMessageTxt: Text;\n IsHandled: Boolean;\n begin\n- SalesLine.TestField(\"Qty. to Invoice\");\n+ SalesLine.TestItemChargeQtyToInvoice();\n ItemChargeAssgntSales.SetRange(\"Document Type\", SalesLine.\"Document Type\");\n ItemChargeAssgntSales.SetRange(\"Document No.\", SalesLine.\"Document No.\");\n ItemChargeAssgntSales.SetRange(\"Document Line No.\", SalesLine.\"Line No.\");\ndiff --git a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Page.al b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Page.al\nindex 0893904c..52470322 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Page.al\n@@ -310,7 +310,7 @@ page 5814 \"Item Charge Assignment (Sales)\"\n ItemChargeAssgntSales: Record \"Item Charge Assignment (Sales)\";\n ShipmentLines: Page \"Sales Shipment Lines\";\n begin\n- SalesLine2.TestField(\"Qty. to Invoice\");\n+ SalesLine2.TestItemChargeQtyToInvoice();\n \n ItemChargeAssgntSales.SetRange(\"Document Type\", Rec.\"Document Type\");\n ItemChargeAssgntSales.SetRange(\"Document No.\", Rec.\"Document No.\");\ndiff --git a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al\nindex 7cd86681..cc7e91db 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al\n@@ -59,7 +59,7 @@ table 5809 \"Item Charge Assignment (Sales)\"\n begin\n SalesLine.Get(\"Document Type\", \"Document No.\", \"Document Line No.\");\n if Rec.\"Qty. to Assign\" <> xRec.\"Qty. to Assign\" then\n- SalesLine.TestField(\"Qty. to Invoice\");\n+ SalesLine.TestItemChargeQtyToInvoice();\n TestField(\"Applies-to Doc. Line No.\");\n if (\"Qty. to Assign\" <> 0) and (\"Applies-to Doc. Type\" = \"Document Type\") then\n if SalesLineInvoiced() then\ndiff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesLine.Table.al b/App/Layers/W1/BaseApp/Sales/Document/SalesLine.Table.al\nindex f6e57fd4..d942f945 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesLine.Table.al\n@@ -8410,6 +8410,13 @@ table 37 \"Sales Line\"\n exit((Type = Type::\"Charge (Item)\") and (\"No.\" <> '') and (\"Qty. to Assign\" < Quantity));\n end;\n \n+ procedure TestItemChargeQtyToInvoice()\n+ begin\n+ GetSalesSetup();\n+ if SalesSetup.\"Default Quantity to Ship\" <> SalesSetup.\"Default Quantity to Ship\"::Blank then\n+ TestField(\"Qty. to Invoice\");\n+ end;\n+\n local procedure UpdateLineDiscPct()\n var\n LineDiscountPct: Decimal;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134329'\nCodeunit 134329 ERM Purchase Return Order\n Testfunction GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToReceiveIsBlankInPurchPayablesSetup Failure (12.877 seconds)\n Error:\n Qty. to Invoice must have a value in Purchase Line: Document Type=Return Order, Document No.=1001, Line No.=20000. It cannot be zero or empty.\n Call Stack:\n \"Item Charge Assignment (Purch)\"(Table 5805).\"Qty. to Assign - OnValidate\"(Trigger) line 4 - Base Application by Microsoft\n \"Item Charge Assgnt. (Purch.)\"(CodeUnit 5805).InsertItemChargeAssignmentWithValuesTo line 20 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyFromPurchLineItemChargeAssign line 47 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyPurchInvLinesToDoc line 144 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyPurchaseLinesToDoc line 15 - Base Application by Microsoft\n \"Posted Purchase Document Lines\"(Page 5855).CopyLineToDoc line 23 - Base Application by Microsoft\n \"Purchase Header\"(Table 38).GetPstdDocLinesToReverse line 9 - Base Application by Microsoft\n \"Purchase Return Order\"(Page 6640).\"GetPostedDocumentLinesToReverse - OnAction\"(Trigger) line 2 - Base Application by Microsoft\nSetting test codeunit range '134387'\nCodeunit 134387 ERM Sales Documents III\n Testfunction GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToShipIsBlankInSalesReceiSetup Success (4.63 seconds)\n\u001b[32m[19:49:17] Tests passed for Codeunit 134387\u001b[0m", "metrics": {"execution_time": 177.0, "llm_duration": null, "turn_count": 16, "prompt_tokens": 642500, "completion_tokens": 6500, "tool_usage": {"rg": 20, "glob": 1, "report_intent": 3, "view": 16, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} + +{"instance_id": "microsoftInternal__NAV-176194__cf-3", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al\nindex 7cd86681..54a3ab82 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al\n@@ -58,8 +58,6 @@ table 5809 \"Item Charge Assignment (Sales)\"\n trigger OnValidate()\n begin\n SalesLine.Get(\"Document Type\", \"Document No.\", \"Document Line No.\");\n- if Rec.\"Qty. to Assign\" <> xRec.\"Qty. to Assign\" then\n- SalesLine.TestField(\"Qty. to Invoice\");\n TestField(\"Applies-to Doc. Line No.\");\n if (\"Qty. to Assign\" <> 0) and (\"Applies-to Doc. Type\" = \"Document Type\") then\n if SalesLineInvoiced() then\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134329'\nCodeunit 134329 ERM Purchase Return Order\n Testfunction GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToReceiveIsBlankInPurchPayablesSetup Failure (13.753 seconds)\n Error:\n Qty. to Invoice must have a value in Purchase Line: Document Type=Return Order, Document No.=1001, Line No.=20000. It cannot be zero or empty.\n Call Stack:\n \"Item Charge Assignment (Purch)\"(Table 5805).\"Qty. to Assign - OnValidate\"(Trigger) line 4 - Base Application by Microsoft\n \"Item Charge Assgnt. (Purch.)\"(CodeUnit 5805).InsertItemChargeAssignmentWithValuesTo line 20 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyFromPurchLineItemChargeAssign line 47 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyPurchInvLinesToDoc line 144 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyPurchaseLinesToDoc line 15 - Base Application by Microsoft\n \"Posted Purchase Document Lines\"(Page 5855).CopyLineToDoc line 23 - Base Application by Microsoft\n \"Purchase Header\"(Table 38).GetPstdDocLinesToReverse line 9 - Base Application by Microsoft\n \"Purchase Return Order\"(Page 6640).\"GetPostedDocumentLinesToReverse - OnAction\"(Trigger) line 2 - Base Application by Microsoft\nSetting test codeunit range '134387'\nCodeunit 134387 ERM Sales Documents III\n Testfunction GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToShipIsBlankInSalesReceiSetup Success (4.33 seconds)\n\u001b[32m[19:48:07] Tests passed for Codeunit 134387\u001b[0m", "metrics": {"execution_time": 191.0, "llm_duration": null, "turn_count": 18, "prompt_tokens": 708700, "completion_tokens": 6300, "tool_usage": {"rg": 21, "report_intent": 15, "view": 12, "glob": 6, "powershell": 2, "apply_patch": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} + +{"instance_id": "microsoftInternal__NAV-176426__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\nindex d639a562..27a45311 100644\n--- a/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\n@@ -993,7 +993,7 @@ codeunit 5870 \"Calculate BOM Tree\"\n exit(true);\n end;\n Item.\"Replenishment System\"::\"Prod. Order\":\n- if Item.\"Production BOM No.\" <> '' then\n+ if (Item.\"Production BOM No.\" <> '') or (Item.\"Routing No.\" <> '') then\n exit(true);\n end;\n end;\n", "error_message": null, "metrics": {"execution_time": 116.0, "llm_duration": null, "turn_count": 11, "prompt_tokens": 432700, "completion_tokens": 4200, "tool_usage": {"glob": 1, "rg": 9, "report_intent": 2, "view": 14, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-176426__cf-2", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\nindex d639a562..0ba8f12e 100644\n--- a/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\n@@ -983,6 +983,8 @@ codeunit 5870 \"Calculate BOM Tree\"\n local procedure HasBomStructure(ItemNo: Code[20]): Boolean\n var\n Item: Record Item;\n+ ProdBOMLine: Record \"Production BOM Line\";\n+ VersionMgt: Codeunit VersionManagement;\n begin\n Item.Get(ItemNo);\n case Item.\"Replenishment System\" of\n@@ -993,8 +995,17 @@ codeunit 5870 \"Calculate BOM Tree\"\n exit(true);\n end;\n Item.\"Replenishment System\"::\"Prod. Order\":\n- if Item.\"Production BOM No.\" <> '' then\n- exit(true);\n+ begin\n+ if Item.\"Production BOM No.\" = '' then\n+ exit(false);\n+\n+ ProdBOMLine.SetRange(\"Production BOM No.\", Item.\"Production BOM No.\");\n+ ProdBOMLine.SetRange(\"Version Code\", VersionMgt.GetBOMVersion(Item.\"Production BOM No.\", WorkDate(), true));\n+ ProdBOMLine.SetFilter(\"Starting Date\", '%1|..%2', 0D, WorkDate());\n+ ProdBOMLine.SetFilter(\"Ending Date\", '%1|%2..', 0D, WorkDate());\n+ ProdBOMLine.SetFilter(\"No.\", '<>%1', '');\n+ exit(not ProdBOMLine.IsEmpty());\n+ end;\n end;\n end;\n \n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137391'\nCodeunit 137391 SCM - BOM Cost Shares Report\n Testfunction RolledUpMaterialAndCapacityCostWithRoutingAndNoBOM Failure (4.146 seconds)\n Error:\n AssertEquals for Field: Rolled-up Capacity Cost Expected = '24.48', Actual = '146.88'\n Call Stack:\n \"SCM - BOM Cost Shares Report\"(CodeUnit 137391).VerifyParentItemMaterialAndCapacityCost line 8 - Tests-SCM by Microsoft\n \"SCM - BOM Cost Shares Report\"(CodeUnit 137391).RolledUpMaterialAndCapacityCostWithRoutingAndNoBOM line 34 - Tests-SCM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 229.0, "llm_duration": null, "turn_count": 22, "prompt_tokens": 933000, "completion_tokens": 8000, "tool_usage": {"glob": 1, "rg": 24, "view": 20, "report_intent": 1, "powershell": 2, "apply_patch": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} + +{"instance_id": "microsoftInternal__NAV-177493__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\nindex bb47904d..1bc631bf 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n@@ -40,6 +40,7 @@ report 302 \"Get Demand To Reserve\"\n SetFilter(\"Variant Code\", FilterItem.GetFilter(\"Variant Filter\"));\n SetFilter(\"Location Code\", FilterItem.GetFilter(\"Location Filter\"));\n SetFilter(\"Shipment Date\", FilterItem.GetFilter(\"Date Filter\"));\n+ SetFilter(Reserve, '<>%1', Reserve::Never);\n \n FilterGroup(2);\n if DateFilter <> '' then\n@@ -140,6 +141,7 @@ report 302 \"Get Demand To Reserve\"\n SetFilter(\"Variant Code\", FilterItem.GetFilter(\"Variant Filter\"));\n SetFilter(\"Location Code\", FilterItem.GetFilter(\"Location Filter\"));\n SetFilter(\"Needed by Date\", FilterItem.GetFilter(\"Date Filter\"));\n+ SetFilter(Reserve, '<>%1', Reserve::Never);\n \n FilterGroup(2);\n if DateFilter <> '' then\n@@ -190,6 +192,7 @@ report 302 \"Get Demand To Reserve\"\n SetFilter(\"Variant Code\", FilterItem.GetFilter(\"Variant Filter\"));\n SetFilter(\"Location Code\", FilterItem.GetFilter(\"Location Filter\"));\n SetFilter(\"Planning Date\", FilterItem.GetFilter(\"Date Filter\"));\n+ SetFilter(Reserve, '<>%1', Reserve::Never);\n \n FilterGroup(2);\n if DateFilter <> '' then\n@@ -241,6 +244,7 @@ report 302 \"Get Demand To Reserve\"\n SetFilter(\"Variant Code\", FilterItem.GetFilter(\"Variant Filter\"));\n SetFilter(\"Location Code\", FilterItem.GetFilter(\"Location Filter\"));\n SetFilter(\"Due Date\", FilterItem.GetFilter(\"Date Filter\"));\n+ SetFilter(Reserve, '<>%1', Reserve::Never);\n \n FilterGroup(2);\n if DateFilter <> '' then\n@@ -548,4 +552,4 @@ report 302 \"Get Demand To Reserve\"\n local procedure OnSalesOrderLineOnAfterGetRecordOnBeforeSetTempSalesLine(var OrderSalesLine: Record \"Sales Line\")\n begin\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137023'\nCodeunit 137023 SCM Reservation Worksheet\n Testfunction ItemWithReserveNeverNotInReservationWorksheet Failure (9.03 seconds)\n Error:\n Assert.IsFalse failed. Sales demand with Reserve=Never should appear (filtering deferred to post-processing).\n Call Stack:\n Assert(CodeUnit 130000).IsFalse line 3 - Tests-TestLibraries by Microsoft\n \"SCM Reservation Worksheet\"(CodeUnit 137023).ItemWithReserveNeverNotInReservationWorksheet line 50 - Tests-SCM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 186.0, "llm_duration": null, "turn_count": 15, "prompt_tokens": 761900, "completion_tokens": 6500, "tool_usage": {"rg": 17, "glob": 4, "report_intent": 12, "view": 17, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} + +{"instance_id": "microsoftInternal__NAV-177493__cf-2", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\nindex bb47904d..d770da63 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n@@ -58,6 +58,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if Reserve = Reserve::Never then\n+ CurrReport.Skip();\n+\n if not CheckIfSalesLineMeetsReservedFromStockSetting(Abs(\"Outstanding Qty. (Base)\"), ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -158,6 +161,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if Reserve = Reserve::Never then\n+ CurrReport.Skip();\n+\n if not CheckIfServiceLineMeetsReservedFromStockSetting(Abs(\"Outstanding Qty. (Base)\"), ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -548,4 +554,4 @@ report 302 \"Get Demand To Reserve\"\n local procedure OnSalesOrderLineOnAfterGetRecordOnBeforeSetTempSalesLine(var OrderSalesLine: Record \"Sales Line\")\n begin\n end;\n-}\n\\ No newline at end of file\n+}\ndiff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/ReservationWkshLine.Table.al b/App/Layers/W1/BaseApp/Inventory/Tracking/ReservationWkshLine.Table.al\nindex 9e55b199..b7688762 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/ReservationWkshLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/ReservationWkshLine.Table.al\n@@ -339,6 +339,7 @@ table 346 \"Reservation Wksh. Line\"\n if not SalesLine.Get(\"Record ID\") then\n exit(true);\n if not SalesLine.IsInventoriableItem() or\n+ (SalesLine.Reserve = SalesLine.Reserve::Never) or\n (\"Item No.\" <> SalesLine.\"No.\") or (\"Variant Code\" <> SalesLine.\"Variant Code\") or (\"Location Code\" <> SalesLine.\"Location Code\") or\n (\"Unit of Measure Code\" <> SalesLine.\"Unit of Measure Code\")\n then\n@@ -358,6 +359,7 @@ table 346 \"Reservation Wksh. Line\"\n if not ServiceLine.Get(\"Record ID\") then\n exit(true);\n if not ServiceLine.IsInventoriableItem() or\n+ (ServiceLine.Reserve = ServiceLine.Reserve::Never) or\n (\"Item No.\" <> ServiceLine.\"No.\") or (\"Variant Code\" <> ServiceLine.\"Variant Code\") or (\"Location Code\" <> ServiceLine.\"Location Code\") or\n (\"Unit of Measure Code\" <> ServiceLine.\"Unit of Measure Code\")\n then\n@@ -440,4 +442,4 @@ table 346 \"Reservation Wksh. Line\"\n ReservationWkshLine.Modify();\n until ReservationWkshLine.Next() = 0;\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": null, "metrics": {"execution_time": 183.0, "llm_duration": null, "turn_count": 16, "prompt_tokens": 593500, "completion_tokens": 7200, "tool_usage": {"glob": 1, "rg": 24, "report_intent": 3, "view": 15, "apply_patch": 2, "powershell": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-177493__cf-3", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\nindex bb47904d..c607a2a3 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n@@ -58,6 +58,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if not CanBeReserved(Reserve) then\n+ CurrReport.Skip();\n+\n if not CheckIfSalesLineMeetsReservedFromStockSetting(Abs(\"Outstanding Qty. (Base)\"), ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -158,6 +161,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if not CanBeReserved(Reserve) then\n+ CurrReport.Skip();\n+\n if not CheckIfServiceLineMeetsReservedFromStockSetting(Abs(\"Outstanding Qty. (Base)\"), ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -208,6 +214,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if not CanBeReserved(Reserve) then\n+ CurrReport.Skip();\n+\n if not CheckIfJobPlngLineMeetsReservedFromStockSetting(\"Remaining Qty. (Base)\", ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -259,6 +268,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if not CanBeReserved(Reserve) then\n+ CurrReport.Skip();\n+\n if not CheckIfAssemblyLineMeetsReservedFromStockSetting(\"Remaining Quantity (Base)\", ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -309,6 +321,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if not CanBeReserved(ProdOrderComponent) then\n+ CurrReport.Skip();\n+\n if not CheckIfProdOrderCompMeetsReservedFromStockSetting(\"Remaining Qty. (Base)\", ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -544,8 +559,21 @@ report 302 \"Get Demand To Reserve\"\n DateFilter := Format(StartDate) + '..' + Format(EndDate);\n end;\n \n+ local procedure CanBeReserved(ReserveMethod: Enum \"Reserve Method\"): Boolean\n+ begin\n+ exit(ReserveMethod <> ReserveMethod::Never);\n+ end;\n+\n+ local procedure CanBeReserved(ProdOrderComponent: Record \"Prod. Order Component\"): Boolean\n+ var\n+ Item: Record Item;\n+ begin\n+ Item.Get(ProdOrderComponent.\"Item No.\");\n+ exit(CanBeReserved(Item.Reserve));\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnSalesOrderLineOnAfterGetRecordOnBeforeSetTempSalesLine(var OrderSalesLine: Record \"Sales Line\")\n begin\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": null, "metrics": {"execution_time": 268.0, "llm_duration": null, "turn_count": 28, "prompt_tokens": 1200000, "completion_tokens": 10900, "tool_usage": {"glob": 2, "rg": 30, "view": 31, "apply_patch": 1, "report_intent": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-178045__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Service/History/UndoServiceConsumptionLine.Codeunit.al b/App/Layers/W1/BaseApp/Service/History/UndoServiceConsumptionLine.Codeunit.al\nindex 6ff0fb9d..97bb5b22 100644\n--- a/App/Layers/W1/BaseApp/Service/History/UndoServiceConsumptionLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Service/History/UndoServiceConsumptionLine.Codeunit.al\n@@ -183,7 +183,14 @@ codeunit 5819 \"Undo Service Consumption Line\"\n TempTrackingSpecToTest: Record \"Tracking Specification\" temporary;\n begin\n ServShptLine.FilterPstdDocLnItemLedgEntries(FromItemLedgEntry);\n- ItemTrackingDocMgt.CopyItemLedgerEntriesToTemp(TempItemLedgEntry, FromItemLedgEntry);\n+ TempItemLedgEntry.Reset();\n+ TempItemLedgEntry.DeleteAll();\n+ if FromItemLedgEntry.FindSet() then\n+ repeat\n+ TempItemLedgEntry := FromItemLedgEntry;\n+ TempItemLedgEntry.Insert();\n+ until FromItemLedgEntry.Next() = 0;\n+ TempItemLedgEntry.Reset();\n ItemTrackingDocMgt.RetrieveDocumentItemTracking(TempTrackingSpecToTest,\n ServShptLine.\"Document No.\", DATABASE::\"Service Shipment Header\", 0); // 0 - no doctype\n TrackingSpecificationExists := (TempTrackingSpecToTest.Count <> 0);\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137404'\nCodeunit 137404 SCM Manufacturing\n Testfunction ConsumptionIsPostedForMultipleILEsOfSameLotNo Failure (10.714 seconds)\n Error:\n You have insufficient quantity of Item GL00000000 on inventory.\n Call Stack:\n \"Production Journal Mgt\"(CodeUnit 5510).Handling line 30 - Base Application by Microsoft\n \"Released Prod. Order Lines\"(Page 99000832).ShowProductionJournal line 10 - Base Application by Microsoft\n \"Released Prod. Order Lines\"(Page 99000832).\"ProductionJournal - OnAction\"(Trigger) line 2 - Base Application by Microsoft", "metrics": {"execution_time": 305.0, "llm_duration": null, "turn_count": 21, "prompt_tokens": 1200000, "completion_tokens": 11100, "tool_usage": {"rg": 39, "report_intent": 6, "glob": 6, "view": 8, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} + +{"instance_id": "microsoftInternal__NAV-179733__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al\nindex efa323e6..6460c7d8 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al\n@@ -91,7 +91,13 @@ codeunit 1006 \"Copy Job\"\n TargetJobTask.Validate(\"Job No.\", TargetJob.\"No.\");\n TargetJobTask.Validate(\"Job Task No.\", SourceJobTask.\"Job Task No.\");\n TargetJobTask.TransferFields(SourceJobTask, false);\n- if SourceJob.\"Task Billing Method\" = SourceJob.\"Task Billing Method\"::\"Multiple customers\" then begin\n+ if (TargetJob.\"Task Billing Method\" = TargetJob.\"Task Billing Method\"::\"Multiple customers\") and\n+ (TargetJobTask.\"Job Task Type\" = TargetJobTask.\"Job Task Type\"::\"Begin-Total\")\n+ then begin\n+ TargetJobTask.SetHideValidationDialog(true);\n+ TargetJobTask.Validate(\"Sell-to Customer No.\", '');\n+ end else\n+ if SourceJob.\"Task Billing Method\" = SourceJob.\"Task Billing Method\"::\"Multiple customers\" then begin\n TargetJobTask.SetHideValidationDialog(true);\n TargetJobTask.Validate(\"Sell-to Customer No.\", '');\n end;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136323'\nCodeunit 136323 Jobs - Multiple Customers\n Testfunction CopyTotalsProjectTasksTypeIntoProjectsWithMultipleCustomerBillingOption Failure (1.716 seconds)\n Error:\n Project Task Type must be equal to 'Posting' in Project Task: Project No.=ZZZJ002, Project Task No.=ZZZJT001. Current value is 'Begin-Total'.\n Call Stack:\n \"Job Task\"(Table 1001).\"Sell-to Customer No. - OnValidate\"(Trigger) line 3 - Base Application by Microsoft\n \"Job Task\"(Table 1001).InitCustomer line 9 - Base Application by Microsoft\n \"Job Task\"(Table 1001).OnInsert(Trigger) line 20 - Base Application by Microsoft\n \"Copy Job\"(CodeUnit 1006).CopyJobTasks line 49 - Base Application by Microsoft\n \"Jobs - Multiple Customers\"(CodeUnit 136323).CopyTotalsProjectTasksTypeIntoProjectsWithMultipleCustomerBillingOption line 34 - Tests-Job by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 203.0, "llm_duration": null, "turn_count": 16, "prompt_tokens": 734900, "completion_tokens": 8400, "tool_usage": {"rg": 12, "glob": 2, "report_intent": 2, "view": 18, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} + +{"instance_id": "microsoftInternal__NAV-180484__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/eServices/EDocument/ReleaseIncomingDocument.Codeunit.al b/App/Layers/W1/BaseApp/eServices/EDocument/ReleaseIncomingDocument.Codeunit.al\nindex 4e5ba08c..ef423281 100644\n--- a/App/Layers/W1/BaseApp/eServices/EDocument/ReleaseIncomingDocument.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/eServices/EDocument/ReleaseIncomingDocument.Codeunit.al\n@@ -44,9 +44,13 @@ codeunit 132 \"Release Incoming Document\"\n #pragma warning restore AA0470\n \n procedure Reopen(var IncomingDocument: Record \"Incoming Document\")\n+ var\n+ RelatedRecord: Variant;\n begin\n if IncomingDocument.Status = IncomingDocument.Status::New then\n exit;\n+ if IncomingDocument.GetRecord(RelatedRecord) then\n+ exit;\n ClearReleaseFields(IncomingDocument);\n IncomingDocument.Status := IncomingDocument.Status::New;\n \n", "error_message": null, "metrics": {"execution_time": 216.0, "llm_duration": null, "turn_count": 20, "prompt_tokens": 930000, "completion_tokens": 8400, "tool_usage": {"rg": 30, "powershell": 2, "report_intent": 2, "glob": 2, "view": 19, "apply_patch": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-180484__cf-2", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/eServices/EDocument/ReleaseIncomingDocument.Codeunit.al b/App/Layers/W1/BaseApp/eServices/EDocument/ReleaseIncomingDocument.Codeunit.al\nindex 4e5ba08c..ef423281 100644\n--- a/App/Layers/W1/BaseApp/eServices/EDocument/ReleaseIncomingDocument.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/eServices/EDocument/ReleaseIncomingDocument.Codeunit.al\n@@ -44,9 +44,13 @@ codeunit 132 \"Release Incoming Document\"\n #pragma warning restore AA0470\n \n procedure Reopen(var IncomingDocument: Record \"Incoming Document\")\n+ var\n+ RelatedRecord: Variant;\n begin\n if IncomingDocument.Status = IncomingDocument.Status::New then\n exit;\n+ if IncomingDocument.GetRecord(RelatedRecord) then\n+ exit;\n ClearReleaseFields(IncomingDocument);\n IncomingDocument.Status := IncomingDocument.Status::New;\n \n", "error_message": null, "metrics": {"execution_time": 195.0, "llm_duration": null, "turn_count": 17, "prompt_tokens": 761100, "completion_tokens": 6500, "tool_usage": {"glob": 3, "rg": 16, "report_intent": 14, "view": 25, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-182354__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al b/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al\nindex 737182d0..42e06cd4 100644\n--- a/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al\n+++ b/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al\n@@ -28,7 +28,7 @@ page 1318 \"Account Receivables KPIs\"\n begin\n CustLedgerEntry.SetRange(Open, true);\n CustLedgerEntry.SetFilter(\"Remaining Amount\", '>%1', 0);\n- CustLedgerEntry.SetFilter(\"Due Date\", '<=%1', WorkDate());\n+ CustLedgerEntry.SetFilter(\"Due Date\", '<=%1', GetReceivablesFilterDate());\n CustomerLedgerEntries.SetTableView(CustLedgerEntry);\n CustomerLedgerEntries.Run();\n end;\n@@ -77,7 +77,7 @@ page 1318 \"Account Receivables KPIs\"\n CustomerLedgerEntries: Page \"Customer Ledger Entries\";\n begin\n CustLedgerEntry.SetFilter(\"Document Type\", '%1|%2', CustLedgerEntry.\"Document Type\"::Invoice, CustLedgerEntry.\"Document Type\"::\"Credit Memo\");\n- CustLedgerEntry.SetFilter(\"Due Date\", '%1..%2', CalcDate('<1D>', Today), CalcDate('<1W>', Today));\n+ CustLedgerEntry.SetFilter(\"Due Date\", '%1..%2', CalcDate('<1D>', GetReceivablesFilterDate()), CalcDate('<1W>', GetReceivablesFilterDate()));\n CustLedgerEntry.SetRange(\"Open\", true);\n CustomerLedgerEntries.SetTableView(CustLedgerEntry);\n CustomerLedgerEntries.Run();\n@@ -97,18 +97,20 @@ page 1318 \"Account Receivables KPIs\"\n var\n CuesAndKPIs: Codeunit \"Cues And KPIs\";\n SalesInvoicesDueNextWeekStyle: Enum \"Cues And KPIs Style\";\n+ ReceivablesFilterDate: Date;\n begin\n- Rec.SetRange(\"Overdue Date Filter\", 0D, WorkDate());\n if not Rec.Get() then begin\n Clear(Rec);\n Rec.Insert();\n end;\n+ ReceivablesFilterDate := GetReceivablesFilterDate();\n+ Rec.SetRange(\"Overdue Date Filter\", 0D, ReceivablesFilterDate);\n if not ActivitiesCue.Get() then begin\n ActivitiesCue.Init();\n ActivitiesCue.Insert();\n Commit();\n end;\n- ActivitiesCue.SetFilter(\"Due Next Week Filter\", '%1..%2', CalcDate('<1D>', Today), CalcDate('<1W>', Today));\n+ ActivitiesCue.SetFilter(\"Due Next Week Filter\", '%1..%2', CalcDate('<1D>', ReceivablesFilterDate), CalcDate('<1W>', ReceivablesFilterDate));\n ActivitiesCue.CalcFields(\"Sales Invoices Due Next Week\");\n CuesAndKPIs.SetCueStyle(Database::\"Activities Cue\", ActivitiesCue.FieldNo(\"Sales Invoices Due Next Week\"), ActivitiesCue.\"Sales Invoices Due Next Week\", SalesInvoicesDueNextWeekStyle);\n SalesInvoicesDueNextWeekStyleExpr := Format(SalesInvoicesDueNextWeekStyle);\n@@ -120,4 +122,15 @@ page 1318 \"Account Receivables KPIs\"\n begin\n AverageCollectionDays := ActivitiesMgt.CalcAverageCollectionDays();\n end;\n-}\n\\ No newline at end of file\n+\n+ local procedure GetReceivablesFilterDate(): Date\n+ var\n+ ReceivablesFilterDate: Date;\n+ begin\n+ ReceivablesFilterDate := Today;\n+ if ReceivablesFilterDate = 0D then\n+ ReceivablesFilterDate := WorkDate();\n+\n+ exit(ReceivablesFilterDate);\n+ end;\n+}\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134924'\nCodeunit 134924 ERM Cues\n Testfunction TotalOverdueLCYInFinanceCue Failure (6.39 seconds)\n Error:\n Assert.AreEqual failed. Expected:<> (Text). Actual:<50.17> (Text). The total overdue LCY amount is not calculated correctly..\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"ERM Cues\"(CodeUnit 134924).TotalOverdueLCYInFinanceCue line 38 - Tests-ERM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 278.0, "llm_duration": null, "turn_count": 23, "prompt_tokens": 635400, "completion_tokens": 9400, "tool_usage": {"rg": 37, "glob": 8, "report_intent": 20, "view": 12, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} + +{"instance_id": "microsoftInternal__NAV-183399__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\nindex 553ae9c0..cec7b1ec 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n@@ -255,6 +255,7 @@ page 254 \"Purchase Journal\"\n {\n ApplicationArea = Basic, Suite;\n AutoFormatExpression = Rec.\"Currency Code\";\n+ AutoFormatType = 1;\n Caption = 'Document Amount';\n ToolTip = 'Specifies the total amount (including VAT) that the journal line consists of.';\n \n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134918'\nCodeunit 134918 ERM Sales/Purchase Application\n Testfunction DocumentAmountInPurchJnlAcceptsMaxThreeDecimalPlacesValue Failure (5.13 seconds)\n Error:\n Assert.AreEqual failed. Expected:<1.7461> (Decimal). Actual:<1.75> (Decimal). The document amount is not correct. Expected: 1.7461, Actual: 1.75.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"ERM Sales/Purchase Application\"(CodeUnit 134918).DocumentAmountInPurchJnlAcceptsMaxThreeDecimalPlacesValue line 25 - Tests-ERM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 107.0, "llm_duration": null, "turn_count": 11, "prompt_tokens": 309900, "completion_tokens": 3900, "tool_usage": {"rg": 16, "glob": 1, "report_intent": 2, "view": 8, "apply_patch": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} + +{"instance_id": "microsoftInternal__NAV-183399__cf-2", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\nindex 553ae9c0..cec7b1ec 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n@@ -255,6 +255,7 @@ page 254 \"Purchase Journal\"\n {\n ApplicationArea = Basic, Suite;\n AutoFormatExpression = Rec.\"Currency Code\";\n+ AutoFormatType = 1;\n Caption = 'Document Amount';\n ToolTip = 'Specifies the total amount (including VAT) that the journal line consists of.';\n \n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134918'\nCodeunit 134918 ERM Sales/Purchase Application\n Testfunction DocumentAmountInPurchJnlAcceptsMaxThreeDecimalPlacesValue Failure (4.773 seconds)\n Error:\n Assert.AreEqual failed. Expected:<1.747> (Decimal). Actual:<1.75> (Decimal). The document amount is not correct. Expected: 1.747, Actual: 1.75.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"ERM Sales/Purchase Application\"(CodeUnit 134918).DocumentAmountInPurchJnlAcceptsMaxThreeDecimalPlacesValue line 25 - Tests-ERM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 154.0, "llm_duration": null, "turn_count": 12, "prompt_tokens": 377200, "completion_tokens": 5000, "tool_usage": {"rg": 17, "glob": 1, "report_intent": 8, "view": 7, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} + +{"instance_id": "microsoftInternal__NAV-185488__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al b/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al\nindex bcd82095..57363914 100644\n--- a/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al\n@@ -624,22 +624,48 @@ codeunit 1521 \"Workflow Response Handling\"\n begin\n end;\n \n- local procedure CreateNotificationEntry(WorkflowStepInstance: Record \"Workflow Step Instance\"; ApprovalEntry: Record \"Approval Entry\")\n+ local procedure CreateNotificationEntry(WorkflowStepInstance: Record \"Workflow Step Instance\"; NotificationRecord: Variant)\n var\n WorkflowStepArgument: Record \"Workflow Step Argument\";\n NotificationEntry: Record \"Notification Entry\";\n+ ApprovalEntry: Record \"Approval Entry\";\n+ RecipientUserID: Code[50];\n+ HasApprovalEntry: Boolean;\n IsHandled: Boolean;\n begin\n+ if not WorkflowStepArgument.Get(WorkflowStepInstance.Argument) then\n+ exit;\n+\n+ HasApprovalEntry := TryGetApprovalEntry(NotificationRecord, ApprovalEntry);\n+ if WorkflowStepArgument.\"Notify Sender\" then begin\n+ if not HasApprovalEntry then\n+ exit;\n+\n+ RecipientUserID := ApprovalEntry.\"Sender ID\";\n+ end else\n+ RecipientUserID := WorkflowStepArgument.\"Notification User ID\";\n+\n IsHandled := false;\n OnBeforeCreateNotificationEntry(WorkflowStepInstance, ApprovalEntry, IsHandled);\n if IsHandled then\n exit;\n \n- if WorkflowStepArgument.Get(WorkflowStepInstance.Argument) then\n- NotificationEntry.CreateNotificationEntry(\n- WorkflowStepArgument.\"Notification Entry Type\",\n- WorkflowStepArgument.GetNotificationUserID(ApprovalEntry), ApprovalEntry, WorkflowStepArgument.\"Link Target Page\",\n- WorkflowStepArgument.\"Custom Link\", UserID);\n+ NotificationEntry.CreateNotificationEntry(\n+ WorkflowStepArgument.\"Notification Entry Type\",\n+ RecipientUserID, NotificationRecord, WorkflowStepArgument.\"Link Target Page\",\n+ WorkflowStepArgument.\"Custom Link\", UserID);\n+ end;\n+\n+ local procedure TryGetApprovalEntry(NotificationRecord: Variant; var ApprovalEntry: Record \"Approval Entry\"): Boolean\n+ var\n+ RecordRef: RecordRef;\n+ begin\n+ RecordRef.GetTable(NotificationRecord);\n+ if RecordRef.RecordId.TableNo <> DATABASE::\"Approval Entry\" then\n+ exit(false);\n+\n+ ApprovalEntry := NotificationRecord;\n+ exit(true);\n end;\n \n local procedure ReleaseDocument(var Variant: Variant)\n", "error_message": null, "metrics": {"execution_time": 237.0, "llm_duration": null, "turn_count": 20, "prompt_tokens": 862400, "completion_tokens": 9800, "tool_usage": {"glob": 2, "rg": 18, "report_intent": 4, "view": 19, "apply_patch": 2, "powershell": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-185792__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\nindex 53e7159a..4a0b3434 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\n@@ -598,6 +598,7 @@ table 81 \"Gen. Journal Line\"\n Validate(\"VAT %\");\n Validate(\"Bal. VAT %\");\n UpdateLineBalance();\n+ UpdateAmountDependentData();\n end;\n end;\n }\n@@ -4157,6 +4158,13 @@ table 81 \"Gen. Journal Line\"\n Validate(\"VAT %\");\n Validate(\"Bal. VAT %\");\n UpdateLineBalance();\n+ UpdateAmountDependentData();\n+\n+ OnAfterValidateAmount(Rec);\n+ end;\n+\n+ local procedure UpdateAmountDependentData()\n+ begin\n if \"Deferral Code\" <> '' then\n Validate(\"Deferral Code\");\n \n@@ -4166,8 +4174,6 @@ table 81 \"Gen. Journal Line\"\n CreateTempJobJnlLine();\n UpdatePricesFromJobJnlLine();\n end;\n-\n- OnAfterValidateAmount(Rec);\n end;\n \n local procedure UpdateApplyToAmount()\n", "error_message": null, "metrics": {"execution_time": 179.0, "llm_duration": null, "turn_count": 15, "prompt_tokens": 507200, "completion_tokens": 6100, "tool_usage": {"glob": 6, "rg": 13, "report_intent": 3, "view": 16, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-188438__cf-1", "project": "Sustainability", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/Sustainability/app/src/Calculation/GLAccountsSubform.Page.al b/App/Apps/W1/Sustainability/app/src/Calculation/GLAccountsSubform.Page.al\nindex 3e39d840..a62c664d 100644\n--- a/App/Apps/W1/Sustainability/app/src/Calculation/GLAccountsSubform.Page.al\n+++ b/App/Apps/W1/Sustainability/app/src/Calculation/GLAccountsSubform.Page.al\n@@ -9,6 +9,11 @@ page 6225 \"G/L Accounts Subform\"\n PageType = ListPart;\n SourceTable = \"G/L Account\";\n \n+ trigger OnOpenPage()\n+ begin\n+ Rec.SetRange(\"Direct Posting\", true);\n+ end;\n+\n layout\n {\n area(content)\n@@ -56,4 +61,4 @@ page 6225 \"G/L Accounts Subform\"\n Rec.CalcFields(\"Net Change\");\n CurrPage.Update(false);\n end;\n-}\n\\ No newline at end of file\n+}\ndiff --git a/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al b/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al\nindex 4644c873..640a2fab 100644\n--- a/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al\n+++ b/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al\n@@ -2,7 +2,9 @@ namespace Microsoft.Sustainability.Calculation;\n \n using Microsoft.Sustainability.Journal;\n using Microsoft.Sustainability.Account;\n+using Microsoft.Finance.GeneralLedger.Account;\n using Microsoft.Finance.GeneralLedger.Ledger;\n+using System.Text;\n \n codeunit 6218 \"Sustainability Calc. Mgt.\"\n {\n@@ -70,7 +72,7 @@ codeunit 6218 \"Sustainability Calc. Mgt.\"\n begin\n FilterGLEntry(SustainAccountCategory, FromDate, ToDate, GLEntry);\n GLEntry.CalcSums(Amount);\n- exit(GLEntry.Amount);\n+ exit(Abs(GLEntry.Amount));\n end;\n \n internal procedure CollectGeneralLedgerAmount(var SustainabilityJnlLine: Record \"Sustainability Jnl. Line\")\n@@ -93,9 +95,16 @@ codeunit 6218 \"Sustainability Calc. Mgt.\"\n end;\n \n internal procedure FilterGLEntry(SustainAccountCategory: Record \"Sustain. Account Category\"; FromDate: Date; ToDate: Date; var GLEntry: Record \"G/L Entry\");\n+ var\n+ DirectPostingGLAccountFilter: Text;\n begin\n+ DirectPostingGLAccountFilter := GetDirectPostingGLAccountFilter(SustainAccountCategory);\n+\n GLEntry.Reset();\n- GLEntry.SetFilter(\"G/L Account No.\", SustainAccountCategory.\"G/L Account Filter\");\n+ if DirectPostingGLAccountFilter = '' then\n+ GLEntry.SetRange(\"Entry No.\", 0)\n+ else\n+ GLEntry.SetFilter(\"G/L Account No.\", DirectPostingGLAccountFilter);\n GLEntry.SetFilter(\"Global Dimension 1 Code\", SustainAccountCategory.\"Global Dimension 1 Filter\");\n GLEntry.SetFilter(\"Global Dimension 2 Code\", SustainAccountCategory.\"Global Dimension 2 Filter\");\n if (FromDate <> 0D) or (ToDate <> 0D) then\n@@ -103,6 +112,20 @@ codeunit 6218 \"Sustainability Calc. Mgt.\"\n OnAfterFilterGLEntry(SustainAccountCategory, FromDate, ToDate, GLEntry);\n end;\n \n+ local procedure GetDirectPostingGLAccountFilter(SustainAccountCategory: Record \"Sustain. Account Category\"): Text\n+ var\n+ GLAccount: Record \"G/L Account\";\n+ SelectionFilterManagement: Codeunit SelectionFilterManagement;\n+ begin\n+ GLAccount.SetFilter(\"No.\", SustainAccountCategory.\"G/L Account Filter\");\n+ GLAccount.SetRange(\"Direct Posting\", true);\n+\n+ if GLAccount.IsEmpty() then\n+ exit('');\n+\n+ exit(SelectionFilterManagement.GetSelectionFilterForGLAccount(GLAccount));\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnAfterFilterGLEntry(SustainAccountCategory: Record \"Sustain. Account Category\"; FromDate: Date; ToDate: Date; var GLEntry: Record \"G/L Entry\")\n begin\n@@ -112,4 +135,4 @@ codeunit 6218 \"Sustainability Calc. Mgt.\"\n local procedure OnBeforeCalculationEmissions(var IsHandled: Boolean; var SustainabilityJnlLine: Record \"Sustainability Jnl. Line\")\n begin\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": "Build or publish failed for App\\Apps\\W1\\Sustainability\\app:\nC:\\Source\\App\\Apps\\W1\\Sustainability\\app\\src\\Calculation\\GLAccountsSubform.Page.al(17,5): error AL0104: Syntax error, '}' expected\nC:\\Source\\App\\Apps\\W1\\Sustainability\\app\\src\\Calculation\\GLAccountsSubform.Page.al(17,5): error AL0198: Expected one of the application object keywords (table, tableextension, page, pageextension, pagecustomization, profile, codeunit, report, reportextension, xmlport, query, controladdin, dotnet, enum, enumextension, interface, permissionset, permissionsetextension, entitlement)", "metrics": {"execution_time": 168.0, "llm_duration": null, "turn_count": 15, "prompt_tokens": 602100, "completion_tokens": 7100, "tool_usage": {"glob": 2, "rg": 13, "view": 11, "apply_patch": 2, "report_intent": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": false} + +{"instance_id": "microsoftInternal__NAV-192565__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\nindex fb45dbcf..0db25d89 100644\n--- a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n@@ -5365,6 +5365,8 @@ table 39 \"Purchase Line\"\n Amount := 0;\n \"VAT Base Amount\" := 0;\n \"Amount Including VAT\" := 0;\n+ NonDeductibleVAT.ClearNonDeductibleVAT(Rec);\n+ NonDeductibleVAT.InitNonDeductibleVATDiff(Rec);\n OnUpdateVATAmountsOnBeforePurchLineModify(Rec, PurchLine2);\n if (Quantity = 0) and (xRec.Quantity <> 0) and (xRec.Amount <> 0) then begin\n if \"Line No.\" <> 0 then\n", "error_message": null, "metrics": {"execution_time": 146.0, "llm_duration": null, "turn_count": 15, "prompt_tokens": 629400, "completion_tokens": 4700, "tool_usage": {"rg": 19, "glob": 1, "report_intent": 2, "view": 15, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-192565__cf-2", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\nindex fb45dbcf..09b9b67c 100644\n--- a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n@@ -5365,6 +5365,7 @@ table 39 \"Purchase Line\"\n Amount := 0;\n \"VAT Base Amount\" := 0;\n \"Amount Including VAT\" := 0;\n+ NonDeductibleVAT.ClearNonDeductibleVAT(Rec);\n OnUpdateVATAmountsOnBeforePurchLineModify(Rec, PurchLine2);\n if (Quantity = 0) and (xRec.Quantity <> 0) and (xRec.Amount <> 0) then begin\n if \"Line No.\" <> 0 then\n", "error_message": null, "metrics": {"execution_time": 156.0, "llm_duration": null, "turn_count": 19, "prompt_tokens": 728700, "completion_tokens": 5000, "tool_usage": {"rg": 17, "powershell": 2, "report_intent": 2, "glob": 2, "view": 19, "apply_patch": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-192565__cf-3", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\nindex fb45dbcf..bb99be0e 100644\n--- a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n@@ -5365,6 +5365,9 @@ table 39 \"Purchase Line\"\n Amount := 0;\n \"VAT Base Amount\" := 0;\n \"Amount Including VAT\" := 0;\n+ \"Non-Deductible VAT Base\" := 0;\n+ \"Non-Deductible VAT Amount\" := 0;\n+ \"Non-Deductible VAT Diff.\" := 0;\n OnUpdateVATAmountsOnBeforePurchLineModify(Rec, PurchLine2);\n if (Quantity = 0) and (xRec.Quantity <> 0) and (xRec.Amount <> 0) then begin\n if \"Line No.\" <> 0 then\n", "error_message": null, "metrics": {"execution_time": 144.0, "llm_duration": null, "turn_count": 16, "prompt_tokens": 628200, "completion_tokens": 5300, "tool_usage": {"glob": 1, "rg": 21, "report_intent": 2, "view": 14, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-193853__cf-1", "project": "EnforcedDigitalVouchers", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al b/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\nindex 72dc980e..29c8ae26 100644\n--- a/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\n+++ b/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\n@@ -267,13 +267,39 @@ codeunit 5579 \"Digital Voucher Impl.\"\n begin\n Clear(IncomingDocument);\n if not IncomingDocument.FindFromIncomingDocumentEntryNo(MainRecordRef, IncomingDocument) then\n- IncomingDocument.FindByDocumentNoAndPostingDate(MainRecordRef, IncomingDocument);\n+ if not FindIncomingDocumentFromRelatedGenJournalLine(MainRecordRef, IncomingDocument) then\n+ IncomingDocument.FindByDocumentNoAndPostingDate(MainRecordRef, IncomingDocument);\n if IncomingDocument.\"Entry No.\" = 0 then\n exit(false);\n IncomingDocumentAttachment.SetRange(\"Incoming Document Entry No.\", IncomingDocument.\"Entry No.\");\n exit(true);\n end;\n \n+ local procedure FindIncomingDocumentFromRelatedGenJournalLine(MainRecordRef: RecordRef; var IncomingDocument: Record \"Incoming Document\"): Boolean\n+ var\n+ GenJournalLine: Record \"Gen. Journal Line\";\n+ RelatedGenJournalLine: Record \"Gen. Journal Line\";\n+ begin\n+ if MainRecordRef.Number <> Database::\"Gen. Journal Line\" then\n+ exit(false);\n+\n+ MainRecordRef.SetTable(GenJournalLine);\n+ if (GenJournalLine.\"Document No.\" = '') or (GenJournalLine.\"Posting Date\" = 0D) then\n+ exit(false);\n+\n+ RelatedGenJournalLine.SetRange(\"Journal Template Name\", GenJournalLine.\"Journal Template Name\");\n+ RelatedGenJournalLine.SetRange(\"Journal Batch Name\", GenJournalLine.\"Journal Batch Name\");\n+ RelatedGenJournalLine.SetRange(\"Posting Date\", GenJournalLine.\"Posting Date\");\n+ RelatedGenJournalLine.SetRange(\"Document No.\", GenJournalLine.\"Document No.\");\n+ RelatedGenJournalLine.SetFilter(\"Line No.\", '<>%1', GenJournalLine.\"Line No.\");\n+ RelatedGenJournalLine.SetFilter(\"Incoming Document Entry No.\", '<>%1', 0);\n+\n+ if not RelatedGenJournalLine.FindFirst() then\n+ exit(false);\n+\n+ exit(IncomingDocument.Get(RelatedGenJournalLine.\"Incoming Document Entry No.\"));\n+ end;\n+\n local procedure AttachGenJnlLinePDFToIncomingDocument(RecRef: RecordRef)\n var\n GenJournalLine: Record \"Gen. Journal Line\";\n", "error_message": null, "metrics": {"execution_time": 231.0, "llm_duration": null, "turn_count": 18, "prompt_tokens": 815700, "completion_tokens": 10300, "tool_usage": {"rg": 19, "glob": 5, "powershell": 2, "report_intent": 7, "view": 20, "apply_patch": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-193853__cf-2", "project": "EnforcedDigitalVouchers", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\nindex 14a6f981..7acdf5de 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\n@@ -2120,6 +2120,8 @@ table 81 \"Gen. Journal Line\"\n IncomingDocument.RemoveReferenceToWorkingDocument(xRec.\"Incoming Document Entry No.\")\n else\n IncomingDocument.SetGenJournalLine(Rec);\n+\n+ SyncIncomingDocumentOnDocumentLines();\n end;\n }\n field(170; \"Creditor No.\"; Code[20])\n@@ -5382,6 +5384,38 @@ table 81 \"Gen. Journal Line\"\n exit(IncomingDocument.GetURL());\n end;\n \n+ local procedure SyncIncomingDocumentOnDocumentLines()\n+ var\n+ DocumentGenJournalLine: Record \"Gen. Journal Line\";\n+ IncomingDocument: Record \"Incoming Document\";\n+ begin\n+ if (\"Document No.\" = '') or (\"Posting Date\" = 0D) then\n+ exit;\n+\n+ DocumentGenJournalLine.SetCurrentKey(\"Journal Template Name\", \"Journal Batch Name\", \"Posting Date\", \"Document No.\");\n+ DocumentGenJournalLine.SetRange(\"Journal Template Name\", \"Journal Template Name\");\n+ DocumentGenJournalLine.SetRange(\"Journal Batch Name\", \"Journal Batch Name\");\n+ DocumentGenJournalLine.SetRange(\"Posting Date\", \"Posting Date\");\n+ DocumentGenJournalLine.SetRange(\"Document No.\", \"Document No.\");\n+ DocumentGenJournalLine.SetFilter(\"Line No.\", '<>%1', \"Line No.\");\n+ if not DocumentGenJournalLine.FindSet() then\n+ exit;\n+\n+ repeat\n+ if DocumentGenJournalLine.\"Incoming Document Entry No.\" <> \"Incoming Document Entry No.\" then begin\n+ if \"Incoming Document Entry No.\" = 0 then\n+ IncomingDocument.RemoveReferenceToWorkingDocument(DocumentGenJournalLine.\"Incoming Document Entry No.\")\n+ else begin\n+ DocumentGenJournalLine.\"Incoming Document Entry No.\" := \"Incoming Document Entry No.\";\n+ IncomingDocument.SetGenJournalLine(DocumentGenJournalLine);\n+ end;\n+\n+ DocumentGenJournalLine.\"Incoming Document Entry No.\" := \"Incoming Document Entry No.\";\n+ DocumentGenJournalLine.Modify(true);\n+ end;\n+ until DocumentGenJournalLine.Next() = 0;\n+ end;\n+\n procedure InsertPaymentFileError(Text: Text)\n var\n PaymentJnlExportErrorText: Record \"Payment Jnl. Export Error Text\";\ndiff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GeneralJournal.Page.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GeneralJournal.Page.al\nindex 3980fd18..8210326c 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GeneralJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GeneralJournal.Page.al\n@@ -1239,7 +1239,7 @@ page 39 \"General Journal\"\n begin\n if IncomingDocument.Get(Rec.\"Incoming Document Entry No.\") then\n IncomingDocument.RemoveLinkToRelatedRecord();\n- Rec.\"Incoming Document Entry No.\" := 0;\n+ Rec.Validate(\"Incoming Document Entry No.\", 0);\n Rec.Modify(true);\n end;\n }\ndiff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\nindex cec7b1ec..92191cd0 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n@@ -941,7 +941,7 @@ page 254 \"Purchase Journal\"\n begin\n if IncomingDocument.Get(Rec.\"Incoming Document Entry No.\") then\n IncomingDocument.RemoveLinkToRelatedRecord();\n- Rec.\"Incoming Document Entry No.\" := 0;\n+ Rec.Validate(\"Incoming Document Entry No.\", 0);\n Rec.Modify(true);\n end;\n }\ndiff --git a/App/Layers/W1/BaseApp/Integration/Graph/GraphMgtAttachmentBuffer.Codeunit.al b/App/Layers/W1/BaseApp/Integration/Graph/GraphMgtAttachmentBuffer.Codeunit.al\nindex aaad7278..46b0377b 100644\n--- a/App/Layers/W1/BaseApp/Integration/Graph/GraphMgtAttachmentBuffer.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Integration/Graph/GraphMgtAttachmentBuffer.Codeunit.al\n@@ -2014,7 +2014,7 @@ codeunit 5503 \"Graph Mgt - Attachment Buffer\"\n IncomingDocument.Description := CopyStr(GenJournalLine.Description, 1, MaxStrLen(IncomingDocument.Description));\n IncomingDocument.\"Document Type\" := IncomingDocument.\"Document Type\"::Journal;\n IncomingDocument.Insert(true);\n- GenJournalLine.\"Incoming Document Entry No.\" := IncomingDocument.\"Entry No.\";\n+ GenJournalLine.Validate(\"Incoming Document Entry No.\", IncomingDocument.\"Entry No.\");\n GenJournalLine.Modify();\n DocumentRecordRef.GetTable(GenJournalLine);\n exit;\ndiff --git a/App/Layers/W1/BaseApp/eServices/EDocument/ImportAttachmentIncDoc.Codeunit.al b/App/Layers/W1/BaseApp/eServices/EDocument/ImportAttachmentIncDoc.Codeunit.al\nindex 8686844d..971014c4 100644\n--- a/App/Layers/W1/BaseApp/eServices/EDocument/ImportAttachmentIncDoc.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/eServices/EDocument/ImportAttachmentIncDoc.Codeunit.al\n@@ -357,7 +357,7 @@ codeunit 134 \"Import Attachment - Inc. Doc.\"\n \n GenJournalLine.Get(JnlTemplateName, JnlBatchName, JnlLineNo);\n CreateIncomingDocumentExtended(IncomingDocumentAttachment, IncomingDocument, 0D, '', GenJournalLine.RecordId);\n- GenJournalLine.\"Incoming Document Entry No.\" := IncomingDocument.\"Entry No.\";\n+ GenJournalLine.Validate(\"Incoming Document Entry No.\", IncomingDocument.\"Entry No.\");\n GenJournalLine.Modify();\n \n exit(IncomingDocument.\"Entry No.\");\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139515'\nCodeunit 139515 Digital Vouchers Tests\n Testfunction PostMultipleGeneralJournalLinesSamePostingDateDocNoOnlyFirstHasIncDoc Failure (3.63 seconds)\n Error:\n Not possible to post without attaching the digital voucher.\n Call Stack:\n \"Voucher Attachment Check\"(CodeUnit 5580).CheckVoucherIsAttachedToDocument line 7 - Enforced Digital Vouchers by Microsoft\n \"Digital Voucher Impl.\"(CodeUnit 5579).HandleDigitalVoucherForEntryTypeAndDoc line 9 - Enforced Digital Vouchers by Microsoft\n \"Digital Voucher Impl.\"(CodeUnit 5579).OnAfterCheckGenJnlLine line 12 - Enforced Digital Vouchers by Microsoft\n \"Gen. Jnl.-Check Line\"(CodeUnit 11).OnAfterCheckGenJnlLine(Event) line 2 - Base Application by Microsoft\n \"Gen. Jnl.-Check Line\"(CodeUnit 11).RunCheck line 118 - Base Application by Microsoft\n \"Gen. Jnl.-Post Batch\"(CodeUnit 13).CheckLine line 26 - Base Application by Microsoft\n \"Gen. Jnl.-Post Batch\"(CodeUnit 13).ProcessLines line 51 - Base Application by Microsoft\n \"Gen. Jnl.-Post Batch\"(CodeUnit 13).Code line 30 - Base Application by Microsoft\n \"Gen. Jnl.-Post Batch\"(CodeUnit 13).OnRun(Trigger) line 9 - Base Application by Microsoft\n \"Digital Vouchers Tests\"(CodeUnit 139515).PostMultipleGeneralJournalLinesSamePostingDateDocNoOnlyFirstHasIncDoc line 42 - Enforced Digital Vouchers Tests by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft", "metrics": {"execution_time": 396.0, "llm_duration": null, "turn_count": 38, "prompt_tokens": 2000000, "completion_tokens": 16400, "tool_usage": {"sql": 4, "rg": 46, "glob": 4, "view": 38, "report_intent": 3, "apply_patch": 2, "powershell": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} + +{"instance_id": "microsoftInternal__NAV-195193__cf-1", "project": "ExcelReports", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al b/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\nindex 00c238ae..04908b64 100644\n--- a/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\n+++ b/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\n@@ -44,10 +44,7 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Net Change\" > 0) then\n- Validate(\"Net Change (Debit)\", \"Net Change\")\n- else\n- Validate(\"Net Change (Credit)\", -\"Net Change\");\n+ SetDebitCreditAmounts(\"Net Change\", \"Net Change (Debit)\", \"Net Change (Credit)\");\n end;\n }\n field(11; \"Net Change (Debit)\"; Decimal)\n@@ -64,10 +61,7 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Balance\" > 0) then\n- Validate(\"Balance (Debit)\", \"Balance\")\n- else\n- Validate(\"Balance (Credit)\", -\"Balance\");\n+ SetDebitCreditAmounts(Balance, \"Balance (Debit)\", \"Balance (Credit)\");\n end;\n }\n field(14; \"Balance (Debit)\"; Decimal)\n@@ -100,10 +94,7 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Net\" > 0) then\n- Validate(\"Last Period Net (Debit)\", \"Last Period Net\")\n- else\n- Validate(\"Last Period Net (Credit)\", -\"Last Period Net\");\n+ SetDebitCreditAmounts(\"Last Period Net\", \"Last Period Net (Debit)\", \"Last Period Net (Credit)\");\n end;\n }\n field(51; \"Last Period Net (Debit)\"; Decimal)\n@@ -120,10 +111,7 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Bal.\" > 0) then\n- Validate(\"Last Period Bal. (Debit)\", \"Last Period Bal.\")\n- else\n- Validate(\"Last Period Bal. (Credit)\", -\"Last Period Bal.\");\n+ SetDebitCreditAmounts(\"Last Period Bal.\", \"Last Period Bal. (Debit)\", \"Last Period Bal. (Credit)\");\n end;\n }\n field(61; \"Last Period Bal. (Debit)\"; Decimal)\n@@ -156,10 +144,7 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Net Change\" > 0) then\n- Validate(\"Net Change (Debit) (ACY)\", \"Net Change (ACY)\")\n- else\n- Validate(\"Net Change (Credit) (ACY)\", -\"Net Change (ACY)\");\n+ SetDebitCreditAmounts(\"Net Change (ACY)\", \"Net Change (Debit) (ACY)\", \"Net Change (Credit) (ACY)\");\n end;\n }\n field(111; \"Net Change (Debit) (ACY)\"; Decimal)\n@@ -176,10 +161,7 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Balance\" > 0) then\n- Validate(\"Balance (Debit) (ACY)\", \"Balance (ACY)\")\n- else\n- Validate(\"Balance (Credit) (ACY)\", -\"Balance (ACY)\");\n+ SetDebitCreditAmounts(\"Balance (ACY)\", \"Balance (Debit) (ACY)\", \"Balance (Credit) (ACY)\");\n end;\n }\n field(114; \"Balance (Debit) (ACY)\"; Decimal)\n@@ -196,10 +178,7 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Net\" > 0) then\n- Validate(\"Last Period Net (Debit) (ACY)\", \"Last Period Net (ACY)\")\n- else\n- Validate(\"Last Period Net (Credit) (ACY)\", -\"Last Period Net (ACY)\");\n+ SetDebitCreditAmounts(\"Last Period Net (ACY)\", \"Last Period Net (Debit) (ACY)\", \"Last Period Net (Credit) (ACY)\");\n end;\n }\n field(151; \"Last Period Net (Debit) (ACY)\"; Decimal)\n@@ -216,10 +195,7 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Bal.\" > 0) then\n- Validate(\"Last Period Bal. (Debit) (ACY)\", \"Last Period Bal. (ACY)\")\n- else\n- Validate(\"Last Period Bal. (Cred.) (ACY)\", -\"Last Period Bal. (ACY)\");\n+ SetDebitCreditAmounts(\"Last Period Bal. (ACY)\", \"Last Period Bal. (Debit) (ACY)\", \"Last Period Bal. (Cred.) (ACY)\");\n end;\n }\n field(161; \"Last Period Bal. (Debit) (ACY)\"; Decimal)\n@@ -340,4 +316,15 @@ table 4402 \"EXR Trial Balance Buffer\"\n (\"Net Variance (ACY)\" = 0) and\n (\"Bal. Variance (ACY)\" = 0);\n end;\n+\n+ local procedure SetDebitCreditAmounts(Amount: Decimal; var DebitAmount: Decimal; var CreditAmount: Decimal)\n+ begin\n+ DebitAmount := 0;\n+ CreditAmount := 0;\n+\n+ if Amount >= 0 then\n+ DebitAmount := Amount\n+ else\n+ CreditAmount := -Amount;\n+ end;\n }\ndiff --git a/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al b/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al\nindex 7cf0915e..33e3513e 100644\n--- a/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al\n+++ b/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al\n@@ -120,6 +120,7 @@ codeunit 4410 \"Trial Balance\"\n local procedure InsertTrialBalanceDataForGLAccountWithFilters(var GLAccount: Record \"G/L Account\"; Dimension1ValueCode: Code[20]; Dimension2ValueCode: Code[20]; BusinessUnitCode: Code[20]; var TrialBalanceData: Record \"EXR Trial Balance Buffer\"; var Dimension1Values: Record \"Dimension Value\" temporary; var Dimension2Values: Record \"Dimension Value\" temporary)\n begin\n GlAccount.CalcFields(\"Net Change\", \"Balance at Date\", \"Additional-Currency Net Change\", \"Add.-Currency Balance at Date\", \"Budgeted Amount\", \"Budget at Date\");\n+ TrialBalanceData.Init();\n TrialBalanceData.\"G/L Account No.\" := GlAccount.\"No.\";\n TrialBalanceData.\"Dimension 1 Code\" := Dimension1ValueCode;\n TrialBalanceData.\"Dimension 2 Code\" := Dimension2ValueCode;\n@@ -162,4 +163,4 @@ codeunit 4410 \"Trial Balance\"\n InsertedDimensionValues.Copy(DimensionValue);\n InsertedDimensionValues.Insert();\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": null, "metrics": {"execution_time": 117.0, "llm_duration": null, "turn_count": 8, "prompt_tokens": 229900, "completion_tokens": 5600, "tool_usage": {"glob": 1, "rg": 8, "report_intent": 5, "view": 10, "apply_patch": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-195193__cf-2", "project": "ExcelReports", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al b/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al\nindex 7cf0915e..33e3513e 100644\n--- a/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al\n+++ b/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al\n@@ -120,6 +120,7 @@ codeunit 4410 \"Trial Balance\"\n local procedure InsertTrialBalanceDataForGLAccountWithFilters(var GLAccount: Record \"G/L Account\"; Dimension1ValueCode: Code[20]; Dimension2ValueCode: Code[20]; BusinessUnitCode: Code[20]; var TrialBalanceData: Record \"EXR Trial Balance Buffer\"; var Dimension1Values: Record \"Dimension Value\" temporary; var Dimension2Values: Record \"Dimension Value\" temporary)\n begin\n GlAccount.CalcFields(\"Net Change\", \"Balance at Date\", \"Additional-Currency Net Change\", \"Add.-Currency Balance at Date\", \"Budgeted Amount\", \"Budget at Date\");\n+ TrialBalanceData.Init();\n TrialBalanceData.\"G/L Account No.\" := GlAccount.\"No.\";\n TrialBalanceData.\"Dimension 1 Code\" := Dimension1ValueCode;\n TrialBalanceData.\"Dimension 2 Code\" := Dimension2ValueCode;\n@@ -162,4 +163,4 @@ codeunit 4410 \"Trial Balance\"\n InsertedDimensionValues.Copy(DimensionValue);\n InsertedDimensionValues.Insert();\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139544'\nCodeunit 139544 Trial Balance Excel Reports\n Testfunction TrialBalanceBufferNetChangeSplitsIntoDebitAndCreditWhenCalledSeveralTimes Failure (0.41 seconds)\n Error:\n Assert.AreEqual failed. Expected:<110> (Decimal). Actual:<947> (Decimal). Split in line in credit and debit should be the same as the inserted value..\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"Trial Balance Excel Reports\"(CodeUnit 139544).TrialBalanceBufferNetChangeSplitsIntoDebitAndCreditWhenCalledSeveralTimes line 38 - Dynamics BC Excel Reports Tests by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 103.0, "llm_duration": null, "turn_count": 8, "prompt_tokens": 228200, "completion_tokens": 3900, "tool_usage": {"glob": 1, "rg": 7, "report_intent": 5, "view": 9, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} + +{"instance_id": "microsoftInternal__NAV-195193__cf-3", "project": "ExcelReports", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al b/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\nindex 00c238ae..a7e4d7d4 100644\n--- a/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\n+++ b/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\n@@ -44,10 +44,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n+ Validate(\"Net Change (Debit)\", 0);\n+ Validate(\"Net Change (Credit)\", 0);\n if (\"Net Change\" > 0) then\n Validate(\"Net Change (Debit)\", \"Net Change\")\n else\n- Validate(\"Net Change (Credit)\", -\"Net Change\");\n+ if \"Net Change\" < 0 then\n+ Validate(\"Net Change (Credit)\", -\"Net Change\");\n end;\n }\n field(11; \"Net Change (Debit)\"; Decimal)\n@@ -64,10 +67,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n+ Validate(\"Balance (Debit)\", 0);\n+ Validate(\"Balance (Credit)\", 0);\n if (\"Balance\" > 0) then\n Validate(\"Balance (Debit)\", \"Balance\")\n else\n- Validate(\"Balance (Credit)\", -\"Balance\");\n+ if \"Balance\" < 0 then\n+ Validate(\"Balance (Credit)\", -\"Balance\");\n end;\n }\n field(14; \"Balance (Debit)\"; Decimal)\n@@ -100,10 +106,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n+ Validate(\"Last Period Net (Debit)\", 0);\n+ Validate(\"Last Period Net (Credit)\", 0);\n if (\"Last Period Net\" > 0) then\n Validate(\"Last Period Net (Debit)\", \"Last Period Net\")\n else\n- Validate(\"Last Period Net (Credit)\", -\"Last Period Net\");\n+ if \"Last Period Net\" < 0 then\n+ Validate(\"Last Period Net (Credit)\", -\"Last Period Net\");\n end;\n }\n field(51; \"Last Period Net (Debit)\"; Decimal)\n@@ -120,10 +129,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n+ Validate(\"Last Period Bal. (Debit)\", 0);\n+ Validate(\"Last Period Bal. (Credit)\", 0);\n if (\"Last Period Bal.\" > 0) then\n Validate(\"Last Period Bal. (Debit)\", \"Last Period Bal.\")\n else\n- Validate(\"Last Period Bal. (Credit)\", -\"Last Period Bal.\");\n+ if \"Last Period Bal.\" < 0 then\n+ Validate(\"Last Period Bal. (Credit)\", -\"Last Period Bal.\");\n end;\n }\n field(61; \"Last Period Bal. (Debit)\"; Decimal)\n@@ -156,10 +168,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Net Change\" > 0) then\n+ Validate(\"Net Change (Debit) (ACY)\", 0);\n+ Validate(\"Net Change (Credit) (ACY)\", 0);\n+ if (\"Net Change (ACY)\" > 0) then\n Validate(\"Net Change (Debit) (ACY)\", \"Net Change (ACY)\")\n else\n- Validate(\"Net Change (Credit) (ACY)\", -\"Net Change (ACY)\");\n+ if \"Net Change (ACY)\" < 0 then\n+ Validate(\"Net Change (Credit) (ACY)\", -\"Net Change (ACY)\");\n end;\n }\n field(111; \"Net Change (Debit) (ACY)\"; Decimal)\n@@ -176,10 +191,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Balance\" > 0) then\n+ Validate(\"Balance (Debit) (ACY)\", 0);\n+ Validate(\"Balance (Credit) (ACY)\", 0);\n+ if (\"Balance (ACY)\" > 0) then\n Validate(\"Balance (Debit) (ACY)\", \"Balance (ACY)\")\n else\n- Validate(\"Balance (Credit) (ACY)\", -\"Balance (ACY)\");\n+ if \"Balance (ACY)\" < 0 then\n+ Validate(\"Balance (Credit) (ACY)\", -\"Balance (ACY)\");\n end;\n }\n field(114; \"Balance (Debit) (ACY)\"; Decimal)\n@@ -196,10 +214,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Net\" > 0) then\n+ Validate(\"Last Period Net (Debit) (ACY)\", 0);\n+ Validate(\"Last Period Net (Credit) (ACY)\", 0);\n+ if (\"Last Period Net (ACY)\" > 0) then\n Validate(\"Last Period Net (Debit) (ACY)\", \"Last Period Net (ACY)\")\n else\n- Validate(\"Last Period Net (Credit) (ACY)\", -\"Last Period Net (ACY)\");\n+ if \"Last Period Net (ACY)\" < 0 then\n+ Validate(\"Last Period Net (Credit) (ACY)\", -\"Last Period Net (ACY)\");\n end;\n }\n field(151; \"Last Period Net (Debit) (ACY)\"; Decimal)\n@@ -216,10 +237,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Bal.\" > 0) then\n+ Validate(\"Last Period Bal. (Debit) (ACY)\", 0);\n+ Validate(\"Last Period Bal. (Cred.) (ACY)\", 0);\n+ if (\"Last Period Bal. (ACY)\" > 0) then\n Validate(\"Last Period Bal. (Debit) (ACY)\", \"Last Period Bal. (ACY)\")\n else\n- Validate(\"Last Period Bal. (Cred.) (ACY)\", -\"Last Period Bal. (ACY)\");\n+ if \"Last Period Bal. (ACY)\" < 0 then\n+ Validate(\"Last Period Bal. (Cred.) (ACY)\", -\"Last Period Bal. (ACY)\");\n end;\n }\n field(161; \"Last Period Bal. (Debit) (ACY)\"; Decimal)\ndiff --git a/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al b/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al\nindex 7cf0915e..33e3513e 100644\n--- a/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al\n+++ b/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al\n@@ -120,6 +120,7 @@ codeunit 4410 \"Trial Balance\"\n local procedure InsertTrialBalanceDataForGLAccountWithFilters(var GLAccount: Record \"G/L Account\"; Dimension1ValueCode: Code[20]; Dimension2ValueCode: Code[20]; BusinessUnitCode: Code[20]; var TrialBalanceData: Record \"EXR Trial Balance Buffer\"; var Dimension1Values: Record \"Dimension Value\" temporary; var Dimension2Values: Record \"Dimension Value\" temporary)\n begin\n GlAccount.CalcFields(\"Net Change\", \"Balance at Date\", \"Additional-Currency Net Change\", \"Add.-Currency Balance at Date\", \"Budgeted Amount\", \"Budget at Date\");\n+ TrialBalanceData.Init();\n TrialBalanceData.\"G/L Account No.\" := GlAccount.\"No.\";\n TrialBalanceData.\"Dimension 1 Code\" := Dimension1ValueCode;\n TrialBalanceData.\"Dimension 2 Code\" := Dimension2ValueCode;\n@@ -162,4 +163,4 @@ codeunit 4410 \"Trial Balance\"\n InsertedDimensionValues.Copy(DimensionValue);\n InsertedDimensionValues.Insert();\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": null, "metrics": {"execution_time": 111.0, "llm_duration": null, "turn_count": 7, "prompt_tokens": 197200, "completion_tokens": 5100, "tool_usage": {"rg": 5, "glob": 1, "report_intent": 3, "view": 10, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-201169__cf-1", "project": "Shopify", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\nindex 38d77856..e5247676 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n@@ -25,12 +25,14 @@ codeunit 30174 \"Shpfy Create Product\"\n Events: Codeunit \"Shpfy Product Events\";\n Getlocations: Boolean;\n ProductId: BigInteger;\n+ EmptyItemTitleSkippedLbl: Label 'Item title is empty or contains only whitespace.';\n ItemVariantIsBlockedLbl: Label 'Item variant is blocked or sales blocked.';\n \n trigger OnRun()\n var\n ShopifyProduct: Record \"Shpfy Product\";\n begin\n+ Clear(ProductId);\n if Getlocations then begin\n Codeunit.Run(Codeunit::\"Shpfy Sync Shop Locations\", Shop);\n Commit();\n@@ -38,7 +40,9 @@ codeunit 30174 \"Shpfy Create Product\"\n end;\n ShopifyProduct.SetRange(\"Shop Code\", Shop.Code);\n ShopifyProduct.SetRange(\"Item SystemId\", Rec.SystemId);\n- if ShopifyProduct.IsEmpty then\n+ if ShopifyProduct.FindFirst() then\n+ ProductId := ShopifyProduct.Id;\n+ if ProductId = 0 then\n CreateProduct(Rec);\n end;\n \n@@ -51,13 +55,19 @@ codeunit 30174 \"Shpfy Create Product\"\n TempShopifyProduct: Record \"Shpfy Product\" temporary;\n TempShopifyVariant: Record \"Shpfy Variant\" temporary;\n TempShopifyTag: Record \"Shpfy Tag\" temporary;\n+ SkippedRecord: Codeunit \"Shpfy Skipped Record\";\n begin\n CreateTempProduct(Item, TempShopifyProduct, TempShopifyVariant, TempShopifyTag);\n+ if TempShopifyProduct.Title.Trim() = '' then begin\n+ SkippedRecord.LogSkippedRecord(Item.RecordId, EmptyItemTitleSkippedLbl, Shop);\n+ exit;\n+ end;\n if not VariantApi.FindShopifyProductVariant(TempShopifyProduct, TempShopifyVariant) then\n ProductId := ProductApi.CreateProduct(TempShopifyProduct, TempShopifyVariant, TempShopifyTag)\n else\n ProductId := TempShopifyProduct.Id;\n- ProductExport.UpdateProductTranslations(ProductId, Item);\n+ if ProductId > 0 then\n+ ProductExport.UpdateProductTranslations(ProductId, Item);\n end;\n \n internal procedure CreateTempProduct(Item: Record Item; var TempShopifyProduct: Record \"Shpfy Product\" temporary; var TempShopifyVariant: Record \"Shpfy Variant\" temporary; var TempShopifyTag: Record \"Shpfy Tag\" temporary)\n@@ -274,4 +284,4 @@ codeunit 30174 \"Shpfy Create Product\"\n Page.Run(Page::\"Shpfy Shop Locations Mapping\", ShopLocation);\n end;\n end;\n-}\n\\ No newline at end of file\n+}\ndiff --git a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyProductExport.Codeunit.al b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyProductExport.Codeunit.al\nindex 25e90220..2aaa839b 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyProductExport.Codeunit.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyProductExport.Codeunit.al\n@@ -796,7 +796,7 @@ codeunit 30178 \"Shpfy Product Export\"\n TempTranslation: Record \"Shpfy Translation\" temporary;\n TranslationAPI: Codeunit \"Shpfy Translation API\";\n begin\n- if OnlyUpdatePrice then\n+ if OnlyUpdatePrice or (ProductId = 0) then\n exit;\n \n TempTranslation.\"Resource Type\" := TempTranslation.\"Resource Type\"::Product;\ndiff --git a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfySyncProducts.Codeunit.al b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfySyncProducts.Codeunit.al\nindex ff317b9e..64806783 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfySyncProducts.Codeunit.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfySyncProducts.Codeunit.al\n@@ -223,6 +223,7 @@ codeunit 30185 \"Shpfy Sync Products\"\n ShopifyCreateProduct: Codeunit \"Shpfy Create Product\";\n BackgroundSyncs: Codeunit \"Shpfy Background Syncs\";\n ProgressDialog: Dialog;\n+ ProductId: BigInteger;\n begin\n if GuiAllowed then begin\n ProgressDialog.Open(DialogMsg);\n@@ -230,10 +231,12 @@ codeunit 30185 \"Shpfy Sync Products\"\n end;\n ShopifyCreateProduct.SetShop(ShopifyShop.Code);\n ShopifyCreateProduct.Run(Item);\n+ ProductId := ShopifyCreateProduct.GetProductId();\n if ShopifyShop.\"Sync Item Images\" = ShopifyShop.\"Sync Item Images\"::\"To Shopify\" then begin\n if GuiAllowed then\n ProgressDialog.Update(1, FinishSyncProgressLbl);\n- BackgroundSyncs.ProductImagesSync(ShopifyShop.Code, Format(ShopifyCreateProduct.GetProductId()));\n+ if ProductId > 0 then\n+ BackgroundSyncs.ProductImagesSync(ShopifyShop.Code, Format(ProductId));\n end;\n \n ShopLocation.SetRange(\"Shop Code\", ShopifyShop.Code);\n@@ -261,4 +264,4 @@ codeunit 30185 \"Shpfy Sync Products\"\n begin\n BackgroundSyncs.ProductsSync(CopyStr(Notification.GetData('ShopCode'), 1, MaxStrLen(Shop.Code)));\n end;\n-}\n\\ No newline at end of file\n+}\ndiff --git a/App/Apps/W1/Shopify/app/src/Products/Reports/ShpfyAddItemtoShopify.Report.al b/App/Apps/W1/Shopify/app/src/Products/Reports/ShpfyAddItemtoShopify.Report.al\nindex b99f15d3..8506a555 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Reports/ShpfyAddItemtoShopify.Report.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Reports/ShpfyAddItemtoShopify.Report.al\n@@ -56,6 +56,7 @@ report 30106 \"Shpfy Add Item to Shopify\"\n trigger OnAfterGetRecord()\n var\n SkippedRecord: Codeunit \"Shpfy Skipped Record\";\n+ ProductId: BigInteger;\n begin\n if Item.Blocked or Item.\"Sales Blocked\" then\n SkippedRecord.LogSkippedRecord(Item.RecordId, ItemIsBlockedLbl, ShopifyShop)\n@@ -67,7 +68,9 @@ report 30106 \"Shpfy Add Item to Shopify\"\n \n ShopifyCreateProduct.Run(Item);\n \n- ProductFilter += Format(ShopifyCreateProduct.GetProductId()) + '|';\n+ ProductId := ShopifyCreateProduct.GetProductId();\n+ if ProductId > 0 then\n+ ProductFilter += Format(ProductId) + '|';\n end;\n end;\n \n@@ -167,7 +170,7 @@ report 30106 \"Shpfy Add Item to Shopify\"\n BackgroundSyncs: Codeunit \"Shpfy Background Syncs\";\n begin\n ProductFilter := ProductFilter.TrimEnd('|');\n- if SyncImages then\n+ if SyncImages and (ProductFilter <> '') then\n BackgroundSyncs.ProductImagesSync(ShopCode, ProductFilter);\n if SyncInventory then\n BackgroundSyncs.InventorySync(ShopCode);\n@@ -199,4 +202,4 @@ report 30106 \"Shpfy Add Item to Shopify\"\n begin\n ShopCode := Shop;\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139581'\nCodeunit 139581 Shpfy Skipped Record Log Test\n Testfunction UnitTestLogItemEmptyDescription Failure (6.764 seconds)\n Error:\n The response from Shopify contains no JSON. \\Requested: {\"query\":\"{ locations(first: 20, includeLegacy: true) { pageInfo { hasNextPage endCursor } nodes { legacyResourceId isActive isPrimary name fulfillmentService { serviceName }}}}\"} \\Response: \n Call Stack:\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 21 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 4 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 6 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Sync Shop Locations\"(CodeUnit 30198).SyncLocations line 20 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Sync Shop Locations\"(CodeUnit 30198).OnRun(Trigger) line 4 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Create Product\"(CodeUnit 30174).OnRun(Trigger) line 6 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Add Item to Shopify\"(Report 30106).\"Item - OnAfterGetRecord\"(Trigger) line 13 - Shopify Connector by Microsoft version 26.0.0.0", "metrics": {"execution_time": 227.0, "llm_duration": null, "turn_count": 22, "prompt_tokens": 1000000, "completion_tokens": 10700, "tool_usage": {"sql": 3, "rg": 20, "glob": 3, "powershell": 4, "view": 22, "apply_patch": 3, "report_intent": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} + +{"instance_id": "microsoftInternal__NAV-201169__cf-2", "project": "Shopify", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\nindex 38d77856..2b4bdbb9 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n@@ -26,6 +26,8 @@ codeunit 30174 \"Shpfy Create Product\"\n Getlocations: Boolean;\n ProductId: BigInteger;\n ItemVariantIsBlockedLbl: Label 'Item variant is blocked or sales blocked.';\n+ ProductCreateRejectedLbl: Label 'Shopify rejected product creation: %1', Comment = '%1 = Shopify user error message';\n+ ProductCreateFailedLbl: Label 'Product could not be created in Shopify. Check Shopify Log Entries for more details.';\n \n trigger OnRun()\n var\n@@ -48,14 +50,25 @@ codeunit 30174 \"Shpfy Create Product\"\n /// Parameter of type Record Item.\n local procedure CreateProduct(Item: Record Item)\n var\n+ SkippedRecord: Codeunit \"Shpfy Skipped Record\";\n TempShopifyProduct: Record \"Shpfy Product\" temporary;\n TempShopifyVariant: Record \"Shpfy Variant\" temporary;\n TempShopifyTag: Record \"Shpfy Tag\" temporary;\n+ SkipReason: Text;\n begin\n CreateTempProduct(Item, TempShopifyProduct, TempShopifyVariant, TempShopifyTag);\n- if not VariantApi.FindShopifyProductVariant(TempShopifyProduct, TempShopifyVariant) then\n- ProductId := ProductApi.CreateProduct(TempShopifyProduct, TempShopifyVariant, TempShopifyTag)\n- else\n+ if not VariantApi.FindShopifyProductVariant(TempShopifyProduct, TempShopifyVariant) then begin\n+ ProductId := ProductApi.CreateProduct(TempShopifyProduct, TempShopifyVariant, TempShopifyTag);\n+ if ProductId = 0 then begin\n+ SkipReason := ProductApi.GetLastCreateProductError();\n+ if SkipReason = '' then\n+ SkipReason := ProductCreateFailedLbl\n+ else\n+ SkipReason := StrSubstNo(ProductCreateRejectedLbl, SkipReason);\n+ SkippedRecord.LogSkippedRecord(Item.RecordId, SkipReason, Shop);\n+ exit;\n+ end;\n+ end else\n ProductId := TempShopifyProduct.Id;\n ProductExport.UpdateProductTranslations(ProductId, Item);\n end;\n@@ -274,4 +287,4 @@ codeunit 30174 \"Shpfy Create Product\"\n Page.Run(Page::\"Shpfy Shop Locations Mapping\", ShopLocation);\n end;\n end;\n-}\n\\ No newline at end of file\n+}\ndiff --git a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyProductAPI.Codeunit.al b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyProductAPI.Codeunit.al\nindex 80138999..ebbe5601 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyProductAPI.Codeunit.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyProductAPI.Codeunit.al\n@@ -18,6 +18,7 @@ codeunit 30176 \"Shpfy Product API\"\n ProductEvents: Codeunit \"Shpfy Product Events\";\n VariantApi: Codeunit \"Shpfy Variant API\";\n MetafieldAPI: Codeunit \"Shpfy Metafield API\";\n+ LastCreateProductErrorMessage: Text[250];\n \n /// \n /// Create Product.\n@@ -30,12 +31,14 @@ codeunit 30176 \"Shpfy Product API\"\n NewShopifyVariant: Record \"Shpfy Variant\";\n EmptyShopifyVariant: Record \"Shpfy Variant\";\n JArray: JsonArray;\n+ JUserErrors: JsonArray;\n JResponse: JsonToken;\n JToken: JsonToken;\n Data: Text;\n GraphQuery: TextBuilder;\n \n begin\n+ Clear(LastCreateProductErrorMessage);\n ShopifyVariant.FindSet();\n ProductEvents.OnBeforeSendCreateShopifyProduct(Shop, ShopifyProduct, ShopifyVariant, ShopifyTag);\n GraphQuery.Append('{\"query\":\"mutation {productCreate(input: {');\n@@ -93,6 +96,9 @@ codeunit 30176 \"Shpfy Product API\"\n GraphQuery.Append('}\"}');\n \n JResponse := CommunicationMgt.ExecuteGraphQL(GraphQuery.ToText());\n+ if JsonHelper.GetJsonArray(JResponse, JUserErrors, 'data.productCreate.userErrors') then\n+ if (JUserErrors.Count() > 0) and JUserErrors.Get(0, JToken) then\n+ LastCreateProductErrorMessage := CopyStr(JsonHelper.GetValueAsText(JToken, 'message'), 1, MaxStrLen(LastCreateProductErrorMessage));\n NewShopifyProduct := ShopifyProduct;\n NewShopifyProduct.Id := JsonHelper.GetValueAsBigInteger(JResponse, 'data.productCreate.product.legacyResourceId');\n if NewShopifyProduct.Id = 0 then\n@@ -125,6 +131,11 @@ codeunit 30176 \"Shpfy Product API\"\n exit(NewShopifyProduct.Id);\n end;\n \n+ internal procedure GetLastCreateProductError(): Text\n+ begin\n+ exit(LastCreateProductErrorMessage);\n+ end;\n+\n local procedure CreateImageUploadUrl(Item: Record Item; var Url: Text; var ResourceUrl: Text; var TenantMedia: Record \"Tenant Media\"): boolean\n var\n MimeType: Text;\n@@ -590,4 +601,4 @@ codeunit 30176 \"Shpfy Product API\"\n foreach JOption in JOptions do\n Options.Add(JsonHelper.GetValueAsText(JOption, 'id'), JsonHelper.GetValueAsText(JOption, 'name'));\n end;\n-}\n\\ No newline at end of file\n+}\ndiff --git a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyProductExport.Codeunit.al b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyProductExport.Codeunit.al\nindex 25e90220..2aaa839b 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyProductExport.Codeunit.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyProductExport.Codeunit.al\n@@ -796,7 +796,7 @@ codeunit 30178 \"Shpfy Product Export\"\n TempTranslation: Record \"Shpfy Translation\" temporary;\n TranslationAPI: Codeunit \"Shpfy Translation API\";\n begin\n- if OnlyUpdatePrice then\n+ if OnlyUpdatePrice or (ProductId = 0) then\n exit;\n \n TempTranslation.\"Resource Type\" := TempTranslation.\"Resource Type\"::Product;\ndiff --git a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfySyncProducts.Codeunit.al b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfySyncProducts.Codeunit.al\nindex ff317b9e..1c4e4175 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfySyncProducts.Codeunit.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfySyncProducts.Codeunit.al\n@@ -233,7 +233,8 @@ codeunit 30185 \"Shpfy Sync Products\"\n if ShopifyShop.\"Sync Item Images\" = ShopifyShop.\"Sync Item Images\"::\"To Shopify\" then begin\n if GuiAllowed then\n ProgressDialog.Update(1, FinishSyncProgressLbl);\n- BackgroundSyncs.ProductImagesSync(ShopifyShop.Code, Format(ShopifyCreateProduct.GetProductId()));\n+ if ShopifyCreateProduct.GetProductId() <> 0 then\n+ BackgroundSyncs.ProductImagesSync(ShopifyShop.Code, Format(ShopifyCreateProduct.GetProductId()));\n end;\n \n ShopLocation.SetRange(\"Shop Code\", ShopifyShop.Code);\n@@ -261,4 +262,4 @@ codeunit 30185 \"Shpfy Sync Products\"\n begin\n BackgroundSyncs.ProductsSync(CopyStr(Notification.GetData('ShopCode'), 1, MaxStrLen(Shop.Code)));\n end;\n-}\n\\ No newline at end of file\n+}\ndiff --git a/App/Apps/W1/Shopify/app/src/Products/Reports/ShpfyAddItemtoShopify.Report.al b/App/Apps/W1/Shopify/app/src/Products/Reports/ShpfyAddItemtoShopify.Report.al\nindex b99f15d3..906c16b7 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Reports/ShpfyAddItemtoShopify.Report.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Reports/ShpfyAddItemtoShopify.Report.al\n@@ -67,7 +67,8 @@ report 30106 \"Shpfy Add Item to Shopify\"\n \n ShopifyCreateProduct.Run(Item);\n \n- ProductFilter += Format(ShopifyCreateProduct.GetProductId()) + '|';\n+ if ShopifyCreateProduct.GetProductId() <> 0 then\n+ ProductFilter += Format(ShopifyCreateProduct.GetProductId()) + '|';\n end;\n end;\n \n@@ -199,4 +200,4 @@ report 30106 \"Shpfy Add Item to Shopify\"\n begin\n ShopCode := Shop;\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139581'\nCodeunit 139581 Shpfy Skipped Record Log Test\n Testfunction UnitTestLogItemEmptyDescription Failure (6.847 seconds)\n Error:\n The response from Shopify contains no JSON. \\Requested: {\"query\":\"{ locations(first: 20, includeLegacy: true) { pageInfo { hasNextPage endCursor } nodes { legacyResourceId isActive isPrimary name fulfillmentService { serviceName }}}}\"} \\Response: \n Call Stack:\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 21 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 4 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 6 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Sync Shop Locations\"(CodeUnit 30198).SyncLocations line 20 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Sync Shop Locations\"(CodeUnit 30198).OnRun(Trigger) line 4 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Create Product\"(CodeUnit 30174).OnRun(Trigger) line 5 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Add Item to Shopify\"(Report 30106).\"Item - OnAfterGetRecord\"(Trigger) line 12 - Shopify Connector by Microsoft version 26.0.0.0", "metrics": {"execution_time": 203.0, "llm_duration": null, "turn_count": 18, "prompt_tokens": 767700, "completion_tokens": 8900, "tool_usage": {"rg": 18, "glob": 4, "report_intent": 4, "view": 14, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} + +{"instance_id": "microsoftInternal__NAV-201169__cf-3", "project": "Shopify", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\nindex 38d77856..47084a4f 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n@@ -57,7 +57,8 @@ codeunit 30174 \"Shpfy Create Product\"\n ProductId := ProductApi.CreateProduct(TempShopifyProduct, TempShopifyVariant, TempShopifyTag)\n else\n ProductId := TempShopifyProduct.Id;\n- ProductExport.UpdateProductTranslations(ProductId, Item);\n+ if ProductId <> 0 then\n+ ProductExport.UpdateProductTranslations(ProductId, Item);\n end;\n \n internal procedure CreateTempProduct(Item: Record Item; var TempShopifyProduct: Record \"Shpfy Product\" temporary; var TempShopifyVariant: Record \"Shpfy Variant\" temporary; var TempShopifyTag: Record \"Shpfy Tag\" temporary)\n@@ -274,4 +275,4 @@ codeunit 30174 \"Shpfy Create Product\"\n Page.Run(Page::\"Shpfy Shop Locations Mapping\", ShopLocation);\n end;\n end;\n-}\n\\ No newline at end of file\n+}\ndiff --git a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyProductAPI.Codeunit.al b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyProductAPI.Codeunit.al\nindex 80138999..2a546b91 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyProductAPI.Codeunit.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyProductAPI.Codeunit.al\n@@ -26,9 +26,11 @@ codeunit 30176 \"Shpfy Product API\"\n /// Parameter of type Record \"Shopify Variant\".\n internal procedure CreateProduct(var ShopifyProduct: Record \"Shpfy Product\"; var ShopifyVariant: Record \"Shpfy Variant\"; var ShopifyTag: Record \"Shpfy Tag\"): BigInteger\n var\n+ Item: Record Item;\n NewShopifyProduct: Record \"Shpfy Product\";\n NewShopifyVariant: Record \"Shpfy Variant\";\n EmptyShopifyVariant: Record \"Shpfy Variant\";\n+ SkippedRecord: Codeunit \"Shpfy Skipped Record\";\n JArray: JsonArray;\n JResponse: JsonToken;\n JToken: JsonToken;\n@@ -95,8 +97,11 @@ codeunit 30176 \"Shpfy Product API\"\n JResponse := CommunicationMgt.ExecuteGraphQL(GraphQuery.ToText());\n NewShopifyProduct := ShopifyProduct;\n NewShopifyProduct.Id := JsonHelper.GetValueAsBigInteger(JResponse, 'data.productCreate.product.legacyResourceId');\n- if NewShopifyProduct.Id = 0 then\n+ if NewShopifyProduct.Id = 0 then begin\n+ if Item.GetBySystemId(ShopifyProduct.\"Item SystemId\") then\n+ SkippedRecord.LogSkippedRecord(Item.RecordId, GetProductCreateUserErrors(JResponse), Shop);\n exit;\n+ end;\n #pragma warning disable AA0139\n NewShopifyProduct.\"Preview URL\" := JsonHelper.GetValueAsText(JResponse, 'data.productCreate.product.onlineStorePreviewUrl', MaxStrLen(NewShopifyProduct.\"Preview URL\"));\n NewShopifyProduct.URL := JsonHelper.GetValueAsText(JResponse, 'data.productCreate.product.onlineStoreUrl', MaxStrLen(NewShopifyProduct.URL));\n@@ -125,6 +130,33 @@ codeunit 30176 \"Shpfy Product API\"\n exit(NewShopifyProduct.Id);\n end;\n \n+ local procedure GetProductCreateUserErrors(JResponse: JsonToken): Text\n+ var\n+ JUserErrors: JsonArray;\n+ JUserError: JsonToken;\n+ Index: Integer;\n+ Message: Text;\n+ Result: TextBuilder;\n+ ProductCreateFailedLbl: Label 'Shopify rejected the product creation.';\n+ begin\n+ if JsonHelper.GetJsonArray(JResponse, JUserErrors, 'data.productCreate.userErrors') then\n+ if JUserErrors.Count() > 0 then\n+ for Index := 0 to JUserErrors.Count() - 1 do\n+ if JUserErrors.Get(Index, JUserError) then begin\n+ Message := JsonHelper.GetValueAsText(JUserError, 'message');\n+ if Message <> '' then begin\n+ if Result.Length > 0 then\n+ Result.Append('; ');\n+ Result.Append(Message);\n+ end;\n+ end;\n+\n+ if Result.Length > 0 then\n+ exit(Result.ToText());\n+\n+ exit(ProductCreateFailedLbl);\n+ end;\n+\n local procedure CreateImageUploadUrl(Item: Record Item; var Url: Text; var ResourceUrl: Text; var TenantMedia: Record \"Tenant Media\"): boolean\n var\n MimeType: Text;\n@@ -590,4 +622,4 @@ codeunit 30176 \"Shpfy Product API\"\n foreach JOption in JOptions do\n Options.Add(JsonHelper.GetValueAsText(JOption, 'id'), JsonHelper.GetValueAsText(JOption, 'name'));\n end;\n-}\n\\ No newline at end of file\n+}\ndiff --git a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyProductExport.Codeunit.al b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyProductExport.Codeunit.al\nindex 25e90220..2aaa839b 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyProductExport.Codeunit.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyProductExport.Codeunit.al\n@@ -796,7 +796,7 @@ codeunit 30178 \"Shpfy Product Export\"\n TempTranslation: Record \"Shpfy Translation\" temporary;\n TranslationAPI: Codeunit \"Shpfy Translation API\";\n begin\n- if OnlyUpdatePrice then\n+ if OnlyUpdatePrice or (ProductId = 0) then\n exit;\n \n TempTranslation.\"Resource Type\" := TempTranslation.\"Resource Type\"::Product;\ndiff --git a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfySyncProducts.Codeunit.al b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfySyncProducts.Codeunit.al\nindex ff317b9e..770d668d 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfySyncProducts.Codeunit.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfySyncProducts.Codeunit.al\n@@ -230,7 +230,7 @@ codeunit 30185 \"Shpfy Sync Products\"\n end;\n ShopifyCreateProduct.SetShop(ShopifyShop.Code);\n ShopifyCreateProduct.Run(Item);\n- if ShopifyShop.\"Sync Item Images\" = ShopifyShop.\"Sync Item Images\"::\"To Shopify\" then begin\n+ if (ShopifyCreateProduct.GetProductId() <> 0) and (ShopifyShop.\"Sync Item Images\" = ShopifyShop.\"Sync Item Images\"::\"To Shopify\") then begin\n if GuiAllowed then\n ProgressDialog.Update(1, FinishSyncProgressLbl);\n BackgroundSyncs.ProductImagesSync(ShopifyShop.Code, Format(ShopifyCreateProduct.GetProductId()));\n@@ -238,7 +238,7 @@ codeunit 30185 \"Shpfy Sync Products\"\n \n ShopLocation.SetRange(\"Shop Code\", ShopifyShop.Code);\n ShopLocation.SetFilter(\"Stock Calculation\", '<>%1', ShopLocation.\"Stock Calculation\"::Disabled);\n- if not ShopLocation.IsEmpty() then\n+ if (ShopifyCreateProduct.GetProductId() <> 0) and (not ShopLocation.IsEmpty()) then\n BackgroundSyncs.InventorySync(ShopifyShop.Code);\n end;\n \n@@ -261,4 +261,4 @@ codeunit 30185 \"Shpfy Sync Products\"\n begin\n BackgroundSyncs.ProductsSync(CopyStr(Notification.GetData('ShopCode'), 1, MaxStrLen(Shop.Code)));\n end;\n-}\n\\ No newline at end of file\n+}\ndiff --git a/App/Apps/W1/Shopify/app/src/Products/Reports/ShpfyAddItemtoShopify.Report.al b/App/Apps/W1/Shopify/app/src/Products/Reports/ShpfyAddItemtoShopify.Report.al\nindex b99f15d3..4c9fe2f5 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Reports/ShpfyAddItemtoShopify.Report.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Reports/ShpfyAddItemtoShopify.Report.al\n@@ -67,7 +67,10 @@ report 30106 \"Shpfy Add Item to Shopify\"\n \n ShopifyCreateProduct.Run(Item);\n \n- ProductFilter += Format(ShopifyCreateProduct.GetProductId()) + '|';\n+ if ShopifyCreateProduct.GetProductId() <> 0 then begin\n+ ProductFilter += Format(ShopifyCreateProduct.GetProductId()) + '|';\n+ HasCreatedProducts := true;\n+ end;\n end;\n end;\n \n@@ -167,9 +170,9 @@ report 30106 \"Shpfy Add Item to Shopify\"\n BackgroundSyncs: Codeunit \"Shpfy Background Syncs\";\n begin\n ProductFilter := ProductFilter.TrimEnd('|');\n- if SyncImages then\n+ if HasCreatedProducts and SyncImages and (ProductFilter <> '') then\n BackgroundSyncs.ProductImagesSync(ShopCode, ProductFilter);\n- if SyncInventory then\n+ if HasCreatedProducts and SyncInventory then\n BackgroundSyncs.InventorySync(ShopCode);\n end;\n \n@@ -182,6 +185,7 @@ report 30106 \"Shpfy Add Item to Shopify\"\n SyncInventory: Boolean;\n SyncInventoryVisible: Boolean;\n SyncImagesVisible: Boolean;\n+ HasCreatedProducts: Boolean;\n ProcessMsg: Label 'Adding item #1####################', Comment = '#1 = Item no.';\n NoShopSellectedErr: Label 'You must select a shop to add the items to.';\n ProcessDialog: Dialog;\n@@ -199,4 +203,4 @@ report 30106 \"Shpfy Add Item to Shopify\"\n begin\n ShopCode := Shop;\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139581'\nCodeunit 139581 Shpfy Skipped Record Log Test\n Testfunction UnitTestLogItemEmptyDescription Failure (7.246 seconds)\n Error:\n The response from Shopify contains no JSON. \\Requested: {\"query\":\"{ locations(first: 20, includeLegacy: true) { pageInfo { hasNextPage endCursor } nodes { legacyResourceId isActive isPrimary name fulfillmentService { serviceName }}}}\"} \\Response: \n Call Stack:\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 21 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 4 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 6 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Sync Shop Locations\"(CodeUnit 30198).SyncLocations line 20 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Sync Shop Locations\"(CodeUnit 30198).OnRun(Trigger) line 4 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Create Product\"(CodeUnit 30174).OnRun(Trigger) line 5 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Add Item to Shopify\"(Report 30106).\"Item - OnAfterGetRecord\"(Trigger) line 12 - Shopify Connector by Microsoft version 26.0.0.0", "metrics": {"execution_time": 223.0, "llm_duration": null, "turn_count": 22, "prompt_tokens": 1300000, "completion_tokens": 10100, "tool_usage": {"rg": 22, "glob": 6, "report_intent": 18, "view": 16, "apply_patch": 2, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} + +{"instance_id": "microsoftInternal__NAV-203923__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\nindex 6bb15d7d..6d9ee3ba 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n@@ -93,7 +93,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetNonDeductibleVATPct(NonDeductibleVATPct, VATPostingSetup, GeneralPostingType, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (VATPostingSetup.\"VAT Calculation Type\" in [VATPostingSetup.\"VAT Calculation Type\"::\"Normal VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not IsNonDeductibleVATCalculationType(VATPostingSetup.\"VAT Calculation Type\") then\n exit(0);\n if (VATPostingSetup.\"Allow Non-Deductible VAT\" = VATPostingSetup.\"Allow Non-Deductible VAT\"::\"Do not allow\") or (GeneralPostingType <> GeneralPostingType::Purchase) then\n exit(0);\n@@ -786,7 +786,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeCalcNonDedAmountsInGenJnlLine(GenJournalLine, Currency, IsHandled);\n if IsHandled then\n exit;\n- if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not IsNonDeductibleVATCalculationType(GenJournalLine.\"VAT Calculation Type\") then\n exit;\n if not VATPostingSetup.Get(GenJournalLine.\"VAT Bus. Posting Group\", GenJournalLine.\"VAT Prod. Posting Group\") then\n exit;\n@@ -826,7 +826,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeCalcBalNonDedAmountsInGenJnlLine(GenJournalLine, Currency, IsHandled);\n if IsHandled then\n exit;\n- if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not IsNonDeductibleVATCalculationType(GenJournalLine.\"Bal. VAT Calculation Type\") then\n exit;\n if not VATPostingSetup.Get(GenJournalLine.\"Bal. VAT Bus. Posting Group\", GenJournalLine.\"Bal. VAT Prod. Posting Group\") then\n exit;\n@@ -1210,7 +1210,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetNonDedVATPctForGenJnlLine(NonDeductibleVATPct, GenJournalLine, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not IsNonDeductibleVATCalculationType(GenJournalLine.\"VAT Calculation Type\") then\n exit(0);\n if not VATPostingSetup.Get(GenJournalLine.\"VAT Bus. Posting Group\", GenJournalLine.\"VAT Prod. Posting Group\") then\n exit(0);\n@@ -1227,7 +1227,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetBalNonDedVATPctForGenJnlLine(NonDeductibleVATPct, GenJournalLine, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not IsNonDeductibleVATCalculationType(GenJournalLine.\"Bal. VAT Calculation Type\") then\n exit(0);\n if not VATPostingSetup.Get(GenJournalLine.\"Bal. VAT Bus. Posting Group\", GenJournalLine.\"Bal. VAT Prod. Posting Group\") then\n exit(0);\n@@ -1244,6 +1244,11 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n exit(GenJournalLine.\"Bal. Non-Ded. VAT %\");\n end;\n \n+ local procedure IsNonDeductibleVATCalculationType(VATCalculationType: Enum \"Tax Calculation Type\"): Boolean\n+ begin\n+ exit(VATCalculationType in [VATCalculationType::\"Normal VAT\", VATCalculationType::\"Full VAT\", VATCalculationType::\"Reverse Charge VAT\"]);\n+ end;\n+\n [EventSubscriber(ObjectType::Codeunit, Codeunit::\"Company-Initialize\", 'OnCompanyInitialize', '', false, false)]\n local procedure CreateVATSetupOnCompanyInitialize()\n var\n@@ -1253,4 +1258,4 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n exit;\n VATSetup.Insert(true);\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": null, "metrics": {"execution_time": 166.0, "llm_duration": null, "turn_count": 14, "prompt_tokens": 423000, "completion_tokens": 5400, "tool_usage": {"rg": 17, "glob": 1, "report_intent": 5, "view": 15, "apply_patch": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-203923__cf-2", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\nindex 6bb15d7d..3834d2a9 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n@@ -93,7 +93,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetNonDeductibleVATPct(NonDeductibleVATPct, VATPostingSetup, GeneralPostingType, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (VATPostingSetup.\"VAT Calculation Type\" in [VATPostingSetup.\"VAT Calculation Type\"::\"Normal VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (VATPostingSetup.\"VAT Calculation Type\" in [VATPostingSetup.\"VAT Calculation Type\"::\"Normal VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Reverse Charge VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if (VATPostingSetup.\"Allow Non-Deductible VAT\" = VATPostingSetup.\"Allow Non-Deductible VAT\"::\"Do not allow\") or (GeneralPostingType <> GeneralPostingType::Purchase) then\n exit(0);\n@@ -786,7 +786,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeCalcNonDedAmountsInGenJnlLine(GenJournalLine, Currency, IsHandled);\n if IsHandled then\n exit;\n- if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit;\n if not VATPostingSetup.Get(GenJournalLine.\"VAT Bus. Posting Group\", GenJournalLine.\"VAT Prod. Posting Group\") then\n exit;\n@@ -826,7 +826,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeCalcBalNonDedAmountsInGenJnlLine(GenJournalLine, Currency, IsHandled);\n if IsHandled then\n exit;\n- if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Full VAT\"]) then\n exit;\n if not VATPostingSetup.Get(GenJournalLine.\"Bal. VAT Bus. Posting Group\", GenJournalLine.\"Bal. VAT Prod. Posting Group\") then\n exit;\n@@ -1210,7 +1210,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetNonDedVATPctForGenJnlLine(NonDeductibleVATPct, GenJournalLine, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if not VATPostingSetup.Get(GenJournalLine.\"VAT Bus. Posting Group\", GenJournalLine.\"VAT Prod. Posting Group\") then\n exit(0);\n@@ -1227,7 +1227,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetBalNonDedVATPctForGenJnlLine(NonDeductibleVATPct, GenJournalLine, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if not VATPostingSetup.Get(GenJournalLine.\"Bal. VAT Bus. Posting Group\", GenJournalLine.\"Bal. VAT Prod. Posting Group\") then\n exit(0);\n@@ -1253,4 +1253,4 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n exit;\n VATSetup.Insert(true);\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": null, "metrics": {"execution_time": 172.0, "llm_duration": null, "turn_count": 14, "prompt_tokens": 627500, "completion_tokens": 7100, "tool_usage": {"rg": 13, "powershell": 2, "view": 16, "apply_patch": 1, "report_intent": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-203923__cf-3", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\nindex 6bb15d7d..d6dc53a3 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n@@ -93,7 +93,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetNonDeductibleVATPct(NonDeductibleVATPct, VATPostingSetup, GeneralPostingType, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (VATPostingSetup.\"VAT Calculation Type\" in [VATPostingSetup.\"VAT Calculation Type\"::\"Normal VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (VATPostingSetup.\"VAT Calculation Type\" in [VATPostingSetup.\"VAT Calculation Type\"::\"Normal VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Reverse Charge VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if (VATPostingSetup.\"Allow Non-Deductible VAT\" = VATPostingSetup.\"Allow Non-Deductible VAT\"::\"Do not allow\") or (GeneralPostingType <> GeneralPostingType::Purchase) then\n exit(0);\n@@ -786,18 +786,23 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeCalcNonDedAmountsInGenJnlLine(GenJournalLine, Currency, IsHandled);\n if IsHandled then\n exit;\n- if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit;\n if not VATPostingSetup.Get(GenJournalLine.\"VAT Bus. Posting Group\", GenJournalLine.\"VAT Prod. Posting Group\") then\n exit;\n GenJournalLine.Validate(\"Non-Deductible VAT Base\",\n Round(GenJournalLine.\"VAT Base Amount\" * GetNonDedVATPctFromGenJournalLine(GenJournalLine) / 100, Currency.\"Amount Rounding Precision\"));\n- if GenJournalLine.\"VAT Calculation Type\" = GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\" then\n- GenJournalLine.Validate(\"Non-Deductible VAT Amount\",\n- Round(GenJournalLine.\"Non-Deductible VAT Base\" * VATPostingSetup.\"VAT %\" / 100, Currency.\"Amount Rounding Precision\"))\n- else\n- GenJournalLine.Validate(\"Non-Deductible VAT Amount\",\n- Round((GenJournalLine.Amount - GenJournalLine.\"VAT Base Amount\") * GetNonDedVATPctFromGenJournalLine(GenJournalLine) / 100, Currency.\"Amount Rounding Precision\"));\n+ case GenJournalLine.\"VAT Calculation Type\" of\n+ GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\":\n+ GenJournalLine.Validate(\"Non-Deductible VAT Amount\",\n+ Round(GenJournalLine.\"Non-Deductible VAT Base\" * VATPostingSetup.\"VAT %\" / 100, Currency.\"Amount Rounding Precision\"));\n+ GenJournalLine.\"VAT Calculation Type\"::\"Full VAT\":\n+ GenJournalLine.Validate(\"Non-Deductible VAT Amount\",\n+ Round(GenJournalLine.Amount * GetNonDedVATPctFromGenJournalLine(GenJournalLine) / 100, Currency.\"Amount Rounding Precision\"));\n+ else\n+ GenJournalLine.Validate(\"Non-Deductible VAT Amount\",\n+ Round((GenJournalLine.Amount - GenJournalLine.\"VAT Base Amount\") * GetNonDedVATPctFromGenJournalLine(GenJournalLine) / 100, Currency.\"Amount Rounding Precision\"));\n+ end;\n if GenJournalLine.\"Currency Code\" = '' then begin\n GenJournalLine.Validate(\"Non-Deductible VAT Base LCY\", GenJournalLine.\"Non-Deductible VAT Base\");\n GenJournalLine.Validate(\"Non-Deductible VAT Amount LCY\", GenJournalLine.\"Non-Deductible VAT Amount\");\n@@ -826,18 +831,23 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeCalcBalNonDedAmountsInGenJnlLine(GenJournalLine, Currency, IsHandled);\n if IsHandled then\n exit;\n- if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Full VAT\"]) then\n exit;\n if not VATPostingSetup.Get(GenJournalLine.\"Bal. VAT Bus. Posting Group\", GenJournalLine.\"Bal. VAT Prod. Posting Group\") then\n exit;\n GenJournalLine.Validate(\"Bal. Non-Ded. VAT Base\",\n Round(GenJournalLine.\"Bal. VAT Base Amount\" * GetBalNonDedVATPctFromGenJournalLine(GenJournalLine) / 100, Currency.\"Amount Rounding Precision\"));\n- if GenJournalLine.\"Bal. VAT Calculation Type\" = GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\" then\n- GenJournalLine.Validate(\"Bal. Non-Ded. VAT Amount\",\n- Round(GenJournalLine.\"Bal. Non-Ded. VAT Base\" * VATPostingSetup.\"VAT %\" / 100, Currency.\"Amount Rounding Precision\"))\n- else\n- GenJournalLine.Validate(\"Bal. Non-Ded. VAT Amount\",\n- Round((-GenJournalLine.\"Bal. VAT Base Amount\" - GenJournalLine.Amount) * GetBalNonDedVATPctFromGenJournalLine(GenJournalLine) / 100, Currency.\"Amount Rounding Precision\"));\n+ case GenJournalLine.\"Bal. VAT Calculation Type\" of\n+ GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\":\n+ GenJournalLine.Validate(\"Bal. Non-Ded. VAT Amount\",\n+ Round(GenJournalLine.\"Bal. Non-Ded. VAT Base\" * VATPostingSetup.\"VAT %\" / 100, Currency.\"Amount Rounding Precision\"));\n+ GenJournalLine.\"Bal. VAT Calculation Type\"::\"Full VAT\":\n+ GenJournalLine.Validate(\"Bal. Non-Ded. VAT Amount\",\n+ Round(-GenJournalLine.Amount * GetBalNonDedVATPctFromGenJournalLine(GenJournalLine) / 100, Currency.\"Amount Rounding Precision\"));\n+ else\n+ GenJournalLine.Validate(\"Bal. Non-Ded. VAT Amount\",\n+ Round((-GenJournalLine.\"Bal. VAT Base Amount\" - GenJournalLine.Amount) * GetBalNonDedVATPctFromGenJournalLine(GenJournalLine) / 100, Currency.\"Amount Rounding Precision\"));\n+ end;\n if GenJournalLine.\"Currency Code\" = '' then begin\n GenJournalLine.Validate(\"Bal. Non-Ded. VAT Base LCY\", GenJournalLine.\"Bal. Non-Ded. VAT Base\");\n GenJournalLine.Validate(\"Bal. Non-Ded. VAT Amount LCY\", GenJournalLine.\"Bal. Non-Ded. VAT Amount\");\n@@ -1210,7 +1220,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetNonDedVATPctForGenJnlLine(NonDeductibleVATPct, GenJournalLine, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if not VATPostingSetup.Get(GenJournalLine.\"VAT Bus. Posting Group\", GenJournalLine.\"VAT Prod. Posting Group\") then\n exit(0);\n@@ -1227,7 +1237,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetBalNonDedVATPctForGenJnlLine(NonDeductibleVATPct, GenJournalLine, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if not VATPostingSetup.Get(GenJournalLine.\"Bal. VAT Bus. Posting Group\", GenJournalLine.\"Bal. VAT Prod. Posting Group\") then\n exit(0);\n@@ -1253,4 +1263,4 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n exit;\n VATSetup.Insert(true);\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": null, "metrics": {"execution_time": 210.0, "llm_duration": null, "turn_count": 21, "prompt_tokens": 949100, "completion_tokens": 8600, "tool_usage": {"glob": 2, "rg": 24, "report_intent": 2, "view": 25, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-204450__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\nindex 6bb15d7d..338f86b3 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n@@ -552,6 +552,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n \n PurchaseLine.\"Non-Deductible VAT Base\" := -PurchaseLine.\"Non-Deductible VAT Base\";\n PurchaseLine.\"Non-Deductible VAT Amount\" := -PurchaseLine.\"Non-Deductible VAT Amount\";\n+ PurchaseLine.\"Non-Deductible VAT Diff.\" := -PurchaseLine.\"Non-Deductible VAT Diff.\";\n end;\n \n procedure Reverse(var InvoicePostingBuffer: Record \"Invoice Posting Buffer\")\n@@ -602,6 +603,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n \n TotalPurchaseLine.\"Non-Deductible VAT Base\" += PurchaseLine.\"Non-Deductible VAT Base\";\n TotalPurchaseLine.\"Non-Deductible VAT Amount\" += PurchaseLine.\"Non-Deductible VAT Amount\";\n+ TotalPurchaseLine.\"Non-Deductible VAT Diff.\" += PurchaseLine.\"Non-Deductible VAT Diff.\";\n end;\n \n procedure Increment(var TotalInvoicePostingBuffer: Record \"Invoice Posting Buffer\"; InvoicePostingBuffer: Record \"Invoice Posting Buffer\")\n@@ -683,6 +685,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n if PurchaseLine.\"Non-Deductible VAT %\" = 100 then begin\n PurchaseLine.\"Non-Deductible VAT Base\" := PurchaseLine.\"VAT Base Amount\";\n PurchaseLine.\"Non-Deductible VAT Amount\" := PurchaseLine.\"Amount Including VAT\" - PurchaseLine.\"VAT Base Amount\" - PurchaseLine.\"VAT Difference\";\n+ PurchaseLine.\"Non-Deductible VAT Diff.\" := PurchaseLine.\"VAT Difference\";\n exit;\n end;\n PurchaseLine.\"Non-Deductible VAT Base\" :=\n@@ -697,6 +700,12 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n PurchaseHeader.GetUseDate(), PurchaseHeader.\"Currency Code\",\n TotalPurchaseLine.\"Non-Deductible VAT Amount\", PurchaseHeader.\"Currency Factor\")) -\n TotalPurchaseLineLCY.\"Non-Deductible VAT Amount\";\n+ PurchaseLine.\"Non-Deductible VAT Diff.\" :=\n+ Round(\n+ CurrExchRate.ExchangeAmtFCYToLCY(\n+ PurchaseHeader.GetUseDate(), PurchaseHeader.\"Currency Code\",\n+ TotalPurchaseLine.\"Non-Deductible VAT Diff.\", PurchaseHeader.\"Currency Factor\")) -\n+ TotalPurchaseLineLCY.\"Non-Deductible VAT Diff.\";\n end;\n \n procedure ClearNonDeductibleVAT(var PurchaseLine: Record \"Purchase Line\")\n@@ -1253,4 +1262,4 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n exit;\n VATSetup.Insert(true);\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134287'\nCodeunit 134287 Non-Deductible VAT Statistics\n Testfunction PurchaseInvoiceInCurrencyIsPostedWhenChangeVATAmountOnStatisticIfNDVATPctIs100 Failure (16.12 seconds)\n Error:\n The transaction cannot be completed because it will cause inconsistencies in the G/L Entry table. Check where and how the CONSISTENT function is used in the transaction to find the reason for the error.\\\\Contact your system administrator.\\\\Tables can be marked as inconsistent during comprehensive tasks, such as posting. This prevents data from being updated incorrectly.\n Call Stack:\n \"Purch.-Post\"(CodeUnit 90).FinalizePosting line 79 - Base Application by Microsoft\n \"Purch.-Post\"(CodeUnit 90).RunWithCheck line 142 - Base Application by Microsoft\n \"Purch.-Post\"(CodeUnit 90).OnRun(Trigger) line 2 - Base Application by Microsoft\n \"Library - Purchase\"(CodeUnit 130512).PostPurchaseDocument line 56 - Tests-TestLibraries by Microsoft\n \"Non-Deductible VAT Statistics\"(CodeUnit 134287).PurchaseInvoiceInCurrencyIsPostedWhenChangeVATAmountOnStatisticIfNDVATPctIs100 line 46 - Tests-VAT by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 392.0, "llm_duration": null, "turn_count": 35, "prompt_tokens": 3200000, "completion_tokens": 17200, "tool_usage": {"rg": 32, "glob": 5, "sql": 2, "report_intent": 5, "view": 34, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} + +{"instance_id": "microsoftInternal__NAV-205825__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\nindex da15d9ef..c62bf75c 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\n@@ -278,14 +278,19 @@ codeunit 205 \"Alt. Cust. VAT Reg. Doc. Impl.\" implements \"Alt. Cust. VAT Reg. Do\n local procedure GetCustVATCalc(var VATCustomer: Record Customer; SalesHeader: Record \"Sales Header\"): Boolean\n var\n GLSetup: Record \"General Ledger Setup\";\n+ SellToCustomer: Record Customer;\n+ VATCustomerNo: Code[20];\n begin\n GLSetup.GetRecordOnce();\n case GLSetup.\"Bill-to/Sell-to VAT Calc.\" of\n GLSetup.\"Bill-to/Sell-to VAT Calc.\"::\"Bill-to/Pay-to No.\":\n begin\n- if not VATCustomer.Get(SalesHeader.\"Bill-to Customer No.\") then\n- exit(VATCustomer.Get(SalesHeader.\"Sell-to Customer No.\"));\n- exit(true);\n+ VATCustomerNo := SalesHeader.\"Bill-to Customer No.\";\n+ if (VATCustomerNo = '') and SellToCustomer.Get(SalesHeader.\"Sell-to Customer No.\") then\n+ VATCustomerNo := SellToCustomer.\"Bill-to Customer No.\";\n+ if (VATCustomerNo <> '') and VATCustomer.Get(VATCustomerNo) then\n+ exit(true);\n+ exit(VATCustomer.Get(SalesHeader.\"Sell-to Customer No.\"));\n end;\n GLSetup.\"Bill-to/Sell-to VAT Calc.\"::\"Sell-to/Buy-from No.\":\n exit(VATCustomer.Get(SalesHeader.\"Sell-to Customer No.\"));\n@@ -368,4 +373,4 @@ codeunit 205 \"Alt. Cust. VAT Reg. Doc. Impl.\" implements \"Alt. Cust. VAT Reg. Do\n begin\n SalesLinesRecreated := true;\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134237'\nCodeunit 134237 Alt. Cust. VAT. Doc. Tests\n Testfunction ShipToCodeConnectionAltCustVATSetupOfBillToCustomer Failure (5.233 seconds)\n Error:\n Assert.IsTrue failed. Queue underflow.\n Call Stack:\n \"Library Assert\"(CodeUnit 130002).IsTrue line 3 - Library Assert by Microsoft\n \"Library - Variable Storage\"(CodeUnit 131004).AssertNotUnderflow line 2 - Library Variable Storage by Microsoft\n \"Library - Variable Storage\"(CodeUnit 131004).Dequeue line 3 - Library Variable Storage by Microsoft\n \"Library - Variable Storage\"(CodeUnit 131004).DequeueText line 4 - Library Variable Storage by Microsoft\n \"Alt. Cust. VAT. Doc. Tests\"(CodeUnit 134237).MessageHandler line 2 - Tests-VAT by Microsoft\n \"Alt. Cust. VAT Reg. Doc. Impl.\"(CodeUnit 205).CopyFromCustomer line 27 - Base Application by Microsoft\n \"Alt. Cust. VAT Reg. Doc. Impl.\"(CodeUnit 205).UpdateSetupOnBillToCustomerChangeInSalesHeader line 11 - Base Application by Microsoft\n \"Alt. Cust. VAT. Reg. Facade\"(CodeUnit 200).UpdateSetupOnBillToCustomerChangeInSalesHeader line 2 - Base Application by Microsoft\n \"Sales Header\"(Table 36).SetBillToCustomerAddressFieldsFromCustomer line 37 - Base Application by Microsoft\n \"Sales Header\"(Table 36).\"Bill-to Customer No. - OnValidate\"(Trigger) line 39 - Base Application by Microsoft\n \"Sales Header\"(Table 36).SetBillToCustomerNo line 10 - Base Application by Microsoft\n \"Sales Header\"(Table 36).\"Sell-to Customer No. - OnValidate\"(Trigger) line 104 - Base Application by Microsoft\n \"Library - Sales\"(CodeUnit 130509).CreateSalesHeader line 11 - Tests-TestLibraries by Microsoft\n \"Alt. Cust. VAT. Doc. Tests\"(CodeUnit 134237).ShipToCodeConnectionAltCustVATSetupOfBillToCustomer line 25 - Tests-VAT by Microsoft", "metrics": {"execution_time": 266.0, "llm_duration": null, "turn_count": 22, "prompt_tokens": 1300000, "completion_tokens": 11900, "tool_usage": {"glob": 3, "rg": 17, "powershell": 3, "report_intent": 11, "view": 23, "apply_patch": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} + +{"instance_id": "microsoftInternal__NAV-205825__cf-2", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\nindex da15d9ef..e6336571 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\n@@ -278,14 +278,22 @@ codeunit 205 \"Alt. Cust. VAT Reg. Doc. Impl.\" implements \"Alt. Cust. VAT Reg. Do\n local procedure GetCustVATCalc(var VATCustomer: Record Customer; SalesHeader: Record \"Sales Header\"): Boolean\n var\n GLSetup: Record \"General Ledger Setup\";\n+ SellToCustomer: Record Customer;\n begin\n GLSetup.GetRecordOnce();\n case GLSetup.\"Bill-to/Sell-to VAT Calc.\" of\n GLSetup.\"Bill-to/Sell-to VAT Calc.\"::\"Bill-to/Pay-to No.\":\n begin\n- if not VATCustomer.Get(SalesHeader.\"Bill-to Customer No.\") then\n- exit(VATCustomer.Get(SalesHeader.\"Sell-to Customer No.\"));\n- exit(true);\n+ if SalesHeader.\"Bill-to Customer No.\" <> '' then\n+ exit(VATCustomer.Get(SalesHeader.\"Bill-to Customer No.\"));\n+\n+ if not SellToCustomer.Get(SalesHeader.\"Sell-to Customer No.\") then\n+ exit(false);\n+\n+ if SellToCustomer.\"Bill-to Customer No.\" <> '' then\n+ exit(VATCustomer.Get(SellToCustomer.\"Bill-to Customer No.\"));\n+\n+ exit(VATCustomer.Get(SalesHeader.\"Sell-to Customer No.\"));\n end;\n GLSetup.\"Bill-to/Sell-to VAT Calc.\"::\"Sell-to/Buy-from No.\":\n exit(VATCustomer.Get(SalesHeader.\"Sell-to Customer No.\"));\n@@ -368,4 +376,4 @@ codeunit 205 \"Alt. Cust. VAT Reg. Doc. Impl.\" implements \"Alt. Cust. VAT Reg. Do\n begin\n SalesLinesRecreated := true;\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134237'\nCodeunit 134237 Alt. Cust. VAT. Doc. Tests\n Testfunction ShipToCodeConnectionAltCustVATSetupOfBillToCustomer Failure (4.757 seconds)\n Error:\n Assert.IsTrue failed. Queue underflow.\n Call Stack:\n \"Library Assert\"(CodeUnit 130002).IsTrue line 3 - Library Assert by Microsoft\n \"Library - Variable Storage\"(CodeUnit 131004).AssertNotUnderflow line 2 - Library Variable Storage by Microsoft\n \"Library - Variable Storage\"(CodeUnit 131004).Dequeue line 3 - Library Variable Storage by Microsoft\n \"Library - Variable Storage\"(CodeUnit 131004).DequeueText line 4 - Library Variable Storage by Microsoft\n \"Alt. Cust. VAT. Doc. Tests\"(CodeUnit 134237).MessageHandler line 2 - Tests-VAT by Microsoft\n \"Alt. Cust. VAT Reg. Doc. Impl.\"(CodeUnit 205).CopyFromCustomer line 27 - Base Application by Microsoft\n \"Alt. Cust. VAT Reg. Doc. Impl.\"(CodeUnit 205).UpdateSetupOnBillToCustomerChangeInSalesHeader line 11 - Base Application by Microsoft\n \"Alt. Cust. VAT. Reg. Facade\"(CodeUnit 200).UpdateSetupOnBillToCustomerChangeInSalesHeader line 2 - Base Application by Microsoft\n \"Sales Header\"(Table 36).SetBillToCustomerAddressFieldsFromCustomer line 37 - Base Application by Microsoft\n \"Sales Header\"(Table 36).\"Bill-to Customer No. - OnValidate\"(Trigger) line 39 - Base Application by Microsoft\n \"Sales Header\"(Table 36).SetBillToCustomerNo line 10 - Base Application by Microsoft\n \"Sales Header\"(Table 36).\"Sell-to Customer No. - OnValidate\"(Trigger) line 104 - Base Application by Microsoft\n \"Library - Sales\"(CodeUnit 130509).CreateSalesHeader line 11 - Tests-TestLibraries by Microsoft\n \"Alt. Cust. VAT. Doc. Tests\"(CodeUnit 134237).ShipToCodeConnectionAltCustVATSetupOfBillToCustomer line 25 - Tests-VAT by Microsoft", "metrics": {"execution_time": 278.0, "llm_duration": null, "turn_count": 25, "prompt_tokens": 1300000, "completion_tokens": 10700, "tool_usage": {"glob": 5, "rg": 19, "view": 27, "report_intent": 1, "powershell": 2, "apply_patch": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} + +{"instance_id": "microsoftInternal__NAV-206527__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al b/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\nindex e3280001..afd47ee3 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\n@@ -182,28 +182,8 @@ table 99000829 \"Planning Component\"\n Editable = false;\n \n trigger OnValidate()\n- var\n- ItemUnitOfMeasure: Record \"Item Unit of Measure\";\n- UnroundedExpectedQuantity: Decimal;\n- ItemPrecRoundedExpectedQuantity: Decimal;\n- BaseUOMPrecRoundedExpectedQuantity: Decimal;\n begin\n- UnroundedExpectedQuantity := \"Expected Quantity\";\n-\n- if Item.Get(\"Item No.\") and (\"Ref. Order Type\" <> \"Ref. Order Type\"::Assembly) then\n- if Item.\"Rounding Precision\" > 0 then\n- \"Expected Quantity\" := UOMMgt.RoundToItemRndPrecision(\"Expected Quantity\", Item.\"Rounding Precision\");\n-\n- ItemPrecRoundedExpectedQuantity := \"Expected Quantity\";\n- BaseUOMPrecRoundedExpectedQuantity := UOMMgt.RoundQty(\"Expected Quantity\", \"Qty. Rounding Precision\");\n-\n- if (\"Qty. Rounding Precision\" > 0) and (BaseUOMPrecRoundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity) then\n- if UnroundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity then\n- Error(WrongPrecisionItemAndUOMExpectedQtyErr, Item.FieldCaption(\"Rounding Precision\"), Item.TableCaption(), ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"))\n- else\n- Error(WrongPrecOnUOMExpectedQtyErr, ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"));\n-\n- \"Expected Quantity\" := BaseUOMPrecRoundedExpectedQuantity;\n+ \"Expected Quantity\" := UOMMgt.RoundQty(\"Expected Quantity\");\n \"Expected Quantity (Base)\" := CalcBaseQty(\"Expected Quantity\", FieldCaption(\"Expected Quantity\"), FieldCaption(\"Expected Quantity (Base)\"));\n \n \"Net Quantity (Base)\" := \"Expected Quantity (Base)\" - \"Original Expected Qty. (Base)\";\n@@ -654,8 +634,6 @@ table 99000829 \"Planning Component\"\n CannotRenameErr: Label 'You cannot rename a %1.', Comment = '%1 - Planning Component';\n CannotChangeErr: Label 'You cannot change %1 when %2 is %3.', Comment = '%1 - FieldCaption(\"Unit Cost\"), %2 - Item.FieldCaption(\"Costing Method\"), %3 - Item.\"Costing Method\"';\n LocationCodeMustBeBlankErr: Label 'The Location Code field must be blank for items of type Non-Inventory.';\n- WrongPrecisionItemAndUOMExpectedQtyErr: Label 'The value in the %1 field on the %2 page, and %3 field on the %4 page, are causing the rounding precision for the %5 field to be incorrect.', Comment = '%1 = field caption, %2 = table caption, %3 field caption, %4 = table caption, %5 = field caption';\n- WrongPrecOnUOMExpectedQtyErr: Label 'The value in the %1 field on the %2 page is causing the rounding precision for the %3 field to be incorrect.', Comment = '%1 = field caption, %2 = table caption, %3 field caption';\n \n protected var\n ReqLine: Record \"Requisition Line\";\n@@ -988,7 +966,7 @@ table 99000829 \"Planning Component\"\n local procedure CalcBaseQty(Qty: Decimal; FromFieldName: Text; ToFieldName: Text): Decimal\n begin\n exit(UOMMgt.CalcBaseQty(\n- \"Item No.\", \"Variant Code\", \"Unit of Measure Code\", Qty, \"Qty. per Unit of Measure\", \"Qty. Rounding Precision (Base)\", FieldCaption(\"Qty. Rounding Precision\"), FromFieldName, ToFieldName));\n+ \"Item No.\", \"Variant Code\", \"Unit of Measure Code\", Qty, \"Qty. per Unit of Measure\", 0, FieldCaption(\"Qty. Rounding Precision\"), FromFieldName, ToFieldName));\n end;\n \n procedure CreateDimFromDefaultDim()\ndiff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al b/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\nindex c532e014..3271c824 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\n@@ -249,10 +249,6 @@ table 5407 \"Prod. Order Component\"\n \n trigger OnValidate()\n var\n- ItemUnitOfMeasure: Record \"Item Unit of Measure\";\n- UnroundedExpectedQuantity: Decimal;\n- ItemPrecRoundedExpectedQuantity: Decimal;\n- BaseUOMPrecRoundedExpectedQuantity: Decimal;\n IsHandled: Boolean;\n begin\n IsHandled := false;\n@@ -260,26 +256,11 @@ table 5407 \"Prod. Order Component\"\n if IsHandled then\n exit;\n \n- UnroundedExpectedQuantity := \"Expected Quantity\";\n- if Item.Get(\"Item No.\") then\n- if Item.\"Rounding Precision\" > 0 then\n- RoundExpectedQuantity();\n-\n- ItemPrecRoundedExpectedQuantity := \"Expected Quantity\";\n-\n- BaseUOMPrecRoundedExpectedQuantity := UOMMgt.RoundQty(\"Expected Quantity\", \"Qty. Rounding Precision\");\n-\n- if (\"Qty. Rounding Precision\" > 0) and (BaseUOMPrecRoundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity) then\n- if UnroundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity then\n- Error(WrongPrecisionItemAndUOMExpectedQtyErr, Item.FieldCaption(\"Rounding Precision\"), Item.TableCaption(), ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"))\n- else\n- Error(WrongPrecOnUOMExpectedQtyErr, ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"));\n-\n- \"Expected Quantity\" := BaseUOMPrecRoundedExpectedQuantity;\n+ RoundExpectedQuantity();\n \"Expected Qty. (Base)\" := CalcBaseQty(\"Expected Quantity\", FieldCaption(\"Expected Quantity\"), FieldCaption(\"Expected Qty. (Base)\"));\n \n // Recalculate 'Expected Quantity' based on the base value to make sure values are consistent\n- \"Expected Quantity\" := UOMMgt.RoundQty(\"Expected Qty. (Base)\" / \"Qty. per Unit of Measure\", \"Qty. Rounding Precision\");\n+ \"Expected Quantity\" := UOMMgt.RoundQty(\"Expected Qty. (Base)\" / \"Qty. per Unit of Measure\");\n \n if (Status in [Status::Released, Status::Finished]) and\n (xRec.\"Item No.\" <> '') and\n@@ -289,7 +270,7 @@ table 5407 \"Prod. Order Component\"\n \n OnValidateExpectedQuantityOnAfterCalcActConsumptionQty(Rec, xRec);\n \"Remaining Quantity\" := \"Expected Quantity\" - \"Act. Consumption (Qty)\" / \"Qty. per Unit of Measure\";\n- \"Remaining Quantity\" := UOMMgt.RoundQty(\"Remaining Quantity\", \"Qty. Rounding Precision\");\n+ \"Remaining Quantity\" := UOMMgt.RoundQty(\"Remaining Quantity\");\n \n if (\"Remaining Quantity\" * \"Expected Quantity\") <= 0 then\n \"Remaining Quantity\" := 0;\n@@ -562,7 +543,7 @@ table 5407 \"Prod. Order Component\"\n exit;\n \n CalculateQuantity(Quantity);\n- Quantity := UOMMgt.RoundAndValidateQty(Quantity, \"Qty. Rounding Precision\", FieldCaption(Quantity));\n+ Quantity := UOMMgt.RoundQty(Quantity);\n \n OnValidateCalculationFormulaOnAfterSetQuantity(Rec);\n \"Quantity (Base)\" := CalcBaseQty(Quantity, FieldCaption(Quantity), FieldCaption(\"Quantity (Base)\"));\n@@ -1028,8 +1009,6 @@ table 5407 \"Prod. Order Component\"\n Text99000003: Label 'You cannot change %1 when %2 is %3.';\n #pragma warning restore AA0470\n #pragma warning restore AA0074\n- WrongPrecisionItemAndUOMExpectedQtyErr: Label 'The value in the %1 field on the %2 page, and %3 field on the %4 page, are causing the rounding precision for the %5 field to be incorrect.', Comment = '%1 = field caption, %2 = table caption, %3 field caption, %4 = table caption, %5 = field caption';\n- WrongPrecOnUOMExpectedQtyErr: Label 'The value in the %1 field on the %2 page is causing the rounding precision for the %3 field to be incorrect.', Comment = '%1 = field caption, %2 = table caption, %3 field caption';\n Item: Record Item;\n ReservEntry: Record \"Reservation Entry\";\n GLSetup: Record \"General Ledger Setup\";\n@@ -1448,7 +1427,7 @@ table 5407 \"Prod. Order Component\"\n if IsHandled then\n exit;\n \n- \"Expected Quantity\" := UOMMgt.RoundToItemRndPrecision(\"Expected Quantity\", Item.\"Rounding Precision\");\n+ \"Expected Quantity\" := UOMMgt.RoundQty(\"Expected Quantity\");\n \n OnAfterRoundExpectedQuantity(Rec);\n end;\n@@ -2002,7 +1981,7 @@ table 5407 \"Prod. Order Component\"\n exit;\n \n exit(UOMMgt.CalcBaseQty(\n- \"Item No.\", \"Variant Code\", \"Unit of Measure Code\", Qty, \"Qty. per Unit of Measure\", \"Qty. Rounding Precision (Base)\", FieldCaption(\"Qty. Rounding Precision\"), FromFieldName, ToFieldName));\n+ \"Item No.\", \"Variant Code\", \"Unit of Measure Code\", Qty, \"Qty. per Unit of Measure\", 0, FieldCaption(\"Qty. Rounding Precision\"), FromFieldName, ToFieldName));\n end;\n \n procedure CreateDimFromDefaultDim()\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137088'\nCodeunit 137088 SCM Order Planning - III\n Testfunction ReleasedProdOrderQuantityPerandExpectedQtyRoundingPrecisionChecking Failure (9.123 seconds)\n Error:\n Assert.AreEqual failed. Expected:<0.01> (Decimal). Actual:<0> (Decimal). Relesed Production Order Item Component Quantity per 0 Not Match With Expected Result 0.01.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 26.0.0.0\n \"SCM Order Planning - III\"(CodeUnit 137088).ReleasedProdOrderQuantityPerandExpectedQtyRoundingPrecisionChecking line 61 - Tests-SCM by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0", "metrics": {"execution_time": 372.0, "llm_duration": null, "turn_count": 36, "prompt_tokens": 2500000, "completion_tokens": 16400, "tool_usage": {"glob": 5, "rg": 33, "report_intent": 3, "view": 34, "apply_patch": 3, "powershell": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} + +{"instance_id": "microsoftInternal__NAV-206977__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\nindex 0877c357..14ce474c 100644\n--- a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\n+++ b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\n@@ -161,7 +161,7 @@ page 903 \"Assembly Lines\"\n AssemblyHeader: Record \"Assembly Header\";\n begin\n AssemblyHeader.Get(Rec.\"Document Type\", Rec.\"Document No.\");\n- PAGE.Run(PAGE::\"Assembly Order\", AssemblyHeader);\n+ ShowAssemblyDocument(AssemblyHeader);\n end;\n }\n action(\"Reservation Entries\")\n@@ -210,5 +210,17 @@ page 903 \"Assembly Lines\"\n }\n }\n }\n+\n+ local procedure ShowAssemblyDocument(var AssemblyHeader: Record \"Assembly Header\")\n+ begin\n+ case AssemblyHeader.\"Document Type\" of\n+ AssemblyHeader.\"Document Type\"::Quote:\n+ PAGE.Run(PAGE::\"Assembly Quote\", AssemblyHeader);\n+ AssemblyHeader.\"Document Type\"::Order:\n+ PAGE.Run(PAGE::\"Assembly Order\", AssemblyHeader);\n+ AssemblyHeader.\"Document Type\"::\"Blanket Order\":\n+ PAGE.Run(PAGE::\"Blanket Assembly Order\", AssemblyHeader);\n+ end;\n+ end;\n }\n \n", "error_message": null, "metrics": {"execution_time": 102.0, "llm_duration": null, "turn_count": 9, "prompt_tokens": 201700, "completion_tokens": 2800, "tool_usage": {"glob": 3, "rg": 10, "view": 7, "report_intent": 2, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-206977__cf-2", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\nindex 0877c357..c642ab93 100644\n--- a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\n+++ b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\n@@ -161,7 +161,14 @@ page 903 \"Assembly Lines\"\n AssemblyHeader: Record \"Assembly Header\";\n begin\n AssemblyHeader.Get(Rec.\"Document Type\", Rec.\"Document No.\");\n- PAGE.Run(PAGE::\"Assembly Order\", AssemblyHeader);\n+ case AssemblyHeader.\"Document Type\" of\n+ AssemblyHeader.\"Document Type\"::Quote:\n+ PAGE.Run(PAGE::\"Assembly Quote\", AssemblyHeader);\n+ AssemblyHeader.\"Document Type\"::\"Blanket Order\":\n+ PAGE.Run(PAGE::\"Blanket Assembly Order\", AssemblyHeader);\n+ else\n+ PAGE.Run(PAGE::\"Assembly Order\", AssemblyHeader);\n+ end;\n end;\n }\n action(\"Reservation Entries\")\n", "error_message": null, "metrics": {"execution_time": 103.0, "llm_duration": null, "turn_count": 10, "prompt_tokens": 285000, "completion_tokens": 3100, "tool_usage": {"rg": 12, "glob": 2, "report_intent": 5, "view": 7, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-206977__cf-3", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\nindex 0877c357..c642ab93 100644\n--- a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\n+++ b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\n@@ -161,7 +161,14 @@ page 903 \"Assembly Lines\"\n AssemblyHeader: Record \"Assembly Header\";\n begin\n AssemblyHeader.Get(Rec.\"Document Type\", Rec.\"Document No.\");\n- PAGE.Run(PAGE::\"Assembly Order\", AssemblyHeader);\n+ case AssemblyHeader.\"Document Type\" of\n+ AssemblyHeader.\"Document Type\"::Quote:\n+ PAGE.Run(PAGE::\"Assembly Quote\", AssemblyHeader);\n+ AssemblyHeader.\"Document Type\"::\"Blanket Order\":\n+ PAGE.Run(PAGE::\"Blanket Assembly Order\", AssemblyHeader);\n+ else\n+ PAGE.Run(PAGE::\"Assembly Order\", AssemblyHeader);\n+ end;\n end;\n }\n action(\"Reservation Entries\")\n", "error_message": null, "metrics": {"execution_time": 109.0, "llm_duration": null, "turn_count": 12, "prompt_tokens": 262800, "completion_tokens": 3600, "tool_usage": {"glob": 1, "rg": 11, "view": 11, "apply_patch": 2, "report_intent": 1, "powershell": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-207177__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\nindex a84b0558..d10941a9 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n@@ -33,7 +33,6 @@ page 7504 \"Item Attribute Value List\"\n trigger OnValidate()\n var\n ItemAttributeValue: Record \"Item Attribute Value\";\n- ItemAttributeValueMapping: Record \"Item Attribute Value Mapping\";\n ItemAttribute: Record \"Item Attribute\";\n begin\n OnBeforeCheckAttributeName(Rec, RelatedRecordCode);\n@@ -42,19 +41,13 @@ page 7504 \"Item Attribute Value List\"\n DeleteItemAttributeValueMapping(ItemAttribute.ID);\n end;\n \n+ if Rec.Value = '' then\n+ exit;\n+\n if not Rec.FindAttributeValue(ItemAttributeValue) then\n Rec.InsertItemAttributeValue(ItemAttributeValue, Rec);\n \n- if ItemAttributeValue.Get(ItemAttributeValue.\"Attribute ID\", ItemAttributeValue.ID) then begin\n- ItemAttributeValueMapping.Reset();\n- ItemAttributeValueMapping.Init();\n- ItemAttributeValueMapping.\"Table ID\" := Database::Item;\n- ItemAttributeValueMapping.\"No.\" := RelatedRecordCode;\n- ItemAttributeValueMapping.\"Item Attribute ID\" := ItemAttributeValue.\"Attribute ID\";\n- ItemAttributeValueMapping.\"Item Attribute Value ID\" := ItemAttributeValue.ID;\n- OnBeforeItemAttributeValueMappingInsert(ItemAttributeValueMapping, ItemAttributeValue, Rec);\n- ItemAttributeValueMapping.Insert();\n- end;\n+ UpsertItemAttributeValueMapping(ItemAttributeValue);\n end;\n }\n field(Value; Rec.Value)\n@@ -68,21 +61,25 @@ page 7504 \"Item Attribute Value List\"\n trigger OnValidate()\n var\n ItemAttributeValue: Record \"Item Attribute Value\";\n- ItemAttributeValueMapping: Record \"Item Attribute Value Mapping\";\n ItemAttribute: Record \"Item Attribute\";\n begin\n+ if Rec.\"Attribute ID\" = 0 then\n+ exit;\n+\n+ if Rec.Value = '' then begin\n+ DeleteItemAttributeValueMapping(Rec.\"Attribute ID\");\n+ ItemAttribute.Get(Rec.\"Attribute ID\");\n+ if ItemAttribute.Type <> ItemAttribute.Type::Option then\n+ if Rec.FindAttributeValueFromRecord(ItemAttributeValue, xRec) then\n+ if not ItemAttributeValue.HasBeenUsed() then\n+ ItemAttributeValue.Delete();\n+ exit;\n+ end;\n+\n if not Rec.FindAttributeValue(ItemAttributeValue) then\n Rec.InsertItemAttributeValue(ItemAttributeValue, Rec);\n \n- ItemAttributeValueMapping.SetRange(\"Table ID\", Database::Item);\n- ItemAttributeValueMapping.SetRange(\"No.\", RelatedRecordCode);\n- ItemAttributeValueMapping.SetRange(\"Item Attribute ID\", ItemAttributeValue.\"Attribute ID\");\n- if ItemAttributeValueMapping.FindFirst() then begin\n- ItemAttributeValueMapping.\"Item Attribute Value ID\" := ItemAttributeValue.ID;\n- OnBeforeItemAttributeValueMappingModify(ItemAttributeValueMapping, ItemAttributeValue, RelatedRecordCode);\n- ItemAttributeValueMapping.Modify();\n- OnAfterItemAttributeValueMappingModify(ItemAttributeValueMapping, Rec);\n- end;\n+ UpsertItemAttributeValueMapping(ItemAttributeValue);\n \n ItemAttribute.Get(Rec.\"Attribute ID\");\n if ItemAttribute.Type <> ItemAttribute.Type::Option then\n@@ -154,6 +151,30 @@ page 7504 \"Item Attribute Value List\"\n ItemAttribute.RemoveUnusedArbitraryValues();\n end;\n \n+ local procedure UpsertItemAttributeValueMapping(var ItemAttributeValue: Record \"Item Attribute Value\")\n+ var\n+ ItemAttributeValueMapping: Record \"Item Attribute Value Mapping\";\n+ begin\n+ ItemAttributeValueMapping.SetRange(\"Table ID\", Database::Item);\n+ ItemAttributeValueMapping.SetRange(\"No.\", RelatedRecordCode);\n+ ItemAttributeValueMapping.SetRange(\"Item Attribute ID\", ItemAttributeValue.\"Attribute ID\");\n+ if ItemAttributeValueMapping.FindFirst() then begin\n+ ItemAttributeValueMapping.\"Item Attribute Value ID\" := ItemAttributeValue.ID;\n+ OnBeforeItemAttributeValueMappingModify(ItemAttributeValueMapping, ItemAttributeValue, RelatedRecordCode);\n+ ItemAttributeValueMapping.Modify();\n+ OnAfterItemAttributeValueMappingModify(ItemAttributeValueMapping, Rec);\n+ exit;\n+ end;\n+\n+ ItemAttributeValueMapping.Init();\n+ ItemAttributeValueMapping.\"Table ID\" := Database::Item;\n+ ItemAttributeValueMapping.\"No.\" := RelatedRecordCode;\n+ ItemAttributeValueMapping.\"Item Attribute ID\" := ItemAttributeValue.\"Attribute ID\";\n+ ItemAttributeValueMapping.\"Item Attribute Value ID\" := ItemAttributeValue.ID;\n+ OnBeforeItemAttributeValueMappingInsert(ItemAttributeValueMapping, ItemAttributeValue, Rec);\n+ ItemAttributeValueMapping.Insert();\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnAfterItemAttributeValueMappingDelete(AttributeToDeleteID: Integer; RelatedRecordCode: Code[20]; ItemAttributeValueSelection: Record \"Item Attribute Value Selection\")\n begin\n", "error_message": null, "metrics": {"execution_time": 146.0, "llm_duration": null, "turn_count": 12, "prompt_tokens": 507300, "completion_tokens": 6400, "tool_usage": {"glob": 1, "rg": 6, "powershell": 3, "report_intent": 5, "view": 14, "apply_patch": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-207177__cf-2", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\nindex a84b0558..278e5d05 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n@@ -33,7 +33,6 @@ page 7504 \"Item Attribute Value List\"\n trigger OnValidate()\n var\n ItemAttributeValue: Record \"Item Attribute Value\";\n- ItemAttributeValueMapping: Record \"Item Attribute Value Mapping\";\n ItemAttribute: Record \"Item Attribute\";\n begin\n OnBeforeCheckAttributeName(Rec, RelatedRecordCode);\n@@ -42,19 +41,11 @@ page 7504 \"Item Attribute Value List\"\n DeleteItemAttributeValueMapping(ItemAttribute.ID);\n end;\n \n- if not Rec.FindAttributeValue(ItemAttributeValue) then\n- Rec.InsertItemAttributeValue(ItemAttributeValue, Rec);\n-\n- if ItemAttributeValue.Get(ItemAttributeValue.\"Attribute ID\", ItemAttributeValue.ID) then begin\n- ItemAttributeValueMapping.Reset();\n- ItemAttributeValueMapping.Init();\n- ItemAttributeValueMapping.\"Table ID\" := Database::Item;\n- ItemAttributeValueMapping.\"No.\" := RelatedRecordCode;\n- ItemAttributeValueMapping.\"Item Attribute ID\" := ItemAttributeValue.\"Attribute ID\";\n- ItemAttributeValueMapping.\"Item Attribute Value ID\" := ItemAttributeValue.ID;\n- OnBeforeItemAttributeValueMappingInsert(ItemAttributeValueMapping, ItemAttributeValue, Rec);\n- ItemAttributeValueMapping.Insert();\n- end;\n+ if Rec.Value = '' then\n+ exit;\n+\n+ FindOrCreateItemAttributeValue(ItemAttributeValue);\n+ UpsertItemAttributeValueMapping(ItemAttributeValue);\n end;\n }\n field(Value; Rec.Value)\n@@ -68,22 +59,16 @@ page 7504 \"Item Attribute Value List\"\n trigger OnValidate()\n var\n ItemAttributeValue: Record \"Item Attribute Value\";\n- ItemAttributeValueMapping: Record \"Item Attribute Value Mapping\";\n ItemAttribute: Record \"Item Attribute\";\n begin\n- if not Rec.FindAttributeValue(ItemAttributeValue) then\n- Rec.InsertItemAttributeValue(ItemAttributeValue, Rec);\n-\n- ItemAttributeValueMapping.SetRange(\"Table ID\", Database::Item);\n- ItemAttributeValueMapping.SetRange(\"No.\", RelatedRecordCode);\n- ItemAttributeValueMapping.SetRange(\"Item Attribute ID\", ItemAttributeValue.\"Attribute ID\");\n- if ItemAttributeValueMapping.FindFirst() then begin\n- ItemAttributeValueMapping.\"Item Attribute Value ID\" := ItemAttributeValue.ID;\n- OnBeforeItemAttributeValueMappingModify(ItemAttributeValueMapping, ItemAttributeValue, RelatedRecordCode);\n- ItemAttributeValueMapping.Modify();\n- OnAfterItemAttributeValueMappingModify(ItemAttributeValueMapping, Rec);\n+ if Rec.Value = '' then begin\n+ DeleteItemAttributeValueMapping(Rec.\"Attribute ID\");\n+ exit;\n end;\n \n+ FindOrCreateItemAttributeValue(ItemAttributeValue);\n+ UpsertItemAttributeValueMapping(ItemAttributeValue);\n+\n ItemAttribute.Get(Rec.\"Attribute ID\");\n if ItemAttribute.Type <> ItemAttribute.Type::Option then\n if Rec.FindAttributeValueFromRecord(ItemAttributeValue, xRec) then\n@@ -137,11 +122,47 @@ page 7504 \"Item Attribute Value List\"\n Rec.PopulateItemAttributeValueSelection(TempItemAttributeValue, Database::Item, ItemNo);\n end;\n \n+ local procedure FindOrCreateItemAttributeValue(var ItemAttributeValue: Record \"Item Attribute Value\")\n+ begin\n+ if not Rec.FindAttributeValue(ItemAttributeValue) then\n+ Rec.InsertItemAttributeValue(ItemAttributeValue, Rec);\n+ end;\n+\n+ local procedure UpsertItemAttributeValueMapping(ItemAttributeValue: Record \"Item Attribute Value\")\n+ var\n+ ItemAttributeValueMapping: Record \"Item Attribute Value Mapping\";\n+ begin\n+ if not ItemAttributeValue.Get(ItemAttributeValue.\"Attribute ID\", ItemAttributeValue.ID) then\n+ exit;\n+\n+ ItemAttributeValueMapping.SetRange(\"Table ID\", Database::Item);\n+ ItemAttributeValueMapping.SetRange(\"No.\", RelatedRecordCode);\n+ ItemAttributeValueMapping.SetRange(\"Item Attribute ID\", ItemAttributeValue.\"Attribute ID\");\n+ if ItemAttributeValueMapping.FindFirst() then begin\n+ ItemAttributeValueMapping.\"Item Attribute Value ID\" := ItemAttributeValue.ID;\n+ OnBeforeItemAttributeValueMappingModify(ItemAttributeValueMapping, ItemAttributeValue, RelatedRecordCode);\n+ ItemAttributeValueMapping.Modify();\n+ OnAfterItemAttributeValueMappingModify(ItemAttributeValueMapping, Rec);\n+ exit;\n+ end;\n+\n+ ItemAttributeValueMapping.Init();\n+ ItemAttributeValueMapping.\"Table ID\" := Database::Item;\n+ ItemAttributeValueMapping.\"No.\" := RelatedRecordCode;\n+ ItemAttributeValueMapping.\"Item Attribute ID\" := ItemAttributeValue.\"Attribute ID\";\n+ ItemAttributeValueMapping.\"Item Attribute Value ID\" := ItemAttributeValue.ID;\n+ OnBeforeItemAttributeValueMappingInsert(ItemAttributeValueMapping, ItemAttributeValue, Rec);\n+ ItemAttributeValueMapping.Insert();\n+ end;\n+\n local procedure DeleteItemAttributeValueMapping(AttributeToDeleteID: Integer)\n var\n ItemAttributeValueMapping: Record \"Item Attribute Value Mapping\";\n ItemAttribute: Record \"Item Attribute\";\n begin\n+ if AttributeToDeleteID = 0 then\n+ exit;\n+\n ItemAttributeValueMapping.SetRange(\"Table ID\", Database::Item);\n ItemAttributeValueMapping.SetRange(\"No.\", RelatedRecordCode);\n ItemAttributeValueMapping.SetRange(\"Item Attribute ID\", AttributeToDeleteID);\n", "error_message": null, "metrics": {"execution_time": 190.0, "llm_duration": null, "turn_count": 16, "prompt_tokens": 826900, "completion_tokens": 7900, "tool_usage": {"rg": 8, "glob": 3, "report_intent": 3, "view": 18, "apply_patch": 3, "powershell": 3}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-207177__cf-3", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\nindex a84b0558..6899c827 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n@@ -42,6 +42,9 @@ page 7504 \"Item Attribute Value List\"\n DeleteItemAttributeValueMapping(ItemAttribute.ID);\n end;\n \n+ if Rec.Value = '' then\n+ exit;\n+\n if not Rec.FindAttributeValue(ItemAttributeValue) then\n Rec.InsertItemAttributeValue(ItemAttributeValue, Rec);\n \n@@ -71,6 +74,16 @@ page 7504 \"Item Attribute Value List\"\n ItemAttributeValueMapping: Record \"Item Attribute Value Mapping\";\n ItemAttribute: Record \"Item Attribute\";\n begin\n+ ItemAttribute.Get(Rec.\"Attribute ID\");\n+ if Rec.Value = '' then begin\n+ DeleteItemAttributeValueMapping(Rec.\"Attribute ID\");\n+ if ItemAttribute.Type <> ItemAttribute.Type::Option then\n+ if Rec.FindAttributeValueFromRecord(ItemAttributeValue, xRec) then\n+ if not ItemAttributeValue.HasBeenUsed() then\n+ ItemAttributeValue.Delete();\n+ exit;\n+ end;\n+\n if not Rec.FindAttributeValue(ItemAttributeValue) then\n Rec.InsertItemAttributeValue(ItemAttributeValue, Rec);\n \n@@ -82,9 +95,17 @@ page 7504 \"Item Attribute Value List\"\n OnBeforeItemAttributeValueMappingModify(ItemAttributeValueMapping, ItemAttributeValue, RelatedRecordCode);\n ItemAttributeValueMapping.Modify();\n OnAfterItemAttributeValueMappingModify(ItemAttributeValueMapping, Rec);\n+ end else begin\n+ ItemAttributeValueMapping.Reset();\n+ ItemAttributeValueMapping.Init();\n+ ItemAttributeValueMapping.\"Table ID\" := Database::Item;\n+ ItemAttributeValueMapping.\"No.\" := RelatedRecordCode;\n+ ItemAttributeValueMapping.\"Item Attribute ID\" := ItemAttributeValue.\"Attribute ID\";\n+ ItemAttributeValueMapping.\"Item Attribute Value ID\" := ItemAttributeValue.ID;\n+ OnBeforeItemAttributeValueMappingInsert(ItemAttributeValueMapping, ItemAttributeValue, Rec);\n+ ItemAttributeValueMapping.Insert();\n end;\n \n- ItemAttribute.Get(Rec.\"Attribute ID\");\n if ItemAttribute.Type <> ItemAttribute.Type::Option then\n if Rec.FindAttributeValueFromRecord(ItemAttributeValue, xRec) then\n if not ItemAttributeValue.HasBeenUsed() then\n", "error_message": null, "metrics": {"execution_time": 156.0, "llm_duration": null, "turn_count": 13, "prompt_tokens": 471800, "completion_tokens": 5400, "tool_usage": {"glob": 2, "rg": 9, "report_intent": 4, "view": 13, "powershell": 2, "apply_patch": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-207236__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al b/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\nindex fbf39fce..0454784a 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\n@@ -7037,6 +7037,7 @@ table 36 \"Sales Header\"\n if DeferralHeadersExist() then\n exit;\n \n+ xRec := Rec;\n \"Posting Date\" := PostingDateReq;\n Validate(\"Currency Code\");\n \n@@ -11244,4 +11245,4 @@ table 36 \"Sales Header\"\n local procedure OnBeforeValidatePrepmtCrMemoNoSeries(var SalesHeader: Record \"Sales Header\"; var IsHandled: Boolean)\n begin\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": null, "metrics": {"execution_time": 105.0, "llm_duration": null, "turn_count": 9, "prompt_tokens": 255000, "completion_tokens": 3400, "tool_usage": {"rg": 13, "powershell": 2, "report_intent": 4, "view": 6, "apply_patch": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-207247__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\nindex bd370429..89862ab7 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n@@ -1538,9 +1538,7 @@ codeunit 99000813 \"Carry Out Action\"\n \n ActiveVersionCode := VersionManagement.GetBOMVersion(ProductionBOMHeader.\"No.\", WorkDate(), true);\n \n- ProductionBOMLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n- ProductionBOMLine.SetRange(Type, ProductionBOMLine.Type::Item);\n- ProductionBOMLine.SetRange(\"No.\", ProdOrderComponent.\"Item No.\");\n+ SetProdBOMLineFiltersFromProdOrderComp(ProductionBOMLine, ProdOrderComponent, ProductionBOMHeader.\"No.\", ActiveVersionCode);\n if ProductionBOMLine.FindSet() then\n repeat\n ProductionBOMCommentLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n@@ -1555,6 +1553,25 @@ codeunit 99000813 \"Carry Out Action\"\n until ProductionBOMLine.Next() = 0;\n end;\n \n+ local procedure SetProdBOMLineFiltersFromProdOrderComp(var ProductionBOMLine: Record \"Production BOM Line\"; ProdOrderComponent: Record \"Prod. Order Component\"; ProductionBOMNo: Code[20]; VersionCode: Code[20])\n+ begin\n+ ProductionBOMLine.SetRange(\"Production BOM No.\", ProductionBOMNo);\n+ ProductionBOMLine.SetRange(\"Version Code\", VersionCode);\n+ ProductionBOMLine.SetRange(Type, ProductionBOMLine.Type::Item);\n+ ProductionBOMLine.SetRange(\"No.\", ProdOrderComponent.\"Item No.\");\n+ ProductionBOMLine.SetRange(\"Variant Code\", ProdOrderComponent.\"Variant Code\");\n+ ProductionBOMLine.SetRange(\"Routing Link Code\", ProdOrderComponent.\"Routing Link Code\");\n+ ProductionBOMLine.SetRange(Position, ProdOrderComponent.Position);\n+ ProductionBOMLine.SetRange(\"Position 2\", ProdOrderComponent.\"Position 2\");\n+ ProductionBOMLine.SetRange(\"Position 3\", ProdOrderComponent.\"Position 3\");\n+ ProductionBOMLine.SetRange(Length, ProdOrderComponent.Length);\n+ ProductionBOMLine.SetRange(Width, ProdOrderComponent.Width);\n+ ProductionBOMLine.SetRange(Weight, ProdOrderComponent.Weight);\n+ ProductionBOMLine.SetRange(Depth, ProdOrderComponent.Depth);\n+ ProductionBOMLine.SetRange(\"Unit of Measure Code\", ProdOrderComponent.\"Unit of Measure Code\");\n+ ProductionBOMLine.SetRange(\"Calculation Formula\", ProdOrderComponent.\"Calculation Formula\");\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnAfterCarryOutToReqWksh(var RequisitionLine: Record \"Requisition Line\"; RequisitionLine2: Record \"Requisition Line\")\n begin\n", "error_message": null, "metrics": {"execution_time": 174.0, "llm_duration": null, "turn_count": 16, "prompt_tokens": 569900, "completion_tokens": 6300, "tool_usage": {"view": 18, "glob": 5, "rg": 13, "report_intent": 13, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-207247__cf-2", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\nindex bd370429..bb363895 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n@@ -1524,35 +1524,45 @@ codeunit 99000813 \"Carry Out Action\"\n local procedure CopyProdBOMComments(ProdOrderComponent: Record \"Prod. Order Component\")\n var\n ProductionBOMCommentLine: Record \"Production BOM Comment Line\";\n- ProductionBOMHeader: Record \"Production BOM Header\";\n ProdOrderLine: Record \"Prod. Order Line\";\n ProdOrderCompCmtLine: Record \"Prod. Order Comp. Cmt Line\";\n ProductionBOMLine: Record \"Production BOM Line\";\n- VersionManagement: Codeunit VersionManagement;\n- ActiveVersionCode: Code[20];\n begin\n ProdOrderLine.Get(ProdOrderComponent.Status, ProdOrderComponent.\"Prod. Order No.\", ProdOrderComponent.\"Prod. Order Line No.\");\n \n- if not ProductionBOMHeader.Get(ProdOrderLine.\"Production BOM No.\") then\n+ if not FindMatchingProdBOMLine(ProductionBOMLine, ProdOrderLine, ProdOrderComponent) then\n exit;\n \n- ActiveVersionCode := VersionManagement.GetBOMVersion(ProductionBOMHeader.\"No.\", WorkDate(), true);\n+ ProductionBOMCommentLine.SetRange(\"Production BOM No.\", ProductionBOMLine.\"Production BOM No.\");\n+ ProductionBOMCommentLine.SetRange(\"BOM Line No.\", ProductionBOMLine.\"Line No.\");\n+ ProductionBOMCommentLine.SetRange(\"Version Code\", ProductionBOMLine.\"Version Code\");\n+ if ProductionBOMCommentLine.FindSet() then\n+ repeat\n+ ProdOrderCompCmtLine.CopyFromProdBOMComponent(ProductionBOMCommentLine, ProdOrderComponent);\n+ if not ProdOrderCompCmtLine.Insert() then\n+ ProdOrderCompCmtLine.Modify();\n+ until ProductionBOMCommentLine.Next() = 0;\n+ end;\n \n- ProductionBOMLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n+ local procedure FindMatchingProdBOMLine(var ProductionBOMLine: Record \"Production BOM Line\"; ProdOrderLine: Record \"Prod. Order Line\"; ProdOrderComponent: Record \"Prod. Order Component\"): Boolean\n+ begin\n+ ProductionBOMLine.SetRange(\"Production BOM No.\", ProdOrderLine.\"Production BOM No.\");\n+ ProductionBOMLine.SetRange(\"Version Code\", ProdOrderLine.\"Production BOM Version Code\");\n ProductionBOMLine.SetRange(Type, ProductionBOMLine.Type::Item);\n ProductionBOMLine.SetRange(\"No.\", ProdOrderComponent.\"Item No.\");\n- if ProductionBOMLine.FindSet() then\n- repeat\n- ProductionBOMCommentLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n- ProductionBOMCommentLine.SetRange(\"BOM Line No.\", ProductionBOMLine.\"Line No.\");\n- ProductionBOMCommentLine.SetRange(\"Version Code\", ActiveVersionCode);\n- if ProductionBOMCommentLine.FindSet() then\n- repeat\n- ProdOrderCompCmtLine.CopyFromProdBOMComponent(ProductionBOMCommentLine, ProdOrderComponent);\n- if not ProdOrderCompCmtLine.Insert() then\n- ProdOrderCompCmtLine.Modify();\n- until ProductionBOMCommentLine.Next() = 0;\n- until ProductionBOMLine.Next() = 0;\n+ ProductionBOMLine.SetRange(\"Variant Code\", ProdOrderComponent.\"Variant Code\");\n+ ProductionBOMLine.SetRange(\"Routing Link Code\", ProdOrderComponent.\"Routing Link Code\");\n+ ProductionBOMLine.SetRange(Position, ProdOrderComponent.Position);\n+ ProductionBOMLine.SetRange(\"Position 2\", ProdOrderComponent.\"Position 2\");\n+ ProductionBOMLine.SetRange(\"Position 3\", ProdOrderComponent.\"Position 3\");\n+ ProductionBOMLine.SetRange(Length, ProdOrderComponent.Length);\n+ ProductionBOMLine.SetRange(Width, ProdOrderComponent.Width);\n+ ProductionBOMLine.SetRange(Weight, ProdOrderComponent.Weight);\n+ ProductionBOMLine.SetRange(Depth, ProdOrderComponent.Depth);\n+ ProductionBOMLine.SetRange(\"Unit of Measure Code\", ProdOrderComponent.\"Unit of Measure Code\");\n+ ProductionBOMLine.SetRange(\"Calculation Formula\", ProdOrderComponent.\"Calculation Formula\");\n+\n+ exit(ProductionBOMLine.FindFirst());\n end;\n \n [IntegrationEvent(false, false)]\n", "error_message": null, "metrics": {"execution_time": 202.0, "llm_duration": null, "turn_count": 15, "prompt_tokens": 665400, "completion_tokens": 8500, "tool_usage": {"glob": 1, "rg": 21, "view": 13, "apply_patch": 1, "report_intent": 2, "powershell": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-207247__cf-3", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\nindex bd370429..dac14779 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n@@ -1524,28 +1524,35 @@ codeunit 99000813 \"Carry Out Action\"\n local procedure CopyProdBOMComments(ProdOrderComponent: Record \"Prod. Order Component\")\n var\n ProductionBOMCommentLine: Record \"Production BOM Comment Line\";\n- ProductionBOMHeader: Record \"Production BOM Header\";\n ProdOrderLine: Record \"Prod. Order Line\";\n ProdOrderCompCmtLine: Record \"Prod. Order Comp. Cmt Line\";\n ProductionBOMLine: Record \"Production BOM Line\";\n- VersionManagement: Codeunit VersionManagement;\n- ActiveVersionCode: Code[20];\n begin\n ProdOrderLine.Get(ProdOrderComponent.Status, ProdOrderComponent.\"Prod. Order No.\", ProdOrderComponent.\"Prod. Order Line No.\");\n \n- if not ProductionBOMHeader.Get(ProdOrderLine.\"Production BOM No.\") then\n+ if ProdOrderLine.\"Production BOM No.\" = '' then\n exit;\n \n- ActiveVersionCode := VersionManagement.GetBOMVersion(ProductionBOMHeader.\"No.\", WorkDate(), true);\n-\n- ProductionBOMLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n+ ProductionBOMLine.SetRange(\"Production BOM No.\", ProdOrderLine.\"Production BOM No.\");\n+ ProductionBOMLine.SetRange(\"Version Code\", ProdOrderLine.\"Production BOM Version Code\");\n ProductionBOMLine.SetRange(Type, ProductionBOMLine.Type::Item);\n ProductionBOMLine.SetRange(\"No.\", ProdOrderComponent.\"Item No.\");\n+ ProductionBOMLine.SetRange(\"Variant Code\", ProdOrderComponent.\"Variant Code\");\n+ ProductionBOMLine.SetRange(\"Routing Link Code\", ProdOrderComponent.\"Routing Link Code\");\n+ ProductionBOMLine.SetRange(Position, ProdOrderComponent.Position);\n+ ProductionBOMLine.SetRange(\"Position 2\", ProdOrderComponent.\"Position 2\");\n+ ProductionBOMLine.SetRange(\"Position 3\", ProdOrderComponent.\"Position 3\");\n+ ProductionBOMLine.SetRange(Length, ProdOrderComponent.Length);\n+ ProductionBOMLine.SetRange(Width, ProdOrderComponent.Width);\n+ ProductionBOMLine.SetRange(Weight, ProdOrderComponent.Weight);\n+ ProductionBOMLine.SetRange(Depth, ProdOrderComponent.Depth);\n+ ProductionBOMLine.SetRange(\"Unit of Measure Code\", ProdOrderComponent.\"Unit of Measure Code\");\n+ ProductionBOMLine.SetRange(\"Calculation Formula\", ProdOrderComponent.\"Calculation Formula\");\n if ProductionBOMLine.FindSet() then\n repeat\n- ProductionBOMCommentLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n+ ProductionBOMCommentLine.SetRange(\"Production BOM No.\", ProdOrderLine.\"Production BOM No.\");\n ProductionBOMCommentLine.SetRange(\"BOM Line No.\", ProductionBOMLine.\"Line No.\");\n- ProductionBOMCommentLine.SetRange(\"Version Code\", ActiveVersionCode);\n+ ProductionBOMCommentLine.SetRange(\"Version Code\", ProductionBOMLine.\"Version Code\");\n if ProductionBOMCommentLine.FindSet() then\n repeat\n ProdOrderCompCmtLine.CopyFromProdBOMComponent(ProductionBOMCommentLine, ProdOrderComponent);\n", "error_message": null, "metrics": {"execution_time": 183.0, "llm_duration": null, "turn_count": 15, "prompt_tokens": 796200, "completion_tokens": 6900, "tool_usage": {"glob": 5, "rg": 13, "view": 25, "report_intent": 3, "powershell": 2, "apply_patch": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-207878__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLine.Table.al b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLine.Table.al\nindex 62ba45ed..c84222b4 100644\n--- a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLine.Table.al\n@@ -1489,12 +1489,9 @@ table 901 \"Assembly Line\"\n OldAssemblyLine: Record \"Assembly Line\";\n CompanyInfo: Record \"Company Information\";\n AvailableToPromise: Codeunit \"Available to Promise\";\n- LookaheadDateFormula: DateFormula;\n- AvailabilityDate: Date;\n ReservedReceipt: Decimal;\n ReservedRequirement: Decimal;\n QtyAvailable: Decimal;\n- PeriodType: Enum \"Analysis Period Type\";\n begin\n OnBeforeCalcAvailQuantities(Rec);\n SetItemFilter(Item);\n@@ -1507,18 +1504,6 @@ table 901 \"Assembly Line\"\n GrossRequirement -= OldAssemblyLine.\"Remaining Quantity (Base)\";\n \n CompanyInfo.Get();\n- LookaheadDateFormula := CompanyInfo.\"Check-Avail. Period Calc.\";\n- if Format(LookaheadDateFormula) <> '' then begin\n- AvailabilityDate := Item.GetRangeMax(\"Date Filter\");\n- PeriodType := CompanyInfo.\"Check-Avail. Time Bucket\";\n-\n- GrossRequirement :=\n- GrossRequirement +\n- AvailableToPromise.CalculateForward(\n- Item, PeriodType,\n- AvailabilityDate + 1,\n- AvailableToPromise.GetPeriodEndingDate(CalcDate(LookaheadDateFormula, AvailabilityDate), PeriodType));\n- end;\n \n EarliestDate :=\n AvailableToPromise.CalcEarliestAvailabilityDate(\ndiff --git a/App/Layers/W1/BaseApp/Inventory/Availability/ItemCheckAvail.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Availability/ItemCheckAvail.Codeunit.al\nindex 26f5dfa5..60b339be 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Availability/ItemCheckAvail.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Availability/ItemCheckAvail.Codeunit.al\n@@ -40,6 +40,7 @@ codeunit 311 \"Item-Check Avail.\"\n QtyPerUnitOfMeasure: Decimal;\n InitialQtyAvailable: Decimal;\n UseOrderPromise: Boolean;\n+ UseAvailabilityDateOnly: Boolean;\n GrossReq: Decimal;\n ReservedReq: Decimal;\n SchedRcpt: Decimal;\n@@ -331,6 +332,15 @@ codeunit 311 \"Item-Check Avail.\"\n if IsHandled then\n exit;\n \n+ if UseAvailabilityDateOnly then begin\n+ InventoryQty := ConvertQty(AvailableToPromise.CalcAvailableInventory(Item) - OldItemNetResChange);\n+ GrossReq := ConvertQty(AvailableToPromise.CalcGrossRequirement(Item));\n+ ReservedReq := ConvertQty(AvailableToPromise.CalcReservedRequirement(Item) + OldItemNetResChange);\n+ SchedRcpt := ConvertQty(AvailableToPromise.CalcScheduledReceipt(Item));\n+ ReservedRcpt := ConvertQty(AvailableToPromise.CalcReservedReceipt(Item));\n+ exit;\n+ end;\n+\n AvailableToPromise.CalcQtyAvailabletoPromise(\n Item, GrossReq, SchedRcpt, Item.GetRangeMax(\"Date Filter\"),\n CompanyInfo.\"Check-Avail. Time Bucket\", CompanyInfo.\"Check-Avail. Period Calc.\");\n@@ -507,12 +517,15 @@ codeunit 311 \"Item-Check Avail.\"\n end;\n \n UseOrderPromise := true;\n+ UseAvailabilityDateOnly := true;\n IsHandled := false;\n OnAsmOrderLineShowWarningOnBeforeShowWarning(AssemblyLine, ContextInfo, OldAssemblyLine, OldItemNetChange, IsWarning, IsHandled);\n- if IsHandled then\n+ if IsHandled then begin\n+ UseAvailabilityDateOnly := false;\n exit(IsWarning);\n+ end;\n \n- exit(\n+ IsWarning :=\n ShowWarning(\n AssemblyLine.\"No.\",\n AssemblyLine.\"Variant Code\",\n@@ -522,7 +535,9 @@ codeunit 311 \"Item-Check Avail.\"\n -AssemblyLine.\"Remaining Quantity\",\n OldItemNetChange,\n AssemblyLine.\"Due Date\",\n- OldAssemblyLine.\"Due Date\"));\n+ OldAssemblyLine.\"Due Date\");\n+ UseAvailabilityDateOnly := false;\n+ exit(IsWarning);\n end;\n \n procedure AsmOrderCalculate(AssemblyHeader: Record \"Assembly Header\"; var InventoryQty2: Decimal; var GrossReq2: Decimal; var ReservedReq2: Decimal; var SchedRcpt2: Decimal; var ReservedRcpt2: Decimal)\n", "error_message": null, "metrics": {"execution_time": 398.0, "llm_duration": null, "turn_count": 35, "prompt_tokens": 2700000, "completion_tokens": 17100, "tool_usage": {"rg": 33, "glob": 2, "report_intent": 2, "view": 48, "apply_patch": 6, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-208649__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al b/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\nindex e3280001..72285a8f 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\n@@ -182,28 +182,10 @@ table 99000829 \"Planning Component\"\n Editable = false;\n \n trigger OnValidate()\n- var\n- ItemUnitOfMeasure: Record \"Item Unit of Measure\";\n- UnroundedExpectedQuantity: Decimal;\n- ItemPrecRoundedExpectedQuantity: Decimal;\n- BaseUOMPrecRoundedExpectedQuantity: Decimal;\n begin\n- UnroundedExpectedQuantity := \"Expected Quantity\";\n-\n if Item.Get(\"Item No.\") and (\"Ref. Order Type\" <> \"Ref. Order Type\"::Assembly) then\n if Item.\"Rounding Precision\" > 0 then\n \"Expected Quantity\" := UOMMgt.RoundToItemRndPrecision(\"Expected Quantity\", Item.\"Rounding Precision\");\n-\n- ItemPrecRoundedExpectedQuantity := \"Expected Quantity\";\n- BaseUOMPrecRoundedExpectedQuantity := UOMMgt.RoundQty(\"Expected Quantity\", \"Qty. Rounding Precision\");\n-\n- if (\"Qty. Rounding Precision\" > 0) and (BaseUOMPrecRoundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity) then\n- if UnroundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity then\n- Error(WrongPrecisionItemAndUOMExpectedQtyErr, Item.FieldCaption(\"Rounding Precision\"), Item.TableCaption(), ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"))\n- else\n- Error(WrongPrecOnUOMExpectedQtyErr, ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"));\n-\n- \"Expected Quantity\" := BaseUOMPrecRoundedExpectedQuantity;\n \"Expected Quantity (Base)\" := CalcBaseQty(\"Expected Quantity\", FieldCaption(\"Expected Quantity\"), FieldCaption(\"Expected Quantity (Base)\"));\n \n \"Net Quantity (Base)\" := \"Expected Quantity (Base)\" - \"Original Expected Qty. (Base)\";\n@@ -654,8 +636,6 @@ table 99000829 \"Planning Component\"\n CannotRenameErr: Label 'You cannot rename a %1.', Comment = '%1 - Planning Component';\n CannotChangeErr: Label 'You cannot change %1 when %2 is %3.', Comment = '%1 - FieldCaption(\"Unit Cost\"), %2 - Item.FieldCaption(\"Costing Method\"), %3 - Item.\"Costing Method\"';\n LocationCodeMustBeBlankErr: Label 'The Location Code field must be blank for items of type Non-Inventory.';\n- WrongPrecisionItemAndUOMExpectedQtyErr: Label 'The value in the %1 field on the %2 page, and %3 field on the %4 page, are causing the rounding precision for the %5 field to be incorrect.', Comment = '%1 = field caption, %2 = table caption, %3 field caption, %4 = table caption, %5 = field caption';\n- WrongPrecOnUOMExpectedQtyErr: Label 'The value in the %1 field on the %2 page is causing the rounding precision for the %3 field to be incorrect.', Comment = '%1 = field caption, %2 = table caption, %3 field caption';\n \n protected var\n ReqLine: Record \"Requisition Line\";\n@@ -988,7 +968,7 @@ table 99000829 \"Planning Component\"\n local procedure CalcBaseQty(Qty: Decimal; FromFieldName: Text; ToFieldName: Text): Decimal\n begin\n exit(UOMMgt.CalcBaseQty(\n- \"Item No.\", \"Variant Code\", \"Unit of Measure Code\", Qty, \"Qty. per Unit of Measure\", \"Qty. Rounding Precision (Base)\", FieldCaption(\"Qty. Rounding Precision\"), FromFieldName, ToFieldName));\n+ \"Item No.\", \"Variant Code\", \"Unit of Measure Code\", Qty, \"Qty. per Unit of Measure\", 0, '', FromFieldName, ToFieldName));\n end;\n \n procedure CreateDimFromDefaultDim()\ndiff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\nindex 36930a9e..058f96b4 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n@@ -263,7 +263,6 @@ codeunit 99000773 \"Calculate Prod. Order\"\n Item2: Record Item;\n ComponentSKU: Record \"Stockkeeping Unit\";\n IsHandled: Boolean;\n- QtyRoundPrecision: Decimal;\n begin\n ProdOrderComp.Reset();\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\", \"Item No.\");\n@@ -295,12 +294,7 @@ codeunit 99000773 \"Calculate Prod. Order\"\n ProdOrderComp.\"Bin Code\" := GetDefaultBin();\n ProdOrderComp.Description := ProdBOMLine[Level].Description;\n ProdOrderComp.Validate(\"Unit of Measure Code\", ProdBOMLine[Level].\"Unit of Measure Code\");\n- if (ProdOrderComp.\"Item No.\" <> '') and Item2.Get(ProdOrderComp.\"Item No.\") then\n- QtyRoundPrecision := UOMMgt.GetQtyRoundingPrecision(Item2, ProdBOMLine[Level].\"Unit of Measure Code\");\n- if QtyRoundPrecision <> 0 then\n- ProdOrderComp.\"Quantity per\" := Round(ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM, QtyRoundPrecision)\n- else\n- ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n+ ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n ProdOrderComp.Length := ProdBOMLine[Level].Length;\n ProdOrderComp.Width := ProdBOMLine[Level].Width;\n ProdOrderComp.Weight := ProdBOMLine[Level].Weight;\ndiff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al b/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\nindex c532e014..1abfbb9c 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\n@@ -249,10 +249,6 @@ table 5407 \"Prod. Order Component\"\n \n trigger OnValidate()\n var\n- ItemUnitOfMeasure: Record \"Item Unit of Measure\";\n- UnroundedExpectedQuantity: Decimal;\n- ItemPrecRoundedExpectedQuantity: Decimal;\n- BaseUOMPrecRoundedExpectedQuantity: Decimal;\n IsHandled: Boolean;\n begin\n IsHandled := false;\n@@ -260,27 +256,11 @@ table 5407 \"Prod. Order Component\"\n if IsHandled then\n exit;\n \n- UnroundedExpectedQuantity := \"Expected Quantity\";\n if Item.Get(\"Item No.\") then\n if Item.\"Rounding Precision\" > 0 then\n RoundExpectedQuantity();\n-\n- ItemPrecRoundedExpectedQuantity := \"Expected Quantity\";\n-\n- BaseUOMPrecRoundedExpectedQuantity := UOMMgt.RoundQty(\"Expected Quantity\", \"Qty. Rounding Precision\");\n-\n- if (\"Qty. Rounding Precision\" > 0) and (BaseUOMPrecRoundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity) then\n- if UnroundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity then\n- Error(WrongPrecisionItemAndUOMExpectedQtyErr, Item.FieldCaption(\"Rounding Precision\"), Item.TableCaption(), ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"))\n- else\n- Error(WrongPrecOnUOMExpectedQtyErr, ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"));\n-\n- \"Expected Quantity\" := BaseUOMPrecRoundedExpectedQuantity;\n \"Expected Qty. (Base)\" := CalcBaseQty(\"Expected Quantity\", FieldCaption(\"Expected Quantity\"), FieldCaption(\"Expected Qty. (Base)\"));\n \n- // Recalculate 'Expected Quantity' based on the base value to make sure values are consistent\n- \"Expected Quantity\" := UOMMgt.RoundQty(\"Expected Qty. (Base)\" / \"Qty. per Unit of Measure\", \"Qty. Rounding Precision\");\n-\n if (Status in [Status::Released, Status::Finished]) and\n (xRec.\"Item No.\" <> '') and\n (\"Line No.\" <> 0)\n@@ -289,7 +269,7 @@ table 5407 \"Prod. Order Component\"\n \n OnValidateExpectedQuantityOnAfterCalcActConsumptionQty(Rec, xRec);\n \"Remaining Quantity\" := \"Expected Quantity\" - \"Act. Consumption (Qty)\" / \"Qty. per Unit of Measure\";\n- \"Remaining Quantity\" := UOMMgt.RoundQty(\"Remaining Quantity\", \"Qty. Rounding Precision\");\n+ \"Remaining Quantity\" := UOMMgt.RoundQty(\"Remaining Quantity\");\n \n if (\"Remaining Quantity\" * \"Expected Quantity\") <= 0 then\n \"Remaining Quantity\" := 0;\n@@ -562,7 +542,7 @@ table 5407 \"Prod. Order Component\"\n exit;\n \n CalculateQuantity(Quantity);\n- Quantity := UOMMgt.RoundAndValidateQty(Quantity, \"Qty. Rounding Precision\", FieldCaption(Quantity));\n+ Quantity := UOMMgt.RoundQty(Quantity);\n \n OnValidateCalculationFormulaOnAfterSetQuantity(Rec);\n \"Quantity (Base)\" := CalcBaseQty(Quantity, FieldCaption(Quantity), FieldCaption(\"Quantity (Base)\"));\n@@ -1028,8 +1008,6 @@ table 5407 \"Prod. Order Component\"\n Text99000003: Label 'You cannot change %1 when %2 is %3.';\n #pragma warning restore AA0470\n #pragma warning restore AA0074\n- WrongPrecisionItemAndUOMExpectedQtyErr: Label 'The value in the %1 field on the %2 page, and %3 field on the %4 page, are causing the rounding precision for the %5 field to be incorrect.', Comment = '%1 = field caption, %2 = table caption, %3 field caption, %4 = table caption, %5 = field caption';\n- WrongPrecOnUOMExpectedQtyErr: Label 'The value in the %1 field on the %2 page is causing the rounding precision for the %3 field to be incorrect.', Comment = '%1 = field caption, %2 = table caption, %3 field caption';\n Item: Record Item;\n ReservEntry: Record \"Reservation Entry\";\n GLSetup: Record \"General Ledger Setup\";\n@@ -2002,7 +1980,7 @@ table 5407 \"Prod. Order Component\"\n exit;\n \n exit(UOMMgt.CalcBaseQty(\n- \"Item No.\", \"Variant Code\", \"Unit of Measure Code\", Qty, \"Qty. per Unit of Measure\", \"Qty. Rounding Precision (Base)\", FieldCaption(\"Qty. Rounding Precision\"), FromFieldName, ToFieldName));\n+ \"Item No.\", \"Variant Code\", \"Unit of Measure Code\", Qty, \"Qty. per Unit of Measure\", 0, '', FromFieldName, ToFieldName));\n end;\n \n procedure CreateDimFromDefaultDim()\n", "error_message": null, "metrics": {"execution_time": 441.0, "llm_duration": null, "turn_count": 37, "prompt_tokens": 2200000, "completion_tokens": 20100, "tool_usage": {"glob": 5, "rg": 43, "report_intent": 3, "view": 43, "apply_patch": 3, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-208649__cf-2", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al b/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\nindex e3280001..956fe135 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\n@@ -187,6 +187,7 @@ table 99000829 \"Planning Component\"\n UnroundedExpectedQuantity: Decimal;\n ItemPrecRoundedExpectedQuantity: Decimal;\n BaseUOMPrecRoundedExpectedQuantity: Decimal;\n+ QtyRoundingPrecision: Decimal;\n begin\n UnroundedExpectedQuantity := \"Expected Quantity\";\n \n@@ -195,9 +196,10 @@ table 99000829 \"Planning Component\"\n \"Expected Quantity\" := UOMMgt.RoundToItemRndPrecision(\"Expected Quantity\", Item.\"Rounding Precision\");\n \n ItemPrecRoundedExpectedQuantity := \"Expected Quantity\";\n- BaseUOMPrecRoundedExpectedQuantity := UOMMgt.RoundQty(\"Expected Quantity\", \"Qty. Rounding Precision\");\n+ QtyRoundingPrecision := GetEffectiveQtyRoundingPrecision();\n+ BaseUOMPrecRoundedExpectedQuantity := UOMMgt.RoundQty(\"Expected Quantity\", QtyRoundingPrecision);\n \n- if (\"Qty. Rounding Precision\" > 0) and (BaseUOMPrecRoundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity) then\n+ if (QtyRoundingPrecision > 0) and (BaseUOMPrecRoundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity) then\n if UnroundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity then\n Error(WrongPrecisionItemAndUOMExpectedQtyErr, Item.FieldCaption(\"Rounding Precision\"), Item.TableCaption(), ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"))\n else\n@@ -988,7 +990,23 @@ table 99000829 \"Planning Component\"\n local procedure CalcBaseQty(Qty: Decimal; FromFieldName: Text; ToFieldName: Text): Decimal\n begin\n exit(UOMMgt.CalcBaseQty(\n- \"Item No.\", \"Variant Code\", \"Unit of Measure Code\", Qty, \"Qty. per Unit of Measure\", \"Qty. Rounding Precision (Base)\", FieldCaption(\"Qty. Rounding Precision\"), FromFieldName, ToFieldName));\n+ \"Item No.\", \"Variant Code\", \"Unit of Measure Code\", Qty, \"Qty. per Unit of Measure\", GetEffectiveBaseQtyRoundingPrecision(), FieldCaption(\"Qty. Rounding Precision\"), FromFieldName, ToFieldName));\n+ end;\n+\n+ local procedure GetEffectiveQtyRoundingPrecision(): Decimal\n+ begin\n+ if \"Ref. Order Type\" = \"Ref. Order Type\"::\"Prod. Order\" then\n+ exit(0);\n+\n+ exit(\"Qty. Rounding Precision\");\n+ end;\n+\n+ local procedure GetEffectiveBaseQtyRoundingPrecision(): Decimal\n+ begin\n+ if \"Ref. Order Type\" = \"Ref. Order Type\"::\"Prod. Order\" then\n+ exit(0);\n+\n+ exit(\"Qty. Rounding Precision (Base)\");\n end;\n \n procedure CreateDimFromDefaultDim()\ndiff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\nindex 36930a9e..058f96b4 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n@@ -263,7 +263,6 @@ codeunit 99000773 \"Calculate Prod. Order\"\n Item2: Record Item;\n ComponentSKU: Record \"Stockkeeping Unit\";\n IsHandled: Boolean;\n- QtyRoundPrecision: Decimal;\n begin\n ProdOrderComp.Reset();\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\", \"Item No.\");\n@@ -295,12 +294,7 @@ codeunit 99000773 \"Calculate Prod. Order\"\n ProdOrderComp.\"Bin Code\" := GetDefaultBin();\n ProdOrderComp.Description := ProdBOMLine[Level].Description;\n ProdOrderComp.Validate(\"Unit of Measure Code\", ProdBOMLine[Level].\"Unit of Measure Code\");\n- if (ProdOrderComp.\"Item No.\" <> '') and Item2.Get(ProdOrderComp.\"Item No.\") then\n- QtyRoundPrecision := UOMMgt.GetQtyRoundingPrecision(Item2, ProdBOMLine[Level].\"Unit of Measure Code\");\n- if QtyRoundPrecision <> 0 then\n- ProdOrderComp.\"Quantity per\" := Round(ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM, QtyRoundPrecision)\n- else\n- ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n+ ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n ProdOrderComp.Length := ProdBOMLine[Level].Length;\n ProdOrderComp.Width := ProdBOMLine[Level].Width;\n ProdOrderComp.Weight := ProdBOMLine[Level].Weight;\ndiff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al b/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\nindex c532e014..46bafcfa 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\n@@ -254,6 +254,7 @@ table 5407 \"Prod. Order Component\"\n ItemPrecRoundedExpectedQuantity: Decimal;\n BaseUOMPrecRoundedExpectedQuantity: Decimal;\n IsHandled: Boolean;\n+ QtyRoundingPrecision: Decimal;\n begin\n IsHandled := false;\n OnBeforeValidateExpectedQuantity(Rec, xRec, IsHandled);\n@@ -266,10 +267,11 @@ table 5407 \"Prod. Order Component\"\n RoundExpectedQuantity();\n \n ItemPrecRoundedExpectedQuantity := \"Expected Quantity\";\n+ QtyRoundingPrecision := GetEffectiveQtyRoundingPrecision();\n \n- BaseUOMPrecRoundedExpectedQuantity := UOMMgt.RoundQty(\"Expected Quantity\", \"Qty. Rounding Precision\");\n+ BaseUOMPrecRoundedExpectedQuantity := UOMMgt.RoundQty(\"Expected Quantity\", QtyRoundingPrecision);\n \n- if (\"Qty. Rounding Precision\" > 0) and (BaseUOMPrecRoundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity) then\n+ if (QtyRoundingPrecision > 0) and (BaseUOMPrecRoundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity) then\n if UnroundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity then\n Error(WrongPrecisionItemAndUOMExpectedQtyErr, Item.FieldCaption(\"Rounding Precision\"), Item.TableCaption(), ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"))\n else\n@@ -279,7 +281,7 @@ table 5407 \"Prod. Order Component\"\n \"Expected Qty. (Base)\" := CalcBaseQty(\"Expected Quantity\", FieldCaption(\"Expected Quantity\"), FieldCaption(\"Expected Qty. (Base)\"));\n \n // Recalculate 'Expected Quantity' based on the base value to make sure values are consistent\n- \"Expected Quantity\" := UOMMgt.RoundQty(\"Expected Qty. (Base)\" / \"Qty. per Unit of Measure\", \"Qty. Rounding Precision\");\n+ \"Expected Quantity\" := UOMMgt.RoundQty(\"Expected Qty. (Base)\" / \"Qty. per Unit of Measure\", QtyRoundingPrecision);\n \n if (Status in [Status::Released, Status::Finished]) and\n (xRec.\"Item No.\" <> '') and\n@@ -289,7 +291,7 @@ table 5407 \"Prod. Order Component\"\n \n OnValidateExpectedQuantityOnAfterCalcActConsumptionQty(Rec, xRec);\n \"Remaining Quantity\" := \"Expected Quantity\" - \"Act. Consumption (Qty)\" / \"Qty. per Unit of Measure\";\n- \"Remaining Quantity\" := UOMMgt.RoundQty(\"Remaining Quantity\", \"Qty. Rounding Precision\");\n+ \"Remaining Quantity\" := UOMMgt.RoundQty(\"Remaining Quantity\", QtyRoundingPrecision);\n \n if (\"Remaining Quantity\" * \"Expected Quantity\") <= 0 then\n \"Remaining Quantity\" := 0;\n@@ -562,7 +564,7 @@ table 5407 \"Prod. Order Component\"\n exit;\n \n CalculateQuantity(Quantity);\n- Quantity := UOMMgt.RoundAndValidateQty(Quantity, \"Qty. Rounding Precision\", FieldCaption(Quantity));\n+ Quantity := UOMMgt.RoundAndValidateQty(Quantity, GetEffectiveQtyRoundingPrecision(), FieldCaption(Quantity));\n \n OnValidateCalculationFormulaOnAfterSetQuantity(Rec);\n \"Quantity (Base)\" := CalcBaseQty(Quantity, FieldCaption(Quantity), FieldCaption(\"Quantity (Base)\"));\n@@ -2002,7 +2004,17 @@ table 5407 \"Prod. Order Component\"\n exit;\n \n exit(UOMMgt.CalcBaseQty(\n- \"Item No.\", \"Variant Code\", \"Unit of Measure Code\", Qty, \"Qty. per Unit of Measure\", \"Qty. Rounding Precision (Base)\", FieldCaption(\"Qty. Rounding Precision\"), FromFieldName, ToFieldName));\n+ \"Item No.\", \"Variant Code\", \"Unit of Measure Code\", Qty, \"Qty. per Unit of Measure\", GetEffectiveBaseQtyRoundingPrecision(), FieldCaption(\"Qty. Rounding Precision\"), FromFieldName, ToFieldName));\n+ end;\n+\n+ local procedure GetEffectiveQtyRoundingPrecision(): Decimal\n+ begin\n+ exit(0);\n+ end;\n+\n+ local procedure GetEffectiveBaseQtyRoundingPrecision(): Decimal\n+ begin\n+ exit(0);\n end;\n \n procedure CreateDimFromDefaultDim()\n", "error_message": null, "metrics": {"execution_time": 359.0, "llm_duration": null, "turn_count": 33, "prompt_tokens": 1900000, "completion_tokens": 16500, "tool_usage": {"rg": 33, "glob": 1, "report_intent": 4, "view": 43, "apply_patch": 2, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-208748__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\nindex 7c1943c5..1ef0b767 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\n@@ -1,7 +1,8 @@\n-\ufeffnamespace Microsoft.Sales.Document;\n+namespace Microsoft.Sales.Document;\n \n using Microsoft.Assembly.Document;\n using Microsoft.Finance.ReceivablesPayables;\n+using Microsoft.Foundation.ExtendedText;\n using Microsoft.Foundation.UOM;\n using Microsoft.Inventory.Availability;\n using Microsoft.Inventory.Tracking;\n@@ -121,6 +122,7 @@ codeunit 87 \"Blanket Sales Order to Order\"\n Customer: Record Customer;\n SalesLine: Record \"Sales Line\";\n ATOLink: Record \"Assemble-to-Order Link\";\n+ TransferOldExtLines: Codeunit \"Transfer Old Ext. Text Lines\";\n PrepmtMgt: Codeunit \"Prepayment Mgt.\";\n SalesLineReserve: Codeunit \"Sales Line-Reserve\";\n QuantityOnOrders: Decimal;\n@@ -130,6 +132,7 @@ codeunit 87 \"Blanket Sales Order to Order\"\n if not SalesLineBlanketOrder.FindSet() then\n exit;\n \n+ TransferOldExtLines.ClearLineNumbers();\n repeat\n OnBeforeHandlingBlanketOrderSalesLine(SalesLineBlanketOrder);\n ProcessLine := (SalesLineBlanketOrder.Type = SalesLineBlanketOrder.Type::\" \") or (SalesLineBlanketOrder.\"Qty. to Ship\" <> 0);\n@@ -164,6 +167,9 @@ codeunit 87 \"Blanket Sales Order to Order\"\n SalesLineOrder.\"Document No.\" := SalesHeaderOrder.\"No.\";\n NextLineNo += 10000;\n SalesLineOrder.\"Line No.\" := NextLineNo;\n+ SalesLineOrder.\"Attached to Line No.\" :=\n+ TransferOldExtLines.TransferExtendedText(\n+ SalesLineBlanketOrder.\"Line No.\", SalesLineOrder.\"Line No.\", SalesLineBlanketOrder.\"Attached to Line No.\");\n SalesLineOrder.\"Blanket Order No.\" := SalesHeaderBlanketOrder.\"No.\";\n SalesLineOrder.\"Blanket Order Line No.\" := SalesLineBlanketOrder.\"Line No.\";\n if (SalesLineOrder.\"No.\" <> '') and (SalesLineOrder.Type <> SalesLineOrder.Type::\" \") then begin\n", "error_message": null, "metrics": {"execution_time": 177.0, "llm_duration": null, "turn_count": 18, "prompt_tokens": 853200, "completion_tokens": 6700, "tool_usage": {"rg": 16, "glob": 2, "report_intent": 3, "view": 23, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-208748__cf-2", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\nindex 7c1943c5..a5723eb6 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\n@@ -123,6 +123,7 @@ codeunit 87 \"Blanket Sales Order to Order\"\n ATOLink: Record \"Assemble-to-Order Link\";\n PrepmtMgt: Codeunit \"Prepayment Mgt.\";\n SalesLineReserve: Codeunit \"Sales Line-Reserve\";\n+ BlanketToOrderLineNoMap: Dictionary of [Integer, Integer];\n QuantityOnOrders: Decimal;\n IsHandled: Boolean;\n ProcessLine: Boolean;\n@@ -164,6 +165,7 @@ codeunit 87 \"Blanket Sales Order to Order\"\n SalesLineOrder.\"Document No.\" := SalesHeaderOrder.\"No.\";\n NextLineNo += 10000;\n SalesLineOrder.\"Line No.\" := NextLineNo;\n+ UpdateAttachedOrderLineNo(SalesLineOrder, SalesLineBlanketOrder, BlanketToOrderLineNoMap);\n SalesLineOrder.\"Blanket Order No.\" := SalesHeaderBlanketOrder.\"No.\";\n SalesLineOrder.\"Blanket Order Line No.\" := SalesLineBlanketOrder.\"Line No.\";\n if (SalesLineOrder.\"No.\" <> '') and (SalesLineOrder.Type <> SalesLineOrder.Type::\" \") then begin\n@@ -202,6 +204,7 @@ codeunit 87 \"Blanket Sales Order to Order\"\n if IsSalesOrderLineToBeInserted(SalesLineOrder) then begin\n OnBeforeInsertSalesOrderLine(SalesLineOrder, SalesHeaderOrder, SalesLineBlanketOrder, SalesHeaderBlanketOrder);\n SalesLineOrder.Insert();\n+ BlanketToOrderLineNoMap.Set(SalesLineBlanketOrder.\"Line No.\", SalesLineOrder.\"Line No.\");\n OnAfterInsertSalesOrderLine(SalesLineOrder, SalesHeaderOrder, SalesLineBlanketOrder, SalesHeaderBlanketOrder);\n end;\n \n@@ -219,6 +222,19 @@ codeunit 87 \"Blanket Sales Order to Order\"\n until SalesLineBlanketOrder.Next() = 0;\n end;\n \n+ local procedure UpdateAttachedOrderLineNo(var SalesOrderLine: Record \"Sales Line\"; BlanketOrderSalesLine: Record \"Sales Line\"; BlanketToOrderLineNoMap: Dictionary of [Integer, Integer])\n+ var\n+ OrderAttachedToLineNo: Integer;\n+ begin\n+ if BlanketOrderSalesLine.\"Attached to Line No.\" = 0 then\n+ exit;\n+\n+ if BlanketToOrderLineNoMap.Get(BlanketOrderSalesLine.\"Attached to Line No.\", OrderAttachedToLineNo) then\n+ SalesOrderLine.\"Attached to Line No.\" := OrderAttachedToLineNo\n+ else\n+ SalesOrderLine.\"Attached to Line No.\" := 0;\n+ end;\n+\n procedure ReserveSalesOrderLines(SalesHeaderOrder: Record \"Sales Header\"; var SalesLineOrder: Record \"Sales Line\"; var TempSalesLine: Record \"Sales Line\" temporary)\n begin\n TempSalesLine.DeleteAll();\n", "error_message": null, "metrics": {"execution_time": 228.0, "llm_duration": null, "turn_count": 15, "prompt_tokens": 577800, "completion_tokens": 8700, "tool_usage": {"rg": 26, "glob": 5, "view": 16, "apply_patch": 1, "report_intent": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-208851__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al b/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al\nindex fb6adbb6..bc7b5a68 100644\n--- a/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al\n@@ -560,11 +560,14 @@ table 7000 \"Price List Header\"\n \n procedure UpdateAmountType()\n var\n+ PriceSourceLocal: Record \"Price Source\";\n xAmountType: Enum \"Price Amount Type\";\n begin\n xAmountType := \"Amount Type\";\n- if \"Source Type\" in [\"Source Type\"::\"Customer Disc. Group\", \"Source Type\"::\"Customer Price Group\"] then\n- \"Amount Type\" := PriceSource.GetDefaultAmountType()\n+ if \"Source Type\" in [\"Source Type\"::\"Customer Disc. Group\", \"Source Type\"::\"Customer Price Group\"] then begin\n+ CopyTo(PriceSourceLocal);\n+ \"Amount Type\" := PriceSourceLocal.GetDefaultAmountType()\n+ end\n else\n \"Amount Type\" := CalcAmountType();\n if \"Amount Type\" <> xAmountType then\n@@ -791,4 +794,4 @@ table 7000 \"Price List Header\"\n local procedure OnUpdateDatesInLinesOnBeforePriceListLineModifyAllEndingDate(var PriceListLine: Record \"Price List Line\"; var PriceListHeader: Record \"Price List Header\")\n begin\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": null, "metrics": {"execution_time": 86.0, "llm_duration": null, "turn_count": 7, "prompt_tokens": 157600, "completion_tokens": 2500, "tool_usage": {"glob": 1, "rg": 4, "report_intent": 4, "view": 11, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-209450__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\nindex bb5d38d2..861b1f23 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\n@@ -1075,6 +1075,8 @@ table 1003 \"Job Planning Line\"\n TestField(Type, Type::Item);\n TestField(\"No.\");\n TestField(\"Usage Link\");\n+ if IsNonInventoriableItem() then\n+ Error(NonInvReserveTypeErr, \"No.\", Reserve);\n end;\n CalcFields(\"Reserved Qty. (Base)\");\n if (Reserve = Reserve::Never) and (\"Reserved Qty. (Base)\" > 0) then\n@@ -1519,6 +1521,7 @@ table 1003 \"Job Planning Line\"\n UsageLinkErr: Label '%1 cannot be enabled on a %2 with %3 %4.', Comment = 'Usage Link cannot be enabled on a Project Planning Line with Line Type Schedule';\n #pragma warning restore AA0470\n QtyGreaterErr: Label '%1 cannot be higher than %2.', Comment = '%1 = Caption for field Quantity; %2 = Captiion for field Qty. Transferred to Invoice';\n+ NonInvReserveTypeErr: Label 'Non-inventory and service items must have the reserve type Never. The current reserve type for item %1 is %2.', Comment = '%1 is Item No., %2 is Reserve';\n RequestedDeliveryDateErr: Label 'You cannot change the %1 when the %2 has been filled in.', Comment = '%1 = Caption for field Requested Delivery Date; %2 = Captiion for field Promised Delivery Date';\n NotPossibleJobPlanningLineErr: Label 'It is not possible to deleted project planning line transferred to an invoice.';\n NegativeQtyToAssembleErr: Label ' must be positive.', Comment = 'Qty. to Assemble can''t be negative';\n@@ -1667,11 +1670,14 @@ table 1003 \"Job Planning Line\"\n GetItemTranslation();\n \"Gen. Prod. Posting Group\" := Item.\"Gen. Prod. Posting Group\";\n Validate(\"Unit of Measure Code\", Item.\"Base Unit of Measure\");\n- if \"Usage Link\" then\n- if Item.Reserve = Item.Reserve::Optional then\n- Reserve := Job.Reserve\n- else\n- Reserve := Item.Reserve;\n+ if not Item.IsInventoriableType() then\n+ Reserve := Reserve::Never\n+ else\n+ if \"Usage Link\" then\n+ if Item.Reserve = Item.Reserve::Optional then\n+ Reserve := Job.Reserve\n+ else\n+ Reserve := Item.Reserve;\n OnAfterCopyFromItem(Rec, Job, Item);\n end;\n \n@@ -2622,6 +2628,8 @@ table 1003 \"Job Planning Line\"\n TestField(\"No.\");\n TestField(Reserve);\n TestField(\"Usage Link\");\n+ if IsNonInventoriableItem() then\n+ Error(NonInvReserveTypeErr, \"No.\", Reserve);\n Reservation.SetReservSource(Rec);\n Reservation.RunModal();\n end;\n@@ -2649,6 +2657,8 @@ table 1003 \"Job Planning Line\"\n begin\n TestField(Type, Type::Item);\n TestField(\"No.\");\n+ if IsNonInventoriableItem() then\n+ Error(NonInvReserveTypeErr, \"No.\", Reserve);\n if Reserve = Reserve::Never then\n FieldError(Reserve);\n JobPlanningLineReserve.ReservQuantity(Rec, QtyToReserve, QtyToReserveBase);\ndiff --git a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLineReserve.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLineReserve.Codeunit.al\nindex 9a2e42ec..1b768f49 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLineReserve.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLineReserve.Codeunit.al\n@@ -31,6 +31,7 @@ codeunit 1032 \"Job Planning Line-Reserve\"\n Text004Err: Label 'must not be changed when a quantity is reserved', Comment = 'starts with some field name';\n Text005Err: Label 'Codeunit is not initialized correctly.';\n InvalidLineTypeErr: Label 'must be %1 or %2', Comment = '%1 and %2 are line type options, fx. Budget or Billable';\n+ NonInvReserveTypeErr: Label 'Non-inventory and service items must have the reserve type Never. The current reserve type for item %1 is %2.', Comment = '%1 is Item No., %2 is Reserve';\n SummaryTypeTxt: Label '%1, %2', Locked = true;\n SourceDoc2Txt: Label '%1 %2', Locked = true;\n \n@@ -45,6 +46,8 @@ codeunit 1032 \"Job Planning Line-Reserve\"\n JobPlanningLine.TestField(Type, JobPlanningLine.Type::Item);\n JobPlanningLine.TestField(\"No.\");\n JobPlanningLine.TestField(\"Planning Date\");\n+ if not JobPlanningLine.IsInventoriableItem() then\n+ Error(NonInvReserveTypeErr, JobPlanningLine.\"No.\", JobPlanningLine.Reserve);\n \n JobPlanningLine.CalcFields(\"Reserved Qty. (Base)\");\n CheckReservedQtyBase(JobPlanningLine, QuantityBase);\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136302'\nCodeunit 136302 Job Consumption Purchase\n Testfunction PurchaseLineNotReservedWhenItemTypeNonInventory Failure (16.423 seconds)\n Error:\n Non-inventory and service items must have the reserve type Never. The current reserve type for item GL00000001 is Optional.\n Call Stack:\n \"Job Planning Line\"(Table 1003).\"Reserve - OnValidate\"(Trigger) line 7 - Base Application by Microsoft version 26.0.0.0\n \"Job Consumption Purchase\"(CodeUnit 136302).PurchaseLineNotReservedWhenItemTypeNonInventory line 33 - Tests-Job by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0", "metrics": {"execution_time": 238.0, "llm_duration": null, "turn_count": 22, "prompt_tokens": 1100000, "completion_tokens": 11200, "tool_usage": {"glob": 1, "rg": 17, "powershell": 3, "view": 32, "apply_patch": 3, "report_intent": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} + +{"instance_id": "microsoftInternal__NAV-209450__cf-2", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\nindex bb5d38d2..ecbf6e40 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\n@@ -1075,6 +1075,9 @@ table 1003 \"Job Planning Line\"\n TestField(Type, Type::Item);\n TestField(\"No.\");\n TestField(\"Usage Link\");\n+ GetItem();\n+ if Item.IsNonInventoriableType() then\n+ Error(NonInvReserveTypeErr, Item.\"No.\", Reserve);\n end;\n CalcFields(\"Reserved Qty. (Base)\");\n if (Reserve = Reserve::Never) and (\"Reserved Qty. (Base)\" > 0) then\n@@ -1513,6 +1516,7 @@ table 1003 \"Job Planning Line\"\n #pragma warning restore AA0470\n QtyToTransferToInvoiceErr: Label '%1 may not be lower than %2 and may not exceed %3.', Comment = '%1 = Qty. to Transfer to Invoice field name; %2 = First value in comparison; %3 = Second value in comparison';\n AutoReserveQst: Label 'Automatic reservation is not possible.\\Do you want to reserve items manually?';\n+ NonInvReserveTypeErr: Label 'Non-inventory and service items must have the reserve type Never. The current reserve type for item %1 is %2.', Comment = '%1 is Item No., %2 is Reserve';\n NoContractLineErr: Label '%1 cannot be set on a %2 of type %3.', Comment = '%1 = Qty. to Transfer to Invoice field name; %2 = Project Planning Line table name; %3 = The project''s line type';\n QtyAlreadyTransferredErr: Label 'The %1 has already been completely transferred.', Comment = '%1 = Project Planning Line table name';\n #pragma warning disable AA0470\n@@ -1668,10 +1672,7 @@ table 1003 \"Job Planning Line\"\n \"Gen. Prod. Posting Group\" := Item.\"Gen. Prod. Posting Group\";\n Validate(\"Unit of Measure Code\", Item.\"Base Unit of Measure\");\n if \"Usage Link\" then\n- if Item.Reserve = Item.Reserve::Optional then\n- Reserve := Job.Reserve\n- else\n- Reserve := Item.Reserve;\n+ Reserve := GetReserveMethodFromItem();\n OnAfterCopyFromItem(Rec, Job, Item);\n end;\n \n@@ -1763,6 +1764,19 @@ table 1003 \"Job Planning Line\"\n Clear(Item);\n end;\n \n+ local procedure GetReserveMethodFromItem(): Enum \"Reserve Method\"\n+ begin\n+ if not Item.IsInventoriableType() then\n+ exit(Reserve::Never);\n+\n+ if Item.Reserve = Item.Reserve::Optional then begin\n+ GetJob();\n+ exit(Job.Reserve);\n+ end;\n+\n+ exit(Item.Reserve);\n+ end;\n+\n local procedure GetSKU() Result: Boolean\n begin\n if (SKU.\"Location Code\" = \"Location Code\") and\n@@ -2584,11 +2598,7 @@ table 1003 \"Job Planning Line\"\n FieldNo(\"Usage Link\"):\n if (Type = Type::Item) and \"Usage Link\" then begin\n GetItem();\n- if Item.Reserve = Item.Reserve::Optional then begin\n- GetJob();\n- Reserve := Job.Reserve\n- end else\n- Reserve := Item.Reserve;\n+ Reserve := GetReserveMethodFromItem();\n end else\n Reserve := Reserve::Never;\n end;\ndiff --git a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLineReserve.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLineReserve.Codeunit.al\nindex 9a2e42ec..7e7bcb56 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLineReserve.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLineReserve.Codeunit.al\n@@ -1,5 +1,6 @@\n-\ufeffnamespace Microsoft.Projects.Project.Planning;\n+namespace Microsoft.Projects.Project.Planning;\n \n+using Microsoft.Inventory.Item;\n using Microsoft.Inventory.Journal;\n using Microsoft.Inventory.Location;\n using Microsoft.Inventory.Planning;\n@@ -36,6 +37,7 @@ codeunit 1032 \"Job Planning Line-Reserve\"\n \n procedure CreateReservation(JobPlanningLine: Record \"Job Planning Line\"; Description: Text[100]; ExpectedReceiptDate: Date; Quantity: Decimal; QuantityBase: Decimal; ForReservEntry: Record \"Reservation Entry\")\n var\n+ Item: Record Item;\n PlanningDate: Date;\n SignFactor: Integer;\n begin\n@@ -45,6 +47,8 @@ codeunit 1032 \"Job Planning Line-Reserve\"\n JobPlanningLine.TestField(Type, JobPlanningLine.Type::Item);\n JobPlanningLine.TestField(\"No.\");\n JobPlanningLine.TestField(\"Planning Date\");\n+ Item.Get(JobPlanningLine.\"No.\");\n+ Item.TestField(Type, Item.Type::Inventory);\n \n JobPlanningLine.CalcFields(\"Reserved Qty. (Base)\");\n CheckReservedQtyBase(JobPlanningLine, QuantityBase);\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136302'\nCodeunit 136302 Job Consumption Purchase\n Testfunction PurchaseLineNotReservedWhenItemTypeService Failure (16.147 seconds)\n Error:\n Non-inventory and service items must have the reserve type Never. The current reserve type for item GL00000001 is Optional.\n Call Stack:\n \"Job Planning Line\"(Table 1003).\"Reserve - OnValidate\"(Trigger) line 8 - Base Application by Microsoft version 26.0.0.0\n \"Job Consumption Purchase\"(CodeUnit 136302).PurchaseLineNotReservedWhenItemTypeService line 33 - Tests-Job by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0", "metrics": {"execution_time": 288.0, "llm_duration": null, "turn_count": 27, "prompt_tokens": 1800000, "completion_tokens": 12100, "tool_usage": {"glob": 4, "rg": 23, "report_intent": 8, "view": 38, "apply_patch": 4, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} + +{"instance_id": "microsoftInternal__NAV-209496__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\nindex 10d284cc..eaa87170 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\n@@ -116,6 +116,7 @@ page 835 \"Reminder Level Communication\"\n ReminderCommunication: Codeunit \"Reminder Communication\";\n Languages: Page \"Languages\";\n FilterText: Text;\n+ NewCommunicationId: Guid;\n begin\n FilterText := ReminderCommunication.GetListOfAttachmentLanguagesFromIdWithSeparator(Rec.\"Reminder Attachment Text\", DifferentOperatorTok);\n if FilterText <> '' then\n@@ -132,8 +133,12 @@ page 835 \"Reminder Level Communication\"\n LocalLanguage.FindFirst();\n \n // Necessary when the user has deleted all languages or has not created any language yet\n- if IsNullGuid(Rec.\"Reminder Attachment Text\") then\n- ReminderCommunication.SetDefaultContentForNewLanguage(CreateGuid(), LocalLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Level\", Rec.SystemId);\n+ if IsNullGuid(Rec.\"Reminder Attachment Text\") then begin\n+ NewCommunicationId := CreateGuid();\n+ ReminderCommunication.SetDefaultContentForNewLanguage(NewCommunicationId, LocalLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Level\", Rec.SystemId);\n+ Rec.\"Reminder Attachment Text\" := NewCommunicationId;\n+ Rec.\"Reminder Email Text\" := NewCommunicationId;\n+ end;\n \n SelectedNewLanguage := true;\n SelectLanguageAndText(LocalLanguage.Code, true);\n@@ -323,4 +328,4 @@ page 835 \"Reminder Level Communication\"\n CurrPage.ReminderAttachmentTextPart.Page.SetSourceDataAsLevel(CurrentLanguage.Code);\n CurrPage.ReminderEmailTextPart.Page.SetSourceData(CurrentLanguage.Code);\n end;\n-}\n\\ No newline at end of file\n+}\ndiff --git a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al\nindex 5cce8ad7..f4b310dd 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al\n@@ -109,6 +109,7 @@ page 1897 \"Reminder Term Communication\"\n ReminderCommunication: Codeunit \"Reminder Communication\";\n Languages: Page \"Languages\";\n FilterText: Text;\n+ NewCommunicationId: Guid;\n begin\n FilterText := ReminderCommunication.GetListOfAttachmentLanguagesFromIdWithSeparator(Rec.\"Reminder Attachment Text\", DifferentOperatorTok);\n if FilterText <> '' then\n@@ -125,8 +126,12 @@ page 1897 \"Reminder Term Communication\"\n LocalLanguage.FindFirst();\n \n // Necessary when the user has deleted all languages or has not created any language yet\n- if IsNullGuid(Rec.\"Reminder Attachment Text\") then\n- ReminderCommunication.SetDefaultContentForNewLanguage(CreateGuid(), LocalLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Term\", Rec.SystemId);\n+ if IsNullGuid(Rec.\"Reminder Attachment Text\") then begin\n+ NewCommunicationId := CreateGuid();\n+ ReminderCommunication.SetDefaultContentForNewLanguage(NewCommunicationId, LocalLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Term\", Rec.SystemId);\n+ Rec.\"Reminder Attachment Text\" := NewCommunicationId;\n+ Rec.\"Reminder Email Text\" := NewCommunicationId;\n+ end;\n \n SelectedNewLanguage := true;\n SelectLanguageAndText(LocalLanguage.Code, true);\n@@ -316,4 +321,4 @@ page 1897 \"Reminder Term Communication\"\n CurrPage.ReminderAttachmentTextPart.Page.SetSourceDataAsTerm(CurrentLanguage.Code);\n CurrPage.ReminderEmailTextPart.Page.SetSourceData(CurrentLanguage.Code);\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": null, "metrics": {"execution_time": 142.0, "llm_duration": null, "turn_count": 12, "prompt_tokens": 430900, "completion_tokens": 5600, "tool_usage": {"rg": 9, "glob": 4, "report_intent": 3, "view": 13, "apply_patch": 2, "powershell": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-209496__cf-2", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\nindex 10d284cc..a43e4edd 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\n@@ -113,7 +113,6 @@ page 835 \"Reminder Level Communication\"\n trigger OnAction()\n var\n LocalLanguage: Record \"Language\";\n- ReminderCommunication: Codeunit \"Reminder Communication\";\n Languages: Page \"Languages\";\n FilterText: Text;\n begin\n@@ -131,10 +130,6 @@ page 835 \"Reminder Level Communication\"\n Languages.SetSelectionFilter(LocalLanguage);\n LocalLanguage.FindFirst();\n \n- // Necessary when the user has deleted all languages or has not created any language yet\n- if IsNullGuid(Rec.\"Reminder Attachment Text\") then\n- ReminderCommunication.SetDefaultContentForNewLanguage(CreateGuid(), LocalLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Level\", Rec.SystemId);\n-\n SelectedNewLanguage := true;\n SelectLanguageAndText(LocalLanguage.Code, true);\n end;\n@@ -311,16 +306,48 @@ page 835 \"Reminder Level Communication\"\n CurrentLanguage.SetRange(Code, LanguageCode);\n CurrentLanguage.FindFirst();\n \n+ if CreateNewEntry then\n+ EnsureCommunicationTextIds();\n+\n if not ReminderAttachmentText.Get(Rec.\"Reminder Attachment Text\", CurrentLanguage.Code) then\n- if CreateNewEntry then begin\n- ReminderAttachmentText.SetDefaultContentForNewLanguage(Rec.\"Reminder Attachment Text\", CurrentLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Level\");\n- ReminderEmailText.SetDefaultContentForNewLanguage(Rec.\"Reminder Email Text\", CurrentLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Level\");\n- end\n+ if CreateNewEntry then\n+ ReminderAttachmentText.SetDefaultContentForNewLanguage(Rec.\"Reminder Attachment Text\", CurrentLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Level\")\n else\n Error(NoTextForSelectedLanguageErr, CurrentLanguage.Code);\n \n+ if CreateNewEntry then\n+ if not ReminderEmailText.Get(Rec.\"Reminder Email Text\", CurrentLanguage.Code) then\n+ ReminderEmailText.SetDefaultContentForNewLanguage(Rec.\"Reminder Email Text\", CurrentLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Level\");\n+\n CurrPage.Update(false);\n CurrPage.ReminderAttachmentTextPart.Page.SetSourceDataAsLevel(CurrentLanguage.Code);\n CurrPage.ReminderEmailTextPart.Page.SetSourceData(CurrentLanguage.Code);\n end;\n-}\n\\ No newline at end of file\n+\n+ local procedure EnsureCommunicationTextIds()\n+ var\n+ CommunicationTextId: Guid;\n+ RecordModified: Boolean;\n+ begin\n+ if not IsNullGuid(Rec.\"Reminder Attachment Text\") then\n+ CommunicationTextId := Rec.\"Reminder Attachment Text\"\n+ else\n+ if not IsNullGuid(Rec.\"Reminder Email Text\") then\n+ CommunicationTextId := Rec.\"Reminder Email Text\"\n+ else\n+ CommunicationTextId := CreateGuid();\n+\n+ if IsNullGuid(Rec.\"Reminder Attachment Text\") then begin\n+ Rec.\"Reminder Attachment Text\" := CommunicationTextId;\n+ RecordModified := true;\n+ end;\n+\n+ if IsNullGuid(Rec.\"Reminder Email Text\") then begin\n+ Rec.\"Reminder Email Text\" := CommunicationTextId;\n+ RecordModified := true;\n+ end;\n+\n+ if RecordModified then\n+ Rec.Modify(true);\n+ end;\n+}\ndiff --git a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al\nindex 5cce8ad7..7342171e 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al\n@@ -106,7 +106,6 @@ page 1897 \"Reminder Term Communication\"\n trigger OnAction()\n var\n LocalLanguage: Record \"Language\";\n- ReminderCommunication: Codeunit \"Reminder Communication\";\n Languages: Page \"Languages\";\n FilterText: Text;\n begin\n@@ -124,10 +123,6 @@ page 1897 \"Reminder Term Communication\"\n Languages.SetSelectionFilter(LocalLanguage);\n LocalLanguage.FindFirst();\n \n- // Necessary when the user has deleted all languages or has not created any language yet\n- if IsNullGuid(Rec.\"Reminder Attachment Text\") then\n- ReminderCommunication.SetDefaultContentForNewLanguage(CreateGuid(), LocalLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Term\", Rec.SystemId);\n-\n SelectedNewLanguage := true;\n SelectLanguageAndText(LocalLanguage.Code, true);\n end;\n@@ -304,16 +299,48 @@ page 1897 \"Reminder Term Communication\"\n CurrentLanguage.SetRange(Code, LanguageCode);\n CurrentLanguage.FindFirst();\n \n+ if CreateNewEntry then\n+ EnsureCommunicationTextIds();\n+\n if not ReminderAttachmentText.Get(Rec.\"Reminder Attachment Text\", CurrentLanguage.Code) then\n- if CreateNewEntry then begin\n- ReminderAttachmentText.SetDefaultContentForNewLanguage(Rec.\"Reminder Attachment Text\", CurrentLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Term\");\n- ReminderEmailText.SetDefaultContentForNewLanguage(Rec.\"Reminder Email Text\", CurrentLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Term\");\n- end\n+ if CreateNewEntry then\n+ ReminderAttachmentText.SetDefaultContentForNewLanguage(Rec.\"Reminder Attachment Text\", CurrentLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Term\")\n else\n Error(NoTextForSelectedLanguageErr, CurrentLanguage.Code);\n \n+ if CreateNewEntry then\n+ if not ReminderEmailText.Get(Rec.\"Reminder Email Text\", CurrentLanguage.Code) then\n+ ReminderEmailText.SetDefaultContentForNewLanguage(Rec.\"Reminder Email Text\", CurrentLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Term\");\n+\n CurrPage.Update(false);\n CurrPage.ReminderAttachmentTextPart.Page.SetSourceDataAsTerm(CurrentLanguage.Code);\n CurrPage.ReminderEmailTextPart.Page.SetSourceData(CurrentLanguage.Code);\n end;\n-}\n\\ No newline at end of file\n+\n+ local procedure EnsureCommunicationTextIds()\n+ var\n+ CommunicationTextId: Guid;\n+ RecordModified: Boolean;\n+ begin\n+ if not IsNullGuid(Rec.\"Reminder Attachment Text\") then\n+ CommunicationTextId := Rec.\"Reminder Attachment Text\"\n+ else\n+ if not IsNullGuid(Rec.\"Reminder Email Text\") then\n+ CommunicationTextId := Rec.\"Reminder Email Text\"\n+ else\n+ CommunicationTextId := CreateGuid();\n+\n+ if IsNullGuid(Rec.\"Reminder Attachment Text\") then begin\n+ Rec.\"Reminder Attachment Text\" := CommunicationTextId;\n+ RecordModified := true;\n+ end;\n+\n+ if IsNullGuid(Rec.\"Reminder Email Text\") then begin\n+ Rec.\"Reminder Email Text\" := CommunicationTextId;\n+ RecordModified := true;\n+ end;\n+\n+ if RecordModified then\n+ Rec.Modify(true);\n+ end;\n+}\n", "error_message": "Build or publish failed for App\\Layers\\W1\\BaseApp:\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Sales\\Reminder\\TermsAndLevels\\ReminderLevelCommunication.Page.al(119,35): error AL0118: The name 'ReminderCommunication' does not exist in the current context.\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Sales\\Reminder\\TermsAndLevels\\ReminderTermCommunication.Page.al(112,35): error AL0118: The name 'ReminderCommunication' does not exist in the current context.", "metrics": {"execution_time": 139.0, "llm_duration": null, "turn_count": 10, "prompt_tokens": 306500, "completion_tokens": 5800, "tool_usage": {"glob": 4, "rg": 6, "view": 13, "report_intent": 2, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": false} + +{"instance_id": "microsoftInternal__NAV-209835__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\nindex 78996b41..2d354e99 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\n@@ -473,7 +473,8 @@ report 99001020 \"Carry Out Action Msg. - Plan.\"\n if CurrReqWkshTemp <> '' then\n \"Requisition Line\".SetRange(\"Journal Batch Name\", CurrReqWkshName);\n \"Requisition Line\".SetRange(Type, \"Requisition Line\".Type::Item);\n- \"Requisition Line\".SetFilter(\"Action Message\", '<>%1', \"Requisition Line\".\"Action Message\"::\" \");\n+ if ReqLineFilters.GetFilter(\"Action Message\") = '' then\n+ \"Requisition Line\".SetFilter(\"Action Message\", '<>%1', \"Requisition Line\".\"Action Message\"::\" \");\n OnAfterSetReqLineFilters(\"Requisition Line\");\n end;\n \n", "error_message": null, "metrics": {"execution_time": 89.0, "llm_duration": null, "turn_count": 8, "prompt_tokens": 189200, "completion_tokens": 3200, "tool_usage": {"rg": 9, "glob": 1, "view": 8, "apply_patch": 1, "report_intent": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-209835__cf-2", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\nindex 78996b41..c1022b99 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\n@@ -466,6 +466,8 @@ report 99001020 \"Carry Out Action Msg. - Plan.\"\n end;\n \n local procedure SetReqLineFilters()\n+ var\n+ ActionMessageFilter: Text;\n begin\n if ReqLineFilters.GetFilters <> '' then\n \"Requisition Line\".CopyFilters(ReqLineFilters);\n@@ -473,7 +475,11 @@ report 99001020 \"Carry Out Action Msg. - Plan.\"\n if CurrReqWkshTemp <> '' then\n \"Requisition Line\".SetRange(\"Journal Batch Name\", CurrReqWkshName);\n \"Requisition Line\".SetRange(Type, \"Requisition Line\".Type::Item);\n- \"Requisition Line\".SetFilter(\"Action Message\", '<>%1', \"Requisition Line\".\"Action Message\"::\" \");\n+ ActionMessageFilter := \"Requisition Line\".GetFilter(\"Action Message\");\n+ if ActionMessageFilter = '' then\n+ \"Requisition Line\".SetFilter(\"Action Message\", '<>%1', \"Requisition Line\".\"Action Message\"::\" \")\n+ else\n+ \"Requisition Line\".SetFilter(\"Action Message\", '%1&<>%2', ActionMessageFilter, \"Requisition Line\".\"Action Message\"::\" \");\n OnAfterSetReqLineFilters(\"Requisition Line\");\n end;\n \n", "error_message": "Build or publish failed for App\\Layers\\W1\\BaseApp:\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Inventory\\Requisition\\CarryOutActionMsgPlan.Report.al(482,71): error AL0193: Argument 3: cannot convert from 'Text' to the type of Argument 1 'Enum Microsoft.Inventory.Tracking.\"Action Message Type\"'", "metrics": {"execution_time": 115.0, "llm_duration": null, "turn_count": 10, "prompt_tokens": 341800, "completion_tokens": 4100, "tool_usage": {"rg": 10, "glob": 4, "report_intent": 4, "view": 11, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": false} + +{"instance_id": "microsoftInternal__NAV-210200__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Service/Document/StandardServiceCode.Table.al b/App/Layers/W1/BaseApp/Service/Document/StandardServiceCode.Table.al\nindex 986aeff9..1021b829 100644\n--- a/App/Layers/W1/BaseApp/Service/Document/StandardServiceCode.Table.al\n+++ b/App/Layers/W1/BaseApp/Service/Document/StandardServiceCode.Table.al\n@@ -192,6 +192,7 @@ table 5996 \"Standard Service Code\"\n OnBeforeInsertServLine(ServLine);\n ServLine.Insert(true);\n InsertExtendedText(ServLine);\n+ AutoReserveInsertedServiceLine(ServLine);\n end;\n until StdServLine.Next() = 0;\n end;\n@@ -205,6 +206,15 @@ table 5996 \"Standard Service Code\"\n ServiceTransferExtText.InsertServExtText(ServLine);\n end;\n \n+ local procedure AutoReserveInsertedServiceLine(var ServLine: Record \"Service Line\")\n+ begin\n+ if (ServLine.Type = ServLine.Type::Item) and\n+ (ServLine.Reserve = ServLine.Reserve::Always) and\n+ (ServLine.\"Outstanding Qty. (Base)\" <> 0)\n+ then\n+ ServLine.AutoReserve(false);\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnBeforeInsertServLine(var ServiceLine: Record \"Service Line\")\n begin\ndiff --git a/App/Layers/W1/BaseApp/Service/Item/StandardServiceItemGrCode.Table.al b/App/Layers/W1/BaseApp/Service/Item/StandardServiceItemGrCode.Table.al\nindex 33f69be4..8dbac347 100644\n--- a/App/Layers/W1/BaseApp/Service/Item/StandardServiceItemGrCode.Table.al\n+++ b/App/Layers/W1/BaseApp/Service/Item/StandardServiceItemGrCode.Table.al\n@@ -160,6 +160,7 @@ table 5998 \"Standard Service Item Gr. Code\"\n OnBeforeInsertServLine(ServLine);\n ServLine.Insert(true);\n InsertExtendedText(ServLine);\n+ AutoReserveInsertedServiceLine(ServLine);\n end;\n until StdServLine.Next() = 0;\n end;\n@@ -172,6 +173,15 @@ table 5998 \"Standard Service Item Gr. Code\"\n ServiceTransferExtText.InsertServExtText(ServLine);\n end;\n \n+ local procedure AutoReserveInsertedServiceLine(var ServLine: Record \"Service Line\")\n+ begin\n+ if (ServLine.Type = ServLine.Type::Item) and\n+ (ServLine.Reserve = ServLine.Reserve::Always) and\n+ (ServLine.\"Outstanding Qty. (Base)\" <> 0)\n+ then\n+ ServLine.AutoReserve(false);\n+ end;\n+\n local procedure CombineDimensions(var ServLine: Record \"Service Line\"; StdServLine: Record \"Standard Service Line\")\n var\n DimensionManagement: Codeunit DimensionManagement;\n", "error_message": null, "metrics": {"execution_time": 190.0, "llm_duration": null, "turn_count": 20, "prompt_tokens": 684000, "completion_tokens": 6600, "tool_usage": {"rg": 19, "glob": 6, "report_intent": 4, "view": 20, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-210200__cf-2", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Service/Document/StandardServiceCode.Table.al b/App/Layers/W1/BaseApp/Service/Document/StandardServiceCode.Table.al\nindex 986aeff9..33efcad1 100644\n--- a/App/Layers/W1/BaseApp/Service/Document/StandardServiceCode.Table.al\n+++ b/App/Layers/W1/BaseApp/Service/Document/StandardServiceCode.Table.al\n@@ -191,6 +191,7 @@ table 5996 \"Standard Service Code\"\n ServLine.\"Line No.\" := ServLine.GetLineNo();\n OnBeforeInsertServLine(ServLine);\n ServLine.Insert(true);\n+ AutoReserveInsertedServiceLine(ServLine);\n InsertExtendedText(ServLine);\n end;\n until StdServLine.Next() = 0;\n@@ -205,6 +206,12 @@ table 5996 \"Standard Service Code\"\n ServiceTransferExtText.InsertServExtText(ServLine);\n end;\n \n+ local procedure AutoReserveInsertedServiceLine(var ServiceLine: Record \"Service Line\")\n+ begin\n+ if (ServiceLine.Reserve = ServiceLine.Reserve::Always) and (ServiceLine.\"Outstanding Qty. (Base)\" <> 0) then\n+ ServiceLine.AutoReserve(false);\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnBeforeInsertServLine(var ServiceLine: Record \"Service Line\")\n begin\ndiff --git a/App/Layers/W1/BaseApp/Service/Item/StandardServiceItemGrCode.Table.al b/App/Layers/W1/BaseApp/Service/Item/StandardServiceItemGrCode.Table.al\nindex 33f69be4..7bb2cb5d 100644\n--- a/App/Layers/W1/BaseApp/Service/Item/StandardServiceItemGrCode.Table.al\n+++ b/App/Layers/W1/BaseApp/Service/Item/StandardServiceItemGrCode.Table.al\n@@ -159,6 +159,7 @@ table 5998 \"Standard Service Item Gr. Code\"\n ServLine.\"Line No.\" := ServLine.GetLineNo();\n OnBeforeInsertServLine(ServLine);\n ServLine.Insert(true);\n+ AutoReserveInsertedServiceLine(ServLine);\n InsertExtendedText(ServLine);\n end;\n until StdServLine.Next() = 0;\n@@ -187,6 +188,12 @@ table 5998 \"Standard Service Item Gr. Code\"\n OnAfterCombineDimensions(ServLine, StdServLine);\n end;\n \n+ local procedure AutoReserveInsertedServiceLine(var ServiceLine: Record \"Service Line\")\n+ begin\n+ if (ServiceLine.Reserve = ServiceLine.Reserve::Always) and (ServiceLine.\"Outstanding Qty. (Base)\" <> 0) then\n+ ServiceLine.AutoReserve(false);\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnAfterCombineDimensions(var ServLine: Record \"Service Line\"; StdServLine: Record \"Standard Service Line\")\n begin\n", "error_message": null, "metrics": {"execution_time": 188.0, "llm_duration": null, "turn_count": 14, "prompt_tokens": 505900, "completion_tokens": 7500, "tool_usage": {"glob": 2, "rg": 18, "report_intent": 6, "view": 11, "apply_patch": 2, "powershell": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-210528__cf-1", "project": "Sustainability", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al b/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al\nindex 335c0099..677c426a 100644\n--- a/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al\n+++ b/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al\n@@ -148,9 +148,12 @@ table 6217 \"Sustainability Setup\"\n \n trigger OnValidate()\n begin\n- if Rec.\"Enable Value Chain Tracking\" then\n+ if Rec.\"Enable Value Chain Tracking\" and not xRec.\"Enable Value Chain Tracking\" then begin\n if not ConfirmManagement.GetResponseOrDefault(ConfirmEnableValueChainTrackingQst, false) then\n Error('');\n+\n+ EnableRequiredProcurementTracking();\n+ end;\n end;\n }\n }\n@@ -235,10 +238,22 @@ table 6217 \"Sustainability Setup\"\n end;\n end;\n \n+ local procedure EnableRequiredProcurementTracking()\n+ begin\n+ if not \"Use Emissions In Purch. Doc.\" then\n+ \"Use Emissions In Purch. Doc.\" := true;\n+\n+ if not \"Item Emissions\" then\n+ \"Item Emissions\" := true;\n+\n+ if not \"Resource Emissions\" then\n+ \"Resource Emissions\" := true;\n+ end;\n+\n [InherentPermissions(PermissionObjectType::TableData, Database::\"Sustainability Setup\", 'I')]\n internal procedure InitRecord()\n begin\n if not Get() then\n Insert();\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": null, "metrics": {"execution_time": 49.0, "llm_duration": null, "turn_count": 5, "prompt_tokens": 92700, "completion_tokens": 1800, "tool_usage": {"rg": 2, "glob": 1, "report_intent": 2, "view": 3, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-211521__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al b/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\nindex 401cabee..c6193b76 100644\n--- a/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\n+++ b/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\n@@ -565,8 +565,7 @@ table 5050 Contact\n {\n CalcFormula = min(\"To-do\".Date where(\"Contact Company No.\" = field(\"Company No.\"),\n \"Contact No.\" = field(filter(\"Lookup Contact No.\")),\n- Closed = const(false),\n- \"System To-do Type\" = const(\"Contact Attendee\")));\n+ Closed = const(false)));\n Caption = 'Next Task Date';\n Editable = false;\n FieldClass = FlowField;\n@@ -3926,4 +3925,4 @@ table 5050 Contact\n local procedure OnShowBusinessRelationOnAfterFilterBusinessRelations(var Rec: Record Contact; var ContactBusinessRelation: Record \"Contact Business Relation\"; ContactBusinessRelationLinkToTable: Enum \"Contact Business Relation Link To Table\"; All: Boolean)\n begin\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": null, "metrics": {"execution_time": 83.0, "llm_duration": null, "turn_count": 8, "prompt_tokens": 209700, "completion_tokens": 2300, "tool_usage": {"rg": 8, "glob": 1, "report_intent": 5, "view": 4, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-211521__cf-2", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al b/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\nindex 401cabee..c6193b76 100644\n--- a/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\n+++ b/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\n@@ -565,8 +565,7 @@ table 5050 Contact\n {\n CalcFormula = min(\"To-do\".Date where(\"Contact Company No.\" = field(\"Company No.\"),\n \"Contact No.\" = field(filter(\"Lookup Contact No.\")),\n- Closed = const(false),\n- \"System To-do Type\" = const(\"Contact Attendee\")));\n+ Closed = const(false)));\n Caption = 'Next Task Date';\n Editable = false;\n FieldClass = FlowField;\n@@ -3926,4 +3925,4 @@ table 5050 Contact\n local procedure OnShowBusinessRelationOnAfterFilterBusinessRelations(var Rec: Record Contact; var ContactBusinessRelation: Record \"Contact Business Relation\"; ContactBusinessRelationLinkToTable: Enum \"Contact Business Relation Link To Table\"; All: Boolean)\n begin\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": null, "metrics": {"execution_time": 148.0, "llm_duration": null, "turn_count": 11, "prompt_tokens": 274200, "completion_tokens": 5100, "tool_usage": {"rg": 14, "report_intent": 3, "glob": 1, "view": 12, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-213671__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al b/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\nindex c70c6c1e..673d66a2 100644\n--- a/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\n+++ b/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\n@@ -630,11 +630,16 @@ page 5123 \"Opportunity List\"\n if Filter <> '' then begin\n RecRef.GetTable(RecVar);\n IndexFieldRef := RecRef.Field(IndexFieldNo);\n- IndexFieldRef.SetRange(Filter);\n+ IndexFieldRef.SetFilter(Filter);\n if RecRef.FindFirst() then begin\n- TextFieldRef := RecRef.Field(TextFieldNo);\n- CaptionText := CopyStr(Format(IndexFieldRef.Value) + ' ' + Format(TextFieldRef.Value), 1, MaxStrLen(CaptionText));\n+ if RecRef.Next() = 0 then begin\n+ TextFieldRef := RecRef.Field(TextFieldNo);\n+ CaptionText := CopyStr(Format(IndexFieldRef.Value) + ' ' + Format(TextFieldRef.Value), 1, MaxStrLen(CaptionText));\n+ exit(true);\n+ end;\n end;\n+\n+ CaptionText := CopyStr(Filter, 1, IndexFieldRef.Length());\n end;\n \n exit(Filter <> '');\n", "error_message": null, "metrics": {"execution_time": 169.0, "llm_duration": null, "turn_count": 12, "prompt_tokens": 320200, "completion_tokens": 6300, "tool_usage": {"glob": 2, "rg": 10, "report_intent": 4, "view": 6, "powershell": 2, "apply_patch": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-213671__cf-2", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al b/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\nindex c70c6c1e..a24dbc39 100644\n--- a/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\n+++ b/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\n@@ -626,11 +626,10 @@ page 5123 \"Opportunity List\"\n IndexFieldRef: FieldRef;\n TextFieldRef: FieldRef;\n begin\n- Filter := DelChr(Filter, '<>', '''');\n if Filter <> '' then begin\n RecRef.GetTable(RecVar);\n IndexFieldRef := RecRef.Field(IndexFieldNo);\n- IndexFieldRef.SetRange(Filter);\n+ IndexFieldRef.SetFilter(Filter);\n if RecRef.FindFirst() then begin\n TextFieldRef := RecRef.Field(TextFieldNo);\n CaptionText := CopyStr(Format(IndexFieldRef.Value) + ' ' + Format(TextFieldRef.Value), 1, MaxStrLen(CaptionText));\n", "error_message": null, "metrics": {"execution_time": 125.0, "llm_duration": null, "turn_count": 12, "prompt_tokens": 318400, "completion_tokens": 4700, "tool_usage": {"rg": 10, "glob": 1, "view": 10, "report_intent": 2, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-213683__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Item/ItemVariant.Table.al b/App/Layers/W1/BaseApp/Inventory/Item/ItemVariant.Table.al\nindex 3793c331..21a12a74 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Item/ItemVariant.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Item/ItemVariant.Table.al\n@@ -128,7 +128,7 @@ table 5401 \"Item Variant\"\n SalesLine: Record \"Sales Line\";\n PurchaseLine: Record \"Purchase Line\";\n begin\n- if xRec.\"Item No.\" <> \"Item No.\" then begin\n+ if (xRec.\"Item No.\" <> \"Item No.\") and (xRec.\"Item Id\" <> \"Item Id\") then begin\n SalesLine.SetRange(Type, SalesLine.Type::Item);\n SalesLine.SetRange(\"No.\", xRec.\"Item No.\");\n SalesLine.SetRange(\"Variant Code\", xRec.Code);\ndiff --git a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al\nindex 9735e4b2..7bd6b759 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al\n@@ -176,7 +176,7 @@ codeunit 99000795 \"Mfg. Item Integration\"\n ItemLedgerEntry: Record \"Item Ledger Entry\";\n ProdOrderLine: Record \"Prod. Order Line\";\n begin\n- if xRec.\"Item No.\" <> Rec.\"Item No.\" then begin\n+ if (xRec.\"Item No.\" <> Rec.\"Item No.\") and (xRec.\"Item Id\" <> Rec.\"Item Id\") then begin\n ProdOrderLine.SetRange(\"Item No.\", xRec.\"Item No.\");\n ProdOrderLine.SetRange(\"Variant Code\", xRec.Code);\n if not ProdOrderLine.IsEmpty() then\n", "error_message": null, "metrics": {"execution_time": 180.0, "llm_duration": null, "turn_count": 15, "prompt_tokens": 450000, "completion_tokens": 5500, "tool_usage": {"rg": 18, "glob": 1, "report_intent": 4, "view": 11, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-214557__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al\nindex e3a6cf2f..0d9b03d7 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al\n@@ -994,6 +994,12 @@ codeunit 99000854 \"Inventory Profile Offsetting\"\n SupplyInvtProfile.SetRange(\"Primary Order No.\", DemandInvtProfile.\"Primary Order No.\");\n SupplyInvtProfile.SetRange(\"Primary Order Line\", DemandInvtProfile.\"Primary Order Line\");\n SupplyInvtProfile.SetRange(\"Source Prod. Order Line\");\n+ if (DemandInvtProfile.Binding = DemandInvtProfile.Binding::\"Order-to-Order\") and\n+ (DemandInvtProfile.\"Source Type\" = Database::\"Prod. Order Component\") and\n+ (DemandInvtProfile.\"Primary Order No.\" <> '') and\n+ (DemandInvtProfile.\"Primary Order Line\" = 0)\n+ then\n+ SupplyInvtProfile.SetRange(\"Primary Order Line\");\n if ((DemandInvtProfile.\"Ref. Order Type\" = DemandInvtProfile.\"Ref. Order Type\"::Assembly) or\n ((DemandInvtProfile.\"Ref. Order Type\" = DemandInvtProfile.\"Ref. Order Type\"::\"Prod. Order\") and\n (DemandInvtProfile.\"Source Type\" = Database::\"Planning Component\"))) and\n", "error_message": "Build or publish failed for App\\Layers\\W1\\BaseApp:\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Inventory\\Tracking\\InventoryProfileOffsetting.Codeunit.al(998,65): error AL0118: The name '\"Prod. Order Component\"' does not exist in the current context.", "metrics": {"execution_time": 383.0, "llm_duration": null, "turn_count": 29, "prompt_tokens": 2200000, "completion_tokens": 15400, "tool_usage": {"sql": 4, "rg": 27, "glob": 11, "report_intent": 2, "view": 29, "apply_patch": 1, "powershell": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": false} + +{"instance_id": "microsoftInternal__NAV-214825__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\nindex 604bb915..e62e37f4 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\n@@ -73,7 +73,9 @@ codeunit 1018 \"Purchase Doc. From Job\"\n SelectionFilterMgt: Codeunit System.Text.SelectionFilterManagement;\n RecRef: RecordRef;\n begin\n+ ContractEntryNoFilter := '';\n JobPlanningLine.SetLoadFields(\"Job Contract Entry No.\");\n+ JobPlanningLine.SetCurrentKey(\"Job Contract Entry No.\");\n JobPlanningLine.SetRange(\"Job No.\", JobTask.\"Job No.\");\n JobPlanningLine.SetRange(\"Job Task No.\", JobTask.\"Job Task No.\");\n if JobPlanningLine.IsEmpty() then\n", "error_message": null, "metrics": {"execution_time": 96.0, "llm_duration": null, "turn_count": 9, "prompt_tokens": 263400, "completion_tokens": 2900, "tool_usage": {"rg": 8, "glob": 1, "report_intent": 3, "view": 9, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-214825__cf-2", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\nindex 604bb915..789de8f8 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\n@@ -74,6 +74,7 @@ codeunit 1018 \"Purchase Doc. From Job\"\n RecRef: RecordRef;\n begin\n JobPlanningLine.SetLoadFields(\"Job Contract Entry No.\");\n+ JobPlanningLine.SetCurrentKey(\"Job Contract Entry No.\");\n JobPlanningLine.SetRange(\"Job No.\", JobTask.\"Job No.\");\n JobPlanningLine.SetRange(\"Job Task No.\", JobTask.\"Job Task No.\");\n if JobPlanningLine.IsEmpty() then\n", "error_message": null, "metrics": {"execution_time": 83.0, "llm_duration": null, "turn_count": 8, "prompt_tokens": 206900, "completion_tokens": 2600, "tool_usage": {"rg": 7, "report_intent": 5, "view": 8, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-214926__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al b/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\nindex ebeb6ca1..6e5bbd26 100644\n--- a/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\n@@ -2345,9 +2345,7 @@ table 18 Customer\n \n local procedure GetTotalAmountLCYCommon(): Decimal\n var\n- [SecurityFiltering(SecurityFilter::Filtered)]\n- SalesLine: Record \"Sales Line\";\n- SalesOutstandingAmountFromShipment: Decimal;\n+ ShippedOutstandingInvoicesLCY: Decimal;\n InvoicedPrepmtAmountLCY: Decimal;\n RetRcdNotInvAmountLCY: Decimal;\n AdditionalAmountLCY: Decimal;\n@@ -2359,18 +2357,26 @@ table 18 Customer\n if IsHandled then\n exit(AdditionalAmountLCY);\n \n- SalesOutstandingAmountFromShipment := SalesLine.OutstandingInvoiceAmountFromShipment(\"No.\");\n+ ShippedOutstandingInvoicesLCY := GetShippedOutstandingInvoicesLCY();\n InvoicedPrepmtAmountLCY := GetInvoicedPrepmtAmountLCY();\n RetRcdNotInvAmountLCY := GetReturnRcdNotInvAmountLCY();\n \n TotalAmountLCY :=\n- \"Balance (LCY)\" + \"Outstanding Orders (LCY)\" + \"Shipped Not Invoiced (LCY)\" + \"Outstanding Invoices (LCY)\" +\n- SalesOutstandingAmountFromShipment - InvoicedPrepmtAmountLCY - RetRcdNotInvAmountLCY + AdditionalAmountLCY;\n+ \"Balance (LCY)\" + \"Outstanding Orders (LCY)\" + \"Shipped Not Invoiced (LCY)\" + \"Outstanding Invoices (LCY)\" -\n+ ShippedOutstandingInvoicesLCY - InvoicedPrepmtAmountLCY - RetRcdNotInvAmountLCY + AdditionalAmountLCY;\n \n OnAfterGetTotalAmountLCYCommon(Rec, TotalAmountLCY);\n exit(TotalAmountLCY);\n end;\n \n+ local procedure GetShippedOutstandingInvoicesLCY(): Decimal\n+ var\n+ [SecurityFiltering(SecurityFilter::Filtered)]\n+ SalesLine: Record \"Sales Line\";\n+ begin\n+ exit(SalesLine.OutstandingInvoiceAmountFromShipment(\"No.\"));\n+ end;\n+\n procedure GetSalesLCY() SalesLCY: Decimal\n var\n CustomerSalesYTD: Record Customer;\n", "error_message": null, "metrics": {"execution_time": 170.0, "llm_duration": null, "turn_count": 17, "prompt_tokens": 666500, "completion_tokens": 6100, "tool_usage": {"glob": 4, "rg": 13, "view": 15, "report_intent": 5, "apply_patch": 2, "powershell": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-215972__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\nindex 9ab054c5..11f6aa91 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\n@@ -1584,6 +1584,7 @@ table 5741 \"Transfer Line\"\n procedure ShowReservation()\n var\n OptionNumber: Integer;\n+ Direction: Enum \"Transfer Direction\";\n IsHandled: Boolean;\n begin\n IsHandled := false;\n@@ -1595,7 +1596,12 @@ table 5741 \"Transfer Line\"\n Clear(Reservation);\n OptionNumber := StrMenu(Text011);\n if OptionNumber > 0 then begin\n- Reservation.SetReservSource(Rec, Enum::\"Transfer Direction\".FromInteger(OptionNumber - 1));\n+ Direction := Enum::\"Transfer Direction\".FromInteger(OptionNumber - 1);\n+ if (Direction = Direction::Outbound) and (\"Qty. to Ship\" > 0) then begin\n+ GetItem();\n+ Item.TestField(Reserve);\n+ end;\n+ Reservation.SetReservSource(Rec, Direction);\n Reservation.RunModal();\n end;\n \n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137140'\nCodeunit 137140 SCM Inventory Documents\n Testfunction ReservationShouldNotPossibleOnTransferOrderIfItemReserveSetAsNever Failure (6.026 seconds)\n Error:\n Assert.ExpectedErrorCode failed. Expected: TestField. Actual: MissingUIHandler. Actual error message: Unhandled UI: StrMenu Outbound,Inbound.\n Call Stack:\n Assert(CodeUnit 130000).ExpectedErrorCode line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"SCM Inventory Documents\"(CodeUnit 137140).ReservationShouldNotPossibleOnTransferOrderIfItemReserveSetAsNever line 33 - Tests-SCM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0", "metrics": {"execution_time": 261.0, "llm_duration": null, "turn_count": 23, "prompt_tokens": 1100000, "completion_tokens": 9100, "tool_usage": {"rg": 24, "report_intent": 2, "glob": 3, "powershell": 4, "view": 23, "apply_patch": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} + +{"instance_id": "microsoftInternal__NAV-215972__cf-2", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\nindex 9ab054c5..bbf14805 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\n@@ -1595,6 +1595,10 @@ table 5741 \"Transfer Line\"\n Clear(Reservation);\n OptionNumber := StrMenu(Text011);\n if OptionNumber > 0 then begin\n+ if (OptionNumber = Enum::\"Transfer Direction\"::Outbound.AsInteger() + 1) and (\"Qty. to Ship\" > 0) then begin\n+ GetItem();\n+ Item.TestField(Reserve);\n+ end;\n Reservation.SetReservSource(Rec, Enum::\"Transfer Direction\".FromInteger(OptionNumber - 1));\n Reservation.RunModal();\n end;\ndiff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLineReserve.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLineReserve.Codeunit.al\nindex d774be20..4d960c97 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLineReserve.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLineReserve.Codeunit.al\n@@ -5,6 +5,7 @@\n namespace Microsoft.Inventory.Transfer;\n \n using Microsoft.Foundation.Enums;\n+using Microsoft.Inventory.Item;\n using Microsoft.Inventory.Journal;\n using Microsoft.Inventory.Location;\n using Microsoft.Inventory.Planning;\n@@ -49,6 +50,7 @@ codeunit 99000836 \"Transfer Line-Reserve\"\n \n TransferLine.TestField(\"Item No.\");\n TransferLine.TestField(\"Variant Code\", FromTrackingSpecification.\"Variant Code\");\n+ TestItemReserveOnOutboundShipment(TransferLine, Direction);\n \n case Direction of\n Direction::Outbound:\n@@ -98,6 +100,17 @@ codeunit 99000836 \"Transfer Line-Reserve\"\n OnAfterCreateReservation(TransferLine);\n end;\n \n+ local procedure TestItemReserveOnOutboundShipment(TransferLine: Record \"Transfer Line\"; Direction: Enum \"Transfer Direction\")\n+ var\n+ Item: Record Item;\n+ begin\n+ if (Direction <> Direction::Outbound) or (TransferLine.\"Qty. to Ship\" <= 0) then\n+ exit;\n+\n+ Item.Get(TransferLine.\"Item No.\");\n+ Item.TestField(Reserve);\n+ end;\n+\n procedure CreateReservationSetFrom(TrackingSpecification: Record \"Tracking Specification\")\n begin\n FromTrackingSpecification := TrackingSpecification;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137140'\nCodeunit 137140 SCM Inventory Documents\n Testfunction ReservationShouldNotPossibleOnTransferOrderIfItemReserveSetAsNever Failure (5.55 seconds)\n Error:\n Assert.ExpectedErrorCode failed. Expected: TestField. Actual: MissingUIHandler. Actual error message: Unhandled UI: StrMenu Outbound,Inbound.\n Call Stack:\n Assert(CodeUnit 130000).ExpectedErrorCode line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"SCM Inventory Documents\"(CodeUnit 137140).ReservationShouldNotPossibleOnTransferOrderIfItemReserveSetAsNever line 33 - Tests-SCM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0", "metrics": {"execution_time": 249.0, "llm_duration": null, "turn_count": 22, "prompt_tokens": 1100000, "completion_tokens": 9100, "tool_usage": {"glob": 3, "rg": 33, "report_intent": 6, "view": 23, "apply_patch": 2, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} + +{"instance_id": "microsoftInternal__NAV-216572__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al\nindex 130b3e0f..18d6a06e 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al\n@@ -668,6 +668,7 @@ table 221 \"Gen. Jnl. Allocation\"\n local procedure CopyFieldsFromAllocationAccountDistribution(AllocAccountDistribution: Record \"Alloc. Account Distribution\")\n begin\n Rec.Validate(\"Account No.\", AllocAccountDistribution.\"Destination Account Number\");\n+ Rec.Validate(\"Dimension Set ID\", AllocAccountDistribution.\"Dimension Set ID\");\n Rec.Validate(\"Allocation %\", AllocAccountDistribution.Percent);\n end;\n \n", "error_message": null, "metrics": {"execution_time": 142.0, "llm_duration": null, "turn_count": 14, "prompt_tokens": 498200, "completion_tokens": 4700, "tool_usage": {"rg": 13, "glob": 1, "report_intent": 4, "view": 15, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-216918__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\nindex d541dd08..ed9d7b8c 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\n@@ -499,17 +499,7 @@ codeunit 1004 \"Job Transfer Line\"\n JobJnlLine.\"Total Cost\" := GenJnlLine.\"Job Total Cost\";\n \n if NonDeductibleVAT.UseNonDeductibleVATAmountForJobCost() then\n- if JobJnlLine.\"Unit Cost\" > 0 then begin\n- JobJnlLine.\"Unit Cost (LCY)\" += Abs(Round(GenJnlLine.\"Non-Deductible VAT Amount LCY\" / JobJnlLine.Quantity));\n- JobJnlLine.\"Unit Cost\" += Abs(Round(GenJnlLine.\"Non-Deductible VAT Amount\" / JobJnlLine.Quantity));\n- JobJnlLine.\"Total Cost (LCY)\" += Abs(GenJnlLine.\"Non-Deductible VAT Amount LCY\");\n- JobJnlLine.\"Total Cost\" += Abs(GenJnlLine.\"Non-Deductible VAT Amount\");\n- end else begin\n- JobJnlLine.\"Unit Cost (LCY)\" += Round(GenJnlLine.\"Non-Deductible VAT Amount LCY\" / JobJnlLine.Quantity);\n- JobJnlLine.\"Unit Cost\" += Round(GenJnlLine.\"Non-Deductible VAT Amount\" / JobJnlLine.Quantity);\n- JobJnlLine.\"Total Cost (LCY)\" += GenJnlLine.\"Non-Deductible VAT Amount LCY\";\n- JobJnlLine.\"Total Cost\" += GenJnlLine.\"Non-Deductible VAT Amount\";\n- end;\n+ AddNonDeductibleVATToJobCost(JobJnlLine, GenJnlLine.\"Posting Date\", GenJnlLine.\"Non-Deductible VAT Amount LCY\");\n \n JobJnlLine.\"Unit Price (LCY)\" := GenJnlLine.\"Job Unit Price (LCY)\";\n JobJnlLine.\"Unit Price\" := GenJnlLine.\"Job Unit Price\";\n@@ -886,6 +876,36 @@ codeunit 1004 \"Job Transfer Line\"\n end;\n end;\n \n+ local procedure AddNonDeductibleVATToJobCost(var JobJnlLine: Record \"Job Journal Line\"; PostingDate: Date; NonDeductibleVATAmountLCY: Decimal)\n+ var\n+ NonDeductibleVATAmtToAddLCY: Decimal;\n+ NonDeductibleVATAmtToAdd: Decimal;\n+ begin\n+ if JobJnlLine.\"Currency Code\" = '' then\n+ exit;\n+\n+ GetCurrencyRounding(JobJnlLine.\"Currency Code\");\n+\n+ if JobJnlLine.\"Unit Cost\" > 0 then\n+ NonDeductibleVATAmtToAddLCY := Abs(NonDeductibleVATAmountLCY)\n+ else\n+ NonDeductibleVATAmtToAddLCY := NonDeductibleVATAmountLCY;\n+\n+ NonDeductibleVATAmtToAdd :=\n+ Round(\n+ CurrencyExchRate.ExchangeAmtLCYToFCY(\n+ PostingDate,\n+ JobJnlLine.\"Currency Code\",\n+ NonDeductibleVATAmtToAddLCY,\n+ JobJnlLine.\"Currency Factor\"),\n+ Currency.\"Amount Rounding Precision\");\n+\n+ JobJnlLine.\"Unit Cost (LCY)\" += Round(NonDeductibleVATAmtToAddLCY / JobJnlLine.Quantity, LCYCurrency.\"Unit-Amount Rounding Precision\");\n+ JobJnlLine.\"Unit Cost\" += Round(NonDeductibleVATAmtToAdd / JobJnlLine.Quantity, Currency.\"Unit-Amount Rounding Precision\");\n+ JobJnlLine.\"Total Cost (LCY)\" += NonDeductibleVATAmtToAddLCY;\n+ JobJnlLine.\"Total Cost\" += NonDeductibleVATAmtToAdd;\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnAfterIsCreatedFromJob(var SalesLine: Record \"Sales Line\"; var Result: Boolean)\n begin\n", "error_message": null, "metrics": {"execution_time": 195.0, "llm_duration": null, "turn_count": 16, "prompt_tokens": 622100, "completion_tokens": 7600, "tool_usage": {"glob": 4, "rg": 22, "powershell": 2, "report_intent": 13, "view": 10, "apply_patch": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-216918__cf-2", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\nindex d541dd08..44966453 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\n@@ -451,6 +451,8 @@ codeunit 1004 \"Job Transfer Line\"\n Job: Record Job;\n JobTask: Record \"Job Task\";\n NonDeductibleVAT: Codeunit \"Non-Deductible VAT\";\n+ NonDeductibleVATAmount: Decimal;\n+ NonDeductibleVATAmtPerUnit: Decimal;\n begin\n OnBeforeFromGenJnlLineToJnlLine(JobJnlLine, GenJnlLine);\n \n@@ -499,17 +501,18 @@ codeunit 1004 \"Job Transfer Line\"\n JobJnlLine.\"Total Cost\" := GenJnlLine.\"Job Total Cost\";\n \n if NonDeductibleVAT.UseNonDeductibleVATAmountForJobCost() then\n- if JobJnlLine.\"Unit Cost\" > 0 then begin\n- JobJnlLine.\"Unit Cost (LCY)\" += Abs(Round(GenJnlLine.\"Non-Deductible VAT Amount LCY\" / JobJnlLine.Quantity));\n- JobJnlLine.\"Unit Cost\" += Abs(Round(GenJnlLine.\"Non-Deductible VAT Amount\" / JobJnlLine.Quantity));\n- JobJnlLine.\"Total Cost (LCY)\" += Abs(GenJnlLine.\"Non-Deductible VAT Amount LCY\");\n- JobJnlLine.\"Total Cost\" += Abs(GenJnlLine.\"Non-Deductible VAT Amount\");\n- end else begin\n- JobJnlLine.\"Unit Cost (LCY)\" += Round(GenJnlLine.\"Non-Deductible VAT Amount LCY\" / JobJnlLine.Quantity);\n- JobJnlLine.\"Unit Cost\" += Round(GenJnlLine.\"Non-Deductible VAT Amount\" / JobJnlLine.Quantity);\n- JobJnlLine.\"Total Cost (LCY)\" += GenJnlLine.\"Non-Deductible VAT Amount LCY\";\n- JobJnlLine.\"Total Cost\" += GenJnlLine.\"Non-Deductible VAT Amount\";\n- end;\n+ if GetNonDeductibleVATAmountsForGenJnlLine(JobJnlLine, GenJnlLine, NonDeductibleVATAmount, NonDeductibleVATAmtPerUnit) then\n+ if JobJnlLine.\"Unit Cost\" > 0 then begin\n+ JobJnlLine.\"Unit Cost (LCY)\" += Abs(Round(GenJnlLine.\"Non-Deductible VAT Amount LCY\" / JobJnlLine.Quantity));\n+ JobJnlLine.\"Unit Cost\" += Abs(NonDeductibleVATAmtPerUnit);\n+ JobJnlLine.\"Total Cost (LCY)\" += Abs(GenJnlLine.\"Non-Deductible VAT Amount LCY\");\n+ JobJnlLine.\"Total Cost\" += Abs(NonDeductibleVATAmount);\n+ end else begin\n+ JobJnlLine.\"Unit Cost (LCY)\" += Round(GenJnlLine.\"Non-Deductible VAT Amount LCY\" / JobJnlLine.Quantity);\n+ JobJnlLine.\"Unit Cost\" += NonDeductibleVATAmtPerUnit;\n+ JobJnlLine.\"Total Cost (LCY)\" += GenJnlLine.\"Non-Deductible VAT Amount LCY\";\n+ JobJnlLine.\"Total Cost\" += NonDeductibleVATAmount;\n+ end;\n \n JobJnlLine.\"Unit Price (LCY)\" := GenJnlLine.\"Job Unit Price (LCY)\";\n JobJnlLine.\"Unit Price\" := GenJnlLine.\"Job Unit Price\";\n@@ -886,6 +889,43 @@ codeunit 1004 \"Job Transfer Line\"\n end;\n end;\n \n+ local procedure GetNonDeductibleVATAmountsForGenJnlLine(JobJnlLine: Record \"Job Journal Line\"; GenJnlLine: Record \"Gen. Journal Line\"; var NonDeductibleVATAmount: Decimal; var NonDeductibleVATAmtPerUnit: Decimal): Boolean\n+ var\n+ JobCurrency: Record Currency;\n+ begin\n+ if JobJnlLine.Quantity = 0 then\n+ exit(false);\n+\n+ if JobJnlLine.\"Currency Code\" = '' then\n+ JobCurrency.InitRoundingPrecision()\n+ else begin\n+ JobCurrency.Get(JobJnlLine.\"Currency Code\");\n+ JobCurrency.TestField(\"Amount Rounding Precision\");\n+ end;\n+\n+ NonDeductibleVATAmount :=\n+ Round(\n+ GenJnlLine.\"Non-Deductible VAT Amount\" * GetGenJnlLineToJobCurrencyFactor(GenJnlLine),\n+ JobCurrency.\"Amount Rounding Precision\");\n+ NonDeductibleVATAmtPerUnit := Round(NonDeductibleVATAmount / JobJnlLine.Quantity);\n+ exit(true);\n+ end;\n+\n+ local procedure GetGenJnlLineToJobCurrencyFactor(GenJnlLine: Record \"Gen. Journal Line\"): Decimal\n+ begin\n+ if GenJnlLine.\"Currency Factor\" = 0 then begin\n+ if GenJnlLine.\"Job Currency Factor\" = 0 then\n+ exit(1);\n+\n+ exit(GenJnlLine.\"Job Currency Factor\");\n+ end;\n+\n+ if GenJnlLine.\"Job Currency Factor\" = 0 then\n+ exit(1 / GenJnlLine.\"Currency Factor\");\n+\n+ exit(GenJnlLine.\"Job Currency Factor\" / GenJnlLine.\"Currency Factor\");\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnAfterIsCreatedFromJob(var SalesLine: Record \"Sales Line\"; var Result: Boolean)\n begin\n", "error_message": null, "metrics": {"execution_time": 183.0, "llm_duration": null, "turn_count": 11, "prompt_tokens": 326200, "completion_tokens": 8300, "tool_usage": {"rg": 12, "glob": 2, "report_intent": 3, "view": 13, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-217104__cf-1", "project": "AutomaticAccountCodes", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al b/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\nindex 0e4bcfe3..4e24e7e3 100644\n--- a/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\n+++ b/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\n@@ -72,14 +72,17 @@ codeunit 4850 \"AA Codes Posting Helper\"\n NoOfAutoAccounts: Decimal;\n TotalAmount: Decimal;\n TotalAltAmount: Decimal;\n+ TotalAmountLCY: Decimal;\n SourceCurrBaseAmount: Decimal;\n AccLine: Integer;\n begin\n GLSetup.Get();\n GenJnlLine.TestField(\"Account Type\", GenJnlLine.\"Account Type\"::\"G/L Account\");\n Clear(TotalAmount);\n+ Clear(TotalAmountLCY);\n AccLine := 0;\n TotalAmount := 0;\n+ TotalAltAmount := 0;\n AutoAccHeader.Get(GenJnlLine.\"Automatic Account Group\");\n AutoAccHeader.CalcFields(Balance);\n AutoAccHeader.TestField(Balance, 0);\n@@ -121,6 +124,9 @@ codeunit 4850 \"AA Codes Posting Helper\"\n GenJnlLine2.Validate(Amount, GenJnlLine2.Amount - TotalAmount);\n if (AccLine = NoOfAutoAccounts) and (TotalAltAmount <> 0) then\n GenJnlLine2.Validate(\"Source Currency Amount\", GenJnlLine2.\"Source Currency Amount\" - TotalAltAmount);\n+ TotalAmountLCY := TotalAmountLCY + GenJnlLine2.\"Amount (LCY)\";\n+ if (AccLine = NoOfAutoAccounts) and (TotalAmountLCY <> 0) then\n+ AdjustAmountLCY(GenJnlLine2, GenJnlLine2.\"Amount (LCY)\" - TotalAmountLCY);\n GenJnlCheckLine.RunCheck(GenJnlLine2);\n \n sender.InitGLEntry(GenJnlLine2, GLEntry,\n@@ -183,6 +189,13 @@ codeunit 4850 \"AA Codes Posting Helper\"\n end;\n end;\n \n+ local procedure AdjustAmountLCY(var GenJnlLine: Record \"Gen. Journal Line\"; NewAmountLCY: Decimal)\n+ begin\n+ GenJnlLine.\"Amount (LCY)\" := NewAmountLCY;\n+ GenJnlLine.\"VAT Base Amount (LCY)\" := GenJnlLine.\"Amount (LCY)\" - GenJnlLine.\"VAT Amount (LCY)\";\n+ GenJnlLine.UpdateLineBalance();\n+ end;\n+\n [EventSubscriber(ObjectType::Table, Database::\"Gen. Journal Line\", 'OnAfterAccountNoOnValidateGetGLAccount', '', false, false)]\n local procedure OnAfterAccountNoOnValidateGetGLAccount(var GenJournalLine: Record \"Gen. Journal Line\"; var GLAccount: Record \"G/L Account\"; CallingFieldNo: Integer)\n begin\n@@ -247,4 +260,4 @@ codeunit 4850 \"AA Codes Posting Helper\"\n GenJournalLine.Modify();\n end;\n \n-}\n\\ No newline at end of file\n+}\n", "error_message": null, "metrics": {"execution_time": 185.0, "llm_duration": null, "turn_count": 13, "prompt_tokens": 593900, "completion_tokens": 8900, "tool_usage": {"glob": 3, "rg": 13, "report_intent": 4, "view": 16, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-217104__cf-2", "project": "AutomaticAccountCodes", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al b/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\nindex 0e4bcfe3..5a00e685 100644\n--- a/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\n+++ b/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\n@@ -72,6 +72,8 @@ codeunit 4850 \"AA Codes Posting Helper\"\n NoOfAutoAccounts: Decimal;\n TotalAmount: Decimal;\n TotalAltAmount: Decimal;\n+ TotalAmountLCY: Decimal;\n+ CurrentAmountLCY: Decimal;\n SourceCurrBaseAmount: Decimal;\n AccLine: Integer;\n begin\n@@ -115,12 +117,21 @@ codeunit 4850 \"AA Codes Posting Helper\"\n GenJnlLine2.\"Shortcut Dimension 2 Code\" := GenJnlLine.\"Shortcut Dimension 2 Code\";\n CopyDimensionFromAutoAccLine(GenJnlLine2, AutomaticAccountLine);\n AccLine := AccLine + 1;\n+ CurrentAmountLCY := GenJnlLine2.\"Amount (LCY)\";\n TotalAmount := TotalAmount + GenJnlLine2.Amount;\n TotalAltAmount := TotalAltAmount + GenJnlLine2.\"Source Currency Amount\";\n+ TotalAmountLCY := TotalAmountLCY + CurrentAmountLCY;\n if (AccLine = NoOfAutoAccounts) and (TotalAmount <> 0) then\n GenJnlLine2.Validate(Amount, GenJnlLine2.Amount - TotalAmount);\n if (AccLine = NoOfAutoAccounts) and (TotalAltAmount <> 0) then\n GenJnlLine2.Validate(\"Source Currency Amount\", GenJnlLine2.\"Source Currency Amount\" - TotalAltAmount);\n+ if AccLine = NoOfAutoAccounts then\n+ TotalAmountLCY := TotalAmountLCY - CurrentAmountLCY + GenJnlLine2.\"Amount (LCY)\";\n+ if (AccLine = NoOfAutoAccounts) and (TotalAmountLCY <> 0) then begin\n+ GenJnlLine2.\"Amount (LCY)\" := GenJnlLine2.\"Amount (LCY)\" - TotalAmountLCY;\n+ GenJnlLine2.\"VAT Base Amount (LCY)\" := GenJnlLine2.\"Amount (LCY)\";\n+ GenJnlLine2.UpdateLineBalance();\n+ end;\n GenJnlCheckLine.RunCheck(GenJnlLine2);\n \n sender.InitGLEntry(GenJnlLine2, GLEntry,\n@@ -247,4 +258,4 @@ codeunit 4850 \"AA Codes Posting Helper\"\n GenJournalLine.Modify();\n end;\n \n-}\n\\ No newline at end of file\n+}\n", "error_message": null, "metrics": {"execution_time": 238.0, "llm_duration": null, "turn_count": 21, "prompt_tokens": 1200000, "completion_tokens": 10000, "tool_usage": {"glob": 6, "rg": 19, "view": 17, "report_intent": 1, "powershell": 3, "apply_patch": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-217797__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/PlanningWorksheet.Page.al b/App/Layers/W1/BaseApp/Inventory/Requisition/PlanningWorksheet.Page.al\nindex 2eaf3fe5..ab814a42 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/PlanningWorksheet.Page.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/PlanningWorksheet.Page.al\n@@ -953,9 +953,14 @@ page 99000852 \"Planning Worksheet\"\n // if called from API (such as edit-in-excel), do not filter \n if ClientTypeManagement.GetCurrentClientType() = CLIENTTYPE::ODataV4 then\n exit;\n- OpenedFromBatch := (Rec.\"Journal Batch Name\" <> '') and (Rec.\"Worksheet Template Name\" = '');\n+ OpenedFromBatch := Rec.\"Journal Batch Name\" <> '';\n if OpenedFromBatch then begin\n CurrentWkshBatchName := Rec.\"Journal Batch Name\";\n+ if Rec.\"Worksheet Template Name\" <> '' then begin\n+ Rec.FilterGroup := 2;\n+ Rec.SetRange(\"Worksheet Template Name\", Rec.\"Worksheet Template Name\");\n+ Rec.FilterGroup := 0;\n+ end;\n ReqJnlManagement.OpenJnl(CurrentWkshBatchName, Rec);\n exit;\n end;\n", "error_message": null, "metrics": {"execution_time": 175.0, "llm_duration": null, "turn_count": 15, "prompt_tokens": 457800, "completion_tokens": 6000, "tool_usage": {"glob": 6, "rg": 15, "report_intent": 2, "view": 15, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-217974__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\nindex 780de254..833fb007 100644\n--- a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n@@ -748,6 +748,7 @@ codeunit 6620 \"Copy Document Mgt.\"\n FromSalesHeader.CalcFields(\"Work Description\");\n ToSalesHeader.TransferFields(FromSalesHeader, false);\n UpdateSalesHeaderWhenCopyFromSalesHeader(ToSalesHeader, OldSalesHeader, FromDocType);\n+ UpdateShipToAddress(ToSalesHeader);\n SetReceivedFromCountryCode(FromDocType, ToSalesHeader);\n OnAfterCopySalesHeader(ToSalesHeader, OldSalesHeader, FromSalesHeader, FromDocType);\n end;\n", "error_message": null, "metrics": {"execution_time": 125.0, "llm_duration": null, "turn_count": 13, "prompt_tokens": 267300, "completion_tokens": 3600, "tool_usage": {"rg": 12, "glob": 1, "report_intent": 2, "view": 8, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-217974__cf-2", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\nindex 780de254..833fb007 100644\n--- a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n@@ -748,6 +748,7 @@ codeunit 6620 \"Copy Document Mgt.\"\n FromSalesHeader.CalcFields(\"Work Description\");\n ToSalesHeader.TransferFields(FromSalesHeader, false);\n UpdateSalesHeaderWhenCopyFromSalesHeader(ToSalesHeader, OldSalesHeader, FromDocType);\n+ UpdateShipToAddress(ToSalesHeader);\n SetReceivedFromCountryCode(FromDocType, ToSalesHeader);\n OnAfterCopySalesHeader(ToSalesHeader, OldSalesHeader, FromSalesHeader, FromDocType);\n end;\n", "error_message": null, "metrics": {"execution_time": 149.0, "llm_duration": null, "turn_count": 15, "prompt_tokens": 585000, "completion_tokens": 4900, "tool_usage": {"rg": 16, "glob": 1, "report_intent": 2, "view": 13, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-218062__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Warehouse/Activity/MfgCreatePick.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Warehouse/Activity/MfgCreatePick.Codeunit.al\nindex 9bfb1a6f..f75c7509 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Warehouse/Activity/MfgCreatePick.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Warehouse/Activity/MfgCreatePick.Codeunit.al\n@@ -4,10 +4,12 @@\n // ------------------------------------------------------------------------------------------------\n namespace Microsoft.Warehouse.Activity;\n \n+using Microsoft.Inventory.Item;\n using Microsoft.Inventory.Location;\n using Microsoft.Inventory.Tracking;\n using Microsoft.Manufacturing.Document;\n using Microsoft.Warehouse.Availability;\n+using Microsoft.Warehouse.Worksheet;\n \n codeunit 99000873 \"Mfg. Create Pick\"\n {\n@@ -119,6 +121,51 @@ codeunit 99000873 \"Mfg. Create Pick\"\n end;\n end;\n \n+ [EventSubscriber(ObjectType::Table, Database::\"Whse. Worksheet Line\", 'OnBeforeCalcAvailableQtyBase', '', false, false)]\n+ local procedure OnBeforeCalcAvailableQtyBase(var WhseWorksheetLine: Record \"Whse. Worksheet Line\"; var AvailableQty: Decimal; var IsHandled: Boolean)\n+ var\n+ Item: Record Item;\n+ Location: Record Location;\n+ TempWarehouseActivityLine: Record \"Warehouse Activity Line\" temporary;\n+ WarehouseAvailabilityMgt: Codeunit \"Warehouse Availability Mgt.\";\n+ AvailableQtyBase: Decimal;\n+ LineReservedQty: Decimal;\n+ QtyAssignedOnWorksheetBase: Decimal;\n+ QtyReservedOnPickShip: Decimal;\n+ QtyOnDedicatedBins: Decimal;\n+ begin\n+ if WhseWorksheetLine.\"Source Type\" <> Database::\"Prod. Order Component\" then\n+ exit;\n+ if not Location.Get(WhseWorksheetLine.\"Location Code\") then\n+ exit;\n+ if Location.\"Directed Put-away and Pick\" or (not Location.\"Bin Mandatory\") then\n+ exit;\n+ if not Item.Get(WhseWorksheetLine.\"Item No.\") then\n+ exit;\n+\n+ AvailableQtyBase :=\n+ WarehouseAvailabilityMgt.CalcInvtAvailQty(Item, Location, WhseWorksheetLine.\"Variant Code\", TempWarehouseActivityLine);\n+ LineReservedQty :=\n+ WarehouseAvailabilityMgt.CalcLineReservedQtyOnInvt(\n+ WhseWorksheetLine.\"Source Type\", WhseWorksheetLine.\"Source Subtype\",\n+ WhseWorksheetLine.\"Source No.\", WhseWorksheetLine.\"Source Line No.\",\n+ WhseWorksheetLine.\"Source Subline No.\", true, TempWarehouseActivityLine);\n+ if LineReservedQty = 0 then\n+ exit;\n+ QtyReservedOnPickShip :=\n+ WarehouseAvailabilityMgt.CalcReservQtyOnPicksShips(\n+ WhseWorksheetLine.\"Location Code\", WhseWorksheetLine.\"Item No.\", WhseWorksheetLine.\"Variant Code\", TempWarehouseActivityLine);\n+ QtyOnDedicatedBins :=\n+ WarehouseAvailabilityMgt.CalcQtyOnDedicatedBins(\n+ WhseWorksheetLine.\"Location Code\", WhseWorksheetLine.\"Item No.\", WhseWorksheetLine.\"Variant Code\");\n+ QtyAssignedOnWorksheetBase := WarehouseAvailabilityMgt.CalcQtyAssgndOnWksh(WhseWorksheetLine, true, true);\n+\n+ AvailableQty :=\n+ AvailableQtyBase + LineReservedQty + QtyReservedOnPickShip - QtyOnDedicatedBins -\n+ QtyAssignedOnWorksheetBase + WhseWorksheetLine.AssignedQtyOnReservedLines();\n+ IsHandled := true;\n+ end;\n+\n [EventSubscriber(ObjectType::Codeunit, Codeunit::\"Create Pick\", 'OnCreateTempActivityLineForCustomWhseSource', '', false, false)]\n local procedure OnCreateTempActivityLineForCustomWhseSource(CustomWhseSourceLine: Variant; var TempWarehouseActivityLine: Record \"Warehouse Activity Line\" temporary; var CreatePickParameters: Record \"Create Pick Parameters\" temporary)\n var\n", "error_message": null, "metrics": {"execution_time": 209.0, "llm_duration": null, "turn_count": 14, "prompt_tokens": 744500, "completion_tokens": 9000, "tool_usage": {"rg": 15, "glob": 2, "report_intent": 7, "view": 21, "apply_patch": 2, "powershell": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-218323__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al b/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al\nindex 88068be0..7fa45301 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al\n@@ -710,6 +710,14 @@ report 20 \"Calc. and Post VAT Settlement\"\n Error(Text002);\n GLAccSettle.Find();\n \n+ if PostSettlement then begin\n+ GLSetup.GetRecordOnce();\n+ if GLSetup.\"Journal Templ. Name Mandatory\" then begin\n+ GLSetup.TestField(\"Apply Jnl. Template Name\");\n+ GLSetup.TestField(\"Apply Jnl. Batch Name\");\n+ end;\n+ end;\n+\n if PostSettlement and not Initialized then\n if not ConfirmManagement.GetResponseOrDefault(Text003, true) then\n CurrReport.Quit();\n@@ -842,6 +850,7 @@ report 20 \"Calc. and Post VAT Settlement\"\n DimMgt: Codeunit DimensionManagement;\n DefaultDimSource: List of [Dictionary of [Integer, Code[20]]];\n begin\n+ SetMandatoryJournalTemplateAndBatch(GenJnlLine);\n DimMgt.AddDimSource(DefaultDimSource, Database::\"G/L Account\", GenJnlLine.\"Account No.\");\n DimMgt.AddDimSource(DefaultDimSource, Database::\"G/L Account\", GenJnlLine.\"Bal. Account No.\");\n GenJnlLine.\"Dimension Set ID\" :=\n@@ -893,6 +902,20 @@ report 20 \"Calc. and Post VAT Settlement\"\n GenJnlLine2.\"Source Currency Amount\" := AmountACY;\n end;\n \n+ local procedure SetMandatoryJournalTemplateAndBatch(var GenJnlLine: Record \"Gen. Journal Line\")\n+ begin\n+ if not GLSetup.\"Journal Templ. Name Mandatory\" then\n+ exit;\n+\n+ if (GenJnlLine.\"Journal Template Name\" <> '') and (GenJnlLine.\"Journal Batch Name\" <> '') then\n+ exit;\n+\n+ GLSetup.TestField(\"Apply Jnl. Template Name\");\n+ GLSetup.TestField(\"Apply Jnl. Batch Name\");\n+ GenJnlLine.\"Journal Template Name\" := GLSetup.\"Apply Jnl. Template Name\";\n+ GenJnlLine.\"Journal Batch Name\" := GLSetup.\"Apply Jnl. Batch Name\";\n+ end;\n+\n local procedure SetVatPostingSetupToGenJnlLine(var GenJnlLine: Record \"Gen. Journal Line\"; VATPostingSetup: Record \"VAT Posting Setup\")\n begin\n GenJnlLine.\"Gen. Posting Type\" := GenJnlLine.\"Gen. Posting Type\"::Settlement;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134992'\nCodeunit 134992 ERM Financial Reports IV\n Testfunction PostVATSettlementWhenJournalTemplateNameMandatoryIsEnabled Failure (10.487 seconds)\n Error:\n Apply Jnl. Template Name must have a value in General Ledger Setup: Primary Key=. It cannot be zero or empty.\n Call Stack:\n \"Calc. and Post VAT Settlement\"(Report 20).OnPreReport(Trigger) line 24 - Base Application by Microsoft version 27.0.0.0\n \"ERM Financial Reports IV\"(CodeUnit 134992).SaveCalcAndPostVATSettlementReport line 12 - Tests-ERM by Microsoft version 27.0.0.0\n \"ERM Financial Reports IV\"(CodeUnit 134992).PostVATSettlementWhenJournalTemplateNameMandatoryIsEnabled line 35 - Tests-ERM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0", "metrics": {"execution_time": 290.0, "llm_duration": null, "turn_count": 23, "prompt_tokens": 1000000, "completion_tokens": 10000, "tool_usage": {"glob": 2, "rg": 32, "report_intent": 4, "view": 17, "apply_patch": 3, "powershell": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} + +{"instance_id": "microsoftInternal__NAV-218786__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al\nindex 0b806569..91f24e2b 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al\n@@ -3112,6 +3112,9 @@ table 5767 \"Warehouse Activity Line\"\n if FromWhseActivityLine.\"Activity Type\" <> FromWhseActivityLine.\"Activity Type\"::Pick then\n exit;\n \n+ if FromWhseActivityLine.\"Action Type\" <> FromWhseActivityLine.\"Action Type\"::Take then\n+ exit;\n+\n if (xWhseActivityLine.Quantity = 0) and (FromWhseActivityLine.Quantity <> 0) then\n exit;\n \n@@ -3125,10 +3128,11 @@ table 5767 \"Warehouse Activity Line\"\n Item.Get(FromWhseActivityLine.\"Item No.\");\n Item.TestField(\"Allow Whse. Overpick\");\n \n- WhseActivityLine.SetLoadFields(\"Activity Type\", \"No.\", \"Line No.\", \"Item No.\", \"Variant Code\", \"Location Code\", \"Action Type\", Quantity, \"Lot No.\", \"Serial No.\", \"Source No.\", \"Source Line No.\", \"Source Document\");\n+ WhseActivityLine.SetLoadFields(\"Activity Type\", \"No.\", \"Line No.\", \"Item No.\", \"Variant Code\", \"Location Code\", \"Action Type\", Quantity, \"Lot No.\", \"Serial No.\", \"Package No.\", \"Source No.\", \"Source Line No.\", \"Source Subline No.\", \"Source Document\", \"Breakbulk No.\", \"Original Breakbulk\");\n+ WhseActivityLine.SetCurrentKey(\"Activity Type\", \"No.\", \"Line No.\");\n WhseActivityLine.SetRange(\"Activity Type\", FromWhseActivityLine.\"Activity Type\");\n WhseActivityLine.SetRange(\"No.\", FromWhseActivityLine.\"No.\");\n- WhseActivityLine.SetFilter(\"Line No.\", '<>%1', FromWhseActivityLine.\"Line No.\");\n+ WhseActivityLine.SetFilter(\"Line No.\", '>%1', FromWhseActivityLine.\"Line No.\");\n WhseActivityLine.SetRange(\"Item No.\", FromWhseActivityLine.\"Item No.\");\n WhseActivityLine.SetRange(\"Variant Code\", FromWhseActivityLine.\"Variant Code\");\n WhseActivityLine.SetRange(\"Location Code\", FromWhseActivityLine.\"Location Code\");\n@@ -3136,11 +3140,18 @@ table 5767 \"Warehouse Activity Line\"\n WhseActivityLine.SetRange(Quantity, xWhseActivityLine.Quantity);\n WhseActivityLine.SetRange(\"Lot No.\", FromWhseActivityLine.\"Lot No.\");\n WhseActivityLine.SetRange(\"Serial No.\", FromWhseActivityLine.\"Serial No.\");\n+ WhseActivityLine.SetRange(\"Package No.\", FromWhseActivityLine.\"Package No.\");\n WhseActivityLine.SetRange(\"Source Document\", FromWhseActivityLine.\"Source Document\");\n WhseActivityLine.SetRange(\"Source No.\", FromWhseActivityLine.\"Source No.\");\n WhseActivityLine.SetRange(\"Source Line No.\", FromWhseActivityLine.\"Source Line No.\");\n+ WhseActivityLine.SetRange(\"Source Subline No.\", FromWhseActivityLine.\"Source Subline No.\");\n+ WhseActivityLine.SetRange(\"Breakbulk No.\", FromWhseActivityLine.\"Breakbulk No.\");\n+ WhseActivityLine.SetRange(\"Original Breakbulk\", FromWhseActivityLine.\"Original Breakbulk\");\n \n- WhseActivityLine.FindFirst();\n+ if not WhseActivityLine.FindFirst() then begin\n+ WhseActivityLine.SetFilter(\"Line No.\", '<>%1', FromWhseActivityLine.\"Line No.\");\n+ WhseActivityLine.FindFirst();\n+ end;\n \n WhseActivityLine.Validate(Quantity, FromWhseActivityLine.Quantity);\n WhseActivityLine.Modify(true);\n", "error_message": null, "metrics": {"execution_time": 199.0, "llm_duration": null, "turn_count": 12, "prompt_tokens": 395500, "completion_tokens": 7900, "tool_usage": {"sql": 2, "rg": 15, "glob": 2, "view": 9, "apply_patch": 1, "report_intent": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-220036__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/IssuedReminder.Page.al b/App/Layers/W1/BaseApp/Sales/Reminder/IssuedReminder.Page.al\nindex c15cb6cf..50f9b4a3 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/IssuedReminder.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/IssuedReminder.Page.al\n@@ -87,14 +87,14 @@ page 438 \"Issued Reminder\"\n ExtendedDatatype = PhoneNo;\n ToolTip = 'Specifies the mobile telephone number of the customer contact person the reminder is for.';\n }\n- field(ContactEmail; PrimaryContact.\"E-Mail\")\n+ field(ContactEmail; ContactEmail)\n {\n Caption = 'Email';\n ApplicationArea = Basic, Suite;\n ExtendedDatatype = EMail;\n Editable = false;\n Importance = Additional;\n- ToolTip = 'Specifies the email address of the customer contact person the reminder is for.';\n+ ToolTip = 'Specifies the email address of the customer contact person the reminder is for. If the contact email address is empty, then the customer email address is shown.';\n }\n field(\"Posting Date\"; Rec.\"Posting Date\")\n {\n@@ -431,19 +431,28 @@ page 438 \"Issued Reminder\"\n end;\n \n trigger OnAfterGetRecord()\n- var\n- Customer: Record Customer;\n begin\n- Customer.GetPrimaryContact(Rec.\"Customer No.\", PrimaryContact);\n+ UpdateContactDetails();\n end;\n \n var\n+ Customer: Record Customer;\n PrimaryContact: Record Contact;\n+ ContactEmail: Text[80];\n IssuedReminderHeader: Record \"Issued Reminder Header\";\n CurrExchRate: Record \"Currency Exchange Rate\";\n ChangeExchangeRate: Page \"Change Exchange Rate\";\n VATDateEnabled: Boolean;\n \n+ local procedure UpdateContactDetails()\n+ begin\n+ Clear(ContactEmail);\n+ Customer.GetPrimaryContact(Rec.\"Customer No.\", PrimaryContact);\n+ ContactEmail := PrimaryContact.\"E-Mail\";\n+ if (ContactEmail = '') and Customer.Get(Rec.\"Customer No.\") then\n+ ContactEmail := Customer.\"E-Mail\";\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnBeforePrintRecords(IssuedReminderHeaderRec: Record \"Issued Reminder Header\"; var IssuedReminderHeaderToPrint: Record \"Issued Reminder Header\"; var IsHandled: Boolean)\n begin\ndiff --git a/App/Layers/W1/BaseApp/Sales/Reminder/Reminder.Page.al b/App/Layers/W1/BaseApp/Sales/Reminder/Reminder.Page.al\nindex 8810e93d..07b03507 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/Reminder.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/Reminder.Page.al\n@@ -50,7 +50,7 @@ page 434 Reminder\n \n trigger OnValidate()\n begin\n- ContactCustomer.GetPrimaryContact(Rec.\"Customer No.\", PrimaryContact);\n+ UpdateContactDetails();\n end;\n }\n field(Name; Rec.Name)\n@@ -106,14 +106,14 @@ page 434 Reminder\n ExtendedDatatype = PhoneNo;\n ToolTip = 'Specifies the mobile telephone number of the customer contact person the reminder is for.';\n }\n- field(ContactEmail; PrimaryContact.\"E-Mail\")\n+ field(ContactEmail; ContactEmail)\n {\n Caption = 'Email';\n ApplicationArea = Basic, Suite;\n ExtendedDatatype = EMail;\n Editable = false;\n Importance = Additional;\n- ToolTip = 'Specifies the email address of the customer contact person the reminder is for.';\n+ ToolTip = 'Specifies the email address of the customer contact person the reminder is for. If the contact email address is empty, then the customer email address is shown.';\n }\n field(\"Posting Date\"; Rec.\"Posting Date\")\n {\n@@ -543,12 +543,13 @@ page 434 Reminder\n \n trigger OnAfterGetRecord()\n begin\n- ContactCustomer.GetPrimaryContact(Rec.\"Customer No.\", PrimaryContact);\n+ UpdateContactDetails();\n end;\n \n var\n ContactCustomer: Record Customer;\n PrimaryContact: Record Contact;\n+ ContactEmail: Text[80];\n ReminderHeader: Record \"Reminder Header\";\n CurrExchRate: Record \"Currency Exchange Rate\";\n ChangeExchangeRate: Page \"Change Exchange Rate\";\n@@ -556,6 +557,15 @@ page 434 Reminder\n IsOfficeAddin: Boolean;\n VATDateEnabled: Boolean;\n \n+ local procedure UpdateContactDetails()\n+ begin\n+ Clear(ContactEmail);\n+ ContactCustomer.GetPrimaryContact(Rec.\"Customer No.\", PrimaryContact);\n+ ContactEmail := PrimaryContact.\"E-Mail\";\n+ if (ContactEmail = '') and ContactCustomer.Get(Rec.\"Customer No.\") then\n+ ContactEmail := ContactCustomer.\"E-Mail\";\n+ end;\n+\n local procedure SetDocNoVisible()\n var\n DocumentNoVisibility: Codeunit DocumentNoVisibility;\n", "error_message": null, "metrics": {"execution_time": 205.0, "llm_duration": null, "turn_count": 17, "prompt_tokens": 471600, "completion_tokens": 7700, "tool_usage": {"glob": 4, "rg": 20, "report_intent": 13, "view": 19, "apply_patch": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-220314__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al b/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\nindex fb9253b7..84276c49 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\n@@ -76,6 +76,10 @@ table 83 \"Item Journal Line\"\n if \"Item No.\" <> xRec.\"Item No.\" then begin\n \"Variant Code\" := '';\n \"Bin Code\" := '';\n+ \"Unit of Measure Code\" := '';\n+ \"Qty. per Unit of Measure\" := 1;\n+ \"Qty. Rounding Precision\" := 0;\n+ \"Qty. Rounding Precision (Base)\" := 0;\n if CurrFieldNo <> 0 then begin\n GetItem();\n if Item.IsInventoriableType() then\n", "error_message": null, "metrics": {"execution_time": 125.0, "llm_duration": null, "turn_count": 13, "prompt_tokens": 351400, "completion_tokens": 4700, "tool_usage": {"rg": 11, "glob": 2, "report_intent": 3, "view": 10, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-220984__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al\nindex 83bf3f09..793c2c20 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al\n@@ -157,8 +157,8 @@ report 99001043 \"Exchange Production BOM Item\"\n CopyPositionFields(ProductionBOMLine2, ProductionBOMLine3);\n ShouldModifyProductionBOMLine := true;\n OnIntegerOnPostDataItemOnBeforeModifyProductionBOMLine(ProductionBOMLine, ShouldModifyProductionBOMLine);\n- if not ShouldModifyProductionBOMLine then begin\n- ProductionBOMLine.\"Ending Date\" := StartingDate - 1;\n+ if ShouldModifyProductionBOMLine then begin\n+ ProductionBOMLine.Validate(\"Ending Date\", StartingDate);\n ProductionBOMLine.Modify();\n end;\n end;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137404'\nCodeunit 137404 SCM Manufacturing\n Testfunction ExchangeProductionBOMItemShouldSetEndingDate Failure (4.783 seconds)\n Error:\n Assert.AreEqual failed. Expected:<06/07/26> (Date). Actual:<06/08/26> (Date). Ending Date is not correctly set on the Production BOM line..\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"SCM Manufacturing\"(CodeUnit 137404).ValidateEndingDateSet line 7 - Tests-SCM-Manufacturing by Microsoft version 27.0.0.0\n \"SCM Manufacturing\"(CodeUnit 137404).ExchangeProductionBOMItemShouldSetEndingDate line 39 - Tests-SCM-Manufacturing by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0", "metrics": {"execution_time": 166.0, "llm_duration": null, "turn_count": 14, "prompt_tokens": 461400, "completion_tokens": 5400, "tool_usage": {"rg": 13, "glob": 2, "report_intent": 5, "view": 10, "powershell": 5, "apply_patch": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} + +{"instance_id": "microsoftInternal__NAV-221877__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al b/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al\nindex 1c8fcc9e..c2fb84df 100644\n--- a/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al\n@@ -427,47 +427,8 @@ table 5901 \"Service Item Line\"\n until ServOrderAlloc.Next() = 0;\n end;\n \n- RepairStatusPriority := RepairStatus.Priority;\n- UseLineNo := \"Line No.\";\n- ServItemLine.Reset();\n- ServItemLine.SetRange(\"Document Type\", \"Document Type\");\n- ServItemLine.SetRange(\"Document No.\", \"Document No.\");\n- ServItemLine.SetFilter(\"Line No.\", '<>%1', \"Line No.\");\n- ServItemLine.SetFilter(\"Repair Status Code\", '<>%1', '');\n- if ServItemLine.Find('-') then\n- repeat\n- RepairStatus2.Get(ServItemLine.\"Repair Status Code\");\n- if RepairStatus2.Priority < RepairStatusPriority then begin\n- RepairStatusPriority := RepairStatus2.Priority;\n- UseLineNo := ServItemLine.\"Line No.\";\n- end;\n- until ServItemLine.Next() = 0;\n- if \"Line No.\" <> UseLineNo then begin\n- ServItemLine.Get(\"Document Type\", \"Document No.\", UseLineNo);\n- RepairStatus.Get(ServItemLine.\"Repair Status Code\");\n- end else\n- RepairStatus.Get(\"Repair Status Code\");\n- ServHeader2.Get(Rec.\"Document Type\", Rec.\"Document No.\");\n- ServHeader3 := ServHeader2;\n- if ServHeader2.Status <> RepairStatus.\"Service Order Status\" then begin\n- ServHeader2.SetValidatingFromLines(true);\n- if ServHeader2.\"Finishing Date\" = 0D then\n- ServHeader2.Validate(\"Finishing Date\", \"Finishing Date\");\n-\n- OnValidateRepairStatusCodeOnBeforeValidateStatus(Rec, ServHeader2);\n-\n- ServHeader2.Validate(Status, RepairStatus.\"Service Order Status\");\n- if not (ServHeader2.Status = ServHeader2.Status::Finished) then begin\n- ServHeader2.\"Finishing Date\" := 0D;\n- ServHeader2.\"Finishing Time\" := 0T;\n- ServHeader2.\"Service Time (Hours)\" := 0;\n- end;\n- ServHeader2.UpdateServiceOrderChangeLog(ServHeader3);\n- ServHeader2.Modify();\n- if ServHeader2.Status = ServHeader2.Status::Finished then\n- UpdateStartFinishDateTime(\"Document Type\", \"Document No.\", \"Line No.\", \"Starting Date\", \"Starting Time\",\n- \"Finishing Date\", \"Finishing Time\", false);\n- end;\n+ if ServItemLine.Get(\"Document Type\", \"Document No.\", \"Line No.\") then\n+ UpdateServiceHeaderStatus();\n end;\n end;\n }\n@@ -1645,6 +1606,8 @@ table 5901 \"Service Item Line\"\n \n ServOrderMgt.UpdateResponseDateTime(Rec, false);\n ServOrderMgt.UpdatePriority(Rec, false);\n+ if (\"Repair Status Code\" <> '') and (\"Repair Status Code\" = xRec.\"Repair Status Code\") then\n+ UpdateServiceHeaderStatus();\n UpdateServiceOrderChangeLog(xRec);\n end;\n \n@@ -1716,8 +1679,6 @@ table 5901 \"Service Item Line\"\n Text036: Label 'The %1 %2 cannot be used in service quotes.';\n #pragma warning restore AA0470\n #pragma warning restore AA0074\n- RepairStatusPriority: Integer;\n- UseLineNo: Integer;\n #pragma warning disable AA0074\n #pragma warning disable AA0470\n Text037: Label 'It is not possible to select %1 because some linked service lines have been posted.';\n@@ -2325,6 +2286,63 @@ table 5901 \"Service Item Line\"\n OnAfterSetHideDialogBox(HideDialogBox);\n end;\n \n+ local procedure UpdateServiceHeaderStatus()\n+ var\n+ RepairStatus: Record \"Repair Status\";\n+ RepairStatus2: Record \"Repair Status\";\n+ ServiceItemLine2: Record \"Service Item Line\";\n+ ServHeader2: Record \"Service Header\";\n+ ServHeader3: Record \"Service Header\";\n+ RepairStatusPriority: Integer;\n+ UseLineNo: Integer;\n+ begin\n+ RepairStatus.Get(\"Repair Status Code\");\n+ RepairStatusPriority := RepairStatus.Priority;\n+ UseLineNo := \"Line No.\";\n+\n+ ServiceItemLine2.Reset();\n+ ServiceItemLine2.SetRange(\"Document Type\", \"Document Type\");\n+ ServiceItemLine2.SetRange(\"Document No.\", \"Document No.\");\n+ ServiceItemLine2.SetFilter(\"Line No.\", '<>%1', \"Line No.\");\n+ ServiceItemLine2.SetFilter(\"Repair Status Code\", '<>%1', '');\n+ if ServiceItemLine2.Find('-') then\n+ repeat\n+ RepairStatus2.Get(ServiceItemLine2.\"Repair Status Code\");\n+ if RepairStatus2.Priority < RepairStatusPriority then begin\n+ RepairStatusPriority := RepairStatus2.Priority;\n+ UseLineNo := ServiceItemLine2.\"Line No.\";\n+ end;\n+ until ServiceItemLine2.Next() = 0;\n+\n+ if \"Line No.\" <> UseLineNo then begin\n+ ServiceItemLine2.Get(\"Document Type\", \"Document No.\", UseLineNo);\n+ RepairStatus.Get(ServiceItemLine2.\"Repair Status Code\");\n+ end;\n+\n+ ServHeader2.Get(Rec.\"Document Type\", Rec.\"Document No.\");\n+ ServHeader3 := ServHeader2;\n+ if ServHeader2.Status = RepairStatus.\"Service Order Status\" then\n+ exit;\n+\n+ ServHeader2.SetValidatingFromLines(true);\n+ if ServHeader2.\"Finishing Date\" = 0D then\n+ ServHeader2.Validate(\"Finishing Date\", \"Finishing Date\");\n+\n+ OnValidateRepairStatusCodeOnBeforeValidateStatus(Rec, ServHeader2);\n+\n+ ServHeader2.Validate(Status, RepairStatus.\"Service Order Status\");\n+ if not (ServHeader2.Status = ServHeader2.Status::Finished) then begin\n+ ServHeader2.\"Finishing Date\" := 0D;\n+ ServHeader2.\"Finishing Time\" := 0T;\n+ ServHeader2.\"Service Time (Hours)\" := 0;\n+ end;\n+ ServHeader2.UpdateServiceOrderChangeLog(ServHeader3);\n+ ServHeader2.Modify();\n+ if ServHeader2.Status = ServHeader2.Status::Finished then\n+ UpdateStartFinishDateTime(\"Document Type\", \"Document No.\", \"Line No.\", \"Starting Date\", \"Starting Time\",\n+ \"Finishing Date\", \"Finishing Time\", false);\n+ end;\n+\n local procedure GetItemTranslation(): Boolean\n var\n ItemTranslation: Record \"Item Translation\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136101'\nCodeunit 136101 Service Orders\n Testfunction AutoUpdateServiceHeaderStatusOnServiceItemLineAdd Failure (7.083 seconds)\n Error:\n AssertEquals for Field: Status Expected = 'Pending', Actual = 'Finished'\n Call Stack:\n \"Service Orders\"(CodeUnit 136101).AutoUpdateServiceHeaderStatusOnServiceItemLineAdd line 35 - Tests-SCM-Service by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0", "metrics": {"execution_time": 294.0, "llm_duration": null, "turn_count": 21, "prompt_tokens": 1200000, "completion_tokens": 11800, "tool_usage": {"rg": 16, "glob": 3, "view": 24, "report_intent": 3, "apply_patch": 5, "powershell": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} + +{"instance_id": "microsoftInternal__NAV-222092__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\nindex 825eb23c..19ae4812 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n@@ -266,15 +266,23 @@ codeunit 393 \"Reminder-Issue\"\n \n local procedure SetGenJnlLine2Dim()\n var\n- DimSetIDArr: array[10] of Integer;\n+ DefaultDimension: Record \"Default Dimension\";\n+ DefaultDimSource: List of [Dictionary of [Integer, Code[20]]];\n begin\n GenJnlLine2.\"Shortcut Dimension 1 Code\" := GlobalReminderHeader.\"Shortcut Dimension 1 Code\";\n GenJnlLine2.\"Shortcut Dimension 2 Code\" := GlobalReminderHeader.\"Shortcut Dimension 2 Code\";\n- DimSetIDArr[1] := GlobalReminderHeader.\"Dimension Set ID\";\n- DimSetIDArr[2] := TempGenJnlLine.\"Dimension Set ID\";\n- GenJnlLine2.\"Dimension Set ID\" :=\n- DimMgt.GetCombinedDimensionSetID(\n- DimSetIDArr, GenJnlLine2.\"Shortcut Dimension 1 Code\", GenJnlLine2.\"Shortcut Dimension 2 Code\");\n+ GenJnlLine2.\"Dimension Set ID\" := GlobalReminderHeader.\"Dimension Set ID\";\n+ if GenJnlLine2.\"Account Type\" = GenJnlLine2.\"Account Type\"::\"G/L Account\" then begin\n+ DimMgt.AddDimSource(DefaultDimSource, Database::\"G/L Account\", GenJnlLine2.\"Account No.\");\n+ DefaultDimension.SetRange(\"Table ID\", Database::\"G/L Account\");\n+ DefaultDimension.SetRange(\"No.\", GenJnlLine2.\"Account No.\");\n+ if not DefaultDimension.IsEmpty() then\n+ GenJnlLine2.\"Dimension Set ID\" :=\n+ DimMgt.GetRecDefaultDimID(\n+ GenJnlLine2, 0, DefaultDimSource, SrcCode,\n+ GenJnlLine2.\"Shortcut Dimension 1 Code\", GenJnlLine2.\"Shortcut Dimension 2 Code\",\n+ GenJnlLine2.\"Dimension Set ID\", 0);\n+ end;\n \n OnAfterSetGenJnlLine2Dim(GlobalReminderHeader, GenJnlLine2);\n end;\n", "error_message": "Build or publish failed for App\\Layers\\W1\\BaseApp:\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Sales\\Reminder\\ReminderIssue.Codeunit.al(276,61): error AL0118: The name '\"G/L Account\"' does not exist in the current context.\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Sales\\Reminder\\ReminderIssue.Codeunit.al(277,61): error AL0118: The name '\"G/L Account\"' does not exist in the current context.", "metrics": {"execution_time": 251.0, "llm_duration": null, "turn_count": 20, "prompt_tokens": 775700, "completion_tokens": 7900, "tool_usage": {"glob": 6, "rg": 24, "report_intent": 2, "view": 17, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": false} + +{"instance_id": "microsoftInternal__NAV-222092__cf-2", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\nindex 825eb23c..19ae4812 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n@@ -266,15 +266,23 @@ codeunit 393 \"Reminder-Issue\"\n \n local procedure SetGenJnlLine2Dim()\n var\n- DimSetIDArr: array[10] of Integer;\n+ DefaultDimension: Record \"Default Dimension\";\n+ DefaultDimSource: List of [Dictionary of [Integer, Code[20]]];\n begin\n GenJnlLine2.\"Shortcut Dimension 1 Code\" := GlobalReminderHeader.\"Shortcut Dimension 1 Code\";\n GenJnlLine2.\"Shortcut Dimension 2 Code\" := GlobalReminderHeader.\"Shortcut Dimension 2 Code\";\n- DimSetIDArr[1] := GlobalReminderHeader.\"Dimension Set ID\";\n- DimSetIDArr[2] := TempGenJnlLine.\"Dimension Set ID\";\n- GenJnlLine2.\"Dimension Set ID\" :=\n- DimMgt.GetCombinedDimensionSetID(\n- DimSetIDArr, GenJnlLine2.\"Shortcut Dimension 1 Code\", GenJnlLine2.\"Shortcut Dimension 2 Code\");\n+ GenJnlLine2.\"Dimension Set ID\" := GlobalReminderHeader.\"Dimension Set ID\";\n+ if GenJnlLine2.\"Account Type\" = GenJnlLine2.\"Account Type\"::\"G/L Account\" then begin\n+ DimMgt.AddDimSource(DefaultDimSource, Database::\"G/L Account\", GenJnlLine2.\"Account No.\");\n+ DefaultDimension.SetRange(\"Table ID\", Database::\"G/L Account\");\n+ DefaultDimension.SetRange(\"No.\", GenJnlLine2.\"Account No.\");\n+ if not DefaultDimension.IsEmpty() then\n+ GenJnlLine2.\"Dimension Set ID\" :=\n+ DimMgt.GetRecDefaultDimID(\n+ GenJnlLine2, 0, DefaultDimSource, SrcCode,\n+ GenJnlLine2.\"Shortcut Dimension 1 Code\", GenJnlLine2.\"Shortcut Dimension 2 Code\",\n+ GenJnlLine2.\"Dimension Set ID\", 0);\n+ end;\n \n OnAfterSetGenJnlLine2Dim(GlobalReminderHeader, GenJnlLine2);\n end;\n", "error_message": "Build or publish failed for App\\Layers\\W1\\BaseApp:\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Sales\\Reminder\\ReminderIssue.Codeunit.al(276,61): error AL0118: The name '\"G/L Account\"' does not exist in the current context.\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Sales\\Reminder\\ReminderIssue.Codeunit.al(277,61): error AL0118: The name '\"G/L Account\"' does not exist in the current context.", "metrics": {"execution_time": 204.0, "llm_duration": null, "turn_count": 19, "prompt_tokens": 1100000, "completion_tokens": 7500, "tool_usage": {"glob": 1, "rg": 20, "sql": 2, "report_intent": 6, "view": 22, "apply_patch": 1, "powershell": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": false} + +{"instance_id": "microsoftInternal__NAV-222484__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al\nindex a4b3f3fb..43ca511a 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al\n@@ -1973,7 +1973,7 @@ table 5767 \"Warehouse Activity Line\"\n exit(5407);\n end;\n \n- local procedure CheckReservedItemTrkgForLotNo(ItemTrkgCode: Code[50])\n+ procedure IsLotNoAvailableForQty(ItemTrkgCode: Code[50]; QtyToHandleBase: Decimal; var LineReservedQty: Decimal): Boolean\n var\n Item: Record Item;\n ReservEntry: Record \"Reservation Entry\";\n@@ -1981,12 +1981,11 @@ table 5767 \"Warehouse Activity Line\"\n TempWarehouseActivityLine: Record \"Warehouse Activity Line\" temporary;\n WhseItemTrackingSetup: Record \"Item Tracking Setup\";\n WhseAvailMgt: Codeunit \"Warehouse Availability Mgt.\";\n- LineReservedQty: Decimal;\n AvailQtyFromOtherResvLines: Decimal;\n begin\n ItemTrackingMgt.GetWhseItemTrkgSetup(\"Item No.\", WhseItemTrackingSetup);\n if not WhseItemTrackingSetup.\"Lot No. Required\" then\n- exit;\n+ exit(true);\n \n Item.Get(\"Item No.\");\n Item.SetRange(\"Location Filter\", \"Location Code\");\n@@ -2028,8 +2027,18 @@ table 5767 \"Warehouse Activity Line\"\n if (Item.Inventory - Abs(Item.\"Reserved Qty. on Inventory\") +\n LineReservedQty + AvailQtyFromOtherResvLines +\n WhseAvailMgt.CalcReservQtyOnPicksShips(\"Location Code\", \"Item No.\", \"Variant Code\", TempWarehouseActivityLine)) <\n- \"Qty. to Handle (Base)\"\n+ QtyToHandleBase\n then\n+ exit(false);\n+\n+ exit(true);\n+ end;\n+\n+ local procedure CheckReservedItemTrkgForLotNo(ItemTrkgCode: Code[50])\n+ var\n+ LineReservedQty: Decimal;\n+ begin\n+ if not IsLotNoAvailableForQty(ItemTrkgCode, \"Qty. to Handle (Base)\", LineReservedQty) then\n Error(InventoryNotAvailableErr, FieldCaption(\"Lot No.\"), ItemTrkgCode);\n \n OnAfterCheckReservedItemTrkg(Rec, xRec, CurrFieldNo, 0, LineReservedQty);\ndiff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WhseActivityRegister.Codeunit.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WhseActivityRegister.Codeunit.al\nindex 06bc6408..44a2dd02 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WhseActivityRegister.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WhseActivityRegister.Codeunit.al\n@@ -1602,6 +1602,7 @@ codeunit 7307 \"Whse.-Activity-Register\"\n local procedure IsQtyAvailToPickNonSpecificReservation(WhseActivLine: Record \"Warehouse Activity Line\"; WhseItemTrackingSetup: Record \"Item Tracking Setup\"; QtyToRegister: Decimal): Boolean\n var\n QtyAvailToPick: Decimal;\n+ LineReservedQty: Decimal;\n IsHandled: Boolean;\n begin\n IsHandled := false;\n@@ -1611,6 +1612,9 @@ codeunit 7307 \"Whse.-Activity-Register\"\n if QtyAvailToPick < QtyToRegister then\n if ReleaseNonSpecificReservations(WhseActivLine, WhseItemTrackingSetup, QtyToRegister - QtyAvailToPick) then\n QtyAvailToPick := CalcTotalAvailQtyToPick(WhseActivLine, WhseItemTrackingSetup);\n+\n+ if (QtyAvailToPick < QtyToRegister) and Location.\"Pick According to FEFO\" and (WhseActivLine.\"Lot No.\" <> '') then\n+ exit(WhseActivLine.IsLotNoAvailableForQty(WhseActivLine.\"Lot No.\", QtyToRegister, LineReservedQty));\n end;\n exit(QtyAvailToPick >= QtyToRegister);\n end;\n", "error_message": null, "metrics": {"execution_time": 455.0, "llm_duration": null, "turn_count": 31, "prompt_tokens": 2200000, "completion_tokens": 18800, "tool_usage": {"glob": 1, "rg": 33, "report_intent": 9, "view": 39, "powershell": 3, "apply_patch": 4}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-222488__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al\nindex 07db37f9..5bb52765 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al\n@@ -484,10 +484,16 @@ page 5771 \"Whse. Put-away Subform\"\n var\n WhseActivLine: Record \"Warehouse Activity Line\";\n begin\n- WhseActivLine.Copy(Rec);\n- WhseActivLine.FilterGroup(3);\n- WhseActivLine.SetRange(Breakbulk);\n- WhseActivLine.FilterGroup(0);\n+ if Rec.\"Source Document\" = Rec.\"Source Document\"::\"Purchase Order\" then begin\n+ WhseActivLine.Reset();\n+ WhseActivLine.SetRange(\"Activity Type\", Rec.\"Activity Type\");\n+ WhseActivLine.SetRange(\"No.\", Rec.\"No.\");\n+ end else begin\n+ WhseActivLine.Copy(Rec);\n+ WhseActivLine.FilterGroup(3);\n+ WhseActivLine.SetRange(Breakbulk);\n+ WhseActivLine.FilterGroup(0);\n+ end;\n CODEUNIT.Run(CODEUNIT::\"Whse.-Act.-Register (Yes/No)\", WhseActivLine);\n Rec.Reset();\n Rec.SetCurrentKey(\"Activity Type\", \"No.\", \"Sorting Sequence No.\");\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137152'\nCodeunit 137152 SCM Warehouse - Receiving\n Testfunction RegisterPutAwayWithBreakBulkFilterShouldRegisterAllLines Failure (17.96 seconds)\n Error:\n There is nothing to register.\n Call Stack:\n \"Whse.-Activity-Register\"(CodeUnit 7307).CheckWhseActivLineIsEmpty line 8 - Base Application by Microsoft version 27.0.0.0\n \"Whse.-Activity-Register\"(CodeUnit 7307).Code line 14 - Base Application by Microsoft version 27.0.0.0\n \"Whse.-Activity-Register\"(CodeUnit 7307).OnRun(Trigger) line 4 - Base Application by Microsoft version 27.0.0.0\n \"Whse.-Act.-Register (Yes/No)\"(CodeUnit 7306).Code line 19 - Base Application by Microsoft version 27.0.0.0\n \"Whse.-Act.-Register (Yes/No)\"(CodeUnit 7306).OnRun(Trigger) line 3 - Base Application by Microsoft version 27.0.0.0\n \"Whse. Put-away Subform\"(Page 5771).RegisterPutAwayYesNo line 14 - Base Application by Microsoft version 27.0.0.0\n \"Warehouse Put-away\"(Page 5770).RegisterPutAwayYesNo line 2 - Base Application by Microsoft version 27.0.0.0\n \"Warehouse Put-away\"(Page 5770).\"&Register Put-away - OnAction\"(Trigger) line 2 - Base Application by Microsoft version 27.0.0.0\n \"SCM Warehouse - Receiving\"(CodeUnit 137152).RegisterPutAwayWithBreakBulkFilterShouldRegisterAllLines line 46 - Tests-SCM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0", "metrics": {"execution_time": 158.0, "llm_duration": null, "turn_count": 14, "prompt_tokens": 437900, "completion_tokens": 5900, "tool_usage": {"rg": 13, "report_intent": 2, "glob": 1, "view": 14, "apply_patch": 2, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} + +{"instance_id": "microsoftInternal__NAV-223202__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al\nindex 84769ae0..b19ed7e7 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al\n@@ -252,11 +252,11 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ProdOrderComp: Record \"Prod. Order Component\";\n ProdOrderRtngLine: Record \"Prod. Order Routing Line\";\n ExpOperCost: Decimal;\n- ExpMfgDirCost: Decimal;\n+ ExpLineMatCost: Decimal;\n+ ExpLineMfgDirCost: Decimal;\n ExpCapDirCostRtng: Decimal;\n ExpSubDirCostRtng: Decimal;\n ExpCapOvhdCostRtng: Decimal;\n- ExpOvhdCost: Decimal;\n begin\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\");\n ProdOrderComp.SetRange(Status, ProdOrderLine.Status);\n@@ -268,7 +268,7 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n #endif\n if ProdOrderComp.Find('-') then\n repeat\n- ExpMatCost := ExpMatCost + ProdOrderComp.\"Cost Amount\";\n+ ExpLineMatCost += ProdOrderComp.\"Cost Amount\";\n until ProdOrderComp.Next() = 0;\n \n ProdOrderRtngLine.SetRange(Status, ProdOrderLine.Status);\n@@ -301,13 +301,18 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ExpCapOvhdCostRtng := ExpCapOvhdCostRtng + ProdOrderRtngLine.\"Expected Capacity Ovhd. Cost\";\n until ProdOrderRtngLine.Next() = 0;\n \n- ExpCapDirCost := ExpCapDirCost + Round(ExpCapDirCostRtng * ShareOfTotalCapCost);\n- ExpSubDirCost := ExpSubDirCost + Round(ExpSubDirCostRtng * ShareOfTotalCapCost);\n- ExpCapOvhdCost := ExpCapOvhdCost + Round(ExpCapOvhdCostRtng * ShareOfTotalCapCost);\n- ExpMfgDirCost := ExpMatCost + ExpCapDirCost + ExpSubDirCost + ExpCapOvhdCost;\n- ExpOvhdCost := ExpMfgOvhdCost + ProdOrderLine.\"Overhead Rate\" * ProdOrderLine.\"Quantity (Base)\";\n- ExpMfgOvhdCost := ExpOvhdCost +\n- Round(CostCalculationMgt.CalcOvhdCost(ExpMfgDirCost, ProdOrderLine.\"Indirect Cost %\", 0, 0));\n+ ExpCapDirCostRtng := Round(ExpCapDirCostRtng * ShareOfTotalCapCost);\n+ ExpSubDirCostRtng := Round(ExpSubDirCostRtng * ShareOfTotalCapCost);\n+ ExpCapOvhdCostRtng := Round(ExpCapOvhdCostRtng * ShareOfTotalCapCost);\n+\n+ ExpMatCost += ExpLineMatCost;\n+ ExpCapDirCost += ExpCapDirCostRtng;\n+ ExpSubDirCost += ExpSubDirCostRtng;\n+ ExpCapOvhdCost += ExpCapOvhdCostRtng;\n+\n+ ExpLineMfgDirCost := ExpLineMatCost + ExpCapDirCostRtng + ExpSubDirCostRtng + ExpCapOvhdCostRtng;\n+ ExpMfgOvhdCost += ProdOrderLine.\"Overhead Rate\" * ProdOrderLine.\"Quantity (Base)\" +\n+ Round(CostCalculationMgt.CalcOvhdCost(ExpLineMfgDirCost, ProdOrderLine.\"Indirect Cost %\", 0, 0));\n \n OnAfterCalcProdOrderLineExpCost(ProdOrderLine, ShareOfTotalCapCost, ExpMatCost, ExpCapDirCost, ExpSubDirCost, ExpCapOvhdCost, ExpMfgOvhdCost);\n #if not CLEAN26\n@@ -322,11 +327,12 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ProdOrderComp: Record \"Prod. Order Component\";\n ProdOrderRtngLine: Record \"Prod. Order Routing Line\";\n ExpOperCost: Decimal;\n- ExpMfgDirCost: Decimal;\n+ ExpLineMatCost: Decimal;\n+ ExpLineNonInvMatCost: Decimal;\n+ ExpLineMfgDirCost: Decimal;\n ExpCapDirCostRtng: Decimal;\n ExpSubDirCostRtng: Decimal;\n ExpCapOvhdCostRtng: Decimal;\n- ExpOvhdCost: Decimal;\n begin\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\");\n ProdOrderComp.SetRange(Status, ProdOrderLine.Status);\n@@ -336,9 +342,9 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n repeat\n Item.Get(ProdOrderComp.\"Item No.\");\n if Item.IsNonInventoriableType() then\n- ExpNonInvMatCost += ProdOrderComp.\"Cost Amount\"\n+ ExpLineNonInvMatCost += ProdOrderComp.\"Cost Amount\"\n else\n- ExpMatCost := ExpMatCost + ProdOrderComp.\"Cost Amount\";\n+ ExpLineMatCost += ProdOrderComp.\"Cost Amount\";\n until ProdOrderComp.Next() = 0;\n \n ProdOrderRtngLine.SetRange(Status, ProdOrderLine.Status);\n@@ -363,13 +369,19 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ExpCapOvhdCostRtng := ExpCapOvhdCostRtng + ProdOrderRtngLine.\"Expected Capacity Ovhd. Cost\";\n until ProdOrderRtngLine.Next() = 0;\n \n- ExpCapDirCost := ExpCapDirCost + Round(ExpCapDirCostRtng * ShareOfTotalCapCost);\n- ExpSubDirCost := ExpSubDirCost + Round(ExpSubDirCostRtng * ShareOfTotalCapCost);\n- ExpCapOvhdCost := ExpCapOvhdCost + Round(ExpCapOvhdCostRtng * ShareOfTotalCapCost);\n- ExpMfgDirCost := ExpMatCost + ExpNonInvMatCost + ExpCapDirCost + ExpSubDirCost + ExpCapOvhdCost;\n- ExpOvhdCost := ExpMfgOvhdCost + ProdOrderLine.\"Overhead Rate\" * ProdOrderLine.\"Quantity (Base)\";\n- ExpMfgOvhdCost := ExpOvhdCost +\n- Round(CostCalculationMgt.CalcOvhdCost(ExpMfgDirCost, ProdOrderLine.\"Indirect Cost %\", 0, 0));\n+ ExpCapDirCostRtng := Round(ExpCapDirCostRtng * ShareOfTotalCapCost);\n+ ExpSubDirCostRtng := Round(ExpSubDirCostRtng * ShareOfTotalCapCost);\n+ ExpCapOvhdCostRtng := Round(ExpCapOvhdCostRtng * ShareOfTotalCapCost);\n+\n+ ExpMatCost += ExpLineMatCost;\n+ ExpNonInvMatCost += ExpLineNonInvMatCost;\n+ ExpCapDirCost += ExpCapDirCostRtng;\n+ ExpSubDirCost += ExpSubDirCostRtng;\n+ ExpCapOvhdCost += ExpCapOvhdCostRtng;\n+\n+ ExpLineMfgDirCost := ExpLineMatCost + ExpLineNonInvMatCost + ExpCapDirCostRtng + ExpSubDirCostRtng + ExpCapOvhdCostRtng;\n+ ExpMfgOvhdCost += ProdOrderLine.\"Overhead Rate\" * ProdOrderLine.\"Quantity (Base)\" +\n+ Round(CostCalculationMgt.CalcOvhdCost(ExpLineMfgDirCost, ProdOrderLine.\"Indirect Cost %\", 0, 0));\n end;\n \n procedure CalcProdOrderLineActCost(ProdOrderLine: Record \"Prod. Order Line\"; var ActMatCost: Decimal; var ActCapDirCost: Decimal; var ActSubDirCost: Decimal; var ActCapOvhdCost: Decimal; var ActMfgOvhdCost: Decimal; var ActMatCostCostACY: Decimal; var ActCapDirCostACY: Decimal; var ActSubDirCostACY: Decimal; var ActCapOvhdCostACY: Decimal; var ActMfgOvhdCostACY: Decimal)\n@@ -1011,4 +1023,4 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n local procedure OnAfterCalculateCostTime(MfgItemQtyBase: Decimal; ScrapFactorPctAccum: Decimal; FixedScrapQtyAccum: Decimal; UnitCostCalculationType: Enum \"Unit Cost Calculation Type\"; var CostTime: Decimal)\n begin\n end;\n-}\n\\ No newline at end of file\n+}\n", "error_message": null, "metrics": {"execution_time": 114.0, "llm_duration": null, "turn_count": 9, "prompt_tokens": 294500, "completion_tokens": 4500, "tool_usage": {"rg": 8, "glob": 1, "report_intent": 3, "view": 7, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-223493__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al b/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al\nindex 6a5f0a88..cbde0e40 100644\n--- a/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al\n@@ -65,6 +65,8 @@ codeunit 1409 \"Sales Inv. Header - Edit\"\n if DisputeStatus.get(SalesInvoiceHeader.\"Dispute Status\") then\n if DisputeStatus.\"Overwrite on hold\" then\n CustLedgerEntry.\"On Hold\" := Copystr(MarkedAsOnHoldLbl, 1, MaxStrLen(CustLedgerEntry.\"On Hold\"));\n+ if CustLedgerEntry.\"On Hold\" = '' then\n+ CustLedgerEntry.\"Your Reference\" := SalesInvoiceHeader.\"Your Reference\";\n CustLedgerEntry.\"Dispute Status\" := SalesInvoiceHeader.\"Dispute Status\";\n OnBeforeUpdateCustLedgerEntryAfterSetValues(CustLedgerEntry, SalesInvoiceHeader);\n CustEntryEdit.SetCalledFromSalesInvoice(true);\ndiff --git a/App/Layers/W1/BaseApp/Sales/Receivables/CustEntryEdit.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Receivables/CustEntryEdit.Codeunit.al\nindex c64fa944..ececfbac 100644\n--- a/App/Layers/W1/BaseApp/Sales/Receivables/CustEntryEdit.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Receivables/CustEntryEdit.Codeunit.al\n@@ -57,6 +57,7 @@ codeunit 103 \"Cust. Entry-Edit\"\n CustLedgEntry.\"Direct Debit Mandate ID\" := Rec.\"Direct Debit Mandate ID\";\n end;\n CustLedgEntry.Description := Rec.Description;\n+ CustLedgEntry.\"Your Reference\" := Rec.\"Your Reference\";\n CustLedgEntry.Validate(\"Exported to Payment File\", Rec.\"Exported to Payment File\");\n CustLedgEntry.Validate(\"Promised Pay Date\", Rec.\"Promised Pay Date\");\n CustLedgEntry.Validate(\"Dispute Status\", Rec.\"Dispute Status\");\n@@ -120,6 +121,7 @@ codeunit 103 \"Cust. Entry-Edit\"\n (CurrCustLedgerEntry.\"Due Date\" <> NewCustLedgerEntry.\"Due Date\") or\n (CurrCustLedgerEntry.\"Payment Method Code\" <> NewCustLedgerEntry.\"Payment Method Code\") or\n (CurrCustLedgerEntry.\"Payment Reference\" <> NewCustLedgerEntry.\"Payment Reference\") or\n+ (CurrCustLedgerEntry.\"Your Reference\" <> NewCustLedgerEntry.\"Your Reference\") or\n (CurrCustLedgerEntry.\"Message to Recipient\" <> NewCustLedgerEntry.\"Message to Recipient\") or\n (CurrCustLedgerEntry.\"Recipient Bank Account\" <> NewCustLedgerEntry.\"Recipient Bank Account\") or\n (CurrCustLedgerEntry.\"On Hold\" <> NewCustLedgerEntry.\"On Hold\");\n", "error_message": null, "metrics": {"execution_time": 204.0, "llm_duration": null, "turn_count": 18, "prompt_tokens": 637400, "completion_tokens": 7300, "tool_usage": {"rg": 16, "report_intent": 4, "glob": 7, "view": 12, "powershell": 3, "apply_patch": 3}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-223790__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Planning/CalculatePlanPlanWksh.Report.al b/App/Layers/W1/BaseApp/Inventory/Planning/CalculatePlanPlanWksh.Report.al\nindex 6cfcec2b..c937d2f5 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Planning/CalculatePlanPlanWksh.Report.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Planning/CalculatePlanPlanWksh.Report.al\n@@ -4,10 +4,13 @@\n // ------------------------------------------------------------------------------------------------\n namespace Microsoft.Manufacturing.Planning;\n \n+using Microsoft.Inventory.BOM.Tree;\n using Microsoft.Inventory.Item;\n+using Microsoft.Inventory.Location;\n using Microsoft.Inventory.Planning;\n using Microsoft.Inventory.Requisition;\n using Microsoft.Inventory.Setup;\n+using Microsoft.Manufacturing.Setup;\n \n report 99001017 \"Calculate Plan - Plan. Wksh.\"\n {\n@@ -80,6 +83,8 @@ report 99001017 \"Calculate Plan - Plan. Wksh.\"\n begin\n OnBeforeItemOnPreDataItem(Item);\n \n+ UpdateLowLevelCodeForStockkeepingUnits();\n+\n if GuiAllowed then\n OpenWindow();\n \n@@ -338,6 +343,24 @@ report 99001017 \"Calculate Plan - Plan. Wksh.\"\n end;\n end;\n \n+ local procedure UpdateLowLevelCodeForStockkeepingUnits()\n+ var\n+ ManufacturingSetup: Record \"Manufacturing Setup\";\n+ StockkeepingUnit: Record \"Stockkeeping Unit\";\n+ LowLevelCodeCalculator: Codeunit \"Low-Level Code Calculator\";\n+ begin\n+ if not ManufacturingSetup.Get() then\n+ exit;\n+ if not ManufacturingSetup.\"Dynamic Low-Level Code\" then\n+ exit;\n+\n+ StockkeepingUnit.SetFilter(\"Production BOM No.\", '<> %1', '');\n+ if StockkeepingUnit.IsEmpty() then\n+ exit;\n+\n+ LowLevelCodeCalculator.Calculate(false);\n+ end;\n+\n local procedure InitializeFromSetup()\n var\n IsHandled: Boolean;\ndiff --git a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/LowLevelCodeCalculator.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/LowLevelCodeCalculator.Codeunit.al\nindex fcabc2e0..0625fd44 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/LowLevelCodeCalculator.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/LowLevelCodeCalculator.Codeunit.al\n@@ -6,6 +6,7 @@ namespace Microsoft.Inventory.BOM.Tree;\n \n using Microsoft.Inventory.BOM;\n using Microsoft.Inventory.Item;\n+using Microsoft.Inventory.Location;\n using Microsoft.Manufacturing.ProductionBOM;\n using System.Threading;\n using System.Utilities;\n@@ -164,14 +165,17 @@ codeunit 3687 \"Low-Level Code Calculator\"\n local procedure PopulateFromItemAndRelatedBOMs(BOMStructure: Codeunit \"BOM Tree\")\n var\n Item: Record Item;\n+ StockkeepingUnit: Record \"Stockkeeping Unit\";\n Parent: Codeunit \"BOM Node\";\n Child: Codeunit \"BOM Node\";\n ItemProductionBOMs: Query \"Item Production BOMs\";\n+ StockkeepingUnitProductionBOMs: Query \"Stockkeeping Unit Production BOMs\";\n Progressed: Integer;\n TotalItemCount: Integer;\n begin\n Item.SetFilter(\"Production BOM No.\", '<> %1', '');\n- TotalItemCount := Item.Count();\n+ StockkeepingUnit.SetFilter(\"Production BOM No.\", '<> %1', '');\n+ TotalItemCount := Item.Count() + StockkeepingUnit.Count();\n \n ItemProductionBOMs.SetFilter(BOMStatus, '<>%1', Enum::\"BOM Status\"::Closed);\n ItemProductionBOMs.Open();\n@@ -190,6 +194,24 @@ codeunit 3687 \"Low-Level Code Calculator\"\n Clear(Child);\n end;\n ItemProductionBOMs.Close();\n+\n+ StockkeepingUnitProductionBOMs.SetFilter(BOMStatus, '<>%1', Enum::\"BOM Status\"::Closed);\n+ StockkeepingUnitProductionBOMs.Open();\n+ while StockkeepingUnitProductionBOMs.Read() do\n+ if CheckStockkeepingUnitProductionBOMIsCertified(StockkeepingUnitProductionBOMs) then begin\n+ Progressed += 1;\n+ LowLevelCodeParam.ShowDetails(StrSubstNo(RecordDetailsLbl, StockkeepingUnit.TableCaption(), StockkeepingUnitProductionBOMs.Item_No_), Progressed, TotalItemCount);\n+\n+ Parent.CreateForItem(StockkeepingUnitProductionBOMs.Item_No_, StockkeepingUnitProductionBOMs.Item_Low_Level_Code, LowLevelCodeParam);\n+ Child.CreateForProdBOM(StockkeepingUnitProductionBOMs.Production_BOM_No_, StockkeepingUnitProductionBOMs.BOM_Low_Level_Code, LowLevelCodeParam);\n+\n+ AddChildToParent(BOMStructure, Parent, Child);\n+\n+ // ensure that next nodes created are new instances\n+ Clear(Parent);\n+ Clear(Child);\n+ end;\n+ StockkeepingUnitProductionBOMs.Close();\n end;\n \n local procedure PopulateFromProductionBOMAndLines(BOMStructure: Codeunit \"BOM Tree\")\n@@ -296,8 +318,18 @@ codeunit 3687 \"Low-Level Code Calculator\"\n exit(VersionManagement.GetBOMVersion(ItemProductionBOMs.Production_BOM_No_, WorkDate(), true) <> '');\n end;\n \n+ local procedure CheckStockkeepingUnitProductionBOMIsCertified(var StockkeepingUnitProductionBOMs: Query \"Stockkeeping Unit Production BOMs\"): Boolean\n+ var\n+ VersionManagement: Codeunit VersionManagement;\n+ begin\n+ if StockkeepingUnitProductionBOMs.BOMStatus = StockkeepingUnitProductionBOMs.BOMStatus::Certified then\n+ exit(true);\n+\n+ exit(VersionManagement.GetBOMVersion(StockkeepingUnitProductionBOMs.Production_BOM_No_, WorkDate(), true) <> '');\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnAfterCalculate()\n begin\n end;\n-}\n\\ No newline at end of file\n+}\ndiff --git a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/StockkeepingUnitProductionBOMs.Query.al b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/StockkeepingUnitProductionBOMs.Query.al\nnew file mode 100644\nindex 00000000..b8082585\n--- /dev/null\n+++ b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/StockkeepingUnitProductionBOMs.Query.al\n@@ -0,0 +1,45 @@\n+// ------------------------------------------------------------------------------------------------\n+// Copyright (c) Microsoft Corporation. All rights reserved.\n+// Licensed under the MIT License. See License.txt in the project root for license information.\n+// ------------------------------------------------------------------------------------------------\n+namespace Microsoft.Manufacturing.ProductionBOM;\n+\n+using Microsoft.Inventory.Item;\n+using Microsoft.Inventory.Location;\n+\n+query 3690 \"Stockkeeping Unit Production BOMs\"\n+{\n+ QueryType = Normal;\n+\n+ elements\n+ {\n+ dataitem(Stockkeeping_Unit; \"Stockkeeping Unit\")\n+ {\n+ column(Item_No_; \"Item No.\")\n+ {\n+ }\n+ dataitem(Item; Item)\n+ {\n+ DataItemLink = \"No.\" = Stockkeeping_Unit.\"Item No.\";\n+\n+ column(Item_Low_Level_Code; \"Low-Level Code\")\n+ {\n+ }\n+ dataitem(Production_BOM_Header; \"Production BOM Header\")\n+ {\n+ DataItemLink = \"No.\" = Stockkeeping_Unit.\"Production BOM No.\";\n+\n+ column(Production_BOM_No_; \"No.\")\n+ {\n+ }\n+ column(BOMStatus; Status)\n+ {\n+ }\n+ column(BOM_Low_Level_Code; \"Low-Level Code\")\n+ {\n+ }\n+ }\n+ }\n+ }\n+ }\n+}\n", "error_message": "Build or publish failed for App\\Layers\\W1\\BaseApp:\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Manufacturing\\ProductionBOM\\StockkeepingUnitProductionBOMs.Query.al(10,12): error AL0305: The length of the application object identifier 'Stockkeeping Unit Production BOMs' cannot exceed 30 characters.", "metrics": {"execution_time": 528.0, "llm_duration": null, "turn_count": 42, "prompt_tokens": 3300000, "completion_tokens": 18800, "tool_usage": {"glob": 4, "rg": 47, "report_intent": 11, "view": 42, "powershell": 3, "apply_patch": 3}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": false} + +{"instance_id": "microsoftInternal__NAV-224447__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/SendReminder.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Reminder/SendReminder.Codeunit.al\nindex 94cce9d1..fa9ebb23 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/SendReminder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/SendReminder.Codeunit.al\n@@ -43,6 +43,20 @@ codeunit 545 \"Send Reminder\"\n Rec.ClearSentEmailFieldsOnLevelUpdate(Rec);\n end;\n \n+ [EventSubscriber(ObjectType::Table, Database::\"Report Selections\", 'OnAfterIsCustomerAccount', '', false, false)]\n+ local procedure SetIssuedReminderAsCustomerAccount(DocumentTableId: Integer; var IsCustomer: Boolean)\n+ begin\n+ if DocumentTableId = Database::\"Issued Reminder Header\" then\n+ IsCustomer := true;\n+ end;\n+\n+ [EventSubscriber(ObjectType::Table, Database::\"Report Selections\", 'OnSendEmailDirectlyOnAfterSetFieldName', '', false, false)]\n+ local procedure SetIssuedReminderCustomerFieldName(DocumentTableId: Integer; var FieldName: Text)\n+ begin\n+ if DocumentTableId = Database::\"Issued Reminder Header\" then\n+ FieldName := 'Customer No.';\n+ end;\n+\n procedure UpdateReminderSentFromUI(var IssuedReminderHeader: Record \"Issued Reminder Header\")\n var\n SelectedOption: Integer;\n", "error_message": null, "metrics": {"execution_time": 251.0, "llm_duration": null, "turn_count": 23, "prompt_tokens": 1300000, "completion_tokens": 7400, "tool_usage": {"rg": 27, "report_intent": 3, "glob": 1, "view": 28, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-224668__cf-1", "project": "EssentialBusinessHeadlines", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\nindex 831aa80e..10436a09 100644\n--- a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n+++ b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n@@ -677,7 +677,7 @@ codeunit 1437 \"Essential Bus. Headline Mgt.\"\n var\n EssentialBusinessHeadline: Record \"Ess. Business Headline Per Usr\";\n begin\n- if EssentialBusinessHeadline.Get(HeadlineName) then begin\n+ if EssentialBusinessHeadline.Get(HeadlineName, UserSecurityId()) then begin\n EssentialBusinessHeadline.Validate(\"Headline Visible\", false);\n EssentialBusinessHeadline.Modify();\n end;\n", "error_message": null, "metrics": {"execution_time": 55.0, "llm_duration": null, "turn_count": 7, "prompt_tokens": 117700, "completion_tokens": 1700, "tool_usage": {"rg": 5, "glob": 1, "report_intent": 3, "view": 4, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-224668__cf-2", "project": "EssentialBusinessHeadlines", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\nindex 831aa80e..85601ca7 100644\n--- a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n+++ b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n@@ -677,10 +677,14 @@ codeunit 1437 \"Essential Bus. Headline Mgt.\"\n var\n EssentialBusinessHeadline: Record \"Ess. Business Headline Per Usr\";\n begin\n- if EssentialBusinessHeadline.Get(HeadlineName) then begin\n- EssentialBusinessHeadline.Validate(\"Headline Visible\", false);\n- EssentialBusinessHeadline.Modify();\n- end;\n+ if not EssentialBusinessHeadline.Get(HeadlineName, UserSecurityId()) then\n+ exit;\n+\n+ if not EssentialBusinessHeadline.\"Headline Visible\" then\n+ exit;\n+\n+ EssentialBusinessHeadline.Validate(\"Headline Visible\", false);\n+ EssentialBusinessHeadline.Modify();\n end;\n \n procedure FormatCurrency(AmountToFormat: Decimal; CurrencyCode: Code[10]): Text\n", "error_message": null, "metrics": {"execution_time": 87.0, "llm_duration": null, "turn_count": 10, "prompt_tokens": 210400, "completion_tokens": 2600, "tool_usage": {"rg": 6, "glob": 1, "view": 7, "report_intent": 2, "apply_patch": 2, "powershell": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-224668__cf-3", "project": "EssentialBusinessHeadlines", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\nindex 831aa80e..6e66728c 100644\n--- a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n+++ b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n@@ -677,10 +677,9 @@ codeunit 1437 \"Essential Bus. Headline Mgt.\"\n var\n EssentialBusinessHeadline: Record \"Ess. Business Headline Per Usr\";\n begin\n- if EssentialBusinessHeadline.Get(HeadlineName) then begin\n- EssentialBusinessHeadline.Validate(\"Headline Visible\", false);\n- EssentialBusinessHeadline.Modify();\n- end;\n+ EssentialBusinessHeadline.GetOrCreateHeadline(HeadlineName);\n+ EssentialBusinessHeadline.Validate(\"Headline Visible\", false);\n+ EssentialBusinessHeadline.Modify();\n end;\n \n procedure FormatCurrency(AmountToFormat: Decimal; CurrencyCode: Code[10]): Text\n", "error_message": null, "metrics": {"execution_time": 67.0, "llm_duration": null, "turn_count": 7, "prompt_tokens": 136400, "completion_tokens": 2200, "tool_usage": {"rg": 5, "glob": 1, "report_intent": 4, "view": 6, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-226875__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\nindex fa043e01..8955f282 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n@@ -119,7 +119,9 @@ page 254 \"Purchase Journal\"\n Rec.Validate(Amount, Abs(Rec.Amount))\n else\n if Rec.Amount > 0 then\n- Rec.Validate(Amount, -1 * Rec.Amount)\n+ Rec.Validate(Amount, -1 * Rec.Amount);\n+\n+ UpdateVendorName();\n end;\n }\n field(\"Document No.\"; Rec.\"Document No.\")\n@@ -154,6 +156,7 @@ page 254 \"Purchase Journal\"\n trigger OnValidate()\n begin\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ UpdateVendorName();\n EnableApplyEntriesAction();\n CurrPage.SaveRecord();\n end;\n@@ -166,11 +169,12 @@ page 254 \"Purchase Journal\"\n trigger OnValidate()\n begin\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ UpdateVendorName();\n Rec.ShowShortcutDimCode(ShortcutDimCode);\n CurrPage.SaveRecord();\n end;\n }\n- field(\"\"; AccName)\n+ field(\"\"; VendorName)\n {\n ApplicationArea = Basic, Suite;\n Caption = 'Vendor Name';\n@@ -379,6 +383,8 @@ page 254 \"Purchase Journal\"\n \n trigger OnValidate()\n begin\n+ GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ UpdateVendorName();\n EnableApplyEntriesAction();\n end;\n }\n@@ -390,6 +396,7 @@ page 254 \"Purchase Journal\"\n trigger OnValidate()\n begin\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ UpdateVendorName();\n Rec.ShowShortcutDimCode(ShortcutDimCode);\n CurrPage.SaveRecord();\n end;\n@@ -1494,6 +1501,7 @@ page 254 \"Purchase Journal\"\n begin\n HasIncomingDocument := Rec.\"Incoming Document Entry No.\" <> 0;\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ UpdateVendorName();\n UpdateBalance();\n EnableApplyEntriesAction();\n SetControlAppearance();\n@@ -1508,6 +1516,7 @@ page 254 \"Purchase Journal\"\n Rec.ShowShortcutDimCode(ShortcutDimCode);\n DocumentAmount := Abs(Rec.Amount);\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ UpdateVendorName();\n CurrPage.IncomingDocAttachFactBox.PAGE.SetCurrentRecordID(Rec.RecordId());\n ApprovalMgmt.GetGenJnlLineApprovalStatus(Rec, GenJnlLineApprovalStatus, EnabledGenJnlLineWorkflowsExist);\n end;\n@@ -1639,6 +1648,7 @@ page 254 \"Purchase Journal\"\n ShortcutDimCode: array[8] of Code[20];\n AccName: Text[100];\n BalAccName: Text[100];\n+ VendorName: Text[100];\n DimVisible1: Boolean;\n DimVisible2: Boolean;\n DimVisible3: Boolean;\n@@ -1668,6 +1678,22 @@ page 254 \"Purchase Journal\"\n (Rec.\"Bal. Account Type\" in [Rec.\"Bal. Account Type\"::Customer, Rec.\"Bal. Account Type\"::Vendor]);\n end;\n \n+ local procedure UpdateVendorName()\n+ begin\n+ VendorName := '';\n+\n+ if Rec.\"Document Type\" <> Rec.\"Document Type\"::Invoice then\n+ exit;\n+\n+ if Rec.\"Account Type\" = Rec.\"Account Type\"::Vendor then begin\n+ VendorName := AccName;\n+ exit;\n+ end;\n+\n+ if Rec.\"Bal. Account Type\" = Rec.\"Bal. Account Type\"::Vendor then\n+ VendorName := BalAccName;\n+ end;\n+\n local procedure CurrentJnlBatchNameOnAfterVali()\n begin\n CurrPage.SaveRecord();\n", "error_message": null, "metrics": {"execution_time": 176.0, "llm_duration": null, "turn_count": 18, "prompt_tokens": 724600, "completion_tokens": 7800, "tool_usage": {"rg": 10, "glob": 2, "report_intent": 2, "view": 18, "apply_patch": 5, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-227153__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\nindex e033f91e..31123875 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\n@@ -483,6 +483,7 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n repeat\n DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\");\n DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", PostingGr);\n \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n DtldCustLedgEntry.CalcSums(\"Amount (LCY)\");\n CustAccAmount := CustAccAmount + DtldCustLedgEntry.\"Amount (LCY)\";\n@@ -505,6 +506,7 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\", \"Entry Type\");\n DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", PostingGr);\n \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n DtldCustLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n CustCreditAmount := CustCreditAmount + DtldCustLedgEntry.\"Credit Amount (LCY)\";\n@@ -527,6 +529,7 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\", \"Entry Type\");\n DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", PostingGr);\n \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n DtldCustLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n CustDebitAmount := CustDebitAmount + DtldCustLedgEntry.\"Debit Amount (LCY)\";\n@@ -548,6 +551,7 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n repeat\n DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\");\n DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n+ DtldVendLedgEntry.SetRange(\"Posting Group\", PostingGr);\n \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n DtldVendLedgEntry.CalcSums(\"Amount (LCY)\");\n VendAccAmount := VendAccAmount + DtldVendLedgEntry.\"Amount (LCY)\";\n@@ -570,6 +574,7 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\", \"Entry Type\");\n DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ DtldVendLedgEntry.SetRange(\"Posting Group\", PostingGr);\n \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n DtldVendLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n VendCreditAmount := VendCreditAmount + DtldVendLedgEntry.\"Credit Amount (LCY)\";\n@@ -592,6 +597,7 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\", \"Entry Type\");\n DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ DtldVendLedgEntry.SetRange(\"Posting Group\", PostingGr);\n \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n DtldVendLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n VendDebitAmount := VendDebitAmount + DtldVendLedgEntry.\"Debit Amount (LCY)\";\n@@ -614,6 +620,7 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n DtldCustLedgEntry.SetRange(\"Currency Code\", CurrencyCode);\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", Cust.\"Customer Posting Group\");\n \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n DtldCustLedgEntry.CalcSums(\"Amount (LCY)\");\n CurrGainLossAmount := CurrGainLossAmount + DtldCustLedgEntry.\"Amount (LCY)\";\n@@ -625,6 +632,7 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n DtldVendLedgEntry.SetRange(\"Currency Code\", CurrencyCode);\n+ DtldVendLedgEntry.SetRange(\"Posting Group\", Vend.\"Vendor Posting Group\");\n \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n DtldVendLedgEntry.CalcSums(\"Amount (LCY)\");\n CurrGainLossAmount := CurrGainLossAmount + DtldVendLedgEntry.\"Amount (LCY)\";\n", "error_message": null, "metrics": {"execution_time": 128.0, "llm_duration": null, "turn_count": 10, "prompt_tokens": 453200, "completion_tokens": 5700, "tool_usage": {"glob": 1, "rg": 11, "report_intent": 7, "view": 9, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-227153__cf-2", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\nindex e033f91e..8ab765cd 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\n@@ -472,132 +472,82 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n \n local procedure CalcCustAccAmount(PostingGr: Code[20]): Decimal\n var\n- Cust: Record Customer;\n DtldCustLedgEntry: Record \"Detailed Cust. Ledg. Entry\";\n- CustAccAmount: Decimal;\n begin\n- Cust.SetCurrentKey(\"Customer Posting Group\");\n- Cust.SetRange(\"Customer Posting Group\", PostingGr);\n-\n- if Cust.Find('-') then\n- repeat\n- DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\");\n- DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n- DtldCustLedgEntry.CalcSums(\"Amount (LCY)\");\n- CustAccAmount := CustAccAmount + DtldCustLedgEntry.\"Amount (LCY)\";\n- until Cust.Next() = 0;\n-\n- exit(CustAccAmount);\n+ DtldCustLedgEntry.SetCurrentKey(\"Initial Document Type\", \"Entry Type\", \"Customer No.\", \"Currency Code\", \"Initial Entry Global Dim. 1\", \"Initial Entry Global Dim. 2\", \"Posting Date\");\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ DtldCustLedgEntry.SetRange(\"Initial Document Type\", DtldCustLedgEntry.\"Initial Document Type\"::Payment);\n+ DtldCustLedgEntry.SetRange(\"Entry Type\", DtldCustLedgEntry.\"Entry Type\"::\"Initial Entry\");\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n+ DtldCustLedgEntry.CalcSums(\"Amount (LCY)\");\n+\n+ exit(DtldCustLedgEntry.\"Amount (LCY)\");\n end;\n \n local procedure CalcCustCreditAmount(PostingGr: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n var\n- Cust: Record Customer;\n DtldCustLedgEntry: Record \"Detailed Cust. Ledg. Entry\";\n- CustCreditAmount: Decimal;\n begin\n- Cust.SetCurrentKey(\"Customer Posting Group\");\n- Cust.SetRange(\"Customer Posting Group\", PostingGr);\n+ DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Entry Type\", \"Posting Date\", \"Initial Document Type\");\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n+ DtldCustLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n \n- if Cust.Find('-') then\n- repeat\n- DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\", \"Entry Type\");\n- DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n- DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n- DtldCustLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n- CustCreditAmount := CustCreditAmount + DtldCustLedgEntry.\"Credit Amount (LCY)\";\n- until Cust.Next() = 0;\n-\n- exit(CustCreditAmount);\n+ exit(DtldCustLedgEntry.\"Credit Amount (LCY)\");\n end;\n \n local procedure CalcCustDebitAmount(PostingGr: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n var\n- Cust: Record Customer;\n DtldCustLedgEntry: Record \"Detailed Cust. Ledg. Entry\";\n- CustDebitAmount: Decimal;\n begin\n- Cust.SetCurrentKey(\"Customer Posting Group\");\n- Cust.SetRange(\"Customer Posting Group\", PostingGr);\n-\n- if Cust.Find('-') then\n- repeat\n- DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\", \"Entry Type\");\n- DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n- DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n- DtldCustLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n- CustDebitAmount := CustDebitAmount + DtldCustLedgEntry.\"Debit Amount (LCY)\";\n- until Cust.Next() = 0;\n+ DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Entry Type\", \"Posting Date\", \"Initial Document Type\");\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n+ DtldCustLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n \n- exit(-CustDebitAmount);\n+ exit(-DtldCustLedgEntry.\"Debit Amount (LCY)\");\n end;\n \n local procedure CalcVendAccAmount(PostingGr: Code[20]): Decimal\n var\n- Vend: Record Vendor;\n DtldVendLedgEntry: Record \"Detailed Vendor Ledg. Entry\";\n- VendAccAmount: Decimal;\n begin\n- Vend.SetCurrentKey(\"Vendor Posting Group\");\n- Vend.SetRange(\"Vendor Posting Group\", PostingGr);\n-\n- if Vend.Find('-') then\n- repeat\n- DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\");\n- DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n- DtldVendLedgEntry.CalcSums(\"Amount (LCY)\");\n- VendAccAmount := VendAccAmount + DtldVendLedgEntry.\"Amount (LCY)\";\n- until Vend.Next() = 0;\n-\n- exit(VendAccAmount);\n+ DtldVendLedgEntry.SetCurrentKey(\"Initial Document Type\", \"Entry Type\", \"Vendor No.\", \"Currency Code\", \"Initial Entry Global Dim. 1\", \"Initial Entry Global Dim. 2\", \"Posting Date\");\n+ DtldVendLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ DtldVendLedgEntry.SetRange(\"Initial Document Type\", DtldVendLedgEntry.\"Initial Document Type\"::Payment);\n+ DtldVendLedgEntry.SetRange(\"Entry Type\", DtldVendLedgEntry.\"Entry Type\"::\"Initial Entry\");\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n+ DtldVendLedgEntry.CalcSums(\"Amount (LCY)\");\n+\n+ exit(DtldVendLedgEntry.\"Amount (LCY)\");\n end;\n \n local procedure CalcVendCreditAmount(PostingGr: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n var\n- Vend: Record Vendor;\n DtldVendLedgEntry: Record \"Detailed Vendor Ledg. Entry\";\n- VendCreditAmount: Decimal;\n begin\n- Vend.SetCurrentKey(\"Vendor Posting Group\");\n- Vend.SetRange(\"Vendor Posting Group\", PostingGr);\n+ DtldVendLedgEntry.SetCurrentKey(\"Entry Type\", \"Vendor No.\", \"Posting Date\");\n+ DtldVendLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n+ DtldVendLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n \n- if Vend.Find('-') then\n- repeat\n- DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\", \"Entry Type\");\n- DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n- DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n- DtldVendLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n- VendCreditAmount := VendCreditAmount + DtldVendLedgEntry.\"Credit Amount (LCY)\";\n- until Vend.Next() = 0;\n-\n- exit(VendCreditAmount);\n+ exit(DtldVendLedgEntry.\"Credit Amount (LCY)\");\n end;\n \n local procedure CalcVendDebitAmount(PostingGr: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n var\n- Vend: Record Vendor;\n DtldVendLedgEntry: Record \"Detailed Vendor Ledg. Entry\";\n- VendDebitAmount: Decimal;\n begin\n- Vend.SetCurrentKey(\"Vendor Posting Group\");\n- Vend.SetRange(\"Vendor Posting Group\", PostingGr);\n-\n- if Vend.Find('-') then\n- repeat\n- DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\", \"Entry Type\");\n- DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n- DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n- DtldVendLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n- VendDebitAmount := VendDebitAmount + DtldVendLedgEntry.\"Debit Amount (LCY)\";\n- until Vend.Next() = 0;\n+ DtldVendLedgEntry.SetCurrentKey(\"Entry Type\", \"Vendor No.\", \"Posting Date\");\n+ DtldVendLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n+ DtldVendLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n \n- exit(-VendDebitAmount);\n+ exit(-DtldVendLedgEntry.\"Debit Amount (LCY)\");\n end;\n \n local procedure CalcCurrGainLossAmount(CurrencyCode: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n", "error_message": null, "metrics": {"execution_time": 218.0, "llm_duration": null, "turn_count": 16, "prompt_tokens": 756400, "completion_tokens": 9500, "tool_usage": {"rg": 16, "glob": 2, "view": 16, "apply_patch": 1, "report_intent": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-227219__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al\nindex 979cdb45..bed5322e 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al\n@@ -129,6 +129,8 @@ codeunit 5708 \"Release Transfer Document\"\n if TransLine.FindSet() then\n repeat\n Item.Get(TransLine.\"Item No.\");\n+ if Item.IsVariantMandatory() then\n+ TransLine.TestField(\"Variant Code\");\n if Item.IsInventoriableType() then\n TransLine.TestField(\"Unit of Measure Code\");\n until TransLine.Next() = 0;\n", "error_message": null, "metrics": {"execution_time": 96.0, "llm_duration": null, "turn_count": 8, "prompt_tokens": 189600, "completion_tokens": 2700, "tool_usage": {"view": 8, "rg": 9, "report_intent": 2, "glob": 2, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-227358__cf-1", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\nindex 61aff663..f1dcfcb1 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\n@@ -999,15 +999,26 @@ codeunit 13 \"Gen. Jnl.-Post Batch\"\n local procedure UnlinkIncDocFromGenJnlLine(var GenJnlLine: Record \"Gen. Journal Line\")\n var\n CurrGenJnlTemplate: Record \"Gen. Journal Template\";\n+ CurrentGenJnlLine: Record \"Gen. Journal Line\";\n begin\n+ if GenJnlLine.\"Incoming Document Entry No.\" = 0 then\n+ exit;\n if GenJnlLine.\"Journal Template Name\" = '' then\n exit;\n if not CurrGenJnlTemplate.Get(GenJnlLine.\"Journal Template Name\") then\n exit;\n if not CurrGenJnlTemplate.\"Unlink Inc. Doc On Posting\" then\n exit;\n+ if not CurrentGenJnlLine.Get(GenJnlLine.\"Journal Template Name\", GenJnlLine.\"Journal Batch Name\", GenJnlLine.\"Line No.\") then\n+ exit;\n+ if CurrentGenJnlLine.\"Incoming Document Entry No.\" = 0 then begin\n+ GenJnlLine.\"Incoming Document Entry No.\" := 0;\n+ exit;\n+ end;\n+\n+ CurrentGenJnlLine.\"Incoming Document Entry No.\" := 0;\n+ CurrentGenJnlLine.Modify();\n GenJnlLine.\"Incoming Document Entry No.\" := 0;\n- GenJnlLine.Modify();\n end;\n \n local procedure CopyGenJnlLineBalancingData(var GenJnlLineTo: Record \"Gen. Journal Line\"; var GenJnlLineFrom: Record \"Gen. Journal Line\")\n", "error_message": null, "metrics": {"execution_time": 131.0, "llm_duration": null, "turn_count": 14, "prompt_tokens": 419100, "completion_tokens": 5100, "tool_usage": {"rg": 13, "report_intent": 3, "glob": 3, "view": 10, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + +{"instance_id": "microsoftInternal__NAV-227358__cf-2", "project": "BaseApp", "model": "gpt-5-4", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\nindex 61aff663..c112995d 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\n@@ -1006,6 +1006,10 @@ codeunit 13 \"Gen. Jnl.-Post Batch\"\n exit;\n if not CurrGenJnlTemplate.\"Unlink Inc. Doc On Posting\" then\n exit;\n+ if not GenJnlLine.Get(GenJnlLine.\"Journal Template Name\", GenJnlLine.\"Journal Batch Name\", GenJnlLine.\"Line No.\") then\n+ exit;\n+ if GenJnlLine.\"Incoming Document Entry No.\" = 0 then\n+ exit;\n GenJnlLine.\"Incoming Document Entry No.\" := 0;\n GenJnlLine.Modify();\n end;\n", "error_message": null, "metrics": {"execution_time": 169.0, "llm_duration": null, "turn_count": 12, "prompt_tokens": 383600, "completion_tokens": 6000, "tool_usage": {"glob": 1, "rg": 18, "report_intent": 5, "view": 10, "apply_patch": 1, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} + diff --git a/notebooks/result/bug-fix/copilot-cf-opus-4-6/21815911073.jsonl b/notebooks/result/bug-fix/copilot-cf-opus-4-6/21815911073.jsonl new file mode 100644 index 000000000..f32a233e2 --- /dev/null +++ b/notebooks/result/bug-fix/copilot-cf-opus-4-6/21815911073.jsonl @@ -0,0 +1,101 @@ +{"InstanceID": "microsoftInternal__NAV-218062", "scores": {"BuildRate": 0, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 1800, "tool_calls": 0, "total_tokens": 0, "TurnCount": 0}, "Project": "BaseApp", "ToolUsage": "0", "output": "", "error_message": "Agent timed out"} +{"InstanceID": "microsoftInternal__NAV-193649", "scores": {"BuildRate": 0, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 320.911, "tool_calls": 26, "total_tokens": 395600, "TurnCount": 70}, "Project": "Shopify", "ToolUsage": "{\"edit\":2,\"grep\":5,\"report_intent\":2,\"task\":3,\"update_todo\":3,\"view\":11}", "output": "diff --git a/App/Apps/W1/Shopify/app/src/Document Links/Codeunits/ShpfyDocumentLinkMgt.Codeunit.al b/App/Apps/W1/Shopify/app/src/Document Links/Codeunits/ShpfyDocumentLinkMgt.Codeunit.al\nindex 575010de..56da6e16 100644\n--- a/App/Apps/W1/Shopify/app/src/Document Links/Codeunits/ShpfyDocumentLinkMgt.Codeunit.al\t\n+++ b/App/Apps/W1/Shopify/app/src/Document Links/Codeunits/ShpfyDocumentLinkMgt.Codeunit.al\t\n@@ -3,6 +3,7 @@ namespace Microsoft.Integration.Shopify;\n using Microsoft.Sales.Document;\n using Microsoft.Sales.History;\n using Microsoft.Sales.Posting;\n+using Microsoft.Utilities;\n \n codeunit 30262 \"Shpfy Document Link Mgt.\"\n {\n@@ -96,4 +97,15 @@ codeunit 30262 \"Shpfy Document Link Mgt.\"\n NewDocLinkToBCDoc.Insert();\n end;\n end;\n+\n+ [EventSubscriber(ObjectType::Codeunit, Codeunit::\"Copy Document Mgt.\", 'OnAfterCopySalesHeaderDone', '', true, false)]\n+ local procedure OnAfterCopySalesHeaderDone(var ToSalesHeader: Record \"Sales Header\"; OldSalesHeader: Record \"Sales Header\"; FromSalesHeader: Record \"Sales Header\"; FromSalesShipmentHeader: Record \"Sales Shipment Header\"; FromSalesInvoiceHeader: Record \"Sales Invoice Header\"; FromReturnReceiptHeader: Record \"Return Receipt Header\"; FromSalesCrMemoHeader: Record \"Sales Cr.Memo Header\"; FromSalesHeaderArchive: Record \"Sales Header Archive\"; FromDocType: Enum \"Sales Document Type From\")\n+ begin\n+ if ToSalesHeader.IsTemporary() then\n+ exit;\n+\n+ ToSalesHeader.\"Shpfy Order Id\" := 0;\n+ ToSalesHeader.\"Shpfy Order No.\" := '';\n+ ToSalesHeader.\"Shpfy Refund Id\" := 0;\n+ end;\n }\n\\ No newline at end of file\n", "error_message": "Build or publish failed for App\\Apps\\W1\\Shopify\\app:\nC:\\Source\\App\\Apps\\W1\\Shopify\\app\\src\\Document Links\\Codeunits\\ShpfyDocumentLinkMgt.Codeunit.al(102,416): error AL0185: Table 'Sales Header Archive' is missing\nC:\\Source\\App\\Apps\\W1\\Shopify\\app\\src\\Document Links\\Codeunits\\ShpfyDocumentLinkMgt.Codeunit.al(102,392): error AL0284: The type of the parameter 'FromSalesHeaderArchive' on the event subscriber 'OnAfterCopySalesHeaderDone' does not match the expected type 'Record \"Sales Header Archive\"'."} +{"InstanceID": "microsoftInternal__NAV-210528", "scores": {"BuildRate": 0, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 58, "tool_calls": 7, "total_tokens": 80300, "TurnCount": 14}, "Project": "Sustainability", "ToolUsage": "{\"edit\":1,\"report_intent\":1,\"task\":1,\"update_todo\":2,\"view\":2}", "output": "diff --git a/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al b/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al\nindex 335c0099..55ea9095 100644\n--- a/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al\n+++ b/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al\n@@ -148,9 +148,15 @@ table 6217 \"Sustainability Setup\"\n \n trigger OnValidate()\n begin\n- if Rec.\"Enable Value Chain Tracking\" then\n+ if Rec.\"Enable Value Chain Tracking\" then begin\n if not ConfirmManagement.GetResponseOrDefault(ConfirmEnableValueChainTrackingQst, false) then\n Error('');\n+\n+ Rec.\"Use Emissions In Purchase Documents\" := true;\n+ Rec.\"Item Emissions\" := true;\n+ Rec.\"Resource Emissions\" := true;\n+ Rec.\"Work/Machine Center Emissions\" := true;\n+ end;\n end;\n }\n }\n", "error_message": "Build or publish failed for App\\Apps\\W1\\Sustainability\\app:\nC:\\Source\\App\\Apps\\W1\\Sustainability\\app\\src\\RoleCenters\\SustainabilityChartMgmt.Codeunit.al(27,86): warning AL0603: An implicit conversion is being performed from a value of type 'Enum System.Visualization.\"Business Chart Type\"' to a value of type 'Integer'. This conversion can lead to unexpected runtime issues.\nC:\\Source\\App\\Apps\\W1\\Sustainability\\app\\src\\RoleCenters\\SustainabilityChartMgmt.Codeunit.al(67,90): warning AL0603: An implicit conversion is being performed from a value of type 'Enum System.Visualization.\"Business Chart Type\"' to a value of type 'Integer'. This conversion can lead to unexpected runtime issues.\nC:\\Source\\App\\Apps\\W1\\Sustainability\\app\\src\\Setup\\SustainabilitySetup.Table.al(155,25): error AL0132: 'Record \"Sustainability Setup\"' does not contain a definition for 'Use Emissions In Purchase Documents'"} +{"InstanceID": "microsoftInternal__NAV-178045", "scores": {"BuildRate": 0, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 1800, "tool_calls": 0, "total_tokens": 0, "TurnCount": 0}, "Project": "BaseApp", "ToolUsage": "0", "output": "", "error_message": "Agent timed out"} +{"InstanceID": "microsoftInternal__NAV-191624", "scores": {"BuildRate": 0, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 105.452, "tool_calls": 10, "total_tokens": 137400, "TurnCount": 20}, "Project": "ExcelReports", "ToolUsage": "{\"edit\":2,\"report_intent\":2,\"task\":2,\"update_todo\":2,\"view\":2}", "output": "diff --git a/App/Apps/W1/ExcelReports/app/src/Financials/EXRFixedAssetAnalysisExcel.Report.al b/App/Apps/W1/ExcelReports/app/src/Financials/EXRFixedAssetAnalysisExcel.Report.al\nindex 686231b5..fff2ba74 100644\n--- a/App/Apps/W1/ExcelReports/app/src/Financials/EXRFixedAssetAnalysisExcel.Report.al\n+++ b/App/Apps/W1/ExcelReports/app/src/Financials/EXRFixedAssetAnalysisExcel.Report.al\n@@ -32,6 +32,16 @@ report 4412 \"EXR Fixed Asset Analysis Excel\"\n column(DisposalDateField; DisposalDate) { }\n column(GlobalDimension1Code; \"Global Dimension 1 Code\") { IncludeCaption = true; }\n column(GlobalDimension2Code; \"Global Dimension 2 Code\") { IncludeCaption = true; }\n+ trigger OnAfterGetRecord()\n+ var\n+ FADepreciationBook: Record \"FA Depreciation Book\";\n+ begin\n+ if FADepreciationBook.Get(\"No.\", DepreciationBookCode) then begin\n+ AcquisitionDate := FADepreciationBook.\"Acquisition Date\";\n+ DisposalDate := FADepreciationBook.\"Disposal Date\";\n+ end;\n+ end;\n+\n dataitem(FAPostingType; \"FA Posting Type\")\n {\n DataItemTableView = where(\"FA Entry\" = const(true));\n@@ -50,8 +60,6 @@ report 4412 \"EXR Fixed Asset Analysis Excel\"\n if ShouldSkipRecord() then\n CurrReport.Skip();\n FADepreciationBook.Get(FixedAssetData.\"No.\", DepreciationBookCode);\n- AcquisitionDate := FADepreciationBook.\"Acquisition Date\";\n- DisposalDate := FADepreciationBook.\"Disposal Date\";\n if BudgetReport then\n BudgetDepreciation.Calculate(FixedAssetData.\"No.\", StartingDate - 1, EndingDate, DepreciationBookCode, BeforeAmount, EndingAmount);\n \n", "error_message": "Build or publish failed for App\\Apps\\W1\\ExcelReports\\app:\nC:\\Source\\App\\Apps\\W1\\ExcelReports\\app\\src\\Financials\\EXRFixedAssetAnalysisExcel.Report.al(45,13): error AL0104: Syntax error, '}' expected\nC:\\Source\\App\\Apps\\W1\\ExcelReports\\app\\src\\Financials\\EXRFixedAssetAnalysisExcel.Report.al(77,5): error AL0198: Expected one of the application object keywords (table, tableextension, page, pageextension, pagecustomization, profile, profileextension, codeunit, report, reportextension, xmlport, query, controladdin, dotnet, enum, enumextension, interface, permissionset, permissionsetextension, entitlement)\nC:\\Source\\App\\Apps\\W1\\ExcelReports\\app\\src\\Financials\\EXRFixedAssetAnalysisExcel.Report.al(223,35): error AL0114: Syntax error, integer literal expected\nC:\\Source\\App\\Apps\\W1\\ExcelReports\\app\\src\\Financials\\EXRFixedAssetAnalysisExcel.Report.al(223,54): error AL0104: Syntax error, '{' expected\nC:\\Source\\App\\Apps\\W1\\ExcelReports\\app\\src\\Financials\\EXRFixedAssetAnalysisExcel.Report.al(223,54): error AL0104: Syntax error, '}' expected\nC:\\Source\\App\\Apps\\W1\\ExcelReports\\app\\src\\Financials\\EXRFixedAssetAnalysisExcel.Report.al(223,54): error AL0198: Expected one of the application object keywords (table, tableextension, page, pageextension, pagecustomization, profile, profileextension, codeunit, report, reportextension, xmlport, query, controladdin, dotnet, enum, enumextension, interface, permissionset, permissionsetextension, entitlement)"} +{"InstanceID": "microsoftInternal__NAV-206527", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 799.929, "tool_calls": 78, "total_tokens": 3235400, "TurnCount": 99}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":6,\"glob\":3,\"grep\":37,\"powershell\":2,\"report_intent\":3,\"task\":2,\"update_todo\":4,\"view\":20}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al b/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\nindex e3280001..91e7b1ef 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\n@@ -195,15 +195,6 @@ table 99000829 \"Planning Component\"\n \"Expected Quantity\" := UOMMgt.RoundToItemRndPrecision(\"Expected Quantity\", Item.\"Rounding Precision\");\n \n ItemPrecRoundedExpectedQuantity := \"Expected Quantity\";\n- BaseUOMPrecRoundedExpectedQuantity := UOMMgt.RoundQty(\"Expected Quantity\", \"Qty. Rounding Precision\");\n-\n- if (\"Qty. Rounding Precision\" > 0) and (BaseUOMPrecRoundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity) then\n- if UnroundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity then\n- Error(WrongPrecisionItemAndUOMExpectedQtyErr, Item.FieldCaption(\"Rounding Precision\"), Item.TableCaption(), ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"))\n- else\n- Error(WrongPrecOnUOMExpectedQtyErr, ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"));\n-\n- \"Expected Quantity\" := BaseUOMPrecRoundedExpectedQuantity;\n \"Expected Quantity (Base)\" := CalcBaseQty(\"Expected Quantity\", FieldCaption(\"Expected Quantity\"), FieldCaption(\"Expected Quantity (Base)\"));\n \n \"Net Quantity (Base)\" := \"Expected Quantity (Base)\" - \"Original Expected Qty. (Base)\";\ndiff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\nindex 36930a9e..058f96b4 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n@@ -263,7 +263,6 @@ codeunit 99000773 \"Calculate Prod. Order\"\n Item2: Record Item;\n ComponentSKU: Record \"Stockkeeping Unit\";\n IsHandled: Boolean;\n- QtyRoundPrecision: Decimal;\n begin\n ProdOrderComp.Reset();\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\", \"Item No.\");\n@@ -295,12 +294,7 @@ codeunit 99000773 \"Calculate Prod. Order\"\n ProdOrderComp.\"Bin Code\" := GetDefaultBin();\n ProdOrderComp.Description := ProdBOMLine[Level].Description;\n ProdOrderComp.Validate(\"Unit of Measure Code\", ProdBOMLine[Level].\"Unit of Measure Code\");\n- if (ProdOrderComp.\"Item No.\" <> '') and Item2.Get(ProdOrderComp.\"Item No.\") then\n- QtyRoundPrecision := UOMMgt.GetQtyRoundingPrecision(Item2, ProdBOMLine[Level].\"Unit of Measure Code\");\n- if QtyRoundPrecision <> 0 then\n- ProdOrderComp.\"Quantity per\" := Round(ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM, QtyRoundPrecision)\n- else\n- ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n+ ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n ProdOrderComp.Length := ProdBOMLine[Level].Length;\n ProdOrderComp.Width := ProdBOMLine[Level].Width;\n ProdOrderComp.Weight := ProdBOMLine[Level].Weight;\ndiff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al b/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\nindex c532e014..c9054d6e 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\n@@ -267,19 +267,10 @@ table 5407 \"Prod. Order Component\"\n \n ItemPrecRoundedExpectedQuantity := \"Expected Quantity\";\n \n- BaseUOMPrecRoundedExpectedQuantity := UOMMgt.RoundQty(\"Expected Quantity\", \"Qty. Rounding Precision\");\n-\n- if (\"Qty. Rounding Precision\" > 0) and (BaseUOMPrecRoundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity) then\n- if UnroundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity then\n- Error(WrongPrecisionItemAndUOMExpectedQtyErr, Item.FieldCaption(\"Rounding Precision\"), Item.TableCaption(), ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"))\n- else\n- Error(WrongPrecOnUOMExpectedQtyErr, ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"));\n-\n- \"Expected Quantity\" := BaseUOMPrecRoundedExpectedQuantity;\n \"Expected Qty. (Base)\" := CalcBaseQty(\"Expected Quantity\", FieldCaption(\"Expected Quantity\"), FieldCaption(\"Expected Qty. (Base)\"));\n \n // Recalculate 'Expected Quantity' based on the base value to make sure values are consistent\n- \"Expected Quantity\" := UOMMgt.RoundQty(\"Expected Qty. (Base)\" / \"Qty. per Unit of Measure\", \"Qty. Rounding Precision\");\n+ \"Expected Quantity\" := UOMMgt.RoundQty(\"Expected Qty. (Base)\" / \"Qty. per Unit of Measure\");\n \n if (Status in [Status::Released, Status::Finished]) and\n (xRec.\"Item No.\" <> '') and\n@@ -289,7 +280,7 @@ table 5407 \"Prod. Order Component\"\n \n OnValidateExpectedQuantityOnAfterCalcActConsumptionQty(Rec, xRec);\n \"Remaining Quantity\" := \"Expected Quantity\" - \"Act. Consumption (Qty)\" / \"Qty. per Unit of Measure\";\n- \"Remaining Quantity\" := UOMMgt.RoundQty(\"Remaining Quantity\", \"Qty. Rounding Precision\");\n+ \"Remaining Quantity\" := UOMMgt.RoundQty(\"Remaining Quantity\");\n \n if (\"Remaining Quantity\" * \"Expected Quantity\") <= 0 then\n \"Remaining Quantity\" := 0;\n@@ -562,7 +553,7 @@ table 5407 \"Prod. Order Component\"\n exit;\n \n CalculateQuantity(Quantity);\n- Quantity := UOMMgt.RoundAndValidateQty(Quantity, \"Qty. Rounding Precision\", FieldCaption(Quantity));\n+ Quantity := UOMMgt.RoundQty(Quantity);\n \n OnValidateCalculationFormulaOnAfterSetQuantity(Rec);\n \"Quantity (Base)\" := CalcBaseQty(Quantity, FieldCaption(Quantity), FieldCaption(\"Quantity (Base)\"));\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137088'\nCodeunit 137088 SCM Order Planning - III\n Testfunction ReleasedProdOrderQuantityPerandExpectedQtyRoundingPrecisionChecking Failure (7.31 seconds)\n Error:\n Qty. Rounding Precision on Item-GL00000000 causes the Expected Quantity and Expected Qty. (Base) to be out of balance. Rounding of the field Expected Qty. (Base) results to 0.\n Call Stack:\n \"Unit of Measure Management\"(CodeUnit 5402).CalcBaseQty line 9 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).CalcBaseQty line 9 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).\"Expected Quantity - OnValidate\"(Trigger) line 20 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).UpdateExpectedQuantity line 14 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).\"Routing Link Code - OnValidate\"(Trigger) line 5 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).TransferBOMProcessItem line 45 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).TransferBOM line 70 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).Calculate line 105 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order Lines\"(CodeUnit 99000787).ProcessProdOrderLines line 13 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order Lines\"(CodeUnit 99000787).Copy line 23 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order from Sale\"(CodeUnit 99000792).CreateProductionOrder line 54 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateOrder line 11 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateOrders line 35 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateProdOrder line 24 - Base Application by Microsoft version 26.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-223819", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 364.34, "tool_calls": 23, "total_tokens": 456600, "TurnCount": 77}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":1,\"grep\":8,\"report_intent\":3,\"task\":2,\"update_todo\":3,\"view\":5}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al b/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\nindex 7fc2d985..a49f2152 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\n@@ -549,8 +549,11 @@ table 83 \"Item Journal Line\"\n \n trigger OnValidate()\n begin\n- if (\"Order Type\" <> GetOrderTypeProduction()) or (\"Order No.\" = '') then\n+ if (\"Order Type\" <> GetOrderTypeProduction()) or (\"Order No.\" = '') then begin\n CreateDimFromDefaultDim(rec.FieldNo(\"Salespers./Purch. Code\"));\n+ if \"Entry Type\" = \"Entry Type\"::Transfer then\n+ CreateNewDimFromDefaultDim(Rec.FieldNo(\"Salespers./Purch. Code\"));\n+ end;\n end;\n }\n field(26; \"Source Code\"; Code[10])\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134474'\nCodeunit 134474 ERM Dimension Locations\n Testfunction OverrideDimWithNewLocationsAndSalespersonOnItemJournalLine Failure (5.77 seconds)\n Error:\n New Department Code must be equal to 'GU00000001' in Item Journal Line: Journal Template Name=GU00000008, Journal Batch Name=GU00000009, Line No.=10000. Current value is 'GU00000000'.\n Call Stack:\n \"ERM Dimension Locations\"(CodeUnit 134474).OverrideDimWithNewLocationsAndSalespersonOnItemJournalLine line 48 - Tests-Dimension by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-213741", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 69.879, "tool_calls": 12, "total_tokens": 166000, "TurnCount": 8}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":4,\"report_intent\":2,\"update_todo\":2,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Costing/InventoryPostingToGL.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Costing/InventoryPostingToGL.Codeunit.al\nindex 9b9c14ed..c9332395 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Costing/InventoryPostingToGL.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Costing/InventoryPostingToGL.Codeunit.al\n@@ -564,6 +564,14 @@ codeunit 5802 \"Inventory Posting To G/L\"\n TempGlobalInvtPostingBuffer.\"Account Type\"::Inventory,\n TempGlobalInvtPostingBuffer.\"Account Type\"::\"Inventory Adjmt.\",\n CostToPost, CostToPostACY, false);\n+ ValueEntry.\"Entry Type\"::\"Direct Cost - Non Inventory\":\n+ if (CostToPost <> 0) or (CostToPostACY <> 0) then\n+ if MfgCostCalcMgt.CanIncNonInvCostIntoProductionItem() then\n+ InitInvtPostBuf(\n+ ValueEntry,\n+ TempGlobalInvtPostingBuffer.\"Account Type\"::Inventory,\n+ TempGlobalInvtPostingBuffer.\"Account Type\"::\"Direct Cost Non-Inventory Applied\",\n+ CostToPost, CostToPostACY, false);\n ValueEntry.\"Entry Type\"::\"Indirect Cost\":\n InitInvtPostBuf(\n ValueEntry,\n@@ -578,6 +586,13 @@ codeunit 5802 \"Inventory Posting To G/L\"\n TempGlobalInvtPostingBuffer.\"Account Type\"::Inventory,\n TempGlobalInvtPostingBuffer.\"Account Type\"::\"Material Variance\",\n CostToPost, CostToPostACY, false);\n+ ValueEntry.\"Variance Type\"::\"Material - Non Inventory\":\n+ if MfgCostCalcMgt.CanIncNonInvCostIntoProductionItem() then\n+ InitInvtPostBuf(\n+ ValueEntry,\n+ TempGlobalInvtPostingBuffer.\"Account Type\"::Inventory,\n+ TempGlobalInvtPostingBuffer.\"Account Type\"::\"Material - Non Inventory Variance\",\n+ CostToPost, CostToPostACY, false);\n ValueEntry.\"Variance Type\"::Capacity:\n InitInvtPostBuf(\n ValueEntry,\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137911'\nCodeunit 137911 SCM Calculate Assembly Cost\n Testfunction VerifyAdjustCostItemEntriesMustBeExecutedForAssemblyItem Failure (11.316 seconds)\n Error:\n Assert.RecordCount failed. Expected number of Value Entry entries: 0. Actual: 1. Filters: Item No.: GL00000000, Item Ledger Entry Type: Assembly Output, Entry Type: Direct Cost - Non Inventory. Records: 678, GL00000000, 06/03/26, Assembly Output, GL00000000, A00001, , , FINISHED, , 676, 1, 0, 0, 233, 0, 430, 0, , 0, ADMIN, INVTADJMT, 0, , , Item, 233, 0, , No, , DOMESTIC, RETAIL, 06/03/26, , 0, 0, 0, Posted Assembly, 0, 06/03/26, Assembly, A00001, 0, No, , No, No, Yes, 06/03/26, Direct Cost - Non Inventory, , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , 0, , Yes, No, 0, , , , , , , , , , , ; \n Call Stack:\n Assert(CodeUnit 130000).RecordCount line 18 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"SCM Calculate Assembly Cost\"(CodeUnit 137911).VerifyAdjustCostItemEntriesMustBeExecutedForAssemblyItem line 43 - Tests-SCM-Assembly by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-183399", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 117.712, "tool_calls": 14, "total_tokens": 129700, "TurnCount": 30}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":2,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":5}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\nindex 553ae9c0..cec7b1ec 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n@@ -255,6 +255,7 @@ page 254 \"Purchase Journal\"\n {\n ApplicationArea = Basic, Suite;\n AutoFormatExpression = Rec.\"Currency Code\";\n+ AutoFormatType = 1;\n Caption = 'Document Amount';\n ToolTip = 'Specifies the total amount (including VAT) that the journal line consists of.';\n \ndiff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/SalesJournal.Page.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/SalesJournal.Page.al\nindex d63650ad..4dfc2fdf 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/SalesJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/SalesJournal.Page.al\n@@ -247,6 +247,7 @@ page 253 \"Sales Journal\"\n {\n ApplicationArea = Basic, Suite;\n AutoFormatExpression = Rec.\"Currency Code\";\n+ AutoFormatType = 1;\n Caption = 'Document Amount';\n ToolTip = 'Specifies the total amount (including VAT) that the journal line consists of.';\n \n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134918'\nCodeunit 134918 ERM Sales/Purchase Application\n Testfunction DocumentAmountInPurchJnlAcceptsMaxThreeDecimalPlacesValue Failure (3.883 seconds)\n Error:\n Assert.AreEqual failed. Expected:<1.747> (Decimal). Actual:<1.75> (Decimal). The document amount is not correct. Expected: 1.747, Actual: 1.75.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"ERM Sales/Purchase Application\"(CodeUnit 134918).DocumentAmountInPurchJnlAcceptsMaxThreeDecimalPlacesValue line 25 - Tests-ERM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"InstanceID": "microsoftInternal__NAV-223493", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 166.609, "tool_calls": 12, "total_tokens": 153000, "TurnCount": 40}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":2,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al b/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al\nindex 6a5f0a88..6196ca3b 100644\n--- a/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al\n@@ -53,6 +53,7 @@ codeunit 1409 \"Sales Inv. Header - Edit\"\n \n CustLedgerEntry.\"Payment Method Code\" := SalesInvoiceHeader.\"Payment Method Code\";\n CustLedgerEntry.\"Payment Reference\" := SalesInvoiceHeader.\"Payment Reference\";\n+ CustLedgerEntry.\"Your Reference\" := SalesInvoiceHeader.\"Your Reference\";\n CustLedgerEntry.Description := SalesInvoiceHeader.\"Posting Description\";\n CustLedgerEntry.\"Promised Pay Date\" := SalesInvoiceHeader.\"Promised Pay Date\";\n CustLedgerEntry.\"Due Date\" := SalesInvoiceHeader.\"Due Date\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134658'\nCodeunit 134658 Edit Posted Documents\n Testfunction VerifyYourReferenceUpdatedInCustLedgerEntry Failure (23.194 seconds)\n Error:\n Assert.AreEqual failed. Expected: (Text). Actual:<> (Text). Customer Ledger Entry Your Reference not updated.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"Edit Posted Documents\"(CodeUnit 134658).VerifyYourReferenceUpdatedInCustLedgerEntry line 32 - Tests-ERM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-208649", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 172.38400000000001, "tool_calls": 16, "total_tokens": 244900, "TurnCount": 31}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":5,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":4}", "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\nindex 36930a9e..058f96b4 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n@@ -263,7 +263,6 @@ codeunit 99000773 \"Calculate Prod. Order\"\n Item2: Record Item;\n ComponentSKU: Record \"Stockkeeping Unit\";\n IsHandled: Boolean;\n- QtyRoundPrecision: Decimal;\n begin\n ProdOrderComp.Reset();\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\", \"Item No.\");\n@@ -295,12 +294,7 @@ codeunit 99000773 \"Calculate Prod. Order\"\n ProdOrderComp.\"Bin Code\" := GetDefaultBin();\n ProdOrderComp.Description := ProdBOMLine[Level].Description;\n ProdOrderComp.Validate(\"Unit of Measure Code\", ProdBOMLine[Level].\"Unit of Measure Code\");\n- if (ProdOrderComp.\"Item No.\" <> '') and Item2.Get(ProdOrderComp.\"Item No.\") then\n- QtyRoundPrecision := UOMMgt.GetQtyRoundingPrecision(Item2, ProdBOMLine[Level].\"Unit of Measure Code\");\n- if QtyRoundPrecision <> 0 then\n- ProdOrderComp.\"Quantity per\" := Round(ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM, QtyRoundPrecision)\n- else\n- ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n+ ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n ProdOrderComp.Length := ProdBOMLine[Level].Length;\n ProdOrderComp.Width := ProdBOMLine[Level].Width;\n ProdOrderComp.Weight := ProdBOMLine[Level].Weight;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137088'\nCodeunit 137088 SCM Order Planning - III\n Testfunction ReleasedProdOrderQuantityPerandExpectedQtyRoundingPrecisionChecking Failure (7.16 seconds)\n Error:\n The value in the Qty. Rounding Precision field on the Item Unit of Measure page is causing the rounding precision for the Expected Quantity field to be incorrect.\n Call Stack:\n \"Prod. Order Component\"(Table 5407).\"Expected Quantity - OnValidate\"(Trigger) line 26 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).UpdateExpectedQuantity line 14 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).\"Routing Link Code - OnValidate\"(Trigger) line 5 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).TransferBOMProcessItem line 45 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).TransferBOM line 70 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).Calculate line 105 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order Lines\"(CodeUnit 99000787).ProcessProdOrderLines line 13 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order Lines\"(CodeUnit 99000787).Copy line 23 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order from Sale\"(CodeUnit 99000792).CreateProductionOrder line 54 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateOrder line 11 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateOrders line 35 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateProdOrder line 24 - Base Application by Microsoft version 26.0.0.0\n \"Library - Planning\"(CodeUnit 132203).CreateProdOrderUsingPlanning line 6 - Tests-TestLibraries by Microsoft version 26.0.0.0\n \"SCM Order Planning - III\"(CodeUnit 137088).ReleasedProdOrderQuantityPerandExpectedQtyRoundingPrecisionChecking line 50 - Tests-SCM by Microsoft version 26.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-201169", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 150.876, "tool_calls": 27, "total_tokens": 509400, "TurnCount": 41}, "Project": "Shopify", "ToolUsage": "{\"edit\":2,\"glob\":2,\"grep\":7,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":10}", "output": "diff --git a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\nindex 38d77856..a513bdfd 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n@@ -26,6 +26,7 @@ codeunit 30174 \"Shpfy Create Product\"\n Getlocations: Boolean;\n ProductId: BigInteger;\n ItemVariantIsBlockedLbl: Label 'Item variant is blocked or sales blocked.';\n+ ProductTitleIsBlankLbl: Label 'Product title is blank.';\n \n trigger OnRun()\n var\n@@ -51,13 +52,19 @@ codeunit 30174 \"Shpfy Create Product\"\n TempShopifyProduct: Record \"Shpfy Product\" temporary;\n TempShopifyVariant: Record \"Shpfy Variant\" temporary;\n TempShopifyTag: Record \"Shpfy Tag\" temporary;\n+ SkippedRecord: Codeunit \"Shpfy Skipped Record\";\n begin\n CreateTempProduct(Item, TempShopifyProduct, TempShopifyVariant, TempShopifyTag);\n+ if TempShopifyProduct.Title = '' then begin\n+ SkippedRecord.LogSkippedRecord(Item.RecordId, ProductTitleIsBlankLbl, Shop);\n+ exit;\n+ end;\n if not VariantApi.FindShopifyProductVariant(TempShopifyProduct, TempShopifyVariant) then\n ProductId := ProductApi.CreateProduct(TempShopifyProduct, TempShopifyVariant, TempShopifyTag)\n else\n ProductId := TempShopifyProduct.Id;\n- ProductExport.UpdateProductTranslations(ProductId, Item);\n+ if ProductId <> 0 then\n+ ProductExport.UpdateProductTranslations(ProductId, Item);\n end;\n \n internal procedure CreateTempProduct(Item: Record Item; var TempShopifyProduct: Record \"Shpfy Product\" temporary; var TempShopifyVariant: Record \"Shpfy Variant\" temporary; var TempShopifyTag: Record \"Shpfy Tag\" temporary)\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139581'\nCodeunit 139581 Shpfy Skipped Record Log Test\n Testfunction UnitTestLogItemEmptyDescription Failure (6.384 seconds)\n Error:\n The response from Shopify contains no JSON. \\Requested: {\"query\":\"{ locations(first: 20, includeLegacy: true) { pageInfo { hasNextPage endCursor } nodes { legacyResourceId isActive isPrimary name fulfillmentService { serviceName }}}}\"} \\Response: \n Call Stack:\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 21 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 4 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 6 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Sync Shop Locations\"(CodeUnit 30198).SyncLocations line 20 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Sync Shop Locations\"(CodeUnit 30198).OnRun(Trigger) line 4 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Create Product\"(CodeUnit 30174).OnRun(Trigger) line 5 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Add Item to Shopify\"(Report 30106).\"Item - OnAfterGetRecord\"(Trigger) line 12 - Shopify Connector by Microsoft version 26.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-221877", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 225.643, "tool_calls": 10, "total_tokens": 145800, "TurnCount": 64}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"report_intent\":2,\"task\":2,\"update_todo\":2,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al b/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al\nindex 1c8fcc9e..11b7de58 100644\n--- a/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al\n@@ -1771,7 +1771,7 @@ table 5901 \"Service Item Line\"\n \"Document Type\" := ServHeader.\"Document Type\";\n RepairStatus.Reset();\n RepairStatus.Initial := true;\n- \"Repair Status Code\" := RepairStatus.ReturnStatusCode(RepairStatus);\n+ Validate(\"Repair Status Code\", RepairStatus.ReturnStatusCode(RepairStatus));\n end;\n \n OnAfterSetUpNewLine(Rec);\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136101'\nCodeunit 136101 Service Orders\n Testfunction AutoUpdateServiceHeaderStatusOnServiceItemLineAdd Failure (5.984 seconds)\n Error:\n AssertEquals for Field: Status Expected = 'Finished', Actual = 'Pending'\n Call Stack:\n \"Service Orders\"(CodeUnit 136101).AutoUpdateServiceHeaderStatusOnServiceItemLineAdd line 27 - Tests-SCM-Service by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-209737", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 466.055, "tool_calls": 35, "total_tokens": 777000, "TurnCount": 119}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":11,\"powershell\":2,\"report_intent\":3,\"task\":3,\"update_todo\":4,\"view\":11}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al b/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\nindex e995c8ed..1c9d6c9b 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\n@@ -881,8 +881,10 @@ table 36 \"Sales Header\"\n begin\n ResetInvoiceDiscountValue();\n \n- if \"Currency Factor\" <> xRec.\"Currency Factor\" then\n+ if \"Currency Factor\" <> xRec.\"Currency Factor\" then begin\n UpdateSalesLinesByFieldNo(FieldNo(\"Currency Factor\"), false);\n+ SalesCalcDiscountByType.ApplyDefaultInvoiceDiscount(0, Rec, true);\n+ end;\n end;\n }\n field(34; \"Customer Price Group\"; Code[10])\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137408'\nCodeunit 137408 SCM Warehouse VI\n Testfunction InvDiscPctAndAmtInSOIsNotZeroWhenCreateAndShipInvPickFromSOHavingInvDiscPctAndAmt Failure (23.343 seconds)\n Error:\n AssertEquals for Field: Invoice Disc. Pct. Expected = '10', Actual = '0'\n Call Stack:\n \"SCM Warehouse VI\"(CodeUnit 137408).InvDiscPctAndAmtInSOIsNotZeroWhenCreateAndShipInvPickFromSOHavingInvDiscPctAndAmt line 102 - Tests-SCM by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-176426", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 279.341, "tool_calls": 17, "total_tokens": 285000, "TurnCount": 20}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":5,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":6}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\nindex d639a562..27a45311 100644\n--- a/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\n@@ -993,7 +993,7 @@ codeunit 5870 \"Calculate BOM Tree\"\n exit(true);\n end;\n Item.\"Replenishment System\"::\"Prod. Order\":\n- if Item.\"Production BOM No.\" <> '' then\n+ if (Item.\"Production BOM No.\" <> '') or (Item.\"Routing No.\" <> '') then\n exit(true);\n end;\n end;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137391'\nCodeunit 137391 SCM - BOM Cost Shares Report\n Testfunction RolledUpMaterialAndCapacityCostWithRoutingAndNoBOM Failure (3.434 seconds)\n Error:\n AssertEquals for Field: Rolled-up Material Cost Expected = '497.28', Actual = ''\n Call Stack:\n \"SCM - BOM Cost Shares Report\"(CodeUnit 137391).VerifyParentItemMaterialAndCapacityCost line 7 - Tests-SCM by Microsoft\n \"SCM - BOM Cost Shares Report\"(CodeUnit 137391).RolledUpMaterialAndCapacityCostWithRoutingAndNoBOM line 34 - Tests-SCM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"InstanceID": "microsoftInternal__NAV-205825", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 604.305, "tool_calls": 18, "total_tokens": 437100, "TurnCount": 123}, "Project": "BaseApp", "ToolUsage": "{\"edit\":3,\"grep\":1,\"report_intent\":2,\"task\":3,\"update_todo\":3,\"view\":6}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\nindex da15d9ef..213eceba 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\n@@ -92,10 +92,8 @@ codeunit 205 \"Alt. Cust. VAT Reg. Doc. Impl.\" implements \"Alt. Cust. VAT Reg. Do\n procedure UpdateSetupOnShipToCountryChangeInSalesHeader(var SalesHeader: Record \"Sales Header\"; xSalesHeader: Record \"Sales Header\")\n var\n AltCustVATReg: Record \"Alt. Cust. VAT Reg.\";\n- VATCustomer: Record Customer;\n begin\n- GetCustVATCalc(VATCustomer, SalesHeader);\n- if AltCustVATRegFacade.GetAlternativeCustVATReg(AltCustVATReg, VATCustomer.\"No.\", SalesHeader.\"Ship-to Country/Region Code\") then\n+ if AltCustVATRegFacade.GetAlternativeCustVATReg(AltCustVATReg, SalesHeader.\"Sell-to Customer No.\", SalesHeader.\"Ship-to Country/Region Code\") then\n SalesHeader.Validate(\"VAT Country/Region Code\", AltCustVATReg.\"VAT Country/Region Code\")\n else\n CopyFromCustomer(SalesHeader, xSalesHeader);\n@@ -123,6 +121,7 @@ codeunit 205 \"Alt. Cust. VAT Reg. Doc. Impl.\" implements \"Alt. Cust. VAT Reg. Do\n \n procedure UpdateSetupOnBillToCustomerChangeInSalesHeader(var SalesHeader: Record \"Sales Header\"; xSalesHeader: Record \"Sales Header\"; BillToCustomer: Record Customer)\n var\n+ AltCustVATReg: Record \"Alt. Cust. VAT Reg.\";\n GLSetup: Record \"General Ledger Setup\";\n begin\n GLSetup.Get();\n@@ -132,7 +131,8 @@ codeunit 205 \"Alt. Cust. VAT Reg. Doc. Impl.\" implements \"Alt. Cust. VAT Reg. Do\n if IsAltVATRegUsed(SalesHeader) then begin\n if SalesHeader.\"Bill-to Customer No.\" = SalesHeader.\"Sell-to Customer No.\" then\n exit;\n- CopyFromCustomer(SalesHeader, xSalesHeader, BillToCustomer);\n+ if not AltCustVATRegFacade.GetAlternativeCustVATReg(AltCustVATReg, SalesHeader.\"Sell-to Customer No.\", SalesHeader.\"Ship-to Country/Region Code\") then\n+ CopyFromCustomer(SalesHeader, xSalesHeader, BillToCustomer);\n exit;\n end;\n if (SalesHeader.\"VAT Bus. Posting Group\" <> '') and (SalesHeader.\"VAT Bus. Posting Group\" <> BillToCustomer.\"VAT Bus. Posting Group\") then\n@@ -158,12 +158,8 @@ codeunit 205 \"Alt. Cust. VAT Reg. Doc. Impl.\" implements \"Alt. Cust. VAT Reg. Do\n end;\n \n local procedure GetAlternativeCustVATReg(var AltCustVATReg: Record \"Alt. Cust. VAT Reg.\"; SalesHeader: Record \"Sales Header\"): Boolean\n- var\n- Customer: Record Customer;\n begin\n- Customer.SetLoadFields(\"No.\");\n- GetCustVATCalc(Customer, SalesHeader);\n- exit(AltCustVATRegFacade.GetAlternativeCustVATReg(AltCustVATReg, Customer.\"No.\", SalesHeader.\"VAT Country/Region Code\"));\n+ exit(AltCustVATRegFacade.GetAlternativeCustVATReg(AltCustVATReg, SalesHeader.\"Sell-to Customer No.\", SalesHeader.\"VAT Country/Region Code\"));\n end;\n \n local procedure ConfirmChanges(SalesHeader: Record \"Sales Header\") Confirmed: Boolean\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134237'\nCodeunit 134237 Alt. Cust. VAT. Doc. Tests\n Testfunction ShipToCodeConnectionAltCustVATSetupOfBillToCustomer Failure (3.993 seconds)\n Error:\n VAT Country/Region Code must be equal to 'GU00000009' in Sales Header: Document Type=Order, No.=101005. Current value is 'GU00000006'.\n Call Stack:\n \"Alt. Cust. VAT. Doc. Tests\"(CodeUnit 134237).VerifyVATRegDataInSalesHeader line 2 - Tests-VAT by Microsoft\n \"Alt. Cust. VAT. Doc. Tests\"(CodeUnit 134237).ShipToCodeConnectionAltCustVATSetupOfBillToCustomer line 28 - Tests-VAT by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"InstanceID": "microsoftInternal__NAV-222484", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 718.833, "tool_calls": 50, "total_tokens": 1927400, "TurnCount": 94}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":2,\"glob\":4,\"grep\":16,\"powershell\":1,\"report_intent\":2,\"task\":2,\"update_todo\":4,\"view\":18}", "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Tracking/WhseItemTrackingFEFO.Codeunit.al b/App/Layers/W1/BaseApp/Warehouse/Tracking/WhseItemTrackingFEFO.Codeunit.al\nindex 9568f0f6..57eac9d9 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Tracking/WhseItemTrackingFEFO.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Tracking/WhseItemTrackingFEFO.Codeunit.al\n@@ -90,6 +90,8 @@ codeunit 7326 \"Whse. Item Tracking FEFO\"\n if QtyReservedFromItemLedger.Read() then\n NonReservedQtyLotSN -= QtyReservedFromItemLedger.Quantity__Base_;\n \n+ NonReservedQtyLotSN += CalcQtyReservedBySourceFromILE(ItemNo, VariantCode, Location.Code, ItemTrackingSetup);\n+\n DoInsertEntrySummary := NonReservedQtyLotSN - CalcNonRegisteredQtyOutstanding(ItemNo, VariantCode, Location.Code, ItemTrackingSetup, HasExpirationDate) > 0;\n OnSummarizeInventoryFEFOOnBeforeInsertEntrySummaryFEFO(Location, ItemNo, VariantCode, HasExpirationDate, NonReservedQtyLotSN, ItemTrackingSetup, SummarizedStockByItemTrkg.Expiration_Date, DoInsertEntrySummary, TempGlobalEntrySummary);\n if DoInsertEntrySummary then\n@@ -304,6 +306,25 @@ codeunit 7326 \"Whse. Item Tracking FEFO\"\n exit(not WarehouseActivityLine.IsEmpty());\n end;\n \n+ local procedure CalcQtyReservedBySourceFromILE(ItemNo: Code[20]; VariantCode: Code[10]; LocationCode: Code[10]; ItemTrackingSetup: Record \"Item Tracking Setup\"): Decimal\n+ var\n+ QtyReservedFromILEForSource: Query \"Qty. Reserved From Item Ledger\";\n+ SourceReservEntry: Record \"Reservation Entry\";\n+ begin\n+ SourceReservEntry.Copy(SourceReservationEntry);\n+ if not SourceReservEntry.FindFirst() then\n+ exit(0);\n+\n+ QtyReservedFromILEForSource.SetSKUFilters(ItemNo, VariantCode, LocationCode);\n+ QtyReservedFromILEForSource.SetTrackingFilters(ItemTrackingSetup);\n+ QtyReservedFromILEForSource.SetSourceFilter(SourceReservEntry);\n+ QtyReservedFromILEForSource.Open();\n+ if QtyReservedFromILEForSource.Read() then\n+ exit(QtyReservedFromILEForSource.Quantity__Base_);\n+\n+ exit(0);\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnAfterCreateEntrySummaryFEFO(var TempEntrySummary: Record \"Entry Summary\" temporary)\n begin\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137260'\nCodeunit 137260 SCM Inventory Item Tracking\n Testfunction RegisterPickWithNoErrorForFEFOLocation Failure (17.53 seconds)\n Error:\n Lot No. GU00000024 is not available on inventory or it has already been reserved for another document.\n Call Stack:\n \"Whse.-Activity-Register\"(CodeUnit 7307).AvailabilityError line 5 - Base Application by Microsoft version 27.0.0.0\n \"Whse.-Activity-Register\"(CodeUnit 7307).CheckWhseItemTrkgLine line 83 - Base Application by Microsoft version 27.0.0.0\n \"Whse.-Activity-Register\"(CodeUnit 7307).Code line 18 - Base Application by Microsoft version 27.0.0.0\n \"Whse.-Activity-Register\"(CodeUnit 7307).OnRun(Trigger) line 4 - Base Application by Microsoft version 27.0.0.0\n \"Library - Warehouse\"(CodeUnit 132204).RegisterWhseActivity line 10 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"SCM Inventory Item Tracking\"(CodeUnit 137260).RegisterPickWithNoErrorForFEFOLocation line 56 - Tests-SCM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-206135", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 319.49, "tool_calls": 23, "total_tokens": 454200, "TurnCount": 73}, "Project": "BaseApp", "ToolUsage": "{\"edit\":3,\"grep\":4,\"powershell\":2,\"report_intent\":2,\"task\":3,\"update_todo\":2,\"view\":7}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostReceipt.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostReceipt.Codeunit.al\nindex 1ceabce9..877ec530 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostReceipt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostReceipt.Codeunit.al\n@@ -199,7 +199,7 @@ codeunit 5705 \"TransferOrder-Post Receipt\"\n if WhseReceive then\n WhseRcptLine.LockTable();\n TransHeader.LockTable();\n- if WhseReceive then begin\n+ if WhseReceive and not PreviewMode then begin\n WhsePostRcpt.PostUpdateWhseDocuments(WhseRcptHeader);\n TempWhseRcptHeader.Delete();\n end;\ndiff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostShipment.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostShipment.Codeunit.al\nindex ce405d49..1206adb8 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostShipment.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostShipment.Codeunit.al\n@@ -192,7 +192,7 @@ codeunit 5704 \"TransferOrder-Post Shipment\"\n if WhseShip then\n WhseShptLine.LockTable();\n TransHeader.LockTable();\n- if WhseShip then begin\n+ if WhseShip and not PreviewMode then begin\n WhsePostShpt.PostUpdateWhseDocuments(WhseShptHeader);\n TempWhseShptHeader.Delete();\n end;\ndiff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostTransfer.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostTransfer.Codeunit.al\nindex 8c7f8d02..6a723b15 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostTransfer.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostTransfer.Codeunit.al\n@@ -175,7 +175,7 @@ codeunit 5856 \"TransferOrder-Post Transfer\"\n if WhseShip then\n WhseShptLine.LockTable();\n \n- if WhseShip then begin\n+ if WhseShip and not PreviewMode then begin\n WhsePostShipment.PostUpdateWhseDocuments(WhseShptHeader);\n TempWhseShptHeader.Delete();\n end;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137154'\nCodeunit 137154 SCM Warehouse Management II\n Testfunction WarehouseShipmentPageRemainsOpenWhenRunPreviewPostAndCloseGLPostingPreviewPage Failure (12.244 seconds)\n Error:\n The TestPage is not open.\n Call Stack:\n \"SCM Warehouse Management II\"(CodeUnit 137154).WarehouseShipmentPageRemainsOpenWhenRunPreviewPostAndCloseGLPostingPreviewPage line 49 - Tests-SCM by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-182354", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 52, "tool_calls": 12, "total_tokens": 105600, "TurnCount": 6}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":4,\"report_intent\":2,\"update_todo\":2,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al b/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al\nindex 737182d0..37eec66b 100644\n--- a/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al\n+++ b/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al\n@@ -28,7 +28,7 @@ page 1318 \"Account Receivables KPIs\"\n begin\n CustLedgerEntry.SetRange(Open, true);\n CustLedgerEntry.SetFilter(\"Remaining Amount\", '>%1', 0);\n- CustLedgerEntry.SetFilter(\"Due Date\", '<=%1', WorkDate());\n+ CustLedgerEntry.SetFilter(\"Due Date\", '<=%1', Today());\n CustomerLedgerEntries.SetTableView(CustLedgerEntry);\n CustomerLedgerEntries.Run();\n end;\n@@ -98,7 +98,7 @@ page 1318 \"Account Receivables KPIs\"\n CuesAndKPIs: Codeunit \"Cues And KPIs\";\n SalesInvoicesDueNextWeekStyle: Enum \"Cues And KPIs Style\";\n begin\n- Rec.SetRange(\"Overdue Date Filter\", 0D, WorkDate());\n+ Rec.SetRange(\"Overdue Date Filter\", 0D, Today());\n if not Rec.Get() then begin\n Clear(Rec);\n Rec.Insert();\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134924'\nCodeunit 134924 ERM Cues\n Testfunction TotalOverdueLCYInFinanceCue Failure (6.18 seconds)\n Error:\n Assert.AreEqual failed. Expected:<> (Text). Actual:<50.17> (Text). The total overdue LCY amount is not calculated correctly..\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"ERM Cues\"(CodeUnit 134924).TotalOverdueLCYInFinanceCue line 37 - Tests-ERM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"InstanceID": "microsoftInternal__NAV-180484", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 114.77799999999999, "tool_calls": 10, "total_tokens": 125000, "TurnCount": 25}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/eServices/EDocument/IncomingDocument.Table.al b/App/Layers/W1/BaseApp/eServices/EDocument/IncomingDocument.Table.al\nindex 2341887c..902d96ab 100644\n--- a/App/Layers/W1/BaseApp/eServices/EDocument/IncomingDocument.Table.al\n+++ b/App/Layers/W1/BaseApp/eServices/EDocument/IncomingDocument.Table.al\n@@ -510,8 +510,12 @@ table 130 \"Incoming Document\"\n var\n RelatedRecord: Variant;\n begin\n- if GetRecord(RelatedRecord) then\n- Error(DocAlreadyCreatedErr);\n+ if GetRecord(RelatedRecord) then begin\n+ Status := Status::Created;\n+ Modify();\n+ Message(DocAlreadyCreatedErr);\n+ exit;\n+ end;\n \n CreateWithDataExchange(\"Document Type\"::\" \")\n end;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139154'\nCodeunit 139154 Incoming Doc. To Data Exch.UT\n Testfunction StatusRemainsCreatedIfHasLinkedDocWhenReopenIncomingDoc Failure (14.267 seconds)\n Error:\n Assert.AreEqual failed. Expected: (Text). Actual: (Text). Status must be Created in Incoming Document.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"Incoming Doc. To Data Exch.UT\"(CodeUnit 139154).StatusRemainsCreatedIfHasLinkedDocWhenReopenIncomingDoc line 53 - Tests-Data Exchange by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"InstanceID": "microsoftInternal__NAV-215645", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 408.964, "tool_calls": 45, "total_tokens": 1313200, "TurnCount": 55}, "Project": "SubscriptionBilling", "ToolUsage": "{\"edit\":1,\"glob\":3,\"grep\":15,\"report_intent\":3,\"task\":2,\"update_todo\":2,\"view\":19}", "output": "diff --git a/App/Apps/W1/SubscriptionBilling/App/Billing/Codeunits/CreateBillingDocuments.Codeunit.al b/App/Apps/W1/SubscriptionBilling/App/Billing/Codeunits/CreateBillingDocuments.Codeunit.al\nindex c7efaed2..c289816a 100644\n--- a/App/Apps/W1/SubscriptionBilling/App/Billing/Codeunits/CreateBillingDocuments.Codeunit.al\n+++ b/App/Apps/W1/SubscriptionBilling/App/Billing/Codeunits/CreateBillingDocuments.Codeunit.al\n@@ -261,6 +261,7 @@ codeunit 8060 \"Create Billing Documents\"\n SalesLine.\"Description 2\" := '';\n \n SetInvoicePriceFromUsageDataBilling(SalesLine, TempBillingLine);\n+ SalesLine.\"Exclude from Doc. Total\" := false;\n OnBeforeInsertSalesLineFromContractLine(SalesLine, TempBillingLine);\n SalesLine.Insert(false);\n \n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '148155'\nCodeunit 148155 Contracts Test\n Testfunction SalesInvoiceShowsSubtotalForServCommItem Failure (9.823 seconds)\n Error:\n Exclude from Document Total must be equal to 'No' in Sales Line: Document Type=Invoice, Document No.=102222, Line No.=10000. Current value is 'Yes'.\n Call Stack:\n \"Contracts Test\"(CodeUnit 148155).SalesInvoiceShowsSubtotalForServCommItem line 22 - Subscription Billing Test by Microsoft version 26.3.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.3.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.3.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.3.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.3.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.3.0.0"} +{"InstanceID": "microsoftInternal__NAV-177750", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 277.879, "tool_calls": 57, "total_tokens": 1116200, "TurnCount": 31}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":5,\"grep\":16,\"powershell\":2,\"report_intent\":2,\"store_memory\":2,\"task\":1,\"update_todo\":4,\"view\":24}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\nindex a1e3fedb..ca450a3a 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\n@@ -3075,6 +3075,30 @@ table 1003 \"Job Planning Line\"\n exit(0);\n end;\n \n+ procedure QtyAsmRemainingBaseOnATO(): Decimal\n+ var\n+ AsmHeader: Record \"Assembly Header\";\n+ begin\n+ if AsmToOrderExists(AsmHeader) then\n+ exit(AsmHeader.\"Remaining Quantity (Base)\");\n+ exit(0);\n+ end;\n+\n+ procedure GetATOBin(Location: Record Location; var BinCode: Code[20]): Boolean\n+ var\n+ AsmHeader: Record \"Assembly Header\";\n+ begin\n+ if not Location.\"Require Shipment\" then\n+ BinCode := Location.\"Asm.-to-Order Shpt. Bin Code\";\n+ if BinCode <> '' then\n+ exit(true);\n+\n+ if AsmHeader.GetFromAssemblyBin(Location, BinCode) then\n+ exit(true);\n+\n+ exit(false);\n+ end;\n+\n procedure ShowAsmToJobPlanningLines()\n begin\n ATOLink.ShowAsmToJobPlanningLines(Rec);\ndiff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al b/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al\nindex 320720d7..ad7827b2 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al\n@@ -1073,6 +1073,7 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n local procedure CalcRemQtyToPickOrMoveBase(NewWarehouseActivityLine: Record \"Warehouse Activity Line\"; OutstandingQtyBase: Decimal; var RemQtyToPickBase: Decimal)\n var\n ATOSalesLine: Record \"Sales Line\";\n+ ATOJobPlanningLine: Record \"Job Planning Line\";\n MaxQtyToPickBase: Decimal;\n begin\n MaxQtyToPickBase :=\n@@ -1084,6 +1085,9 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n if WMSManagement.GetATOSalesLine(NewWarehouseActivityLine.\"Source Type\", NewWarehouseActivityLine.\"Source Subtype\", NewWarehouseActivityLine.\"Source No.\", NewWarehouseActivityLine.\"Source Line No.\", ATOSalesLine) then\n MaxQtyToPickBase += ATOSalesLine.QtyAsmRemainingBaseOnATO();\n \n+ if WMSManagement.GetATOJobPlanningLine(NewWarehouseActivityLine.\"Source Type\", NewWarehouseActivityLine.\"Source No.\", NewWarehouseActivityLine.\"Source Line No.\", NewWarehouseActivityLine.\"Source Subline No.\", ATOJobPlanningLine) then\n+ MaxQtyToPickBase += ATOJobPlanningLine.QtyAsmRemainingBaseOnATO();\n+\n if RemQtyToPickBase > MaxQtyToPickBase then begin\n RemQtyToPickBase := MaxQtyToPickBase;\n if NewWarehouseActivityLine.\"Shipping Advice\" = NewWarehouseActivityLine.\"Shipping Advice\"::Complete then\n@@ -2096,9 +2100,11 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n case CurrLocation.\"Special Equipment\" of\n CurrLocation.\"Special Equipment\"::\"According to Bin\":\n begin\n- GetBin(CurrLocation.Code, BinCode);\n- if CurrBin.\"Special Equipment Code\" <> '' then\n- exit(CurrBin.\"Special Equipment Code\");\n+ if BinCode <> '' then begin\n+ GetBin(CurrLocation.Code, BinCode);\n+ if CurrBin.\"Special Equipment Code\" <> '' then\n+ exit(CurrBin.\"Special Equipment Code\");\n+ end;\n \n GetItemAndSKU(ItemNo, LocationCode, VariantCode);\n if CurrStockKeepingUnit.\"Special Equipment Code\" <> '' then\n@@ -2115,8 +2121,10 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n if CurrItem.\"Special Equipment Code\" <> '' then\n exit(CurrItem.\"Special Equipment Code\");\n \n- GetBin(CurrLocation.Code, BinCode);\n- exit(CurrBin.\"Special Equipment Code\")\n+ if BinCode <> '' then begin\n+ GetBin(CurrLocation.Code, BinCode);\n+ exit(CurrBin.\"Special Equipment Code\");\n+ end;\n end\n end\n end;\n@@ -2155,6 +2163,7 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n procedure CreateATOPickLine(NewWarehouseActivityLine: Record \"Warehouse Activity Line\"; BinCode: Code[20]; var RemQtyToPickBase: Decimal)\n var\n ATOSalesLine: Record \"Sales Line\";\n+ ATOJobPlanningLine: Record \"Job Planning Line\";\n AssemblyHeader: Record \"Assembly Header\";\n AssemblySetup: Record \"Assembly Setup\";\n ReservationEntry: Record \"Reservation Entry\";\n@@ -2193,7 +2202,37 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n if AssemblySetup.\"Create Movements Automatically\" then\n CreateATOInventoryMovementsAutomatically(AssemblyHeader, ATOInvtMovementsCreated, TotalATOInvtMovementsToBeCreated);\n end;\n- end;\n+ end else\n+ if (not IsInvtMovement) and\n+ WMSManagement.GetATOJobPlanningLine(NewWarehouseActivityLine.\"Source Type\",\n+ NewWarehouseActivityLine.\"Source No.\",\n+ NewWarehouseActivityLine.\"Source Line No.\",\n+ NewWarehouseActivityLine.\"Source Subline No.\",\n+ ATOJobPlanningLine)\n+ then begin\n+ ATOJobPlanningLine.AsmToOrderExists(AssemblyHeader);\n+ if NewWarehouseActivityLine.TrackingExists() then begin\n+ AssemblyHeader.SetReservationFilters(ReservationEntry);\n+ ReservationEntry.SetTrackingFilterFromWhseActivityLine(NewWarehouseActivityLine);\n+ ReservationEntry.SetRange(Positive, true);\n+ if ItemTrackingManagement.SumUpItemTracking(ReservationEntry, TempTrackingSpecification1, true, true) then\n+ QtyToAsmBase := Abs(TempTrackingSpecification1.\"Qty. to Handle (Base)\");\n+ end else\n+ QtyToAsmBase := ATOJobPlanningLine.QtyToAsmBaseOnATO();\n+ WhseItemTrackingSetup.CopyTrackingFromWhseActivityLine(NewWarehouseActivityLine);\n+ QtyToPickBase := QtyToAsmBase - WMSManagement.CalcQtyBaseOnATOInvtPickJob(ATOJobPlanningLine, WhseItemTrackingSetup);\n+ if QtyToPickBase > 0 then begin\n+ MakeWarehouseActivityHeader();\n+ if CurrLocation.\"Bin Mandatory\" and (BinCode = '') then\n+ ATOJobPlanningLine.GetATOBin(CurrLocation, BinCode);\n+ NewWarehouseActivityLine.\"Assemble to Order\" := true;\n+ MakeWarehouseActivityLine(NewWarehouseActivityLine, BinCode, QtyToPickBase, RemQtyToPickBase);\n+\n+ AssemblySetup.Get();\n+ if AssemblySetup.\"Create Movements Automatically\" then\n+ CreateATOInventoryMovementsAutomatically(AssemblyHeader, ATOInvtMovementsCreated, TotalATOInvtMovementsToBeCreated);\n+ end;\n+ end;\n OnAfterCreateATOPickLine(QtyToPickBase, AssemblyHeader, NewWarehouseActivityLine, CurrWarehouseActivityHeader, RemQtyToPickBase);\n end;\n \ndiff --git a/App/Layers/W1/BaseApp/Warehouse/Journal/WMSManagement.Codeunit.al b/App/Layers/W1/BaseApp/Warehouse/Journal/WMSManagement.Codeunit.al\nindex dda50b4d..78a1189e 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Journal/WMSManagement.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Journal/WMSManagement.Codeunit.al\n@@ -1763,6 +1763,27 @@ codeunit 7302 \"WMS Management\"\n CheckBlockedBin(LocationCode, BinCode, ItemNo, VariantCode, UnitOfMeasureCode, false);\n end;\n \n+ local procedure SetFiltersOnATOInvtPickJob(JobPlanningLine: Record \"Job Planning Line\"; var WarehouseActivityLine: Record \"Warehouse Activity Line\")\n+ begin\n+ WarehouseActivityLine.SetRange(WarehouseActivityLine.\"Activity Type\", WarehouseActivityLine.\"Activity Type\"::\"Invt. Pick\");\n+ WarehouseActivityLine.SetSourceFilter(\n+ Database::Job, 0, JobPlanningLine.\"Job No.\", JobPlanningLine.\"Job Contract Entry No.\", JobPlanningLine.\"Line No.\", false);\n+ WarehouseActivityLine.SetRange(WarehouseActivityLine.\"Assemble to Order\", true);\n+ WarehouseActivityLine.SetTrackingFilterIfNotEmpty();\n+ end;\n+\n+ procedure CalcQtyBaseOnATOInvtPickJob(JobPlanningLine: Record \"Job Planning Line\"; WhseItemTrackingSetup: Record \"Item Tracking Setup\") QtyBase: Decimal\n+ var\n+ WarehouseActivityLine: Record \"Warehouse Activity Line\";\n+ begin\n+ WarehouseActivityLine.CopyTrackingFromItemTrackingSetup(WhseItemTrackingSetup);\n+ SetFiltersOnATOInvtPickJob(JobPlanningLine, WarehouseActivityLine);\n+ if WarehouseActivityLine.FindSet() then\n+ repeat\n+ QtyBase += WarehouseActivityLine.\"Qty. Outstanding (Base)\";\n+ until WarehouseActivityLine.Next() = 0;\n+ end;\n+\n procedure CheckInboundBlockedBin(LocationCode: Code[10]; BinCode: Code[20]; ItemNo: Code[20]; VariantCode: Code[10]; UnitOfMeasureCode: Code[10])\n begin\n CheckBlockedBin(LocationCode, BinCode, ItemNo, VariantCode, UnitOfMeasureCode, true);\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136322'\nCodeunit 136322 Jobs - Assemble-to Order\n Testfunction PostInventoryPickForAssemblyItemRelatedToJobPlanningLineWithBin Failure (7.744 seconds)\n Error:\n Status must be equal to 'Released' in Assembly Header: Document Type=Order, No.=A00001. Current value is 'Open'.\n Call Stack:\n \"Assembly Header\"(Table 900).CreateInvtMovement line 11 - Base Application by Microsoft\n \"Create Inventory Pick/Movement\"(CodeUnit 7322).CreateATOInventoryMovementsAutomatically line 11 - Base Application by Microsoft\n \"Create Inventory Pick/Movement\"(CodeUnit 7322).CreateATOPickLine line 70 - Base Application by Microsoft\n \"Create Inventory Pick/Movement\"(CodeUnit 7322).InsertPickOrMoveBinWhseActLine line 15 - Base Application by Microsoft\n \"Create Inventory Pick/Movement\"(CodeUnit 7322).CreatePickOrMoveLine line 153 - Base Application by Microsoft\n \"Create Inventory Pick/Movement\"(CodeUnit 7322).CreatePickOrMoveFromJobPlanning line 48 - Base Application by Microsoft\n \"Create Inventory Pick/Movement\"(CodeUnit 7322).AutoCreatePickOrMove line 30 - Base Application by Microsoft\n \"Create Invt Put-away/Pick/Mvmt\"(Report 7323).\"Warehouse Request - OnAfterGetRecord\"(Trigger) line 49 - Base Application by Microsoft"} +{"InstanceID": "microsoftInternal__NAV-208320", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 415.552, "tool_calls": 53, "total_tokens": 1114100, "TurnCount": 97}, "Project": "BaseApp", "ToolUsage": "{\"edit\":6,\"grep\":24,\"report_intent\":3,\"task\":2,\"update_todo\":4,\"view\":14}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrder.Page.al b/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrder.Page.al\nindex 1dee700e..3c5d1c17 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrder.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrder.Page.al\n@@ -1363,6 +1363,8 @@ page 507 \"Blanket Sales Order\"\n ShowWorkflowStatus := CurrPage.WorkflowStatus.PAGE.SetFilterOnWorkflowRecord(Rec.RecordId);\n CurrPage.ApprovalFactBox.PAGE.UpdateApprovalEntriesFromSourceRecord(Rec.RecordId);\n StatusStyleTxt := Rec.GetStatusStyleText();\n+ SellToContact.GetOrClear(Rec.\"Sell-to Contact No.\");\n+ BillToContact.GetOrClear(Rec.\"Bill-to Contact No.\");\n end;\n \n trigger OnAfterGetRecord()\ndiff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesCreditMemo.Page.al b/App/Layers/W1/BaseApp/Sales/Document/SalesCreditMemo.Page.al\nindex 84ba27e1..7e54ddd9 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesCreditMemo.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesCreditMemo.Page.al\n@@ -1507,6 +1507,8 @@ page 44 \"Sales Credit Memo\"\n ShowWorkflowStatus := CurrPage.WorkflowStatus.PAGE.SetFilterOnWorkflowRecord(Rec.RecordId);\n StatusStyleTxt := Rec.GetStatusStyleText();\n SetControlAppearance();\n+ SellToContact.GetOrClear(Rec.\"Sell-to Contact No.\");\n+ BillToContact.GetOrClear(Rec.\"Bill-to Contact No.\");\n end;\n \n trigger OnAfterGetRecord()\ndiff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesInvoice.Page.al b/App/Layers/W1/BaseApp/Sales/Document/SalesInvoice.Page.al\nindex ee0d93e0..4e3cc327 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesInvoice.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesInvoice.Page.al\n@@ -1868,6 +1868,8 @@ page 43 \"Sales Invoice\"\n StatusStyleTxt := Rec.GetStatusStyleText();\n UpdatePaymentService();\n SetControlAppearance();\n+ SellToContact.GetOrClear(Rec.\"Sell-to Contact No.\");\n+ BillToContact.GetOrClear(Rec.\"Bill-to Contact No.\");\n end;\n \n trigger OnAfterGetRecord()\ndiff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesOrder.Page.al b/App/Layers/W1/BaseApp/Sales/Document/SalesOrder.Page.al\nindex 77cf2b18..f4cd7429 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesOrder.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesOrder.Page.al\n@@ -2574,6 +2574,8 @@ page 42 \"Sales Order\"\n end;\n StatusStyleTxt := Rec.GetStatusStyleText();\n SetControlVisibility();\n+ SellToContact.GetOrClear(Rec.\"Sell-to Contact No.\");\n+ BillToContact.GetOrClear(Rec.\"Bill-to Contact No.\");\n end;\n end;\n \ndiff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesQuote.Page.al b/App/Layers/W1/BaseApp/Sales/Document/SalesQuote.Page.al\nindex 7827a9ec..4f62ed2b 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesQuote.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesQuote.Page.al\n@@ -1791,6 +1791,8 @@ page 41 \"Sales Quote\"\n StatusStyleTxt := Rec.GetStatusStyleText();\n UpdatePaymentService();\n SetControlAppearance();\n+ SellToContact.GetOrClear(Rec.\"Sell-to Contact No.\");\n+ BillToContact.GetOrClear(Rec.\"Bill-to Contact No.\");\n end;\n \n trigger OnAfterGetRecord()\ndiff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesReturnOrder.Page.al b/App/Layers/W1/BaseApp/Sales/Document/SalesReturnOrder.Page.al\nindex e9c58725..c8f318ae 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesReturnOrder.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesReturnOrder.Page.al\n@@ -1684,6 +1684,8 @@ page 6630 \"Sales Return Order\"\n ShowWorkflowStatus := CurrPage.WorkflowStatus.PAGE.SetFilterOnWorkflowRecord(Rec.RecordId());\n CurrPage.ApprovalFactBox.PAGE.UpdateApprovalEntriesFromSourceRecord(Rec.RecordId());\n StatusStyleTxt := Rec.GetStatusStyleText();\n+ SellToContact.GetOrClear(Rec.\"Sell-to Contact No.\");\n+ BillToContact.GetOrClear(Rec.\"Bill-to Contact No.\");\n end;\n \n trigger OnAfterGetRecord()\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134386'\nCodeunit 134386 ERM Sales Documents II\n Testfunction UpdateEmailAndPhoneNoWhenChangeBillToOfSalesInvoice Failure (10.504 seconds)\n Error:\n AssertEquals for Field: BillToContactPhoneNo Expected = '333333333', Actual = '111111111'\n Call Stack:\n \"ERM Sales Documents II\"(CodeUnit 134386).UpdateEmailAndPhoneNoWhenChangeBillToOfSalesInvoice line 34 - Tests-ERM by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0"} +{"InstanceID": "microsoft__BCApps-4766", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 108.87899999999999, "tool_calls": 12, "total_tokens": 197000, "TurnCount": 24}, "Project": "Subscription Billing", "ToolUsage": "{\"edit\":2,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":4}", "output": "diff --git a/src/Apps/W1/Subscription Billing/App/Customer Contracts/Tables/CustSubContractLine.Table.al b/src/Apps/W1/Subscription Billing/App/Customer Contracts/Tables/CustSubContractLine.Table.al\nindex 91f83b1..6484d4d 100644\n--- a/src/Apps/W1/Subscription Billing/App/Customer Contracts/Tables/CustSubContractLine.Table.al\t\n+++ b/src/Apps/W1/Subscription Billing/App/Customer Contracts/Tables/CustSubContractLine.Table.al\t\n@@ -66,6 +66,7 @@ table 8062 \"Cust. Sub. Contract Line\"\n end;\n end;\n \n+ CheckAndDisconnectContractLine();\n TempCustomerContractLine := Rec;\n Init();\n SystemId := TempCustomerContractLine.SystemId;\ndiff --git a/src/Apps/W1/Subscription Billing/App/Vendor Contracts/Tables/VendSubContractLine.Table.al b/src/Apps/W1/Subscription Billing/App/Vendor Contracts/Tables/VendSubContractLine.Table.al\nindex 533581b..013f5e4 100644\n--- a/src/Apps/W1/Subscription Billing/App/Vendor Contracts/Tables/VendSubContractLine.Table.al\t\n+++ b/src/Apps/W1/Subscription Billing/App/Vendor Contracts/Tables/VendSubContractLine.Table.al\t\n@@ -63,6 +63,7 @@ table 8065 \"Vend. Sub. Contract Line\"\n end;\n end;\n \n+ CheckAndDisconnectContractLine();\n TempVendorContractLine := Rec;\n Init();\n SystemId := TempVendorContractLine.SystemId;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '148155'\nCodeunit 148155 Contracts Test\n Testfunction ContractLineDisconnectServiceOnNoChange Failure (8.733 seconds)\n Error:\n Item with the No. does not exist.\n Call Stack:\n \"Cust. Sub. Contract Line\"(Table 8062).\"No. - OnValidate\"(Trigger) line 10 - Subscription Billing by Microsoft version 27.0.0.0\n \"Contracts Test\"(CodeUnit 148155).ContractLineDisconnectServiceOnNoChange line 24 - Subscription Billing Test by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0\nSetting test codeunit range '148154'\nCodeunit 148154 Vendor Contracts Test\n Testfunction ContractLineDisconnectServiceOnNoChange Failure (1.11 seconds)\n Error:\n Item with the No. does not exist.\n Call Stack:\n \"Vend. Sub. Contract Line\"(Table 8065).\"No. - OnValidate\"(Trigger) line 10 - Subscription Billing by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-209450", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 326.427, "tool_calls": 37, "total_tokens": 586700, "TurnCount": 80}, "Project": "BaseApp", "ToolUsage": "{\"edit\":4,\"grep\":11,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":15}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\nindex bb5d38d2..cb0dd32b 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\n@@ -1075,6 +1075,8 @@ table 1003 \"Job Planning Line\"\n TestField(Type, Type::Item);\n TestField(\"No.\");\n TestField(\"Usage Link\");\n+ if IsNonInventoriableItem() then\n+ Error(NonInvReserveTypeErr, \"No.\", Reserve);\n end;\n CalcFields(\"Reserved Qty. (Base)\");\n if (Reserve = Reserve::Never) and (\"Reserved Qty. (Base)\" > 0) then\n@@ -1524,6 +1526,7 @@ table 1003 \"Job Planning Line\"\n NegativeQtyToAssembleErr: Label ' must be positive.', Comment = 'Qty. to Assemble can''t be negative';\n DifferentQtyToAssembleErr: Label ' must be equal to %1.', Comment = 'Qty. to Assemble must be equal to Quantity, %1 = Quantity';\n CannotBeMoreErr: Label 'cannot be more than %1', Comment = '%1 = Quantity';\n+ NonInvReserveTypeErr: Label 'Non-inventory and service items must have the reserve type Never. The current reserve type for item %1 is %2.', Comment = '%1 is Item No., %2 is Reserve';\n ConfirmDeleteQst: Label '%1 = %2 is greater than %3 = %4. If you delete the %5, the items will remain in the operation area until you put them away.\\Any related item tracking information defined during the pick process will be deleted.\\Do you still want to delete the %5?', Comment = '%1 = FieldCaption(\"Qty. Picked\"), %2 = \"Qty. Picked\", %3 = FieldCaption(\"Qty. Posted\"), %4 = \"Qty. Posted\", %5 = TableCaption';\n \n protected var\n@@ -1668,10 +1671,13 @@ table 1003 \"Job Planning Line\"\n \"Gen. Prod. Posting Group\" := Item.\"Gen. Prod. Posting Group\";\n Validate(\"Unit of Measure Code\", Item.\"Base Unit of Measure\");\n if \"Usage Link\" then\n- if Item.Reserve = Item.Reserve::Optional then\n- Reserve := Job.Reserve\n+ if IsNonInventoriableItem() then\n+ Reserve := Reserve::Never\n else\n- Reserve := Item.Reserve;\n+ if Item.Reserve = Item.Reserve::Optional then\n+ Reserve := Job.Reserve\n+ else\n+ Reserve := Item.Reserve;\n OnAfterCopyFromItem(Rec, Job, Item);\n end;\n \n@@ -2584,11 +2590,14 @@ table 1003 \"Job Planning Line\"\n FieldNo(\"Usage Link\"):\n if (Type = Type::Item) and \"Usage Link\" then begin\n GetItem();\n- if Item.Reserve = Item.Reserve::Optional then begin\n- GetJob();\n- Reserve := Job.Reserve\n- end else\n- Reserve := Item.Reserve;\n+ if IsNonInventoriableItem() then\n+ Reserve := Reserve::Never\n+ else\n+ if Item.Reserve = Item.Reserve::Optional then begin\n+ GetJob();\n+ Reserve := Job.Reserve\n+ end else\n+ Reserve := Item.Reserve;\n end else\n Reserve := Reserve::Never;\n end;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136302'\nCodeunit 136302 Job Consumption Purchase\n Testfunction PurchaseLineNotReservedWhenItemTypeNonInventoryOrService Failure (15.336 seconds)\n Error:\n Non-inventory and service items must have the reserve type Never. The current reserve type for item GL00000001 is Optional.\n Call Stack:\n \"Job Planning Line\"(Table 1003).\"Reserve - OnValidate\"(Trigger) line 7 - Base Application by Microsoft version 26.0.0.0\n \"Job Consumption Purchase\"(CodeUnit 136302).PurchaseLineNotReservedWhenItemTypeNonInventoryOrService line 34 - Tests-Job by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-217797", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 135.738, "tool_calls": 12, "total_tokens": 141200, "TurnCount": 36}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":3,\"report_intent\":2,\"task\":2,\"update_todo\":2,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Availability/CalcItemAvailability.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Availability/CalcItemAvailability.Codeunit.al\nindex 21992d4e..055a169d 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Availability/CalcItemAvailability.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Availability/CalcItemAvailability.Codeunit.al\n@@ -906,6 +906,8 @@ codeunit 5530 \"Calc. Item Availability\"\n RecRef.SetTable(RequisitionLine);\n ReqWkshTemplate.Get(RequisitionLine.\"Worksheet Template Name\");\n ReqWkshTemplate.TestField(\"Page ID\");\n+ RequisitionLine.SetRange(\"Worksheet Template Name\", RequisitionLine.\"Worksheet Template Name\");\n+ RequisitionLine.SetRange(\"Journal Batch Name\", RequisitionLine.\"Journal Batch Name\");\n PAGE.RunModal(ReqWkshTemplate.\"Page ID\", RequisitionLine);\n end;\n Database::\"Planning Component\":\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137009'\nCodeunit 137009 SCM Availability by Event\n Testfunction LookupItemAvailabilityByEventOnItemCardOpenTheCorrectPlanningWorksheetBatch Failure (11.02 seconds)\n Error:\n AssertEquals for Field: CurrentWkshBatchName Expected = 'DEFAULT', Actual = ''\n Call Stack:\n \"SCM Availability by Event\"(CodeUnit 137009).PlanningWorksheetModalPageHandler line 7 - Tests-SCM by Microsoft version 27.0.0.0\n \"Calc. Item Availability\"(CodeUnit 5530).ShowDocument line 146 - Base Application by Microsoft version 27.0.0.0\n \"Calc. Inventory Page Data\"(CodeUnit 5531).ShowDocument line 2 - Base Application by Microsoft version 27.0.0.0\n \"Item Availability by Event\"(Page 5530).\"Show Document - OnAction\"(Trigger) line 2 - Base Application by Microsoft version 27.0.0.0\n \"SCM Availability by Event\"(CodeUnit 137009).ItemAvailabilityByEventPageHandler line 6 - Tests-SCM by Microsoft version 27.0.0.0\n \"Item Availability Forms Mgt\"(CodeUnit 353).ShowItemAvailabilityByEvent line 24 - Base Application by Microsoft version 27.0.0.0\n \"Item Availability Forms Mgt\"(CodeUnit 353).ShowItemAvailabilityFromItem line 22 - Base Application by Microsoft version 27.0.0.0\n \"Item Card\"(Page 30).\" - OnAction\"(Trigger) line 2 - Base Application by Microsoft version 27.0.0.0\n \"SCM Availability by Event\"(CodeUnit 137009).LookupItemAvailabilityByEventOnItemCardOpenTheCorrectPlanningWorksheetBatch line 46 - Tests-SCM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-216918", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 212.233, "tool_calls": 20, "total_tokens": 293700, "TurnCount": 33}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":3,\"report_intent\":2,\"store_memory\":1,\"task\":2,\"update_todo\":4,\"view\":6}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\nindex d541dd08..efa7ca63 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\n@@ -451,6 +451,7 @@ codeunit 1004 \"Job Transfer Line\"\n Job: Record Job;\n JobTask: Record \"Job Task\";\n NonDeductibleVAT: Codeunit \"Non-Deductible VAT\";\n+ NonDeductibleVATAmountJobCur: Decimal;\n begin\n OnBeforeFromGenJnlLineToJnlLine(JobJnlLine, GenJnlLine);\n \n@@ -498,18 +499,27 @@ codeunit 1004 \"Job Transfer Line\"\n JobJnlLine.\"Total Cost (LCY)\" := GenJnlLine.\"Job Total Cost (LCY)\";\n JobJnlLine.\"Total Cost\" := GenJnlLine.\"Job Total Cost\";\n \n- if NonDeductibleVAT.UseNonDeductibleVATAmountForJobCost() then\n+ if NonDeductibleVAT.UseNonDeductibleVATAmountForJobCost() then begin\n+ NonDeductibleVATAmountJobCur := GenJnlLine.\"Non-Deductible VAT Amount LCY\";\n+ if JobJnlLine.\"Currency Code\" <> '' then\n+ NonDeductibleVATAmountJobCur :=\n+ CurrencyExchRate.ExchangeAmtLCYToFCY(\n+ JobJnlLine.\"Posting Date\",\n+ JobJnlLine.\"Currency Code\",\n+ GenJnlLine.\"Non-Deductible VAT Amount LCY\",\n+ JobJnlLine.\"Currency Factor\");\n if JobJnlLine.\"Unit Cost\" > 0 then begin\n JobJnlLine.\"Unit Cost (LCY)\" += Abs(Round(GenJnlLine.\"Non-Deductible VAT Amount LCY\" / JobJnlLine.Quantity));\n- JobJnlLine.\"Unit Cost\" += Abs(Round(GenJnlLine.\"Non-Deductible VAT Amount\" / JobJnlLine.Quantity));\n+ JobJnlLine.\"Unit Cost\" += Abs(Round(NonDeductibleVATAmountJobCur / JobJnlLine.Quantity));\n JobJnlLine.\"Total Cost (LCY)\" += Abs(GenJnlLine.\"Non-Deductible VAT Amount LCY\");\n- JobJnlLine.\"Total Cost\" += Abs(GenJnlLine.\"Non-Deductible VAT Amount\");\n+ JobJnlLine.\"Total Cost\" += Abs(NonDeductibleVATAmountJobCur);\n end else begin\n JobJnlLine.\"Unit Cost (LCY)\" += Round(GenJnlLine.\"Non-Deductible VAT Amount LCY\" / JobJnlLine.Quantity);\n- JobJnlLine.\"Unit Cost\" += Round(GenJnlLine.\"Non-Deductible VAT Amount\" / JobJnlLine.Quantity);\n+ JobJnlLine.\"Unit Cost\" += Round(NonDeductibleVATAmountJobCur / JobJnlLine.Quantity);\n JobJnlLine.\"Total Cost (LCY)\" += GenJnlLine.\"Non-Deductible VAT Amount LCY\";\n- JobJnlLine.\"Total Cost\" += GenJnlLine.\"Non-Deductible VAT Amount\";\n+ JobJnlLine.\"Total Cost\" += NonDeductibleVATAmountJobCur;\n end;\n+ end;\n \n JobJnlLine.\"Unit Price (LCY)\" := GenJnlLine.\"Job Unit Price (LCY)\";\n JobJnlLine.\"Unit Price\" := GenJnlLine.\"Job Unit Price\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134284'\nCodeunit 134284 Non Ded. VAT Misc.\n Testfunction JobJnlLineWithNonDeductNormalVATInFCYFromGenJnlLine Failure (4.15 seconds)\n Error:\n Assert.AreEqual failed. Expected:<10.76> (Decimal). Actual:<10.31> (Decimal). Unit Cost (LCY) with Non-Deductible VAT amount is not correct in Job Journal Line.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"Non Ded. VAT Misc.\"(CodeUnit 134284).JobJnlLineWithNonDeductNormalVATInFCYFromGenJnlLine line 32 - Tests-VAT by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoft__BCApps-5633", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 216.164, "tool_calls": 20, "total_tokens": 339100, "TurnCount": 23}, "Project": "Shopify", "ToolUsage": "{\"create\":1,\"edit\":1,\"glob\":5,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":6}", "output": "diff --git a/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al b/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al\nindex 1f790f9..498dda1 100644\n--- a/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al\n@@ -220,11 +220,24 @@ codeunit 30190 \"Shpfy Export Shipments\"\n FulfillmentOrderLine.SetRange(\"Delivery Method Type\", OrderLine.\"Delivery Method Type\");\n FulfillmentOrderLine.SetFilter(\"Remaining Quantity\", '>=%1', Round(SalesShipmentLine.Quantity, 1, '='));\n FulfillmentOrderLine.SetFilter(\"Fulfillment Status\", '<>%1', 'CLOSED');\n- if FulfillmentOrderLine.FindFirst() then\n- exit(true);\n+ if FulfillmentOrderLine.FindSet() then\n+ repeat\n+ if not IsFulfillmentServiceLocation(FulfillmentOrderLine) then\n+ exit(true);\n+ until FulfillmentOrderLine.Next() = 0;\n end;\n end;\n \n+ local procedure IsFulfillmentServiceLocation(FulfillmentOrderLine: Record \"Shpfy FulFillment Order Line\"): Boolean\n+ var\n+ FulfillmentOrderHeader: Record \"Shpfy FulFillment Order Header\";\n+ ShopLocation: Record \"Shpfy Shop Location\";\n+ begin\n+ if FulfillmentOrderHeader.Get(FulfillmentOrderLine.\"Shopify Fulfillment Order Id\") then\n+ if ShopLocation.Get(FulfillmentOrderHeader.\"Shop Code\", FulfillmentOrderHeader.\"Shopify Location Id\") then\n+ exit(ShopLocation.\"Is Fulfillment Service\");\n+ end;\n+\n local procedure GetNotifyCustomer(Shop: Record \"Shpfy Shop\"; SalesShipmmentHeader: Record \"Sales Shipment Header\"; LocationId: BigInteger): Boolean\n var\n IsHandled: Boolean;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139606'\nCodeunit 139606 Shpfy Shipping Test\n Testfunction UnitTestExportShipmentThirdParty Failure (5.107 seconds)\n Error:\n Assert.AreEqual failed. Expected:<0> (Integer). Actual:<1> (Integer). FulfillmentRequest count check.\n Call Stack:\n \"Library Assert\"(CodeUnit 130002).AreEqual line 3 - Library Assert by Microsoft version 27.2.0.0\n \"Shpfy Shipping Test\"(CodeUnit 139606).UnitTestExportShipmentThirdParty line 26 - Shopify Connector Test by Microsoft version 27.2.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.2.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.2.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.2.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.2.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.2.0.0"} +{"InstanceID": "microsoftInternal__NAV-181900", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 82.05799999999999, "tool_calls": 12, "total_tokens": 131100, "TurnCount": 14}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":4}", "output": "diff --git a/App/Layers/W1/BaseApp/OtherCapabilities/Approvals/ApprovalsMgmt.Codeunit.al b/App/Layers/W1/BaseApp/OtherCapabilities/Approvals/ApprovalsMgmt.Codeunit.al\nindex 266d61e5..9554d15b 100644\n--- a/App/Layers/W1/BaseApp/OtherCapabilities/Approvals/ApprovalsMgmt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/OtherCapabilities/Approvals/ApprovalsMgmt.Codeunit.al\n@@ -459,6 +459,10 @@ codeunit 1535 \"Approvals Mgmt.\"\n begin\n ApprovalEntry.SetRange(\"Table ID\", RecordID.TableNo);\n ApprovalEntry.SetRange(\"Record ID to Approve\", RecordID);\n+ ApprovalEntry.SetRange(Status, ApprovalEntry.Status::Open);\n+ if ApprovalEntry.FindFirst() then\n+ exit(true);\n+ ApprovalEntry.SetRange(Status);\n exit(ApprovalEntry.FindLast());\n end;\n \n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134321'\nCodeunit 134321 General Journal Batch Approval\n Testfunction ShowImposedRestrictionBatchStatusForWorkflowUserGroupIfFirstApprovalEntryIsApproved Failure (6.863 seconds)\n Error:\n Assert.AreEqual failed. Expected: (Text). Actual: (Text). Imposed restriction is not shown.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"General Journal Batch Approval\"(CodeUnit 134321).ShowImposedRestrictionBatchStatusForWorkflowUserGroupIfFirstApprovalEntryIsApproved line 30 - Tests-General Journal by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"InstanceID": "microsoftInternal__NAV-218856", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 325.989, "tool_calls": 22, "total_tokens": 415000, "TurnCount": 99}, "Project": "BaseApp", "ToolUsage": "{\"edit\":3,\"grep\":2,\"powershell\":1,\"report_intent\":3,\"task\":2,\"update_todo\":3,\"view\":8}", "output": "diff --git a/App/Layers/W1/BaseApp/Service/Contract/ServiceContractHeader.Table.al b/App/Layers/W1/BaseApp/Service/Contract/ServiceContractHeader.Table.al\nindex 4f315c8f..01b1370e 100644\n--- a/App/Layers/W1/BaseApp/Service/Contract/ServiceContractHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Service/Contract/ServiceContractHeader.Table.al\n@@ -2241,6 +2241,7 @@ table 5965 \"Service Contract Header\"\n Cust: Record Customer;\n Cont: Record Contact;\n IsHandled: Boolean;\n+ ContactBusinessRelationFound: Boolean;\n begin\n IsHandled := false;\n OnBeforeUpdateCust(Rec, ContactNo, IsHandled);\n@@ -2265,7 +2266,11 @@ table 5965 \"Service Contract Header\"\n exit;\n end;\n \n- if ContBusinessRelation.FindByContact(ContBusinessRelation.\"Link to Table\"::Customer, Cont.\"Company No.\") then begin\n+ if Cont.Type = Cont.Type::Person then\n+ ContactBusinessRelationFound := ContBusinessRelation.FindByContact(ContBusinessRelation.\"Link to Table\"::Customer, Cont.\"No.\");\n+ if not ContactBusinessRelationFound then\n+ ContactBusinessRelationFound := ContBusinessRelation.FindByContact(ContBusinessRelation.\"Link to Table\"::Customer, Cont.\"Company No.\");\n+ if ContactBusinessRelationFound then begin\n if (\"Customer No.\" <> '') and\n (\"Customer No.\" <> ContBusinessRelation.\"No.\")\n then\n@@ -2289,6 +2294,7 @@ table 5965 \"Service Contract Header\"\n ContBusinessRelation: Record \"Contact Business Relation\";\n Cust: Record Customer;\n Cont: Record Contact;\n+ ContactBusinessRelationFound: Boolean;\n begin\n if Cont.Get(ContactNo) then begin\n \"Bill-to Contact No.\" := Cont.\"No.\";\n@@ -2305,7 +2311,11 @@ table 5965 \"Service Contract Header\"\n end;\n \n OnUpdateBillToCustOnBeforeContBusinessRelationFindByContact(Rec, Cust, Cont);\n- if ContBusinessRelation.FindByContact(ContBusinessRelation.\"Link to Table\"::Customer, Cont.\"Company No.\") then begin\n+ if Cont.Type = Cont.Type::Person then\n+ ContactBusinessRelationFound := ContBusinessRelation.FindByContact(ContBusinessRelation.\"Link to Table\"::Customer, Cont.\"No.\");\n+ if not ContactBusinessRelationFound then\n+ ContactBusinessRelationFound := ContBusinessRelation.FindByContact(ContBusinessRelation.\"Link to Table\"::Customer, Cont.\"Company No.\");\n+ if ContactBusinessRelationFound then begin\n if \"Bill-to Customer No.\" = '' then begin\n SkipBillToContact := true;\n Validate(\"Bill-to Customer No.\", ContBusinessRelation.\"No.\");\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136102'\nCodeunit 136102 Service Contracts\n Testfunction ChangeCustomerOfTypePeronInServiceContract Failure (6.577 seconds)\n Error:\n Contact CT000024 CT000024 is related to a different company than customer C00010.\n Call Stack:\n \"Service Contract Header\"(Table 5965).\"Bill-to Contact No. - OnValidate\"(Trigger) line 21 - Base Application by Microsoft version 27.0.0.0\n \"Service Contract Header\"(Table 5965).UpdateCust line 51 - Base Application by Microsoft version 27.0.0.0\n ServContractManagement(CodeUnit 5940).ChangeCustNoOnServContract line 46 - Base Application by Microsoft version 27.0.0.0\n \"Service Contracts\"(CodeUnit 136102).ChangeCustomerOfTypePeronInServiceContract line 34 - Tests-SCM-Service by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-176194", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 314.089, "tool_calls": 30, "total_tokens": 746700, "TurnCount": 54}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":10,\"report_intent\":2,\"task\":1,\"update_todo\":4,\"view\":11}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesLine.Table.al b/App/Layers/W1/BaseApp/Sales/Document/SalesLine.Table.al\nindex f6e57fd4..3eadd470 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesLine.Table.al\n@@ -3835,7 +3835,8 @@ table 37 \"Sales Line\"\n \n GetSalesSetup();\n if (SalesSetup.\"Default Quantity to Ship\" = SalesSetup.\"Default Quantity to Ship\"::Remainder) or\n- (\"Document Type\" = \"Document Type\"::Invoice)\n+ (\"Document Type\" = \"Document Type\"::Invoice) or\n+ (Type = Type::\"Charge (Item)\")\n then begin\n \"Qty. to Ship\" := \"Outstanding Quantity\";\n \"Qty. to Ship (Base)\" := \"Outstanding Qty. (Base)\";\n@@ -3862,7 +3863,8 @@ table 37 \"Sales Line\"\n \n GetSalesSetup();\n if (SalesSetup.\"Default Quantity to Ship\" = SalesSetup.\"Default Quantity to Ship\"::Remainder) or\n- (\"Document Type\" = \"Document Type\"::\"Credit Memo\")\n+ (\"Document Type\" = \"Document Type\"::\"Credit Memo\") or\n+ (Type = Type::\"Charge (Item)\")\n then begin\n \"Return Qty. to Receive\" := \"Outstanding Quantity\";\n \"Return Qty. to Receive (Base)\" := \"Outstanding Qty. (Base)\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134329'\nCodeunit 134329 ERM Purchase Return Order\n Testfunction GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToReceiveIsBlankInPurchPayablesSetup Failure (10.333 seconds)\n Error:\n Qty. to Invoice must have a value in Purchase Line: Document Type=Return Order, Document No.=1001, Line No.=20000. It cannot be zero or empty.\n Call Stack:\n \"Item Charge Assignment (Purch)\"(Table 5805).\"Qty. to Assign - OnValidate\"(Trigger) line 4 - Base Application by Microsoft\n \"Item Charge Assgnt. (Purch.)\"(CodeUnit 5805).InsertItemChargeAssignmentWithValuesTo line 20 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyFromPurchLineItemChargeAssign line 47 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyPurchInvLinesToDoc line 144 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyPurchaseLinesToDoc line 15 - Base Application by Microsoft\n \"Posted Purchase Document Lines\"(Page 5855).CopyLineToDoc line 23 - Base Application by Microsoft\n \"Purchase Header\"(Table 38).GetPstdDocLinesToReverse line 9 - Base Application by Microsoft\n \"Purchase Return Order\"(Page 6640).\"GetPostedDocumentLinesToReverse - OnAction\"(Trigger) line 2 - Base Application by Microsoft\nSetting test codeunit range '134387'\nCodeunit 134387 ERM Sales Documents III\n Testfunction GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToShipIsBlankInSalesReceiSetup Failure (3.46 seconds)\n Error:\n Qty. to Invoice must have a value in Sales Line: Document Type=Return Order, Document No.=1001, Line No.=30000. It cannot be zero or empty.\n Call Stack:"} +{"InstanceID": "microsoftInternal__NAV-216057", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 548.018, "tool_calls": 30, "total_tokens": 730800, "TurnCount": 156}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":1,\"grep\":3,\"report_intent\":2,\"store_memory\":1,\"task\":7,\"update_todo\":3,\"view\":12}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al\nindex 052f4eb6..06e7138b 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al\n@@ -627,7 +627,8 @@ table 99000853 \"Inventory Profile\"\n repeat\n InsertTracking := not\n ((ReservationEntry.\"Reservation Status\" = ReservationEntry.\"Reservation Status\"::Reservation) and\n- (ReservationEntry.Binding = ReservationEntry.Binding::\" \"));\n+ (ReservationEntry.Binding = ReservationEntry.Binding::\" \")) and\n+ (ReservationEntry.\"Reservation Status\" <> ReservationEntry.\"Reservation Status\"::Surplus);\n if InsertTracking and ReservationEntry.TrackingExists() and\n (ReservationEntry.\"Source Type\" <> Database::\"Item Ledger Entry\")\n then begin\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137045'\nCodeunit 137045 SCM Bugfixes\n Testfunction NoDuplicateSurplusReservationEntriesOnRecalculateRequisitionWorksheet Failure (13.533 seconds)\n Error:\n Assert.RecordCount failed. Expected number of Reservation Entry entries: 2. Actual: 3. Filters: Source Type: 39, Source ID: 106009. Records: 2, Yes, GL00000000, , 50, Prospect, , 06/03/26, 0, 39, 1, 106009, , 0, 10000, 0, 06/03/26, , , ADMIN, , 1, 50, , No, Unlimited, 0, , , 50, 50, 0, , , No, GL00000003, , 0, No, , Lot No., No, , , 0, ; 3, Yes, GL00000000, , 100, Tracking, , 02/09/26, 0, 39, 1, 106009, , 0, 10000, 0, 06/03/26, 06/03/26, , ADMIN, , 1, 100, , No, Unlimited, 0, , , 100, 100, 0, , , No, GL00000003, , 0, No, , Lot No., No, , , 0, ; 4, Yes, GL00000000, , 50, Surplus, , 02/09/26, 0, 39, 1, 106009, , 0, 10000, 0, 06/03/26, , , ADMIN, , 1, 50, , Yes, Unlimited, 0, , , 50, 50, 0, , , No, GL00000003, , 0, No, , Lot No., No, , , 0, ; \n Call Stack:\n Assert(CodeUnit 130000).RecordCount line 18 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"SCM Bugfixes\"(CodeUnit 137045).AssertReservationEntryCount line 6 - Tests-SCM by Microsoft version 27.0.0.0\n \"SCM Bugfixes\"(CodeUnit 137045).NoDuplicateSurplusReservationEntriesOnRecalculateRequisitionWorksheet line 51 - Tests-SCM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-220036", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 188.427, "tool_calls": 27, "total_tokens": 561000, "TurnCount": 48}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":9,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":12}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al b/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\nindex 9fdc21c5..e16cc29b 100644\n--- a/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\n@@ -2301,8 +2301,12 @@ table 18 Customer\n Customer: Record Customer;\n begin\n Clear(PrimaryContact);\n- if Customer.Get(CustomerNo) then\n- if PrimaryContact.Get(Customer.\"Primary Contact No.\") then;\n+ if Customer.Get(CustomerNo) then begin\n+ if not PrimaryContact.Get(Customer.\"Primary Contact No.\") then begin\n+ PrimaryContact.\"E-Mail\" := Customer.\"E-Mail\";\n+ PrimaryContact.\"Phone No.\" := Customer.\"Phone No.\";\n+ end;\n+ end;\n end;\n \n local procedure GetCustomerPriceGroupPriceCalcMethod(): Enum \"Price Calculation Method\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134905'\nCodeunit 134905 ERM Issued Reminder Addnl Fee\n Testfunction VerifyEmailOnReminderPageWhenCustomerHasNoContacts Success (19.514 seconds)\n\u001b[32m[08:13:36] Tests passed for Codeunit 134905\u001b[0m\nSetting test codeunit range '134825'\nCodeunit 134825 UT Customer Table\n Testfunction GetPrimaryConactCustomerWithoutContact Failure (2.117 seconds)\n Error:\n Assert.IsTrue failed. Contact No. should not be empty\n Call Stack:\n Assert(CodeUnit 130000).IsTrue line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"UT Customer Table\"(CodeUnit 134825).GetPrimaryConactCustomerWithoutContact line 15 - Tests-Misc by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-218323", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 366.985, "tool_calls": 62, "total_tokens": 2018500, "TurnCount": 54}, "Project": "BaseApp", "ToolUsage": "{\"edit\":8,\"glob\":1,\"grep\":15,\"report_intent\":3,\"task\":1,\"update_todo\":3,\"view\":31}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al b/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al\nindex 88068be0..77bf2393 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al\n@@ -17,6 +17,7 @@ using Microsoft.Finance.VAT.Setup;\n using Microsoft.Foundation.Address;\n using Microsoft.Foundation.AuditCodes;\n using Microsoft.Foundation.Enums;\n+using Microsoft.Foundation.NoSeries;\n using System.Utilities;\n \n report 20 \"Calc. and Post VAT Settlement\"\n@@ -613,6 +614,45 @@ report 20 \"Calc. and Post VAT Settlement\"\n ApplicationArea = Basic, Suite;\n Caption = 'Document No.';\n ToolTip = 'Specifies a document number. This field must be filled in.';\n+ Visible = not IsJournalTemplNameVisible;\n+ }\n+ field(JnlTemplateName; GenJnlLineReq.\"Journal Template Name\")\n+ {\n+ ApplicationArea = Basic, Suite;\n+ Caption = 'Journal Template Name';\n+ TableRelation = \"Gen. Journal Template\";\n+ ToolTip = 'Specifies the name of the journal template that is used for the posting.';\n+ Visible = IsJournalTemplNameVisible;\n+\n+ trigger OnValidate()\n+ begin\n+ GenJnlLineReq.\"Journal Batch Name\" := '';\n+ end;\n+ }\n+ field(JnlBatchName; GenJnlLineReq.\"Journal Batch Name\")\n+ {\n+ ApplicationArea = Basic, Suite;\n+ Caption = 'Journal Batch Name';\n+ Lookup = true;\n+ ToolTip = 'Specifies the name of the journal batch that is used for the posting.';\n+ Visible = IsJournalTemplNameVisible;\n+\n+ trigger OnLookup(var Text: Text): Boolean\n+ var\n+ GenJnlManagement: Codeunit GenJnlManagement;\n+ begin\n+ GenJnlManagement.SetJnlBatchName(GenJnlLineReq);\n+ if GenJnlLineReq.\"Journal Batch Name\" <> '' then\n+ GenJnlBatch.Get(GenJnlLineReq.\"Journal Template Name\", GenJnlLineReq.\"Journal Batch Name\");\n+ end;\n+\n+ trigger OnValidate()\n+ begin\n+ if GenJnlLineReq.\"Journal Batch Name\" <> '' then begin\n+ GenJnlLineReq.TestField(\"Journal Template Name\");\n+ GenJnlBatch.Get(GenJnlLineReq.\"Journal Template Name\", GenJnlLineReq.\"Journal Batch Name\");\n+ end;\n+ end;\n }\n field(SettlementAcc; GLAccSettle.\"No.\")\n {\n@@ -692,6 +732,7 @@ report 20 \"Calc. and Post VAT Settlement\"\n trigger OnPreReport()\n var\n ConfirmManagement: Codeunit \"Confirm Management\";\n+ NoSeries: Codeunit \"No. Series\";\n begin\n OnBeforePreReport(\"VAT Posting Setup\", PostSettlement, GLAccSettle, DocNo);\n \n@@ -704,8 +745,17 @@ report 20 \"Calc. and Post VAT Settlement\"\n else\n VATDate := PostingDate;\n \n- if DocNo = '' then\n- Error(Text001);\n+ if GLSetup.\"Journal Templ. Name Mandatory\" then begin\n+ if GenJnlLineReq.\"Journal Template Name\" = '' then\n+ Error(PleaseEnterErr, GenJnlLineReq.FieldCaption(\"Journal Template Name\"));\n+ if GenJnlLineReq.\"Journal Batch Name\" = '' then\n+ Error(PleaseEnterErr, GenJnlLineReq.FieldCaption(\"Journal Batch Name\"));\n+ GenJnlBatch.Get(GenJnlLineReq.\"Journal Template Name\", GenJnlLineReq.\"Journal Batch Name\");\n+ GenJnlBatch.TestField(\"No. Series\");\n+ DocNo := NoSeries.GetNextNo(GenJnlBatch.\"No. Series\", PostingDate);\n+ end else\n+ if DocNo = '' then\n+ Error(Text001);\n if GLAccSettle.\"No.\" = '' then\n Error(Text002);\n GLAccSettle.Find();\n@@ -726,12 +776,16 @@ report 20 \"Calc. and Post VAT Settlement\"\n VATReportingDateMgt: Codeunit \"VAT Reporting Date Mgt\";\n begin\n IsVATDateEnabled := VATReportingDateMgt.IsVATDateEnabled();\n+ GLSetup.Get();\n+ IsJournalTemplNameVisible := GLSetup.\"Journal Templ. Name Mandatory\";\n end;\n \n var\n SourceCodeSetup: Record \"Source Code Setup\";\n GenJnlLine: Record \"Gen. Journal Line\";\n GenJnlLine2: Record \"Gen. Journal Line\";\n+ GenJnlLineReq: Record \"Gen. Journal Line\";\n+ GenJnlBatch: Record \"Gen. Journal Batch\";\n GLEntry: Record \"G/L Entry\";\n VATEntry: Record \"VAT Entry\";\n TaxJurisdiction: Record \"Tax Jurisdiction\";\n@@ -755,6 +809,7 @@ report 20 \"Calc. and Post VAT Settlement\"\n HeaderText: Text[30];\n CountryRegionFilter: Text;\n IsVATDateEnabled: Boolean;\n+ IsJournalTemplNameVisible: Boolean;\n #pragma warning disable AA0074\n Text000: Label 'Enter the posting date.';\n Text001: Label 'Enter the document no.';\n@@ -783,6 +838,7 @@ report 20 \"Calc. and Post VAT Settlement\"\n TotalCaptionLbl: Label 'Total';\n SettlementCaptionLbl: Label 'Settlement';\n VATDateLbl: Label 'VAT Date';\n+ PleaseEnterErr: Label 'Please enter a %1.', Comment = '%1 - field caption';\n \n \n protected var\n@@ -842,6 +898,8 @@ report 20 \"Calc. and Post VAT Settlement\"\n DimMgt: Codeunit DimensionManagement;\n DefaultDimSource: List of [Dictionary of [Integer, Code[20]]];\n begin\n+ GenJnlLine.\"Journal Template Name\" := GenJnlLineReq.\"Journal Template Name\";\n+ GenJnlLine.\"Journal Batch Name\" := GenJnlLineReq.\"Journal Batch Name\";\n DimMgt.AddDimSource(DefaultDimSource, Database::\"G/L Account\", GenJnlLine.\"Account No.\");\n DimMgt.AddDimSource(DefaultDimSource, Database::\"G/L Account\", GenJnlLine.\"Bal. Account No.\");\n GenJnlLine.\"Dimension Set ID\" :=\n@@ -881,6 +939,8 @@ report 20 \"Calc. and Post VAT Settlement\"\n GenJnlLine2.\"System-Created Entry\" := true;\n GenJnlLine2.\"Account Type\" := GenJnlLine2.\"Account Type\"::\"G/L Account\";\n GenJnlLine2.Description := GenJnlLine.Description;\n+ GenJnlLine2.\"Journal Template Name\" := GenJnlLineReq.\"Journal Template Name\";\n+ GenJnlLine2.\"Journal Batch Name\" := GenJnlLineReq.\"Journal Batch Name\";\n GenJnlLine2.\"Posting Date\" := PostingDate;\n GenJnlLine2.\"VAT Reporting Date\" := VATDate;\n GenJnlLine2.\"Document Type\" := GenJnlLine2.\"Document Type\"::\" \";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134992'\nCodeunit 134992 ERM Financial Reports IV\n Testfunction PostVATSettlementWhenJournalTemplateNameMandatoryIsEnabled Failure (12.153 seconds)\n Error:\n Please enter a Journal Template Name.\n Call Stack:\n \"Calc. and Post VAT Settlement\"(Report 20).OnPreReport(Trigger) line 18 - Base Application by Microsoft version 27.0.0.0\n \"ERM Financial Reports IV\"(CodeUnit 134992).SaveCalcAndPostVATSettlementReport line 12 - Tests-ERM by Microsoft version 27.0.0.0\n \"ERM Financial Reports IV\"(CodeUnit 134992).PostVATSettlementWhenJournalTemplateNameMandatoryIsEnabled line 35 - Tests-ERM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-220452", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 376.339, "tool_calls": 24, "total_tokens": 475700, "TurnCount": 51}, "Project": "Shopify", "ToolUsage": "{\"create\":1,\"edit\":2,\"grep\":3,\"report_intent\":3,\"task\":5,\"update_todo\":2,\"view\":8}", "output": "diff --git a/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al b/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al\nindex 62d92a55..70b1cc9c 100644\n--- a/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al\n+++ b/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al\n@@ -238,10 +238,11 @@ report 30118 \"Shpfy Suggest Payments\"\n until CustLedgerEntry.Next() = 0;\n end;\n until SalesInvoiceHeader.Next() = 0;\n+ end else\n+ FindAndApplyInvoicesByShipment(OrderTransaction.\"Shopify Order Id\", CustLedgerEntry, AmountToApply, Applied);\n \n- if Applied and (AmountToApply > 0) then\n- CreateSuggestPaymentGLAccount(AmountToApply, true);\n- end;\n+ if Applied and (AmountToApply > 0) then\n+ CreateSuggestPaymentGLAccount(AmountToApply, true);\n end;\n OrderTransaction.Type::Refund:\n begin\n@@ -275,6 +276,46 @@ report 30118 \"Shpfy Suggest Payments\"\n end;\n end;\n \n+ local procedure FindAndApplyInvoicesByShipment(ShopifyOrderId: BigInteger; var CustLedgerEntry: Record \"Cust. Ledger Entry\"; var AmountToApply: Decimal; var Applied: Boolean)\n+ var\n+ SalesShipmentHeader: Record \"Sales Shipment Header\";\n+ SalesInvoiceLine: Record \"Sales Invoice Line\";\n+ SalesInvoiceHeader: Record \"Sales Invoice Header\";\n+ ProcessedInvoiceNos: List of [Code[20]];\n+ begin\n+ SalesShipmentHeader.SetLoadFields(\"No.\");\n+ SalesShipmentHeader.SetRange(\"Shpfy Order Id\", ShopifyOrderId);\n+ if not SalesShipmentHeader.FindSet() then\n+ exit;\n+\n+ repeat\n+ SalesInvoiceLine.SetLoadFields(\"Document No.\");\n+ SalesInvoiceLine.SetRange(\"Shipment No.\", SalesShipmentHeader.\"No.\");\n+ if SalesInvoiceLine.FindSet() then\n+ repeat\n+ if not ProcessedInvoiceNos.Contains(SalesInvoiceLine.\"Document No.\") then begin\n+ ProcessedInvoiceNos.Add(SalesInvoiceLine.\"Document No.\");\n+ SalesInvoiceHeader.SetLoadFields(\"No.\");\n+ SalesInvoiceHeader.SetRange(\"No.\", SalesInvoiceLine.\"Document No.\");\n+ SalesInvoiceHeader.SetRange(Closed, false);\n+ if SalesInvoiceHeader.FindFirst() then begin\n+ CustLedgerEntry.SetAutoCalcFields(\"Remaining Amount\");\n+ CustLedgerEntry.SetRange(\"Open\", true);\n+ CustLedgerEntry.SetRange(\"Applies-to ID\", '');\n+ CustLedgerEntry.SetRange(\"Document Type\", CustLedgerEntry.\"Document Type\"::Invoice);\n+ CustLedgerEntry.SetRange(\"Document No.\", SalesInvoiceHeader.\"No.\");\n+ if CustLedgerEntry.FindSet() then begin\n+ Applied := true;\n+ repeat\n+ CreateSuggestPaymentDocument(CustLedgerEntry, AmountToApply, true);\n+ until CustLedgerEntry.Next() = 0;\n+ end;\n+ end;\n+ end;\n+ until SalesInvoiceLine.Next() = 0;\n+ until SalesShipmentHeader.Next() = 0;\n+ end;\n+\n local procedure CreateSuggestPaymentDocument(var CustLedgerEntry: Record \"Cust. Ledger Entry\"; var AmountToApply: Decimal; IsInvoice: Boolean)\n begin\n TempSuggestPayment.Init();\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139648'\nCodeunit 139648 Shpfy Suggest Payment Test\n Testfunction UnitTestSuggestShopifyPaymentsDocumentLink Failure (17.923 seconds)\n Error:\n The Shopify Suggest Payment table is empty.\n Call Stack:\n \"Shpfy Suggest Payment Test\"(CodeUnit 139648).UnitTestSuggestShopifyPaymentsDocumentLink line 47 - Shopify Connector Test by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-204450", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 299.15, "tool_calls": 49, "total_tokens": 1511900, "TurnCount": 49}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":2,\"grep\":20,\"powershell\":1,\"report_intent\":3,\"task\":1,\"update_todo\":3,\"view\":18}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\nindex 6bb15d7d..82120172 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n@@ -602,6 +602,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n \n TotalPurchaseLine.\"Non-Deductible VAT Base\" += PurchaseLine.\"Non-Deductible VAT Base\";\n TotalPurchaseLine.\"Non-Deductible VAT Amount\" += PurchaseLine.\"Non-Deductible VAT Amount\";\n+ TotalPurchaseLine.\"Non-Deductible VAT Diff.\" += PurchaseLine.\"Non-Deductible VAT Diff.\";\n end;\n \n procedure Increment(var TotalInvoicePostingBuffer: Record \"Invoice Posting Buffer\"; InvoicePostingBuffer: Record \"Invoice Posting Buffer\")\n@@ -683,6 +684,12 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n if PurchaseLine.\"Non-Deductible VAT %\" = 100 then begin\n PurchaseLine.\"Non-Deductible VAT Base\" := PurchaseLine.\"VAT Base Amount\";\n PurchaseLine.\"Non-Deductible VAT Amount\" := PurchaseLine.\"Amount Including VAT\" - PurchaseLine.\"VAT Base Amount\" - PurchaseLine.\"VAT Difference\";\n+ PurchaseLine.\"Non-Deductible VAT Diff.\" :=\n+ Round(\n+ CurrExchRate.ExchangeAmtFCYToLCY(\n+ PurchaseHeader.GetUseDate(), PurchaseHeader.\"Currency Code\",\n+ TotalPurchaseLine.\"Non-Deductible VAT Diff.\", PurchaseHeader.\"Currency Factor\")) -\n+ TotalPurchaseLineLCY.\"Non-Deductible VAT Diff.\";\n exit;\n end;\n PurchaseLine.\"Non-Deductible VAT Base\" :=\n@@ -697,6 +704,12 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n PurchaseHeader.GetUseDate(), PurchaseHeader.\"Currency Code\",\n TotalPurchaseLine.\"Non-Deductible VAT Amount\", PurchaseHeader.\"Currency Factor\")) -\n TotalPurchaseLineLCY.\"Non-Deductible VAT Amount\";\n+ PurchaseLine.\"Non-Deductible VAT Diff.\" :=\n+ Round(\n+ CurrExchRate.ExchangeAmtFCYToLCY(\n+ PurchaseHeader.GetUseDate(), PurchaseHeader.\"Currency Code\",\n+ TotalPurchaseLine.\"Non-Deductible VAT Diff.\", PurchaseHeader.\"Currency Factor\")) -\n+ TotalPurchaseLineLCY.\"Non-Deductible VAT Diff.\";\n end;\n \n procedure ClearNonDeductibleVAT(var PurchaseLine: Record \"Purchase Line\")\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134287'\nCodeunit 134287 Non-Deductible VAT Statistics\n Testfunction PurchaseInvoiceInCurrencyIsPostedWhenChangeVATAmountOnStatisticIfNDVATPctIs100 Failure (15.296 seconds)\n Error:\n The transaction cannot be completed because it will cause inconsistencies in the G/L Entry table. Check where and how the CONSISTENT function is used in the transaction to find the reason for the error.\\\\Contact your system administrator.\\\\Tables can be marked as inconsistent during comprehensive tasks, such as posting. This prevents data from being updated incorrectly.\n Call Stack:\n \"Purch.-Post\"(CodeUnit 90).FinalizePosting line 79 - Base Application by Microsoft\n \"Purch.-Post\"(CodeUnit 90).RunWithCheck line 142 - Base Application by Microsoft\n \"Purch.-Post\"(CodeUnit 90).OnRun(Trigger) line 2 - Base Application by Microsoft\n \"Library - Purchase\"(CodeUnit 130512).PostPurchaseDocument line 56 - Tests-TestLibraries by Microsoft\n \"Non-Deductible VAT Statistics\"(CodeUnit 134287).PurchaseInvoiceInCurrencyIsPostedWhenChangeVATAmountOnStatisticIfNDVATPctIs100 line 46 - Tests-VAT by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"InstanceID": "microsoftInternal__NAV-227153", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 182.917, "tool_calls": 28, "total_tokens": 436600, "TurnCount": 29}, "Project": "BaseApp", "ToolUsage": "{\"edit\":6,\"grep\":7,\"report_intent\":3,\"task\":2,\"update_todo\":2,\"view\":8}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\nindex e033f91e..0e39228f 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\n@@ -472,132 +472,66 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n \n local procedure CalcCustAccAmount(PostingGr: Code[20]): Decimal\n var\n- Cust: Record Customer;\n DtldCustLedgEntry: Record \"Detailed Cust. Ledg. Entry\";\n- CustAccAmount: Decimal;\n begin\n- Cust.SetCurrentKey(\"Customer Posting Group\");\n- Cust.SetRange(\"Customer Posting Group\", PostingGr);\n-\n- if Cust.Find('-') then\n- repeat\n- DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\");\n- DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n- DtldCustLedgEntry.CalcSums(\"Amount (LCY)\");\n- CustAccAmount := CustAccAmount + DtldCustLedgEntry.\"Amount (LCY)\";\n- until Cust.Next() = 0;\n-\n- exit(CustAccAmount);\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n+ DtldCustLedgEntry.CalcSums(\"Amount (LCY)\");\n+ exit(DtldCustLedgEntry.\"Amount (LCY)\");\n end;\n \n local procedure CalcCustCreditAmount(PostingGr: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n var\n- Cust: Record Customer;\n DtldCustLedgEntry: Record \"Detailed Cust. Ledg. Entry\";\n- CustCreditAmount: Decimal;\n begin\n- Cust.SetCurrentKey(\"Customer Posting Group\");\n- Cust.SetRange(\"Customer Posting Group\", PostingGr);\n-\n- if Cust.Find('-') then\n- repeat\n- DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\", \"Entry Type\");\n- DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n- DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n- DtldCustLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n- CustCreditAmount := CustCreditAmount + DtldCustLedgEntry.\"Credit Amount (LCY)\";\n- until Cust.Next() = 0;\n-\n- exit(CustCreditAmount);\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n+ DtldCustLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n+ exit(DtldCustLedgEntry.\"Credit Amount (LCY)\");\n end;\n \n local procedure CalcCustDebitAmount(PostingGr: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n var\n- Cust: Record Customer;\n DtldCustLedgEntry: Record \"Detailed Cust. Ledg. Entry\";\n- CustDebitAmount: Decimal;\n begin\n- Cust.SetCurrentKey(\"Customer Posting Group\");\n- Cust.SetRange(\"Customer Posting Group\", PostingGr);\n-\n- if Cust.Find('-') then\n- repeat\n- DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\", \"Entry Type\");\n- DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n- DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n- DtldCustLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n- CustDebitAmount := CustDebitAmount + DtldCustLedgEntry.\"Debit Amount (LCY)\";\n- until Cust.Next() = 0;\n-\n- exit(-CustDebitAmount);\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n+ DtldCustLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n+ exit(-DtldCustLedgEntry.\"Debit Amount (LCY)\");\n end;\n \n local procedure CalcVendAccAmount(PostingGr: Code[20]): Decimal\n var\n- Vend: Record Vendor;\n DtldVendLedgEntry: Record \"Detailed Vendor Ledg. Entry\";\n- VendAccAmount: Decimal;\n begin\n- Vend.SetCurrentKey(\"Vendor Posting Group\");\n- Vend.SetRange(\"Vendor Posting Group\", PostingGr);\n-\n- if Vend.Find('-') then\n- repeat\n- DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\");\n- DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n- DtldVendLedgEntry.CalcSums(\"Amount (LCY)\");\n- VendAccAmount := VendAccAmount + DtldVendLedgEntry.\"Amount (LCY)\";\n- until Vend.Next() = 0;\n-\n- exit(VendAccAmount);\n+ DtldVendLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n+ DtldVendLedgEntry.CalcSums(\"Amount (LCY)\");\n+ exit(DtldVendLedgEntry.\"Amount (LCY)\");\n end;\n \n local procedure CalcVendCreditAmount(PostingGr: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n var\n- Vend: Record Vendor;\n DtldVendLedgEntry: Record \"Detailed Vendor Ledg. Entry\";\n- VendCreditAmount: Decimal;\n begin\n- Vend.SetCurrentKey(\"Vendor Posting Group\");\n- Vend.SetRange(\"Vendor Posting Group\", PostingGr);\n-\n- if Vend.Find('-') then\n- repeat\n- DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\", \"Entry Type\");\n- DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n- DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n- DtldVendLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n- VendCreditAmount := VendCreditAmount + DtldVendLedgEntry.\"Credit Amount (LCY)\";\n- until Vend.Next() = 0;\n-\n- exit(VendCreditAmount);\n+ DtldVendLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n+ DtldVendLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n+ exit(DtldVendLedgEntry.\"Credit Amount (LCY)\");\n end;\n \n local procedure CalcVendDebitAmount(PostingGr: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n var\n- Vend: Record Vendor;\n DtldVendLedgEntry: Record \"Detailed Vendor Ledg. Entry\";\n- VendDebitAmount: Decimal;\n begin\n- Vend.SetCurrentKey(\"Vendor Posting Group\");\n- Vend.SetRange(\"Vendor Posting Group\", PostingGr);\n-\n- if Vend.Find('-') then\n- repeat\n- DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\", \"Entry Type\");\n- DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n- DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n- DtldVendLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n- VendDebitAmount := VendDebitAmount + DtldVendLedgEntry.\"Debit Amount (LCY)\";\n- until Vend.Next() = 0;\n-\n- exit(-VendDebitAmount);\n+ DtldVendLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n+ DtldVendLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n+ exit(-DtldVendLedgEntry.\"Debit Amount (LCY)\");\n end;\n \n local procedure CalcCurrGainLossAmount(CurrencyCode: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-217974", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 425.498, "tool_calls": 15, "total_tokens": 247500, "TurnCount": 153}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":3,\"report_intent\":2,\"task\":4,\"update_todo\":2,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\nindex 780de254..5d1ff1d0 100644\n--- a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n@@ -1757,6 +1757,7 @@ codeunit 6620 \"Copy Document Mgt.\"\n OnUpdateSalesHeaderWhenCopyFromSalesHeaderOnBeforeValidateShipToCode(SalesHeader);\n SalesHeader.Validate(SalesHeader.\"Ship-to Code\");\n end;\n+ UpdateShipToAddress(SalesHeader);\n if FromDocType in [\"Sales Document Type From\"::Quote, \"Sales Document Type From\"::\"Blanket Order\"] then\n if OriginalSalesHeader.\"Posting Date\" = 0D then\n SalesHeader.\"Posting Date\" := WorkDate()\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-177493", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 200.375, "tool_calls": 21, "total_tokens": 453100, "TurnCount": 38}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":7,\"glob\":2,\"powershell\":1,\"report_intent\":2,\"task\":2,\"update_todo\":2,\"view\":4}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\nindex bb47904d..6b974200 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n@@ -58,6 +58,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if not IsItemReservable(\"No.\") then\n+ CurrReport.Skip();\n+\n if not CheckIfSalesLineMeetsReservedFromStockSetting(Abs(\"Outstanding Qty. (Base)\"), ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -107,6 +110,9 @@ report 302 \"Get Demand To Reserve\"\n var\n Item: Record Item;\n begin\n+ if not IsItemReservable(\"Item No.\") then\n+ CurrReport.Skip();\n+\n if not CheckIfTransferLineMeetsReservedFromStockSetting(\"Outstanding Qty. (Base)\", ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -158,6 +164,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if not IsItemReservable(\"No.\") then\n+ CurrReport.Skip();\n+\n if not CheckIfServiceLineMeetsReservedFromStockSetting(Abs(\"Outstanding Qty. (Base)\"), ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -208,6 +217,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if not IsItemReservable(\"No.\") then\n+ CurrReport.Skip();\n+\n if not CheckIfJobPlngLineMeetsReservedFromStockSetting(\"Remaining Qty. (Base)\", ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -259,6 +271,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if not IsItemReservable(\"No.\") then\n+ CurrReport.Skip();\n+\n if not CheckIfAssemblyLineMeetsReservedFromStockSetting(\"Remaining Quantity (Base)\", ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -309,6 +324,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if not IsItemReservable(\"Item No.\") then\n+ CurrReport.Skip();\n+\n if not CheckIfProdOrderCompMeetsReservedFromStockSetting(\"Remaining Qty. (Base)\", ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -544,6 +562,15 @@ report 302 \"Get Demand To Reserve\"\n DateFilter := Format(StartDate) + '..' + Format(EndDate);\n end;\n \n+ local procedure IsItemReservable(ItemNo: Code[20]): Boolean\n+ var\n+ Item: Record Item;\n+ begin\n+ if not Item.Get(ItemNo) then\n+ exit(false);\n+ exit(Item.Reserve <> Item.Reserve::Never);\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnSalesOrderLineOnAfterGetRecordOnBeforeSetTempSalesLine(var OrderSalesLine: Record \"Sales Line\")\n begin\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-174794", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 450.136, "tool_calls": 20, "total_tokens": 305100, "TurnCount": 89}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":6,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":6}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\nindex b941d50c..b0359488 100644\n--- a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n@@ -285,6 +285,7 @@ codeunit 395 \"FinChrgMemo-Issue\"\n end;\n TempGenJnlLine.Validate(\"Currency Code\", FinChrgMemoHeader.\"Currency Code\");\n if TempGenJnlLine.\"Account Type\" = TempGenJnlLine.\"Account Type\"::Customer then begin\n+ TempGenJnlLine.\"Posting Group\" := FinChrgMemoHeader.\"Customer Posting Group\";\n TempGenJnlLine.Validate(Amount, TotalAmount);\n TempGenJnlLine.Validate(\"Amount (LCY)\", TotalAmountLCY);\n TempGenJnlLine.\"Due Date\" := FinChrgMemoHeader.\"Due Date\";\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-223202", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 208.214, "tool_calls": 23, "total_tokens": 589000, "TurnCount": 21}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":4,\"glob\":2,\"grep\":2,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":9}", "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al\nindex 84769ae0..868ef163 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al\n@@ -257,7 +257,10 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ExpSubDirCostRtng: Decimal;\n ExpCapOvhdCostRtng: Decimal;\n ExpOvhdCost: Decimal;\n+ StartingExpMatCost: Decimal;\n begin\n+ StartingExpMatCost := ExpMatCost;\n+\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\");\n ProdOrderComp.SetRange(Status, ProdOrderLine.Status);\n ProdOrderComp.SetRange(\"Prod. Order No.\", ProdOrderLine.\"Prod. Order No.\");\n@@ -304,7 +307,11 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ExpCapDirCost := ExpCapDirCost + Round(ExpCapDirCostRtng * ShareOfTotalCapCost);\n ExpSubDirCost := ExpSubDirCost + Round(ExpSubDirCostRtng * ShareOfTotalCapCost);\n ExpCapOvhdCost := ExpCapOvhdCost + Round(ExpCapOvhdCostRtng * ShareOfTotalCapCost);\n- ExpMfgDirCost := ExpMatCost + ExpCapDirCost + ExpSubDirCost + ExpCapOvhdCost;\n+ ExpMfgDirCost :=\n+ (ExpMatCost - StartingExpMatCost) +\n+ Round(ExpCapDirCostRtng * ShareOfTotalCapCost) +\n+ Round(ExpSubDirCostRtng * ShareOfTotalCapCost) +\n+ Round(ExpCapOvhdCostRtng * ShareOfTotalCapCost);\n ExpOvhdCost := ExpMfgOvhdCost + ProdOrderLine.\"Overhead Rate\" * ProdOrderLine.\"Quantity (Base)\";\n ExpMfgOvhdCost := ExpOvhdCost +\n Round(CostCalculationMgt.CalcOvhdCost(ExpMfgDirCost, ProdOrderLine.\"Indirect Cost %\", 0, 0));\n@@ -327,7 +334,12 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ExpSubDirCostRtng: Decimal;\n ExpCapOvhdCostRtng: Decimal;\n ExpOvhdCost: Decimal;\n+ StartingExpMatCost: Decimal;\n+ StartingExpNonInvMatCost: Decimal;\n begin\n+ StartingExpMatCost := ExpMatCost;\n+ StartingExpNonInvMatCost := ExpNonInvMatCost;\n+\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\");\n ProdOrderComp.SetRange(Status, ProdOrderLine.Status);\n ProdOrderComp.SetRange(\"Prod. Order No.\", ProdOrderLine.\"Prod. Order No.\");\n@@ -366,7 +378,12 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ExpCapDirCost := ExpCapDirCost + Round(ExpCapDirCostRtng * ShareOfTotalCapCost);\n ExpSubDirCost := ExpSubDirCost + Round(ExpSubDirCostRtng * ShareOfTotalCapCost);\n ExpCapOvhdCost := ExpCapOvhdCost + Round(ExpCapOvhdCostRtng * ShareOfTotalCapCost);\n- ExpMfgDirCost := ExpMatCost + ExpNonInvMatCost + ExpCapDirCost + ExpSubDirCost + ExpCapOvhdCost;\n+ ExpMfgDirCost :=\n+ (ExpMatCost - StartingExpMatCost) +\n+ (ExpNonInvMatCost - StartingExpNonInvMatCost) +\n+ Round(ExpCapDirCostRtng * ShareOfTotalCapCost) +\n+ Round(ExpSubDirCostRtng * ShareOfTotalCapCost) +\n+ Round(ExpCapOvhdCostRtng * ShareOfTotalCapCost);\n ExpOvhdCost := ExpMfgOvhdCost + ProdOrderLine.\"Overhead Rate\" * ProdOrderLine.\"Quantity (Base)\";\n ExpMfgOvhdCost := ExpOvhdCost +\n Round(CostCalculationMgt.CalcOvhdCost(ExpMfgDirCost, ProdOrderLine.\"Indirect Cost %\", 0, 0));\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-209496", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 98.444, "tool_calls": 16, "total_tokens": 286800, "TurnCount": 10}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":3,\"report_intent\":2,\"update_todo\":3,\"view\":6}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\nindex 10d284cc..2e208507 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\n@@ -116,6 +116,7 @@ page 835 \"Reminder Level Communication\"\n ReminderCommunication: Codeunit \"Reminder Communication\";\n Languages: Page \"Languages\";\n FilterText: Text;\n+ NewGuid: Guid;\n begin\n FilterText := ReminderCommunication.GetListOfAttachmentLanguagesFromIdWithSeparator(Rec.\"Reminder Attachment Text\", DifferentOperatorTok);\n if FilterText <> '' then\n@@ -132,8 +133,13 @@ page 835 \"Reminder Level Communication\"\n LocalLanguage.FindFirst();\n \n // Necessary when the user has deleted all languages or has not created any language yet\n- if IsNullGuid(Rec.\"Reminder Attachment Text\") then\n- ReminderCommunication.SetDefaultContentForNewLanguage(CreateGuid(), LocalLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Level\", Rec.SystemId);\n+ if IsNullGuid(Rec.\"Reminder Attachment Text\") then begin\n+ NewGuid := CreateGuid();\n+ ReminderCommunication.SetDefaultContentForNewLanguage(NewGuid, LocalLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Level\", Rec.SystemId);\n+ Rec.\"Reminder Attachment Text\" := NewGuid;\n+ Rec.\"Reminder Email Text\" := NewGuid;\n+ Rec.Modify(true);\n+ end;\n \n SelectedNewLanguage := true;\n SelectLanguageAndText(LocalLanguage.Code, true);\ndiff --git a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al\nindex 5cce8ad7..a729607d 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al\n@@ -109,6 +109,7 @@ page 1897 \"Reminder Term Communication\"\n ReminderCommunication: Codeunit \"Reminder Communication\";\n Languages: Page \"Languages\";\n FilterText: Text;\n+ NewGuid: Guid;\n begin\n FilterText := ReminderCommunication.GetListOfAttachmentLanguagesFromIdWithSeparator(Rec.\"Reminder Attachment Text\", DifferentOperatorTok);\n if FilterText <> '' then\n@@ -125,8 +126,13 @@ page 1897 \"Reminder Term Communication\"\n LocalLanguage.FindFirst();\n \n // Necessary when the user has deleted all languages or has not created any language yet\n- if IsNullGuid(Rec.\"Reminder Attachment Text\") then\n- ReminderCommunication.SetDefaultContentForNewLanguage(CreateGuid(), LocalLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Term\", Rec.SystemId);\n+ if IsNullGuid(Rec.\"Reminder Attachment Text\") then begin\n+ NewGuid := CreateGuid();\n+ ReminderCommunication.SetDefaultContentForNewLanguage(NewGuid, LocalLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Term\", Rec.SystemId);\n+ Rec.\"Reminder Attachment Text\" := NewGuid;\n+ Rec.\"Reminder Email Text\" := NewGuid;\n+ Rec.Modify(true);\n+ end;\n \n SelectedNewLanguage := true;\n SelectLanguageAndText(LocalLanguage.Code, true);\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-193853", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 377.218, "tool_calls": 51, "total_tokens": 1811100, "TurnCount": 82}, "Project": "EnforcedDigitalVouchers", "ToolUsage": "{\"edit\":1,\"grep\":12,\"powershell\":1,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":31}", "output": "diff --git a/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al b/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\nindex 72dc980e..93a7296a 100644\n--- a/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\n+++ b/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\n@@ -269,11 +269,30 @@ codeunit 5579 \"Digital Voucher Impl.\"\n if not IncomingDocument.FindFromIncomingDocumentEntryNo(MainRecordRef, IncomingDocument) then\n IncomingDocument.FindByDocumentNoAndPostingDate(MainRecordRef, IncomingDocument);\n if IncomingDocument.\"Entry No.\" = 0 then\n- exit(false);\n+ if not FindIncomingDocFromRelatedGenJnlLine(IncomingDocument, MainRecordRef) then\n+ exit(false);\n IncomingDocumentAttachment.SetRange(\"Incoming Document Entry No.\", IncomingDocument.\"Entry No.\");\n exit(true);\n end;\n \n+ local procedure FindIncomingDocFromRelatedGenJnlLine(var IncomingDocument: Record \"Incoming Document\"; MainRecordRef: RecordRef): Boolean\n+ var\n+ GenJournalLine: Record \"Gen. Journal Line\";\n+ RelatedGenJournalLine: Record \"Gen. Journal Line\";\n+ begin\n+ if MainRecordRef.Number <> Database::\"Gen. Journal Line\" then\n+ exit(false);\n+ MainRecordRef.SetTable(GenJournalLine);\n+ RelatedGenJournalLine.SetRange(\"Journal Template Name\", GenJournalLine.\"Journal Template Name\");\n+ RelatedGenJournalLine.SetRange(\"Journal Batch Name\", GenJournalLine.\"Journal Batch Name\");\n+ RelatedGenJournalLine.SetRange(\"Posting Date\", GenJournalLine.\"Posting Date\");\n+ RelatedGenJournalLine.SetRange(\"Document No.\", GenJournalLine.\"Document No.\");\n+ RelatedGenJournalLine.SetFilter(\"Incoming Document Entry No.\", '<>0');\n+ if not RelatedGenJournalLine.FindFirst() then\n+ exit(false);\n+ exit(IncomingDocument.Get(RelatedGenJournalLine.\"Incoming Document Entry No.\"));\n+ end;\n+\n local procedure AttachGenJnlLinePDFToIncomingDocument(RecRef: RecordRef)\n var\n GenJournalLine: Record \"Gen. Journal Line\";\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-213524", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 85.162, "tool_calls": 17, "total_tokens": 210200, "TurnCount": 9}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":8,\"report_intent\":2,\"update_todo\":2,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/Intercompany/ICNavigation.Codeunit.al b/App/Layers/W1/BaseApp/Finance/Intercompany/ICNavigation.Codeunit.al\nindex 92bf43b1..c9a21012 100644\n--- a/App/Layers/W1/BaseApp/Finance/Intercompany/ICNavigation.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/Intercompany/ICNavigation.Codeunit.al\n@@ -111,6 +111,18 @@ codeunit 437 \"IC Navigation\"\n exit(NavigateToSalesInvoice(DocumentNo, ICPartnerCode));\n end;\n \n+ local procedure NavigateToSalesCreditMemo(DocumentNo: Code[20]): Boolean\n+ var\n+ SalesCrMemoHeader: Record \"Sales Cr.Memo Header\";\n+ PostedSalesCreditMemo: Page \"Posted Sales Credit Memo\";\n+ begin\n+ if not SalesCrMemoHeader.Get(DocumentNo) then\n+ exit(false);\n+ PostedSalesCreditMemo.SetRecord(SalesCrMemoHeader);\n+ PostedSalesCreditMemo.Run();\n+ exit(true);\n+ end;\n+\n local procedure NavigateToSalesDocument(DocumentNo: Code[20]; ICDirectionType: Enum \"IC Direction Type\"; ICPartnerCode: Code[20]; DocumentType: Enum \"IC Transaction Document Type\"): Boolean\n var\n ShouldNavigateToDoc: Boolean;\n@@ -120,6 +132,8 @@ codeunit 437 \"IC Navigation\"\n exit(NavigateToSalesOrderDocument(DocumentNo, ICDirectionType, ICPartnerCode));\n DocumentType::Invoice:\n exit(NavigateToSalesInvoice(DocumentNo));\n+ DocumentType::\"Credit Memo\":\n+ exit(NavigateToSalesCreditMemo(DocumentNo));\n else begin\n ShouldNavigateToDoc := false;\n OnNavigateToSalesDocumentOnAfterCheckDocumentType(DocumentNo, ICDirectionType, ICPartnerCode, DocumentType, ShouldNavigateToDoc);\n@@ -223,6 +237,28 @@ codeunit 437 \"IC Navigation\"\n exit(NavigateToPurchaseInvoice(DocumentNo, ICPartnerCode));\n end;\n \n+ local procedure NavigateToPurchaseCreditMemo(DocumentNo: Code[20]; ICPartnerCode: Code[20]): Boolean\n+ var\n+ Vendor: Record Vendor;\n+ PurchCrMemoHdr: Record \"Purch. Cr. Memo Hdr.\";\n+ PostedPurchaseCreditMemo: Page \"Posted Purchase Credit Memo\";\n+ begin\n+ Vendor.SetRange(\"IC Partner Code\", ICPartnerCode);\n+ if not Vendor.FindSet() then\n+ exit(false);\n+ repeat\n+ PurchCrMemoHdr.Reset();\n+ PurchCrMemoHdr.SetRange(\"Buy-from Vendor No.\", Vendor.\"No.\");\n+ PurchCrMemoHdr.SetRange(\"No.\", DocumentNo);\n+ if PurchCrMemoHdr.FindFirst() then begin\n+ PostedPurchaseCreditMemo.SetRecord(PurchCrMemoHdr);\n+ PostedPurchaseCreditMemo.Run();\n+ exit(true);\n+ end;\n+ until Vendor.Next() = 0;\n+ exit(false);\n+ end;\n+\n local procedure NavigateToPurchaseDocument(DocumentNo: Code[20]; ICDirectionType: Enum \"IC Direction Type\"; ICPartnerCode: Code[20]; DocumentType: Enum \"IC Transaction Document Type\"): Boolean\n var\n OpenDoc: Boolean;\n@@ -232,6 +268,8 @@ codeunit 437 \"IC Navigation\"\n exit(NavigateToPurchaseOrderDocument(DocumentNo, ICDirectionType, ICPartnerCode));\n DocumentType::Invoice:\n exit(NavigateToPurchaseInvoiceDocument(DocumentNo, ICPartnerCode));\n+ DocumentType::\"Credit Memo\":\n+ exit(NavigateToPurchaseCreditMemo(DocumentNo, ICPartnerCode));\n else begin\n OnNavigateToPurchaseDocumentOnDocumentTypeCaseElse(DocumentNo, ICDirectionType, ICPartnerCode, DocumentType, OpenDoc);\n exit(OpenDoc);\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-174087", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 309.051, "tool_calls": 21, "total_tokens": 336300, "TurnCount": 63}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":5,\"report_intent\":3,\"task\":2,\"update_todo\":2,\"view\":8}", "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al b/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\nindex ff43f4ff..e789ff20 100644\n--- a/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\n+++ b/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\n@@ -356,7 +356,7 @@ page 5077 \"Create Interaction\"\n Caption = 'Interaction Result Description';\n ToolTip = 'Specifies a description of the interaction.';\n }\n- field(Evaluation; Rec.Evaluation)\n+ field(Evaluation; InteractionLogEntry.Evaluation)\n {\n ApplicationArea = RelationshipMgmt;\n Enabled = IsMainInfoSet;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-218786", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 238.644, "tool_calls": 10, "total_tokens": 117500, "TurnCount": 66}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":1,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al\nindex 0b806569..dca9db12 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al\n@@ -3128,12 +3128,11 @@ table 5767 \"Warehouse Activity Line\"\n WhseActivityLine.SetLoadFields(\"Activity Type\", \"No.\", \"Line No.\", \"Item No.\", \"Variant Code\", \"Location Code\", \"Action Type\", Quantity, \"Lot No.\", \"Serial No.\", \"Source No.\", \"Source Line No.\", \"Source Document\");\n WhseActivityLine.SetRange(\"Activity Type\", FromWhseActivityLine.\"Activity Type\");\n WhseActivityLine.SetRange(\"No.\", FromWhseActivityLine.\"No.\");\n- WhseActivityLine.SetFilter(\"Line No.\", '<>%1', FromWhseActivityLine.\"Line No.\");\n+ WhseActivityLine.SetFilter(\"Line No.\", '>%1', FromWhseActivityLine.\"Line No.\");\n WhseActivityLine.SetRange(\"Item No.\", FromWhseActivityLine.\"Item No.\");\n WhseActivityLine.SetRange(\"Variant Code\", FromWhseActivityLine.\"Variant Code\");\n WhseActivityLine.SetRange(\"Location Code\", FromWhseActivityLine.\"Location Code\");\n WhseActivityLine.SetRange(\"Action Type\", WhseActivityLine.\"Action Type\"::Place);\n- WhseActivityLine.SetRange(Quantity, xWhseActivityLine.Quantity);\n WhseActivityLine.SetRange(\"Lot No.\", FromWhseActivityLine.\"Lot No.\");\n WhseActivityLine.SetRange(\"Serial No.\", FromWhseActivityLine.\"Serial No.\");\n WhseActivityLine.SetRange(\"Source Document\", FromWhseActivityLine.\"Source Document\");\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-212355", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 161.413, "tool_calls": 15, "total_tokens": 194500, "TurnCount": 28}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":2,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":7}", "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Routing/CalculateRoutingLine.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Routing/CalculateRoutingLine.Codeunit.al\nindex c46c8c20..4d40b8b6 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Routing/CalculateRoutingLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Routing/CalculateRoutingLine.Codeunit.al\n@@ -1309,7 +1309,7 @@ codeunit 99000774 \"Calculate Routing Line\"\n end;\n \n MaxLotSize :=\n- ExpectedOperOutput *\n+ ProdOrderQty *\n (1 + ProdOrderRoutingLine.\"Scrap Factor % (Accumulated)\") *\n (1 + TotalScrap / 100) +\n ProdOrderRoutingLine.\"Fixed Scrap Qty. (Accum.)\";\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-213671", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 49, "tool_calls": 9, "total_tokens": 158300, "TurnCount": 7}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":1,\"grep\":1,\"report_intent\":2,\"update_todo\":2,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al b/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\nindex c70c6c1e..81667180 100644\n--- a/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\n+++ b/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\n@@ -630,7 +630,7 @@ page 5123 \"Opportunity List\"\n if Filter <> '' then begin\n RecRef.GetTable(RecVar);\n IndexFieldRef := RecRef.Field(IndexFieldNo);\n- IndexFieldRef.SetRange(Filter);\n+ IndexFieldRef.SetFilter(Filter);\n if RecRef.FindFirst() then begin\n TextFieldRef := RecRef.Field(TextFieldNo);\n CaptionText := CopyStr(Format(IndexFieldRef.Value) + ' ' + Format(TextFieldRef.Value), 1, MaxStrLen(CaptionText));\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-213629", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 51, "tool_calls": 11, "total_tokens": 125000, "TurnCount": 6}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":4,\"report_intent\":2,\"update_todo\":2,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al\nindex 162d6cc5..544c740a 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al\n@@ -192,6 +192,7 @@ codeunit 1006 \"Copy Job\"\n TargetJobPlanningLine.\"Completely Picked\" := false;\n TargetJobPlanningLine.\"Ledger Entry No.\" := 0;\n TargetJobPlanningLine.\"Ledger Entry Type\" := TargetJobPlanningLine.\"Ledger Entry Type\"::\" \";\n+ TargetJobPlanningLine.\"System-Created Entry\" := false;\n OnCopyJobPlanningLinesOnBeforeTargetJobPlanningLineInsert(TargetJobPlanningLine, SourceJobPlanningLine);\n TargetJobPlanningLine.Insert(true);\n OnCopyJobPlanningLinesOnAfterTargetJobPlanningLineInsert(TargetJobPlanningLine, SourceJobPlanningLine);\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-213683", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 225.595, "tool_calls": 12, "total_tokens": 202800, "TurnCount": 32}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al\nindex 9735e4b2..246b6a64 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al\n@@ -172,8 +172,6 @@ codeunit 99000795 \"Mfg. Item Integration\"\n RequisitionLine: Record \"Requisition Line\";\n TransferLine: Record \"Transfer Line\";\n ItemJournalLine: Record \"Item Journal Line\";\n- ValueEntry: Record \"Value Entry\";\n- ItemLedgerEntry: Record \"Item Ledger Entry\";\n ProdOrderLine: Record \"Prod. Order Line\";\n begin\n if xRec.\"Item No.\" <> Rec.\"Item No.\" then begin\n@@ -229,16 +227,6 @@ codeunit 99000795 \"Mfg. Item Integration\"\n ItemJournalLine.SetRange(\"Variant Code\", xRec.Code);\n if not ItemJournalLine.IsEmpty() then\n Error(CannotRenameItemErr, Rec.FieldCaption(\"Item No.\"), Rec.TableCaption(), ItemJournalLine.TableCaption());\n-\n- ItemLedgerEntry.SetRange(\"Item No.\", xRec.\"Item No.\");\n- ItemLedgerEntry.SetRange(\"Variant Code\", xRec.Code);\n- if not ItemLedgerEntry.IsEmpty() then\n- Error(CannotRenameItemErr, Rec.FieldCaption(\"Item No.\"), Rec.TableCaption(), ItemLedgerEntry.TableCaption());\n-\n- ValueEntry.SetRange(\"Item No.\", xRec.\"Item No.\");\n- ValueEntry.SetRange(\"Variant Code\", xRec.Code);\n- if not ValueEntry.IsEmpty() then\n- Error(CannotRenameItemErr, Rec.FieldCaption(\"Item No.\"), Rec.TableCaption(), ValueEntry.TableCaption());\n end;\n end;\n \n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-203923", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 293.546, "tool_calls": 35, "total_tokens": 797800, "TurnCount": 39}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":5,\"grep\":10,\"powershell\":1,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":12}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\nindex 6bb15d7d..9c9227b8 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n@@ -93,7 +93,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetNonDeductibleVATPct(NonDeductibleVATPct, VATPostingSetup, GeneralPostingType, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (VATPostingSetup.\"VAT Calculation Type\" in [VATPostingSetup.\"VAT Calculation Type\"::\"Normal VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (VATPostingSetup.\"VAT Calculation Type\" in [VATPostingSetup.\"VAT Calculation Type\"::\"Normal VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Reverse Charge VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if (VATPostingSetup.\"Allow Non-Deductible VAT\" = VATPostingSetup.\"Allow Non-Deductible VAT\"::\"Do not allow\") or (GeneralPostingType <> GeneralPostingType::Purchase) then\n exit(0);\n@@ -786,7 +786,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeCalcNonDedAmountsInGenJnlLine(GenJournalLine, Currency, IsHandled);\n if IsHandled then\n exit;\n- if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit;\n if not VATPostingSetup.Get(GenJournalLine.\"VAT Bus. Posting Group\", GenJournalLine.\"VAT Prod. Posting Group\") then\n exit;\n@@ -826,7 +826,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeCalcBalNonDedAmountsInGenJnlLine(GenJournalLine, Currency, IsHandled);\n if IsHandled then\n exit;\n- if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Full VAT\"]) then\n exit;\n if not VATPostingSetup.Get(GenJournalLine.\"Bal. VAT Bus. Posting Group\", GenJournalLine.\"Bal. VAT Prod. Posting Group\") then\n exit;\n@@ -1210,7 +1210,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetNonDedVATPctForGenJnlLine(NonDeductibleVATPct, GenJournalLine, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if not VATPostingSetup.Get(GenJournalLine.\"VAT Bus. Posting Group\", GenJournalLine.\"VAT Prod. Posting Group\") then\n exit(0);\n@@ -1227,7 +1227,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetBalNonDedVATPctForGenJnlLine(NonDeductibleVATPct, GenJournalLine, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if not VATPostingSetup.Get(GenJournalLine.\"Bal. VAT Bus. Posting Group\", GenJournalLine.\"Bal. VAT Prod. Posting Group\") then\n exit(0);\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-217104", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 173.541, "tool_calls": 10, "total_tokens": 183900, "TurnCount": 12}, "Project": "AutomaticAccountCodes", "ToolUsage": "{\"edit\":2,\"grep\":1,\"report_intent\":1,\"task\":1,\"update_todo\":3,\"view\":2}", "output": "diff --git a/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al b/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\nindex 0e4bcfe3..c051744e 100644\n--- a/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\n+++ b/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\n@@ -71,6 +71,7 @@ codeunit 4850 \"AA Codes Posting Helper\"\n GenJnlCheckLine: Codeunit \"Gen. Jnl.-Check Line\";\n NoOfAutoAccounts: Decimal;\n TotalAmount: Decimal;\n+ TotalAmountLCY: Decimal;\n TotalAltAmount: Decimal;\n SourceCurrBaseAmount: Decimal;\n AccLine: Integer;\n@@ -121,6 +122,9 @@ codeunit 4850 \"AA Codes Posting Helper\"\n GenJnlLine2.Validate(Amount, GenJnlLine2.Amount - TotalAmount);\n if (AccLine = NoOfAutoAccounts) and (TotalAltAmount <> 0) then\n GenJnlLine2.Validate(\"Source Currency Amount\", GenJnlLine2.\"Source Currency Amount\" - TotalAltAmount);\n+ TotalAmountLCY := TotalAmountLCY + GenJnlLine2.\"Amount (LCY)\";\n+ if (AccLine = NoOfAutoAccounts) and (TotalAmountLCY <> 0) then\n+ GenJnlLine2.\"Amount (LCY)\" := GenJnlLine2.\"Amount (LCY)\" - TotalAmountLCY;\n GenJnlCheckLine.RunCheck(GenJnlLine2);\n \n sender.InitGLEntry(GenJnlLine2, GLEntry,\n", "error_message": null} +{"InstanceID": "microsoft__BCApps-4699", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 188.038, "tool_calls": 24, "total_tokens": 621800, "TurnCount": 18}, "Project": "Shopify", "ToolUsage": "{\"edit\":3,\"glob\":4,\"grep\":8,\"report_intent\":1,\"update_todo\":3,\"view\":5}", "output": "diff --git a/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al b/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al\nindex 4e6ffd2..7b5665a 100644\n--- a/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al\n@@ -5,6 +5,7 @@\n \n namespace Microsoft.Integration.Shopify;\n \n+using Microsoft.Finance.Currency;\n using Microsoft.Inventory.Item;\n using Microsoft.Foundation.UOM;\n using Microsoft.Purchases.Vendor;\n@@ -227,6 +228,7 @@ codeunit 30171 \"Shpfy Create Item\"\n /// Parameter of type Boolean.\n local procedure DoCreateItem(var ShopifyProduct: Record \"Shpfy Product\"; var ShopifyVariant: Record \"Shpfy Variant\"; var Item: Record Item; ForVariant: Boolean)\n var\n+ CurrExchRate: Record \"Currency Exchange Rate\";\n ItemCategory: Record \"Item Category\";\n ItemVariant: Record \"Item Variant\";\n Vendor: Record Vendor;\n@@ -258,10 +260,10 @@ codeunit 30171 \"Shpfy Create Item\"\n CreateItemUnitOfMeasure(ShopifyVariant, Item);\n \n if ShopifyVariant.\"Unit Cost\" <> 0 then\n- Item.Validate(\"Unit Cost\", ShopifyVariant.\"Unit Cost\");\n+ Item.Validate(\"Unit Cost\", Round(CurrExchRate.ExchangeAmtFCYToLCY(WorkDate(), Shop.\"Currency Code\", ShopifyVariant.\"Unit Cost\", CurrExchRate.ExchangeRate(WorkDate(), Shop.\"Currency Code\"))));\n \n if ShopifyVariant.Price <> 0 then\n- Item.Validate(\"Unit Price\", ShopifyVariant.Price);\n+ Item.Validate(\"Unit Price\", Round(CurrExchRate.ExchangeAmtFCYToLCY(WorkDate(), Shop.\"Currency Code\", ShopifyVariant.Price, CurrExchRate.ExchangeRate(WorkDate(), Shop.\"Currency Code\"))));\n \n if ShopifyProduct.\"Product Type\" <> '' then begin\n ItemCategory.SetFilter(Description, FilterMgt.CleanFilterValue(ShopifyProduct.\"Product Type\", MaxStrLen(ItemCategory.Description)));\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-207878", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 1217.156, "tool_calls": 64, "total_tokens": 2546000, "TurnCount": 155}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":8,\"glob\":3,\"grep\":15,\"powershell\":2,\"report_intent\":3,\"store_memory\":1,\"task\":6,\"update_todo\":3,\"view\":22}", "output": "diff --git a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLine.Table.al b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLine.Table.al\nindex 62ba45ed..c84222b4 100644\n--- a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLine.Table.al\n@@ -1489,12 +1489,9 @@ table 901 \"Assembly Line\"\n OldAssemblyLine: Record \"Assembly Line\";\n CompanyInfo: Record \"Company Information\";\n AvailableToPromise: Codeunit \"Available to Promise\";\n- LookaheadDateFormula: DateFormula;\n- AvailabilityDate: Date;\n ReservedReceipt: Decimal;\n ReservedRequirement: Decimal;\n QtyAvailable: Decimal;\n- PeriodType: Enum \"Analysis Period Type\";\n begin\n OnBeforeCalcAvailQuantities(Rec);\n SetItemFilter(Item);\n@@ -1507,18 +1504,6 @@ table 901 \"Assembly Line\"\n GrossRequirement -= OldAssemblyLine.\"Remaining Quantity (Base)\";\n \n CompanyInfo.Get();\n- LookaheadDateFormula := CompanyInfo.\"Check-Avail. Period Calc.\";\n- if Format(LookaheadDateFormula) <> '' then begin\n- AvailabilityDate := Item.GetRangeMax(\"Date Filter\");\n- PeriodType := CompanyInfo.\"Check-Avail. Time Bucket\";\n-\n- GrossRequirement :=\n- GrossRequirement +\n- AvailableToPromise.CalculateForward(\n- Item, PeriodType,\n- AvailabilityDate + 1,\n- AvailableToPromise.GetPeriodEndingDate(CalcDate(LookaheadDateFormula, AvailabilityDate), PeriodType));\n- end;\n \n EarliestDate :=\n AvailableToPromise.CalcEarliestAvailabilityDate(\ndiff --git a/App/Layers/W1/BaseApp/Inventory/Availability/AvailabletoPromise.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Availability/AvailabletoPromise.Codeunit.al\nindex a486f294..6a9c4a5b 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Availability/AvailabletoPromise.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Availability/AvailabletoPromise.Codeunit.al\n@@ -47,6 +47,7 @@ codeunit 5790 \"Available to Promise\"\n AllFieldCalculated: Boolean;\n PrevItemNo: Code[20];\n PrevItemFilters: Text;\n+ ExcludeForwardCalculation: Boolean;\n \n procedure SetRecalculateFields()\n begin\n@@ -64,7 +65,7 @@ codeunit 5790 \"Available to Promise\"\n ScheduledReceipt := CalcScheduledReceipt(Item);\n GrossRequirement := CalcGrossRequirement(Item);\n \n- if AvailabilityDate <> 0D then\n+ if (AvailabilityDate <> 0D) and not ExcludeForwardCalculation then\n GrossRequirement +=\n CalculateForward(\n Item, PeriodType,\n@@ -468,6 +469,11 @@ codeunit 5790 \"Available to Promise\"\n ChangedAssemblyLine := AssemblyLine;\n end;\n \n+ procedure SetExcludeForwardCalculation(NewExcludeForwardCalculation: Boolean)\n+ begin\n+ ExcludeForwardCalculation := NewExcludeForwardCalculation;\n+ end;\n+\n local procedure CalcReqShipDate(SalesLine: Record \"Sales Line\"): Date\n begin\n if SalesLine.\"Requested Delivery Date\" = 0D then\ndiff --git a/App/Layers/W1/BaseApp/Inventory/Availability/ItemCheckAvail.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Availability/ItemCheckAvail.Codeunit.al\nindex 26f5dfa5..bcb17688 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Availability/ItemCheckAvail.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Availability/ItemCheckAvail.Codeunit.al\n@@ -481,6 +481,7 @@ codeunit 311 \"Item-Check Avail.\"\n exit(false);\n \n Clear(AvailableToPromise);\n+ AvailableToPromise.SetExcludeForwardCalculation(true);\n \n OldItemNetChange := 0;\n \n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-185792", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 171.013, "tool_calls": 11, "total_tokens": 151600, "TurnCount": 54}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":1,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\nindex 53e7159a..da7c4360 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\n@@ -598,6 +598,11 @@ table 81 \"Gen. Journal Line\"\n Validate(\"VAT %\");\n Validate(\"Bal. VAT %\");\n UpdateLineBalance();\n+\n+ if JobTaskIsSet() then begin\n+ CreateTempJobJnlLine();\n+ UpdatePricesFromJobJnlLine();\n+ end;\n end;\n end;\n }\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-208748", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 212.46699999999998, "tool_calls": 10, "total_tokens": 246900, "TurnCount": 16}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\nindex 7c1943c5..7c81ef16 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\n@@ -123,6 +123,7 @@ codeunit 87 \"Blanket Sales Order to Order\"\n ATOLink: Record \"Assemble-to-Order Link\";\n PrepmtMgt: Codeunit \"Prepayment Mgt.\";\n SalesLineReserve: Codeunit \"Sales Line-Reserve\";\n+ LineNoMapping: Dictionary of [Integer, Integer];\n QuantityOnOrders: Decimal;\n IsHandled: Boolean;\n ProcessLine: Boolean;\n@@ -164,6 +165,10 @@ codeunit 87 \"Blanket Sales Order to Order\"\n SalesLineOrder.\"Document No.\" := SalesHeaderOrder.\"No.\";\n NextLineNo += 10000;\n SalesLineOrder.\"Line No.\" := NextLineNo;\n+ LineNoMapping.Set(SalesLineBlanketOrder.\"Line No.\", NextLineNo);\n+ if SalesLineOrder.\"Attached to Line No.\" <> 0 then\n+ if LineNoMapping.ContainsKey(SalesLineOrder.\"Attached to Line No.\") then\n+ SalesLineOrder.\"Attached to Line No.\" := LineNoMapping.Get(SalesLineOrder.\"Attached to Line No.\");\n SalesLineOrder.\"Blanket Order No.\" := SalesHeaderBlanketOrder.\"No.\";\n SalesLineOrder.\"Blanket Order Line No.\" := SalesLineBlanketOrder.\"Line No.\";\n if (SalesLineOrder.\"No.\" <> '') and (SalesLineOrder.Type <> SalesLineOrder.Type::\" \") then begin\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-220314", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 110.88, "tool_calls": 12, "total_tokens": 192200, "TurnCount": 32}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":1,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":4}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al b/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\nindex fb9253b7..ad41ac36 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\n@@ -76,6 +76,7 @@ table 83 \"Item Journal Line\"\n if \"Item No.\" <> xRec.\"Item No.\" then begin\n \"Variant Code\" := '';\n \"Bin Code\" := '';\n+ \"Unit of Measure Code\" := '';\n if CurrFieldNo <> 0 then begin\n GetItem();\n if Item.IsInventoriableType() then\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-207247", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 45, "tool_calls": 12, "total_tokens": 129400, "TurnCount": 7}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":2,\"report_intent\":2,\"update_todo\":4,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\nindex bd370429..d84df0de 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n@@ -1541,6 +1541,9 @@ codeunit 99000813 \"Carry Out Action\"\n ProductionBOMLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n ProductionBOMLine.SetRange(Type, ProductionBOMLine.Type::Item);\n ProductionBOMLine.SetRange(\"No.\", ProdOrderComponent.\"Item No.\");\n+ ProductionBOMLine.SetRange(Position, ProdOrderComponent.Position);\n+ ProductionBOMLine.SetRange(\"Position 2\", ProdOrderComponent.\"Position 2\");\n+ ProductionBOMLine.SetRange(\"Position 3\", ProdOrderComponent.\"Position 3\");\n if ProductionBOMLine.FindSet() then\n repeat\n ProductionBOMCommentLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-185696", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 829.4, "tool_calls": 32, "total_tokens": 702500, "TurnCount": 66}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":2,\"glob\":2,\"grep\":6,\"powershell\":1,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":13}", "output": "diff --git a/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListLine.Table.al b/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListLine.Table.al\nindex b367ef2c..ecf642b9 100644\n--- a/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListLine.Table.al\n@@ -157,6 +157,7 @@ table 7001 \"Price List Line\"\n TestStatusDraft();\n if not FieldLookedUp then begin\n CopyRecTo(PriceAsset);\n+ PriceAsset.\"Variant Code\" := '';\n PriceAsset.Validate(\"Asset No.\", \"Asset No.\");\n end;\n CopyFrom(PriceAsset);\ndiff --git a/App/Layers/W1/BaseApp/Pricing/Worksheet/PriceWorksheetLine.Table.al b/App/Layers/W1/BaseApp/Pricing/Worksheet/PriceWorksheetLine.Table.al\nindex d493aa48..81c521ab 100644\n--- a/App/Layers/W1/BaseApp/Pricing/Worksheet/PriceWorksheetLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Pricing/Worksheet/PriceWorksheetLine.Table.al\n@@ -156,6 +156,7 @@ table 7022 \"Price Worksheet Line\"\n TestStatusDraft();\n if not FieldLookedUp then begin\n CopyRecTo(PriceAsset);\n+ PriceAsset.\"Variant Code\" := '';\n PriceAsset.Validate(\"Asset No.\", \"Asset No.\");\n end;\n CopyFrom(PriceAsset);\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-188438", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 50, "tool_calls": 11, "total_tokens": 168000, "TurnCount": 10}, "Project": "Sustainability", "ToolUsage": "{\"edit\":1,\"grep\":5,\"report_intent\":2,\"view\":3}", "output": "diff --git a/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al b/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al\nindex 4644c873..35add374 100644\n--- a/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al\n+++ b/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al\n@@ -70,7 +70,7 @@ codeunit 6218 \"Sustainability Calc. Mgt.\"\n begin\n FilterGLEntry(SustainAccountCategory, FromDate, ToDate, GLEntry);\n GLEntry.CalcSums(Amount);\n- exit(GLEntry.Amount);\n+ exit(Abs(GLEntry.Amount));\n end;\n \n internal procedure CollectGeneralLedgerAmount(var SustainabilityJnlLine: Record \"Sustainability Jnl. Line\")\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-185488", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 269.897, "tool_calls": 21, "total_tokens": 389700, "TurnCount": 60}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":10,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al b/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al\nindex bcd82095..1edf4040 100644\n--- a/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al\n@@ -624,12 +624,27 @@ codeunit 1521 \"Workflow Response Handling\"\n begin\n end;\n \n- local procedure CreateNotificationEntry(WorkflowStepInstance: Record \"Workflow Step Instance\"; ApprovalEntry: Record \"Approval Entry\")\n+ local procedure CreateNotificationEntry(WorkflowStepInstance: Record \"Workflow Step Instance\"; Variant: Variant)\n var\n WorkflowStepArgument: Record \"Workflow Step Argument\";\n NotificationEntry: Record \"Notification Entry\";\n+ ApprovalEntry: Record \"Approval Entry\";\n+ RecRef: RecordRef;\n IsHandled: Boolean;\n begin\n+ RecRef.GetTable(Variant);\n+ case RecRef.Number of\n+ DATABASE::\"Approval Entry\":\n+ ApprovalEntry := Variant;\n+ else begin\n+ ApprovalEntry.SetCurrentKey(\"Table ID\", \"Record ID to Approve\", Status, \"Workflow Step Instance ID\", \"Sequence No.\");\n+ ApprovalEntry.SetRange(\"Table ID\", RecRef.Number);\n+ ApprovalEntry.SetRange(\"Record ID to Approve\", RecRef.RecordId);\n+ if not ApprovalEntry.FindFirst() then\n+ exit;\n+ end;\n+ end;\n+\n IsHandled := false;\n OnBeforeCreateNotificationEntry(WorkflowStepInstance, ApprovalEntry, IsHandled);\n if IsHandled then\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-218995", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 322.196, "tool_calls": 13, "total_tokens": 151600, "TurnCount": 88}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":1,\"report_intent\":3,\"task\":2,\"update_todo\":3,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Posting/JobPostLine.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Posting/JobPostLine.Codeunit.al\nindex a913f1c1..172ae097 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Posting/JobPostLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Posting/JobPostLine.Codeunit.al\n@@ -478,6 +478,10 @@ codeunit 1001 \"Job Post-Line\"\n if IsHandled then\n exit;\n \n+ if Item.Get(PurchaseLine.\"No.\") then\n+ if Item.IsNonInventoriableType() then\n+ exit;\n+\n Job.Get(PurchaseLine.\"Job No.\");\n if Job.GetQuantityAvailable(PurchaseLine.\"No.\", PurchaseLine.\"Location Code\", PurchaseLine.\"Variant Code\", 0, 2) <\n -PurchaseLine.\"Return Qty. to Ship (Base)\"\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-220984", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 63.353, "tool_calls": 13, "total_tokens": 165400, "TurnCount": 9}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":2,\"report_intent\":2,\"update_todo\":2,\"view\":6}", "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al\nindex 83bf3f09..fc62ac19 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al\n@@ -157,7 +157,7 @@ report 99001043 \"Exchange Production BOM Item\"\n CopyPositionFields(ProductionBOMLine2, ProductionBOMLine3);\n ShouldModifyProductionBOMLine := true;\n OnIntegerOnPostDataItemOnBeforeModifyProductionBOMLine(ProductionBOMLine, ShouldModifyProductionBOMLine);\n- if not ShouldModifyProductionBOMLine then begin\n+ if ShouldModifyProductionBOMLine then begin\n ProductionBOMLine.\"Ending Date\" := StartingDate - 1;\n ProductionBOMLine.Modify();\n end;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-222092", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 653.496, "tool_calls": 26, "total_tokens": 623500, "TurnCount": 99}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":1,\"grep\":2,\"report_intent\":3,\"task\":3,\"update_todo\":3,\"view\":13}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\nindex 825eb23c..9ff59101 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n@@ -270,8 +270,8 @@ codeunit 393 \"Reminder-Issue\"\n begin\n GenJnlLine2.\"Shortcut Dimension 1 Code\" := GlobalReminderHeader.\"Shortcut Dimension 1 Code\";\n GenJnlLine2.\"Shortcut Dimension 2 Code\" := GlobalReminderHeader.\"Shortcut Dimension 2 Code\";\n- DimSetIDArr[1] := GlobalReminderHeader.\"Dimension Set ID\";\n- DimSetIDArr[2] := TempGenJnlLine.\"Dimension Set ID\";\n+ DimSetIDArr[1] := TempGenJnlLine.\"Dimension Set ID\";\n+ DimSetIDArr[2] := GlobalReminderHeader.\"Dimension Set ID\";\n GenJnlLine2.\"Dimension Set ID\" :=\n DimMgt.GetCombinedDimensionSetID(\n DimSetIDArr, GenJnlLine2.\"Shortcut Dimension 1 Code\", GenJnlLine2.\"Shortcut Dimension 2 Code\");\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-215225", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 448.779, "tool_calls": 34, "total_tokens": 711000, "TurnCount": 116}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":8,\"report_intent\":2,\"task\":4,\"update_todo\":3,\"view\":15}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobJournalLine.Table.al b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobJournalLine.Table.al\nindex fb253f0b..eda9a96b 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobJournalLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobJournalLine.Table.al\n@@ -1659,21 +1659,28 @@ table 210 \"Job Journal Line\"\n end;\n \n procedure DeleteAmounts()\n+ begin\n+ DeleteAmounts(false);\n+ end;\n+\n+ procedure DeleteAmounts(KeepUnitAmounts: Boolean)\n begin\n Quantity := 0;\n \"Quantity (Base)\" := 0;\n- \"Direct Unit Cost (LCY)\" := 0;\n- \"Unit Cost (LCY)\" := 0;\n- \"Unit Cost\" := 0;\n+ if not KeepUnitAmounts then begin\n+ \"Direct Unit Cost (LCY)\" := 0;\n+ \"Unit Cost (LCY)\" := 0;\n+ \"Unit Cost\" := 0;\n+ \"Unit Price (LCY)\" := 0;\n+ \"Unit Price\" := 0;\n+ \"Line Discount %\" := 0;\n+ end;\n \"Total Cost (LCY)\" := 0;\n \"Total Cost\" := 0;\n- \"Unit Price (LCY)\" := 0;\n- \"Unit Price\" := 0;\n \"Total Price (LCY)\" := 0;\n \"Total Price\" := 0;\n \"Line Amount (LCY)\" := 0;\n \"Line Amount\" := 0;\n- \"Line Discount %\" := 0;\n \"Line Discount Amount (LCY)\" := 0;\n \"Line Discount Amount\" := 0;\n \"Remaining Qty.\" := 0;\ndiff --git a/App/Layers/W1/BaseApp/Projects/Project/Posting/JobJnlPostBatch.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Posting/JobJnlPostBatch.Codeunit.al\nindex 9f7bd75b..152271e5 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Posting/JobJnlPostBatch.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Posting/JobJnlPostBatch.Codeunit.al\n@@ -296,7 +296,7 @@ codeunit 1013 \"Job Jnl.-Post Batch\"\n if (JobJnlLine2.\"Recurring Method\" = JobJnlLine2.\"Recurring Method\"::Variable) and\n (JobJnlLine2.\"No.\" <> '')\n then\n- JobJnlLine2.DeleteAmounts();\n+ JobJnlLine2.DeleteAmounts(true);\n JobJnlLine2.Modify();\n until JobJnlLine2.Next() = 0;\n end else begin\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-227240", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 177.948, "tool_calls": 9, "total_tokens": 110100, "TurnCount": 53}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":1,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\nindex 9ff59101..ff238e73 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n@@ -409,9 +409,6 @@ codeunit 393 \"Reminder-Issue\"\n if IsHandled then\n exit;\n \n- if NewDueDate < ReminderEntry2.\"Due Date\" then\n- exit;\n-\n ReminderEntry2.Validate(\"Due Date\", NewDueDate);\n ReminderEntry2.Modify();\n end;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-226875", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 432.082, "tool_calls": 51, "total_tokens": 1210400, "TurnCount": 119}, "Project": "BaseApp", "ToolUsage": "{\"edit\":10,\"glob\":1,\"grep\":6,\"powershell\":1,\"report_intent\":2,\"task\":4,\"update_todo\":3,\"view\":24}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\nindex fa043e01..db9975bb 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n@@ -154,6 +154,7 @@ page 254 \"Purchase Journal\"\n trigger OnValidate()\n begin\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ UpdateVendorName();\n EnableApplyEntriesAction();\n CurrPage.SaveRecord();\n end;\n@@ -166,11 +167,12 @@ page 254 \"Purchase Journal\"\n trigger OnValidate()\n begin\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ UpdateVendorName();\n Rec.ShowShortcutDimCode(ShortcutDimCode);\n CurrPage.SaveRecord();\n end;\n }\n- field(\"\"; AccName)\n+ field(\"\"; VendorName)\n {\n ApplicationArea = Basic, Suite;\n Caption = 'Vendor Name';\n@@ -380,6 +382,7 @@ page 254 \"Purchase Journal\"\n trigger OnValidate()\n begin\n EnableApplyEntriesAction();\n+ UpdateVendorName();\n end;\n }\n field(\"Bal. Account No.\"; Rec.\"Bal. Account No.\")\n@@ -390,6 +393,7 @@ page 254 \"Purchase Journal\"\n trigger OnValidate()\n begin\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ UpdateVendorName();\n Rec.ShowShortcutDimCode(ShortcutDimCode);\n CurrPage.SaveRecord();\n end;\n@@ -1494,6 +1498,7 @@ page 254 \"Purchase Journal\"\n begin\n HasIncomingDocument := Rec.\"Incoming Document Entry No.\" <> 0;\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ UpdateVendorName();\n UpdateBalance();\n EnableApplyEntriesAction();\n SetControlAppearance();\n@@ -1508,6 +1513,7 @@ page 254 \"Purchase Journal\"\n Rec.ShowShortcutDimCode(ShortcutDimCode);\n DocumentAmount := Abs(Rec.Amount);\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ UpdateVendorName();\n CurrPage.IncomingDocAttachFactBox.PAGE.SetCurrentRecordID(Rec.RecordId());\n ApprovalMgmt.GetGenJnlLineApprovalStatus(Rec, GenJnlLineApprovalStatus, EnabledGenJnlLineWorkflowsExist);\n end;\n@@ -1639,6 +1645,7 @@ page 254 \"Purchase Journal\"\n ShortcutDimCode: array[8] of Code[20];\n AccName: Text[100];\n BalAccName: Text[100];\n+ VendorName: Text[100];\n DimVisible1: Boolean;\n DimVisible2: Boolean;\n DimVisible3: Boolean;\n@@ -1661,6 +1668,17 @@ page 254 \"Purchase Journal\"\n NumberOfRecords := Rec.Count();\n end;\n \n+ local procedure UpdateVendorName()\n+ begin\n+ if Rec.\"Account Type\" = Rec.\"Account Type\"::Vendor then\n+ VendorName := AccName\n+ else\n+ if Rec.\"Bal. Account Type\" = Rec.\"Bal. Account Type\"::Vendor then\n+ VendorName := BalAccName\n+ else\n+ VendorName := '';\n+ end;\n+\n local procedure EnableApplyEntriesAction()\n begin\n ApplyEntriesActionEnabled :=\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-216572", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 225.566, "tool_calls": 23, "total_tokens": 450300, "TurnCount": 31}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":6,\"report_intent\":2,\"task\":2,\"update_todo\":4,\"view\":8}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al\nindex 130b3e0f..addf49a0 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al\n@@ -666,9 +666,24 @@ table 221 \"Gen. Jnl. Allocation\"\n end;\n \n local procedure CopyFieldsFromAllocationAccountDistribution(AllocAccountDistribution: Record \"Alloc. Account Distribution\")\n+ var\n+ DimensionSetIDArr: array[10] of Integer;\n begin\n Rec.Validate(\"Account No.\", AllocAccountDistribution.\"Destination Account Number\");\n Rec.Validate(\"Allocation %\", AllocAccountDistribution.Percent);\n+ if AllocAccountDistribution.\"Dimension Set ID\" = 0 then\n+ exit;\n+ if Rec.\"Dimension Set ID\" = AllocAccountDistribution.\"Dimension Set ID\" then\n+ exit;\n+ if Rec.\"Dimension Set ID\" = 0 then begin\n+ Rec.\"Dimension Set ID\" := AllocAccountDistribution.\"Dimension Set ID\";\n+ DimMgt.UpdateGlobalDimFromDimSetID(Rec.\"Dimension Set ID\", Rec.\"Shortcut Dimension 1 Code\", Rec.\"Shortcut Dimension 2 Code\");\n+ end else begin\n+ DimensionSetIDArr[1] := Rec.\"Dimension Set ID\";\n+ DimensionSetIDArr[2] := AllocAccountDistribution.\"Dimension Set ID\";\n+ Rec.\"Dimension Set ID\" := DimMgt.GetCombinedDimensionSetID(DimensionSetIDArr, Rec.\"Shortcut Dimension 1 Code\", Rec.\"Shortcut Dimension 2 Code\");\n+ end;\n+ Rec.Modify();\n end;\n \n local procedure CheckGLAccount(var GLAccount: Record \"G/L Account\")\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-207236", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 212.256, "tool_calls": 24, "total_tokens": 428600, "TurnCount": 17}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":10,\"report_intent\":2,\"update_todo\":3,\"view\":7}", "output": "diff --git a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseHeader.Table.al b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseHeader.Table.al\nindex 18898d3e..f2dd4774 100644\n--- a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseHeader.Table.al\n@@ -6421,6 +6421,7 @@ table 38 \"Purchase Header\"\n \n if ReplacePostingDate then begin\n \"Posting Date\" := PostingDateReq;\n+ xRec := Rec;\n Validate(\"Currency Code\");\n end;\n \ndiff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al b/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\nindex fbf39fce..901b4209 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\n@@ -7038,6 +7038,7 @@ table 36 \"Sales Header\"\n exit;\n \n \"Posting Date\" := PostingDateReq;\n+ xRec := Rec;\n Validate(\"Currency Code\");\n \n if ReplaceVATDate then\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-226004", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 966.387, "tool_calls": 46, "total_tokens": 1818400, "TurnCount": 254}, "Project": "BaseApp", "ToolUsage": "{\"edit\":3,\"grep\":5,\"powershell\":1,\"report_intent\":2,\"task\":6,\"update_todo\":3,\"view\":26}", "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al b/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al\nindex d086521b..618c4bb1 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al\n@@ -74,6 +74,7 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n HasExpiredItems: Boolean;\n SuppressCommit: Boolean;\n HideDialogForTracking: Boolean;\n+ RemQtyToPick: Decimal;\n NothingToHandleMsg: Label 'There is nothing to handle.';\n QtyNotSufficientOnSalesErr: Label 'Quantity available to pick is not sufficient to fulfill shipping advise %1 for sales line with Document Type %2, Document No. %3, Line No. %4.', Comment = '%1=Shipping advise no., %2=Document Type, %3=Document No., %4=Line No.';\n QtyNotSufficientOnTransferErr: Label 'Quantity available to pick is not sufficient to fulfill shipping advise %1 for transfer line with Document No. %2, Line No. %3.', Comment = '%1=Shipping advise no., %2=Document No., %3=Line No.';\n@@ -782,6 +783,8 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n CompleteShipment := false;\n end;\n \n+ RemQtyToPick := NewWarehouseActivityLine.CalcQty(RemQtyToPickBase);\n+\n if RemQtyToPickBase > 0 then begin\n if ItemTrackingManagement.GetWhseItemTrkgSetup(NewWarehouseActivityLine.\"Item No.\", WhseItemTrackingSetup) then begin\n OnCreatePickOrMoveLineOnAfterGetWhseItemTrkgSetup(NewWarehouseActivityLine, WhseItemTrackingSetup);\n@@ -1927,6 +1930,8 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n /// Provided remaining quantity to pick in base unit.\n procedure MakeWarehouseActivityLine(var NewWarehouseActivityLine: Record \"Warehouse Activity Line\"; TakeBinCode: Code[20]; QtyToPickBase: Decimal; var RemQtyToPickBase: Decimal)\n var\n+ UnitOfMeasureManagement: Codeunit \"Unit of Measure Management\";\n+ CalculatedPickQty: Decimal;\n IsHandled: Boolean;\n begin\n IsHandled := false;\n@@ -1934,12 +1939,20 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n if IsHandled then\n exit;\n \n- NewWarehouseActivityLine.Quantity := NewWarehouseActivityLine.CalcQty(QtyToPickBase);\n+ CalculatedPickQty := NewWarehouseActivityLine.CalcQty(QtyToPickBase);\n+ if (RemQtyToPick > 0) and\n+ (UnitOfMeasureManagement.RoundQty(\n+ UnitOfMeasureManagement.CalcBaseQty(RemQtyToPick - CalculatedPickQty, NewWarehouseActivityLine.\"Qty. per Unit of Measure\"), 1) = 0)\n+ then\n+ NewWarehouseActivityLine.Quantity := RemQtyToPick\n+ else\n+ NewWarehouseActivityLine.Quantity := CalculatedPickQty;\n NewWarehouseActivityLine.\"Qty. (Base)\" := QtyToPickBase;\n NewWarehouseActivityLine.\"Qty. Outstanding\" := NewWarehouseActivityLine.Quantity;\n NewWarehouseActivityLine.\"Qty. Outstanding (Base)\" := NewWarehouseActivityLine.\"Qty. (Base)\";\n SetLineData(NewWarehouseActivityLine, TakeBinCode);\n RemQtyToPickBase := RemQtyToPickBase - QtyToPickBase;\n+ RemQtyToPick := RemQtyToPick - NewWarehouseActivityLine.Quantity;\n end;\n \n /// \n", "error_message": null} +{"InstanceID": "microsoft__BCApps-4822", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 213.612, "tool_calls": 39, "total_tokens": 759100, "TurnCount": 42}, "Project": "Shopify", "ToolUsage": "{\"create\":1,\"edit\":2,\"glob\":3,\"grep\":10,\"powershell\":1,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":15}", "output": "diff --git a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\nindex 2d20144..239cbc2 100644\n--- a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\n@@ -554,6 +554,7 @@ codeunit 30286 \"Shpfy Company API\"\n /// \n local procedure CreateCustomerLocation(JCompanyLocation: JsonObject; ShopifyCompany: Record \"Shpfy Company\"; CustomerId: Guid): BigInteger\n var\n+ Customer: Record Customer;\n CompanyLocation: Record \"Shpfy Company Location\";\n CompanyLocationId: BigInteger;\n PhoneNo: Text;\n@@ -581,6 +582,11 @@ codeunit 30286 \"Shpfy Company API\"\n CompanyLocation.Recipient := CopyStr(JsonHelper.GetValueAsText(JCompanyLocation, 'billingAddress.recipient', MaxStrLen(CompanyLocation.Recipient)), 1, MaxStrLen(CompanyLocation.Recipient));\n CompanyLocation.\"Shpfy Payment Terms Id\" := CommunicationMgt.GetIdOfGId(JsonHelper.GetValueAsText(JCompanyLocation, 'buyerExperienceConfiguration.paymentTermsTemplate.id'));\n CompanyLocation.\"Customer Id\" := CustomerId;\n+ if Customer.GetBySystemId(CustomerId) then begin\n+ CompanyLocation.\"Sell-to Customer No.\" := Customer.\"No.\";\n+ if Customer.\"Bill-to Customer No.\" <> '' then\n+ CompanyLocation.\"Bill-to Customer No.\" := Customer.\"Bill-to Customer No.\";\n+ end;\n CompanyLocation.Modify(true);\n exit(CompanyLocationId);\n end;\ndiff --git a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyExport.Codeunit.al b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyExport.Codeunit.al\nindex 9b3b3f1..2802dab 100644\n--- a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyExport.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyExport.Codeunit.al\n@@ -74,6 +74,9 @@ codeunit 30284 \"Shpfy Company Export\"\n \n CompanyLocation.Default := true;\n CompanyLocation.\"Company SystemId\" := ShopifyCompany.SystemId;\n+ CompanyLocation.\"Sell-to Customer No.\" := Customer.\"No.\";\n+ if Customer.\"Bill-to Customer No.\" <> '' then\n+ CompanyLocation.\"Bill-to Customer No.\" := Customer.\"Bill-to Customer No.\";\n CompanyLocation.Insert();\n end;\n end;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-214825", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 498.771, "tool_calls": 16, "total_tokens": 409200, "TurnCount": 20}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":2,\"report_intent\":2,\"task\":1,\"update_todo\":4,\"view\":6}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\nindex 604bb915..941d67f1 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\n@@ -76,11 +76,12 @@ codeunit 1018 \"Purchase Doc. From Job\"\n JobPlanningLine.SetLoadFields(\"Job Contract Entry No.\");\n JobPlanningLine.SetRange(\"Job No.\", JobTask.\"Job No.\");\n JobPlanningLine.SetRange(\"Job Task No.\", JobTask.\"Job Task No.\");\n+ JobPlanningLine.SetCurrentKey(\"Job Contract Entry No.\");\n if JobPlanningLine.IsEmpty() then\n exit;\n JobPlanningLine.FindSet();\n RecRef.GetTable(JobPlanningLine);\n- ContractEntryNoFilter := SelectionFilterMgt.GetSelectionFilter(RecRef, JobPlanningLine.FieldNo(\"Job Contract Entry No.\"));\n+ ContractEntryNoFilter := SelectionFilterMgt.GetSelectionFilter(RecRef, JobPlanningLine.FieldNo(\"Job Contract Entry No.\"), false);\n end;\n \n local procedure SetRequisitionLineFilters(var RequisitionLine: Record \"Requisition Line\"; Job: Record Job)\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-214557", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 756.249, "tool_calls": 66, "total_tokens": 3025600, "TurnCount": 110}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":4,\"grep\":20,\"powershell\":1,\"report_intent\":2,\"store_memory\":1,\"task\":2,\"update_todo\":3,\"view\":32}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al\nindex 052f4eb6..54ffe961 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al\n@@ -659,7 +659,8 @@ table 99000853 \"Inventory Profile\"\n Binding := ReservationEntry.Binding;\n \"Disallow Cancellation\" := ReservationEntry.\"Disallow Cancellation\";\n Found := true;\n- end;\n+ end else\n+ ClearPrimaryOrderFieldsIfDifferentBinding(ReservationEntry);\n end else\n if (ReservationEntry.\"Reservation Status\" = ReservationEntry.\"Reservation Status\"::Reservation) and\n ((\"Fixed Date\" = 0D) or (\"Fixed Date\" > ReservationEntry.\"Shipment Date\"))\n@@ -669,6 +670,37 @@ table 99000853 \"Inventory Profile\"\n exit(AutoReservedQty);\n end;\n \n+ local procedure ClearPrimaryOrderFieldsIfDifferentBinding(var ReservationEntry: Record \"Reservation Entry\")\n+ var\n+ OppositeReservationEntry2: Record \"Reservation Entry\";\n+ PrimaryOrderLine: Integer;\n+ begin\n+ if \"Primary Order No.\" = '' then\n+ exit;\n+\n+ if ReservationEntry.Positive then\n+ OppositeReservationEntry2.Get(ReservationEntry.\"Entry No.\", not ReservationEntry.Positive)\n+ else\n+ OppositeReservationEntry2 := ReservationEntry;\n+\n+ if OppositeReservationEntry2.\"Source Type\" <> 5407 then // Database::\"Prod. Order Component\"\n+ PrimaryOrderLine := OppositeReservationEntry2.\"Source Ref. No.\"\n+ else\n+ PrimaryOrderLine := OppositeReservationEntry2.\"Source Prod. Order Line\";\n+\n+ if (OppositeReservationEntry2.\"Source Type\" <> \"Primary Order Type\") or\n+ (OppositeReservationEntry2.\"Source Subtype\" <> \"Primary Order Status\") or\n+ (OppositeReservationEntry2.\"Source ID\" <> \"Primary Order No.\")\n+ then begin\n+ \"Primary Order Type\" := 0;\n+ \"Primary Order Status\" := 0;\n+ \"Primary Order No.\" := '';\n+ \"Primary Order Line\" := 0;\n+ end else\n+ if PrimaryOrderLine <> \"Primary Order Line\" then\n+ \"Primary Order Line\" := 0;\n+ end;\n+\n procedure TransferQtyFromItemTrgkEntry(var TrackingReservationEntry: Record \"Reservation Entry\")\n begin\n \"Original Quantity\" := 0;\ndiff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al\nindex e3a6cf2f..7233ebbe 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al\n@@ -992,7 +992,7 @@ codeunit 99000854 \"Inventory Profile Offsetting\"\n SupplyInvtProfile.SetRange(Binding, DemandInvtProfile.Binding);\n SupplyInvtProfile.SetRange(\"Primary Order Status\", DemandInvtProfile.\"Primary Order Status\");\n SupplyInvtProfile.SetRange(\"Primary Order No.\", DemandInvtProfile.\"Primary Order No.\");\n- SupplyInvtProfile.SetRange(\"Primary Order Line\", DemandInvtProfile.\"Primary Order Line\");\n+ SupplyInvtProfile.SetFilter(\"Primary Order Line\", '%1|%2', DemandInvtProfile.\"Primary Order Line\", 0);\n SupplyInvtProfile.SetRange(\"Source Prod. Order Line\");\n if ((DemandInvtProfile.\"Ref. Order Type\" = DemandInvtProfile.\"Ref. Order Type\"::Assembly) or\n ((DemandInvtProfile.\"Ref. Order Type\" = DemandInvtProfile.\"Ref. Order Type\"::\"Prod. Order\") and\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-227219", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 153.346, "tool_calls": 11, "total_tokens": 129000, "TurnCount": 36}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al\nindex 979cdb45..1254b0d5 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al\n@@ -119,7 +119,7 @@ codeunit 5708 \"Release Transfer Document\"\n if IsHandled then\n exit;\n \n- TransLine.SetLoadFields(\"Document No.\", Quantity, \"Item No.\");\n+ TransLine.SetLoadFields(\"Document No.\", Quantity, \"Item No.\", \"Variant Code\");\n TransLine.SetRange(\"Document No.\", TransHeader.\"No.\");\n TransLine.SetFilter(Quantity, '<>0');\n if TransLine.IsEmpty() then\n@@ -131,6 +131,8 @@ codeunit 5708 \"Release Transfer Document\"\n Item.Get(TransLine.\"Item No.\");\n if Item.IsInventoriableType() then\n TransLine.TestField(\"Unit of Measure Code\");\n+ if Item.IsVariantMandatory() then\n+ TransLine.TestField(\"Variant Code\");\n until TransLine.Next() = 0;\n TransLine.SetFilter(\"Item No.\", '');\n end;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-218253", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 370.573, "tool_calls": 19, "total_tokens": 340700, "TurnCount": 148}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":3,\"report_intent\":2,\"task\":5,\"update_todo\":2,\"view\":6}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesLineReserve.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Document/SalesLineReserve.Codeunit.al\nindex 15a14be1..a5dfbb26 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesLineReserve.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesLineReserve.Codeunit.al\n@@ -1304,6 +1304,9 @@ codeunit 99000832 \"Sales Line-Reserve\"\n if (NewSalesLine.Type <> NewSalesLine.Type::Item) or (NewSalesLine.Quantity = 0) or (NewSalesLine.Reserve <> NewSalesLine.Reserve::Always) then\n exit(false);\n \n+ if NewSalesLine.\"Document Type\" in [NewSalesLine.\"Document Type\"::Invoice, NewSalesLine.\"Document Type\"::\"Credit Memo\"] then\n+ exit(false);\n+\n Item.SetLoadFields(\"Costing Method\");\n Item.Get(NewSalesLine.\"No.\");\n \n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-175765", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 1362.292, "tool_calls": 87, "total_tokens": 5530100, "TurnCount": 269}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":1,\"grep\":29,\"powershell\":4,\"report_intent\":3,\"task\":7,\"update_todo\":4,\"view\":38}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\nindex 7eff4950..5112248b 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\n@@ -7105,9 +7105,13 @@ codeunit 22 \"Item Jnl.-Post Line\"\n OldValueEntry2.Copy(OldValueEntry);\n OldValueEntry2.SetFilter(\"Entry No.\", '<>%1', OldValueEntry.\"Entry No.\");\n OnCalcILEExpectedAmountOnBeforeCalcCostAmounts(OldValueEntry2, OldValueEntry, ItemLedgEntryNo);\n- OldValueEntry2.CalcSums(\"Cost Amount (Expected)\", \"Cost Amount (Expected) (ACY)\");\n+ OldValueEntry2.CalcSums(\n+ \"Cost Amount (Expected)\", \"Cost Amount (Expected) (ACY)\",\n+ \"Cost Amount (Actual)\", \"Cost Amount (Actual) (ACY)\");\n OldValueEntry.\"Cost Amount (Expected)\" += OldValueEntry2.\"Cost Amount (Expected)\";\n OldValueEntry.\"Cost Amount (Expected) (ACY)\" += OldValueEntry2.\"Cost Amount (Expected) (ACY)\";\n+ OldValueEntry.\"Cost Amount (Actual)\" += OldValueEntry2.\"Cost Amount (Actual)\";\n+ OldValueEntry.\"Cost Amount (Actual) (ACY)\" += OldValueEntry2.\"Cost Amount (Actual) (ACY)\";\n end;\n \n local procedure FindOpenOutputEntryNoToApply(ItemJournalLine: Record \"Item Journal Line\"): Integer\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-215972", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 357.847, "tool_calls": 20, "total_tokens": 253500, "TurnCount": 93}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":10,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\nindex 9ab054c5..72f38fac 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\n@@ -1592,6 +1592,8 @@ table 5741 \"Transfer Line\"\n exit;\n \n TestField(\"Item No.\");\n+ GetItem();\n+ Item.TestField(Reserve);\n Clear(Reservation);\n OptionNumber := StrMenu(Text011);\n if OptionNumber > 0 then begin\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-226223", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 228.32, "tool_calls": 20, "total_tokens": 358600, "TurnCount": 48}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":4,\"powershell\":1,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":8}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/Currency/ExchRateAdjmtProcess.Codeunit.al b/App/Layers/W1/BaseApp/Finance/Currency/ExchRateAdjmtProcess.Codeunit.al\nindex 467c235c..1c2a34e1 100644\n--- a/App/Layers/W1/BaseApp/Finance/Currency/ExchRateAdjmtProcess.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/Currency/ExchRateAdjmtProcess.Codeunit.al\n@@ -312,7 +312,8 @@ codeunit 699 \"Exch. Rate Adjmt. Process\"\n if VATPostingSetup.FindSet() then\n repeat\n VATEntryNo := VATEntryNo + 1;\n- Window.Update(1, Round(VATEntryNo / VATEntryNoTotal * 10000, 1));\n+ if VATEntryNoTotal <> 0 then\n+ Window.Update(1, Round(VATEntryNo / VATEntryNoTotal * 10000, 1));\n \n ProcessVATAdjustment(VATPostingSetup);\n until VATPostingSetup.Next() = 0;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-211548", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 176.637, "tool_calls": 15, "total_tokens": 213400, "TurnCount": 27}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":1,\"grep\":2,\"report_intent\":2,\"task\":2,\"update_todo\":2,\"view\":5}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/AllocationAccount/GenJournalAllocAccMgt.Codeunit.al b/App/Layers/W1/BaseApp/Finance/AllocationAccount/GenJournalAllocAccMgt.Codeunit.al\nindex fbe1c90d..2c7bf2b5 100644\n--- a/App/Layers/W1/BaseApp/Finance/AllocationAccount/GenJournalAllocAccMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/AllocationAccount/GenJournalAllocAccMgt.Codeunit.al\n@@ -465,7 +465,7 @@ codeunit 2677 \"Gen. Journal Alloc. Acc. Mgt.\"\n var\n Increment: Integer;\n begin\n- Increment := Round((NextLineNo - CurrentLineNo) / LinesToInsert, 1);\n+ Increment := Round((NextLineNo - CurrentLineNo) / (LinesToInsert + 1), 1);\n if Increment < LinesToInsert then\n exit(-1);\n \n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-211521", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 74.89, "tool_calls": 10, "total_tokens": 160900, "TurnCount": 8}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":6,\"report_intent\":2,\"view\":1}", "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al b/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\nindex 401cabee..0883009a 100644\n--- a/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\n+++ b/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\n@@ -566,7 +566,7 @@ table 5050 Contact\n CalcFormula = min(\"To-do\".Date where(\"Contact Company No.\" = field(\"Company No.\"),\n \"Contact No.\" = field(filter(\"Lookup Contact No.\")),\n Closed = const(false),\n- \"System To-do Type\" = const(\"Contact Attendee\")));\n+ \"System To-do Type\" = filter(Organizer | \"Contact Attendee\")));\n Caption = 'Next Task Date';\n Editable = false;\n FieldClass = FlowField;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-208851", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 77.08500000000001, "tool_calls": 15, "total_tokens": 189600, "TurnCount": 13}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":4,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":4}", "output": "diff --git a/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al b/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al\nindex fb6adbb6..96864380 100644\n--- a/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al\n@@ -563,9 +563,10 @@ table 7000 \"Price List Header\"\n xAmountType: Enum \"Price Amount Type\";\n begin\n xAmountType := \"Amount Type\";\n- if \"Source Type\" in [\"Source Type\"::\"Customer Disc. Group\", \"Source Type\"::\"Customer Price Group\"] then\n- \"Amount Type\" := PriceSource.GetDefaultAmountType()\n- else\n+ if \"Source Type\" in [\"Source Type\"::\"Customer Disc. Group\", \"Source Type\"::\"Customer Price Group\"] then begin\n+ CopyTo(PriceSource);\n+ \"Amount Type\" := PriceSource.GetDefaultAmountType();\n+ end else\n \"Amount Type\" := CalcAmountType();\n if \"Amount Type\" <> xAmountType then\n Modify()\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-224447", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 409.608, "tool_calls": 19, "total_tokens": 270600, "TurnCount": 97}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":2,\"report_intent\":3,\"task\":3,\"update_todo\":3,\"view\":6}", "output": "diff --git a/App/Layers/W1/BaseApp/Foundation/Reporting/ReportSelections.Table.al b/App/Layers/W1/BaseApp/Foundation/Reporting/ReportSelections.Table.al\nindex 7a71bebb..f5691369 100644\n--- a/App/Layers/W1/BaseApp/Foundation/Reporting/ReportSelections.Table.al\n+++ b/App/Layers/W1/BaseApp/Foundation/Reporting/ReportSelections.Table.al\n@@ -1269,7 +1269,8 @@ table 77 \"Report Selections\"\n Database::\"Sales Invoice Header\",\n Database::\"Sales Cr.Memo Header\",\n Database::\"Sales Shipment Header\",\n- Database::\"Return Receipt Header\"];\n+ Database::\"Return Receipt Header\",\n+ Database::\"Issued Reminder Header\"];\n \n OnAfterIsCustomerAccount(DocumentTableId, IsCustomer);\n end;\n@@ -1522,6 +1523,8 @@ table 77 \"Report Selections\"\n TableId := GetAccountTableId(DocumentRecord.Number());\n if TableId = Database::Customer then begin\n FieldName := 'Sell-to Customer No.';\n+ if DocumentRecord.Number() = Database::\"Issued Reminder Header\" then\n+ FieldName := 'Customer No.';\n OnSendEmailDirectlyOnAfterSetFieldName(DocumentRecord.Number(), FieldName);\n if DataTypeManagement.FindfieldByName(DocumentRecord, FieldRef, FieldName) and Customer.Get(Format(FieldRef.Value())) then begin\n SourceTableIDs.Add(Database::Customer);\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-227358", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 86.63, "tool_calls": 12, "total_tokens": 165400, "TurnCount": 9}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":3,\"report_intent\":2,\"update_todo\":2,\"view\":4}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\nindex 61aff663..39eb6982 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\n@@ -1006,6 +1006,8 @@ codeunit 13 \"Gen. Jnl.-Post Batch\"\n exit;\n if not CurrGenJnlTemplate.\"Unlink Inc. Doc On Posting\" then\n exit;\n+ if not GenJnlLine.Find() then\n+ exit;\n GenJnlLine.\"Incoming Document Entry No.\" := 0;\n GenJnlLine.Modify();\n end;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-223790", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 1761.169, "tool_calls": 118, "total_tokens": 10277200, "TurnCount": 155}, "Project": "BaseApp", "ToolUsage": "{\"edit\":8,\"glob\":4,\"grep\":36,\"powershell\":8,\"report_intent\":4,\"store_memory\":1,\"task\":3,\"update_todo\":3,\"view\":51}", "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Location/MfgStockkeepingUnit.TableExt.al b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Location/MfgStockkeepingUnit.TableExt.al\nindex e6df0fd1..de3fc484 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Location/MfgStockkeepingUnit.TableExt.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Location/MfgStockkeepingUnit.TableExt.al\n@@ -8,6 +8,7 @@ using Microsoft.Inventory.Item;\n using Microsoft.Manufacturing.Document;\n using Microsoft.Manufacturing.ProductionBOM;\n using Microsoft.Manufacturing.Routing;\n+using Microsoft.Manufacturing.Setup;\n \n tableextension 99000759 \"Mfg. Stockkeeping Unit\" extends \"Stockkeeping Unit\"\n {\n@@ -62,6 +63,26 @@ tableextension 99000759 \"Mfg. Stockkeeping Unit\" extends \"Stockkeeping Unit\"\n Caption = 'Production BOM No.';\n DataClassification = CustomerContent;\n TableRelation = \"Production BOM Header\";\n+\n+ trigger OnValidate()\n+ var\n+ Item2: Record Item;\n+ ProdBOMHeader: Record \"Production BOM Header\";\n+ MfgSetup: Record \"Manufacturing Setup\";\n+ CalcLowLevelCode: Codeunit \"Calculate Low-Level Code\";\n+ begin\n+ if (\"Production BOM No.\" <> '') and (\"Production BOM No.\" <> xRec.\"Production BOM No.\") then begin\n+ MfgSetup.Get();\n+ if MfgSetup.\"Dynamic Low-Level Code\" then\n+ if ProdBOMHeader.Get(\"Production BOM No.\") then\n+ if ProdBOMHeader.Status = ProdBOMHeader.Status::Certified then begin\n+ Item2.Get(\"Item No.\");\n+ Item2.\"Low-Level Code\" := CalcLowLevelCode.CalcLevels(1, Item2.\"No.\", 0, 0);\n+ Item2.Modify();\n+ CalcLowLevelCode.SetRecursiveLevelsOnBOM(ProdBOMHeader, Item2.\"Low-Level Code\" + 1, false);\n+ end;\n+ end;\n+ end;\n }\n field(99000765; \"Planned Order Receipt (Qty.)\"; Decimal)\n {\ndiff --git a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/CalculateLowLevelCode.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/CalculateLowLevelCode.Codeunit.al\nindex 1dcd950b..ecd61354 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/CalculateLowLevelCode.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/CalculateLowLevelCode.Codeunit.al\n@@ -6,6 +6,7 @@ namespace Microsoft.Manufacturing.ProductionBOM;\n \n using Microsoft.Inventory.BOM;\n using Microsoft.Inventory.Item;\n+using Microsoft.Inventory.Location;\n using Microsoft.Manufacturing.Setup;\n \n codeunit 99000793 \"Calculate Low-Level Code\"\n@@ -42,6 +43,7 @@ codeunit 99000793 \"Calculate Low-Level Code\"\n Item2: Record Item;\n ProdBOMLine: Record \"Production BOM Line\";\n AsmBOMComp: Record \"BOM Component\";\n+ StockkeepingUnit: Record \"Stockkeeping Unit\";\n ActLevel: Integer;\n TotalLevels: Integer;\n CalculateDeeperLevel: Boolean;\n@@ -68,6 +70,16 @@ codeunit 99000793 \"Calculate Low-Level Code\"\n if ActLevel > TotalLevels then\n TotalLevels := ActLevel;\n until Item2.Next() = 0;\n+ StockkeepingUnit.SetRange(\"Production BOM No.\", No);\n+ if StockkeepingUnit.FindSet() then\n+ repeat\n+ if Item2.Get(StockkeepingUnit.\"Item No.\") then\n+ if Item2.\"Production BOM No.\" <> No then begin\n+ ActLevel := CalcLevels(Type::Item, StockkeepingUnit.\"Item No.\", Level + 1, LevelDepth + 1);\n+ if ActLevel > TotalLevels then\n+ TotalLevels := ActLevel;\n+ end;\n+ until StockkeepingUnit.Next() = 0;\n OnCalcLevelsForProdBOM(Item2, No, Level, LevelDepth, TotalLevels);\n end;\n Type::Assembly:\ndiff --git a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/LowLevelCodeCalculator.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/LowLevelCodeCalculator.Codeunit.al\nindex fcabc2e0..7bfd1ca9 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/LowLevelCodeCalculator.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/LowLevelCodeCalculator.Codeunit.al\n@@ -6,6 +6,7 @@ namespace Microsoft.Inventory.BOM.Tree;\n \n using Microsoft.Inventory.BOM;\n using Microsoft.Inventory.Item;\n+using Microsoft.Inventory.Location;\n using Microsoft.Manufacturing.ProductionBOM;\n using System.Threading;\n using System.Utilities;\n@@ -88,6 +89,7 @@ codeunit 3687 \"Low-Level Code Calculator\"\n begin\n // Set nodes on the tree\n PopulateFromItemAndRelatedBOMs(BOMStructure);\n+ PopulateFromSKUAndRelatedBOMs(BOMStructure);\n PopulateFromProductionBOMAndLines(BOMStructure);\n PopulateFromBOMComponents(BOMStructure);\n end;\n@@ -192,6 +194,36 @@ codeunit 3687 \"Low-Level Code Calculator\"\n ItemProductionBOMs.Close();\n end;\n \n+ local procedure PopulateFromSKUAndRelatedBOMs(BOMStructure: Codeunit \"BOM Tree\")\n+ var\n+ StockkeepingUnit: Record \"Stockkeeping Unit\";\n+ Item: Record Item;\n+ ProductionBOMHeader: Record \"Production BOM Header\";\n+ VersionManagement: Codeunit VersionManagement;\n+ Parent: Codeunit \"BOM Node\";\n+ Child: Codeunit \"BOM Node\";\n+ begin\n+ StockkeepingUnit.SetFilter(\"Production BOM No.\", '<> %1', '');\n+ if StockkeepingUnit.FindSet() then\n+ repeat\n+ Item.SetLoadFields(\"No.\", \"Low-Level Code\", \"Production BOM No.\");\n+ if Item.Get(StockkeepingUnit.\"Item No.\") then\n+ if Item.\"Production BOM No.\" <> StockkeepingUnit.\"Production BOM No.\" then\n+ if ProductionBOMHeader.Get(StockkeepingUnit.\"Production BOM No.\") then\n+ if (ProductionBOMHeader.Status = ProductionBOMHeader.Status::Certified) or\n+ (VersionManagement.GetBOMVersion(StockkeepingUnit.\"Production BOM No.\", WorkDate(), true) <> '')\n+ then begin\n+ Parent.CreateForItem(Item.\"No.\", Item.\"Low-Level Code\", LowLevelCodeParam);\n+ Child.CreateForProdBOM(ProductionBOMHeader.\"No.\", ProductionBOMHeader.\"Low-Level Code\", LowLevelCodeParam);\n+\n+ AddChildToParent(BOMStructure, Parent, Child);\n+\n+ Clear(Parent);\n+ Clear(Child);\n+ end;\n+ until StockkeepingUnit.Next() = 0;\n+ end;\n+\n local procedure PopulateFromProductionBOMAndLines(BOMStructure: Codeunit \"BOM Tree\")\n var\n ProductionBOMHeader: Record \"Production BOM Header\";\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-207177", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 118.062, "tool_calls": 16, "total_tokens": 320000, "TurnCount": 22}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"powershell\":1,\"report_intent\":2,\"task\":1,\"update_todo\":4,\"view\":7}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\nindex a84b0558..35987dc2 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n@@ -42,6 +42,9 @@ page 7504 \"Item Attribute Value List\"\n DeleteItemAttributeValueMapping(ItemAttribute.ID);\n end;\n \n+ if Rec.Value = '' then\n+ exit;\n+\n if not Rec.FindAttributeValue(ItemAttributeValue) then\n Rec.InsertItemAttributeValue(ItemAttributeValue, Rec);\n \n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-219082", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 323.525, "tool_calls": 36, "total_tokens": 456900, "TurnCount": 109}, "Project": "BaseApp", "ToolUsage": "{\"edit\":4,\"grep\":6,\"powershell\":2,\"read_agent\":3,\"report_intent\":2,\"task\":5,\"update_todo\":4,\"view\":10}", "output": "diff --git a/App/Layers/W1/BaseApp/Service/Document/ServiceOrder.Page.al b/App/Layers/W1/BaseApp/Service/Document/ServiceOrder.Page.al\nindex 130ccae8..075f5ac1 100644\n--- a/App/Layers/W1/BaseApp/Service/Document/ServiceOrder.Page.al\n+++ b/App/Layers/W1/BaseApp/Service/Document/ServiceOrder.Page.al\n@@ -1356,6 +1356,7 @@ page 5900 \"Service Order\"\n ServDocumentPrint: Codeunit \"Serv. Document Print\";\n begin\n CurrPage.Update(true);\n+ Commit();\n ServDocumentPrint.PrintServiceHeader(Rec);\n end;\n }\ndiff --git a/App/Layers/W1/BaseApp/Service/Document/ServiceOrders.Page.al b/App/Layers/W1/BaseApp/Service/Document/ServiceOrders.Page.al\nindex 87cde3aa..5e1e115d 100644\n--- a/App/Layers/W1/BaseApp/Service/Document/ServiceOrders.Page.al\n+++ b/App/Layers/W1/BaseApp/Service/Document/ServiceOrders.Page.al\n@@ -593,6 +593,7 @@ page 9318 \"Service Orders\"\n ServDocumentPrint: Codeunit \"Serv. Document Print\";\n begin\n CurrPage.Update(true);\n+ Commit();\n ServDocumentPrint.PrintServiceHeader(Rec);\n end;\n }\ndiff --git a/App/Layers/W1/BaseApp/Service/Document/ServiceQuote.Page.al b/App/Layers/W1/BaseApp/Service/Document/ServiceQuote.Page.al\nindex 6d9579d8..018b31dd 100644\n--- a/App/Layers/W1/BaseApp/Service/Document/ServiceQuote.Page.al\n+++ b/App/Layers/W1/BaseApp/Service/Document/ServiceQuote.Page.al\n@@ -927,6 +927,7 @@ page 5964 \"Service Quote\"\n ServDocumentPrint: Codeunit \"Serv. Document Print\";\n begin\n CurrPage.Update(true);\n+ Commit();\n ServDocumentPrint.PrintServiceHeader(Rec);\n end;\n }\ndiff --git a/App/Layers/W1/BaseApp/Service/Document/ServiceQuotes.Page.al b/App/Layers/W1/BaseApp/Service/Document/ServiceQuotes.Page.al\nindex ca52ac21..1a7b2a98 100644\n--- a/App/Layers/W1/BaseApp/Service/Document/ServiceQuotes.Page.al\n+++ b/App/Layers/W1/BaseApp/Service/Document/ServiceQuotes.Page.al\n@@ -364,6 +364,7 @@ page 9317 \"Service Quotes\"\n ServDocumentPrint: Codeunit \"Serv. Document Print\";\n begin\n CurrPage.Update(true);\n+ Commit();\n ServDocumentPrint.PrintServiceHeader(Rec);\n end;\n }\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-224009", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 434.585, "tool_calls": 30, "total_tokens": 761200, "TurnCount": 91}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":8,\"report_intent\":2,\"task\":3,\"update_todo\":4,\"view\":12}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/ReservationEntry.Table.al b/App/Layers/W1/BaseApp/Inventory/Tracking/ReservationEntry.Table.al\nindex c1b41b15..a37726d6 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/ReservationEntry.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/ReservationEntry.Table.al\n@@ -914,7 +914,7 @@ table 337 \"Reservation Entry\"\n ReservEntry.SetFilter(\"Entry No.\", '<>%1', \"Entry No.\");\n ReservEntry.SetSourceFilter(\"Source Type\", \"Source Subtype\", \"Source ID\", \"Source Ref. No.\", false);\n ReservEntry.SetSourceFilter(\"Source Batch Name\", \"Source Prod. Order Line\");\n- ReservEntry.SetRange(\"Reservation Status\", \"Reservation Status\"::Reservation);\n+ ReservEntry.SetFilter(\"Reservation Status\", '%1|%2', \"Reservation Status\"::Reservation, \"Reservation Status\"::Tracking);\n ReservEntry.CalcSums(\"Quantity (Base)\", Quantity);\n exit(\n Round((ReservEntry.\"Quantity (Base)\" + \"Quantity (Base)\") / \"Qty. per Unit of Measure\", UOMMgt.QtyRndPrecision()) -\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-175577", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 451.33299999999997, "tool_calls": 29, "total_tokens": 752100, "TurnCount": 61}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":1,\"grep\":5,\"powershell\":3,\"report_intent\":2,\"task\":2,\"update_todo\":4,\"view\":11}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobCreateInvoice.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobCreateInvoice.Codeunit.al\nindex 1e465e16..fefa8626 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobCreateInvoice.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobCreateInvoice.Codeunit.al\n@@ -384,6 +384,8 @@ codeunit 1002 \"Job Create-Invoice\"\n \n local procedure CreateNewInvoice(var JobTask: Record \"Job Task\"; InvoicePerTask: Boolean; var OldJobNo: Code[20]; var OldJobTaskNo: Code[20]; LastJobTask: Boolean): Boolean\n var\n+ Job: Record Job;\n+ OldJobTask: Record \"Job Task\";\n NewInvoice: Boolean;\n IsHandled: Boolean;\n begin\n@@ -402,6 +404,15 @@ codeunit 1002 \"Job Create-Invoice\"\n if not InvoicePerTask then\n if OldJobNo <> JobTask.\"Job No.\" then\n NewInvoice := true;\n+ if NewInvoice and InvoicePerTask and (OldJobNo = JobTask.\"Job No.\") then\n+ if Job.Get(JobTask.\"Job No.\") then\n+ if Job.\"Task Billing Method\" = Job.\"Task Billing Method\"::\"Multiple customers\" then\n+ if OldJobTask.Get(OldJobNo, OldJobTaskNo) then\n+ if (OldJobTask.\"Sell-to Customer No.\" = JobTask.\"Sell-to Customer No.\") and\n+ (OldJobTask.\"Bill-to Customer No.\" = JobTask.\"Bill-to Customer No.\") and\n+ (OldJobTask.\"Invoice Currency Code\" = JobTask.\"Invoice Currency Code\")\n+ then\n+ NewInvoice := false;\n end;\n OldJobNo := JobTask.\"Job No.\";\n OldJobTaskNo := JobTask.\"Job Task No.\";\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-195193", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 379.211, "tool_calls": 52, "total_tokens": 847900, "TurnCount": 45}, "Project": "ExcelReports", "ToolUsage": "{\"edit\":8,\"glob\":6,\"grep\":19,\"powershell\":2,\"report_intent\":3,\"task\":2,\"update_todo\":2,\"view\":10}", "output": "diff --git a/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al b/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\nindex 00c238ae..b7bea519 100644\n--- a/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\n+++ b/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\n@@ -44,10 +44,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Net Change\" > 0) then\n- Validate(\"Net Change (Debit)\", \"Net Change\")\n- else\n+ if (\"Net Change\" > 0) then begin\n+ Validate(\"Net Change (Debit)\", \"Net Change\");\n+ Validate(\"Net Change (Credit)\", 0);\n+ end else begin\n+ Validate(\"Net Change (Debit)\", 0);\n Validate(\"Net Change (Credit)\", -\"Net Change\");\n+ end;\n end;\n }\n field(11; \"Net Change (Debit)\"; Decimal)\n@@ -64,10 +67,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Balance\" > 0) then\n- Validate(\"Balance (Debit)\", \"Balance\")\n- else\n+ if (\"Balance\" > 0) then begin\n+ Validate(\"Balance (Debit)\", \"Balance\");\n+ Validate(\"Balance (Credit)\", 0);\n+ end else begin\n+ Validate(\"Balance (Debit)\", 0);\n Validate(\"Balance (Credit)\", -\"Balance\");\n+ end;\n end;\n }\n field(14; \"Balance (Debit)\"; Decimal)\n@@ -100,10 +106,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Net\" > 0) then\n- Validate(\"Last Period Net (Debit)\", \"Last Period Net\")\n- else\n+ if (\"Last Period Net\" > 0) then begin\n+ Validate(\"Last Period Net (Debit)\", \"Last Period Net\");\n+ Validate(\"Last Period Net (Credit)\", 0);\n+ end else begin\n+ Validate(\"Last Period Net (Debit)\", 0);\n Validate(\"Last Period Net (Credit)\", -\"Last Period Net\");\n+ end;\n end;\n }\n field(51; \"Last Period Net (Debit)\"; Decimal)\n@@ -120,10 +129,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Bal.\" > 0) then\n- Validate(\"Last Period Bal. (Debit)\", \"Last Period Bal.\")\n- else\n+ if (\"Last Period Bal.\" > 0) then begin\n+ Validate(\"Last Period Bal. (Debit)\", \"Last Period Bal.\");\n+ Validate(\"Last Period Bal. (Credit)\", 0);\n+ end else begin\n+ Validate(\"Last Period Bal. (Debit)\", 0);\n Validate(\"Last Period Bal. (Credit)\", -\"Last Period Bal.\");\n+ end;\n end;\n }\n field(61; \"Last Period Bal. (Debit)\"; Decimal)\n@@ -156,10 +168,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Net Change\" > 0) then\n- Validate(\"Net Change (Debit) (ACY)\", \"Net Change (ACY)\")\n- else\n+ if (\"Net Change (ACY)\" > 0) then begin\n+ Validate(\"Net Change (Debit) (ACY)\", \"Net Change (ACY)\");\n+ Validate(\"Net Change (Credit) (ACY)\", 0);\n+ end else begin\n+ Validate(\"Net Change (Debit) (ACY)\", 0);\n Validate(\"Net Change (Credit) (ACY)\", -\"Net Change (ACY)\");\n+ end;\n end;\n }\n field(111; \"Net Change (Debit) (ACY)\"; Decimal)\n@@ -176,10 +191,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Balance\" > 0) then\n- Validate(\"Balance (Debit) (ACY)\", \"Balance (ACY)\")\n- else\n+ if (\"Balance (ACY)\" > 0) then begin\n+ Validate(\"Balance (Debit) (ACY)\", \"Balance (ACY)\");\n+ Validate(\"Balance (Credit) (ACY)\", 0);\n+ end else begin\n+ Validate(\"Balance (Debit) (ACY)\", 0);\n Validate(\"Balance (Credit) (ACY)\", -\"Balance (ACY)\");\n+ end;\n end;\n }\n field(114; \"Balance (Debit) (ACY)\"; Decimal)\n@@ -196,10 +214,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Net\" > 0) then\n- Validate(\"Last Period Net (Debit) (ACY)\", \"Last Period Net (ACY)\")\n- else\n+ if (\"Last Period Net (ACY)\" > 0) then begin\n+ Validate(\"Last Period Net (Debit) (ACY)\", \"Last Period Net (ACY)\");\n+ Validate(\"Last Period Net (Credit) (ACY)\", 0);\n+ end else begin\n+ Validate(\"Last Period Net (Debit) (ACY)\", 0);\n Validate(\"Last Period Net (Credit) (ACY)\", -\"Last Period Net (ACY)\");\n+ end;\n end;\n }\n field(151; \"Last Period Net (Debit) (ACY)\"; Decimal)\n@@ -216,10 +237,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Bal.\" > 0) then\n- Validate(\"Last Period Bal. (Debit) (ACY)\", \"Last Period Bal. (ACY)\")\n- else\n+ if (\"Last Period Bal. (ACY)\" > 0) then begin\n+ Validate(\"Last Period Bal. (Debit) (ACY)\", \"Last Period Bal. (ACY)\");\n+ Validate(\"Last Period Bal. (Cred.) (ACY)\", 0);\n+ end else begin\n+ Validate(\"Last Period Bal. (Debit) (ACY)\", 0);\n Validate(\"Last Period Bal. (Cred.) (ACY)\", -\"Last Period Bal. (ACY)\");\n+ end;\n end;\n }\n field(161; \"Last Period Bal. (Debit) (ACY)\"; Decimal)\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-210200", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 463.348, "tool_calls": 22, "total_tokens": 409800, "TurnCount": 126}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"glob\":1,\"grep\":3,\"report_intent\":2,\"task\":4,\"update_todo\":3,\"view\":7}", "output": "diff --git a/App/Layers/W1/BaseApp/Service/Document/StandardServiceCode.Table.al b/App/Layers/W1/BaseApp/Service/Document/StandardServiceCode.Table.al\nindex 986aeff9..d79bdd55 100644\n--- a/App/Layers/W1/BaseApp/Service/Document/StandardServiceCode.Table.al\n+++ b/App/Layers/W1/BaseApp/Service/Document/StandardServiceCode.Table.al\n@@ -192,6 +192,8 @@ table 5996 \"Standard Service Code\"\n OnBeforeInsertServLine(ServLine);\n ServLine.Insert(true);\n InsertExtendedText(ServLine);\n+ if (ServLine.Type = ServLine.Type::Item) and (ServLine.Reserve = ServLine.Reserve::Always) then\n+ ServLine.AutoReserve(false);\n end;\n until StdServLine.Next() = 0;\n end;\ndiff --git a/App/Layers/W1/BaseApp/Service/Item/StandardServiceItemGrCode.Table.al b/App/Layers/W1/BaseApp/Service/Item/StandardServiceItemGrCode.Table.al\nindex 33f69be4..78429427 100644\n--- a/App/Layers/W1/BaseApp/Service/Item/StandardServiceItemGrCode.Table.al\n+++ b/App/Layers/W1/BaseApp/Service/Item/StandardServiceItemGrCode.Table.al\n@@ -160,6 +160,8 @@ table 5998 \"Standard Service Item Gr. Code\"\n OnBeforeInsertServLine(ServLine);\n ServLine.Insert(true);\n InsertExtendedText(ServLine);\n+ if (ServLine.Type = ServLine.Type::Item) and (ServLine.Reserve = ServLine.Reserve::Always) then\n+ ServLine.AutoReserve(false);\n end;\n until StdServLine.Next() = 0;\n end;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-214926", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 344.413, "tool_calls": 9, "total_tokens": 116100, "TurnCount": 86}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":1,\"report_intent\":2,\"task\":2,\"update_todo\":2,\"view\":1}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al b/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\nindex ebeb6ca1..b522f79e 100644\n--- a/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\n@@ -2364,7 +2364,7 @@ table 18 Customer\n RetRcdNotInvAmountLCY := GetReturnRcdNotInvAmountLCY();\n \n TotalAmountLCY :=\n- \"Balance (LCY)\" + \"Outstanding Orders (LCY)\" + \"Shipped Not Invoiced (LCY)\" + \"Outstanding Invoices (LCY)\" +\n+ \"Balance (LCY)\" + \"Outstanding Orders (LCY)\" + \"Shipped Not Invoiced (LCY)\" + \"Outstanding Invoices (LCY)\" -\n SalesOutstandingAmountFromShipment - InvoicedPrepmtAmountLCY - RetRcdNotInvAmountLCY + AdditionalAmountLCY;\n \n OnAfterGetTotalAmountLCYCommon(Rec, TotalAmountLCY);\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-224668", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 28, "tool_calls": 5, "total_tokens": 62274, "TurnCount": 4}, "Project": "EssentialBusinessHeadlines", "ToolUsage": "{\"edit\":1,\"glob\":1,\"grep\":1,\"report_intent\":1,\"view\":1}", "output": "diff --git a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\nindex 831aa80e..10436a09 100644\n--- a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n+++ b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n@@ -677,7 +677,7 @@ codeunit 1437 \"Essential Bus. Headline Mgt.\"\n var\n EssentialBusinessHeadline: Record \"Ess. Business Headline Per Usr\";\n begin\n- if EssentialBusinessHeadline.Get(HeadlineName) then begin\n+ if EssentialBusinessHeadline.Get(HeadlineName, UserSecurityId()) then begin\n EssentialBusinessHeadline.Validate(\"Headline Visible\", false);\n EssentialBusinessHeadline.Modify();\n end;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-176082", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 206.583, "tool_calls": 18, "total_tokens": 282200, "TurnCount": 50}, "Project": "BaseApp", "ToolUsage": "{\"edit\":3,\"grep\":2,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":6}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\nindex 5fe44b45..609efe1c 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\n@@ -1304,7 +1304,6 @@ table 5740 \"Transfer Header\"\n TempPurchRcptHeader: Record \"Purch. Rcpt. Header\" temporary;\n PostedPurchaseReceipts: Page \"Posted Purchase Receipts\";\n begin\n- PurchRcptHeader.SetRange(\"Location Code\", \"Transfer-from Code\");\n PostedPurchaseReceipts.SetTableView(PurchRcptHeader);\n PostedPurchaseReceipts.LookupMode := true;\n if PostedPurchaseReceipts.RunModal() = ACTION::LookupOK then begin\n@@ -1326,7 +1325,6 @@ table 5740 \"Transfer Header\"\n \"Document No.\",\n SelectionFilterManagement.GetSelectionFilter(RecRef, TempPurchRcptHeader.FieldNo(\"No.\")));\n PurchRcptLine.SetRange(Type, PurchRcptLine.Type::Item);\n- PurchRcptLine.SetRange(\"Location Code\", \"Transfer-from Code\");\n PostedPurchaseReceiptLines.SetTableView(PurchRcptLine);\n PostedPurchaseReceiptLines.LookupMode := true;\n if PostedPurchaseReceiptLines.RunModal() = ACTION::LookupOK then begin\n@@ -1370,11 +1368,16 @@ table 5740 \"Transfer Header\"\n TransferLine.\"Shortcut Dimension 1 Code\" := PurchRcptLine.\"Shortcut Dimension 1 Code\";\n TransferLine.\"Shortcut Dimension 2 Code\" := PurchRcptLine.\"Shortcut Dimension 2 Code\";\n TransferLine.\"Dimension Set ID\" := PurchRcptLine.\"Dimension Set ID\";\n- OnAddTransferLineFromReceiptLineOnBeforeTransferLineInsert(TransferLine, PurchRcptLine, Rec);\n- TransferLine.Insert(true);\n \n PurchRcptLine.FilterPstdDocLnItemLedgEntries(ItemLedgerEntry);\n ItemTrackingDocMgt.CopyItemLedgerEntriesToTemp(TempItemLedgerEntry, ItemLedgerEntry);\n+ if ItemLedgerEntry.FindFirst() then\n+ if (ItemLedgerEntry.\"Lot No.\" = '') and (ItemLedgerEntry.\"Serial No.\" = '') then\n+ TransferLine.Validate(\"Appl.-to Item Entry\", ItemLedgerEntry.\"Entry No.\");\n+\n+ OnAddTransferLineFromReceiptLineOnBeforeTransferLineInsert(TransferLine, PurchRcptLine, Rec);\n+ TransferLine.Insert(true);\n+\n ItemTrackingMgt.CopyItemLedgEntryTrkgToTransferLine(TempItemLedgerEntry, TransferLine);\n \n OnAfterAddTransferLineFromReceiptLine(TransferLine, PurchRcptLine, TempItemLedgerEntry, Rec);\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-209835", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 110.413, "tool_calls": 11, "total_tokens": 143500, "TurnCount": 16}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":1,\"grep\":1,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\nindex 78996b41..43c6dbb9 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\n@@ -473,7 +473,8 @@ report 99001020 \"Carry Out Action Msg. - Plan.\"\n if CurrReqWkshTemp <> '' then\n \"Requisition Line\".SetRange(\"Journal Batch Name\", CurrReqWkshName);\n \"Requisition Line\".SetRange(Type, \"Requisition Line\".Type::Item);\n- \"Requisition Line\".SetFilter(\"Action Message\", '<>%1', \"Requisition Line\".\"Action Message\"::\" \");\n+ if \"Requisition Line\".GetFilter(\"Action Message\") = '' then\n+ \"Requisition Line\".SetFilter(\"Action Message\", '<>%1', \"Requisition Line\".\"Action Message\"::\" \");\n OnAfterSetReqLineFilters(\"Requisition Line\");\n end;\n \n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-226448", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 1128.363, "tool_calls": 93, "total_tokens": 5449500, "TurnCount": 156}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":40,\"powershell\":1,\"report_intent\":2,\"task\":3,\"update_todo\":4,\"view\":42}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/VATAmountLine.Table.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/VATAmountLine.Table.al\nindex 5706c4b1..2552293d 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/VATAmountLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/VATAmountLine.Table.al\n@@ -687,6 +687,7 @@ table 290 \"VAT Amount Line\"\n OnUpdateLinesOnAfterCalcVATAmount(Rec, PrevVATAmountLine, Currency, VATBaseDiscountPerc, PricesIncludingVAT);\n \"Amount Including VAT\" := \"VAT Base\" + \"VAT Amount\";\n OnUpdateLinesOnAfterCalcAmountIncludingVATNormalVAT(Rec, PrevVATAmountLine, Currency, VATBaseDiscountPerc, PricesIncludingVAT);\n+ NonDeductibleVAT.UpdateNonDeductibleAmountsWithDiffInVATAmountLine(Rec, Currency);\n if Positive then\n PrevVATAmountLine.Init()\n else begin\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-192565", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 306.267, "tool_calls": 15, "total_tokens": 251500, "TurnCount": 71}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":2,\"report_intent\":2,\"task\":2,\"update_todo\":4,\"view\":4}", "output": "diff --git a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\nindex fb45dbcf..b59c9d7a 100644\n--- a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n@@ -5365,6 +5365,7 @@ table 39 \"Purchase Line\"\n Amount := 0;\n \"VAT Base Amount\" := 0;\n \"Amount Including VAT\" := 0;\n+ NonDeductibleVAT.Update(Rec, Currency);\n OnUpdateVATAmountsOnBeforePurchLineModify(Rec, PurchLine2);\n if (Quantity = 0) and (xRec.Quantity <> 0) and (xRec.Amount <> 0) then begin\n if \"Line No.\" <> 0 then\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-206977", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 79.026, "tool_calls": 19, "total_tokens": 158600, "TurnCount": 9}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":2,\"grep\":10,\"report_intent\":2,\"view\":4}", "output": "diff --git a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\nindex 0877c357..dbb3e2af 100644\n--- a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\n+++ b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\n@@ -161,7 +161,14 @@ page 903 \"Assembly Lines\"\n AssemblyHeader: Record \"Assembly Header\";\n begin\n AssemblyHeader.Get(Rec.\"Document Type\", Rec.\"Document No.\");\n- PAGE.Run(PAGE::\"Assembly Order\", AssemblyHeader);\n+ case Rec.\"Document Type\" of\n+ Rec.\"Document Type\"::Quote:\n+ PAGE.Run(PAGE::\"Assembly Quote\", AssemblyHeader);\n+ Rec.\"Document Type\"::Order:\n+ PAGE.Run(PAGE::\"Assembly Order\", AssemblyHeader);\n+ Rec.\"Document Type\"::\"Blanket Order\":\n+ PAGE.Run(PAGE::\"Blanket Assembly Order\", AssemblyHeader);\n+ end;\n end;\n }\n action(\"Reservation Entries\")\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-211710", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 77.781, "tool_calls": 8, "total_tokens": 101400, "TurnCount": 13}, "Project": "Shopify", "ToolUsage": "{\"edit\":1,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":2}", "output": "diff --git a/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al b/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al\nindex 773ba116..52bfd17f 100644\n--- a/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al\n+++ b/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al\n@@ -17,7 +17,7 @@ report 30118 \"Shpfy Suggest Payments\"\n dataitem(OrderTransaction; \"Shpfy Order Transaction\")\n {\n RequestFilterFields = \"Created At\";\n- DataItemTableView = sorting(Type) where(Type = filter(Capture | Sale | Refund));\n+ DataItemTableView = sorting(Type) where(Type = filter(Capture | Sale | Refund), Status = const(Success));\n \n trigger OnAfterGetRecord()\n begin\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-179733", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 211.145, "tool_calls": 21, "total_tokens": 398300, "TurnCount": 36}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":3,\"grep\":4,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":6}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Job/JobTask.Table.al b/App/Layers/W1/BaseApp/Projects/Project/Job/JobTask.Table.al\nindex ca6d73fa..c68c3ce3 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Job/JobTask.Table.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Job/JobTask.Table.al\n@@ -1225,6 +1225,8 @@ table 1001 \"Job Task\"\n exit;\n if Job.\"Task Billing Method\" = Job.\"Task Billing Method\"::\"One customer\" then\n exit;\n+ if \"Job Task Type\" <> \"Job Task Type\"::Posting then\n+ exit;\n \n SetHideValidationDialog(true);\n if Job.\"Sell-to Customer No.\" <> '' then\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-222488", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 270.931, "tool_calls": 23, "total_tokens": 389900, "TurnCount": 66}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":9,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":6}", "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePickSubform.Page.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePickSubform.Page.al\nindex 12c3ac91..0e07335e 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePickSubform.Page.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePickSubform.Page.al\n@@ -560,6 +560,8 @@ page 5780 \"Whse. Pick Subform\"\n exit;\n \n WhseActivLine.Copy(Rec);\n+ WhseActivLine.FilterGroup(4);\n+ WhseActivLine.SetRange(Breakbulk);\n WhseActivLine.FilterGroup(3);\n WhseActivLine.SetRange(Breakbulk);\n WhseActivLine.FilterGroup(0);\ndiff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al\nindex 07db37f9..a70aef62 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al\n@@ -485,6 +485,8 @@ page 5771 \"Whse. Put-away Subform\"\n WhseActivLine: Record \"Warehouse Activity Line\";\n begin\n WhseActivLine.Copy(Rec);\n+ WhseActivLine.FilterGroup(4);\n+ WhseActivLine.SetRange(Breakbulk);\n WhseActivLine.FilterGroup(3);\n WhseActivLine.SetRange(Breakbulk);\n WhseActivLine.FilterGroup(0);\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-176150", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 205.816, "tool_calls": 10, "total_tokens": 104100, "TurnCount": 62}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"report_intent\":2,\"store_memory\":1,\"task\":1,\"update_todo\":3,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al b/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\nindex 55d3fbad..933493a5 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\n@@ -1016,6 +1016,7 @@ page 5510 \"Production Journal\"\n protected procedure MarkRelevantRec(var ItemJournalLine: Record \"Item Journal Line\")\n begin\n ItemJournalLine := Rec;\n+ ItemJournalLine.CopyFilters(Rec);\n if ItemJournalLine.FindSet() then begin\n repeat\n case ItemJournalLine.\"Entry Type\" of\n", "error_message": null} diff --git a/notebooks/result/bug-fix/copilot-cf-opus-4-6/21822868049.jsonl b/notebooks/result/bug-fix/copilot-cf-opus-4-6/21822868049.jsonl new file mode 100644 index 000000000..cd187899c --- /dev/null +++ b/notebooks/result/bug-fix/copilot-cf-opus-4-6/21822868049.jsonl @@ -0,0 +1,101 @@ +{"InstanceID": "microsoftInternal__NAV-191624", "scores": {"BuildRate": 0, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 57, "tool_calls": 10, "total_tokens": 161600, "TurnCount": 8}, "Project": "ExcelReports", "ToolUsage": "{\"edit\":2,\"grep\":2,\"report_intent\":2,\"update_todo\":2,\"view\":2}", "output": "diff --git a/App/Apps/W1/ExcelReports/app/src/Financials/EXRFixedAssetAnalysisExcel.Report.al b/App/Apps/W1/ExcelReports/app/src/Financials/EXRFixedAssetAnalysisExcel.Report.al\nindex 686231b5..fff2ba74 100644\n--- a/App/Apps/W1/ExcelReports/app/src/Financials/EXRFixedAssetAnalysisExcel.Report.al\n+++ b/App/Apps/W1/ExcelReports/app/src/Financials/EXRFixedAssetAnalysisExcel.Report.al\n@@ -32,6 +32,16 @@ report 4412 \"EXR Fixed Asset Analysis Excel\"\n column(DisposalDateField; DisposalDate) { }\n column(GlobalDimension1Code; \"Global Dimension 1 Code\") { IncludeCaption = true; }\n column(GlobalDimension2Code; \"Global Dimension 2 Code\") { IncludeCaption = true; }\n+ trigger OnAfterGetRecord()\n+ var\n+ FADepreciationBook: Record \"FA Depreciation Book\";\n+ begin\n+ if FADepreciationBook.Get(\"No.\", DepreciationBookCode) then begin\n+ AcquisitionDate := FADepreciationBook.\"Acquisition Date\";\n+ DisposalDate := FADepreciationBook.\"Disposal Date\";\n+ end;\n+ end;\n+\n dataitem(FAPostingType; \"FA Posting Type\")\n {\n DataItemTableView = where(\"FA Entry\" = const(true));\n@@ -50,8 +60,6 @@ report 4412 \"EXR Fixed Asset Analysis Excel\"\n if ShouldSkipRecord() then\n CurrReport.Skip();\n FADepreciationBook.Get(FixedAssetData.\"No.\", DepreciationBookCode);\n- AcquisitionDate := FADepreciationBook.\"Acquisition Date\";\n- DisposalDate := FADepreciationBook.\"Disposal Date\";\n if BudgetReport then\n BudgetDepreciation.Calculate(FixedAssetData.\"No.\", StartingDate - 1, EndingDate, DepreciationBookCode, BeforeAmount, EndingAmount);\n \n", "error_message": "Build or publish failed for App\\Apps\\W1\\ExcelReports\\app:\nC:\\Source\\App\\Apps\\W1\\ExcelReports\\app\\src\\Financials\\EXRFixedAssetAnalysisExcel.Report.al(45,13): error AL0104: Syntax error, '}' expected\nC:\\Source\\App\\Apps\\W1\\ExcelReports\\app\\src\\Financials\\EXRFixedAssetAnalysisExcel.Report.al(77,5): error AL0198: Expected one of the application object keywords (table, tableextension, page, pageextension, pagecustomization, profile, profileextension, codeunit, report, reportextension, xmlport, query, controladdin, dotnet, enum, enumextension, interface, permissionset, permissionsetextension, entitlement)\nC:\\Source\\App\\Apps\\W1\\ExcelReports\\app\\src\\Financials\\EXRFixedAssetAnalysisExcel.Report.al(223,35): error AL0114: Syntax error, integer literal expected\nC:\\Source\\App\\Apps\\W1\\ExcelReports\\app\\src\\Financials\\EXRFixedAssetAnalysisExcel.Report.al(223,54): error AL0104: Syntax error, '{' expected\nC:\\Source\\App\\Apps\\W1\\ExcelReports\\app\\src\\Financials\\EXRFixedAssetAnalysisExcel.Report.al(223,54): error AL0104: Syntax error, '}' expected\nC:\\Source\\App\\Apps\\W1\\ExcelReports\\app\\src\\Financials\\EXRFixedAssetAnalysisExcel.Report.al(223,54): error AL0198: Expected one of the application object keywords (table, tableextension, page, pageextension, pagecustomization, profile, profileextension, codeunit, report, reportextension, xmlport, query, controladdin, dotnet, enum, enumextension, interface, permissionset, permissionsetextension, entitlement)"} +{"InstanceID": "microsoftInternal__NAV-206527", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 615.468, "tool_calls": 62, "total_tokens": 2133800, "TurnCount": 56}, "Project": "BaseApp", "ToolUsage": "{\"edit\":5,\"grep\":22,\"powershell\":3,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":26}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al b/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\nindex e3280001..239b4ab8 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\n@@ -182,28 +182,11 @@ table 99000829 \"Planning Component\"\n Editable = false;\n \n trigger OnValidate()\n- var\n- ItemUnitOfMeasure: Record \"Item Unit of Measure\";\n- UnroundedExpectedQuantity: Decimal;\n- ItemPrecRoundedExpectedQuantity: Decimal;\n- BaseUOMPrecRoundedExpectedQuantity: Decimal;\n begin\n- UnroundedExpectedQuantity := \"Expected Quantity\";\n-\n if Item.Get(\"Item No.\") and (\"Ref. Order Type\" <> \"Ref. Order Type\"::Assembly) then\n if Item.\"Rounding Precision\" > 0 then\n \"Expected Quantity\" := UOMMgt.RoundToItemRndPrecision(\"Expected Quantity\", Item.\"Rounding Precision\");\n \n- ItemPrecRoundedExpectedQuantity := \"Expected Quantity\";\n- BaseUOMPrecRoundedExpectedQuantity := UOMMgt.RoundQty(\"Expected Quantity\", \"Qty. Rounding Precision\");\n-\n- if (\"Qty. Rounding Precision\" > 0) and (BaseUOMPrecRoundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity) then\n- if UnroundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity then\n- Error(WrongPrecisionItemAndUOMExpectedQtyErr, Item.FieldCaption(\"Rounding Precision\"), Item.TableCaption(), ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"))\n- else\n- Error(WrongPrecOnUOMExpectedQtyErr, ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"));\n-\n- \"Expected Quantity\" := BaseUOMPrecRoundedExpectedQuantity;\n \"Expected Quantity (Base)\" := CalcBaseQty(\"Expected Quantity\", FieldCaption(\"Expected Quantity\"), FieldCaption(\"Expected Quantity (Base)\"));\n \n \"Net Quantity (Base)\" := \"Expected Quantity (Base)\" - \"Original Expected Qty. (Base)\";\ndiff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\nindex 36930a9e..058f96b4 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n@@ -263,7 +263,6 @@ codeunit 99000773 \"Calculate Prod. Order\"\n Item2: Record Item;\n ComponentSKU: Record \"Stockkeeping Unit\";\n IsHandled: Boolean;\n- QtyRoundPrecision: Decimal;\n begin\n ProdOrderComp.Reset();\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\", \"Item No.\");\n@@ -295,12 +294,7 @@ codeunit 99000773 \"Calculate Prod. Order\"\n ProdOrderComp.\"Bin Code\" := GetDefaultBin();\n ProdOrderComp.Description := ProdBOMLine[Level].Description;\n ProdOrderComp.Validate(\"Unit of Measure Code\", ProdBOMLine[Level].\"Unit of Measure Code\");\n- if (ProdOrderComp.\"Item No.\" <> '') and Item2.Get(ProdOrderComp.\"Item No.\") then\n- QtyRoundPrecision := UOMMgt.GetQtyRoundingPrecision(Item2, ProdBOMLine[Level].\"Unit of Measure Code\");\n- if QtyRoundPrecision <> 0 then\n- ProdOrderComp.\"Quantity per\" := Round(ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM, QtyRoundPrecision)\n- else\n- ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n+ ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n ProdOrderComp.Length := ProdBOMLine[Level].Length;\n ProdOrderComp.Width := ProdBOMLine[Level].Width;\n ProdOrderComp.Weight := ProdBOMLine[Level].Weight;\ndiff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al b/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\nindex c532e014..ce67cb6e 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\n@@ -249,10 +249,6 @@ table 5407 \"Prod. Order Component\"\n \n trigger OnValidate()\n var\n- ItemUnitOfMeasure: Record \"Item Unit of Measure\";\n- UnroundedExpectedQuantity: Decimal;\n- ItemPrecRoundedExpectedQuantity: Decimal;\n- BaseUOMPrecRoundedExpectedQuantity: Decimal;\n IsHandled: Boolean;\n begin\n IsHandled := false;\n@@ -260,26 +256,14 @@ table 5407 \"Prod. Order Component\"\n if IsHandled then\n exit;\n \n- UnroundedExpectedQuantity := \"Expected Quantity\";\n if Item.Get(\"Item No.\") then\n if Item.\"Rounding Precision\" > 0 then\n RoundExpectedQuantity();\n \n- ItemPrecRoundedExpectedQuantity := \"Expected Quantity\";\n-\n- BaseUOMPrecRoundedExpectedQuantity := UOMMgt.RoundQty(\"Expected Quantity\", \"Qty. Rounding Precision\");\n-\n- if (\"Qty. Rounding Precision\" > 0) and (BaseUOMPrecRoundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity) then\n- if UnroundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity then\n- Error(WrongPrecisionItemAndUOMExpectedQtyErr, Item.FieldCaption(\"Rounding Precision\"), Item.TableCaption(), ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"))\n- else\n- Error(WrongPrecOnUOMExpectedQtyErr, ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"));\n-\n- \"Expected Quantity\" := BaseUOMPrecRoundedExpectedQuantity;\n \"Expected Qty. (Base)\" := CalcBaseQty(\"Expected Quantity\", FieldCaption(\"Expected Quantity\"), FieldCaption(\"Expected Qty. (Base)\"));\n \n // Recalculate 'Expected Quantity' based on the base value to make sure values are consistent\n- \"Expected Quantity\" := UOMMgt.RoundQty(\"Expected Qty. (Base)\" / \"Qty. per Unit of Measure\", \"Qty. Rounding Precision\");\n+ \"Expected Quantity\" := Round(\"Expected Qty. (Base)\" / \"Qty. per Unit of Measure\", UOMMgt.QtyRndPrecision());\n \n if (Status in [Status::Released, Status::Finished]) and\n (xRec.\"Item No.\" <> '') and\n@@ -289,7 +273,7 @@ table 5407 \"Prod. Order Component\"\n \n OnValidateExpectedQuantityOnAfterCalcActConsumptionQty(Rec, xRec);\n \"Remaining Quantity\" := \"Expected Quantity\" - \"Act. Consumption (Qty)\" / \"Qty. per Unit of Measure\";\n- \"Remaining Quantity\" := UOMMgt.RoundQty(\"Remaining Quantity\", \"Qty. Rounding Precision\");\n+ \"Remaining Quantity\" := UOMMgt.RoundQty(\"Remaining Quantity\");\n \n if (\"Remaining Quantity\" * \"Expected Quantity\") <= 0 then\n \"Remaining Quantity\" := 0;\n@@ -562,7 +546,7 @@ table 5407 \"Prod. Order Component\"\n exit;\n \n CalculateQuantity(Quantity);\n- Quantity := UOMMgt.RoundAndValidateQty(Quantity, \"Qty. Rounding Precision\", FieldCaption(Quantity));\n+ Quantity := UOMMgt.RoundQty(Quantity);\n \n OnValidateCalculationFormulaOnAfterSetQuantity(Rec);\n \"Quantity (Base)\" := CalcBaseQty(Quantity, FieldCaption(Quantity), FieldCaption(\"Quantity (Base)\"));\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137088'\nCodeunit 137088 SCM Order Planning - III\n Testfunction ReleasedProdOrderQuantityPerandExpectedQtyRoundingPrecisionChecking Failure (8.467 seconds)\n Error:\n Qty. Rounding Precision on Item-GL00000000 causes the Expected Quantity and Expected Qty. (Base) to be out of balance. Rounding of the field Expected Qty. (Base) results to 0.\n Call Stack:\n \"Unit of Measure Management\"(CodeUnit 5402).CalcBaseQty line 9 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).CalcBaseQty line 9 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).\"Expected Quantity - OnValidate\"(Trigger) line 13 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).UpdateExpectedQuantity line 14 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).\"Routing Link Code - OnValidate\"(Trigger) line 5 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).TransferBOMProcessItem line 45 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).TransferBOM line 70 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).Calculate line 105 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order Lines\"(CodeUnit 99000787).ProcessProdOrderLines line 13 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order Lines\"(CodeUnit 99000787).Copy line 23 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order from Sale\"(CodeUnit 99000792).CreateProductionOrder line 54 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateOrder line 11 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateOrders line 35 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateProdOrder line 24 - Base Application by Microsoft version 26.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-213741", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 90.90899999999999, "tool_calls": 15, "total_tokens": 226700, "TurnCount": 10}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":6,\"powershell\":1,\"report_intent\":1,\"update_todo\":3,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Costing/InventoryPostingToGL.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Costing/InventoryPostingToGL.Codeunit.al\nindex 9b9c14ed..c9332395 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Costing/InventoryPostingToGL.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Costing/InventoryPostingToGL.Codeunit.al\n@@ -564,6 +564,14 @@ codeunit 5802 \"Inventory Posting To G/L\"\n TempGlobalInvtPostingBuffer.\"Account Type\"::Inventory,\n TempGlobalInvtPostingBuffer.\"Account Type\"::\"Inventory Adjmt.\",\n CostToPost, CostToPostACY, false);\n+ ValueEntry.\"Entry Type\"::\"Direct Cost - Non Inventory\":\n+ if (CostToPost <> 0) or (CostToPostACY <> 0) then\n+ if MfgCostCalcMgt.CanIncNonInvCostIntoProductionItem() then\n+ InitInvtPostBuf(\n+ ValueEntry,\n+ TempGlobalInvtPostingBuffer.\"Account Type\"::Inventory,\n+ TempGlobalInvtPostingBuffer.\"Account Type\"::\"Direct Cost Non-Inventory Applied\",\n+ CostToPost, CostToPostACY, false);\n ValueEntry.\"Entry Type\"::\"Indirect Cost\":\n InitInvtPostBuf(\n ValueEntry,\n@@ -578,6 +586,13 @@ codeunit 5802 \"Inventory Posting To G/L\"\n TempGlobalInvtPostingBuffer.\"Account Type\"::Inventory,\n TempGlobalInvtPostingBuffer.\"Account Type\"::\"Material Variance\",\n CostToPost, CostToPostACY, false);\n+ ValueEntry.\"Variance Type\"::\"Material - Non Inventory\":\n+ if MfgCostCalcMgt.CanIncNonInvCostIntoProductionItem() then\n+ InitInvtPostBuf(\n+ ValueEntry,\n+ TempGlobalInvtPostingBuffer.\"Account Type\"::Inventory,\n+ TempGlobalInvtPostingBuffer.\"Account Type\"::\"Material - Non Inventory Variance\",\n+ CostToPost, CostToPostACY, false);\n ValueEntry.\"Variance Type\"::Capacity:\n InitInvtPostBuf(\n ValueEntry,\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137911'\nCodeunit 137911 SCM Calculate Assembly Cost\n Testfunction VerifyAdjustCostItemEntriesMustBeExecutedForAssemblyItem Failure (7.977 seconds)\n Error:\n Assert.RecordCount failed. Expected number of Value Entry entries: 0. Actual: 1. Filters: Item No.: GL00000000, Item Ledger Entry Type: Assembly Output, Entry Type: Direct Cost - Non Inventory. Records: 678, GL00000000, 06/03/26, Assembly Output, GL00000000, A00001, , , FINISHED, , 676, 1, 0, 0, 233, 0, 430, 0, , 0, ADMIN, INVTADJMT, 0, , , Item, 233, 0, , No, , DOMESTIC, RETAIL, 06/03/26, , 0, 0, 0, Posted Assembly, 0, 06/03/26, Assembly, A00001, 0, No, , No, No, Yes, 06/03/26, Direct Cost - Non Inventory, , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , 0, , Yes, No, 0, , , , , , , , , , , ; \n Call Stack:\n Assert(CodeUnit 130000).RecordCount line 18 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"SCM Calculate Assembly Cost\"(CodeUnit 137911).VerifyAdjustCostItemEntriesMustBeExecutedForAssemblyItem line 43 - Tests-SCM-Assembly by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-183399", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 135.007, "tool_calls": 13, "total_tokens": 121400, "TurnCount": 34}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":3,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\nindex 553ae9c0..cec7b1ec 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n@@ -255,6 +255,7 @@ page 254 \"Purchase Journal\"\n {\n ApplicationArea = Basic, Suite;\n AutoFormatExpression = Rec.\"Currency Code\";\n+ AutoFormatType = 1;\n Caption = 'Document Amount';\n ToolTip = 'Specifies the total amount (including VAT) that the journal line consists of.';\n \ndiff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/SalesJournal.Page.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/SalesJournal.Page.al\nindex d63650ad..4dfc2fdf 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/SalesJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/SalesJournal.Page.al\n@@ -247,6 +247,7 @@ page 253 \"Sales Journal\"\n {\n ApplicationArea = Basic, Suite;\n AutoFormatExpression = Rec.\"Currency Code\";\n+ AutoFormatType = 1;\n Caption = 'Document Amount';\n ToolTip = 'Specifies the total amount (including VAT) that the journal line consists of.';\n \n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134918'\nCodeunit 134918 ERM Sales/Purchase Application\n Testfunction DocumentAmountInPurchJnlAcceptsMaxThreeDecimalPlacesValue Failure (4.973 seconds)\n Error:\n Assert.AreEqual failed. Expected:<1.747> (Decimal). Actual:<1.75> (Decimal). The document amount is not correct. Expected: 1.747, Actual: 1.75.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"ERM Sales/Purchase Application\"(CodeUnit 134918).DocumentAmountInPurchJnlAcceptsMaxThreeDecimalPlacesValue line 25 - Tests-ERM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"InstanceID": "microsoftInternal__NAV-207878", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 1442.832, "tool_calls": 36, "total_tokens": 1238500, "TurnCount": 268}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":4,\"powershell\":1,\"report_intent\":3,\"store_memory\":1,\"task\":11,\"update_todo\":4,\"view\":11}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Availability/AvailabletoPromise.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Availability/AvailabletoPromise.Codeunit.al\nindex a486f294..7f66b5cd 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Availability/AvailabletoPromise.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Availability/AvailabletoPromise.Codeunit.al\n@@ -64,7 +64,7 @@ codeunit 5790 \"Available to Promise\"\n ScheduledReceipt := CalcScheduledReceipt(Item);\n GrossRequirement := CalcGrossRequirement(Item);\n \n- if AvailabilityDate <> 0D then\n+ if (AvailabilityDate <> 0D) and (Format(LookaheadDateFormula) <> '') then\n GrossRequirement +=\n CalculateForward(\n Item, PeriodType,\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134381'\nCodeunit 134381 ERM Dimension Priority\n Testfunction AvailWarningAssemblyOrdersConsideringDueDates Failure (7.237 seconds)\n Error:\n Assert.IsFalse failed. Avail. warning should be No\n Call Stack:\n Assert(CodeUnit 130000).IsFalse line 3 - Tests-TestLibraries by Microsoft version 26.0.0.0\n \"ERM Dimension Priority\"(CodeUnit 134381).AvailWarningAssemblyOrdersConsideringDueDates line 92 - Tests-Dimension by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-223493", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 79.267, "tool_calls": 9, "total_tokens": 108100, "TurnCount": 14}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":1,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al b/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al\nindex 6a5f0a88..626b7429 100644\n--- a/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al\n@@ -56,6 +56,7 @@ codeunit 1409 \"Sales Inv. Header - Edit\"\n CustLedgerEntry.Description := SalesInvoiceHeader.\"Posting Description\";\n CustLedgerEntry.\"Promised Pay Date\" := SalesInvoiceHeader.\"Promised Pay Date\";\n CustLedgerEntry.\"Due Date\" := SalesInvoiceHeader.\"Due Date\";\n+ CustLedgerEntry.\"Your Reference\" := SalesInvoiceHeader.\"Your Reference\";\n if CustLedgerEntry.\"Dispute Status\" <> '' then begin\n if DisputeStatus.get(CustLedgerEntry.\"Dispute Status\") then\n if (DisputeStatus.\"Overwrite on hold\") and ClearOnHold(SalesInvoiceHeader) then\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134658'\nCodeunit 134658 Edit Posted Documents\n Testfunction VerifyYourReferenceUpdatedInCustLedgerEntry Failure (23.63 seconds)\n Error:\n Assert.AreEqual failed. Expected: (Text). Actual:<> (Text). Customer Ledger Entry Your Reference not updated.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"Edit Posted Documents\"(CodeUnit 134658).VerifyYourReferenceUpdatedInCustLedgerEntry line 32 - Tests-ERM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-220314", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 324.889, "tool_calls": 12, "total_tokens": 192900, "TurnCount": 50}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":1,\"report_intent\":2,\"task\":2,\"update_todo\":2,\"view\":4}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al b/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\nindex fb9253b7..5906faad 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\n@@ -97,6 +97,7 @@ table 83 \"Item Journal Line\"\n end;\n \n if \"Item No.\" = '' then begin\n+ \"Unit of Measure Code\" := '';\n CreateDimFromDefaultDim(Rec.FieldNo(\"Item No.\"));\n OnValidateItemNoOnAfterCreateDimInitial(Rec);\n exit;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137275'\nCodeunit 137275 SCM Inventory Journals\n Testfunction ItemReclassJournalUnitOfMeasureUpdatedWhenItemChanged Failure (5.33 seconds)\n Error:\n The field Unit of Measure Code of table Item Journal Line contains a value (GU00000004) that cannot be found in the related table (Item Unit of Measure).\n Call Stack:\n \"Item Journal Line\"(Table 83).\"Item No. - OnValidate\"(Trigger) line 112 - Base Application by Microsoft version 27.0.0.0\n \"SCM Inventory Journals\"(CodeUnit 137275).ItemReclassJournalUnitOfMeasureUpdatedWhenItemChanged line 44 - Tests-SCM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-208649", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 202.736, "tool_calls": 28, "total_tokens": 485200, "TurnCount": 36}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":2,\"grep\":10,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":10}", "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\nindex 36930a9e..058f96b4 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n@@ -263,7 +263,6 @@ codeunit 99000773 \"Calculate Prod. Order\"\n Item2: Record Item;\n ComponentSKU: Record \"Stockkeeping Unit\";\n IsHandled: Boolean;\n- QtyRoundPrecision: Decimal;\n begin\n ProdOrderComp.Reset();\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\", \"Item No.\");\n@@ -295,12 +294,7 @@ codeunit 99000773 \"Calculate Prod. Order\"\n ProdOrderComp.\"Bin Code\" := GetDefaultBin();\n ProdOrderComp.Description := ProdBOMLine[Level].Description;\n ProdOrderComp.Validate(\"Unit of Measure Code\", ProdBOMLine[Level].\"Unit of Measure Code\");\n- if (ProdOrderComp.\"Item No.\" <> '') and Item2.Get(ProdOrderComp.\"Item No.\") then\n- QtyRoundPrecision := UOMMgt.GetQtyRoundingPrecision(Item2, ProdBOMLine[Level].\"Unit of Measure Code\");\n- if QtyRoundPrecision <> 0 then\n- ProdOrderComp.\"Quantity per\" := Round(ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM, QtyRoundPrecision)\n- else\n- ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n+ ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n ProdOrderComp.Length := ProdBOMLine[Level].Length;\n ProdOrderComp.Width := ProdBOMLine[Level].Width;\n ProdOrderComp.Weight := ProdBOMLine[Level].Weight;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137088'\nCodeunit 137088 SCM Order Planning - III\n Testfunction ReleasedProdOrderQuantityPerandExpectedQtyRoundingPrecisionChecking Failure (7.277 seconds)\n Error:\n The value in the Qty. Rounding Precision field on the Item Unit of Measure page is causing the rounding precision for the Expected Quantity field to be incorrect.\n Call Stack:\n \"Prod. Order Component\"(Table 5407).\"Expected Quantity - OnValidate\"(Trigger) line 26 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).UpdateExpectedQuantity line 14 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).\"Routing Link Code - OnValidate\"(Trigger) line 5 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).TransferBOMProcessItem line 45 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).TransferBOM line 70 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).Calculate line 105 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order Lines\"(CodeUnit 99000787).ProcessProdOrderLines line 13 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order Lines\"(CodeUnit 99000787).Copy line 23 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order from Sale\"(CodeUnit 99000792).CreateProductionOrder line 54 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateOrder line 11 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateOrders line 35 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateProdOrder line 24 - Base Application by Microsoft version 26.0.0.0\n \"Library - Planning\"(CodeUnit 132203).CreateProdOrderUsingPlanning line 6 - Tests-TestLibraries by Microsoft version 26.0.0.0\n \"SCM Order Planning - III\"(CodeUnit 137088).ReleasedProdOrderQuantityPerandExpectedQtyRoundingPrecisionChecking line 50 - Tests-SCM by Microsoft version 26.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-201169", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 116.839, "tool_calls": 18, "total_tokens": 281500, "TurnCount": 21}, "Project": "Shopify", "ToolUsage": "{\"edit\":2,\"grep\":4,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":7}", "output": "diff --git a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\nindex 38d77856..357f4376 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n@@ -26,6 +26,7 @@ codeunit 30174 \"Shpfy Create Product\"\n Getlocations: Boolean;\n ProductId: BigInteger;\n ItemVariantIsBlockedLbl: Label 'Item variant is blocked or sales blocked.';\n+ ItemTitleIsEmptyLbl: Label 'Product title is empty.';\n \n trigger OnRun()\n var\n@@ -51,13 +52,19 @@ codeunit 30174 \"Shpfy Create Product\"\n TempShopifyProduct: Record \"Shpfy Product\" temporary;\n TempShopifyVariant: Record \"Shpfy Variant\" temporary;\n TempShopifyTag: Record \"Shpfy Tag\" temporary;\n+ SkippedRecord: Codeunit \"Shpfy Skipped Record\";\n begin\n CreateTempProduct(Item, TempShopifyProduct, TempShopifyVariant, TempShopifyTag);\n+ if TempShopifyProduct.Title = '' then begin\n+ SkippedRecord.LogSkippedRecord(Item.RecordId, ItemTitleIsEmptyLbl, Shop);\n+ exit;\n+ end;\n if not VariantApi.FindShopifyProductVariant(TempShopifyProduct, TempShopifyVariant) then\n ProductId := ProductApi.CreateProduct(TempShopifyProduct, TempShopifyVariant, TempShopifyTag)\n else\n ProductId := TempShopifyProduct.Id;\n- ProductExport.UpdateProductTranslations(ProductId, Item);\n+ if ProductId <> 0 then\n+ ProductExport.UpdateProductTranslations(ProductId, Item);\n end;\n \n internal procedure CreateTempProduct(Item: Record Item; var TempShopifyProduct: Record \"Shpfy Product\" temporary; var TempShopifyVariant: Record \"Shpfy Variant\" temporary; var TempShopifyTag: Record \"Shpfy Tag\" temporary)\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139581'\nCodeunit 139581 Shpfy Skipped Record Log Test\n Testfunction UnitTestLogItemEmptyDescription Failure (6.326 seconds)\n Error:\n The response from Shopify contains no JSON. \\Requested: {\"query\":\"{ locations(first: 20, includeLegacy: true) { pageInfo { hasNextPage endCursor } nodes { legacyResourceId isActive isPrimary name fulfillmentService { serviceName }}}}\"} \\Response: \n Call Stack:\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 21 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 4 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 6 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Sync Shop Locations\"(CodeUnit 30198).SyncLocations line 20 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Sync Shop Locations\"(CodeUnit 30198).OnRun(Trigger) line 4 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Create Product\"(CodeUnit 30174).OnRun(Trigger) line 5 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Add Item to Shopify\"(Report 30106).\"Item - OnAfterGetRecord\"(Trigger) line 12 - Shopify Connector by Microsoft version 26.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-188438", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 40, "tool_calls": 8, "total_tokens": 105100, "TurnCount": 6}, "Project": "Sustainability", "ToolUsage": "{\"edit\":1,\"grep\":3,\"report_intent\":2,\"view\":2}", "output": "diff --git a/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al b/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al\nindex 4644c873..e3cd8fe4 100644\n--- a/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al\n+++ b/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al\n@@ -88,7 +88,7 @@ codeunit 6218 \"Sustainability Calc. Mgt.\"\n CollectAmountFromGLEntry.LookupMode(true);\n if CollectAmountFromGLEntry.RunModal() = Action::LookupOK then begin\n CollectAmountFromGLEntry.GetDates(FromDate, ToDate);\n- SustainabilityJnlLine.Validate(\"Custom Amount\", GetCollectableGLAmount(SustainAccountCategory, FromDate, ToDate));\n+ SustainabilityJnlLine.Validate(\"Custom Amount\", Abs(GetCollectableGLAmount(SustainAccountCategory, FromDate, ToDate)));\n end;\n end;\n \n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '148181'\nCodeunit 148181 Sustainability Journal Test\n Testfunction TestCustomAmountIsPositiveForNegativeTotalOfGL Failure (4.224 seconds)\n Error:\n Assert.AreEqual failed. Expected:<248.67> (Decimal). Actual:<-248.67> (Decimal). The custom amount must be positive.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"Sustainability Journal Test\"(CodeUnit 148181).TestCustomAmountIsPositiveForNegativeTotalOfGL line 31 - Sustainability Tests by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"InstanceID": "microsoftInternal__NAV-221877", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 228.495, "tool_calls": 15, "total_tokens": 186200, "TurnCount": 35}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":7}", "output": "diff --git a/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al b/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al\nindex 1c8fcc9e..11b7de58 100644\n--- a/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al\n@@ -1771,7 +1771,7 @@ table 5901 \"Service Item Line\"\n \"Document Type\" := ServHeader.\"Document Type\";\n RepairStatus.Reset();\n RepairStatus.Initial := true;\n- \"Repair Status Code\" := RepairStatus.ReturnStatusCode(RepairStatus);\n+ Validate(\"Repair Status Code\", RepairStatus.ReturnStatusCode(RepairStatus));\n end;\n \n OnAfterSetUpNewLine(Rec);\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136101'\nCodeunit 136101 Service Orders\n Testfunction AutoUpdateServiceHeaderStatusOnServiceItemLineAdd Failure (9.57 seconds)\n Error:\n AssertEquals for Field: Status Expected = 'Finished', Actual = 'Pending'\n Call Stack:\n \"Service Orders\"(CodeUnit 136101).AutoUpdateServiceHeaderStatusOnServiceItemLineAdd line 27 - Tests-SCM-Service by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-209737", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 736.765, "tool_calls": 71, "total_tokens": 2919000, "TurnCount": 169}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":1,\"grep\":37,\"powershell\":1,\"report_intent\":2,\"task\":3,\"update_todo\":3,\"view\":23}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al b/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\nindex e995c8ed..1c9d6c9b 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\n@@ -881,8 +881,10 @@ table 36 \"Sales Header\"\n begin\n ResetInvoiceDiscountValue();\n \n- if \"Currency Factor\" <> xRec.\"Currency Factor\" then\n+ if \"Currency Factor\" <> xRec.\"Currency Factor\" then begin\n UpdateSalesLinesByFieldNo(FieldNo(\"Currency Factor\"), false);\n+ SalesCalcDiscountByType.ApplyDefaultInvoiceDiscount(0, Rec, true);\n+ end;\n end;\n }\n field(34; \"Customer Price Group\"; Code[10])\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137408'\nCodeunit 137408 SCM Warehouse VI\n Testfunction InvDiscPctAndAmtInSOIsNotZeroWhenCreateAndShipInvPickFromSOHavingInvDiscPctAndAmt Failure (22.85 seconds)\n Error:\n AssertEquals for Field: Invoice Disc. Pct. Expected = '10', Actual = '0'\n Call Stack:\n \"SCM Warehouse VI\"(CodeUnit 137408).InvDiscPctAndAmtInSOIsNotZeroWhenCreateAndShipInvPickFromSOHavingInvDiscPctAndAmt line 102 - Tests-SCM by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-176426", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 403.68399999999997, "tool_calls": 15, "total_tokens": 288200, "TurnCount": 63}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":3,\"report_intent\":2,\"task\":3,\"update_todo\":2,\"view\":4}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\nindex d639a562..27a45311 100644\n--- a/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\n@@ -993,7 +993,7 @@ codeunit 5870 \"Calculate BOM Tree\"\n exit(true);\n end;\n Item.\"Replenishment System\"::\"Prod. Order\":\n- if Item.\"Production BOM No.\" <> '' then\n+ if (Item.\"Production BOM No.\" <> '') or (Item.\"Routing No.\" <> '') then\n exit(true);\n end;\n end;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137391'\nCodeunit 137391 SCM - BOM Cost Shares Report\n Testfunction RolledUpMaterialAndCapacityCostWithRoutingAndNoBOM Failure (4.277 seconds)\n Error:\n AssertEquals for Field: Rolled-up Material Cost Expected = '497.28', Actual = ''\n Call Stack:\n \"SCM - BOM Cost Shares Report\"(CodeUnit 137391).VerifyParentItemMaterialAndCapacityCost line 7 - Tests-SCM by Microsoft\n \"SCM - BOM Cost Shares Report\"(CodeUnit 137391).RolledUpMaterialAndCapacityCostWithRoutingAndNoBOM line 34 - Tests-SCM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"InstanceID": "microsoftInternal__NAV-175765", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 768.002, "tool_calls": 38, "total_tokens": 1125700, "TurnCount": 112}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":10,\"report_intent\":3,\"task\":4,\"update_todo\":3,\"view\":16}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\nindex 7eff4950..8b4f9c1a 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\n@@ -2964,7 +2964,7 @@ codeunit 22 \"Item Jnl.-Post Line\"\n if not ItemJnlLine.Adjustment then\n if Item.\"Inventory Value Zero\" or\n ((ItemJnlLine.\"Entry Type\" = ItemJnlLine.\"Entry Type\"::Transfer) and\n- (ValueEntry.\"Valued Quantity\" < 0) and not AverageTransfer) or\n+ (ValueEntry.\"Valued Quantity\" < 0) and not AverageTransfer and not ItemJnlLine.Correction) or\n ((ItemJnlLine.\"Entry Type\" = ItemJnlLine.\"Entry Type\"::Sale) and\n (ItemJnlLine.\"Item Charge No.\" <> ''))\n then begin\ndiff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al\nindex b47fc326..42626f39 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al\n@@ -277,6 +277,9 @@ codeunit 9030 \"Undo Transfer Shipment\"\n ItemJnlLine.\"Quantity (Base)\" := ItemLedgEntry.Quantity;\n ItemJnlLine.\"Invoiced Quantity\" := ItemLedgEntry.\"Invoiced Quantity\";\n ItemJnlLine.\"Invoiced Qty. (Base)\" := ItemLedgEntry.\"Invoiced Quantity\";\n+ ItemLedgEntry.CalcFields(\"Cost Amount (Actual)\");\n+ if ItemLedgEntry.Quantity <> 0 then\n+ ItemJnlLine.\"Unit Cost\" := Abs(ItemLedgEntry.\"Cost Amount (Actual)\" / ItemLedgEntry.Quantity);\n OnPostCorrectiveItemLedgEntriesOnBeforeRun(ItemJnlLine, ItemLedgEntry);\n ItemJnlPostLine.Run(ItemJnlLine);\n until ItemLedgEntry.Next() = 0;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137038'\nCodeunit 137038 SCM Transfers\n Testfunction AdjustCostOfUndoneTransferShipment Failure (4.953 seconds)\n Error:\n Unit Cost must be equal to '111.96' in Item: No.=GL00000000. Current value is '24.87'.\n Call Stack:\n \"SCM Transfers\"(CodeUnit 137038).AdjustCostOfUndoneTransferShipment line 46 - Tests-SCM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"InstanceID": "microsoftInternal__NAV-205825", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 540.46, "tool_calls": 25, "total_tokens": 463900, "TurnCount": 117}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":2,\"glob\":3,\"grep\":2,\"report_intent\":2,\"task\":3,\"update_todo\":3,\"view\":9}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\nindex da15d9ef..820af7d2 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\n@@ -92,10 +92,11 @@ codeunit 205 \"Alt. Cust. VAT Reg. Doc. Impl.\" implements \"Alt. Cust. VAT Reg. Do\n procedure UpdateSetupOnShipToCountryChangeInSalesHeader(var SalesHeader: Record \"Sales Header\"; xSalesHeader: Record \"Sales Header\")\n var\n AltCustVATReg: Record \"Alt. Cust. VAT Reg.\";\n- VATCustomer: Record Customer;\n+ SellToCustomer: Record Customer;\n begin\n- GetCustVATCalc(VATCustomer, SalesHeader);\n- if AltCustVATRegFacade.GetAlternativeCustVATReg(AltCustVATReg, VATCustomer.\"No.\", SalesHeader.\"Ship-to Country/Region Code\") then\n+ if not SellToCustomer.Get(SalesHeader.\"Sell-to Customer No.\") then\n+ exit;\n+ if AltCustVATRegFacade.GetAlternativeCustVATReg(AltCustVATReg, SellToCustomer.\"No.\", SalesHeader.\"Ship-to Country/Region Code\") then\n SalesHeader.Validate(\"VAT Country/Region Code\", AltCustVATReg.\"VAT Country/Region Code\")\n else\n CopyFromCustomer(SalesHeader, xSalesHeader);\n@@ -124,6 +125,7 @@ codeunit 205 \"Alt. Cust. VAT Reg. Doc. Impl.\" implements \"Alt. Cust. VAT Reg. Do\n procedure UpdateSetupOnBillToCustomerChangeInSalesHeader(var SalesHeader: Record \"Sales Header\"; xSalesHeader: Record \"Sales Header\"; BillToCustomer: Record Customer)\n var\n GLSetup: Record \"General Ledger Setup\";\n+ AltCustVATReg: Record \"Alt. Cust. VAT Reg.\";\n begin\n GLSetup.Get();\n if GLSetup.\"Bill-to/Sell-to VAT Calc.\" <> GLSetup.\"Bill-to/Sell-to VAT Calc.\"::\"Bill-to/Pay-to No.\" then\n@@ -132,6 +134,8 @@ codeunit 205 \"Alt. Cust. VAT Reg. Doc. Impl.\" implements \"Alt. Cust. VAT Reg. Do\n if IsAltVATRegUsed(SalesHeader) then begin\n if SalesHeader.\"Bill-to Customer No.\" = SalesHeader.\"Sell-to Customer No.\" then\n exit;\n+ if AltCustVATRegFacade.GetAlternativeCustVATReg(AltCustVATReg, SalesHeader.\"Sell-to Customer No.\", SalesHeader.\"Ship-to Country/Region Code\") then\n+ exit;\n CopyFromCustomer(SalesHeader, xSalesHeader, BillToCustomer);\n exit;\n end;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134237'\nCodeunit 134237 Alt. Cust. VAT. Doc. Tests\n Testfunction ShipToCodeConnectionAltCustVATSetupOfBillToCustomer Failure (4.62 seconds)\n Error:\n VAT Country/Region Code must be equal to 'GU00000009' in Sales Header: Document Type=Order, No.=101005. Current value is 'GU00000006'.\n Call Stack:\n \"Alt. Cust. VAT. Doc. Tests\"(CodeUnit 134237).VerifyVATRegDataInSalesHeader line 2 - Tests-VAT by Microsoft\n \"Alt. Cust. VAT. Doc. Tests\"(CodeUnit 134237).ShipToCodeConnectionAltCustVATSetupOfBillToCustomer line 28 - Tests-VAT by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"InstanceID": "microsoftInternal__NAV-222484", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 646.145, "tool_calls": 44, "total_tokens": 1629900, "TurnCount": 55}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":2,\"grep\":12,\"powershell\":1,\"report_intent\":3,\"task\":1,\"update_todo\":4,\"view\":20}", "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/CreatePick.Codeunit.al b/App/Layers/W1/BaseApp/Warehouse/Activity/CreatePick.Codeunit.al\nindex 812f1fe9..fe0d39b0 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/CreatePick.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/CreatePick.Codeunit.al\n@@ -2777,7 +2777,7 @@ codeunit 7312 \"Create Pick\"\n QtyReservedOnPickShip :=\n WarehouseAvailabilityMgt.CalcReservQtyOnPicksShipsWithItemTracking(TempWarehouseActivityLine, TempTrackingSpecification, LocationCode, ItemNo, VariantCode);\n \n- if WhseItemTrackingLine.TrackingExists() and (QtyReservedOnPickShip > 0) then\n+ if WhseItemTrackingLine.TrackingExists() then\n LineReservedQty :=\n WarehouseAvailabilityMgt.CalcLineReservedQtyOnInvt(\n SrcType, SrcSubType, SrcNo, SrcLineNo, SrcSubLineNo, true, WhseItemTrackingSetup, TempWarehouseActivityLine)\n@@ -2900,7 +2900,7 @@ codeunit 7312 \"Create Pick\"\n QtyReservedOnPickShip :=\n WarehouseAvailabilityMgt.CalcReservQtyOnPicksShipsWithItemTracking(TempWarehouseActivityLine, TempTrackingSpecification, LocationCode, ItemNo, VariantCode);\n \n- if WhseItemTrackingLine.TrackingExists() and (QtyReservedOnPickShip > 0) then\n+ if WhseItemTrackingLine.TrackingExists() then\n LineReservedQty :=\n WarehouseAvailabilityMgt.CalcLineReservedQtyOnInvt(\n SrcType, SrcSubType, SrcNo, SrcLineNo, SrcSubLineNo, true, WhseItemTrackingSetup, TempWarehouseActivityLine)\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137260'\nCodeunit 137260 SCM Inventory Item Tracking\n Testfunction RegisterPickWithNoErrorForFEFOLocation Failure (21.237 seconds)\n Error:\n Assert.AreEqual failed. Expected: (Text). Actual: (Text). Item Ledger Entry Lot No. GU00000024 should be equal to the first lot with FEFO..\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"SCM Inventory Item Tracking\"(CodeUnit 137260).RegisterPickWithNoErrorForFEFOLocation line 65 - Tests-SCM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-224447", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 155.69400000000002, "tool_calls": 12, "total_tokens": 109000, "TurnCount": 30}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":4,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/Foundation/Reporting/ReportDistributionManagement.Codeunit.al b/App/Layers/W1/BaseApp/Foundation/Reporting/ReportDistributionManagement.Codeunit.al\nindex 890a9469..c7a1c7ad 100644\n--- a/App/Layers/W1/BaseApp/Foundation/Reporting/ReportDistributionManagement.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Foundation/Reporting/ReportDistributionManagement.Codeunit.al\n@@ -344,7 +344,7 @@ codeunit 452 \"Report Distribution Management\"\n SourceRelationTypes.Add(Enum::\"Email Relation Type\"::\"Primary Source\".AsInteger());\n \n SourceTableIDs.Add(ReceiverRecord.Number());\n- SourceIDs.Add(SourceReference.Field(ReceiverRecord.SystemIdNo()).Value());\n+ SourceIDs.Add(ReceiverRecord.Field(ReceiverRecord.SystemIdNo()).Value());\n SourceRelationTypes.Add(Enum::\"Email Relation Type\"::\"Related Entity\".AsInteger());\n \n DocumentMailing.EmailFile(\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134979'\nCodeunit 134979 Reminder Automation Tests\n Testfunction SendIssuedReminderByEmailAndEntryCreatedInEmailRelatedRecords Failure (28.016 seconds)\n Error:\n Assert.IsTrue failed. Email related record not found\n Call Stack:\n Assert(CodeUnit 130000).IsTrue line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"Reminder Automation Tests\"(CodeUnit 134979).ModalEmailEditorHandler line 8 - Tests-ERM by Microsoft version 27.0.0.0\n \"Email Editor\"(CodeUnit 8906).OpenWithScenario line 14 - System Application by Microsoft version 27.0.0.0\n \"Email Impl\"(CodeUnit 8900).OpenInEditorWithScenario line 27 - System Application by Microsoft version 27.0.0.0\n Email(CodeUnit 8901).OpenInEditorModallyWithScenario line 2 - System Application by Microsoft version 27.0.0.0\n \"Mail Management\"(CodeUnit 9520).SendViaEmailModule line 52 - Base Application by Microsoft version 27.0.0.0\n \"Mail Management\"(CodeUnit 9520).DoSend line 5 - Base Application by Microsoft version 27.0.0.0\n \"Mail Management\"(CodeUnit 9520).Send line 17 - Base Application by Microsoft version 27.0.0.0\n \"Mail Management\"(CodeUnit 9520).SendMailOrDownload line 6 - Base Application by Microsoft version 27.0.0.0\n \"Email Item\"(Table 9500).Send line 9 - Base Application by Microsoft version 27.0.0.0\n \"Document-Mailing\"(CodeUnit 260).EmailFileInternal line 77 - Base Application by Microsoft version 27.0.0.0\n \"Document-Mailing\"(CodeUnit 260).EmailFile line 7 - Base Application by Microsoft version 27.0.0.0\n \"Report Selections\"(Table 77).SendEmailDirectly line 150 - Base Application by Microsoft version 27.0.0.0\n \"Report Selections\"(Table 77).SendEmailToCustDirectly line 32 - Base Application by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-182354", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 48, "tool_calls": 11, "total_tokens": 92000, "TurnCount": 5}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":2,\"report_intent\":2,\"update_todo\":2,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al b/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al\nindex 737182d0..37eec66b 100644\n--- a/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al\n+++ b/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al\n@@ -28,7 +28,7 @@ page 1318 \"Account Receivables KPIs\"\n begin\n CustLedgerEntry.SetRange(Open, true);\n CustLedgerEntry.SetFilter(\"Remaining Amount\", '>%1', 0);\n- CustLedgerEntry.SetFilter(\"Due Date\", '<=%1', WorkDate());\n+ CustLedgerEntry.SetFilter(\"Due Date\", '<=%1', Today());\n CustomerLedgerEntries.SetTableView(CustLedgerEntry);\n CustomerLedgerEntries.Run();\n end;\n@@ -98,7 +98,7 @@ page 1318 \"Account Receivables KPIs\"\n CuesAndKPIs: Codeunit \"Cues And KPIs\";\n SalesInvoicesDueNextWeekStyle: Enum \"Cues And KPIs Style\";\n begin\n- Rec.SetRange(\"Overdue Date Filter\", 0D, WorkDate());\n+ Rec.SetRange(\"Overdue Date Filter\", 0D, Today());\n if not Rec.Get() then begin\n Clear(Rec);\n Rec.Insert();\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134924'\nCodeunit 134924 ERM Cues\n Testfunction TotalOverdueLCYInFinanceCue Failure (6.223 seconds)\n Error:\n Assert.AreEqual failed. Expected:<> (Text). Actual:<50.17> (Text). The total overdue LCY amount is not calculated correctly..\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"ERM Cues\"(CodeUnit 134924).TotalOverdueLCYInFinanceCue line 37 - Tests-ERM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"InstanceID": "microsoftInternal__NAV-180484", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 157.959, "tool_calls": 13, "total_tokens": 168900, "TurnCount": 29}, "Project": "BaseApp", "ToolUsage": "{\"edit\":3,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":4}", "output": "diff --git a/App/Layers/W1/BaseApp/eServices/EDocument/IncomingDocument.Table.al b/App/Layers/W1/BaseApp/eServices/EDocument/IncomingDocument.Table.al\nindex 2341887c..cd68e926 100644\n--- a/App/Layers/W1/BaseApp/eServices/EDocument/IncomingDocument.Table.al\n+++ b/App/Layers/W1/BaseApp/eServices/EDocument/IncomingDocument.Table.al\n@@ -510,8 +510,11 @@ table 130 \"Incoming Document\"\n var\n RelatedRecord: Variant;\n begin\n- if GetRecord(RelatedRecord) then\n+ if GetRecord(RelatedRecord) then begin\n+ Status := Status::Created;\n+ Modify();\n Error(DocAlreadyCreatedErr);\n+ end;\n \n CreateWithDataExchange(\"Document Type\"::\" \")\n end;\n@@ -622,8 +625,11 @@ table 130 \"Incoming Document\"\n if IsHandled then\n exit;\n \n- if GetRecord(RelatedRecord) then\n+ if GetRecord(RelatedRecord) then begin\n+ Status := Status::Created;\n+ Modify();\n Error(DocAlreadyCreatedErr);\n+ end;\n \n CreatedDocumentType.Add(1, \"Document Type\"::Journal.AsInteger());\n CreatedDocumentType.Add(2, \"Document Type\"::\"Sales Invoice\".AsInteger());\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139154'\nCodeunit 139154 Incoming Doc. To Data Exch.UT\n Testfunction StatusRemainsCreatedIfHasLinkedDocWhenReopenIncomingDoc Failure (16.634 seconds)\n Error:\n Assert.AreEqual failed. Expected: (Text). Actual: (Text). Status must be Created in Incoming Document.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"Incoming Doc. To Data Exch.UT\"(CodeUnit 139154).StatusRemainsCreatedIfHasLinkedDocWhenReopenIncomingDoc line 53 - Tests-Data Exchange by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"InstanceID": "microsoftInternal__NAV-215645", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 425.929, "tool_calls": 58, "total_tokens": 1817800, "TurnCount": 55}, "Project": "SubscriptionBilling", "ToolUsage": "{\"create\":1,\"edit\":1,\"glob\":4,\"grep\":29,\"report_intent\":3,\"task\":1,\"update_todo\":3,\"view\":16}", "output": "diff --git a/App/Apps/W1/SubscriptionBilling/App/Billing/Codeunits/CreateBillingDocuments.Codeunit.al b/App/Apps/W1/SubscriptionBilling/App/Billing/Codeunits/CreateBillingDocuments.Codeunit.al\nindex c7efaed2..a7d04c1d 100644\n--- a/App/Apps/W1/SubscriptionBilling/App/Billing/Codeunits/CreateBillingDocuments.Codeunit.al\n+++ b/App/Apps/W1/SubscriptionBilling/App/Billing/Codeunits/CreateBillingDocuments.Codeunit.al\n@@ -262,6 +262,7 @@ codeunit 8060 \"Create Billing Documents\"\n \n SetInvoicePriceFromUsageDataBilling(SalesLine, TempBillingLine);\n OnBeforeInsertSalesLineFromContractLine(SalesLine, TempBillingLine);\n+ SalesLine.\"Exclude from Doc. Total\" := false;\n SalesLine.Insert(false);\n \n TranslationHelper.SetGlobalLanguageByCode(SalesHeader.\"Language Code\");\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '148155'\nCodeunit 148155 Contracts Test\n Testfunction SalesInvoiceShowsSubtotalForServCommItem Failure (9.146 seconds)\n Error:\n Exclude from Document Total must be equal to 'No' in Sales Line: Document Type=Invoice, Document No.=102222, Line No.=10000. Current value is 'Yes'.\n Call Stack:\n \"Contracts Test\"(CodeUnit 148155).SalesInvoiceShowsSubtotalForServCommItem line 22 - Subscription Billing Test by Microsoft version 26.3.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.3.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.3.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.3.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.3.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.3.0.0"} +{"InstanceID": "microsoftInternal__NAV-223790", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 629.92, "tool_calls": 50, "total_tokens": 1621200, "TurnCount": 49}, "Project": "BaseApp", "ToolUsage": "{\"edit\":6,\"glob\":4,\"grep\":14,\"powershell\":2,\"report_intent\":3,\"store_memory\":1,\"task\":1,\"update_todo\":3,\"view\":16}", "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/CalculateLowLevelCode.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/CalculateLowLevelCode.Codeunit.al\nindex 1dcd950b..795222cf 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/CalculateLowLevelCode.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/CalculateLowLevelCode.Codeunit.al\n@@ -6,6 +6,7 @@ namespace Microsoft.Manufacturing.ProductionBOM;\n \n using Microsoft.Inventory.BOM;\n using Microsoft.Inventory.Item;\n+using Microsoft.Inventory.Location;\n using Microsoft.Manufacturing.Setup;\n \n codeunit 99000793 \"Calculate Low-Level Code\"\n@@ -40,6 +41,7 @@ codeunit 99000793 \"Calculate Low-Level Code\"\n procedure CalcLevels(Type: Option \" \",Item,\"Production BOM\",Assembly; No: Code[20]; Level: Integer; LevelDepth: Integer) Result: Integer\n var\n Item2: Record Item;\n+ StockkeepingUnit: Record \"Stockkeeping Unit\";\n ProdBOMLine: Record \"Production BOM Line\";\n AsmBOMComp: Record \"BOM Component\";\n ActLevel: Integer;\n@@ -68,6 +70,16 @@ codeunit 99000793 \"Calculate Low-Level Code\"\n if ActLevel > TotalLevels then\n TotalLevels := ActLevel;\n until Item2.Next() = 0;\n+ StockkeepingUnit.SetRange(\"Production BOM No.\", No);\n+ if StockkeepingUnit.FindSet() then\n+ repeat\n+ if Item2.Get(StockkeepingUnit.\"Item No.\") then\n+ if Item2.\"Production BOM No.\" <> No then begin\n+ ActLevel := CalcLevels(Type::Item, Item2.\"No.\", Level + 1, LevelDepth + 1);\n+ if ActLevel > TotalLevels then\n+ TotalLevels := ActLevel;\n+ end;\n+ until StockkeepingUnit.Next() = 0;\n OnCalcLevelsForProdBOM(Item2, No, Level, LevelDepth, TotalLevels);\n end;\n Type::Assembly:\n@@ -175,6 +187,7 @@ codeunit 99000793 \"Calculate Low-Level Code\"\n procedure SetRecursiveLevelsOnItem(var CompItem: Record Item; LowLevelCode: Integer; IgnoreMissingItemsOrBOMs: Boolean)\n var\n CompBOM: Record \"Production BOM Header\";\n+ StockkeepingUnit: Record \"Stockkeeping Unit\";\n xLowLevelCode: Integer;\n EntityPresent: Boolean;\n IsHandled: Boolean;\n@@ -196,6 +209,16 @@ codeunit 99000793 \"Calculate Low-Level Code\"\n if EntityPresent or (not IgnoreMissingItemsOrBOMs) then\n SetRecursiveLevelsOnBOM(CompBOM, CompItem.\"Low-Level Code\" + 1, IgnoreMissingItemsOrBOMs);\n end;\n+ StockkeepingUnit.SetRange(\"Item No.\", CompItem.\"No.\");\n+ StockkeepingUnit.SetFilter(\"Production BOM No.\", '<>%1', '');\n+ if StockkeepingUnit.FindSet() then\n+ repeat\n+ if StockkeepingUnit.\"Production BOM No.\" <> CompItem.\"Production BOM No.\" then begin\n+ EntityPresent := CompBOM.Get(StockkeepingUnit.\"Production BOM No.\");\n+ if EntityPresent or (not IgnoreMissingItemsOrBOMs) then\n+ SetRecursiveLevelsOnBOM(CompBOM, CompItem.\"Low-Level Code\" + 1, IgnoreMissingItemsOrBOMs);\n+ end;\n+ until StockkeepingUnit.Next() = 0;\n OnSetRecursiveLevelsOnItemOnBeforeCompItemModify(CompItem, IgnoreMissingItemsOrBOMs);\n CompItem.Modify();\n end;\ndiff --git a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/LowLevelCodeCalculator.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/LowLevelCodeCalculator.Codeunit.al\nindex fcabc2e0..a511797e 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/LowLevelCodeCalculator.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/LowLevelCodeCalculator.Codeunit.al\n@@ -6,6 +6,7 @@ namespace Microsoft.Inventory.BOM.Tree;\n \n using Microsoft.Inventory.BOM;\n using Microsoft.Inventory.Item;\n+using Microsoft.Inventory.Location;\n using Microsoft.Manufacturing.ProductionBOM;\n using System.Threading;\n using System.Utilities;\n@@ -88,6 +89,7 @@ codeunit 3687 \"Low-Level Code Calculator\"\n begin\n // Set nodes on the tree\n PopulateFromItemAndRelatedBOMs(BOMStructure);\n+ PopulateFromSKUAndRelatedBOMs(BOMStructure);\n PopulateFromProductionBOMAndLines(BOMStructure);\n PopulateFromBOMComponents(BOMStructure);\n end;\n@@ -192,6 +194,33 @@ codeunit 3687 \"Low-Level Code Calculator\"\n ItemProductionBOMs.Close();\n end;\n \n+ local procedure PopulateFromSKUAndRelatedBOMs(BOMStructure: Codeunit \"BOM Tree\")\n+ var\n+ StockkeepingUnit: Record \"Stockkeeping Unit\";\n+ Item: Record Item;\n+ ProductionBOMHeader: Record \"Production BOM Header\";\n+ VersionManagement: Codeunit VersionManagement;\n+ Parent: Codeunit \"BOM Node\";\n+ Child: Codeunit \"BOM Node\";\n+ begin\n+ StockkeepingUnit.SetFilter(\"Production BOM No.\", '<>%1', '');\n+ if StockkeepingUnit.FindSet() then\n+ repeat\n+ if Item.Get(StockkeepingUnit.\"Item No.\") then\n+ if Item.\"Production BOM No.\" <> StockkeepingUnit.\"Production BOM No.\" then\n+ if ProductionBOMHeader.Get(StockkeepingUnit.\"Production BOM No.\") then\n+ if (ProductionBOMHeader.Status = ProductionBOMHeader.Status::Certified) or\n+ (VersionManagement.GetBOMVersion(StockkeepingUnit.\"Production BOM No.\", WorkDate(), true) <> '')\n+ then begin\n+ Parent.CreateForItem(Item.\"No.\", Item.\"Low-Level Code\", LowLevelCodeParam);\n+ Child.CreateForProdBOM(ProductionBOMHeader.\"No.\", ProductionBOMHeader.\"Low-Level Code\", LowLevelCodeParam);\n+ AddChildToParent(BOMStructure, Parent, Child);\n+ Clear(Parent);\n+ Clear(Child);\n+ end;\n+ until StockkeepingUnit.Next() = 0;\n+ end;\n+\n local procedure PopulateFromProductionBOMAndLines(BOMStructure: Codeunit \"BOM Tree\")\n var\n ProductionBOMHeader: Record \"Production BOM Header\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137035'\nCodeunit 137035 SCM PS Bugs-I\n Testfunction CheckPlanningWorksheetPlanComponentwhenStockkeepingUnitsSetup Failure (18.043 seconds)\n Error:\n Assert.AreEqual failed. Expected:<1> (Integer). Actual:<0> (Integer). New planning worksheet line not created for component item.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"SCM PS Bugs-I\"(CodeUnit 137035).CheckPlanningWorksheetPlanComponentwhenStockkeepingUnitsSetup line 85 - Tests-SCM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-177750", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 394.506, "tool_calls": 49, "total_tokens": 1317100, "TurnCount": 61}, "Project": "BaseApp", "ToolUsage": "{\"edit\":5,\"grep\":18,\"powershell\":1,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":18}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\nindex a1e3fedb..c4b7de3b 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\n@@ -3075,6 +3075,15 @@ table 1003 \"Job Planning Line\"\n exit(0);\n end;\n \n+ procedure QtyAsmRemainingBaseOnATO(): Decimal\n+ var\n+ AsmHeader: Record \"Assembly Header\";\n+ begin\n+ if AsmToOrderExists(AsmHeader) then\n+ exit(AsmHeader.\"Remaining Quantity (Base)\");\n+ exit(0);\n+ end;\n+\n procedure ShowAsmToJobPlanningLines()\n begin\n ATOLink.ShowAsmToJobPlanningLines(Rec);\ndiff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al b/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al\nindex 320720d7..fc075e09 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al\n@@ -1073,6 +1073,7 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n local procedure CalcRemQtyToPickOrMoveBase(NewWarehouseActivityLine: Record \"Warehouse Activity Line\"; OutstandingQtyBase: Decimal; var RemQtyToPickBase: Decimal)\n var\n ATOSalesLine: Record \"Sales Line\";\n+ ATOJobPlanningLine: Record \"Job Planning Line\";\n MaxQtyToPickBase: Decimal;\n begin\n MaxQtyToPickBase :=\n@@ -1084,6 +1085,9 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n if WMSManagement.GetATOSalesLine(NewWarehouseActivityLine.\"Source Type\", NewWarehouseActivityLine.\"Source Subtype\", NewWarehouseActivityLine.\"Source No.\", NewWarehouseActivityLine.\"Source Line No.\", ATOSalesLine) then\n MaxQtyToPickBase += ATOSalesLine.QtyAsmRemainingBaseOnATO();\n \n+ if WMSManagement.GetATOJobPlanningLine(NewWarehouseActivityLine.\"Source Type\", NewWarehouseActivityLine.\"Source No.\", NewWarehouseActivityLine.\"Source Line No.\", NewWarehouseActivityLine.\"Source Subline No.\", ATOJobPlanningLine) then\n+ MaxQtyToPickBase += ATOJobPlanningLine.QtyAsmRemainingBaseOnATO();\n+\n if RemQtyToPickBase > MaxQtyToPickBase then begin\n RemQtyToPickBase := MaxQtyToPickBase;\n if NewWarehouseActivityLine.\"Shipping Advice\" = NewWarehouseActivityLine.\"Shipping Advice\"::Complete then\n@@ -2096,9 +2100,11 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n case CurrLocation.\"Special Equipment\" of\n CurrLocation.\"Special Equipment\"::\"According to Bin\":\n begin\n- GetBin(CurrLocation.Code, BinCode);\n- if CurrBin.\"Special Equipment Code\" <> '' then\n- exit(CurrBin.\"Special Equipment Code\");\n+ if BinCode <> '' then begin\n+ GetBin(CurrLocation.Code, BinCode);\n+ if CurrBin.\"Special Equipment Code\" <> '' then\n+ exit(CurrBin.\"Special Equipment Code\");\n+ end;\n \n GetItemAndSKU(ItemNo, LocationCode, VariantCode);\n if CurrStockKeepingUnit.\"Special Equipment Code\" <> '' then\n@@ -2115,8 +2121,10 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n if CurrItem.\"Special Equipment Code\" <> '' then\n exit(CurrItem.\"Special Equipment Code\");\n \n- GetBin(CurrLocation.Code, BinCode);\n- exit(CurrBin.\"Special Equipment Code\")\n+ if BinCode <> '' then begin\n+ GetBin(CurrLocation.Code, BinCode);\n+ exit(CurrBin.\"Special Equipment Code\");\n+ end;\n end\n end\n end;\n@@ -2155,6 +2163,7 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n procedure CreateATOPickLine(NewWarehouseActivityLine: Record \"Warehouse Activity Line\"; BinCode: Code[20]; var RemQtyToPickBase: Decimal)\n var\n ATOSalesLine: Record \"Sales Line\";\n+ ATOJobPlanningLine: Record \"Job Planning Line\";\n AssemblyHeader: Record \"Assembly Header\";\n AssemblySetup: Record \"Assembly Setup\";\n ReservationEntry: Record \"Reservation Entry\";\n@@ -2194,6 +2203,38 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n CreateATOInventoryMovementsAutomatically(AssemblyHeader, ATOInvtMovementsCreated, TotalATOInvtMovementsToBeCreated);\n end;\n end;\n+\n+ if (not IsInvtMovement) and\n+ WMSManagement.GetATOJobPlanningLine(NewWarehouseActivityLine.\"Source Type\",\n+ NewWarehouseActivityLine.\"Source No.\",\n+ NewWarehouseActivityLine.\"Source Line No.\",\n+ NewWarehouseActivityLine.\"Source Subline No.\",\n+ ATOJobPlanningLine)\n+ then begin\n+ ATOJobPlanningLine.AsmToOrderExists(AssemblyHeader);\n+ if NewWarehouseActivityLine.TrackingExists() then begin\n+ AssemblyHeader.SetReservationFilters(ReservationEntry);\n+ ReservationEntry.SetTrackingFilterFromWhseActivityLine(NewWarehouseActivityLine);\n+ ReservationEntry.SetRange(Positive, true);\n+ if ItemTrackingManagement.SumUpItemTracking(ReservationEntry, TempTrackingSpecification1, true, true) then\n+ QtyToAsmBase := Abs(TempTrackingSpecification1.\"Qty. to Handle (Base)\");\n+ end else\n+ QtyToAsmBase := ATOJobPlanningLine.QtyToAsmBaseOnATO();\n+ WhseItemTrackingSetup.CopyTrackingFromWhseActivityLine(NewWarehouseActivityLine);\n+ QtyToPickBase := QtyToAsmBase - WMSManagement.CalcQtyBaseOnATOInvtPickJob(ATOJobPlanningLine, WhseItemTrackingSetup);\n+ if QtyToPickBase > 0 then begin\n+ MakeWarehouseActivityHeader();\n+ if CurrLocation.\"Bin Mandatory\" and (BinCode = '') then\n+ AssemblyHeader.GetFromAssemblyBin(CurrLocation, BinCode);\n+ NewWarehouseActivityLine.\"Assemble to Order\" := true;\n+ MakeWarehouseActivityLine(NewWarehouseActivityLine, BinCode, QtyToPickBase, RemQtyToPickBase);\n+\n+ AssemblySetup.Get();\n+ if AssemblySetup.\"Create Movements Automatically\" then\n+ CreateATOInventoryMovementsAutomatically(AssemblyHeader, ATOInvtMovementsCreated, TotalATOInvtMovementsToBeCreated);\n+ end;\n+ end;\n+\n OnAfterCreateATOPickLine(QtyToPickBase, AssemblyHeader, NewWarehouseActivityLine, CurrWarehouseActivityHeader, RemQtyToPickBase);\n end;\n \ndiff --git a/App/Layers/W1/BaseApp/Warehouse/Journal/WMSManagement.Codeunit.al b/App/Layers/W1/BaseApp/Warehouse/Journal/WMSManagement.Codeunit.al\nindex dda50b4d..70d7546b 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Journal/WMSManagement.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Journal/WMSManagement.Codeunit.al\n@@ -1758,6 +1758,27 @@ codeunit 7302 \"WMS Management\"\n until WarehouseActivityLine.Next() = 0;\n end;\n \n+ local procedure SetFiltersOnATOInvtPickJob(JobPlanningLine: Record \"Job Planning Line\"; var WarehouseActivityLine: Record \"Warehouse Activity Line\")\n+ begin\n+ WarehouseActivityLine.SetRange(WarehouseActivityLine.\"Activity Type\", WarehouseActivityLine.\"Activity Type\"::\"Invt. Pick\");\n+ WarehouseActivityLine.SetSourceFilter(\n+ Database::Job, 0, JobPlanningLine.\"Job No.\", JobPlanningLine.\"Job Contract Entry No.\", JobPlanningLine.\"Line No.\", false);\n+ WarehouseActivityLine.SetRange(WarehouseActivityLine.\"Assemble to Order\", true);\n+ WarehouseActivityLine.SetTrackingFilterIfNotEmpty();\n+ end;\n+\n+ procedure CalcQtyBaseOnATOInvtPickJob(JobPlanningLine: Record \"Job Planning Line\"; WhseItemTrackingSetup: Record \"Item Tracking Setup\") QtyBase: Decimal\n+ var\n+ WarehouseActivityLine: Record \"Warehouse Activity Line\";\n+ begin\n+ WarehouseActivityLine.CopyTrackingFromItemTrackingSetup(WhseItemTrackingSetup);\n+ SetFiltersOnATOInvtPickJob(JobPlanningLine, WarehouseActivityLine);\n+ if WarehouseActivityLine.FindSet() then\n+ repeat\n+ QtyBase += WarehouseActivityLine.\"Qty. Outstanding (Base)\";\n+ until WarehouseActivityLine.Next() = 0;\n+ end;\n+\n procedure CheckOutboundBlockedBin(LocationCode: Code[10]; BinCode: Code[20]; ItemNo: Code[20]; VariantCode: Code[10]; UnitOfMeasureCode: Code[10])\n begin\n CheckBlockedBin(LocationCode, BinCode, ItemNo, VariantCode, UnitOfMeasureCode, false);\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136322'\nCodeunit 136322 Jobs - Assemble-to Order\n Testfunction PostInventoryPickForAssemblyItemRelatedToJobPlanningLineWithBin Failure (7.167 seconds)\n Error:\n Status must be equal to 'Released' in Assembly Header: Document Type=Order, No.=A00001. Current value is 'Open'.\n Call Stack:\n \"Assembly Header\"(Table 900).CreateInvtMovement line 11 - Base Application by Microsoft\n \"Create Inventory Pick/Movement\"(CodeUnit 7322).CreateATOInventoryMovementsAutomatically line 11 - Base Application by Microsoft\n \"Create Inventory Pick/Movement\"(CodeUnit 7322).CreateATOPickLine line 71 - Base Application by Microsoft\n \"Create Inventory Pick/Movement\"(CodeUnit 7322).InsertPickOrMoveBinWhseActLine line 15 - Base Application by Microsoft\n \"Create Inventory Pick/Movement\"(CodeUnit 7322).CreatePickOrMoveLine line 153 - Base Application by Microsoft\n \"Create Inventory Pick/Movement\"(CodeUnit 7322).CreatePickOrMoveFromJobPlanning line 48 - Base Application by Microsoft\n \"Create Inventory Pick/Movement\"(CodeUnit 7322).AutoCreatePickOrMove line 30 - Base Application by Microsoft\n \"Create Invt Put-away/Pick/Mvmt\"(Report 7323).\"Warehouse Request - OnAfterGetRecord\"(Trigger) line 49 - Base Application by Microsoft"} +{"InstanceID": "microsoftInternal__NAV-178045", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 1671.109, "tool_calls": 71, "total_tokens": 4874000, "TurnCount": 109}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":4,\"grep\":32,\"powershell\":3,\"report_intent\":3,\"store_memory\":1,\"task\":3,\"update_todo\":3,\"view\":21}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\nindex 7e739c29..7102c9a3 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\n@@ -1895,7 +1895,8 @@ codeunit 22 \"Item Jnl.-Post Line\"\n ReservEngineMgt.CloseSurplusTrackingEntry(ReservEntry);\n until ReservEntry.Next() = 0;\n StartApplication := true;\n- end;\n+ end else\n+ ReservEntry.SetRange(\"Reservation Status\", ReservEntry.\"Reservation Status\"::Reservation);\n \n if UseReservationApplication then begin\n ReservEntry2.SetLoadFields(\"Source Type\", \"Source Ref. No.\", \"Item No.\", \"Quantity (Base)\");\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137404'\nCodeunit 137404 SCM Manufacturing\n Testfunction ConsumptionIsPostedForMultipleILEsOfSameLotNo Failure (10.877 seconds)\n Error:\n You have insufficient quantity of Item GL00000000 on inventory.\n Call Stack:\n \"Production Journal Mgt\"(CodeUnit 5510).Handling line 30 - Base Application by Microsoft\n \"Released Prod. Order Lines\"(Page 99000832).ShowProductionJournal line 10 - Base Application by Microsoft\n \"Released Prod. Order Lines\"(Page 99000832).\"ProductionJournal - OnAction\"(Trigger) line 2 - Base Application by Microsoft"} +{"InstanceID": "microsoftInternal__NAV-208320", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 735.84, "tool_calls": 59, "total_tokens": 1415000, "TurnCount": 214}, "Project": "BaseApp", "ToolUsage": "{\"edit\":10,\"glob\":2,\"grep\":18,\"powershell\":2,\"report_intent\":3,\"task\":4,\"update_todo\":4,\"view\":16}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesCreditMemo.Page.al b/App/Layers/W1/BaseApp/Sales/Document/SalesCreditMemo.Page.al\nindex 84ba27e1..9030af95 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesCreditMemo.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesCreditMemo.Page.al\n@@ -550,6 +550,7 @@ page 44 \"Sales Credit Memo\"\n if Rec.\"Bill-to Customer No.\" <> xRec.\"Bill-to Customer No.\" then\n Rec.SetRange(\"Bill-to Customer No.\");\n \n+ BillToContact.GetOrClear(Rec.\"Bill-to Contact No.\");\n CurrPage.Update();\n end;\n }\n@@ -617,6 +618,11 @@ page 44 \"Sales Credit Memo\"\n Caption = 'Contact No';\n Importance = Additional;\n ToolTip = 'Specifies the number of the contact the invoice will be sent to.';\n+\n+ trigger OnValidate()\n+ begin\n+ BillToContact.GetOrClear(Rec.\"Bill-to Contact No.\");\n+ end;\n }\n field(\"Bill-to Contact\"; Rec.\"Bill-to Contact\")\n {\ndiff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesInvoice.Page.al b/App/Layers/W1/BaseApp/Sales/Document/SalesInvoice.Page.al\nindex ee0d93e0..2767c9ca 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesInvoice.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesInvoice.Page.al\n@@ -800,6 +800,7 @@ page 43 \"Sales Invoice\"\n if Rec.\"Bill-to Customer No.\" <> xRec.\"Bill-to Customer No.\" then\n Rec.SetRange(\"Bill-to Customer No.\");\n \n+ BillToContact.GetOrClear(Rec.\"Bill-to Contact No.\");\n CurrPage.Update();\n end;\n end;\n@@ -882,6 +883,11 @@ page 43 \"Sales Invoice\"\n Enabled = (BillToOptions = BillToOptions::\"Custom Address\") or (Rec.\"Bill-to Customer No.\" <> Rec.\"Sell-to Customer No.\");\n Importance = Additional;\n ToolTip = 'Specifies the number of the contact the invoice will be sent to.';\n+\n+ trigger OnValidate()\n+ begin\n+ BillToContact.GetOrClear(Rec.\"Bill-to Contact No.\");\n+ end;\n }\n field(\"Bill-to Contact\"; Rec.\"Bill-to Contact\")\n {\ndiff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesOrder.Page.al b/App/Layers/W1/BaseApp/Sales/Document/SalesOrder.Page.al\nindex 77cf2b18..24a2b829 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesOrder.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesOrder.Page.al\n@@ -809,6 +809,7 @@ page 42 \"Sales Order\"\n if Rec.\"Bill-to Customer No.\" <> xRec.\"Bill-to Customer No.\" then\n Rec.SetRange(\"Bill-to Customer No.\");\n \n+ BillToContact.GetOrClear(Rec.\"Bill-to Contact No.\");\n CurrPage.Update();\n end;\n end;\n@@ -891,6 +892,11 @@ page 42 \"Sales Order\"\n Enabled = (BillToOptions = BillToOptions::\"Custom Address\") or (Rec.\"Bill-to Customer No.\" <> Rec.\"Sell-to Customer No.\");\n Importance = Additional;\n ToolTip = 'Specifies the number of the contact the invoice will be sent to.';\n+\n+ trigger OnValidate()\n+ begin\n+ BillToContact.GetOrClear(Rec.\"Bill-to Contact No.\");\n+ end;\n }\n field(\"Bill-to Contact\"; Rec.\"Bill-to Contact\")\n {\ndiff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesQuote.Page.al b/App/Layers/W1/BaseApp/Sales/Document/SalesQuote.Page.al\nindex 7827a9ec..5139ce82 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesQuote.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesQuote.Page.al\n@@ -761,6 +761,7 @@ page 41 \"Sales Quote\"\n if Rec.\"Bill-to Customer No.\" <> xRec.\"Bill-to Customer No.\" then\n Rec.SetRange(\"Bill-to Customer No.\");\n \n+ BillToContact.GetOrClear(Rec.\"Bill-to Contact No.\");\n CurrPage.Update();\n end;\n }\n@@ -841,6 +842,11 @@ page 41 \"Sales Quote\"\n Enabled = (BillToOptions = BillToOptions::\"Custom Address\") or (Rec.\"Bill-to Customer No.\" <> Rec.\"Sell-to Customer No.\");\n Importance = Additional;\n ToolTip = 'Specifies the number of the contact the invoice will be sent to.';\n+\n+ trigger OnValidate()\n+ begin\n+ BillToContact.GetOrClear(Rec.\"Bill-to Contact No.\");\n+ end;\n }\n field(\"Bill-to Contact\"; Rec.\"Bill-to Contact\")\n {\ndiff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesReturnOrder.Page.al b/App/Layers/W1/BaseApp/Sales/Document/SalesReturnOrder.Page.al\nindex e9c58725..fa1f9825 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesReturnOrder.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesReturnOrder.Page.al\n@@ -611,6 +611,7 @@ page 6630 \"Sales Return Order\"\n if Rec.\"Bill-to Customer No.\" <> xRec.\"Bill-to Customer No.\" then\n Rec.SetRange(\"Bill-to Customer No.\");\n \n+ BillToContact.GetOrClear(Rec.\"Bill-to Contact No.\");\n CurrPage.Update();\n end;\n }\n@@ -686,6 +687,11 @@ page 6630 \"Sales Return Order\"\n Enabled = Rec.\"Bill-to Customer No.\" <> Rec.\"Sell-to Customer No.\";\n Importance = Additional;\n ToolTip = 'Specifies the number of the contact person at the billing address.';\n+\n+ trigger OnValidate()\n+ begin\n+ BillToContact.GetOrClear(Rec.\"Bill-to Contact No.\");\n+ end;\n }\n field(\"Bill-to Contact\"; Rec.\"Bill-to Contact\")\n {\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134386'\nCodeunit 134386 ERM Sales Documents II\n Testfunction UpdateEmailAndPhoneNoWhenChangeBillToOfSalesInvoice Failure (9.944 seconds)\n Error:\n AssertEquals for Field: BillToContactPhoneNo Expected = '333333333', Actual = '111111111'\n Call Stack:\n \"ERM Sales Documents II\"(CodeUnit 134386).UpdateEmailAndPhoneNoWhenChangeBillToOfSalesInvoice line 34 - Tests-ERM by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0"} +{"InstanceID": "microsoft__BCApps-4766", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 124.254, "tool_calls": 14, "total_tokens": 198200, "TurnCount": 25}, "Project": "Subscription Billing", "ToolUsage": "{\"edit\":2,\"glob\":1,\"report_intent\":2,\"task\":1,\"update_todo\":4,\"view\":4}", "output": "diff --git a/src/Apps/W1/Subscription Billing/App/Customer Contracts/Tables/CustSubContractLine.Table.al b/src/Apps/W1/Subscription Billing/App/Customer Contracts/Tables/CustSubContractLine.Table.al\nindex 91f83b1..6484d4d 100644\n--- a/src/Apps/W1/Subscription Billing/App/Customer Contracts/Tables/CustSubContractLine.Table.al\t\n+++ b/src/Apps/W1/Subscription Billing/App/Customer Contracts/Tables/CustSubContractLine.Table.al\t\n@@ -66,6 +66,7 @@ table 8062 \"Cust. Sub. Contract Line\"\n end;\n end;\n \n+ CheckAndDisconnectContractLine();\n TempCustomerContractLine := Rec;\n Init();\n SystemId := TempCustomerContractLine.SystemId;\ndiff --git a/src/Apps/W1/Subscription Billing/App/Vendor Contracts/Tables/VendSubContractLine.Table.al b/src/Apps/W1/Subscription Billing/App/Vendor Contracts/Tables/VendSubContractLine.Table.al\nindex 533581b..013f5e4 100644\n--- a/src/Apps/W1/Subscription Billing/App/Vendor Contracts/Tables/VendSubContractLine.Table.al\t\n+++ b/src/Apps/W1/Subscription Billing/App/Vendor Contracts/Tables/VendSubContractLine.Table.al\t\n@@ -63,6 +63,7 @@ table 8065 \"Vend. Sub. Contract Line\"\n end;\n end;\n \n+ CheckAndDisconnectContractLine();\n TempVendorContractLine := Rec;\n Init();\n SystemId := TempVendorContractLine.SystemId;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '148155'\nCodeunit 148155 Contracts Test\n Testfunction ContractLineDisconnectServiceOnNoChange Failure (9.246 seconds)\n Error:\n Item with the No. does not exist.\n Call Stack:\n \"Cust. Sub. Contract Line\"(Table 8062).\"No. - OnValidate\"(Trigger) line 10 - Subscription Billing by Microsoft version 27.0.0.0\n \"Contracts Test\"(CodeUnit 148155).ContractLineDisconnectServiceOnNoChange line 24 - Subscription Billing Test by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0\nSetting test codeunit range '148154'\nCodeunit 148154 Vendor Contracts Test\n Testfunction ContractLineDisconnectServiceOnNoChange Failure (1.237 seconds)\n Error:\n Item with the No. does not exist.\n Call Stack:\n \"Vend. Sub. Contract Line\"(Table 8065).\"No. - OnValidate\"(Trigger) line 10 - Subscription Billing by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-209450", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 331.645, "tool_calls": 40, "total_tokens": 640700, "TurnCount": 64}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":5,\"glob\":2,\"grep\":10,\"powershell\":2,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":13}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\nindex bb5d38d2..3c4cfc7b 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\n@@ -1075,6 +1075,8 @@ table 1003 \"Job Planning Line\"\n TestField(Type, Type::Item);\n TestField(\"No.\");\n TestField(\"Usage Link\");\n+ GetItem();\n+ Item.TestField(Type, Item.Type::Inventory);\n end;\n CalcFields(\"Reserved Qty. (Base)\");\n if (Reserve = Reserve::Never) and (\"Reserved Qty. (Base)\" > 0) then\n@@ -1667,7 +1669,7 @@ table 1003 \"Job Planning Line\"\n GetItemTranslation();\n \"Gen. Prod. Posting Group\" := Item.\"Gen. Prod. Posting Group\";\n Validate(\"Unit of Measure Code\", Item.\"Base Unit of Measure\");\n- if \"Usage Link\" then\n+ if \"Usage Link\" and Item.IsInventoriableType() then\n if Item.Reserve = Item.Reserve::Optional then\n Reserve := Job.Reserve\n else\n@@ -2649,6 +2651,8 @@ table 1003 \"Job Planning Line\"\n begin\n TestField(Type, Type::Item);\n TestField(\"No.\");\n+ if IsNonInventoriableItem() then\n+ FieldError(Type);\n if Reserve = Reserve::Never then\n FieldError(Reserve);\n JobPlanningLineReserve.ReservQuantity(Rec, QtyToReserve, QtyToReserveBase);\ndiff --git a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLineReserve.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLineReserve.Codeunit.al\nindex 9a2e42ec..bde03bf2 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLineReserve.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLineReserve.Codeunit.al\n@@ -45,6 +45,8 @@ codeunit 1032 \"Job Planning Line-Reserve\"\n JobPlanningLine.TestField(Type, JobPlanningLine.Type::Item);\n JobPlanningLine.TestField(\"No.\");\n JobPlanningLine.TestField(\"Planning Date\");\n+ if JobPlanningLine.IsNonInventoriableItem() then\n+ JobPlanningLine.FieldError(Type);\n \n JobPlanningLine.CalcFields(\"Reserved Qty. (Base)\");\n CheckReservedQtyBase(JobPlanningLine, QuantityBase);\n@@ -973,6 +975,8 @@ codeunit 1032 \"Job Planning Line-Reserve\"\n if SourceRecRef.Number = Database::\"Job Planning Line\" then begin\n SourceRecRef.SetTable(JobPlanningLine);\n JobPlanningLine.TestField(Type, JobPlanningLine.Type::Item);\n+ if JobPlanningLine.IsNonInventoriableItem() then\n+ JobPlanningLine.FieldError(Type);\n end;\n end;\n \n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136302'\nCodeunit 136302 Job Consumption Purchase\n Testfunction PurchaseLineNotReservedWhenItemTypeNonInventoryOrService Failure (16.24 seconds)\n Error:\n Type must be equal to 'Inventory' in Item: No.=GL00000001. Current value is 'Non-Inventory'.\n Call Stack:\n \"Job Planning Line\"(Table 1003).\"Reserve - OnValidate\"(Trigger) line 7 - Base Application by Microsoft version 26.0.0.0\n \"Job Consumption Purchase\"(CodeUnit 136302).PurchaseLineNotReservedWhenItemTypeNonInventoryOrService line 34 - Tests-Job by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-217797", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 165.78, "tool_calls": 15, "total_tokens": 236900, "TurnCount": 36}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":2,\"report_intent\":2,\"task\":2,\"update_todo\":2,\"view\":6}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Availability/CalcItemAvailability.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Availability/CalcItemAvailability.Codeunit.al\nindex 21992d4e..381d3804 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Availability/CalcItemAvailability.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Availability/CalcItemAvailability.Codeunit.al\n@@ -906,6 +906,10 @@ codeunit 5530 \"Calc. Item Availability\"\n RecRef.SetTable(RequisitionLine);\n ReqWkshTemplate.Get(RequisitionLine.\"Worksheet Template Name\");\n ReqWkshTemplate.TestField(\"Page ID\");\n+ RequisitionLine.FilterGroup := 2;\n+ RequisitionLine.SetRange(\"Worksheet Template Name\", RequisitionLine.\"Worksheet Template Name\");\n+ RequisitionLine.SetRange(\"Journal Batch Name\", RequisitionLine.\"Journal Batch Name\");\n+ RequisitionLine.FilterGroup := 0;\n PAGE.RunModal(ReqWkshTemplate.\"Page ID\", RequisitionLine);\n end;\n Database::\"Planning Component\":\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137009'\nCodeunit 137009 SCM Availability by Event\n Testfunction LookupItemAvailabilityByEventOnItemCardOpenTheCorrectPlanningWorksheetBatch Failure (11.403 seconds)\n Error:\n AssertEquals for Field: CurrentWkshBatchName Expected = 'DEFAULT', Actual = 'GU00000004'\n Call Stack:\n \"SCM Availability by Event\"(CodeUnit 137009).PlanningWorksheetModalPageHandler line 7 - Tests-SCM by Microsoft version 27.0.0.0\n \"Calc. Item Availability\"(CodeUnit 5530).ShowDocument line 148 - Base Application by Microsoft version 27.0.0.0\n \"Calc. Inventory Page Data\"(CodeUnit 5531).ShowDocument line 2 - Base Application by Microsoft version 27.0.0.0\n \"Item Availability by Event\"(Page 5530).\"Show Document - OnAction\"(Trigger) line 2 - Base Application by Microsoft version 27.0.0.0\n \"SCM Availability by Event\"(CodeUnit 137009).ItemAvailabilityByEventPageHandler line 6 - Tests-SCM by Microsoft version 27.0.0.0\n \"Item Availability Forms Mgt\"(CodeUnit 353).ShowItemAvailabilityByEvent line 24 - Base Application by Microsoft version 27.0.0.0\n \"Item Availability Forms Mgt\"(CodeUnit 353).ShowItemAvailabilityFromItem line 22 - Base Application by Microsoft version 27.0.0.0\n \"Item Card\"(Page 30).\" - OnAction\"(Trigger) line 2 - Base Application by Microsoft version 27.0.0.0\n \"SCM Availability by Event\"(CodeUnit 137009).LookupItemAvailabilityByEventOnItemCardOpenTheCorrectPlanningWorksheetBatch line 46 - Tests-SCM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-216918", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 121.392, "tool_calls": 21, "total_tokens": 295800, "TurnCount": 13}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":4,\"report_intent\":2,\"store_memory\":1,\"update_todo\":3,\"view\":9}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\nindex d541dd08..30c4da51 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\n@@ -451,6 +451,7 @@ codeunit 1004 \"Job Transfer Line\"\n Job: Record Job;\n JobTask: Record \"Job Task\";\n NonDeductibleVAT: Codeunit \"Non-Deductible VAT\";\n+ NonDeductibleVATAmountJobCur: Decimal;\n begin\n OnBeforeFromGenJnlLineToJnlLine(JobJnlLine, GenJnlLine);\n \n@@ -498,18 +499,29 @@ codeunit 1004 \"Job Transfer Line\"\n JobJnlLine.\"Total Cost (LCY)\" := GenJnlLine.\"Job Total Cost (LCY)\";\n JobJnlLine.\"Total Cost\" := GenJnlLine.\"Job Total Cost\";\n \n- if NonDeductibleVAT.UseNonDeductibleVATAmountForJobCost() then\n+ if NonDeductibleVAT.UseNonDeductibleVATAmountForJobCost() then begin\n+ if JobJnlLine.\"Currency Code\" <> '' then\n+ NonDeductibleVATAmountJobCur :=\n+ CurrencyExchRate.ExchangeAmtLCYToFCY(\n+ JobJnlLine.\"Posting Date\",\n+ JobJnlLine.\"Currency Code\",\n+ GenJnlLine.\"Non-Deductible VAT Amount LCY\",\n+ JobJnlLine.\"Currency Factor\")\n+ else\n+ NonDeductibleVATAmountJobCur := GenJnlLine.\"Non-Deductible VAT Amount LCY\";\n+\n if JobJnlLine.\"Unit Cost\" > 0 then begin\n JobJnlLine.\"Unit Cost (LCY)\" += Abs(Round(GenJnlLine.\"Non-Deductible VAT Amount LCY\" / JobJnlLine.Quantity));\n- JobJnlLine.\"Unit Cost\" += Abs(Round(GenJnlLine.\"Non-Deductible VAT Amount\" / JobJnlLine.Quantity));\n+ JobJnlLine.\"Unit Cost\" += Abs(Round(NonDeductibleVATAmountJobCur / JobJnlLine.Quantity));\n JobJnlLine.\"Total Cost (LCY)\" += Abs(GenJnlLine.\"Non-Deductible VAT Amount LCY\");\n- JobJnlLine.\"Total Cost\" += Abs(GenJnlLine.\"Non-Deductible VAT Amount\");\n+ JobJnlLine.\"Total Cost\" += Abs(NonDeductibleVATAmountJobCur);\n end else begin\n JobJnlLine.\"Unit Cost (LCY)\" += Round(GenJnlLine.\"Non-Deductible VAT Amount LCY\" / JobJnlLine.Quantity);\n- JobJnlLine.\"Unit Cost\" += Round(GenJnlLine.\"Non-Deductible VAT Amount\" / JobJnlLine.Quantity);\n+ JobJnlLine.\"Unit Cost\" += Round(NonDeductibleVATAmountJobCur / JobJnlLine.Quantity);\n JobJnlLine.\"Total Cost (LCY)\" += GenJnlLine.\"Non-Deductible VAT Amount LCY\";\n- JobJnlLine.\"Total Cost\" += GenJnlLine.\"Non-Deductible VAT Amount\";\n+ JobJnlLine.\"Total Cost\" += NonDeductibleVATAmountJobCur;\n end;\n+ end;\n \n JobJnlLine.\"Unit Price (LCY)\" := GenJnlLine.\"Job Unit Price (LCY)\";\n JobJnlLine.\"Unit Price\" := GenJnlLine.\"Job Unit Price\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134284'\nCodeunit 134284 Non Ded. VAT Misc.\n Testfunction JobJnlLineWithNonDeductNormalVATInFCYFromGenJnlLine Failure (4.16 seconds)\n Error:\n Assert.AreEqual failed. Expected:<10.76> (Decimal). Actual:<10.31> (Decimal). Unit Cost (LCY) with Non-Deductible VAT amount is not correct in Job Journal Line.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"Non Ded. VAT Misc.\"(CodeUnit 134284).JobJnlLineWithNonDeductNormalVATInFCYFromGenJnlLine line 32 - Tests-VAT by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoft__BCApps-5633", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 554.613, "tool_calls": 20, "total_tokens": 589500, "TurnCount": 38}, "Project": "Shopify", "ToolUsage": "{\"edit\":2,\"powershell\":1,\"report_intent\":3,\"task\":3,\"update_todo\":3,\"view\":8}", "output": "diff --git a/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al b/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al\nindex 1f790f9..a878b20 100644\n--- a/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al\n@@ -58,6 +58,8 @@ codeunit 30190 \"Shpfy Export Shipments\"\n if ShopifyOrderHeader.Get(SalesShipmentHeader.\"Shpfy Order Id\") then begin\n ShopifyCommunicationMgt.SetShop(ShopifyOrderHeader.\"Shop Code\");\n Shop.Get(ShopifyOrderHeader.\"Shop Code\");\n+ if IsFulfillmentServiceLocation(Shop.Code, LocationId) then\n+ exit;\n FulfillmentOrderRequests := CreateFulfillmentOrderRequest(SalesShipmentHeader, Shop, LocationId, DeliveryMethodType, AssignedFulfillmentOrderIds);\n if FulfillmentOrderRequests.Count <> 0 then\n foreach FulfillmentOrderRequest in FulfillmentOrderRequests do begin\n@@ -249,4 +251,13 @@ codeunit 30190 \"Shpfy Export Shipments\"\n if FulfillmentOrdersAPI.AcceptFulfillmentRequest(Shop, FulfillmentOrderHeader) then\n AssignedFulfillmentOrderIds.Remove(FulfillmentOrderId);\n end;\n+\n+ local procedure IsFulfillmentServiceLocation(ShopCode: Code[20]; LocationId: BigInteger): Boolean\n+ var\n+ ShopLocation: Record \"Shpfy Shop Location\";\n+ begin\n+ if ShopLocation.Get(ShopCode, LocationId) then\n+ exit(ShopLocation.\"Is Fulfillment Service\");\n+ exit(false);\n+ end;\n }\n\\ No newline at end of file\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139606'\nCodeunit 139606 Shpfy Shipping Test\n Testfunction UnitTestExportShipmentThirdParty Failure (5.283 seconds)\n Error:\n Assert.AreEqual failed. Expected:<0> (Integer). Actual:<1> (Integer). FulfillmentRequest count check.\n Call Stack:\n \"Library Assert\"(CodeUnit 130002).AreEqual line 3 - Library Assert by Microsoft version 27.2.0.0\n \"Shpfy Shipping Test\"(CodeUnit 139606).UnitTestExportShipmentThirdParty line 26 - Shopify Connector Test by Microsoft version 27.2.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.2.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.2.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.2.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.2.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.2.0.0"} +{"InstanceID": "microsoftInternal__NAV-218856", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 378.836, "tool_calls": 15, "total_tokens": 263300, "TurnCount": 99}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":1,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":6}", "output": "diff --git a/App/Layers/W1/BaseApp/Service/Contract/ServiceContractHeader.Table.al b/App/Layers/W1/BaseApp/Service/Contract/ServiceContractHeader.Table.al\nindex 4f315c8f..6a30fe11 100644\n--- a/App/Layers/W1/BaseApp/Service/Contract/ServiceContractHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Service/Contract/ServiceContractHeader.Table.al\n@@ -2240,6 +2240,7 @@ table 5965 \"Service Contract Header\"\n ContBusinessRelation: Record \"Contact Business Relation\";\n Cust: Record Customer;\n Cont: Record Contact;\n+ ContactBusinessRelationFound: Boolean;\n IsHandled: Boolean;\n begin\n IsHandled := false;\n@@ -2265,7 +2266,11 @@ table 5965 \"Service Contract Header\"\n exit;\n end;\n \n- if ContBusinessRelation.FindByContact(ContBusinessRelation.\"Link to Table\"::Customer, Cont.\"Company No.\") then begin\n+ if Cont.Type = Cont.Type::Person then\n+ ContactBusinessRelationFound := ContBusinessRelation.FindByContact(ContBusinessRelation.\"Link to Table\"::Customer, Cont.\"No.\");\n+ if not ContactBusinessRelationFound then\n+ ContactBusinessRelationFound := ContBusinessRelation.FindByContact(ContBusinessRelation.\"Link to Table\"::Customer, Cont.\"Company No.\");\n+ if ContactBusinessRelationFound then begin\n if (\"Customer No.\" <> '') and\n (\"Customer No.\" <> ContBusinessRelation.\"No.\")\n then\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136102'\nCodeunit 136102 Service Contracts\n Testfunction ChangeCustomerOfTypePeronInServiceContract Failure (7.584 seconds)\n Error:\n Contact CT000024 CT000024 is related to a different company than customer C00010.\n Call Stack:\n \"Service Contract Header\"(Table 5965).\"Bill-to Contact No. - OnValidate\"(Trigger) line 21 - Base Application by Microsoft version 27.0.0.0\n \"Service Contract Header\"(Table 5965).UpdateCust line 51 - Base Application by Microsoft version 27.0.0.0\n ServContractManagement(CodeUnit 5940).ChangeCustNoOnServContract line 46 - Base Application by Microsoft version 27.0.0.0\n \"Service Contracts\"(CodeUnit 136102).ChangeCustomerOfTypePeronInServiceContract line 34 - Tests-SCM-Service by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-181900", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 237.94, "tool_calls": 23, "total_tokens": 541600, "TurnCount": 27}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":4,\"grep\":2,\"powershell\":1,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":9}", "output": "diff --git a/App/Layers/W1/BaseApp/OtherCapabilities/Approvals/ApprovalsMgmt.Codeunit.al b/App/Layers/W1/BaseApp/OtherCapabilities/Approvals/ApprovalsMgmt.Codeunit.al\nindex 266d61e5..266db7d0 100644\n--- a/App/Layers/W1/BaseApp/OtherCapabilities/Approvals/ApprovalsMgmt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/OtherCapabilities/Approvals/ApprovalsMgmt.Codeunit.al\n@@ -2504,6 +2504,8 @@ codeunit 1535 \"Approvals Mgmt.\"\n if ApprovalStatusName = 'Open' then\n exit(CopyStr(PendingApprovalLbl, 1, 20));\n if ApprovalStatusName = 'Approved' then begin\n+ if HasPendingApprovalEntriesForRecord(ApprovalEntry) then\n+ exit(CopyStr(PendingApprovalLbl, 1, 20));\n RestrictedRecord.SetRange(Details, RestrictBatchUsageDetailsLbl);\n if not RestrictedRecord.IsEmpty() then begin\n RestrictedRecord.Reset();\n@@ -2533,6 +2535,8 @@ codeunit 1535 \"Approvals Mgmt.\"\n if ApprovalStatusName = 'Open' then\n exit(CopyStr(PendingApprovalLbl, 1, 20));\n if ApprovalStatusName = 'Approved' then begin\n+ if HasPendingApprovalEntriesForRecord(ApprovalEntry) then\n+ exit(CopyStr(PendingApprovalLbl, 1, 20));\n RestrictedRecord.SetRange(\"Record ID\", GenJournalLine.RecordId);\n if not RestrictedRecord.IsEmpty() then\n exit(CopyStr(ImposedRestrictionLbl, 1, 20));\n@@ -2558,6 +2562,16 @@ codeunit 1535 \"Approvals Mgmt.\"\n exit(FieldRef.GetEnumValueCaption(ApprovalEntry.Status.AsInteger() + 1));\n end;\n \n+ local procedure HasPendingApprovalEntriesForRecord(ApprovalEntry: Record \"Approval Entry\"): Boolean\n+ var\n+ OpenApprovalEntry: Record \"Approval Entry\";\n+ begin\n+ OpenApprovalEntry.SetRange(\"Table ID\", ApprovalEntry.\"Table ID\");\n+ OpenApprovalEntry.SetRange(\"Record ID to Approve\", ApprovalEntry.\"Record ID to Approve\");\n+ OpenApprovalEntry.SetFilter(Status, '%1|%2', OpenApprovalEntry.Status::Open, OpenApprovalEntry.Status::Created);\n+ exit(not OpenApprovalEntry.IsEmpty());\n+ end;\n+\n procedure CleanGenJournalApprovalStatus(GenJournalLine: Record \"Gen. Journal Line\"; var GenJnlBatchApprovalStatus: Text[20]; var GenJnlLineApprovalStatus: Text[20])\n var\n GenJournalBatch: Record \"Gen. Journal Batch\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134321'\nCodeunit 134321 General Journal Batch Approval\n Testfunction ShowImposedRestrictionBatchStatusForWorkflowUserGroupIfFirstApprovalEntryIsApproved Failure (6.53 seconds)\n Error:\n Assert.AreEqual failed. Expected: (Text). Actual: (Text). Imposed restriction is not shown.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"General Journal Batch Approval\"(CodeUnit 134321).ShowImposedRestrictionBatchStatusForWorkflowUserGroupIfFirstApprovalEntryIsApproved line 30 - Tests-General Journal by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"InstanceID": "microsoftInternal__NAV-216057", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 213.685, "tool_calls": 30, "total_tokens": 463300, "TurnCount": 101}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":2,\"grep\":6,\"read_agent\":4,\"report_intent\":2,\"store_memory\":1,\"task\":3,\"update_todo\":2,\"view\":9}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al\nindex 052f4eb6..197ae942 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al\n@@ -626,8 +626,9 @@ table 99000853 \"Inventory Profile\"\n if ReservationEntry.FindSet() then\n repeat\n InsertTracking := not\n- ((ReservationEntry.\"Reservation Status\" = ReservationEntry.\"Reservation Status\"::Reservation) and\n- (ReservationEntry.Binding = ReservationEntry.Binding::\" \"));\n+ (((ReservationEntry.\"Reservation Status\" = ReservationEntry.\"Reservation Status\"::Reservation) and\n+ (ReservationEntry.Binding = ReservationEntry.Binding::\" \")) or\n+ (ReservationEntry.\"Reservation Status\" = ReservationEntry.\"Reservation Status\"::Surplus));\n if InsertTracking and ReservationEntry.TrackingExists() and\n (ReservationEntry.\"Source Type\" <> Database::\"Item Ledger Entry\")\n then begin\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137045'\nCodeunit 137045 SCM Bugfixes\n Testfunction NoDuplicateSurplusReservationEntriesOnRecalculateRequisitionWorksheet Failure (14.18 seconds)\n Error:\n Assert.RecordCount failed. Expected number of Reservation Entry entries: 2. Actual: 3. Filters: Source Type: 39, Source ID: 106009. Records: 2, Yes, GL00000000, , 50, Prospect, , 06/03/26, 0, 39, 1, 106009, , 0, 10000, 0, 06/03/26, , , ADMIN, , 1, 50, , No, Unlimited, 0, , , 50, 50, 0, , , No, GL00000003, , 0, No, , Lot No., No, , , 0, ; 3, Yes, GL00000000, , 100, Tracking, , 02/09/26, 0, 39, 1, 106009, , 0, 10000, 0, 06/03/26, 06/03/26, , ADMIN, , 1, 100, , No, Unlimited, 0, , , 100, 100, 0, , , No, GL00000003, , 0, No, , Lot No., No, , , 0, ; 4, Yes, GL00000000, , 50, Surplus, , 02/09/26, 0, 39, 1, 106009, , 0, 10000, 0, 06/03/26, , , ADMIN, , 1, 50, , Yes, Unlimited, 0, , , 50, 50, 0, , , No, GL00000003, , 0, No, , Lot No., No, , , 0, ; \n Call Stack:\n Assert(CodeUnit 130000).RecordCount line 18 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"SCM Bugfixes\"(CodeUnit 137045).AssertReservationEntryCount line 6 - Tests-SCM by Microsoft version 27.0.0.0\n \"SCM Bugfixes\"(CodeUnit 137045).NoDuplicateSurplusReservationEntriesOnRecalculateRequisitionWorksheet line 51 - Tests-SCM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-176194", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 406.753, "tool_calls": 38, "total_tokens": 957300, "TurnCount": 63}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":2,\"grep\":16,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":13}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesLine.Table.al b/App/Layers/W1/BaseApp/Sales/Document/SalesLine.Table.al\nindex f6e57fd4..3eadd470 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesLine.Table.al\n@@ -3835,7 +3835,8 @@ table 37 \"Sales Line\"\n \n GetSalesSetup();\n if (SalesSetup.\"Default Quantity to Ship\" = SalesSetup.\"Default Quantity to Ship\"::Remainder) or\n- (\"Document Type\" = \"Document Type\"::Invoice)\n+ (\"Document Type\" = \"Document Type\"::Invoice) or\n+ (Type = Type::\"Charge (Item)\")\n then begin\n \"Qty. to Ship\" := \"Outstanding Quantity\";\n \"Qty. to Ship (Base)\" := \"Outstanding Qty. (Base)\";\n@@ -3862,7 +3863,8 @@ table 37 \"Sales Line\"\n \n GetSalesSetup();\n if (SalesSetup.\"Default Quantity to Ship\" = SalesSetup.\"Default Quantity to Ship\"::Remainder) or\n- (\"Document Type\" = \"Document Type\"::\"Credit Memo\")\n+ (\"Document Type\" = \"Document Type\"::\"Credit Memo\") or\n+ (Type = Type::\"Charge (Item)\")\n then begin\n \"Return Qty. to Receive\" := \"Outstanding Quantity\";\n \"Return Qty. to Receive (Base)\" := \"Outstanding Qty. (Base)\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134329'\nCodeunit 134329 ERM Purchase Return Order\n Testfunction GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToReceiveIsBlankInPurchPayablesSetup Failure (13.227 seconds)\n Error:\n Qty. to Invoice must have a value in Purchase Line: Document Type=Return Order, Document No.=1001, Line No.=20000. It cannot be zero or empty.\n Call Stack:\n \"Item Charge Assignment (Purch)\"(Table 5805).\"Qty. to Assign - OnValidate\"(Trigger) line 4 - Base Application by Microsoft\n \"Item Charge Assgnt. (Purch.)\"(CodeUnit 5805).InsertItemChargeAssignmentWithValuesTo line 20 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyFromPurchLineItemChargeAssign line 47 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyPurchInvLinesToDoc line 144 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyPurchaseLinesToDoc line 15 - Base Application by Microsoft\n \"Posted Purchase Document Lines\"(Page 5855).CopyLineToDoc line 23 - Base Application by Microsoft\n \"Purchase Header\"(Table 38).GetPstdDocLinesToReverse line 9 - Base Application by Microsoft\n \"Purchase Return Order\"(Page 6640).\"GetPostedDocumentLinesToReverse - OnAction\"(Trigger) line 2 - Base Application by Microsoft\nSetting test codeunit range '134387'\nCodeunit 134387 ERM Sales Documents III\n Testfunction GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToShipIsBlankInSalesReceiSetup Failure (4.234 seconds)\n Error:\n Qty. to Invoice must have a value in Sales Line: Document Type=Return Order, Document No.=1001, Line No.=30000. It cannot be zero or empty.\n Call Stack:"} +{"InstanceID": "microsoftInternal__NAV-210200", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 281.707, "tool_calls": 31, "total_tokens": 630700, "TurnCount": 66}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":12,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":13}", "output": "diff --git a/App/Layers/W1/BaseApp/Service/Document/StandardServiceCode.Table.al b/App/Layers/W1/BaseApp/Service/Document/StandardServiceCode.Table.al\nindex 986aeff9..6ea59981 100644\n--- a/App/Layers/W1/BaseApp/Service/Document/StandardServiceCode.Table.al\n+++ b/App/Layers/W1/BaseApp/Service/Document/StandardServiceCode.Table.al\n@@ -191,6 +191,8 @@ table 5996 \"Standard Service Code\"\n ServLine.\"Line No.\" := ServLine.GetLineNo();\n OnBeforeInsertServLine(ServLine);\n ServLine.Insert(true);\n+ if (ServLine.Type = ServLine.Type::Item) and (ServLine.Reserve = ServLine.Reserve::Always) then\n+ ServLine.AutoReserve(false);\n InsertExtendedText(ServLine);\n end;\n until StdServLine.Next() = 0;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136119'\nCodeunit 136119 Service Standard Codes\n Testfunction ReservationEntryMustBeCreatedWhenReserveIsAlwaysInServiceLine Failure (7.297 seconds)\n Error:\n Assert.AreEqual failed. Expected:<5> (Integer). Actual:<0> (Decimal). Reserved Qty. (Base) must be equal to 5 in Service Line.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 26.0.0.0\n \"Service Standard Codes\"(CodeUnit 136119).ReservationEntryMustBeCreatedWhenReserveIsAlwaysInServiceLine line 61 - Tests-SCM-Service by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-220036", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 153.513, "tool_calls": 26, "total_tokens": 333000, "TurnCount": 32}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"glob\":1,\"grep\":8,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":9}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al b/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\nindex 9fdc21c5..f8028c2b 100644\n--- a/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\n@@ -2302,7 +2302,11 @@ table 18 Customer\n begin\n Clear(PrimaryContact);\n if Customer.Get(CustomerNo) then\n- if PrimaryContact.Get(Customer.\"Primary Contact No.\") then;\n+ if not PrimaryContact.Get(Customer.\"Primary Contact No.\") then begin\n+ PrimaryContact.\"E-Mail\" := Customer.\"E-Mail\";\n+ PrimaryContact.\"Phone No.\" := Customer.\"Phone No.\";\n+ PrimaryContact.\"Mobile Phone No.\" := Customer.\"Mobile Phone No.\";\n+ end;\n end;\n \n local procedure GetCustomerPriceGroupPriceCalcMethod(): Enum \"Price Calculation Method\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134905'\nCodeunit 134905 ERM Issued Reminder Addnl Fee\n Testfunction VerifyEmailOnReminderPageWhenCustomerHasNoContacts Success (19.12 seconds)\n\u001b[32m[12:07:30] Tests passed for Codeunit 134905\u001b[0m\nSetting test codeunit range '134825'\nCodeunit 134825 UT Customer Table\n Testfunction GetPrimaryConactCustomerWithoutContact Failure (1.89 seconds)\n Error:\n Assert.IsTrue failed. Contact No. should not be empty\n Call Stack:\n Assert(CodeUnit 130000).IsTrue line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"UT Customer Table\"(CodeUnit 134825).GetPrimaryConactCustomerWithoutContact line 15 - Tests-Misc by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-218323", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 369.395, "tool_calls": 72, "total_tokens": 2714800, "TurnCount": 72}, "Project": "BaseApp", "ToolUsage": "{\"edit\":9,\"glob\":2,\"grep\":19,\"powershell\":3,\"report_intent\":2,\"task\":2,\"update_todo\":2,\"view\":33}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al b/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al\nindex 88068be0..ff89afe0 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al\n@@ -307,6 +307,8 @@ report 20 \"Calc. and Post VAT Settlement\"\n Clear(GenJnlLine);\n GenJnlLine.\"System-Created Entry\" := true;\n GenJnlLine.\"Account Type\" := GenJnlLine.\"Account Type\"::\"G/L Account\";\n+ GenJnlLine.\"Journal Template Name\" := GenJnlLineReq.\"Journal Template Name\";\n+ GenJnlLine.\"Journal Batch Name\" := GenJnlLineReq.\"Journal Batch Name\";\n case VATType of\n VATEntry.Type::Purchase:\n GenJnlLine.Description :=\n@@ -516,6 +518,8 @@ report 20 \"Calc. and Post VAT Settlement\"\n GenJnlLine.Init();\n GenJnlLine.\"System-Created Entry\" := true;\n GenJnlLine.\"Account Type\" := GenJnlLine.\"Account Type\"::\"G/L Account\";\n+ GenJnlLine.\"Journal Template Name\" := GenJnlLineReq.\"Journal Template Name\";\n+ GenJnlLine.\"Journal Batch Name\" := GenJnlLineReq.\"Journal Batch Name\";\n \n GLAccSettle.TestField(\"Gen. Posting Type\", GenJnlLine.\"Gen. Posting Type\"::\" \");\n GLAccSettle.TestField(\"VAT Bus. Posting Group\", '');\n@@ -608,6 +612,48 @@ report 20 \"Calc. and Post VAT Settlement\"\n Caption = 'VAT Date';\n ToolTip = 'Specifies the VAT date for the transfer to the VAT account. This field must be filled in.';\n }\n+ field(JnlTemplateName; GenJnlLineReq.\"Journal Template Name\")\n+ {\n+ ApplicationArea = Basic, Suite;\n+ Caption = 'Journal Template Name';\n+ TableRelation = \"Gen. Journal Template\";\n+ ToolTip = 'Specifies the name of the journal template that is used for the posting.';\n+ Visible = IsJournalTemplNameVisible;\n+\n+ trigger OnValidate()\n+ var\n+ GenJnlManagement: Codeunit GenJnlManagement;\n+ begin\n+ GenJnlManagement.SetJnlBatchName(GenJnlLineReq);\n+ if GenJnlLineReq.\"Journal Batch Name\" <> '' then\n+ GenJnlBatch.Get(GenJnlLineReq.\"Journal Template Name\", GenJnlLineReq.\"Journal Batch Name\");\n+ end;\n+ }\n+ field(JnlBatchName; GenJnlLineReq.\"Journal Batch Name\")\n+ {\n+ ApplicationArea = Basic, Suite;\n+ Caption = 'Journal Batch Name';\n+ Lookup = true;\n+ ToolTip = 'Specifies the name of the journal batch that is used for the posting.';\n+ Visible = IsJournalTemplNameVisible;\n+\n+ trigger OnLookup(var Text: Text): Boolean\n+ var\n+ GenJnlManagement: Codeunit GenJnlManagement;\n+ begin\n+ GenJnlManagement.SetJnlBatchName(GenJnlLineReq);\n+ if GenJnlLineReq.\"Journal Batch Name\" <> '' then\n+ GenJnlBatch.Get(GenJnlLineReq.\"Journal Template Name\", GenJnlLineReq.\"Journal Batch Name\");\n+ end;\n+\n+ trigger OnValidate()\n+ begin\n+ if GenJnlLineReq.\"Journal Batch Name\" <> '' then begin\n+ GenJnlLineReq.TestField(\"Journal Template Name\");\n+ GenJnlBatch.Get(GenJnlLineReq.\"Journal Template Name\", GenJnlLineReq.\"Journal Batch Name\");\n+ end;\n+ end;\n+ }\n field(DocumentNo; DocNo)\n {\n ApplicationArea = Basic, Suite;\n@@ -676,6 +722,12 @@ report 20 \"Calc. and Post VAT Settlement\"\n actions\n {\n }\n+\n+ trigger OnOpenPage()\n+ begin\n+ GLSetup.Get();\n+ IsJournalTemplNameVisible := GLSetup.\"Journal Templ. Name Mandatory\";\n+ end;\n }\n \n labels\n@@ -695,6 +747,8 @@ report 20 \"Calc. and Post VAT Settlement\"\n begin\n OnBeforePreReport(\"VAT Posting Setup\", PostSettlement, GLAccSettle, DocNo);\n \n+ GLSetup.Get();\n+\n if PostingDate = 0D then\n Error(Text000);\n \n@@ -710,6 +764,14 @@ report 20 \"Calc. and Post VAT Settlement\"\n Error(Text002);\n GLAccSettle.Find();\n \n+ if GLSetup.\"Journal Templ. Name Mandatory\" then begin\n+ if GenJnlLineReq.\"Journal Template Name\" = '' then\n+ Error(PleaseEnterErr, GenJnlLineReq.FieldCaption(\"Journal Template Name\"));\n+ if GenJnlLineReq.\"Journal Batch Name\" = '' then\n+ Error(PleaseEnterErr, GenJnlLineReq.FieldCaption(\"Journal Batch Name\"));\n+ GenJnlBatch.Get(GenJnlLineReq.\"Journal Template Name\", GenJnlLineReq.\"Journal Batch Name\");\n+ end;\n+\n if PostSettlement and not Initialized then\n if not ConfirmManagement.GetResponseOrDefault(Text003, true) then\n CurrReport.Quit();\n@@ -732,6 +794,8 @@ report 20 \"Calc. and Post VAT Settlement\"\n SourceCodeSetup: Record \"Source Code Setup\";\n GenJnlLine: Record \"Gen. Journal Line\";\n GenJnlLine2: Record \"Gen. Journal Line\";\n+ GenJnlLineReq: Record \"Gen. Journal Line\";\n+ GenJnlBatch: Record \"Gen. Journal Batch\";\n GLEntry: Record \"G/L Entry\";\n VATEntry: Record \"VAT Entry\";\n TaxJurisdiction: Record \"Tax Jurisdiction\";\n@@ -755,6 +819,7 @@ report 20 \"Calc. and Post VAT Settlement\"\n HeaderText: Text[30];\n CountryRegionFilter: Text;\n IsVATDateEnabled: Boolean;\n+ IsJournalTemplNameVisible: Boolean;\n #pragma warning disable AA0074\n Text000: Label 'Enter the posting date.';\n Text001: Label 'Enter the document no.';\n@@ -783,6 +848,7 @@ report 20 \"Calc. and Post VAT Settlement\"\n TotalCaptionLbl: Label 'Total';\n SettlementCaptionLbl: Label 'Settlement';\n VATDateLbl: Label 'VAT Date';\n+ PleaseEnterErr: Label 'Please enter %1.', Comment = '%1 = field caption';\n \n \n protected var\n@@ -880,6 +946,8 @@ report 20 \"Calc. and Post VAT Settlement\"\n Clear(GenJnlLine2);\n GenJnlLine2.\"System-Created Entry\" := true;\n GenJnlLine2.\"Account Type\" := GenJnlLine2.\"Account Type\"::\"G/L Account\";\n+ GenJnlLine2.\"Journal Template Name\" := GenJnlLineReq.\"Journal Template Name\";\n+ GenJnlLine2.\"Journal Batch Name\" := GenJnlLineReq.\"Journal Batch Name\";\n GenJnlLine2.Description := GenJnlLine.Description;\n GenJnlLine2.\"Posting Date\" := PostingDate;\n GenJnlLine2.\"VAT Reporting Date\" := VATDate;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134992'\nCodeunit 134992 ERM Financial Reports IV\n Testfunction PostVATSettlementWhenJournalTemplateNameMandatoryIsEnabled Failure (9.47 seconds)\n Error:\n Please enter Journal Template Name.\n Call Stack:\n \"Calc. and Post VAT Settlement\"(Report 20).OnPreReport(Trigger) line 25 - Base Application by Microsoft version 27.0.0.0\n \"ERM Financial Reports IV\"(CodeUnit 134992).SaveCalcAndPostVATSettlementReport line 12 - Tests-ERM by Microsoft version 27.0.0.0\n \"ERM Financial Reports IV\"(CodeUnit 134992).PostVATSettlementWhenJournalTemplateNameMandatoryIsEnabled line 35 - Tests-ERM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-220452", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 238.513, "tool_calls": 28, "total_tokens": 549900, "TurnCount": 35}, "Project": "Shopify", "ToolUsage": "{\"edit\":2,\"glob\":5,\"grep\":3,\"report_intent\":3,\"task\":2,\"update_todo\":3,\"view\":10}", "output": "diff --git a/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al b/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al\nindex 62d92a55..736124b1 100644\n--- a/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al\n+++ b/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al\n@@ -213,6 +213,7 @@ report 30118 \"Shpfy Suggest Payments\"\n SalesCreditMemoHeader: Record \"Sales Cr.Memo Header\";\n CustLedgerEntry: Record \"Cust. Ledger Entry\";\n RefundHeader: Record \"Shpfy Refund Header\";\n+ DocLinkToBCDoc: Record \"Shpfy Doc. Link To Doc.\";\n AmountToApply: Decimal;\n Applied: Boolean;\n begin\n@@ -221,9 +222,20 @@ report 30118 \"Shpfy Suggest Payments\"\n case OrderTransaction.Type of\n OrderTransaction.Type::Capture, OrderTransaction.Type::Sale:\n begin\n- SalesInvoiceHeader.SetLoadFields(\"No.\", \"Shpfy Order Id\");\n+ SalesInvoiceHeader.SetLoadFields(\"No.\", \"Shpfy Order Id\", Closed);\n SalesInvoiceHeader.SetRange(\"Shpfy Order Id\", OrderTransaction.\"Shopify Order Id\");\n SalesInvoiceHeader.SetRange(Closed, false);\n+ if not SalesInvoiceHeader.FindSet() then begin\n+ DocLinkToBCDoc.SetRange(\"Shopify Document Type\", DocLinkToBCDoc.\"Shopify Document Type\"::\"Shopify Shop Order\");\n+ DocLinkToBCDoc.SetRange(\"Shopify Document Id\", OrderTransaction.\"Shopify Order Id\");\n+ DocLinkToBCDoc.SetRange(\"Document Type\", DocLinkToBCDoc.\"Document Type\"::\"Posted Sales Invoice\");\n+ if DocLinkToBCDoc.FindSet() then\n+ repeat\n+ if SalesInvoiceHeader.Get(DocLinkToBCDoc.\"Document No.\") and (not SalesInvoiceHeader.Closed) then\n+ SalesInvoiceHeader.Mark(true);\n+ until DocLinkToBCDoc.Next() = 0;\n+ SalesInvoiceHeader.MarkedOnly(true);\n+ end;\n if SalesInvoiceHeader.FindSet() then begin\n repeat\n CustLedgerEntry.SetAutoCalcFields(\"Remaining Amount\");\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139648'\nCodeunit 139648 Shpfy Suggest Payment Test\n Testfunction UnitTestSuggestShopifyPaymentsDocumentLink Failure (16.87 seconds)\n Error:\n The Shopify Suggest Payment table is empty.\n Call Stack:\n \"Shpfy Suggest Payment Test\"(CodeUnit 139648).UnitTestSuggestShopifyPaymentsDocumentLink line 47 - Shopify Connector Test by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-222488", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 1040.984, "tool_calls": 64, "total_tokens": 2743000, "TurnCount": 100}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":21,\"powershell\":1,\"report_intent\":3,\"task\":3,\"update_todo\":4,\"view\":31}", "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WhseActivityRegister.Codeunit.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WhseActivityRegister.Codeunit.al\nindex 06bc6408..e6064c50 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WhseActivityRegister.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WhseActivityRegister.Codeunit.al\n@@ -110,6 +110,9 @@ codeunit 7307 \"Whse.-Activity-Register\"\n begin\n OnBeforeCode(GlobalWhseActivLine);\n \n+ GlobalWhseActivLine.FilterGroup(3);\n+ GlobalWhseActivLine.SetRange(Breakbulk);\n+ GlobalWhseActivLine.FilterGroup(0);\n GlobalWhseActivLine.SetRange(\"Activity Type\", GlobalWhseActivLine.\"Activity Type\");\n GlobalWhseActivLine.SetRange(\"No.\", GlobalWhseActivLine.\"No.\");\n GlobalWhseActivLine.SetFilter(\"Qty. to Handle (Base)\", '<>0');\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137152'\nCodeunit 137152 SCM Warehouse - Receiving\n Testfunction RegisterPutAwayWithBreakBulkFilterShouldRegisterAllLines Failure (16.114 seconds)\n Error:\n Assert.RecordCount failed. Expected number of Warehouse Entry entries: 4. Actual: 2. Filters: Source No.: GU00000000, Source Document: P. Order, Entry Type: Movement. Records: 2, , 0, 06/03/26, GU00000000, RECEIVE, BIN13, , GL00000000, -1.11, -53.28, 2, 0, 39, 1, GU00000000, 10000, 0, P. Order, WHPUTAWAY, , , RECEIVE, 0, 0, , GL00000003, Receipt, 10000, Movement, Put-away, GL00000005, ADMIN, , 48, GU00000257, , , , , , , , No, ; 3, , 0, 06/03/26, GU00000000, PICK, BIN8, , GL00000000, 53.28, 53.28, 2, 0, 39, 1, GU00000000, 10000, 0, P. Order, WHPUTAWAY, , , PUTPICK, 0, 0, , GL00000003, Receipt, 10000, Movement, Put-away, GL00000005, ADMIN, , 1, BAG, , , , , , , , No, ; \n Call Stack:\n Assert(CodeUnit 130000).RecordCount line 18 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"SCM Warehouse - Receiving\"(CodeUnit 137152).RegisterPutAwayWithBreakBulkFilterShouldRegisterAllLines line 52 - Tests-SCM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-204450", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 683.681, "tool_calls": 50, "total_tokens": 1819300, "TurnCount": 125}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":2,\"glob\":1,\"grep\":26,\"powershell\":2,\"report_intent\":3,\"store_memory\":1,\"task\":3,\"update_todo\":3,\"view\":8}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\nindex 6bb15d7d..e070ad49 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n@@ -602,6 +602,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n \n TotalPurchaseLine.\"Non-Deductible VAT Base\" += PurchaseLine.\"Non-Deductible VAT Base\";\n TotalPurchaseLine.\"Non-Deductible VAT Amount\" += PurchaseLine.\"Non-Deductible VAT Amount\";\n+ TotalPurchaseLine.\"Non-Deductible VAT Diff.\" += PurchaseLine.\"Non-Deductible VAT Diff.\";\n end;\n \n procedure Increment(var TotalInvoicePostingBuffer: Record \"Invoice Posting Buffer\"; InvoicePostingBuffer: Record \"Invoice Posting Buffer\")\n@@ -697,6 +698,12 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n PurchaseHeader.GetUseDate(), PurchaseHeader.\"Currency Code\",\n TotalPurchaseLine.\"Non-Deductible VAT Amount\", PurchaseHeader.\"Currency Factor\")) -\n TotalPurchaseLineLCY.\"Non-Deductible VAT Amount\";\n+ PurchaseLine.\"Non-Deductible VAT Diff.\" :=\n+ Round(\n+ CurrExchRate.ExchangeAmtFCYToLCY(\n+ PurchaseHeader.GetUseDate(), PurchaseHeader.\"Currency Code\",\n+ TotalPurchaseLine.\"Non-Deductible VAT Diff.\", PurchaseHeader.\"Currency Factor\")) -\n+ TotalPurchaseLineLCY.\"Non-Deductible VAT Diff.\";\n end;\n \n procedure ClearNonDeductibleVAT(var PurchaseLine: Record \"Purchase Line\")\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134287'\nCodeunit 134287 Non-Deductible VAT Statistics\n Testfunction PurchaseInvoiceInCurrencyIsPostedWhenChangeVATAmountOnStatisticIfNDVATPctIs100 Failure (15.424 seconds)\n Error:\n The transaction cannot be completed because it will cause inconsistencies in the G/L Entry table. Check where and how the CONSISTENT function is used in the transaction to find the reason for the error.\\\\Contact your system administrator.\\\\Tables can be marked as inconsistent during comprehensive tasks, such as posting. This prevents data from being updated incorrectly.\n Call Stack:\n \"Purch.-Post\"(CodeUnit 90).FinalizePosting line 79 - Base Application by Microsoft\n \"Purch.-Post\"(CodeUnit 90).RunWithCheck line 142 - Base Application by Microsoft\n \"Purch.-Post\"(CodeUnit 90).OnRun(Trigger) line 2 - Base Application by Microsoft\n \"Library - Purchase\"(CodeUnit 130512).PostPurchaseDocument line 56 - Tests-TestLibraries by Microsoft\n \"Non-Deductible VAT Statistics\"(CodeUnit 134287).PurchaseInvoiceInCurrencyIsPostedWhenChangeVATAmountOnStatisticIfNDVATPctIs100 line 46 - Tests-VAT by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"InstanceID": "microsoftInternal__NAV-227153", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 220.327, "tool_calls": 26, "total_tokens": 667200, "TurnCount": 36}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":6,\"grep\":5,\"report_intent\":3,\"task\":2,\"update_todo\":2,\"view\":7}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\nindex e033f91e..0e39228f 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\n@@ -472,132 +472,66 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n \n local procedure CalcCustAccAmount(PostingGr: Code[20]): Decimal\n var\n- Cust: Record Customer;\n DtldCustLedgEntry: Record \"Detailed Cust. Ledg. Entry\";\n- CustAccAmount: Decimal;\n begin\n- Cust.SetCurrentKey(\"Customer Posting Group\");\n- Cust.SetRange(\"Customer Posting Group\", PostingGr);\n-\n- if Cust.Find('-') then\n- repeat\n- DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\");\n- DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n- DtldCustLedgEntry.CalcSums(\"Amount (LCY)\");\n- CustAccAmount := CustAccAmount + DtldCustLedgEntry.\"Amount (LCY)\";\n- until Cust.Next() = 0;\n-\n- exit(CustAccAmount);\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n+ DtldCustLedgEntry.CalcSums(\"Amount (LCY)\");\n+ exit(DtldCustLedgEntry.\"Amount (LCY)\");\n end;\n \n local procedure CalcCustCreditAmount(PostingGr: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n var\n- Cust: Record Customer;\n DtldCustLedgEntry: Record \"Detailed Cust. Ledg. Entry\";\n- CustCreditAmount: Decimal;\n begin\n- Cust.SetCurrentKey(\"Customer Posting Group\");\n- Cust.SetRange(\"Customer Posting Group\", PostingGr);\n-\n- if Cust.Find('-') then\n- repeat\n- DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\", \"Entry Type\");\n- DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n- DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n- DtldCustLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n- CustCreditAmount := CustCreditAmount + DtldCustLedgEntry.\"Credit Amount (LCY)\";\n- until Cust.Next() = 0;\n-\n- exit(CustCreditAmount);\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n+ DtldCustLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n+ exit(DtldCustLedgEntry.\"Credit Amount (LCY)\");\n end;\n \n local procedure CalcCustDebitAmount(PostingGr: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n var\n- Cust: Record Customer;\n DtldCustLedgEntry: Record \"Detailed Cust. Ledg. Entry\";\n- CustDebitAmount: Decimal;\n begin\n- Cust.SetCurrentKey(\"Customer Posting Group\");\n- Cust.SetRange(\"Customer Posting Group\", PostingGr);\n-\n- if Cust.Find('-') then\n- repeat\n- DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\", \"Entry Type\");\n- DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n- DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n- DtldCustLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n- CustDebitAmount := CustDebitAmount + DtldCustLedgEntry.\"Debit Amount (LCY)\";\n- until Cust.Next() = 0;\n-\n- exit(-CustDebitAmount);\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n+ DtldCustLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n+ exit(-DtldCustLedgEntry.\"Debit Amount (LCY)\");\n end;\n \n local procedure CalcVendAccAmount(PostingGr: Code[20]): Decimal\n var\n- Vend: Record Vendor;\n DtldVendLedgEntry: Record \"Detailed Vendor Ledg. Entry\";\n- VendAccAmount: Decimal;\n begin\n- Vend.SetCurrentKey(\"Vendor Posting Group\");\n- Vend.SetRange(\"Vendor Posting Group\", PostingGr);\n-\n- if Vend.Find('-') then\n- repeat\n- DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\");\n- DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n- DtldVendLedgEntry.CalcSums(\"Amount (LCY)\");\n- VendAccAmount := VendAccAmount + DtldVendLedgEntry.\"Amount (LCY)\";\n- until Vend.Next() = 0;\n-\n- exit(VendAccAmount);\n+ DtldVendLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n+ DtldVendLedgEntry.CalcSums(\"Amount (LCY)\");\n+ exit(DtldVendLedgEntry.\"Amount (LCY)\");\n end;\n \n local procedure CalcVendCreditAmount(PostingGr: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n var\n- Vend: Record Vendor;\n DtldVendLedgEntry: Record \"Detailed Vendor Ledg. Entry\";\n- VendCreditAmount: Decimal;\n begin\n- Vend.SetCurrentKey(\"Vendor Posting Group\");\n- Vend.SetRange(\"Vendor Posting Group\", PostingGr);\n-\n- if Vend.Find('-') then\n- repeat\n- DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\", \"Entry Type\");\n- DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n- DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n- DtldVendLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n- VendCreditAmount := VendCreditAmount + DtldVendLedgEntry.\"Credit Amount (LCY)\";\n- until Vend.Next() = 0;\n-\n- exit(VendCreditAmount);\n+ DtldVendLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n+ DtldVendLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n+ exit(DtldVendLedgEntry.\"Credit Amount (LCY)\");\n end;\n \n local procedure CalcVendDebitAmount(PostingGr: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n var\n- Vend: Record Vendor;\n DtldVendLedgEntry: Record \"Detailed Vendor Ledg. Entry\";\n- VendDebitAmount: Decimal;\n begin\n- Vend.SetCurrentKey(\"Vendor Posting Group\");\n- Vend.SetRange(\"Vendor Posting Group\", PostingGr);\n-\n- if Vend.Find('-') then\n- repeat\n- DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\", \"Entry Type\");\n- DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n- DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n- DtldVendLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n- VendDebitAmount := VendDebitAmount + DtldVendLedgEntry.\"Debit Amount (LCY)\";\n- until Vend.Next() = 0;\n-\n- exit(-VendDebitAmount);\n+ DtldVendLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n+ DtldVendLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n+ exit(-DtldVendLedgEntry.\"Debit Amount (LCY)\");\n end;\n \n local procedure CalcCurrGainLossAmount(CurrencyCode: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-177493", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 335.973, "tool_calls": 32, "total_tokens": 733400, "TurnCount": 52}, "Project": "BaseApp", "ToolUsage": "{\"edit\":6,\"glob\":3,\"grep\":9,\"powershell\":1,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":6}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\nindex bb47904d..723b506b 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n@@ -58,6 +58,10 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if Item.Get(\"No.\") then\n+ if Item.Reserve = Item.Reserve::Never then\n+ CurrReport.Skip();\n+\n if not CheckIfSalesLineMeetsReservedFromStockSetting(Abs(\"Outstanding Qty. (Base)\"), ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -107,6 +111,10 @@ report 302 \"Get Demand To Reserve\"\n var\n Item: Record Item;\n begin\n+ if Item.Get(\"Item No.\") then\n+ if Item.Reserve = Item.Reserve::Never then\n+ CurrReport.Skip();\n+\n if not CheckIfTransferLineMeetsReservedFromStockSetting(\"Outstanding Qty. (Base)\", ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -158,6 +166,10 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if Item.Get(\"No.\") then\n+ if Item.Reserve = Item.Reserve::Never then\n+ CurrReport.Skip();\n+\n if not CheckIfServiceLineMeetsReservedFromStockSetting(Abs(\"Outstanding Qty. (Base)\"), ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -208,6 +220,10 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if Item.Get(\"No.\") then\n+ if Item.Reserve = Item.Reserve::Never then\n+ CurrReport.Skip();\n+\n if not CheckIfJobPlngLineMeetsReservedFromStockSetting(\"Remaining Qty. (Base)\", ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -259,6 +275,10 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if Item.Get(\"No.\") then\n+ if Item.Reserve = Item.Reserve::Never then\n+ CurrReport.Skip();\n+\n if not CheckIfAssemblyLineMeetsReservedFromStockSetting(\"Remaining Quantity (Base)\", ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -309,6 +329,10 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if Item.Get(\"Item No.\") then\n+ if Item.Reserve = Item.Reserve::Never then\n+ CurrReport.Skip();\n+\n if not CheckIfProdOrderCompMeetsReservedFromStockSetting(\"Remaining Qty. (Base)\", ReservedFromStock)\n then\n CurrReport.Skip();\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-174794", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 233.19400000000002, "tool_calls": 18, "total_tokens": 275800, "TurnCount": 54}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":4,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":6}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\nindex b941d50c..147e4a67 100644\n--- a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n@@ -288,6 +288,7 @@ codeunit 395 \"FinChrgMemo-Issue\"\n TempGenJnlLine.Validate(Amount, TotalAmount);\n TempGenJnlLine.Validate(\"Amount (LCY)\", TotalAmountLCY);\n TempGenJnlLine.\"Due Date\" := FinChrgMemoHeader.\"Due Date\";\n+ TempGenJnlLine.\"Posting Group\" := FinChrgMemoHeader.\"Customer Posting Group\";\n end;\n TempGenJnlLine.Description := FinChrgMemoHeader.\"Posting Description\";\n TempGenJnlLine.\"Source Type\" := TempGenJnlLine.\"Source Type\"::Customer;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-217974", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 373.322, "tool_calls": 27, "total_tokens": 423800, "TurnCount": 69}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":9,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":10}", "output": "diff --git a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\nindex 780de254..bf06b04c 100644\n--- a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n@@ -1757,6 +1757,10 @@ codeunit 6620 \"Copy Document Mgt.\"\n OnUpdateSalesHeaderWhenCopyFromSalesHeaderOnBeforeValidateShipToCode(SalesHeader);\n SalesHeader.Validate(SalesHeader.\"Ship-to Code\");\n end;\n+ if SalesHeader.IsCreditDocType() and\n+ not (FromDocType in [\"Sales Document Type From\"::\"Return Order\", \"Sales Document Type From\"::\"Credit Memo\"])\n+ then\n+ SalesHeader.UpdateShipToAddress();\n if FromDocType in [\"Sales Document Type From\"::Quote, \"Sales Document Type From\"::\"Blanket Order\"] then\n if OriginalSalesHeader.\"Posting Date\" = 0D then\n SalesHeader.\"Posting Date\" := WorkDate()\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-223202", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 251.067, "tool_calls": 23, "total_tokens": 674400, "TurnCount": 20}, "Project": "BaseApp", "ToolUsage": "{\"edit\":4,\"grep\":5,\"powershell\":1,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":8}", "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al\nindex 84769ae0..5a4f3d8d 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al\n@@ -257,6 +257,7 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ExpSubDirCostRtng: Decimal;\n ExpCapOvhdCostRtng: Decimal;\n ExpOvhdCost: Decimal;\n+ CurrLineExpMatCost: Decimal;\n begin\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\");\n ProdOrderComp.SetRange(Status, ProdOrderLine.Status);\n@@ -268,6 +269,7 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n #endif\n if ProdOrderComp.Find('-') then\n repeat\n+ CurrLineExpMatCost := CurrLineExpMatCost + ProdOrderComp.\"Cost Amount\";\n ExpMatCost := ExpMatCost + ProdOrderComp.\"Cost Amount\";\n until ProdOrderComp.Next() = 0;\n \n@@ -304,7 +306,7 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ExpCapDirCost := ExpCapDirCost + Round(ExpCapDirCostRtng * ShareOfTotalCapCost);\n ExpSubDirCost := ExpSubDirCost + Round(ExpSubDirCostRtng * ShareOfTotalCapCost);\n ExpCapOvhdCost := ExpCapOvhdCost + Round(ExpCapOvhdCostRtng * ShareOfTotalCapCost);\n- ExpMfgDirCost := ExpMatCost + ExpCapDirCost + ExpSubDirCost + ExpCapOvhdCost;\n+ ExpMfgDirCost := CurrLineExpMatCost + Round(ExpCapDirCostRtng * ShareOfTotalCapCost) + Round(ExpSubDirCostRtng * ShareOfTotalCapCost) + Round(ExpCapOvhdCostRtng * ShareOfTotalCapCost);\n ExpOvhdCost := ExpMfgOvhdCost + ProdOrderLine.\"Overhead Rate\" * ProdOrderLine.\"Quantity (Base)\";\n ExpMfgOvhdCost := ExpOvhdCost +\n Round(CostCalculationMgt.CalcOvhdCost(ExpMfgDirCost, ProdOrderLine.\"Indirect Cost %\", 0, 0));\n@@ -327,6 +329,8 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ExpSubDirCostRtng: Decimal;\n ExpCapOvhdCostRtng: Decimal;\n ExpOvhdCost: Decimal;\n+ CurrLineExpMatCost: Decimal;\n+ CurrLineExpNonInvMatCost: Decimal;\n begin\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\");\n ProdOrderComp.SetRange(Status, ProdOrderLine.Status);\n@@ -335,10 +339,13 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n if ProdOrderComp.Find('-') then\n repeat\n Item.Get(ProdOrderComp.\"Item No.\");\n- if Item.IsNonInventoriableType() then\n- ExpNonInvMatCost += ProdOrderComp.\"Cost Amount\"\n- else\n+ if Item.IsNonInventoriableType() then begin\n+ CurrLineExpNonInvMatCost += ProdOrderComp.\"Cost Amount\";\n+ ExpNonInvMatCost += ProdOrderComp.\"Cost Amount\";\n+ end else begin\n+ CurrLineExpMatCost := CurrLineExpMatCost + ProdOrderComp.\"Cost Amount\";\n ExpMatCost := ExpMatCost + ProdOrderComp.\"Cost Amount\";\n+ end;\n until ProdOrderComp.Next() = 0;\n \n ProdOrderRtngLine.SetRange(Status, ProdOrderLine.Status);\n@@ -366,7 +373,7 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ExpCapDirCost := ExpCapDirCost + Round(ExpCapDirCostRtng * ShareOfTotalCapCost);\n ExpSubDirCost := ExpSubDirCost + Round(ExpSubDirCostRtng * ShareOfTotalCapCost);\n ExpCapOvhdCost := ExpCapOvhdCost + Round(ExpCapOvhdCostRtng * ShareOfTotalCapCost);\n- ExpMfgDirCost := ExpMatCost + ExpNonInvMatCost + ExpCapDirCost + ExpSubDirCost + ExpCapOvhdCost;\n+ ExpMfgDirCost := CurrLineExpMatCost + CurrLineExpNonInvMatCost + Round(ExpCapDirCostRtng * ShareOfTotalCapCost) + Round(ExpSubDirCostRtng * ShareOfTotalCapCost) + Round(ExpCapOvhdCostRtng * ShareOfTotalCapCost);\n ExpOvhdCost := ExpMfgOvhdCost + ProdOrderLine.\"Overhead Rate\" * ProdOrderLine.\"Quantity (Base)\";\n ExpMfgOvhdCost := ExpOvhdCost +\n Round(CostCalculationMgt.CalcOvhdCost(ExpMfgDirCost, ProdOrderLine.\"Indirect Cost %\", 0, 0));\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-209496", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 120.614, "tool_calls": 22, "total_tokens": 349300, "TurnCount": 12}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":7,\"report_intent\":2,\"update_todo\":3,\"view\":8}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\nindex 10d284cc..768dec3d 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\n@@ -132,8 +132,10 @@ page 835 \"Reminder Level Communication\"\n LocalLanguage.FindFirst();\n \n // Necessary when the user has deleted all languages or has not created any language yet\n- if IsNullGuid(Rec.\"Reminder Attachment Text\") then\n+ if IsNullGuid(Rec.\"Reminder Attachment Text\") then begin\n ReminderCommunication.SetDefaultContentForNewLanguage(CreateGuid(), LocalLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Level\", Rec.SystemId);\n+ Rec.Get(Rec.\"Reminder Terms Code\", Rec.\"No.\");\n+ end;\n \n SelectedNewLanguage := true;\n SelectLanguageAndText(LocalLanguage.Code, true);\ndiff --git a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al\nindex 5cce8ad7..2e1faef8 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al\n@@ -125,8 +125,10 @@ page 1897 \"Reminder Term Communication\"\n LocalLanguage.FindFirst();\n \n // Necessary when the user has deleted all languages or has not created any language yet\n- if IsNullGuid(Rec.\"Reminder Attachment Text\") then\n+ if IsNullGuid(Rec.\"Reminder Attachment Text\") then begin\n ReminderCommunication.SetDefaultContentForNewLanguage(CreateGuid(), LocalLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Term\", Rec.SystemId);\n+ Rec.Get(Rec.Code);\n+ end;\n \n SelectedNewLanguage := true;\n SelectLanguageAndText(LocalLanguage.Code, true);\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-193853", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 287.085, "tool_calls": 42, "total_tokens": 1209800, "TurnCount": 52}, "Project": "EnforcedDigitalVouchers", "ToolUsage": "{\"edit\":2,\"grep\":15,\"powershell\":1,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":19}", "output": "diff --git a/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al b/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\nindex 72dc980e..2d69837e 100644\n--- a/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\n+++ b/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\n@@ -269,11 +269,32 @@ codeunit 5579 \"Digital Voucher Impl.\"\n if not IncomingDocument.FindFromIncomingDocumentEntryNo(MainRecordRef, IncomingDocument) then\n IncomingDocument.FindByDocumentNoAndPostingDate(MainRecordRef, IncomingDocument);\n if IncomingDocument.\"Entry No.\" = 0 then\n- exit(false);\n+ if not FindIncomingDocFromOtherGenJnlLines(IncomingDocument, MainRecordRef) then\n+ exit(false);\n IncomingDocumentAttachment.SetRange(\"Incoming Document Entry No.\", IncomingDocument.\"Entry No.\");\n exit(true);\n end;\n \n+ local procedure FindIncomingDocFromOtherGenJnlLines(var IncomingDocument: Record \"Incoming Document\"; MainRecordRef: RecordRef): Boolean\n+ var\n+ GenJournalLine: Record \"Gen. Journal Line\";\n+ RelatedGenJournalLine: Record \"Gen. Journal Line\";\n+ RelatedRecordRef: RecordRef;\n+ begin\n+ if MainRecordRef.Number <> Database::\"Gen. Journal Line\" then\n+ exit(false);\n+ MainRecordRef.SetTable(GenJournalLine);\n+ RelatedGenJournalLine.SetRange(\"Journal Template Name\", GenJournalLine.\"Journal Template Name\");\n+ RelatedGenJournalLine.SetRange(\"Journal Batch Name\", GenJournalLine.\"Journal Batch Name\");\n+ RelatedGenJournalLine.SetRange(\"Document No.\", GenJournalLine.\"Document No.\");\n+ RelatedGenJournalLine.SetRange(\"Posting Date\", GenJournalLine.\"Posting Date\");\n+ RelatedGenJournalLine.SetFilter(\"Incoming Document Entry No.\", '<>0');\n+ if not RelatedGenJournalLine.FindFirst() then\n+ exit(false);\n+ RelatedRecordRef.GetTable(RelatedGenJournalLine);\n+ exit(IncomingDocument.FindFromIncomingDocumentEntryNo(RelatedRecordRef, IncomingDocument));\n+ end;\n+\n local procedure AttachGenJnlLinePDFToIncomingDocument(RecRef: RecordRef)\n var\n GenJournalLine: Record \"Gen. Journal Line\";\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-174087", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 365.839, "tool_calls": 12, "total_tokens": 163700, "TurnCount": 99}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"report_intent\":2,\"task\":3,\"update_todo\":3,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al b/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\nindex ff43f4ff..ee42672e 100644\n--- a/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\n+++ b/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\n@@ -694,6 +694,7 @@ page 5077 \"Create Interaction\"\n end;\n Step::\"Step 4\":\n begin\n+ InteractionLogEntry.Evaluation := Rec.Evaluation;\n InteractionLogEntry.Modify();\n CurrPage.Close();\n end;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-213524", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 161.12, "tool_calls": 25, "total_tokens": 505800, "TurnCount": 15}, "Project": "BaseApp", "ToolUsage": "{\"edit\":4,\"grep\":10,\"powershell\":1,\"report_intent\":2,\"update_todo\":3,\"view\":5}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/Intercompany/ICNavigation.Codeunit.al b/App/Layers/W1/BaseApp/Finance/Intercompany/ICNavigation.Codeunit.al\nindex 92bf43b1..a5af0d69 100644\n--- a/App/Layers/W1/BaseApp/Finance/Intercompany/ICNavigation.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/Intercompany/ICNavigation.Codeunit.al\n@@ -111,6 +111,18 @@ codeunit 437 \"IC Navigation\"\n exit(NavigateToSalesInvoice(DocumentNo, ICPartnerCode));\n end;\n \n+ local procedure NavigateToSalesCreditMemo(DocumentNo: Code[20]): Boolean\n+ var\n+ SalesCrMemoHeader: Record \"Sales Cr.Memo Header\";\n+ PostedSalesCreditMemo: Page \"Posted Sales Credit Memo\";\n+ begin\n+ if not SalesCrMemoHeader.Get(DocumentNo) then\n+ exit(false);\n+ PostedSalesCreditMemo.SetRecord(SalesCrMemoHeader);\n+ PostedSalesCreditMemo.Run();\n+ exit(true);\n+ end;\n+\n local procedure NavigateToSalesDocument(DocumentNo: Code[20]; ICDirectionType: Enum \"IC Direction Type\"; ICPartnerCode: Code[20]; DocumentType: Enum \"IC Transaction Document Type\"): Boolean\n var\n ShouldNavigateToDoc: Boolean;\n@@ -120,6 +132,8 @@ codeunit 437 \"IC Navigation\"\n exit(NavigateToSalesOrderDocument(DocumentNo, ICDirectionType, ICPartnerCode));\n DocumentType::Invoice:\n exit(NavigateToSalesInvoice(DocumentNo));\n+ DocumentType::\"Credit Memo\":\n+ exit(NavigateToSalesCreditMemo(DocumentNo));\n else begin\n ShouldNavigateToDoc := false;\n OnNavigateToSalesDocumentOnAfterCheckDocumentType(DocumentNo, ICDirectionType, ICPartnerCode, DocumentType, ShouldNavigateToDoc);\n@@ -223,6 +237,45 @@ codeunit 437 \"IC Navigation\"\n exit(NavigateToPurchaseInvoice(DocumentNo, ICPartnerCode));\n end;\n \n+ local procedure NavigateToPostedPurchaseCreditMemo(DocumentNo: Code[20]; VendorNo: Code[20]): Boolean\n+ var\n+ PurchCrMemoHdr: Record \"Purch. Cr. Memo Hdr.\";\n+ PostedPurchaseCreditMemo: Page \"Posted Purchase Credit Memo\";\n+ begin\n+ PurchCrMemoHdr.SetRange(\"Buy-from Vendor No.\", VendorNo);\n+ PurchCrMemoHdr.SetRange(\"No.\", DocumentNo);\n+ if not PurchCrMemoHdr.FindFirst() then\n+ exit(false);\n+ PostedPurchaseCreditMemo.SetRecord(PurchCrMemoHdr);\n+ PostedPurchaseCreditMemo.Run();\n+ exit(true);\n+ end;\n+\n+ local procedure NavigateToPurchaseCreditMemoDocument(DocumentNo: Code[20]; ICPartnerCode: Code[20]): Boolean\n+ var\n+ Vendor: Record Vendor;\n+ PurchaseHeader: Record \"Purchase Header\";\n+ PurchaseCreditMemo: Page \"Purchase Credit Memo\";\n+ begin\n+ Vendor.SetRange(\"IC Partner Code\", ICPartnerCode);\n+ if not Vendor.FindSet() then\n+ exit(false);\n+ repeat\n+ PurchaseHeader.SetRange(\"IC Direction\", PurchaseHeader.\"IC Direction\"::Incoming);\n+ PurchaseHeader.SetRange(\"Buy-from Vendor No.\", Vendor.\"No.\");\n+ PurchaseHeader.SetRange(\"No.\", DocumentNo);\n+ PurchaseHeader.SetRange(\"Document Type\", PurchaseHeader.\"Document Type\"::\"Credit Memo\");\n+ if PurchaseHeader.FindFirst() then begin\n+ PurchaseCreditMemo.SetRecord(PurchaseHeader);\n+ PurchaseCreditMemo.Run();\n+ exit(true);\n+ end;\n+ if NavigateToPostedPurchaseCreditMemo(DocumentNo, Vendor.\"No.\") then\n+ exit(true);\n+ until Vendor.Next() = 0;\n+ exit(false);\n+ end;\n+\n local procedure NavigateToPurchaseDocument(DocumentNo: Code[20]; ICDirectionType: Enum \"IC Direction Type\"; ICPartnerCode: Code[20]; DocumentType: Enum \"IC Transaction Document Type\"): Boolean\n var\n OpenDoc: Boolean;\n@@ -232,6 +285,8 @@ codeunit 437 \"IC Navigation\"\n exit(NavigateToPurchaseOrderDocument(DocumentNo, ICDirectionType, ICPartnerCode));\n DocumentType::Invoice:\n exit(NavigateToPurchaseInvoiceDocument(DocumentNo, ICPartnerCode));\n+ DocumentType::\"Credit Memo\":\n+ exit(NavigateToPurchaseCreditMemoDocument(DocumentNo, ICPartnerCode));\n else begin\n OnNavigateToPurchaseDocumentOnDocumentTypeCaseElse(DocumentNo, ICDirectionType, ICPartnerCode, DocumentType, OpenDoc);\n exit(OpenDoc);\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-218062", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 1599.779, "tool_calls": 73, "total_tokens": 4972700, "TurnCount": 101}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":33,\"powershell\":1,\"report_intent\":4,\"task\":1,\"update_todo\":4,\"view\":29}", "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Availability/WarehouseAvailabilityMgt.Codeunit.al b/App/Layers/W1/BaseApp/Warehouse/Availability/WarehouseAvailabilityMgt.Codeunit.al\nindex 0b63877a..1c475c6f 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Availability/WarehouseAvailabilityMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Availability/WarehouseAvailabilityMgt.Codeunit.al\n@@ -870,8 +870,7 @@ codeunit 7314 \"Warehouse Availability Mgt.\"\n end else\n AvailQtyBase := CalcInvtAvailQty(Item, Location, WhseWorksheetLine.\"Variant Code\", TempWhseActivLine);\n \n- if Location.\"Require Pick\" then\n- QtyReservedOnPickShip := CalcReservQtyOnPicksShips(WhseWorksheetLine.\"Location Code\", WhseWorksheetLine.\"Item No.\", WhseWorksheetLine.\"Variant Code\", TempWhseActivLine);\n+ QtyReservedOnPickShip := CalcReservQtyOnPicksShips(WhseWorksheetLine.\"Location Code\", WhseWorksheetLine.\"Item No.\", WhseWorksheetLine.\"Variant Code\", TempWhseActivLine);\n \n QtyReservedForCurrLine :=\n Abs(\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-212355", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 270.687, "tool_calls": 12, "total_tokens": 167600, "TurnCount": 53}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":1,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Routing/CalculateRoutingLine.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Routing/CalculateRoutingLine.Codeunit.al\nindex c46c8c20..4d40b8b6 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Routing/CalculateRoutingLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Routing/CalculateRoutingLine.Codeunit.al\n@@ -1309,7 +1309,7 @@ codeunit 99000774 \"Calculate Routing Line\"\n end;\n \n MaxLotSize :=\n- ExpectedOperOutput *\n+ ProdOrderQty *\n (1 + ProdOrderRoutingLine.\"Scrap Factor % (Accumulated)\") *\n (1 + TotalScrap / 100) +\n ProdOrderRoutingLine.\"Fixed Scrap Qty. (Accum.)\";\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-223819", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 714.772, "tool_calls": 46, "total_tokens": 1424500, "TurnCount": 121}, "Project": "BaseApp", "ToolUsage": "{\"edit\":7,\"glob\":1,\"grep\":12,\"powershell\":1,\"report_intent\":2,\"task\":3,\"update_todo\":3,\"view\":17}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al b/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\nindex 7fc2d985..adfa2d79 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\n@@ -3706,6 +3706,9 @@ table 83 \"Item Journal Line\"\n exit;\n InitDefaultDimensionSources(DefaultDimSource, FieldNo);\n CreateDim(DefaultDimSource);\n+\n+ if (\"Entry Type\" = \"Entry Type\"::Transfer) and (\"New Location Code\" <> '') then\n+ CreateNewDimFromDefaultDim(Rec.FieldNo(\"New Location Code\"));\n end;\n \n local procedure CreateNewDimFromDefaultDim(FieldNo: Integer)\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-218786", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 312.507, "tool_calls": 12, "total_tokens": 151600, "TurnCount": 34}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":4,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al\nindex 0b806569..dca9db12 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al\n@@ -3128,12 +3128,11 @@ table 5767 \"Warehouse Activity Line\"\n WhseActivityLine.SetLoadFields(\"Activity Type\", \"No.\", \"Line No.\", \"Item No.\", \"Variant Code\", \"Location Code\", \"Action Type\", Quantity, \"Lot No.\", \"Serial No.\", \"Source No.\", \"Source Line No.\", \"Source Document\");\n WhseActivityLine.SetRange(\"Activity Type\", FromWhseActivityLine.\"Activity Type\");\n WhseActivityLine.SetRange(\"No.\", FromWhseActivityLine.\"No.\");\n- WhseActivityLine.SetFilter(\"Line No.\", '<>%1', FromWhseActivityLine.\"Line No.\");\n+ WhseActivityLine.SetFilter(\"Line No.\", '>%1', FromWhseActivityLine.\"Line No.\");\n WhseActivityLine.SetRange(\"Item No.\", FromWhseActivityLine.\"Item No.\");\n WhseActivityLine.SetRange(\"Variant Code\", FromWhseActivityLine.\"Variant Code\");\n WhseActivityLine.SetRange(\"Location Code\", FromWhseActivityLine.\"Location Code\");\n WhseActivityLine.SetRange(\"Action Type\", WhseActivityLine.\"Action Type\"::Place);\n- WhseActivityLine.SetRange(Quantity, xWhseActivityLine.Quantity);\n WhseActivityLine.SetRange(\"Lot No.\", FromWhseActivityLine.\"Lot No.\");\n WhseActivityLine.SetRange(\"Serial No.\", FromWhseActivityLine.\"Serial No.\");\n WhseActivityLine.SetRange(\"Source Document\", FromWhseActivityLine.\"Source Document\");\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-213671", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 55, "tool_calls": 10, "total_tokens": 184800, "TurnCount": 8}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":1,\"grep\":1,\"report_intent\":2,\"update_todo\":2,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al b/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\nindex c70c6c1e..81667180 100644\n--- a/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\n+++ b/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\n@@ -630,7 +630,7 @@ page 5123 \"Opportunity List\"\n if Filter <> '' then begin\n RecRef.GetTable(RecVar);\n IndexFieldRef := RecRef.Field(IndexFieldNo);\n- IndexFieldRef.SetRange(Filter);\n+ IndexFieldRef.SetFilter(Filter);\n if RecRef.FindFirst() then begin\n TextFieldRef := RecRef.Field(TextFieldNo);\n CaptionText := CopyStr(Format(IndexFieldRef.Value) + ' ' + Format(TextFieldRef.Value), 1, MaxStrLen(CaptionText));\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-213629", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 35, "tool_calls": 8, "total_tokens": 96400, "TurnCount": 5}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":4,\"report_intent\":2,\"view\":1}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al\nindex 162d6cc5..544c740a 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al\n@@ -192,6 +192,7 @@ codeunit 1006 \"Copy Job\"\n TargetJobPlanningLine.\"Completely Picked\" := false;\n TargetJobPlanningLine.\"Ledger Entry No.\" := 0;\n TargetJobPlanningLine.\"Ledger Entry Type\" := TargetJobPlanningLine.\"Ledger Entry Type\"::\" \";\n+ TargetJobPlanningLine.\"System-Created Entry\" := false;\n OnCopyJobPlanningLinesOnBeforeTargetJobPlanningLineInsert(TargetJobPlanningLine, SourceJobPlanningLine);\n TargetJobPlanningLine.Insert(true);\n OnCopyJobPlanningLinesOnAfterTargetJobPlanningLineInsert(TargetJobPlanningLine, SourceJobPlanningLine);\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-213683", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 256.461, "tool_calls": 36, "total_tokens": 775100, "TurnCount": 51}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":3,\"grep\":16,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":9}", "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al\nindex 9735e4b2..adfd51bc 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al\n@@ -8,7 +8,6 @@ using Microsoft.Assembly.Document;\n using Microsoft.Inventory.BOM;\n using Microsoft.Inventory.Item.Catalog;\n using Microsoft.Inventory.Journal;\n-using Microsoft.Inventory.Ledger;\n using Microsoft.Inventory.Location;\n using Microsoft.Inventory.Requisition;\n using Microsoft.Inventory.Transfer;\n@@ -172,8 +171,6 @@ codeunit 99000795 \"Mfg. Item Integration\"\n RequisitionLine: Record \"Requisition Line\";\n TransferLine: Record \"Transfer Line\";\n ItemJournalLine: Record \"Item Journal Line\";\n- ValueEntry: Record \"Value Entry\";\n- ItemLedgerEntry: Record \"Item Ledger Entry\";\n ProdOrderLine: Record \"Prod. Order Line\";\n begin\n if xRec.\"Item No.\" <> Rec.\"Item No.\" then begin\n@@ -229,16 +226,6 @@ codeunit 99000795 \"Mfg. Item Integration\"\n ItemJournalLine.SetRange(\"Variant Code\", xRec.Code);\n if not ItemJournalLine.IsEmpty() then\n Error(CannotRenameItemErr, Rec.FieldCaption(\"Item No.\"), Rec.TableCaption(), ItemJournalLine.TableCaption());\n-\n- ItemLedgerEntry.SetRange(\"Item No.\", xRec.\"Item No.\");\n- ItemLedgerEntry.SetRange(\"Variant Code\", xRec.Code);\n- if not ItemLedgerEntry.IsEmpty() then\n- Error(CannotRenameItemErr, Rec.FieldCaption(\"Item No.\"), Rec.TableCaption(), ItemLedgerEntry.TableCaption());\n-\n- ValueEntry.SetRange(\"Item No.\", xRec.\"Item No.\");\n- ValueEntry.SetRange(\"Variant Code\", xRec.Code);\n- if not ValueEntry.IsEmpty() then\n- Error(CannotRenameItemErr, Rec.FieldCaption(\"Item No.\"), Rec.TableCaption(), ValueEntry.TableCaption());\n end;\n end;\n \n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-217104", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 168.921, "tool_calls": 10, "total_tokens": 204500, "TurnCount": 14}, "Project": "AutomaticAccountCodes", "ToolUsage": "{\"edit\":2,\"grep\":1,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":2}", "output": "diff --git a/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al b/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\nindex 0e4bcfe3..c051744e 100644\n--- a/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\n+++ b/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\n@@ -71,6 +71,7 @@ codeunit 4850 \"AA Codes Posting Helper\"\n GenJnlCheckLine: Codeunit \"Gen. Jnl.-Check Line\";\n NoOfAutoAccounts: Decimal;\n TotalAmount: Decimal;\n+ TotalAmountLCY: Decimal;\n TotalAltAmount: Decimal;\n SourceCurrBaseAmount: Decimal;\n AccLine: Integer;\n@@ -121,6 +122,9 @@ codeunit 4850 \"AA Codes Posting Helper\"\n GenJnlLine2.Validate(Amount, GenJnlLine2.Amount - TotalAmount);\n if (AccLine = NoOfAutoAccounts) and (TotalAltAmount <> 0) then\n GenJnlLine2.Validate(\"Source Currency Amount\", GenJnlLine2.\"Source Currency Amount\" - TotalAltAmount);\n+ TotalAmountLCY := TotalAmountLCY + GenJnlLine2.\"Amount (LCY)\";\n+ if (AccLine = NoOfAutoAccounts) and (TotalAmountLCY <> 0) then\n+ GenJnlLine2.\"Amount (LCY)\" := GenJnlLine2.\"Amount (LCY)\" - TotalAmountLCY;\n GenJnlCheckLine.RunCheck(GenJnlLine2);\n \n sender.InitGLEntry(GenJnlLine2, GLEntry,\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-203923", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 617.816, "tool_calls": 27, "total_tokens": 355700, "TurnCount": 97}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":5,\"grep\":8,\"report_intent\":2,\"task\":3,\"update_todo\":3,\"view\":5}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\nindex 6bb15d7d..9c9227b8 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n@@ -93,7 +93,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetNonDeductibleVATPct(NonDeductibleVATPct, VATPostingSetup, GeneralPostingType, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (VATPostingSetup.\"VAT Calculation Type\" in [VATPostingSetup.\"VAT Calculation Type\"::\"Normal VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (VATPostingSetup.\"VAT Calculation Type\" in [VATPostingSetup.\"VAT Calculation Type\"::\"Normal VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Reverse Charge VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if (VATPostingSetup.\"Allow Non-Deductible VAT\" = VATPostingSetup.\"Allow Non-Deductible VAT\"::\"Do not allow\") or (GeneralPostingType <> GeneralPostingType::Purchase) then\n exit(0);\n@@ -786,7 +786,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeCalcNonDedAmountsInGenJnlLine(GenJournalLine, Currency, IsHandled);\n if IsHandled then\n exit;\n- if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit;\n if not VATPostingSetup.Get(GenJournalLine.\"VAT Bus. Posting Group\", GenJournalLine.\"VAT Prod. Posting Group\") then\n exit;\n@@ -826,7 +826,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeCalcBalNonDedAmountsInGenJnlLine(GenJournalLine, Currency, IsHandled);\n if IsHandled then\n exit;\n- if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Full VAT\"]) then\n exit;\n if not VATPostingSetup.Get(GenJournalLine.\"Bal. VAT Bus. Posting Group\", GenJournalLine.\"Bal. VAT Prod. Posting Group\") then\n exit;\n@@ -1210,7 +1210,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetNonDedVATPctForGenJnlLine(NonDeductibleVATPct, GenJournalLine, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if not VATPostingSetup.Get(GenJournalLine.\"VAT Bus. Posting Group\", GenJournalLine.\"VAT Prod. Posting Group\") then\n exit(0);\n@@ -1227,7 +1227,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetBalNonDedVATPctForGenJnlLine(NonDeductibleVATPct, GenJournalLine, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if not VATPostingSetup.Get(GenJournalLine.\"Bal. VAT Bus. Posting Group\", GenJournalLine.\"Bal. VAT Prod. Posting Group\") then\n exit(0);\n", "error_message": null} +{"InstanceID": "microsoft__BCApps-4699", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 377.736, "tool_calls": 37, "total_tokens": 614900, "TurnCount": 49}, "Project": "Shopify", "ToolUsage": "{\"edit\":6,\"glob\":1,\"grep\":5,\"report_intent\":3,\"task\":2,\"update_todo\":3,\"view\":17}", "output": "diff --git a/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al b/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al\nindex 4e6ffd2..1f07b4d 100644\n--- a/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al\n@@ -5,6 +5,7 @@\n \n namespace Microsoft.Integration.Shopify;\n \n+using Microsoft.Finance.Currency;\n using Microsoft.Inventory.Item;\n using Microsoft.Foundation.UOM;\n using Microsoft.Purchases.Vendor;\n@@ -227,6 +228,7 @@ codeunit 30171 \"Shpfy Create Item\"\n /// Parameter of type Boolean.\n local procedure DoCreateItem(var ShopifyProduct: Record \"Shpfy Product\"; var ShopifyVariant: Record \"Shpfy Variant\"; var Item: Record Item; ForVariant: Boolean)\n var\n+ CurrExchRate: Record \"Currency Exchange Rate\";\n ItemCategory: Record \"Item Category\";\n ItemVariant: Record \"Item Variant\";\n Vendor: Record Vendor;\n@@ -258,10 +260,16 @@ codeunit 30171 \"Shpfy Create Item\"\n CreateItemUnitOfMeasure(ShopifyVariant, Item);\n \n if ShopifyVariant.\"Unit Cost\" <> 0 then\n- Item.Validate(\"Unit Cost\", ShopifyVariant.\"Unit Cost\");\n+ if Shop.\"Currency Code\" <> '' then\n+ Item.Validate(\"Unit Cost\", CurrExchRate.ExchangeAmtFCYToLCY(WorkDate(), Shop.\"Currency Code\", ShopifyVariant.\"Unit Cost\", CurrExchRate.ExchangeRate(WorkDate(), Shop.\"Currency Code\")))\n+ else\n+ Item.Validate(\"Unit Cost\", ShopifyVariant.\"Unit Cost\");\n \n if ShopifyVariant.Price <> 0 then\n- Item.Validate(\"Unit Price\", ShopifyVariant.Price);\n+ if Shop.\"Currency Code\" <> '' then\n+ Item.Validate(\"Unit Price\", CurrExchRate.ExchangeAmtFCYToLCY(WorkDate(), Shop.\"Currency Code\", ShopifyVariant.Price, CurrExchRate.ExchangeRate(WorkDate(), Shop.\"Currency Code\")))\n+ else\n+ Item.Validate(\"Unit Price\", ShopifyVariant.Price);\n \n if ShopifyProduct.\"Product Type\" <> '' then begin\n ItemCategory.SetFilter(Description, FilterMgt.CleanFilterValue(ShopifyProduct.\"Product Type\", MaxStrLen(ItemCategory.Description)));\ndiff --git a/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyProductPriceCalc.Codeunit.al b/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyProductPriceCalc.Codeunit.al\nindex 892592c..12152f3 100644\n--- a/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyProductPriceCalc.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyProductPriceCalc.Codeunit.al\n@@ -5,6 +5,7 @@\n \n namespace Microsoft.Integration.Shopify;\n \n+using Microsoft.Finance.Currency;\n using Microsoft.Inventory.Item;\n using Microsoft.Sales.Document;\n using Microsoft.Sales.Customer;\n@@ -55,6 +56,7 @@ codeunit 30182 \"Shpfy Product Price Calc.\"\n /// Parameter of type Decimal.\n internal procedure CalcPrice(Item: Record Item; ItemVariant: Code[20]; UnitOfMeasure: Code[20]; var UnitCost: Decimal; var Price: Decimal; var ComparePrice: Decimal)\n var\n+ CurrExchRate: Record \"Currency Exchange Rate\";\n ItemUnitofMeasure: Record \"Item Unit of Measure\";\n TempSalesLine: Record \"Sales Line\" temporary;\n ShpfyUpdatePriceSouce: codeunit \"Shpfy Update Price Source\";\n@@ -85,6 +87,10 @@ codeunit 30182 \"Shpfy Product Price Calc.\"\n UnitCost := UnitCost * ItemUnitofMeasure.\"Qty. per Unit of Measure\";\n Price := Price * ItemUnitofMeasure.\"Qty. per Unit of Measure\";\n end;\n+ if CurrencyCode <> '' then begin\n+ UnitCost := CurrExchRate.ExchangeAmtLCYToFCY(WorkDate(), CurrencyCode, UnitCost, CurrExchRate.ExchangeRate(WorkDate(), CurrencyCode));\n+ Price := CurrExchRate.ExchangeAmtLCYToFCY(WorkDate(), CurrencyCode, Price, CurrExchRate.ExchangeRate(WorkDate(), CurrencyCode));\n+ end;\n ComparePrice := Price;\n end;\n UnbindSubscription(ShpfyUpdatePriceSouce);\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-185792", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 171.611, "tool_calls": 13, "total_tokens": 171100, "TurnCount": 45}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":3,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\nindex 53e7159a..da7c4360 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\n@@ -598,6 +598,11 @@ table 81 \"Gen. Journal Line\"\n Validate(\"VAT %\");\n Validate(\"Bal. VAT %\");\n UpdateLineBalance();\n+\n+ if JobTaskIsSet() then begin\n+ CreateTempJobJnlLine();\n+ UpdatePricesFromJobJnlLine();\n+ end;\n end;\n end;\n }\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-208748", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 192.842, "tool_calls": 21, "total_tokens": 378500, "TurnCount": 29}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"glob\":1,\"grep\":3,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":9}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\nindex 7c1943c5..962c9070 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\n@@ -123,7 +123,9 @@ codeunit 87 \"Blanket Sales Order to Order\"\n ATOLink: Record \"Assemble-to-Order Link\";\n PrepmtMgt: Codeunit \"Prepayment Mgt.\";\n SalesLineReserve: Codeunit \"Sales Line-Reserve\";\n+ BlanketOrderLineNoToOrderLineNo: Dictionary of [Integer, Integer];\n QuantityOnOrders: Decimal;\n+ NewAttachedToLineNo: Integer;\n IsHandled: Boolean;\n ProcessLine: Boolean;\n begin\n@@ -164,6 +166,10 @@ codeunit 87 \"Blanket Sales Order to Order\"\n SalesLineOrder.\"Document No.\" := SalesHeaderOrder.\"No.\";\n NextLineNo += 10000;\n SalesLineOrder.\"Line No.\" := NextLineNo;\n+ BlanketOrderLineNoToOrderLineNo.Set(SalesLineBlanketOrder.\"Line No.\", NextLineNo);\n+ if SalesLineOrder.IsExtendedText() then\n+ if BlanketOrderLineNoToOrderLineNo.Get(SalesLineOrder.\"Attached to Line No.\", NewAttachedToLineNo) then\n+ SalesLineOrder.\"Attached to Line No.\" := NewAttachedToLineNo;\n SalesLineOrder.\"Blanket Order No.\" := SalesHeaderBlanketOrder.\"No.\";\n SalesLineOrder.\"Blanket Order Line No.\" := SalesLineBlanketOrder.\"Line No.\";\n if (SalesLineOrder.\"No.\" <> '') and (SalesLineOrder.Type <> SalesLineOrder.Type::\" \") then begin\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-207247", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 141.632, "tool_calls": 14, "total_tokens": 153900, "TurnCount": 29}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":4,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\nindex bd370429..d84df0de 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n@@ -1541,6 +1541,9 @@ codeunit 99000813 \"Carry Out Action\"\n ProductionBOMLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n ProductionBOMLine.SetRange(Type, ProductionBOMLine.Type::Item);\n ProductionBOMLine.SetRange(\"No.\", ProdOrderComponent.\"Item No.\");\n+ ProductionBOMLine.SetRange(Position, ProdOrderComponent.Position);\n+ ProductionBOMLine.SetRange(\"Position 2\", ProdOrderComponent.\"Position 2\");\n+ ProductionBOMLine.SetRange(\"Position 3\", ProdOrderComponent.\"Position 3\");\n if ProductionBOMLine.FindSet() then\n repeat\n ProductionBOMCommentLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-185696", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 385.748, "tool_calls": 26, "total_tokens": 506900, "TurnCount": 47}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":3,\"grep\":8,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":7}", "output": "diff --git a/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListLines.Page.al b/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListLines.Page.al\nindex bb986d65..c753e305 100644\n--- a/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListLines.Page.al\n+++ b/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListLines.Page.al\n@@ -291,6 +291,7 @@ page 7001 \"Price List Lines\"\n \n trigger OnNewRecord(BelowxRec: Boolean)\n begin\n+ Rec.SetNewRecord(true);\n if not GetHeader() then\n exit;\n if PriceListHeader.\"Allow Updating Defaults\" then begin\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-185488", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 275.003, "tool_calls": 29, "total_tokens": 598300, "TurnCount": 50}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":11,\"report_intent\":3,\"task\":2,\"update_todo\":3,\"view\":9}", "output": "diff --git a/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al b/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al\nindex bcd82095..6082a9c0 100644\n--- a/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al\n@@ -624,12 +624,28 @@ codeunit 1521 \"Workflow Response Handling\"\n begin\n end;\n \n- local procedure CreateNotificationEntry(WorkflowStepInstance: Record \"Workflow Step Instance\"; ApprovalEntry: Record \"Approval Entry\")\n+ local procedure CreateNotificationEntry(WorkflowStepInstance: Record \"Workflow Step Instance\"; RecVariant: Variant)\n var\n+ ApprovalEntry: Record \"Approval Entry\";\n WorkflowStepArgument: Record \"Workflow Step Argument\";\n NotificationEntry: Record \"Notification Entry\";\n+ RecRef: RecordRef;\n IsHandled: Boolean;\n begin\n+ RecRef.GetTable(RecVariant);\n+ case RecRef.Number of\n+ DATABASE::\"Approval Entry\":\n+ ApprovalEntry := RecVariant;\n+ else begin\n+ ApprovalEntry.SetCurrentKey(\"Table ID\", \"Record ID to Approve\", Status, \"Workflow Step Instance ID\", \"Sequence No.\");\n+ ApprovalEntry.SetRange(\"Table ID\", RecRef.Number);\n+ ApprovalEntry.SetRange(\"Record ID to Approve\", RecRef.RecordId);\n+ ApprovalEntry.SetRange(Status, ApprovalEntry.Status::Open);\n+ if not ApprovalEntry.FindFirst() then\n+ exit;\n+ end;\n+ end;\n+\n IsHandled := false;\n OnBeforeCreateNotificationEntry(WorkflowStepInstance, ApprovalEntry, IsHandled);\n if IsHandled then\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-218995", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 144.633, "tool_calls": 18, "total_tokens": 262300, "TurnCount": 13}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":9,\"report_intent\":2,\"update_todo\":2,\"view\":4}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Posting/JobPostLine.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Posting/JobPostLine.Codeunit.al\nindex a913f1c1..172ae097 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Posting/JobPostLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Posting/JobPostLine.Codeunit.al\n@@ -478,6 +478,10 @@ codeunit 1001 \"Job Post-Line\"\n if IsHandled then\n exit;\n \n+ if Item.Get(PurchaseLine.\"No.\") then\n+ if Item.IsNonInventoriableType() then\n+ exit;\n+\n Job.Get(PurchaseLine.\"Job No.\");\n if Job.GetQuantityAvailable(PurchaseLine.\"No.\", PurchaseLine.\"Location Code\", PurchaseLine.\"Variant Code\", 0, 2) <\n -PurchaseLine.\"Return Qty. to Ship (Base)\"\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-193649", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 227.94299999999998, "tool_calls": 44, "total_tokens": 1008600, "TurnCount": 27}, "Project": "Shopify", "ToolUsage": "{\"create\":1,\"edit\":1,\"glob\":2,\"grep\":18,\"powershell\":1,\"report_intent\":2,\"update_todo\":2,\"view\":17}", "output": "diff --git a/App/Apps/W1/Shopify/app/src/Order handling/Codeunits/ShpfyCopyDocumentMgt.Codeunit.al b/App/Apps/W1/Shopify/app/src/Order handling/Codeunits/ShpfyCopyDocumentMgt.Codeunit.al\nnew file mode 100644\nindex 00000000..d089bd1a\n--- /dev/null\n+++ b/App/Apps/W1/Shopify/app/src/Order handling/Codeunits/ShpfyCopyDocumentMgt.Codeunit.al\t\n@@ -0,0 +1,60 @@\n+namespace Microsoft.Integration.Shopify;\n+\n+using Microsoft.Sales.Document;\n+using Microsoft.Utilities;\n+\n+codeunit 30366 \"Shpfy Copy Document Mgt.\"\n+{\n+ Access = Internal;\n+\n+ [EventSubscriber(ObjectType::Codeunit, Codeunit::\"Copy Document Mgt.\", 'OnAfterCopySalesHeaderDone', '', false, false)]\n+ local procedure ClearShopifyOrderInfoOnAfterCopySalesHeaderDone(var ToSalesHeader: Record \"Sales Header\")\n+ begin\n+ ClearShopifyHeaderFields(ToSalesHeader);\n+ end;\n+\n+ [EventSubscriber(ObjectType::Codeunit, Codeunit::\"Copy Document Mgt.\", 'OnAfterCopySalesLineFromSalesDocSalesLine', '', false, false)]\n+ local procedure ClearShopifyLineInfoOnAfterCopySalesLineFromSalesDocSalesLine(var ToSalesLine: Record \"Sales Line\")\n+ begin\n+ ClearShopifyLineFields(ToSalesLine);\n+ end;\n+\n+ [EventSubscriber(ObjectType::Codeunit, Codeunit::\"Copy Document Mgt.\", 'OnAfterCopySalesLineFromSalesLineBuffer', '', false, false)]\n+ local procedure ClearShopifyLineInfoOnAfterCopySalesLineFromSalesLineBuffer(var ToSalesLine: Record \"Sales Line\")\n+ begin\n+ ClearShopifyLineFields(ToSalesLine);\n+ end;\n+\n+ [EventSubscriber(ObjectType::Codeunit, Codeunit::\"Copy Document Mgt.\", 'OnAfterCopySalesLineFromSalesCrMemoLineBuffer', '', false, false)]\n+ local procedure ClearShopifyLineInfoOnAfterCopySalesLineFromSalesCrMemoLineBuffer(var ToSalesLine: Record \"Sales Line\")\n+ begin\n+ ClearShopifyLineFields(ToSalesLine);\n+ end;\n+\n+ [EventSubscriber(ObjectType::Codeunit, Codeunit::\"Copy Document Mgt.\", 'OnAfterCopySalesLineFromSalesShptLineBuffer', '', false, false)]\n+ local procedure ClearShopifyLineInfoOnAfterCopySalesLineFromSalesShptLineBuffer(var ToSalesLine: Record \"Sales Line\")\n+ begin\n+ ClearShopifyLineFields(ToSalesLine);\n+ end;\n+\n+ [EventSubscriber(ObjectType::Codeunit, Codeunit::\"Copy Document Mgt.\", 'OnAfterCopySalesLineFromReturnRcptLineBuffer', '', false, false)]\n+ local procedure ClearShopifyLineInfoOnAfterCopySalesLineFromReturnRcptLineBuffer(var ToSalesLine: Record \"Sales Line\")\n+ begin\n+ ClearShopifyLineFields(ToSalesLine);\n+ end;\n+\n+ local procedure ClearShopifyHeaderFields(var SalesHeader: Record \"Sales Header\")\n+ begin\n+ SalesHeader.\"Shpfy Order Id\" := 0;\n+ SalesHeader.\"Shpfy Order No.\" := '';\n+ SalesHeader.\"Shpfy Refund Id\" := 0;\n+ end;\n+\n+ local procedure ClearShopifyLineFields(var SalesLine: Record \"Sales Line\")\n+ begin\n+ SalesLine.\"Shpfy Order Line Id\" := 0;\n+ SalesLine.\"Shpfy Order No.\" := '';\n+ SalesLine.\"Shpfy Refund Id\" := 0;\n+ SalesLine.\"Shpfy Refund Line Id\" := 0;\n+ end;\n+}\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-220984", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 67.867, "tool_calls": 14, "total_tokens": 209100, "TurnCount": 11}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":3,\"report_intent\":2,\"update_todo\":2,\"view\":6}", "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al\nindex 83bf3f09..fc62ac19 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al\n@@ -157,7 +157,7 @@ report 99001043 \"Exchange Production BOM Item\"\n CopyPositionFields(ProductionBOMLine2, ProductionBOMLine3);\n ShouldModifyProductionBOMLine := true;\n OnIntegerOnPostDataItemOnBeforeModifyProductionBOMLine(ProductionBOMLine, ShouldModifyProductionBOMLine);\n- if not ShouldModifyProductionBOMLine then begin\n+ if ShouldModifyProductionBOMLine then begin\n ProductionBOMLine.\"Ending Date\" := StartingDate - 1;\n ProductionBOMLine.Modify();\n end;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-222092", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 514.671, "tool_calls": 25, "total_tokens": 621500, "TurnCount": 55}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":1,\"grep\":7,\"report_intent\":3,\"task\":2,\"update_todo\":2,\"view\":9}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\nindex 825eb23c..9ff59101 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n@@ -270,8 +270,8 @@ codeunit 393 \"Reminder-Issue\"\n begin\n GenJnlLine2.\"Shortcut Dimension 1 Code\" := GlobalReminderHeader.\"Shortcut Dimension 1 Code\";\n GenJnlLine2.\"Shortcut Dimension 2 Code\" := GlobalReminderHeader.\"Shortcut Dimension 2 Code\";\n- DimSetIDArr[1] := GlobalReminderHeader.\"Dimension Set ID\";\n- DimSetIDArr[2] := TempGenJnlLine.\"Dimension Set ID\";\n+ DimSetIDArr[1] := TempGenJnlLine.\"Dimension Set ID\";\n+ DimSetIDArr[2] := GlobalReminderHeader.\"Dimension Set ID\";\n GenJnlLine2.\"Dimension Set ID\" :=\n DimMgt.GetCombinedDimensionSetID(\n DimSetIDArr, GenJnlLine2.\"Shortcut Dimension 1 Code\", GenJnlLine2.\"Shortcut Dimension 2 Code\");\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-215225", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 347.731, "tool_calls": 33, "total_tokens": 738200, "TurnCount": 83}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":1,\"grep\":10,\"report_intent\":2,\"task\":2,\"update_todo\":2,\"view\":15}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobJournalLine.Table.al b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobJournalLine.Table.al\nindex fb253f0b..9386f68a 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobJournalLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobJournalLine.Table.al\n@@ -1662,18 +1662,12 @@ table 210 \"Job Journal Line\"\n begin\n Quantity := 0;\n \"Quantity (Base)\" := 0;\n- \"Direct Unit Cost (LCY)\" := 0;\n- \"Unit Cost (LCY)\" := 0;\n- \"Unit Cost\" := 0;\n \"Total Cost (LCY)\" := 0;\n \"Total Cost\" := 0;\n- \"Unit Price (LCY)\" := 0;\n- \"Unit Price\" := 0;\n \"Total Price (LCY)\" := 0;\n \"Total Price\" := 0;\n \"Line Amount (LCY)\" := 0;\n \"Line Amount\" := 0;\n- \"Line Discount %\" := 0;\n \"Line Discount Amount (LCY)\" := 0;\n \"Line Discount Amount\" := 0;\n \"Remaining Qty.\" := 0;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-227240", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 132.57, "tool_calls": 9, "total_tokens": 92600, "TurnCount": 16}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":1,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\nindex 9ff59101..ff238e73 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n@@ -409,9 +409,6 @@ codeunit 393 \"Reminder-Issue\"\n if IsHandled then\n exit;\n \n- if NewDueDate < ReminderEntry2.\"Due Date\" then\n- exit;\n-\n ReminderEntry2.Validate(\"Due Date\", NewDueDate);\n ReminderEntry2.Modify();\n end;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-226875", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 271.543, "tool_calls": 37, "total_tokens": 764400, "TurnCount": 73}, "Project": "BaseApp", "ToolUsage": "{\"edit\":6,\"grep\":4,\"report_intent\":2,\"task\":2,\"update_todo\":4,\"view\":19}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\nindex fa043e01..6b521f1d 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n@@ -154,6 +154,7 @@ page 254 \"Purchase Journal\"\n trigger OnValidate()\n begin\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ SetVendorName();\n EnableApplyEntriesAction();\n CurrPage.SaveRecord();\n end;\n@@ -166,11 +167,12 @@ page 254 \"Purchase Journal\"\n trigger OnValidate()\n begin\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ SetVendorName();\n Rec.ShowShortcutDimCode(ShortcutDimCode);\n CurrPage.SaveRecord();\n end;\n }\n- field(\"\"; AccName)\n+ field(\"\"; VendorName)\n {\n ApplicationArea = Basic, Suite;\n Caption = 'Vendor Name';\n@@ -390,6 +392,7 @@ page 254 \"Purchase Journal\"\n trigger OnValidate()\n begin\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ SetVendorName();\n Rec.ShowShortcutDimCode(ShortcutDimCode);\n CurrPage.SaveRecord();\n end;\n@@ -1494,6 +1497,7 @@ page 254 \"Purchase Journal\"\n begin\n HasIncomingDocument := Rec.\"Incoming Document Entry No.\" <> 0;\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ SetVendorName();\n UpdateBalance();\n EnableApplyEntriesAction();\n SetControlAppearance();\n@@ -1508,6 +1512,7 @@ page 254 \"Purchase Journal\"\n Rec.ShowShortcutDimCode(ShortcutDimCode);\n DocumentAmount := Abs(Rec.Amount);\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ SetVendorName();\n CurrPage.IncomingDocAttachFactBox.PAGE.SetCurrentRecordID(Rec.RecordId());\n ApprovalMgmt.GetGenJnlLineApprovalStatus(Rec, GenJnlLineApprovalStatus, EnabledGenJnlLineWorkflowsExist);\n end;\n@@ -1639,6 +1644,7 @@ page 254 \"Purchase Journal\"\n ShortcutDimCode: array[8] of Code[20];\n AccName: Text[100];\n BalAccName: Text[100];\n+ VendorName: Text[100];\n DimVisible1: Boolean;\n DimVisible2: Boolean;\n DimVisible3: Boolean;\n@@ -1661,6 +1667,17 @@ page 254 \"Purchase Journal\"\n NumberOfRecords := Rec.Count();\n end;\n \n+ local procedure SetVendorName()\n+ begin\n+ if Rec.\"Account Type\" = Rec.\"Account Type\"::Vendor then\n+ VendorName := AccName\n+ else\n+ if Rec.\"Bal. Account Type\" = Rec.\"Bal. Account Type\"::Vendor then\n+ VendorName := BalAccName\n+ else\n+ VendorName := '';\n+ end;\n+\n local procedure EnableApplyEntriesAction()\n begin\n ApplyEntriesActionEnabled :=\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-216572", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 389.049, "tool_calls": 19, "total_tokens": 349500, "TurnCount": 27}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":3,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":9}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al\nindex 130b3e0f..c1bb70cf 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al\n@@ -666,9 +666,22 @@ table 221 \"Gen. Jnl. Allocation\"\n end;\n \n local procedure CopyFieldsFromAllocationAccountDistribution(AllocAccountDistribution: Record \"Alloc. Account Distribution\")\n+ var\n+ DimensionSetIDArr: array[10] of Integer;\n+ GlobalDim1Code: Code[20];\n+ GlobalDim2Code: Code[20];\n begin\n Rec.Validate(\"Account No.\", AllocAccountDistribution.\"Destination Account Number\");\n Rec.Validate(\"Allocation %\", AllocAccountDistribution.Percent);\n+ if AllocAccountDistribution.\"Dimension Set ID\" <> 0 then begin\n+ GlobalDim1Code := AllocAccountDistribution.\"Global Dimension 1 Code\";\n+ GlobalDim2Code := AllocAccountDistribution.\"Global Dimension 2 Code\";\n+ DimensionSetIDArr[1] := Rec.\"Dimension Set ID\";\n+ DimensionSetIDArr[2] := AllocAccountDistribution.\"Dimension Set ID\";\n+ Rec.Validate(\"Dimension Set ID\",\n+ DimMgt.GetCombinedDimensionSetID(DimensionSetIDArr, GlobalDim1Code, GlobalDim2Code));\n+ end;\n+ Rec.Modify();\n end;\n \n local procedure CheckGLAccount(var GLAccount: Record \"G/L Account\")\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-207236", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 146.826, "tool_calls": 21, "total_tokens": 355800, "TurnCount": 15}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":10,\"report_intent\":2,\"update_todo\":2,\"view\":5}", "output": "diff --git a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseHeader.Table.al b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseHeader.Table.al\nindex 18898d3e..f2dd4774 100644\n--- a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseHeader.Table.al\n@@ -6421,6 +6421,7 @@ table 38 \"Purchase Header\"\n \n if ReplacePostingDate then begin\n \"Posting Date\" := PostingDateReq;\n+ xRec := Rec;\n Validate(\"Currency Code\");\n end;\n \ndiff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al b/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\nindex fbf39fce..901b4209 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\n@@ -7038,6 +7038,7 @@ table 36 \"Sales Header\"\n exit;\n \n \"Posting Date\" := PostingDateReq;\n+ xRec := Rec;\n Validate(\"Currency Code\");\n \n if ReplaceVATDate then\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-226004", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 516.447, "tool_calls": 55, "total_tokens": 2725600, "TurnCount": 42}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":6,\"glob\":1,\"grep\":10,\"powershell\":1,\"report_intent\":3,\"update_todo\":4,\"view\":29}", "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al b/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al\nindex d086521b..e4ba0ac5 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al\n@@ -741,6 +741,7 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n ITQtyToPickBase: Decimal;\n TotalITQtyToPickBase: Decimal;\n QtyToTrackBase: Decimal;\n+ RemQtyToPick: Decimal;\n EntriesExist: Boolean;\n ShouldInsertPickOrMoveDefaultBin: Boolean;\n IsHandled: Boolean;\n@@ -783,6 +784,7 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n end;\n \n if RemQtyToPickBase > 0 then begin\n+ RemQtyToPick := NewWarehouseActivityLine.CalcQty(RemQtyToPickBase);\n if ItemTrackingManagement.GetWhseItemTrkgSetup(NewWarehouseActivityLine.\"Item No.\", WhseItemTrackingSetup) then begin\n OnCreatePickOrMoveLineOnAfterGetWhseItemTrkgSetup(NewWarehouseActivityLine, WhseItemTrackingSetup);\n if IsBlankInvtMovement then\n@@ -829,7 +831,7 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n // find Take qty. for bin code of source line\n if (NewWarehouseActivityLine.\"Bin Code\" <> '') and (not IsInvtMovement or IsBlankInvtMovement) then\n InsertPickOrMoveBinWhseActLine(\n- NewWarehouseActivityLine, NewWarehouseActivityLine.\"Bin Code\", false, ITQtyToPickBase, WhseItemTrackingSetup);\n+ NewWarehouseActivityLine, NewWarehouseActivityLine.\"Bin Code\", false, ITQtyToPickBase, WhseItemTrackingSetup, RemQtyToPick);\n \n OnCreatePickOrMoveLineOnAfterFindTakeQtyForBinCodeOfSourceLineHandlingSpec(NewWarehouseActivityLine, TempTrackingSpecification, WhseItemTrackingSetup, ITQtyToPickBase, CurrWarehouseActivityHeader);\n \n@@ -847,11 +849,11 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n FeatureTelemetry.LogUsage('0000KP7', BinPolicyTelemetryCategoryTok, DefaultBinPickPolicyTelemetryTok);\n \n if ShouldInsertPickOrMoveDefaultBin then\n- InsertPickOrMoveBinWhseActLine(NewWarehouseActivityLine, '', true, ITQtyToPickBase, WhseItemTrackingSetup);\n+ InsertPickOrMoveBinWhseActLine(NewWarehouseActivityLine, '', true, ITQtyToPickBase, WhseItemTrackingSetup, RemQtyToPick);\n \n // find Take qty. for other bins\n if ITQtyToPickBase > 0 then\n- InsertPickOrMoveBinWhseActLine(NewWarehouseActivityLine, '', false, ITQtyToPickBase, WhseItemTrackingSetup);\n+ InsertPickOrMoveBinWhseActLine(NewWarehouseActivityLine, '', false, ITQtyToPickBase, WhseItemTrackingSetup, RemQtyToPick);\n end;\n CurrLocation.\"Pick Bin Policy\"::\"Bin Ranking\":\n begin\n@@ -859,7 +861,7 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n \n // find Take qty. for other bins\n if ITQtyToPickBase > 0 then\n- InsertPickOrMoveBinWhseActLine(NewWarehouseActivityLine, '', false, ITQtyToPickBase, WhseItemTrackingSetup);\n+ InsertPickOrMoveBinWhseActLine(NewWarehouseActivityLine, '', false, ITQtyToPickBase, WhseItemTrackingSetup, RemQtyToPick);\n end;\n else\n OnInsertPickOrMoveBinWhseActivityLine(NewWarehouseActivityLine, ITQtyToPickBase);\n@@ -871,7 +873,7 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n SynchronizeWhseItemTracking(TempTrackingSpecification);\n end else\n if ITQtyToPickBase > 0 then\n- InsertShelfWhseActivLine(NewWarehouseActivityLine, ITQtyToPickBase, WhseItemTrackingSetup);\n+ InsertShelfWhseActivLine(NewWarehouseActivityLine, ITQtyToPickBase, WhseItemTrackingSetup, RemQtyToPick);\n \n RemQtyToPickBase :=\n RemQtyToPickBase + ITQtyToPickBase +\n@@ -892,7 +894,7 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n (not HasExpiredItems)\n then\n InsertPickOrMoveBinWhseActLine(\n- NewWarehouseActivityLine, NewWarehouseActivityLine.\"Bin Code\", false, RemQtyToPickBase, WhseItemTrackingSetup);\n+ NewWarehouseActivityLine, NewWarehouseActivityLine.\"Bin Code\", false, RemQtyToPickBase, WhseItemTrackingSetup, RemQtyToPick);\n \n OnCreatePickOrMoveLineOnAfterFindTakeQtyForBinCodeSourceLine(NewWarehouseActivityLine, WhseItemTrackingSetup, RemQtyToPickBase, CurrWarehouseActivityHeader);\n // Invt. movement without document has to be created\n@@ -901,14 +903,14 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n \n // find Take qty. for default bin\n if (RemQtyToPickBase > 0) and (not HasExpiredItems) and (CurrLocation.\"Pick Bin Policy\" = CurrLocation.\"Pick Bin Policy\"::\"Default Bin\") then\n- InsertPickOrMoveBinWhseActLine(NewWarehouseActivityLine, '', true, RemQtyToPickBase, WhseItemTrackingSetup);\n+ InsertPickOrMoveBinWhseActLine(NewWarehouseActivityLine, '', true, RemQtyToPickBase, WhseItemTrackingSetup, RemQtyToPick);\n \n // find Take qty. for other bins\n if (RemQtyToPickBase > 0) and (not HasExpiredItems) then\n- InsertPickOrMoveBinWhseActLine(NewWarehouseActivityLine, '', false, RemQtyToPickBase, WhseItemTrackingSetup)\n+ InsertPickOrMoveBinWhseActLine(NewWarehouseActivityLine, '', false, RemQtyToPickBase, WhseItemTrackingSetup, RemQtyToPick)\n end else\n if (RemQtyToPickBase > 0) and (not HasExpiredItems) then\n- InsertShelfWhseActivLine(NewWarehouseActivityLine, RemQtyToPickBase, WhseItemTrackingSetup);\n+ InsertShelfWhseActivLine(NewWarehouseActivityLine, RemQtyToPickBase, WhseItemTrackingSetup, RemQtyToPick);\n end;\n \n QtyRemToPickBase := OriginalRemQtyToPickBase - QtyAvailToPickBase + RemQtyToPickBase;\n@@ -944,12 +946,19 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n end;\n \n procedure InsertPickOrMoveBinWhseActLine(NewWarehouseActivityLine: Record \"Warehouse Activity Line\"; BinCode: Code[20]; DefaultBin: Boolean; var RemQtyToPickBase: Decimal; WhseItemTrackingSetup: Record \"Item Tracking Setup\")\n+ var\n+ RemQtyToPick: Decimal;\n+ begin\n+ RemQtyToPick := NewWarehouseActivityLine.CalcQty(RemQtyToPickBase);\n+ InsertPickOrMoveBinWhseActLine(NewWarehouseActivityLine, BinCode, DefaultBin, RemQtyToPickBase, WhseItemTrackingSetup, RemQtyToPick);\n+ end;\n+\n+ procedure InsertPickOrMoveBinWhseActLine(NewWarehouseActivityLine: Record \"Warehouse Activity Line\"; BinCode: Code[20]; DefaultBin: Boolean; var RemQtyToPickBase: Decimal; WhseItemTrackingSetup: Record \"Item Tracking Setup\"; var RemQtyToPick: Decimal)\n var\n FromBinContent: Record \"Bin Content\";\n QtyToPickBase: Decimal;\n QtyAvailToPickBase: Decimal;\n IsHandled: Boolean;\n- RemQtyToPick: Decimal;\n begin\n IsHandled := false;\n OnBeforeInsertPickOrMoveBinWhseActLine(\n@@ -1026,7 +1035,7 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n QtyToPickBase := QtyAvailToPickBase;\n OnInsertPickOrMoveBinWhseActLineOnBeforeLoopMakeLine(CurrWarehouseActivityHeader, CurrWarehouseRequest, NewWarehouseActivityLine, FromBinContent, AutoCreation, QtyToPickBase);\n repeat\n- MakeWarehouseActivityLine(NewWarehouseActivityLine, FromBinContent.\"Bin Code\", QtyToPickBase, RemQtyToPickBase);\n+ MakeLineWhenSNoReq(NewWarehouseActivityLine, FromBinContent.\"Bin Code\", QtyToPickBase, RemQtyToPickBase, RemQtyToPick);\n OnInsertPickOrMoveBinWhseActLineOnAfterMakeLine(QtyToPickBase, DefaultBin);\n QtyAvailToPickBase := QtyAvailToPickBase - QtyToPickBase;\n until QtyAvailToPickBase <= 0;\n@@ -1064,8 +1073,15 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n \n procedure InsertShelfWhseActivLine(NewWarehouseActivityLine: Record \"Warehouse Activity Line\"; var RemQtyToPickBase: Decimal; WhseItemTrackingSetup: Record \"Item Tracking Setup\")\n var\n- QtyToPickBase: Decimal;\n RemQtyToPick: Decimal;\n+ begin\n+ RemQtyToPick := NewWarehouseActivityLine.CalcQty(RemQtyToPickBase);\n+ InsertShelfWhseActivLine(NewWarehouseActivityLine, RemQtyToPickBase, WhseItemTrackingSetup, RemQtyToPick);\n+ end;\n+\n+ procedure InsertShelfWhseActivLine(NewWarehouseActivityLine: Record \"Warehouse Activity Line\"; var RemQtyToPickBase: Decimal; WhseItemTrackingSetup: Record \"Item Tracking Setup\"; var RemQtyToPick: Decimal)\n+ var\n+ QtyToPickBase: Decimal;\n IsHandled: Boolean;\n begin\n CreateATOPickLine(NewWarehouseActivityLine, '', RemQtyToPickBase);\n@@ -1091,7 +1107,7 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n end else begin\n QtyToPickBase := RemQtyToPickBase;\n repeat\n- MakeWarehouseActivityLine(NewWarehouseActivityLine, '', QtyToPickBase, RemQtyToPickBase);\n+ MakeLineWhenSNoReq(NewWarehouseActivityLine, '', QtyToPickBase, RemQtyToPickBase, RemQtyToPick);\n OnInsertShelfWhseActivLineOnAfterMakeWarehouseActivityLine(NewWarehouseActivityLine);\n until RemQtyToPickBase = 0;\n end;\n", "error_message": null} +{"InstanceID": "microsoft__BCApps-4822", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 202.083, "tool_calls": 29, "total_tokens": 825400, "TurnCount": 33}, "Project": "Shopify", "ToolUsage": "{\"edit\":4,\"grep\":8,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":11}", "output": "diff --git a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\nindex 2d20144..d3acb06 100644\n--- a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\n@@ -523,7 +523,7 @@ codeunit 30286 \"Shpfy Company API\"\n JResponse := CommunicationMgt.ExecuteGraphQL(GraphQuery.ToText());\n if JResponse.SelectToken('$.data.companyLocationCreate.companyLocation', JCompanyLocation) then\n if not JsonHelper.IsTokenNull(JCompanyLocation) then begin\n- LocationId := CreateCustomerLocation(JCompanyLocation.AsObject(), ShopifyCompany, Customer.SystemId);\n+ LocationId := CreateCustomerLocation(JCompanyLocation.AsObject(), ShopifyCompany, Customer);\n if JsonHelper.GetJsonArray(JCompanyLocation, JContactRoles, 'company.contactRoles.edges') then begin\n foreach JItem in JContactRoles do\n CompanyContactRoles.Add(JsonHelper.GetValueAsText(JItem, 'node.name'), CommunicationMgt.GetIdOfGId(JsonHelper.GetValueAsText(JItem, 'node.id')));\n@@ -540,7 +540,7 @@ codeunit 30286 \"Shpfy Company API\"\n /// \n /// JSON object containing the company location data from Shopify API response.\n /// The parent Shopify company record.\n- /// The GUID of the Business Central customer that was exported.\n+ /// The Business Central customer record that was exported.\n /// \n /// This procedure:\n /// - Extracts the Shopify-generated ID and creates the initial record\n@@ -552,7 +552,7 @@ codeunit 30286 \"Shpfy Company API\"\n /// The procedure assumes the JSON structure matches Shopify's companyLocationCreate response format.\n /// All text fields are properly truncated to match the field lengths in the table definition.\n /// \n- local procedure CreateCustomerLocation(JCompanyLocation: JsonObject; ShopifyCompany: Record \"Shpfy Company\"; CustomerId: Guid): BigInteger\n+ local procedure CreateCustomerLocation(JCompanyLocation: JsonObject; ShopifyCompany: Record \"Shpfy Company\"; Customer: Record Customer): BigInteger\n var\n CompanyLocation: Record \"Shpfy Company Location\";\n CompanyLocationId: BigInteger;\n@@ -580,7 +580,11 @@ codeunit 30286 \"Shpfy Company API\"\n #pragma warning restore AA0139\n CompanyLocation.Recipient := CopyStr(JsonHelper.GetValueAsText(JCompanyLocation, 'billingAddress.recipient', MaxStrLen(CompanyLocation.Recipient)), 1, MaxStrLen(CompanyLocation.Recipient));\n CompanyLocation.\"Shpfy Payment Terms Id\" := CommunicationMgt.GetIdOfGId(JsonHelper.GetValueAsText(JCompanyLocation, 'buyerExperienceConfiguration.paymentTermsTemplate.id'));\n- CompanyLocation.\"Customer Id\" := CustomerId;\n+ CompanyLocation.\"Customer Id\" := Customer.SystemId;\n+ CompanyLocation.\"Sell-to Customer No.\" := Customer.\"No.\";\n+ CompanyLocation.\"Bill-to Customer No.\" := Customer.\"Bill-to Customer No.\";\n+ if CompanyLocation.\"Bill-to Customer No.\" = '' then\n+ CompanyLocation.\"Bill-to Customer No.\" := Customer.\"No.\";\n CompanyLocation.Modify(true);\n exit(CompanyLocationId);\n end;\ndiff --git a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyExport.Codeunit.al b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyExport.Codeunit.al\nindex 9b3b3f1..c69e344 100644\n--- a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyExport.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyExport.Codeunit.al\n@@ -74,6 +74,10 @@ codeunit 30284 \"Shpfy Company Export\"\n \n CompanyLocation.Default := true;\n CompanyLocation.\"Company SystemId\" := ShopifyCompany.SystemId;\n+ CompanyLocation.\"Sell-to Customer No.\" := Customer.\"No.\";\n+ CompanyLocation.\"Bill-to Customer No.\" := Customer.\"Bill-to Customer No.\";\n+ if CompanyLocation.\"Bill-to Customer No.\" = '' then\n+ CompanyLocation.\"Bill-to Customer No.\" := Customer.\"No.\";\n CompanyLocation.Insert();\n end;\n end;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-214557", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 195.1, "tool_calls": 17, "total_tokens": 251600, "TurnCount": 45}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":2,\"report_intent\":2,\"store_memory\":1,\"task\":1,\"update_todo\":3,\"view\":7}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al\nindex 052f4eb6..868e9897 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al\n@@ -659,7 +659,19 @@ table 99000853 \"Inventory Profile\"\n Binding := ReservationEntry.Binding;\n \"Disallow Cancellation\" := ReservationEntry.\"Disallow Cancellation\";\n Found := true;\n- end;\n+ end else\n+ if \"Primary Order Line\" <> 0 then begin\n+ if ReservationEntry.Positive then\n+ OppositeReservationEntry.Get(ReservationEntry.\"Entry No.\", not ReservationEntry.Positive)\n+ else\n+ OppositeReservationEntry := ReservationEntry;\n+ if OppositeReservationEntry.\"Source Type\" <> 5407 then begin // Database::\"Prod. Order Component\"\n+ if \"Primary Order Line\" <> OppositeReservationEntry.\"Source Ref. No.\" then\n+ \"Primary Order Line\" := 0;\n+ end else\n+ if \"Primary Order Line\" <> OppositeReservationEntry.\"Source Prod. Order Line\" then\n+ \"Primary Order Line\" := 0;\n+ end;\n end else\n if (ReservationEntry.\"Reservation Status\" = ReservationEntry.\"Reservation Status\"::Reservation) and\n ((\"Fixed Date\" = 0D) or (\"Fixed Date\" > ReservationEntry.\"Shipment Date\"))\ndiff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al\nindex e3a6cf2f..7233ebbe 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al\n@@ -992,7 +992,7 @@ codeunit 99000854 \"Inventory Profile Offsetting\"\n SupplyInvtProfile.SetRange(Binding, DemandInvtProfile.Binding);\n SupplyInvtProfile.SetRange(\"Primary Order Status\", DemandInvtProfile.\"Primary Order Status\");\n SupplyInvtProfile.SetRange(\"Primary Order No.\", DemandInvtProfile.\"Primary Order No.\");\n- SupplyInvtProfile.SetRange(\"Primary Order Line\", DemandInvtProfile.\"Primary Order Line\");\n+ SupplyInvtProfile.SetFilter(\"Primary Order Line\", '%1|%2', DemandInvtProfile.\"Primary Order Line\", 0);\n SupplyInvtProfile.SetRange(\"Source Prod. Order Line\");\n if ((DemandInvtProfile.\"Ref. Order Type\" = DemandInvtProfile.\"Ref. Order Type\"::Assembly) or\n ((DemandInvtProfile.\"Ref. Order Type\" = DemandInvtProfile.\"Ref. Order Type\"::\"Prod. Order\") and\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-214825", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 110.398, "tool_calls": 11, "total_tokens": 132000, "TurnCount": 16}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":2,\"report_intent\":2,\"task\":2,\"update_todo\":2,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\nindex 604bb915..2da48971 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\n@@ -78,6 +78,7 @@ codeunit 1018 \"Purchase Doc. From Job\"\n JobPlanningLine.SetRange(\"Job Task No.\", JobTask.\"Job Task No.\");\n if JobPlanningLine.IsEmpty() then\n exit;\n+ JobPlanningLine.SetCurrentKey(\"Job Contract Entry No.\");\n JobPlanningLine.FindSet();\n RecRef.GetTable(JobPlanningLine);\n ContractEntryNoFilter := SelectionFilterMgt.GetSelectionFilter(RecRef, JobPlanningLine.FieldNo(\"Job Contract Entry No.\"));\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-227219", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 120.767, "tool_calls": 11, "total_tokens": 123700, "TurnCount": 26}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":1,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al\nindex 979cdb45..1254b0d5 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al\n@@ -119,7 +119,7 @@ codeunit 5708 \"Release Transfer Document\"\n if IsHandled then\n exit;\n \n- TransLine.SetLoadFields(\"Document No.\", Quantity, \"Item No.\");\n+ TransLine.SetLoadFields(\"Document No.\", Quantity, \"Item No.\", \"Variant Code\");\n TransLine.SetRange(\"Document No.\", TransHeader.\"No.\");\n TransLine.SetFilter(Quantity, '<>0');\n if TransLine.IsEmpty() then\n@@ -131,6 +131,8 @@ codeunit 5708 \"Release Transfer Document\"\n Item.Get(TransLine.\"Item No.\");\n if Item.IsInventoriableType() then\n TransLine.TestField(\"Unit of Measure Code\");\n+ if Item.IsVariantMandatory() then\n+ TransLine.TestField(\"Variant Code\");\n until TransLine.Next() = 0;\n TransLine.SetFilter(\"Item No.\", '');\n end;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-218253", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 326.036, "tool_calls": 13, "total_tokens": 174500, "TurnCount": 83}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":2,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesLineReserve.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Document/SalesLineReserve.Codeunit.al\nindex 15a14be1..d4268d84 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesLineReserve.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesLineReserve.Codeunit.al\n@@ -1304,6 +1304,9 @@ codeunit 99000832 \"Sales Line-Reserve\"\n if (NewSalesLine.Type <> NewSalesLine.Type::Item) or (NewSalesLine.Quantity = 0) or (NewSalesLine.Reserve <> NewSalesLine.Reserve::Always) then\n exit(false);\n \n+ if (NewSalesLine.\"Document Type\" = NewSalesLine.\"Document Type\"::Invoice) and (NewSalesLine.\"Shipment No.\" <> '') then\n+ exit(false);\n+\n Item.SetLoadFields(\"Costing Method\");\n Item.Get(NewSalesLine.\"No.\");\n \n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-215972", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 209.668, "tool_calls": 21, "total_tokens": 317500, "TurnCount": 35}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":10,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":5}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\nindex 9ab054c5..72f38fac 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\n@@ -1592,6 +1592,8 @@ table 5741 \"Transfer Line\"\n exit;\n \n TestField(\"Item No.\");\n+ GetItem();\n+ Item.TestField(Reserve);\n Clear(Reservation);\n OptionNumber := StrMenu(Text011);\n if OptionNumber > 0 then begin\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-210528", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 43, "tool_calls": 11, "total_tokens": 162000, "TurnCount": 8}, "Project": "Sustainability", "ToolUsage": "{\"edit\":2,\"grep\":1,\"report_intent\":2,\"update_todo\":3,\"view\":3}", "output": "diff --git a/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al b/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al\nindex 335c0099..89035c6d 100644\n--- a/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al\n+++ b/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al\n@@ -148,9 +148,12 @@ table 6217 \"Sustainability Setup\"\n \n trigger OnValidate()\n begin\n- if Rec.\"Enable Value Chain Tracking\" then\n+ if Rec.\"Enable Value Chain Tracking\" then begin\n if not ConfirmManagement.GetResponseOrDefault(ConfirmEnableValueChainTrackingQst, false) then\n Error('');\n+\n+ EnablePrerequisiteFields();\n+ end;\n end;\n }\n }\n@@ -235,6 +238,21 @@ table 6217 \"Sustainability Setup\"\n end;\n end;\n \n+ local procedure EnablePrerequisiteFields()\n+ begin\n+ if not Rec.\"Use Emissions In Purch. Doc.\" then\n+ Rec.Validate(\"Use Emissions In Purch. Doc.\", true);\n+\n+ if not Rec.\"Item Emissions\" then\n+ Rec.Validate(\"Item Emissions\", true);\n+\n+ if not Rec.\"Resource Emissions\" then\n+ Rec.Validate(\"Resource Emissions\", true);\n+\n+ if not Rec.\"Work/Machine Center Emissions\" then\n+ Rec.Validate(\"Work/Machine Center Emissions\", true);\n+ end;\n+\n [InherentPermissions(PermissionObjectType::TableData, Database::\"Sustainability Setup\", 'I')]\n internal procedure InitRecord()\n begin\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-226223", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 101.12299999999999, "tool_calls": 10, "total_tokens": 124600, "TurnCount": 21}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":1,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/Currency/ExchRateAdjmtProcess.Codeunit.al b/App/Layers/W1/BaseApp/Finance/Currency/ExchRateAdjmtProcess.Codeunit.al\nindex 467c235c..bdb56817 100644\n--- a/App/Layers/W1/BaseApp/Finance/Currency/ExchRateAdjmtProcess.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/Currency/ExchRateAdjmtProcess.Codeunit.al\n@@ -308,6 +308,8 @@ codeunit 699 \"Exch. Rate Adjmt. Process\"\n Window.Open(AdjustingVATEntriesTxt + VATEntryProgressBarTxt);\n \n VATEntryNoTotal := VATEntry.Count();\n+ if VATEntryNoTotal = 0 then\n+ exit;\n SetVATEntryFilters(VATEntry, ExchRateAdjmtParameters.\"Start Date\", ExchRateAdjmtParameters.\"End Date\");\n if VATPostingSetup.FindSet() then\n repeat\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-211548", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 140.313, "tool_calls": 21, "total_tokens": 334800, "TurnCount": 27}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"glob\":1,\"grep\":3,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":10}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/AllocationAccount/GenJournalAllocAccMgt.Codeunit.al b/App/Layers/W1/BaseApp/Finance/AllocationAccount/GenJournalAllocAccMgt.Codeunit.al\nindex fbe1c90d..123874b1 100644\n--- a/App/Layers/W1/BaseApp/Finance/AllocationAccount/GenJournalAllocAccMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/AllocationAccount/GenJournalAllocAccMgt.Codeunit.al\n@@ -281,7 +281,7 @@ codeunit 2677 \"Gen. Journal Alloc. Acc. Mgt.\"\n LastJournalLineNo := AllocationAccountGenJournalLine.\"Line No.\";\n \n Increment := GetLineIncrement(AllocationAccountGenJournalLine.\"Line No.\", NextJournalLineNo, AllocationLine.Count);\n- if Increment < -1 then begin\n+ if Increment < 0 then begin\n Increment := 10000;\n LastJournalLineNo := GetLastGenJournalLine(AllocationAccountGenJournalLine)\n end;\n@@ -465,8 +465,8 @@ codeunit 2677 \"Gen. Journal Alloc. Acc. Mgt.\"\n var\n Increment: Integer;\n begin\n- Increment := Round((NextLineNo - CurrentLineNo) / LinesToInsert, 1);\n- if Increment < LinesToInsert then\n+ Increment := Round((NextLineNo - CurrentLineNo) / (LinesToInsert + 1), 1);\n+ if Increment < 1 then\n exit(-1);\n \n if Increment >= 1000 then\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-206135", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 241.486, "tool_calls": 40, "total_tokens": 1308900, "TurnCount": 34}, "Project": "BaseApp", "ToolUsage": "{\"edit\":6,\"grep\":7,\"powershell\":2,\"report_intent\":2,\"task\":1,\"update_todo\":4,\"view\":18}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostShipment.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostShipment.Codeunit.al\nindex ce405d49..a6dc4817 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostShipment.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostShipment.Codeunit.al\n@@ -192,7 +192,7 @@ codeunit 5704 \"TransferOrder-Post Shipment\"\n if WhseShip then\n WhseShptLine.LockTable();\n TransHeader.LockTable();\n- if WhseShip then begin\n+ if WhseShip and (not PreviewMode) then begin\n WhsePostShpt.PostUpdateWhseDocuments(WhseShptHeader);\n TempWhseShptHeader.Delete();\n end;\ndiff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostTransfer.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostTransfer.Codeunit.al\nindex 8c7f8d02..59fad856 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostTransfer.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostTransfer.Codeunit.al\n@@ -175,7 +175,7 @@ codeunit 5856 \"TransferOrder-Post Transfer\"\n if WhseShip then\n WhseShptLine.LockTable();\n \n- if WhseShip then begin\n+ if WhseShip and (not PreviewMode) then begin\n WhsePostShipment.PostUpdateWhseDocuments(WhseShptHeader);\n TempWhseShptHeader.Delete();\n end;\ndiff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferWhsePostShipment.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferWhsePostShipment.Codeunit.al\nindex 497b9a81..e5190853 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferWhsePostShipment.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferWhsePostShipment.Codeunit.al\n@@ -263,6 +263,7 @@ codeunit 5748 \"Transfer Whse. Post Shipment\"\n else begin\n TransferOrderPostShipment.SetWhseShptHeader(WhseShptHeader);\n TransferOrderPostShipment.SetSuppressCommit(WhsePostParameters.\"Suppress Commit\" or WhsePostParameters.\"Preview Posting\");\n+ TransferOrderPostShipment.SetPreviewMode(WhsePostParameters.\"Preview Posting\");\n if TransferOrderPostShipment.Run(TransHeader) then begin\n CounterSourceDocOK := CounterSourceDocOK + 1;\n Result := true;\n@@ -285,6 +286,7 @@ codeunit 5748 \"Transfer Whse. Post Shipment\"\n Clear(TransferOrderPostTransfer);\n TransferOrderPostTransfer.SetWhseShptHeader(WhseShptHeader);\n TransferOrderPostTransfer.SetSuppressCommit(WhsePostParameters.\"Suppress Commit\" or WhsePostParameters.\"Preview Posting\");\n+ TransferOrderPostTransfer.SetPreviewMode(WhsePostParameters.\"Preview Posting\");\n if TransferOrderPostTransfer.Run(TransHeader) then begin\n CounterSourceDocOK := CounterSourceDocOK + 1;\n Posted := true;\n@@ -295,6 +297,7 @@ codeunit 5748 \"Transfer Whse. Post Shipment\"\n Clear(TransferOrderPostShipment);\n TransferOrderPostShipment.SetWhseShptHeader(WhseShptHeader);\n TransferOrderPostShipment.SetSuppressCommit(WhsePostParameters.\"Suppress Commit\" or WhsePostParameters.\"Preview Posting\");\n+ TransferOrderPostShipment.SetPreviewMode(WhsePostParameters.\"Preview Posting\");\n if TransferOrderPostShipment.Run(TransHeader) then begin\n Clear(TransferOrderPostReceipt);\n TransferOrderPostReceipt.SetSuppressCommit(WhsePostParameters.\"Suppress Commit\" or WhsePostParameters.\"Preview Posting\");\n@@ -326,6 +329,7 @@ codeunit 5748 \"Transfer Whse. Post Shipment\"\n else begin\n TransferOrderPostShipment.SetWhseShptHeader(WhseShptHeader);\n TransferOrderPostShipment.SetSuppressCommit(WhsePostParameters.\"Suppress Commit\" or WhsePostParameters.\"Preview Posting\");\n+ TransferOrderPostShipment.SetPreviewMode(WhsePostParameters.\"Preview Posting\");\n TransferOrderPostShipment.RunWithCheck(TransHeader);\n CounterSourceDocOK := CounterSourceDocOK + 1;\n end;\n@@ -344,6 +348,7 @@ codeunit 5748 \"Transfer Whse. Post Shipment\"\n Clear(TransferOrderPostTransfer);\n TransferOrderPostTransfer.SetWhseShptHeader(WhseShptHeader);\n TransferOrderPostTransfer.SetSuppressCommit(WhsePostParameters.\"Suppress Commit\" or WhsePostParameters.\"Preview Posting\");\n+ TransferOrderPostTransfer.SetPreviewMode(WhsePostParameters.\"Preview Posting\");\n TransferOrderPostTransfer.RunWithCheck(TransHeader);\n CounterSourceDocOK := CounterSourceDocOK + 1;\n end;\n@@ -352,6 +357,7 @@ codeunit 5748 \"Transfer Whse. Post Shipment\"\n Clear(TransferOrderPostShipment);\n TransferOrderPostShipment.SetWhseShptHeader(WhseShptHeader);\n TransferOrderPostShipment.SetSuppressCommit(WhsePostParameters.\"Suppress Commit\" or WhsePostParameters.\"Preview Posting\");\n+ TransferOrderPostShipment.SetPreviewMode(WhsePostParameters.\"Preview Posting\");\n TransferOrderPostShipment.RunWithCheck(TransHeader);\n Clear(TransferOrderPostReceipt);\n TransferOrderPostReceipt.SetSuppressCommit(WhsePostParameters.\"Suppress Commit\" or WhsePostParameters.\"Preview Posting\");\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-211521", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 74.602, "tool_calls": 14, "total_tokens": 163100, "TurnCount": 7}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":7,\"report_intent\":2,\"update_todo\":3,\"view\":1}", "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al b/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\nindex 401cabee..0883009a 100644\n--- a/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\n+++ b/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\n@@ -566,7 +566,7 @@ table 5050 Contact\n CalcFormula = min(\"To-do\".Date where(\"Contact Company No.\" = field(\"Company No.\"),\n \"Contact No.\" = field(filter(\"Lookup Contact No.\")),\n Closed = const(false),\n- \"System To-do Type\" = const(\"Contact Attendee\")));\n+ \"System To-do Type\" = filter(Organizer | \"Contact Attendee\")));\n Caption = 'Next Task Date';\n Editable = false;\n FieldClass = FlowField;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-208851", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 84.804, "tool_calls": 10, "total_tokens": 126600, "TurnCount": 13}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al b/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al\nindex fb6adbb6..96864380 100644\n--- a/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al\n@@ -563,9 +563,10 @@ table 7000 \"Price List Header\"\n xAmountType: Enum \"Price Amount Type\";\n begin\n xAmountType := \"Amount Type\";\n- if \"Source Type\" in [\"Source Type\"::\"Customer Disc. Group\", \"Source Type\"::\"Customer Price Group\"] then\n- \"Amount Type\" := PriceSource.GetDefaultAmountType()\n- else\n+ if \"Source Type\" in [\"Source Type\"::\"Customer Disc. Group\", \"Source Type\"::\"Customer Price Group\"] then begin\n+ CopyTo(PriceSource);\n+ \"Amount Type\" := PriceSource.GetDefaultAmountType();\n+ end else\n \"Amount Type\" := CalcAmountType();\n if \"Amount Type\" <> xAmountType then\n Modify()\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-227358", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 170.743, "tool_calls": 11, "total_tokens": 127200, "TurnCount": 55}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\nindex 61aff663..39eb6982 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\n@@ -1006,6 +1006,8 @@ codeunit 13 \"Gen. Jnl.-Post Batch\"\n exit;\n if not CurrGenJnlTemplate.\"Unlink Inc. Doc On Posting\" then\n exit;\n+ if not GenJnlLine.Find() then\n+ exit;\n GenJnlLine.\"Incoming Document Entry No.\" := 0;\n GenJnlLine.Modify();\n end;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-207177", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 113.667, "tool_calls": 10, "total_tokens": 145700, "TurnCount": 12}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\nindex a84b0558..35987dc2 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n@@ -42,6 +42,9 @@ page 7504 \"Item Attribute Value List\"\n DeleteItemAttributeValueMapping(ItemAttribute.ID);\n end;\n \n+ if Rec.Value = '' then\n+ exit;\n+\n if not Rec.FindAttributeValue(ItemAttributeValue) then\n Rec.InsertItemAttributeValue(ItemAttributeValue, Rec);\n \n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-219082", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 286.766, "tool_calls": 23, "total_tokens": 350100, "TurnCount": 89}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":4,\"read_agent\":3,\"report_intent\":2,\"task\":4,\"update_todo\":3,\"view\":6}", "output": "diff --git a/App/Layers/W1/BaseApp/Service/Document/ServDocumentPrint.Codeunit.al b/App/Layers/W1/BaseApp/Service/Document/ServDocumentPrint.Codeunit.al\nindex 28eb2a76..79478b14 100644\n--- a/App/Layers/W1/BaseApp/Service/Document/ServDocumentPrint.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Service/Document/ServDocumentPrint.Codeunit.al\n@@ -44,6 +44,7 @@ codeunit 6461 \"Serv. Document Print\"\n ServiceHeader.SetRange(\"Document Type\", ServiceHeader.\"Document Type\");\n ServiceHeader.SetRange(\"No.\", ServiceHeader.\"No.\");\n CalcServDisc(ServiceHeader);\n+ Commit();\n OnBeforePrintServiceHeader(ServiceHeader, ReportUsage.AsInteger(), IsPrinted);\n #if not CLEAN25\n DocumentPrint.RunOnBeforePrintServiceHeader(ServiceHeader, ReportUsage.AsInteger(), IsPrinted);\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-224009", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 196.254, "tool_calls": 12, "total_tokens": 131800, "TurnCount": 27}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":1,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/ReservationEntry.Table.al b/App/Layers/W1/BaseApp/Inventory/Tracking/ReservationEntry.Table.al\nindex c1b41b15..a37726d6 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/ReservationEntry.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/ReservationEntry.Table.al\n@@ -914,7 +914,7 @@ table 337 \"Reservation Entry\"\n ReservEntry.SetFilter(\"Entry No.\", '<>%1', \"Entry No.\");\n ReservEntry.SetSourceFilter(\"Source Type\", \"Source Subtype\", \"Source ID\", \"Source Ref. No.\", false);\n ReservEntry.SetSourceFilter(\"Source Batch Name\", \"Source Prod. Order Line\");\n- ReservEntry.SetRange(\"Reservation Status\", \"Reservation Status\"::Reservation);\n+ ReservEntry.SetFilter(\"Reservation Status\", '%1|%2', \"Reservation Status\"::Reservation, \"Reservation Status\"::Tracking);\n ReservEntry.CalcSums(\"Quantity (Base)\", Quantity);\n exit(\n Round((ReservEntry.\"Quantity (Base)\" + \"Quantity (Base)\") / \"Qty. per Unit of Measure\", UOMMgt.QtyRndPrecision()) -\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-175577", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 311.576, "tool_calls": 22, "total_tokens": 451100, "TurnCount": 41}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":1,\"grep\":4,\"report_intent\":2,\"task\":2,\"update_todo\":2,\"view\":10}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobCreateInvoice.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobCreateInvoice.Codeunit.al\nindex 1e465e16..bcc552b4 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobCreateInvoice.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobCreateInvoice.Codeunit.al\n@@ -397,8 +397,12 @@ codeunit 1002 \"Job Create-Invoice\"\n else begin\n if OldJobNo <> '' then begin\n if InvoicePerTask then\n- if (OldJobNo <> JobTask.\"Job No.\") or (OldJobTaskNo <> JobTask.\"Job Task No.\") then\n+ if (OldJobNo <> JobTask.\"Job No.\") or (OldJobTaskNo <> JobTask.\"Job Task No.\") then begin\n NewInvoice := true;\n+ if OldJobNo = JobTask.\"Job No.\" then\n+ if HasSameBillingFieldsAsBufferedLines(JobTask) then\n+ NewInvoice := false;\n+ end;\n if not InvoicePerTask then\n if OldJobNo <> JobTask.\"Job No.\" then\n NewInvoice := true;\n@@ -411,6 +415,25 @@ codeunit 1002 \"Job Create-Invoice\"\n exit(NewInvoice);\n end;\n \n+ local procedure HasSameBillingFieldsAsBufferedLines(JobTask: Record \"Job Task\"): Boolean\n+ var\n+ Job: Record Job;\n+ OldJobTask: Record \"Job Task\";\n+ begin\n+ if not Job.Get(JobTask.\"Job No.\") then\n+ exit(false);\n+ if Job.\"Task Billing Method\" <> Job.\"Task Billing Method\"::\"Multiple customers\" then\n+ exit(false);\n+ if not TempJobPlanningLine.FindFirst() then\n+ exit(false);\n+ if not OldJobTask.Get(TempJobPlanningLine.\"Job No.\", TempJobPlanningLine.\"Job Task No.\") then\n+ exit(false);\n+ exit(\n+ (OldJobTask.\"Sell-to Customer No.\" = JobTask.\"Sell-to Customer No.\") and\n+ (OldJobTask.\"Bill-to Customer No.\" = JobTask.\"Bill-to Customer No.\") and\n+ (OldJobTask.\"Invoice Currency Code\" = JobTask.\"Invoice Currency Code\"));\n+ end;\n+\n local procedure CreateSalesHeader(Job: Record Job; PostingDate: Date; DocumentDate: Date; JobPlanningLine: Record \"Job Planning Line\")\n var\n JobTask: Record \"Job Task\";\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-195193", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 187.976, "tool_calls": 26, "total_tokens": 598100, "TurnCount": 32}, "Project": "ExcelReports", "ToolUsage": "{\"create\":1,\"edit\":9,\"powershell\":1,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":8}", "output": "diff --git a/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al b/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\nindex 00c238ae..e2a5f9db 100644\n--- a/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\n+++ b/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\n@@ -44,10 +44,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Net Change\" > 0) then\n- Validate(\"Net Change (Debit)\", \"Net Change\")\n- else\n+ if (\"Net Change\" > 0) then begin\n+ Validate(\"Net Change (Debit)\", \"Net Change\");\n+ Validate(\"Net Change (Credit)\", 0);\n+ end else begin\n Validate(\"Net Change (Credit)\", -\"Net Change\");\n+ Validate(\"Net Change (Debit)\", 0);\n+ end;\n end;\n }\n field(11; \"Net Change (Debit)\"; Decimal)\n@@ -64,10 +67,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Balance\" > 0) then\n- Validate(\"Balance (Debit)\", \"Balance\")\n- else\n+ if (\"Balance\" > 0) then begin\n+ Validate(\"Balance (Debit)\", \"Balance\");\n+ Validate(\"Balance (Credit)\", 0);\n+ end else begin\n Validate(\"Balance (Credit)\", -\"Balance\");\n+ Validate(\"Balance (Debit)\", 0);\n+ end;\n end;\n }\n field(14; \"Balance (Debit)\"; Decimal)\n@@ -100,10 +106,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Net\" > 0) then\n- Validate(\"Last Period Net (Debit)\", \"Last Period Net\")\n- else\n+ if (\"Last Period Net\" > 0) then begin\n+ Validate(\"Last Period Net (Debit)\", \"Last Period Net\");\n+ Validate(\"Last Period Net (Credit)\", 0);\n+ end else begin\n Validate(\"Last Period Net (Credit)\", -\"Last Period Net\");\n+ Validate(\"Last Period Net (Debit)\", 0);\n+ end;\n end;\n }\n field(51; \"Last Period Net (Debit)\"; Decimal)\n@@ -120,10 +129,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Bal.\" > 0) then\n- Validate(\"Last Period Bal. (Debit)\", \"Last Period Bal.\")\n- else\n+ if (\"Last Period Bal.\" > 0) then begin\n+ Validate(\"Last Period Bal. (Debit)\", \"Last Period Bal.\");\n+ Validate(\"Last Period Bal. (Credit)\", 0);\n+ end else begin\n Validate(\"Last Period Bal. (Credit)\", -\"Last Period Bal.\");\n+ Validate(\"Last Period Bal. (Debit)\", 0);\n+ end;\n end;\n }\n field(61; \"Last Period Bal. (Debit)\"; Decimal)\n@@ -156,10 +168,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Net Change\" > 0) then\n- Validate(\"Net Change (Debit) (ACY)\", \"Net Change (ACY)\")\n- else\n+ if (\"Net Change (ACY)\" > 0) then begin\n+ Validate(\"Net Change (Debit) (ACY)\", \"Net Change (ACY)\");\n+ Validate(\"Net Change (Credit) (ACY)\", 0);\n+ end else begin\n Validate(\"Net Change (Credit) (ACY)\", -\"Net Change (ACY)\");\n+ Validate(\"Net Change (Debit) (ACY)\", 0);\n+ end;\n end;\n }\n field(111; \"Net Change (Debit) (ACY)\"; Decimal)\n@@ -176,10 +191,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Balance\" > 0) then\n- Validate(\"Balance (Debit) (ACY)\", \"Balance (ACY)\")\n- else\n+ if (\"Balance (ACY)\" > 0) then begin\n+ Validate(\"Balance (Debit) (ACY)\", \"Balance (ACY)\");\n+ Validate(\"Balance (Credit) (ACY)\", 0);\n+ end else begin\n Validate(\"Balance (Credit) (ACY)\", -\"Balance (ACY)\");\n+ Validate(\"Balance (Debit) (ACY)\", 0);\n+ end;\n end;\n }\n field(114; \"Balance (Debit) (ACY)\"; Decimal)\n@@ -196,10 +214,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Net\" > 0) then\n- Validate(\"Last Period Net (Debit) (ACY)\", \"Last Period Net (ACY)\")\n- else\n+ if (\"Last Period Net (ACY)\" > 0) then begin\n+ Validate(\"Last Period Net (Debit) (ACY)\", \"Last Period Net (ACY)\");\n+ Validate(\"Last Period Net (Credit) (ACY)\", 0);\n+ end else begin\n Validate(\"Last Period Net (Credit) (ACY)\", -\"Last Period Net (ACY)\");\n+ Validate(\"Last Period Net (Debit) (ACY)\", 0);\n+ end;\n end;\n }\n field(151; \"Last Period Net (Debit) (ACY)\"; Decimal)\n@@ -216,10 +237,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Bal.\" > 0) then\n- Validate(\"Last Period Bal. (Debit) (ACY)\", \"Last Period Bal. (ACY)\")\n- else\n+ if (\"Last Period Bal. (ACY)\" > 0) then begin\n+ Validate(\"Last Period Bal. (Debit) (ACY)\", \"Last Period Bal. (ACY)\");\n+ Validate(\"Last Period Bal. (Cred.) (ACY)\", 0);\n+ end else begin\n Validate(\"Last Period Bal. (Cred.) (ACY)\", -\"Last Period Bal. (ACY)\");\n+ Validate(\"Last Period Bal. (Debit) (ACY)\", 0);\n+ end;\n end;\n }\n field(161; \"Last Period Bal. (Debit) (ACY)\"; Decimal)\ndiff --git a/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al b/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al\nindex 7cf0915e..88035c63 100644\n--- a/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al\n+++ b/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al\n@@ -120,6 +120,7 @@ codeunit 4410 \"Trial Balance\"\n local procedure InsertTrialBalanceDataForGLAccountWithFilters(var GLAccount: Record \"G/L Account\"; Dimension1ValueCode: Code[20]; Dimension2ValueCode: Code[20]; BusinessUnitCode: Code[20]; var TrialBalanceData: Record \"EXR Trial Balance Buffer\"; var Dimension1Values: Record \"Dimension Value\" temporary; var Dimension2Values: Record \"Dimension Value\" temporary)\n begin\n GlAccount.CalcFields(\"Net Change\", \"Balance at Date\", \"Additional-Currency Net Change\", \"Add.-Currency Balance at Date\", \"Budgeted Amount\", \"Budget at Date\");\n+ TrialBalanceData.Init();\n TrialBalanceData.\"G/L Account No.\" := GlAccount.\"No.\";\n TrialBalanceData.\"Dimension 1 Code\" := Dimension1ValueCode;\n TrialBalanceData.\"Dimension 2 Code\" := Dimension2ValueCode;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-214926", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 230.198, "tool_calls": 9, "total_tokens": 128700, "TurnCount": 31}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al b/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\nindex ebeb6ca1..b522f79e 100644\n--- a/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\n@@ -2364,7 +2364,7 @@ table 18 Customer\n RetRcdNotInvAmountLCY := GetReturnRcdNotInvAmountLCY();\n \n TotalAmountLCY :=\n- \"Balance (LCY)\" + \"Outstanding Orders (LCY)\" + \"Shipped Not Invoiced (LCY)\" + \"Outstanding Invoices (LCY)\" +\n+ \"Balance (LCY)\" + \"Outstanding Orders (LCY)\" + \"Shipped Not Invoiced (LCY)\" + \"Outstanding Invoices (LCY)\" -\n SalesOutstandingAmountFromShipment - InvoicedPrepmtAmountLCY - RetRcdNotInvAmountLCY + AdditionalAmountLCY;\n \n OnAfterGetTotalAmountLCYCommon(Rec, TotalAmountLCY);\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-224668", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 35, "tool_calls": 11, "total_tokens": 113800, "TurnCount": 7}, "Project": "EssentialBusinessHeadlines", "ToolUsage": "{\"edit\":1,\"glob\":1,\"grep\":4,\"report_intent\":2,\"view\":3}", "output": "diff --git a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\nindex 831aa80e..10436a09 100644\n--- a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n+++ b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n@@ -677,7 +677,7 @@ codeunit 1437 \"Essential Bus. Headline Mgt.\"\n var\n EssentialBusinessHeadline: Record \"Ess. Business Headline Per Usr\";\n begin\n- if EssentialBusinessHeadline.Get(HeadlineName) then begin\n+ if EssentialBusinessHeadline.Get(HeadlineName, UserSecurityId()) then begin\n EssentialBusinessHeadline.Validate(\"Headline Visible\", false);\n EssentialBusinessHeadline.Modify();\n end;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-176082", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 345.85, "tool_calls": 27, "total_tokens": 575900, "TurnCount": 71}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":2,\"grep\":9,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":8}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\nindex 5fe44b45..82123192 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\n@@ -1304,7 +1304,6 @@ table 5740 \"Transfer Header\"\n TempPurchRcptHeader: Record \"Purch. Rcpt. Header\" temporary;\n PostedPurchaseReceipts: Page \"Posted Purchase Receipts\";\n begin\n- PurchRcptHeader.SetRange(\"Location Code\", \"Transfer-from Code\");\n PostedPurchaseReceipts.SetTableView(PurchRcptHeader);\n PostedPurchaseReceipts.LookupMode := true;\n if PostedPurchaseReceipts.RunModal() = ACTION::LookupOK then begin\n@@ -1370,6 +1369,13 @@ table 5740 \"Transfer Header\"\n TransferLine.\"Shortcut Dimension 1 Code\" := PurchRcptLine.\"Shortcut Dimension 1 Code\";\n TransferLine.\"Shortcut Dimension 2 Code\" := PurchRcptLine.\"Shortcut Dimension 2 Code\";\n TransferLine.\"Dimension Set ID\" := PurchRcptLine.\"Dimension Set ID\";\n+ PurchRcptLine.FilterPstdDocLnItemLedgEntries(ItemLedgerEntry);\n+ if ItemLedgerEntry.Count = 1 then begin\n+ ItemLedgerEntry.FindFirst();\n+ if ItemLedgerEntry.Positive and (ItemLedgerEntry.\"Lot No.\" = '') and (ItemLedgerEntry.\"Serial No.\" = '') then\n+ TransferLine.\"Appl.-to Item Entry\" := ItemLedgerEntry.\"Entry No.\";\n+ end;\n+\n OnAddTransferLineFromReceiptLineOnBeforeTransferLineInsert(TransferLine, PurchRcptLine, Rec);\n TransferLine.Insert(true);\n \n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-209835", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 118.839, "tool_calls": 11, "total_tokens": 151000, "TurnCount": 31}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\nindex 78996b41..43c6dbb9 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\n@@ -473,7 +473,8 @@ report 99001020 \"Carry Out Action Msg. - Plan.\"\n if CurrReqWkshTemp <> '' then\n \"Requisition Line\".SetRange(\"Journal Batch Name\", CurrReqWkshName);\n \"Requisition Line\".SetRange(Type, \"Requisition Line\".Type::Item);\n- \"Requisition Line\".SetFilter(\"Action Message\", '<>%1', \"Requisition Line\".\"Action Message\"::\" \");\n+ if \"Requisition Line\".GetFilter(\"Action Message\") = '' then\n+ \"Requisition Line\".SetFilter(\"Action Message\", '<>%1', \"Requisition Line\".\"Action Message\"::\" \");\n OnAfterSetReqLineFilters(\"Requisition Line\");\n end;\n \n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-226448", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 510.166, "tool_calls": 47, "total_tokens": 1621700, "TurnCount": 53}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":17,\"powershell\":1,\"report_intent\":2,\"task\":2,\"update_todo\":4,\"view\":20}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/VATAmountLine.Table.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/VATAmountLine.Table.al\nindex 5706c4b1..2552293d 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/VATAmountLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/VATAmountLine.Table.al\n@@ -687,6 +687,7 @@ table 290 \"VAT Amount Line\"\n OnUpdateLinesOnAfterCalcVATAmount(Rec, PrevVATAmountLine, Currency, VATBaseDiscountPerc, PricesIncludingVAT);\n \"Amount Including VAT\" := \"VAT Base\" + \"VAT Amount\";\n OnUpdateLinesOnAfterCalcAmountIncludingVATNormalVAT(Rec, PrevVATAmountLine, Currency, VATBaseDiscountPerc, PricesIncludingVAT);\n+ NonDeductibleVAT.UpdateNonDeductibleAmountsWithDiffInVATAmountLine(Rec, Currency);\n if Positive then\n PrevVATAmountLine.Init()\n else begin\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-206977", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 29, "tool_calls": 8, "total_tokens": 84300, "TurnCount": 5}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":2,\"report_intent\":2,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\nindex 0877c357..cdc6d505 100644\n--- a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\n+++ b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\n@@ -161,7 +161,14 @@ page 903 \"Assembly Lines\"\n AssemblyHeader: Record \"Assembly Header\";\n begin\n AssemblyHeader.Get(Rec.\"Document Type\", Rec.\"Document No.\");\n- PAGE.Run(PAGE::\"Assembly Order\", AssemblyHeader);\n+ case AssemblyHeader.\"Document Type\" of\n+ AssemblyHeader.\"Document Type\"::Quote:\n+ PAGE.Run(PAGE::\"Assembly Quote\", AssemblyHeader);\n+ AssemblyHeader.\"Document Type\"::Order:\n+ PAGE.Run(PAGE::\"Assembly Order\", AssemblyHeader);\n+ AssemblyHeader.\"Document Type\"::\"Blanket Order\":\n+ PAGE.Run(PAGE::\"Blanket Assembly Order\", AssemblyHeader);\n+ end;\n end;\n }\n action(\"Reservation Entries\")\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-192565", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 344.79200000000003, "tool_calls": 13, "total_tokens": 196800, "TurnCount": 98}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":3,\"report_intent\":2,\"task\":3,\"update_todo\":2,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\nindex fb45dbcf..b59c9d7a 100644\n--- a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n@@ -5365,6 +5365,7 @@ table 39 \"Purchase Line\"\n Amount := 0;\n \"VAT Base Amount\" := 0;\n \"Amount Including VAT\" := 0;\n+ NonDeductibleVAT.Update(Rec, Currency);\n OnUpdateVATAmountsOnBeforePurchLineModify(Rec, PurchLine2);\n if (Quantity = 0) and (xRec.Quantity <> 0) and (xRec.Amount <> 0) then begin\n if \"Line No.\" <> 0 then\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-211710", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 62.337, "tool_calls": 7, "total_tokens": 82500, "TurnCount": 12}, "Project": "Shopify", "ToolUsage": "{\"edit\":1,\"report_intent\":2,\"task\":1,\"view\":3}", "output": "diff --git a/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al b/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al\nindex 773ba116..52bfd17f 100644\n--- a/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al\n+++ b/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al\n@@ -17,7 +17,7 @@ report 30118 \"Shpfy Suggest Payments\"\n dataitem(OrderTransaction; \"Shpfy Order Transaction\")\n {\n RequestFilterFields = \"Created At\";\n- DataItemTableView = sorting(Type) where(Type = filter(Capture | Sale | Refund));\n+ DataItemTableView = sorting(Type) where(Type = filter(Capture | Sale | Refund), Status = const(Success));\n \n trigger OnAfterGetRecord()\n begin\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-179733", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 250.321, "tool_calls": 14, "total_tokens": 236100, "TurnCount": 68}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":2,\"report_intent\":2,\"task\":3,\"update_todo\":3,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Job/JobTask.Table.al b/App/Layers/W1/BaseApp/Projects/Project/Job/JobTask.Table.al\nindex ca6d73fa..c68c3ce3 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Job/JobTask.Table.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Job/JobTask.Table.al\n@@ -1225,6 +1225,8 @@ table 1001 \"Job Task\"\n exit;\n if Job.\"Task Billing Method\" = Job.\"Task Billing Method\"::\"One customer\" then\n exit;\n+ if \"Job Task Type\" <> \"Job Task Type\"::Posting then\n+ exit;\n \n SetHideValidationDialog(true);\n if Job.\"Sell-to Customer No.\" <> '' then\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-176150", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 174.06, "tool_calls": 8, "total_tokens": 106400, "TurnCount": 48}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al b/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\nindex 55d3fbad..933493a5 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\n@@ -1016,6 +1016,7 @@ page 5510 \"Production Journal\"\n protected procedure MarkRelevantRec(var ItemJournalLine: Record \"Item Journal Line\")\n begin\n ItemJournalLine := Rec;\n+ ItemJournalLine.CopyFilters(Rec);\n if ItemJournalLine.FindSet() then begin\n repeat\n case ItemJournalLine.\"Entry Type\" of\n", "error_message": null} diff --git a/notebooks/result/bug-fix/copilot-cf-opus-4-6/21832838543.jsonl b/notebooks/result/bug-fix/copilot-cf-opus-4-6/21832838543.jsonl new file mode 100644 index 000000000..714d84273 --- /dev/null +++ b/notebooks/result/bug-fix/copilot-cf-opus-4-6/21832838543.jsonl @@ -0,0 +1,101 @@ +{"InstanceID": "microsoftInternal__NAV-218062", "scores": {"BuildRate": 0, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 1800, "tool_calls": 0, "total_tokens": 0, "TurnCount": 0}, "Project": "BaseApp", "ToolUsage": "0", "output": "", "error_message": "Agent timed out"} +{"InstanceID": "microsoftInternal__NAV-191624", "scores": {"BuildRate": 0, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 54, "tool_calls": 11, "total_tokens": 160700, "TurnCount": 8}, "Project": "ExcelReports", "ToolUsage": "{\"edit\":2,\"grep\":2,\"report_intent\":2,\"update_todo\":3,\"view\":2}", "output": "diff --git a/App/Apps/W1/ExcelReports/app/src/Financials/EXRFixedAssetAnalysisExcel.Report.al b/App/Apps/W1/ExcelReports/app/src/Financials/EXRFixedAssetAnalysisExcel.Report.al\nindex 686231b5..34940a1f 100644\n--- a/App/Apps/W1/ExcelReports/app/src/Financials/EXRFixedAssetAnalysisExcel.Report.al\n+++ b/App/Apps/W1/ExcelReports/app/src/Financials/EXRFixedAssetAnalysisExcel.Report.al\n@@ -32,6 +32,18 @@ report 4412 \"EXR Fixed Asset Analysis Excel\"\n column(DisposalDateField; DisposalDate) { }\n column(GlobalDimension1Code; \"Global Dimension 1 Code\") { IncludeCaption = true; }\n column(GlobalDimension2Code; \"Global Dimension 2 Code\") { IncludeCaption = true; }\n+ trigger OnAfterGetRecord()\n+ var\n+ FADepreciationBook: Record \"FA Depreciation Book\";\n+ begin\n+ if FADepreciationBook.Get(\"No.\", DepreciationBookCode) then begin\n+ AcquisitionDate := FADepreciationBook.\"Acquisition Date\";\n+ DisposalDate := FADepreciationBook.\"Disposal Date\";\n+ end else begin\n+ AcquisitionDate := 0D;\n+ DisposalDate := 0D;\n+ end;\n+ end;\n dataitem(FAPostingType; \"FA Posting Type\")\n {\n DataItemTableView = where(\"FA Entry\" = const(true));\n@@ -50,8 +62,6 @@ report 4412 \"EXR Fixed Asset Analysis Excel\"\n if ShouldSkipRecord() then\n CurrReport.Skip();\n FADepreciationBook.Get(FixedAssetData.\"No.\", DepreciationBookCode);\n- AcquisitionDate := FADepreciationBook.\"Acquisition Date\";\n- DisposalDate := FADepreciationBook.\"Disposal Date\";\n if BudgetReport then\n BudgetDepreciation.Calculate(FixedAssetData.\"No.\", StartingDate - 1, EndingDate, DepreciationBookCode, BeforeAmount, EndingAmount);\n \n", "error_message": "Build or publish failed for App\\Apps\\W1\\ExcelReports\\app:\nC:\\Source\\App\\Apps\\W1\\ExcelReports\\app\\src\\Financials\\EXRFixedAssetAnalysisExcel.Report.al(47,13): error AL0104: Syntax error, '}' expected\nC:\\Source\\App\\Apps\\W1\\ExcelReports\\app\\src\\Financials\\EXRFixedAssetAnalysisExcel.Report.al(79,5): error AL0198: Expected one of the application object keywords (table, tableextension, page, pageextension, pagecustomization, profile, profileextension, codeunit, report, reportextension, xmlport, query, controladdin, dotnet, enum, enumextension, interface, permissionset, permissionsetextension, entitlement)\nC:\\Source\\App\\Apps\\W1\\ExcelReports\\app\\src\\Financials\\EXRFixedAssetAnalysisExcel.Report.al(225,35): error AL0114: Syntax error, integer literal expected\nC:\\Source\\App\\Apps\\W1\\ExcelReports\\app\\src\\Financials\\EXRFixedAssetAnalysisExcel.Report.al(225,54): error AL0104: Syntax error, '{' expected\nC:\\Source\\App\\Apps\\W1\\ExcelReports\\app\\src\\Financials\\EXRFixedAssetAnalysisExcel.Report.al(225,54): error AL0104: Syntax error, '}' expected\nC:\\Source\\App\\Apps\\W1\\ExcelReports\\app\\src\\Financials\\EXRFixedAssetAnalysisExcel.Report.al(225,54): error AL0198: Expected one of the application object keywords (table, tableextension, page, pageextension, pagecustomization, profile, profileextension, codeunit, report, reportextension, xmlport, query, controladdin, dotnet, enum, enumextension, interface, permissionset, permissionsetextension, entitlement)"} +{"InstanceID": "microsoftInternal__NAV-206527", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 581.013, "tool_calls": 53, "total_tokens": 1731700, "TurnCount": 53}, "Project": "BaseApp", "ToolUsage": "{\"edit\":10,\"grep\":17,\"powershell\":2,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":18}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al b/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\nindex e3280001..f7a61299 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\n@@ -182,28 +182,11 @@ table 99000829 \"Planning Component\"\n Editable = false;\n \n trigger OnValidate()\n- var\n- ItemUnitOfMeasure: Record \"Item Unit of Measure\";\n- UnroundedExpectedQuantity: Decimal;\n- ItemPrecRoundedExpectedQuantity: Decimal;\n- BaseUOMPrecRoundedExpectedQuantity: Decimal;\n begin\n- UnroundedExpectedQuantity := \"Expected Quantity\";\n-\n if Item.Get(\"Item No.\") and (\"Ref. Order Type\" <> \"Ref. Order Type\"::Assembly) then\n if Item.\"Rounding Precision\" > 0 then\n \"Expected Quantity\" := UOMMgt.RoundToItemRndPrecision(\"Expected Quantity\", Item.\"Rounding Precision\");\n \n- ItemPrecRoundedExpectedQuantity := \"Expected Quantity\";\n- BaseUOMPrecRoundedExpectedQuantity := UOMMgt.RoundQty(\"Expected Quantity\", \"Qty. Rounding Precision\");\n-\n- if (\"Qty. Rounding Precision\" > 0) and (BaseUOMPrecRoundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity) then\n- if UnroundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity then\n- Error(WrongPrecisionItemAndUOMExpectedQtyErr, Item.FieldCaption(\"Rounding Precision\"), Item.TableCaption(), ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"))\n- else\n- Error(WrongPrecOnUOMExpectedQtyErr, ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"));\n-\n- \"Expected Quantity\" := BaseUOMPrecRoundedExpectedQuantity;\n \"Expected Quantity (Base)\" := CalcBaseQty(\"Expected Quantity\", FieldCaption(\"Expected Quantity\"), FieldCaption(\"Expected Quantity (Base)\"));\n \n \"Net Quantity (Base)\" := \"Expected Quantity (Base)\" - \"Original Expected Qty. (Base)\";\n@@ -654,8 +637,6 @@ table 99000829 \"Planning Component\"\n CannotRenameErr: Label 'You cannot rename a %1.', Comment = '%1 - Planning Component';\n CannotChangeErr: Label 'You cannot change %1 when %2 is %3.', Comment = '%1 - FieldCaption(\"Unit Cost\"), %2 - Item.FieldCaption(\"Costing Method\"), %3 - Item.\"Costing Method\"';\n LocationCodeMustBeBlankErr: Label 'The Location Code field must be blank for items of type Non-Inventory.';\n- WrongPrecisionItemAndUOMExpectedQtyErr: Label 'The value in the %1 field on the %2 page, and %3 field on the %4 page, are causing the rounding precision for the %5 field to be incorrect.', Comment = '%1 = field caption, %2 = table caption, %3 field caption, %4 = table caption, %5 = field caption';\n- WrongPrecOnUOMExpectedQtyErr: Label 'The value in the %1 field on the %2 page is causing the rounding precision for the %3 field to be incorrect.', Comment = '%1 = field caption, %2 = table caption, %3 field caption';\n \n protected var\n ReqLine: Record \"Requisition Line\";\ndiff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\nindex 36930a9e..058f96b4 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n@@ -263,7 +263,6 @@ codeunit 99000773 \"Calculate Prod. Order\"\n Item2: Record Item;\n ComponentSKU: Record \"Stockkeeping Unit\";\n IsHandled: Boolean;\n- QtyRoundPrecision: Decimal;\n begin\n ProdOrderComp.Reset();\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\", \"Item No.\");\n@@ -295,12 +294,7 @@ codeunit 99000773 \"Calculate Prod. Order\"\n ProdOrderComp.\"Bin Code\" := GetDefaultBin();\n ProdOrderComp.Description := ProdBOMLine[Level].Description;\n ProdOrderComp.Validate(\"Unit of Measure Code\", ProdBOMLine[Level].\"Unit of Measure Code\");\n- if (ProdOrderComp.\"Item No.\" <> '') and Item2.Get(ProdOrderComp.\"Item No.\") then\n- QtyRoundPrecision := UOMMgt.GetQtyRoundingPrecision(Item2, ProdBOMLine[Level].\"Unit of Measure Code\");\n- if QtyRoundPrecision <> 0 then\n- ProdOrderComp.\"Quantity per\" := Round(ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM, QtyRoundPrecision)\n- else\n- ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n+ ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n ProdOrderComp.Length := ProdBOMLine[Level].Length;\n ProdOrderComp.Width := ProdBOMLine[Level].Width;\n ProdOrderComp.Weight := ProdBOMLine[Level].Weight;\ndiff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al b/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\nindex c532e014..0499c788 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\n@@ -249,10 +249,6 @@ table 5407 \"Prod. Order Component\"\n \n trigger OnValidate()\n var\n- ItemUnitOfMeasure: Record \"Item Unit of Measure\";\n- UnroundedExpectedQuantity: Decimal;\n- ItemPrecRoundedExpectedQuantity: Decimal;\n- BaseUOMPrecRoundedExpectedQuantity: Decimal;\n IsHandled: Boolean;\n begin\n IsHandled := false;\n@@ -260,26 +256,14 @@ table 5407 \"Prod. Order Component\"\n if IsHandled then\n exit;\n \n- UnroundedExpectedQuantity := \"Expected Quantity\";\n if Item.Get(\"Item No.\") then\n if Item.\"Rounding Precision\" > 0 then\n RoundExpectedQuantity();\n \n- ItemPrecRoundedExpectedQuantity := \"Expected Quantity\";\n-\n- BaseUOMPrecRoundedExpectedQuantity := UOMMgt.RoundQty(\"Expected Quantity\", \"Qty. Rounding Precision\");\n-\n- if (\"Qty. Rounding Precision\" > 0) and (BaseUOMPrecRoundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity) then\n- if UnroundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity then\n- Error(WrongPrecisionItemAndUOMExpectedQtyErr, Item.FieldCaption(\"Rounding Precision\"), Item.TableCaption(), ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"))\n- else\n- Error(WrongPrecOnUOMExpectedQtyErr, ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"));\n-\n- \"Expected Quantity\" := BaseUOMPrecRoundedExpectedQuantity;\n \"Expected Qty. (Base)\" := CalcBaseQty(\"Expected Quantity\", FieldCaption(\"Expected Quantity\"), FieldCaption(\"Expected Qty. (Base)\"));\n \n // Recalculate 'Expected Quantity' based on the base value to make sure values are consistent\n- \"Expected Quantity\" := UOMMgt.RoundQty(\"Expected Qty. (Base)\" / \"Qty. per Unit of Measure\", \"Qty. Rounding Precision\");\n+ \"Expected Quantity\" := UOMMgt.RoundQty(\"Expected Qty. (Base)\" / \"Qty. per Unit of Measure\");\n \n if (Status in [Status::Released, Status::Finished]) and\n (xRec.\"Item No.\" <> '') and\n@@ -289,7 +273,7 @@ table 5407 \"Prod. Order Component\"\n \n OnValidateExpectedQuantityOnAfterCalcActConsumptionQty(Rec, xRec);\n \"Remaining Quantity\" := \"Expected Quantity\" - \"Act. Consumption (Qty)\" / \"Qty. per Unit of Measure\";\n- \"Remaining Quantity\" := UOMMgt.RoundQty(\"Remaining Quantity\", \"Qty. Rounding Precision\");\n+ \"Remaining Quantity\" := UOMMgt.RoundQty(\"Remaining Quantity\");\n \n if (\"Remaining Quantity\" * \"Expected Quantity\") <= 0 then\n \"Remaining Quantity\" := 0;\n@@ -562,7 +546,7 @@ table 5407 \"Prod. Order Component\"\n exit;\n \n CalculateQuantity(Quantity);\n- Quantity := UOMMgt.RoundAndValidateQty(Quantity, \"Qty. Rounding Precision\", FieldCaption(Quantity));\n+ Quantity := UOMMgt.RoundQty(Quantity);\n \n OnValidateCalculationFormulaOnAfterSetQuantity(Rec);\n \"Quantity (Base)\" := CalcBaseQty(Quantity, FieldCaption(Quantity), FieldCaption(\"Quantity (Base)\"));\n@@ -1028,8 +1012,6 @@ table 5407 \"Prod. Order Component\"\n Text99000003: Label 'You cannot change %1 when %2 is %3.';\n #pragma warning restore AA0470\n #pragma warning restore AA0074\n- WrongPrecisionItemAndUOMExpectedQtyErr: Label 'The value in the %1 field on the %2 page, and %3 field on the %4 page, are causing the rounding precision for the %5 field to be incorrect.', Comment = '%1 = field caption, %2 = table caption, %3 field caption, %4 = table caption, %5 = field caption';\n- WrongPrecOnUOMExpectedQtyErr: Label 'The value in the %1 field on the %2 page is causing the rounding precision for the %3 field to be incorrect.', Comment = '%1 = field caption, %2 = table caption, %3 field caption';\n Item: Record Item;\n ReservEntry: Record \"Reservation Entry\";\n GLSetup: Record \"General Ledger Setup\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137088'\nCodeunit 137088 SCM Order Planning - III\n Testfunction ReleasedProdOrderQuantityPerandExpectedQtyRoundingPrecisionChecking Failure (7.474 seconds)\n Error:\n Qty. Rounding Precision on Item-GL00000000 causes the Expected Quantity and Expected Qty. (Base) to be out of balance. Rounding of the field Expected Qty. (Base) results to 0.\n Call Stack:\n \"Unit of Measure Management\"(CodeUnit 5402).CalcBaseQty line 9 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).CalcBaseQty line 9 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).\"Expected Quantity - OnValidate\"(Trigger) line 13 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).UpdateExpectedQuantity line 14 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).\"Routing Link Code - OnValidate\"(Trigger) line 5 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).TransferBOMProcessItem line 45 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).TransferBOM line 70 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).Calculate line 105 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order Lines\"(CodeUnit 99000787).ProcessProdOrderLines line 13 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order Lines\"(CodeUnit 99000787).Copy line 23 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order from Sale\"(CodeUnit 99000792).CreateProductionOrder line 54 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateOrder line 11 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateOrders line 35 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateProdOrder line 24 - Base Application by Microsoft version 26.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-217974", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 321.16, "tool_calls": 31, "total_tokens": 532000, "TurnCount": 84}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":8,\"report_intent\":2,\"task\":2,\"update_todo\":4,\"view\":14}", "output": "diff --git a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\nindex 780de254..c9a2a31e 100644\n--- a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n@@ -1752,7 +1752,7 @@ codeunit 6620 \"Copy Document Mgt.\"\n SalesHeader.Status := SalesHeader.Status::Open;\n if SalesHeader.\"Document Type\" <> SalesHeader.\"Document Type\"::Order then\n SalesHeader.\"Prepayment %\" := 0;\n- if FromDocType = \"Sales Document Type From\"::\"Return Order\" then begin\n+ if (FromDocType = \"Sales Document Type From\"::\"Return Order\") or SalesHeader.IsCreditDocType() then begin\n SalesHeader.CopySellToAddressToShipToAddress();\n OnUpdateSalesHeaderWhenCopyFromSalesHeaderOnBeforeValidateShipToCode(SalesHeader);\n SalesHeader.Validate(SalesHeader.\"Ship-to Code\");\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137156'\nCodeunit 137156 SCM Orders IV\n Testfunction MoveNegativeLines_SetsReturnOrderShipToAddressToCompany Failure (8.843 seconds)\n Error:\n Assert.AreEqual failed. Expected:<5 The Ring> (Text). Actual:<> (Text). Ship-to Address on Return Order should be company address.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"SCM Orders IV\"(CodeUnit 137156).MoveNegativeLines_SetsReturnOrderShipToAddressToCompany line 30 - Tests-SCM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-223819", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 212.054, "tool_calls": 22, "total_tokens": 429100, "TurnCount": 47}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":1,\"grep\":7,\"powershell\":1,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":6}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al b/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\nindex 7fc2d985..a49f2152 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\n@@ -549,8 +549,11 @@ table 83 \"Item Journal Line\"\n \n trigger OnValidate()\n begin\n- if (\"Order Type\" <> GetOrderTypeProduction()) or (\"Order No.\" = '') then\n+ if (\"Order Type\" <> GetOrderTypeProduction()) or (\"Order No.\" = '') then begin\n CreateDimFromDefaultDim(rec.FieldNo(\"Salespers./Purch. Code\"));\n+ if \"Entry Type\" = \"Entry Type\"::Transfer then\n+ CreateNewDimFromDefaultDim(Rec.FieldNo(\"Salespers./Purch. Code\"));\n+ end;\n end;\n }\n field(26; \"Source Code\"; Code[10])\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134474'\nCodeunit 134474 ERM Dimension Locations\n Testfunction OverrideDimWithNewLocationsAndSalespersonOnItemJournalLine Failure (4.67 seconds)\n Error:\n New Department Code must be equal to 'GU00000001' in Item Journal Line: Journal Template Name=GU00000008, Journal Batch Name=GU00000009, Line No.=10000. Current value is 'GU00000000'.\n Call Stack:\n \"ERM Dimension Locations\"(CodeUnit 134474).OverrideDimWithNewLocationsAndSalespersonOnItemJournalLine line 48 - Tests-Dimension by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-213741", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 72.44, "tool_calls": 14, "total_tokens": 210000, "TurnCount": 9}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":1,\"grep\":3,\"powershell\":1,\"report_intent\":2,\"update_todo\":3,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Costing/InventoryPostingToGL.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Costing/InventoryPostingToGL.Codeunit.al\nindex 9b9c14ed..c9332395 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Costing/InventoryPostingToGL.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Costing/InventoryPostingToGL.Codeunit.al\n@@ -564,6 +564,14 @@ codeunit 5802 \"Inventory Posting To G/L\"\n TempGlobalInvtPostingBuffer.\"Account Type\"::Inventory,\n TempGlobalInvtPostingBuffer.\"Account Type\"::\"Inventory Adjmt.\",\n CostToPost, CostToPostACY, false);\n+ ValueEntry.\"Entry Type\"::\"Direct Cost - Non Inventory\":\n+ if (CostToPost <> 0) or (CostToPostACY <> 0) then\n+ if MfgCostCalcMgt.CanIncNonInvCostIntoProductionItem() then\n+ InitInvtPostBuf(\n+ ValueEntry,\n+ TempGlobalInvtPostingBuffer.\"Account Type\"::Inventory,\n+ TempGlobalInvtPostingBuffer.\"Account Type\"::\"Direct Cost Non-Inventory Applied\",\n+ CostToPost, CostToPostACY, false);\n ValueEntry.\"Entry Type\"::\"Indirect Cost\":\n InitInvtPostBuf(\n ValueEntry,\n@@ -578,6 +586,13 @@ codeunit 5802 \"Inventory Posting To G/L\"\n TempGlobalInvtPostingBuffer.\"Account Type\"::Inventory,\n TempGlobalInvtPostingBuffer.\"Account Type\"::\"Material Variance\",\n CostToPost, CostToPostACY, false);\n+ ValueEntry.\"Variance Type\"::\"Material - Non Inventory\":\n+ if MfgCostCalcMgt.CanIncNonInvCostIntoProductionItem() then\n+ InitInvtPostBuf(\n+ ValueEntry,\n+ TempGlobalInvtPostingBuffer.\"Account Type\"::Inventory,\n+ TempGlobalInvtPostingBuffer.\"Account Type\"::\"Material - Non Inventory Variance\",\n+ CostToPost, CostToPostACY, false);\n ValueEntry.\"Variance Type\"::Capacity:\n InitInvtPostBuf(\n ValueEntry,\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137911'\nCodeunit 137911 SCM Calculate Assembly Cost\n Testfunction VerifyAdjustCostItemEntriesMustBeExecutedForAssemblyItem Failure (9.74 seconds)\n Error:\n Assert.RecordCount failed. Expected number of Value Entry entries: 0. Actual: 1. Filters: Item No.: GL00000000, Item Ledger Entry Type: Assembly Output, Entry Type: Direct Cost - Non Inventory. Records: 678, GL00000000, 06/03/26, Assembly Output, GL00000000, A00001, , , FINISHED, , 676, 1, 0, 0, 233, 0, 430, 0, , 0, ADMIN, INVTADJMT, 0, , , Item, 233, 0, , No, , DOMESTIC, RETAIL, 06/03/26, , 0, 0, 0, Posted Assembly, 0, 06/03/26, Assembly, A00001, 0, No, , No, No, Yes, 06/03/26, Direct Cost - Non Inventory, , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , 0, , Yes, No, 0, , , , , , , , , , , ; \n Call Stack:\n Assert(CodeUnit 130000).RecordCount line 18 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"SCM Calculate Assembly Cost\"(CodeUnit 137911).VerifyAdjustCostItemEntriesMustBeExecutedForAssemblyItem line 43 - Tests-SCM-Assembly by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-183399", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 189.775, "tool_calls": 13, "total_tokens": 127300, "TurnCount": 64}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":3,\"report_intent\":2,\"task\":2,\"update_todo\":2,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\nindex 553ae9c0..cec7b1ec 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n@@ -255,6 +255,7 @@ page 254 \"Purchase Journal\"\n {\n ApplicationArea = Basic, Suite;\n AutoFormatExpression = Rec.\"Currency Code\";\n+ AutoFormatType = 1;\n Caption = 'Document Amount';\n ToolTip = 'Specifies the total amount (including VAT) that the journal line consists of.';\n \ndiff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/SalesJournal.Page.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/SalesJournal.Page.al\nindex d63650ad..4dfc2fdf 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/SalesJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/SalesJournal.Page.al\n@@ -247,6 +247,7 @@ page 253 \"Sales Journal\"\n {\n ApplicationArea = Basic, Suite;\n AutoFormatExpression = Rec.\"Currency Code\";\n+ AutoFormatType = 1;\n Caption = 'Document Amount';\n ToolTip = 'Specifies the total amount (including VAT) that the journal line consists of.';\n \n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134918'\nCodeunit 134918 ERM Sales/Purchase Application\n Testfunction DocumentAmountInPurchJnlAcceptsMaxThreeDecimalPlacesValue Failure (3.853 seconds)\n Error:\n Assert.AreEqual failed. Expected:<1.747> (Decimal). Actual:<1.75> (Decimal). The document amount is not correct. Expected: 1.747, Actual: 1.75.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"ERM Sales/Purchase Application\"(CodeUnit 134918).DocumentAmountInPurchJnlAcceptsMaxThreeDecimalPlacesValue line 25 - Tests-ERM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"InstanceID": "microsoftInternal__NAV-207878", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 145.108, "tool_calls": 22, "total_tokens": 332700, "TurnCount": 24}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":5,\"report_intent\":2,\"store_memory\":1,\"task\":1,\"update_todo\":2,\"view\":10}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Availability/AvailabletoPromise.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Availability/AvailabletoPromise.Codeunit.al\nindex a486f294..7f66b5cd 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Availability/AvailabletoPromise.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Availability/AvailabletoPromise.Codeunit.al\n@@ -64,7 +64,7 @@ codeunit 5790 \"Available to Promise\"\n ScheduledReceipt := CalcScheduledReceipt(Item);\n GrossRequirement := CalcGrossRequirement(Item);\n \n- if AvailabilityDate <> 0D then\n+ if (AvailabilityDate <> 0D) and (Format(LookaheadDateFormula) <> '') then\n GrossRequirement +=\n CalculateForward(\n Item, PeriodType,\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134381'\nCodeunit 134381 ERM Dimension Priority\n Testfunction AvailWarningAssemblyOrdersConsideringDueDates Failure (7.097 seconds)\n Error:\n Assert.IsFalse failed. Avail. warning should be No\n Call Stack:\n Assert(CodeUnit 130000).IsFalse line 3 - Tests-TestLibraries by Microsoft version 26.0.0.0\n \"ERM Dimension Priority\"(CodeUnit 134381).AvailWarningAssemblyOrdersConsideringDueDates line 92 - Tests-Dimension by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-223493", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 67.738, "tool_calls": 12, "total_tokens": 132200, "TurnCount": 12}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":1,\"grep\":2,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al b/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al\nindex 6a5f0a88..626b7429 100644\n--- a/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al\n@@ -56,6 +56,7 @@ codeunit 1409 \"Sales Inv. Header - Edit\"\n CustLedgerEntry.Description := SalesInvoiceHeader.\"Posting Description\";\n CustLedgerEntry.\"Promised Pay Date\" := SalesInvoiceHeader.\"Promised Pay Date\";\n CustLedgerEntry.\"Due Date\" := SalesInvoiceHeader.\"Due Date\";\n+ CustLedgerEntry.\"Your Reference\" := SalesInvoiceHeader.\"Your Reference\";\n if CustLedgerEntry.\"Dispute Status\" <> '' then begin\n if DisputeStatus.get(CustLedgerEntry.\"Dispute Status\") then\n if (DisputeStatus.\"Overwrite on hold\") and ClearOnHold(SalesInvoiceHeader) then\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134658'\nCodeunit 134658 Edit Posted Documents\n Testfunction VerifyYourReferenceUpdatedInCustLedgerEntry Failure (22.92 seconds)\n Error:\n Assert.AreEqual failed. Expected:<7cb9e6c4f56d44b3b4af32d05f16361e61c> (Text). Actual:<> (Text). Customer Ledger Entry Your Reference not updated.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"Edit Posted Documents\"(CodeUnit 134658).VerifyYourReferenceUpdatedInCustLedgerEntry line 32 - Tests-ERM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-208649", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 204.18, "tool_calls": 28, "total_tokens": 560400, "TurnCount": 37}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":14,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":6}", "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\nindex 36930a9e..058f96b4 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n@@ -263,7 +263,6 @@ codeunit 99000773 \"Calculate Prod. Order\"\n Item2: Record Item;\n ComponentSKU: Record \"Stockkeeping Unit\";\n IsHandled: Boolean;\n- QtyRoundPrecision: Decimal;\n begin\n ProdOrderComp.Reset();\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\", \"Item No.\");\n@@ -295,12 +294,7 @@ codeunit 99000773 \"Calculate Prod. Order\"\n ProdOrderComp.\"Bin Code\" := GetDefaultBin();\n ProdOrderComp.Description := ProdBOMLine[Level].Description;\n ProdOrderComp.Validate(\"Unit of Measure Code\", ProdBOMLine[Level].\"Unit of Measure Code\");\n- if (ProdOrderComp.\"Item No.\" <> '') and Item2.Get(ProdOrderComp.\"Item No.\") then\n- QtyRoundPrecision := UOMMgt.GetQtyRoundingPrecision(Item2, ProdBOMLine[Level].\"Unit of Measure Code\");\n- if QtyRoundPrecision <> 0 then\n- ProdOrderComp.\"Quantity per\" := Round(ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM, QtyRoundPrecision)\n- else\n- ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n+ ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n ProdOrderComp.Length := ProdBOMLine[Level].Length;\n ProdOrderComp.Width := ProdBOMLine[Level].Width;\n ProdOrderComp.Weight := ProdBOMLine[Level].Weight;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137088'\nCodeunit 137088 SCM Order Planning - III\n Testfunction ReleasedProdOrderQuantityPerandExpectedQtyRoundingPrecisionChecking Failure (7.03 seconds)\n Error:\n The value in the Qty. Rounding Precision field on the Item Unit of Measure page is causing the rounding precision for the Expected Quantity field to be incorrect.\n Call Stack:\n \"Prod. Order Component\"(Table 5407).\"Expected Quantity - OnValidate\"(Trigger) line 26 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).UpdateExpectedQuantity line 14 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).\"Routing Link Code - OnValidate\"(Trigger) line 5 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).TransferBOMProcessItem line 45 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).TransferBOM line 70 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).Calculate line 105 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order Lines\"(CodeUnit 99000787).ProcessProdOrderLines line 13 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order Lines\"(CodeUnit 99000787).Copy line 23 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order from Sale\"(CodeUnit 99000792).CreateProductionOrder line 54 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateOrder line 11 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateOrders line 35 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateProdOrder line 24 - Base Application by Microsoft version 26.0.0.0\n \"Library - Planning\"(CodeUnit 132203).CreateProdOrderUsingPlanning line 6 - Tests-TestLibraries by Microsoft version 26.0.0.0\n \"SCM Order Planning - III\"(CodeUnit 137088).ReleasedProdOrderQuantityPerandExpectedQtyRoundingPrecisionChecking line 50 - Tests-SCM by Microsoft version 26.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-201169", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 185.894, "tool_calls": 27, "total_tokens": 581500, "TurnCount": 49}, "Project": "Shopify", "ToolUsage": "{\"edit\":2,\"glob\":2,\"grep\":8,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":9}", "output": "diff --git a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\nindex 38d77856..3c97e433 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n@@ -26,6 +26,7 @@ codeunit 30174 \"Shpfy Create Product\"\n Getlocations: Boolean;\n ProductId: BigInteger;\n ItemVariantIsBlockedLbl: Label 'Item variant is blocked or sales blocked.';\n+ ItemTitleIsEmptyLbl: Label 'Item title is empty.';\n \n trigger OnRun()\n var\n@@ -51,13 +52,19 @@ codeunit 30174 \"Shpfy Create Product\"\n TempShopifyProduct: Record \"Shpfy Product\" temporary;\n TempShopifyVariant: Record \"Shpfy Variant\" temporary;\n TempShopifyTag: Record \"Shpfy Tag\" temporary;\n+ SkippedRecord: Codeunit \"Shpfy Skipped Record\";\n begin\n CreateTempProduct(Item, TempShopifyProduct, TempShopifyVariant, TempShopifyTag);\n+ if TempShopifyProduct.Title = '' then begin\n+ SkippedRecord.LogSkippedRecord(Item.RecordId, ItemTitleIsEmptyLbl, Shop);\n+ exit;\n+ end;\n if not VariantApi.FindShopifyProductVariant(TempShopifyProduct, TempShopifyVariant) then\n ProductId := ProductApi.CreateProduct(TempShopifyProduct, TempShopifyVariant, TempShopifyTag)\n else\n ProductId := TempShopifyProduct.Id;\n- ProductExport.UpdateProductTranslations(ProductId, Item);\n+ if ProductId <> 0 then\n+ ProductExport.UpdateProductTranslations(ProductId, Item);\n end;\n \n internal procedure CreateTempProduct(Item: Record Item; var TempShopifyProduct: Record \"Shpfy Product\" temporary; var TempShopifyVariant: Record \"Shpfy Variant\" temporary; var TempShopifyTag: Record \"Shpfy Tag\" temporary)\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139581'\nCodeunit 139581 Shpfy Skipped Record Log Test\n Testfunction UnitTestLogItemEmptyDescription Failure (6.133 seconds)\n Error:\n The response from Shopify contains no JSON. \\Requested: {\"query\":\"{ locations(first: 20, includeLegacy: true) { pageInfo { hasNextPage endCursor } nodes { legacyResourceId isActive isPrimary name fulfillmentService { serviceName }}}}\"} \\Response: \n Call Stack:\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 21 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 4 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 6 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Sync Shop Locations\"(CodeUnit 30198).SyncLocations line 20 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Sync Shop Locations\"(CodeUnit 30198).OnRun(Trigger) line 4 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Create Product\"(CodeUnit 30174).OnRun(Trigger) line 5 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Add Item to Shopify\"(Report 30106).\"Item - OnAfterGetRecord\"(Trigger) line 12 - Shopify Connector by Microsoft version 26.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-215225", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 229.291, "tool_calls": 21, "total_tokens": 343000, "TurnCount": 67}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":2,\"report_intent\":3,\"task\":2,\"update_todo\":2,\"view\":10}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobJournalLine.Table.al b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobJournalLine.Table.al\nindex fb253f0b..1498c85c 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobJournalLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobJournalLine.Table.al\n@@ -1873,11 +1873,12 @@ table 210 \"Job Journal Line\"\n IsQuantityChangedForPrice() or\n (\"Work Type Code\" <> xRec.\"Work Type Code\") or\n (\"Unit of Measure Code\" <> xRec.\"Unit of Measure Code\") or\n+ (Quantity <> xRec.Quantity) or\n ((\"Posting Date\" <> xRec.\"Posting Date\") and (\"Currency Code\" <> ''))\n then\n exit(true);\n Type::\"G/L Account\":\n- if (\"No.\" <> xRec.\"No.\") or IsQuantityChangedForPrice() then\n+ if (\"No.\" <> xRec.\"No.\") or IsQuantityChangedForPrice() or (Quantity <> xRec.Quantity) then\n exit(true);\n else\n exit(false);\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136305'\nCodeunit 136305 Job Journal\n Testfunction CheckUnitCostAndPriceNotZeroInRecurringJobJnlAfterPosting Failure (6.594 seconds)\n Error:\n AssertEquals for Field: Unit Price Expected = '455.00', Actual = '0.00'\n Call Stack:\n \"Job Journal\"(CodeUnit 136305).CheckUnitCostAndPriceNotZeroInRecurringJobJnlAfterPosting line 23 - Tests-Job by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-226004", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 507.554, "tool_calls": 43, "total_tokens": 2016300, "TurnCount": 106}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":5,\"grep\":2,\"powershell\":3,\"report_intent\":2,\"task\":4,\"update_todo\":3,\"view\":23}", "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al b/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al\nindex d086521b..05601314 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al\n@@ -994,6 +994,7 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n FromBinContent.SetTrackingFilterFromWhseActivityLineIfNotBlank(NewWarehouseActivityLine);\n \n OnBeforeFindFromBinContent(FromBinContent, NewWarehouseActivityLine, FromBinCode, BinCode, IsInvtMovement, IsBlankInvtMovement, DefaultBin, WhseItemTrackingSetup, CurrWarehouseActivityHeader, CurrWarehouseRequest);\n+ RemQtyToPick := NewWarehouseActivityLine.CalcQty(RemQtyToPickBase);\n if FromBinContent.Find('-') then\n repeat\n IsHandled := false;\n@@ -1026,7 +1027,7 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n QtyToPickBase := QtyAvailToPickBase;\n OnInsertPickOrMoveBinWhseActLineOnBeforeLoopMakeLine(CurrWarehouseActivityHeader, CurrWarehouseRequest, NewWarehouseActivityLine, FromBinContent, AutoCreation, QtyToPickBase);\n repeat\n- MakeWarehouseActivityLine(NewWarehouseActivityLine, FromBinContent.\"Bin Code\", QtyToPickBase, RemQtyToPickBase);\n+ MakeLineWhenSNoReq(NewWarehouseActivityLine, FromBinContent.\"Bin Code\", QtyToPickBase, RemQtyToPickBase, RemQtyToPick);\n OnInsertPickOrMoveBinWhseActLineOnAfterMakeLine(QtyToPickBase, DefaultBin);\n QtyAvailToPickBase := QtyAvailToPickBase - QtyToPickBase;\n until QtyAvailToPickBase <= 0;\n@@ -1090,8 +1091,9 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n until RemQtyToPickBase = 0;\n end else begin\n QtyToPickBase := RemQtyToPickBase;\n+ RemQtyToPick := NewWarehouseActivityLine.CalcQty(RemQtyToPickBase);\n repeat\n- MakeWarehouseActivityLine(NewWarehouseActivityLine, '', QtyToPickBase, RemQtyToPickBase);\n+ MakeLineWhenSNoReq(NewWarehouseActivityLine, '', QtyToPickBase, RemQtyToPickBase, RemQtyToPick);\n OnInsertShelfWhseActivLineOnAfterMakeWarehouseActivityLine(NewWarehouseActivityLine);\n until RemQtyToPickBase = 0;\n end;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137055'\nCodeunit 137055 SCM Warehouse Pick\n Testfunction InventoryPickRoundingCausesResidualQuantity Failure (18.79 seconds)\n Error:\n Assert.AreEqual failed. Expected:<248> (Decimal). Actual:<247.99999> (Decimal). Sales line should be fully shipped with no residual quantity.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"SCM Warehouse Pick\"(CodeUnit 137055).InventoryPickRoundingCausesResidualQuantity line 86 - Tests-SCM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoft__BCApps-4822", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 130.691, "tool_calls": 22, "total_tokens": 527700, "TurnCount": 24}, "Project": "Shopify", "ToolUsage": "{\"edit\":1,\"grep\":8,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":8}", "output": "diff --git a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyExport.Codeunit.al b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyExport.Codeunit.al\nindex 9b3b3f1..59fed39 100644\n--- a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyExport.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyExport.Codeunit.al\n@@ -177,6 +177,12 @@ codeunit 30284 \"Shpfy Company Export\"\n if GetShopifyPaymentTermsIdFromCustomer(Customer, PaymentTermsId) then\n CompanyLocation.\"Shpfy Payment Terms Id\" := PaymentTermsId;\n \n+ CompanyLocation.\"Sell-to Customer No.\" := Customer.\"No.\";\n+ if Customer.\"Bill-to Customer No.\" <> '' then\n+ CompanyLocation.\"Bill-to Customer No.\" := Customer.\"Bill-to Customer No.\"\n+ else\n+ CompanyLocation.\"Bill-to Customer No.\" := Customer.\"No.\";\n+\n exit(HasDiff(CompanyLocation, TempCompanyLocation));\n end;\n \n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139539'\nCodeunit 139539 Shpfy Company Locations Test\n Testfunction TestCreateCompanyLocationSellToBillTo Failure (5.81 seconds)\n Error:\n Assert.AreEqual failed. Expected: (Text). Actual:<> (Text). Sell-to Customer No. mismatch.\n Call Stack:\n \"Library Assert\"(CodeUnit 130002).AreEqual line 3 - Library Assert by Microsoft version 27.0.0.0\n \"Shpfy Company Locations Test\"(CodeUnit 139539).TestCreateCompanyLocationSellToBillTo line 22 - Shopify Connector Test by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-176426", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 293.199, "tool_calls": 24, "total_tokens": 425200, "TurnCount": 31}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":9,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":9}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\nindex d639a562..27a45311 100644\n--- a/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\n@@ -993,7 +993,7 @@ codeunit 5870 \"Calculate BOM Tree\"\n exit(true);\n end;\n Item.\"Replenishment System\"::\"Prod. Order\":\n- if Item.\"Production BOM No.\" <> '' then\n+ if (Item.\"Production BOM No.\" <> '') or (Item.\"Routing No.\" <> '') then\n exit(true);\n end;\n end;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137391'\nCodeunit 137391 SCM - BOM Cost Shares Report\n Testfunction RolledUpMaterialAndCapacityCostWithRoutingAndNoBOM Failure (3.116 seconds)\n Error:\n AssertEquals for Field: Rolled-up Material Cost Expected = '497.28', Actual = ''\n Call Stack:\n \"SCM - BOM Cost Shares Report\"(CodeUnit 137391).VerifyParentItemMaterialAndCapacityCost line 7 - Tests-SCM by Microsoft\n \"SCM - BOM Cost Shares Report\"(CodeUnit 137391).RolledUpMaterialAndCapacityCostWithRoutingAndNoBOM line 34 - Tests-SCM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"InstanceID": "microsoftInternal__NAV-222484", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 1696.758, "tool_calls": 79, "total_tokens": 6171900, "TurnCount": 178}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":3,\"glob\":1,\"grep\":22,\"powershell\":1,\"report_intent\":3,\"task\":4,\"update_todo\":3,\"view\":41}", "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Tracking/WhseItemTrackingFEFO.Codeunit.al b/App/Layers/W1/BaseApp/Warehouse/Tracking/WhseItemTrackingFEFO.Codeunit.al\nindex 9568f0f6..6b3364b3 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Tracking/WhseItemTrackingFEFO.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Tracking/WhseItemTrackingFEFO.Codeunit.al\n@@ -4,6 +4,7 @@\n // ------------------------------------------------------------------------------------------------\n namespace Microsoft.Warehouse.Tracking;\n \n+using Microsoft.Inventory.Ledger;\n using Microsoft.Inventory.Location;\n using Microsoft.Inventory.Tracking;\n using Microsoft.Warehouse.Activity;\n@@ -56,7 +57,6 @@ codeunit 7326 \"Whse. Item Tracking FEFO\"\n var\n ItemTrackingSetup: Record \"Item Tracking Setup\";\n SummarizedStockByItemTrkg: Query \"Summarized Stock By Item Trkg.\";\n- QtyReservedFromItemLedger: Query \"Qty. Reserved From Item Ledger\";\n NonReservedQtyLotSN: Decimal;\n DoInsertEntrySummary: Boolean;\n IsHandled: Boolean;\n@@ -84,11 +84,7 @@ codeunit 7326 \"Whse. Item Tracking FEFO\"\n if not IsItemTrackingBlocked(ItemNo, VariantCode, ItemTrackingSetup) then begin\n NonReservedQtyLotSN := SummarizedStockByItemTrkg.Remaining_Quantity;\n \n- QtyReservedFromItemLedger.SetSKUFilters(ItemNo, VariantCode, Location.Code);\n- QtyReservedFromItemLedger.SetTrackingFilters(ItemTrackingSetup);\n- QtyReservedFromItemLedger.Open();\n- if QtyReservedFromItemLedger.Read() then\n- NonReservedQtyLotSN -= QtyReservedFromItemLedger.Quantity__Base_;\n+ NonReservedQtyLotSN -= CalcQtyReservedOnILEByTracking(ItemNo, VariantCode, Location.Code, ItemTrackingSetup);\n \n DoInsertEntrySummary := NonReservedQtyLotSN - CalcNonRegisteredQtyOutstanding(ItemNo, VariantCode, Location.Code, ItemTrackingSetup, HasExpirationDate) > 0;\n OnSummarizeInventoryFEFOOnBeforeInsertEntrySummaryFEFO(Location, ItemNo, VariantCode, HasExpirationDate, NonReservedQtyLotSN, ItemTrackingSetup, SummarizedStockByItemTrkg.Expiration_Date, DoInsertEntrySummary, TempGlobalEntrySummary);\n@@ -98,6 +94,22 @@ codeunit 7326 \"Whse. Item Tracking FEFO\"\n end;\n end;\n \n+ local procedure CalcQtyReservedOnILEByTracking(ItemNo: Code[20]; VariantCode: Code[10]; LocationCode: Code[10]; ItemTrackingSetup: Record \"Item Tracking Setup\"): Decimal\n+ var\n+ ReservEntry: Record \"Reservation Entry\";\n+ begin\n+ ReservEntry.SetRange(Positive, true);\n+ ReservEntry.SetRange(\"Source Type\", Database::\"Item Ledger Entry\");\n+ ReservEntry.SetRange(\"Source Subtype\", 0);\n+ ReservEntry.SetRange(\"Reservation Status\", ReservEntry.\"Reservation Status\"::Reservation);\n+ ReservEntry.SetRange(\"Item No.\", ItemNo);\n+ ReservEntry.SetRange(\"Variant Code\", VariantCode);\n+ ReservEntry.SetRange(\"Location Code\", LocationCode);\n+ ReservEntry.SetTrackingFilterFromItemTrackingSetup(ItemTrackingSetup);\n+ ReservEntry.CalcSums(\"Quantity (Base)\");\n+ exit(ReservEntry.\"Quantity (Base)\");\n+ end;\n+\n local procedure CalcNonRegisteredQtyOutstanding(ItemNo: Code[20]; VariantCode: Code[10]; LocationCode: Code[10]; WhseItemTrackingSetup: Record \"Item Tracking Setup\"; HasExpirationDate: Boolean): Decimal\n var\n WarehouseActivityLine: Record \"Warehouse Activity Line\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137260'\nCodeunit 137260 SCM Inventory Item Tracking\n Testfunction RegisterPickWithNoErrorForFEFOLocation Failure (17.203 seconds)\n Error:\n Lot No. must have a value in Warehouse Activity Line: Activity Type=Pick, No.=PI000001, Line No.=10000. It cannot be zero or empty.\n Call Stack:\n \"Warehouse Activity Line\"(Table 5767).TestTrackingIfRequired line 12 - Base Application by Microsoft version 27.0.0.0\n \"Whse.-Activity-Register\"(CodeUnit 7307).CheckWhseItemTrkgLine line 36 - Base Application by Microsoft version 27.0.0.0\n \"Whse.-Activity-Register\"(CodeUnit 7307).Code line 18 - Base Application by Microsoft version 27.0.0.0\n \"Whse.-Activity-Register\"(CodeUnit 7307).OnRun(Trigger) line 4 - Base Application by Microsoft version 27.0.0.0\n \"Library - Warehouse\"(CodeUnit 132204).RegisterWhseActivity line 10 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"SCM Inventory Item Tracking\"(CodeUnit 137260).RegisterPickWithNoErrorForFEFOLocation line 56 - Tests-SCM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-206135", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 212.139, "tool_calls": 34, "total_tokens": 738200, "TurnCount": 36}, "Project": "BaseApp", "ToolUsage": "{\"edit\":4,\"glob\":1,\"grep\":8,\"powershell\":1,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":14}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferWhsePostShipment.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferWhsePostShipment.Codeunit.al\nindex 497b9a81..91e1fc2a 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferWhsePostShipment.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferWhsePostShipment.Codeunit.al\n@@ -263,6 +263,7 @@ codeunit 5748 \"Transfer Whse. Post Shipment\"\n else begin\n TransferOrderPostShipment.SetWhseShptHeader(WhseShptHeader);\n TransferOrderPostShipment.SetSuppressCommit(WhsePostParameters.\"Suppress Commit\" or WhsePostParameters.\"Preview Posting\");\n+ TransferOrderPostShipment.SetPreviewMode(WhsePostParameters.\"Preview Posting\");\n if TransferOrderPostShipment.Run(TransHeader) then begin\n CounterSourceDocOK := CounterSourceDocOK + 1;\n Result := true;\n@@ -285,6 +286,7 @@ codeunit 5748 \"Transfer Whse. Post Shipment\"\n Clear(TransferOrderPostTransfer);\n TransferOrderPostTransfer.SetWhseShptHeader(WhseShptHeader);\n TransferOrderPostTransfer.SetSuppressCommit(WhsePostParameters.\"Suppress Commit\" or WhsePostParameters.\"Preview Posting\");\n+ TransferOrderPostTransfer.SetPreviewMode(WhsePostParameters.\"Preview Posting\");\n if TransferOrderPostTransfer.Run(TransHeader) then begin\n CounterSourceDocOK := CounterSourceDocOK + 1;\n Posted := true;\n@@ -295,9 +297,11 @@ codeunit 5748 \"Transfer Whse. Post Shipment\"\n Clear(TransferOrderPostShipment);\n TransferOrderPostShipment.SetWhseShptHeader(WhseShptHeader);\n TransferOrderPostShipment.SetSuppressCommit(WhsePostParameters.\"Suppress Commit\" or WhsePostParameters.\"Preview Posting\");\n+ TransferOrderPostShipment.SetPreviewMode(WhsePostParameters.\"Preview Posting\");\n if TransferOrderPostShipment.Run(TransHeader) then begin\n Clear(TransferOrderPostReceipt);\n TransferOrderPostReceipt.SetSuppressCommit(WhsePostParameters.\"Suppress Commit\" or WhsePostParameters.\"Preview Posting\");\n+ TransferOrderPostReceipt.SetPreviewMode(WhsePostParameters.\"Preview Posting\");\n if TransferOrderPostReceipt.Run(TransHeader) then begin\n CounterSourceDocOK := CounterSourceDocOK + 1;\n Posted := true;\n@@ -326,6 +330,7 @@ codeunit 5748 \"Transfer Whse. Post Shipment\"\n else begin\n TransferOrderPostShipment.SetWhseShptHeader(WhseShptHeader);\n TransferOrderPostShipment.SetSuppressCommit(WhsePostParameters.\"Suppress Commit\" or WhsePostParameters.\"Preview Posting\");\n+ TransferOrderPostShipment.SetPreviewMode(WhsePostParameters.\"Preview Posting\");\n TransferOrderPostShipment.RunWithCheck(TransHeader);\n CounterSourceDocOK := CounterSourceDocOK + 1;\n end;\n@@ -344,6 +349,7 @@ codeunit 5748 \"Transfer Whse. Post Shipment\"\n Clear(TransferOrderPostTransfer);\n TransferOrderPostTransfer.SetWhseShptHeader(WhseShptHeader);\n TransferOrderPostTransfer.SetSuppressCommit(WhsePostParameters.\"Suppress Commit\" or WhsePostParameters.\"Preview Posting\");\n+ TransferOrderPostTransfer.SetPreviewMode(WhsePostParameters.\"Preview Posting\");\n TransferOrderPostTransfer.RunWithCheck(TransHeader);\n CounterSourceDocOK := CounterSourceDocOK + 1;\n end;\n@@ -352,9 +358,11 @@ codeunit 5748 \"Transfer Whse. Post Shipment\"\n Clear(TransferOrderPostShipment);\n TransferOrderPostShipment.SetWhseShptHeader(WhseShptHeader);\n TransferOrderPostShipment.SetSuppressCommit(WhsePostParameters.\"Suppress Commit\" or WhsePostParameters.\"Preview Posting\");\n+ TransferOrderPostShipment.SetPreviewMode(WhsePostParameters.\"Preview Posting\");\n TransferOrderPostShipment.RunWithCheck(TransHeader);\n Clear(TransferOrderPostReceipt);\n TransferOrderPostReceipt.SetSuppressCommit(WhsePostParameters.\"Suppress Commit\" or WhsePostParameters.\"Preview Posting\");\n+ TransferOrderPostReceipt.SetPreviewMode(WhsePostParameters.\"Preview Posting\");\n TransferOrderPostReceipt.Run(TransHeader);\n CounterSourceDocOK := CounterSourceDocOK + 1;\n end;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137154'\nCodeunit 137154 SCM Warehouse Management II\n Testfunction WarehouseShipmentPageRemainsOpenWhenRunPreviewPostAndCloseGLPostingPreviewPage Failure (12.59 seconds)\n Error:\n The TestPage is not open.\n Call Stack:\n \"SCM Warehouse Management II\"(CodeUnit 137154).WarehouseShipmentPageRemainsOpenWhenRunPreviewPostAndCloseGLPostingPreviewPage line 49 - Tests-SCM by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-211521", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 45, "tool_calls": 12, "total_tokens": 122000, "TurnCount": 7}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":7,\"report_intent\":2,\"update_todo\":1,\"view\":1}", "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al b/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\nindex 401cabee..42569b9b 100644\n--- a/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\n+++ b/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\n@@ -565,8 +565,7 @@ table 5050 Contact\n {\n CalcFormula = min(\"To-do\".Date where(\"Contact Company No.\" = field(\"Company No.\"),\n \"Contact No.\" = field(filter(\"Lookup Contact No.\")),\n- Closed = const(false),\n- \"System To-do Type\" = const(\"Contact Attendee\")));\n+ Closed = const(false)));\n Caption = 'Next Task Date';\n Editable = false;\n FieldClass = FlowField;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136201'\nCodeunit 136201 Marketing Contacts\n Testfunction TaskListPageHasFixedSystemTaskTypeFilterAsOrganiserOrContactAttendee Failure (5.27 seconds)\n Error:\n Assert.AreEqual failed. Expected: (Text). Actual:<> (Text). Wrong filter was set.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 26.0.0.0\n \"Marketing Contacts\"(CodeUnit 136201).TaskListPageHasFixedSystemTaskTypeFilterAsOrganiserOrContactAttendee line 26 - Tests-Marketing by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-224447", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 190.231, "tool_calls": 15, "total_tokens": 188600, "TurnCount": 38}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":1,\"grep\":4,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Foundation/Reporting/ReportSelections.Table.al b/App/Layers/W1/BaseApp/Foundation/Reporting/ReportSelections.Table.al\nindex 7a71bebb..78582853 100644\n--- a/App/Layers/W1/BaseApp/Foundation/Reporting/ReportSelections.Table.al\n+++ b/App/Layers/W1/BaseApp/Foundation/Reporting/ReportSelections.Table.al\n@@ -1523,6 +1523,8 @@ table 77 \"Report Selections\"\n if TableId = Database::Customer then begin\n FieldName := 'Sell-to Customer No.';\n OnSendEmailDirectlyOnAfterSetFieldName(DocumentRecord.Number(), FieldName);\n+ if not DataTypeManagement.FindfieldByName(DocumentRecord, FieldRef, FieldName) then\n+ FieldName := 'Customer No.';\n if DataTypeManagement.FindfieldByName(DocumentRecord, FieldRef, FieldName) and Customer.Get(Format(FieldRef.Value())) then begin\n SourceTableIDs.Add(Database::Customer);\n SourceIDs.Add(Customer.SystemId);\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134979'\nCodeunit 134979 Reminder Automation Tests\n Testfunction SendIssuedReminderByEmailAndEntryCreatedInEmailRelatedRecords Failure (29.697 seconds)\n Error:\n Assert.IsTrue failed. Email related record not found\n Call Stack:\n Assert(CodeUnit 130000).IsTrue line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"Reminder Automation Tests\"(CodeUnit 134979).ModalEmailEditorHandler line 8 - Tests-ERM by Microsoft version 27.0.0.0\n \"Email Editor\"(CodeUnit 8906).OpenWithScenario line 14 - System Application by Microsoft version 27.0.0.0\n \"Email Impl\"(CodeUnit 8900).OpenInEditorWithScenario line 27 - System Application by Microsoft version 27.0.0.0\n Email(CodeUnit 8901).OpenInEditorModallyWithScenario line 2 - System Application by Microsoft version 27.0.0.0\n \"Mail Management\"(CodeUnit 9520).SendViaEmailModule line 52 - Base Application by Microsoft version 27.0.0.0\n \"Mail Management\"(CodeUnit 9520).DoSend line 5 - Base Application by Microsoft version 27.0.0.0\n \"Mail Management\"(CodeUnit 9520).Send line 17 - Base Application by Microsoft version 27.0.0.0\n \"Mail Management\"(CodeUnit 9520).SendMailOrDownload line 6 - Base Application by Microsoft version 27.0.0.0\n \"Email Item\"(Table 9500).Send line 9 - Base Application by Microsoft version 27.0.0.0\n \"Document-Mailing\"(CodeUnit 260).EmailFileInternal line 77 - Base Application by Microsoft version 27.0.0.0\n \"Document-Mailing\"(CodeUnit 260).EmailFile line 7 - Base Application by Microsoft version 27.0.0.0\n \"Report Selections\"(Table 77).SendEmailDirectly line 152 - Base Application by Microsoft version 27.0.0.0\n \"Report Selections\"(Table 77).SendEmailToCustDirectly line 32 - Base Application by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-182354", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 46, "tool_calls": 11, "total_tokens": 111900, "TurnCount": 6}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":3,\"report_intent\":2,\"update_todo\":2,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al b/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al\nindex 737182d0..37eec66b 100644\n--- a/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al\n+++ b/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al\n@@ -28,7 +28,7 @@ page 1318 \"Account Receivables KPIs\"\n begin\n CustLedgerEntry.SetRange(Open, true);\n CustLedgerEntry.SetFilter(\"Remaining Amount\", '>%1', 0);\n- CustLedgerEntry.SetFilter(\"Due Date\", '<=%1', WorkDate());\n+ CustLedgerEntry.SetFilter(\"Due Date\", '<=%1', Today());\n CustomerLedgerEntries.SetTableView(CustLedgerEntry);\n CustomerLedgerEntries.Run();\n end;\n@@ -98,7 +98,7 @@ page 1318 \"Account Receivables KPIs\"\n CuesAndKPIs: Codeunit \"Cues And KPIs\";\n SalesInvoicesDueNextWeekStyle: Enum \"Cues And KPIs Style\";\n begin\n- Rec.SetRange(\"Overdue Date Filter\", 0D, WorkDate());\n+ Rec.SetRange(\"Overdue Date Filter\", 0D, Today());\n if not Rec.Get() then begin\n Clear(Rec);\n Rec.Insert();\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134924'\nCodeunit 134924 ERM Cues\n Testfunction TotalOverdueLCYInFinanceCue Failure (5.656 seconds)\n Error:\n Assert.AreEqual failed. Expected:<> (Text). Actual:<50.17> (Text). The total overdue LCY amount is not calculated correctly..\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"ERM Cues\"(CodeUnit 134924).TotalOverdueLCYInFinanceCue line 37 - Tests-ERM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"InstanceID": "microsoftInternal__NAV-180484", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 116.267, "tool_calls": 10, "total_tokens": 128400, "TurnCount": 24}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/eServices/EDocument/IncomingDocument.Table.al b/App/Layers/W1/BaseApp/eServices/EDocument/IncomingDocument.Table.al\nindex 2341887c..1fd60f84 100644\n--- a/App/Layers/W1/BaseApp/eServices/EDocument/IncomingDocument.Table.al\n+++ b/App/Layers/W1/BaseApp/eServices/EDocument/IncomingDocument.Table.al\n@@ -509,9 +509,12 @@ table 130 \"Incoming Document\"\n procedure CreateDocumentWithDataExchange()\n var\n RelatedRecord: Variant;\n+ ReleaseIncomingDocument: Codeunit \"Release Incoming Document\";\n begin\n- if GetRecord(RelatedRecord) then\n+ if GetRecord(RelatedRecord) then begin\n+ ReleaseIncomingDocument.Create(Rec);\n Error(DocAlreadyCreatedErr);\n+ end;\n \n CreateWithDataExchange(\"Document Type\"::\" \")\n end;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139154'\nCodeunit 139154 Incoming Doc. To Data Exch.UT\n Testfunction StatusRemainsCreatedIfHasLinkedDocWhenReopenIncomingDoc Failure (14.897 seconds)\n Error:\n Assert.AreEqual failed. Expected: (Text). Actual: (Text). Status must be Created in Incoming Document.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"Incoming Doc. To Data Exch.UT\"(CodeUnit 139154).StatusRemainsCreatedIfHasLinkedDocWhenReopenIncomingDoc line 53 - Tests-Data Exchange by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"InstanceID": "microsoftInternal__NAV-215645", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 258.445, "tool_calls": 26, "total_tokens": 475300, "TurnCount": 31}, "Project": "SubscriptionBilling", "ToolUsage": "{\"edit\":1,\"glob\":2,\"grep\":8,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":10}", "output": "diff --git a/App/Apps/W1/SubscriptionBilling/App/Billing/Codeunits/CreateBillingDocuments.Codeunit.al b/App/Apps/W1/SubscriptionBilling/App/Billing/Codeunits/CreateBillingDocuments.Codeunit.al\nindex c7efaed2..a59bbb14 100644\n--- a/App/Apps/W1/SubscriptionBilling/App/Billing/Codeunits/CreateBillingDocuments.Codeunit.al\n+++ b/App/Apps/W1/SubscriptionBilling/App/Billing/Codeunits/CreateBillingDocuments.Codeunit.al\n@@ -260,6 +260,7 @@ codeunit 8060 \"Create Billing Documents\"\n TranslationHelper.RestoreGlobalLanguage();\n SalesLine.\"Description 2\" := '';\n \n+ SalesLine.\"Exclude from Doc. Total\" := false;\n SetInvoicePriceFromUsageDataBilling(SalesLine, TempBillingLine);\n OnBeforeInsertSalesLineFromContractLine(SalesLine, TempBillingLine);\n SalesLine.Insert(false);\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '148155'\nCodeunit 148155 Contracts Test\n Testfunction SalesInvoiceShowsSubtotalForServCommItem Failure (8.18 seconds)\n Error:\n Exclude from Document Total must be equal to 'No' in Sales Line: Document Type=Invoice, Document No.=102222, Line No.=10000. Current value is 'Yes'.\n Call Stack:\n \"Contracts Test\"(CodeUnit 148155).SalesInvoiceShowsSubtotalForServCommItem line 22 - Subscription Billing Test by Microsoft version 26.3.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.3.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.3.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.3.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.3.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.3.0.0"} +{"InstanceID": "microsoftInternal__NAV-223790", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 237.846, "tool_calls": 37, "total_tokens": 950900, "TurnCount": 32}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":3,\"glob\":4,\"grep\":14,\"powershell\":1,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":8}", "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/LowLevelCodeCalculator.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/LowLevelCodeCalculator.Codeunit.al\nindex fcabc2e0..67593001 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/LowLevelCodeCalculator.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/LowLevelCodeCalculator.Codeunit.al\n@@ -6,6 +6,7 @@ namespace Microsoft.Inventory.BOM.Tree;\n \n using Microsoft.Inventory.BOM;\n using Microsoft.Inventory.Item;\n+using Microsoft.Inventory.Location;\n using Microsoft.Manufacturing.ProductionBOM;\n using System.Threading;\n using System.Utilities;\n@@ -88,6 +89,7 @@ codeunit 3687 \"Low-Level Code Calculator\"\n begin\n // Set nodes on the tree\n PopulateFromItemAndRelatedBOMs(BOMStructure);\n+ PopulateFromSKUAndRelatedBOMs(BOMStructure);\n PopulateFromProductionBOMAndLines(BOMStructure);\n PopulateFromBOMComponents(BOMStructure);\n end;\n@@ -192,6 +194,36 @@ codeunit 3687 \"Low-Level Code Calculator\"\n ItemProductionBOMs.Close();\n end;\n \n+ local procedure PopulateFromSKUAndRelatedBOMs(BOMStructure: Codeunit \"BOM Tree\")\n+ var\n+ StockkeepingUnit: Record \"Stockkeeping Unit\";\n+ Item: Record Item;\n+ ProductionBOMHeader: Record \"Production BOM Header\";\n+ VersionManagement: Codeunit VersionManagement;\n+ Parent: Codeunit \"BOM Node\";\n+ Child: Codeunit \"BOM Node\";\n+ begin\n+ StockkeepingUnit.SetFilter(\"Production BOM No.\", '<>%1', '');\n+ if StockkeepingUnit.FindSet() then\n+ repeat\n+ if Item.Get(StockkeepingUnit.\"Item No.\") then\n+ if Item.\"Production BOM No.\" <> StockkeepingUnit.\"Production BOM No.\" then\n+ if ProductionBOMHeader.Get(StockkeepingUnit.\"Production BOM No.\") then\n+ if (ProductionBOMHeader.Status = ProductionBOMHeader.Status::Certified) or\n+ (VersionManagement.GetBOMVersion(ProductionBOMHeader.\"No.\", WorkDate(), true) <> '')\n+ then begin\n+ Parent.CreateForItem(Item.\"No.\", Item.\"Low-Level Code\", LowLevelCodeParam);\n+ Child.CreateForProdBOM(ProductionBOMHeader.\"No.\", ProductionBOMHeader.\"Low-Level Code\", LowLevelCodeParam);\n+\n+ AddChildToParent(BOMStructure, Parent, Child);\n+\n+ // ensure that next nodes created are new instances\n+ Clear(Parent);\n+ Clear(Child);\n+ end;\n+ until StockkeepingUnit.Next() = 0;\n+ end;\n+\n local procedure PopulateFromProductionBOMAndLines(BOMStructure: Codeunit \"BOM Tree\")\n var\n ProductionBOMHeader: Record \"Production BOM Header\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137035'\nCodeunit 137035 SCM PS Bugs-I\n Testfunction CheckPlanningWorksheetPlanComponentwhenStockkeepingUnitsSetup Failure (19.22 seconds)\n Error:\n Assert.AreEqual failed. Expected:<1> (Integer). Actual:<0> (Integer). New planning worksheet line not created for component item.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"SCM PS Bugs-I\"(CodeUnit 137035).CheckPlanningWorksheetPlanComponentwhenStockkeepingUnitsSetup line 85 - Tests-SCM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-177750", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 334.78499999999997, "tool_calls": 65, "total_tokens": 1719300, "TurnCount": 41}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":5,\"grep\":30,\"powershell\":2,\"report_intent\":3,\"store_memory\":2,\"task\":1,\"update_todo\":4,\"view\":17}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\nindex a1e3fedb..ca450a3a 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\n@@ -3075,6 +3075,30 @@ table 1003 \"Job Planning Line\"\n exit(0);\n end;\n \n+ procedure QtyAsmRemainingBaseOnATO(): Decimal\n+ var\n+ AsmHeader: Record \"Assembly Header\";\n+ begin\n+ if AsmToOrderExists(AsmHeader) then\n+ exit(AsmHeader.\"Remaining Quantity (Base)\");\n+ exit(0);\n+ end;\n+\n+ procedure GetATOBin(Location: Record Location; var BinCode: Code[20]): Boolean\n+ var\n+ AsmHeader: Record \"Assembly Header\";\n+ begin\n+ if not Location.\"Require Shipment\" then\n+ BinCode := Location.\"Asm.-to-Order Shpt. Bin Code\";\n+ if BinCode <> '' then\n+ exit(true);\n+\n+ if AsmHeader.GetFromAssemblyBin(Location, BinCode) then\n+ exit(true);\n+\n+ exit(false);\n+ end;\n+\n procedure ShowAsmToJobPlanningLines()\n begin\n ATOLink.ShowAsmToJobPlanningLines(Rec);\ndiff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al b/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al\nindex 320720d7..61b01d44 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al\n@@ -1073,6 +1073,7 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n local procedure CalcRemQtyToPickOrMoveBase(NewWarehouseActivityLine: Record \"Warehouse Activity Line\"; OutstandingQtyBase: Decimal; var RemQtyToPickBase: Decimal)\n var\n ATOSalesLine: Record \"Sales Line\";\n+ ATOJobPlanningLine: Record \"Job Planning Line\";\n MaxQtyToPickBase: Decimal;\n begin\n MaxQtyToPickBase :=\n@@ -1084,6 +1085,9 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n if WMSManagement.GetATOSalesLine(NewWarehouseActivityLine.\"Source Type\", NewWarehouseActivityLine.\"Source Subtype\", NewWarehouseActivityLine.\"Source No.\", NewWarehouseActivityLine.\"Source Line No.\", ATOSalesLine) then\n MaxQtyToPickBase += ATOSalesLine.QtyAsmRemainingBaseOnATO();\n \n+ if WMSManagement.GetATOJobPlanningLine(NewWarehouseActivityLine.\"Source Type\", NewWarehouseActivityLine.\"Source No.\", NewWarehouseActivityLine.\"Source Line No.\", NewWarehouseActivityLine.\"Source Subline No.\", ATOJobPlanningLine) then\n+ MaxQtyToPickBase += ATOJobPlanningLine.QtyAsmRemainingBaseOnATO();\n+\n if RemQtyToPickBase > MaxQtyToPickBase then begin\n RemQtyToPickBase := MaxQtyToPickBase;\n if NewWarehouseActivityLine.\"Shipping Advice\" = NewWarehouseActivityLine.\"Shipping Advice\"::Complete then\n@@ -2096,9 +2100,11 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n case CurrLocation.\"Special Equipment\" of\n CurrLocation.\"Special Equipment\"::\"According to Bin\":\n begin\n- GetBin(CurrLocation.Code, BinCode);\n- if CurrBin.\"Special Equipment Code\" <> '' then\n- exit(CurrBin.\"Special Equipment Code\");\n+ if BinCode <> '' then begin\n+ GetBin(CurrLocation.Code, BinCode);\n+ if CurrBin.\"Special Equipment Code\" <> '' then\n+ exit(CurrBin.\"Special Equipment Code\");\n+ end;\n \n GetItemAndSKU(ItemNo, LocationCode, VariantCode);\n if CurrStockKeepingUnit.\"Special Equipment Code\" <> '' then\n@@ -2115,8 +2121,10 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n if CurrItem.\"Special Equipment Code\" <> '' then\n exit(CurrItem.\"Special Equipment Code\");\n \n- GetBin(CurrLocation.Code, BinCode);\n- exit(CurrBin.\"Special Equipment Code\")\n+ if BinCode <> '' then begin\n+ GetBin(CurrLocation.Code, BinCode);\n+ exit(CurrBin.\"Special Equipment Code\");\n+ end;\n end\n end\n end;\n@@ -2155,6 +2163,7 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n procedure CreateATOPickLine(NewWarehouseActivityLine: Record \"Warehouse Activity Line\"; BinCode: Code[20]; var RemQtyToPickBase: Decimal)\n var\n ATOSalesLine: Record \"Sales Line\";\n+ ATOJobPlanningLine: Record \"Job Planning Line\";\n AssemblyHeader: Record \"Assembly Header\";\n AssemblySetup: Record \"Assembly Setup\";\n ReservationEntry: Record \"Reservation Entry\";\n@@ -2194,6 +2203,37 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n CreateATOInventoryMovementsAutomatically(AssemblyHeader, ATOInvtMovementsCreated, TotalATOInvtMovementsToBeCreated);\n end;\n end;\n+\n+ if (not IsInvtMovement) and\n+ WMSManagement.GetATOJobPlanningLine(NewWarehouseActivityLine.\"Source Type\",\n+ NewWarehouseActivityLine.\"Source No.\",\n+ NewWarehouseActivityLine.\"Source Line No.\",\n+ NewWarehouseActivityLine.\"Source Subline No.\",\n+ ATOJobPlanningLine)\n+ then begin\n+ ATOJobPlanningLine.AsmToOrderExists(AssemblyHeader);\n+ if NewWarehouseActivityLine.TrackingExists() then begin\n+ AssemblyHeader.SetReservationFilters(ReservationEntry);\n+ ReservationEntry.SetTrackingFilterFromWhseActivityLine(NewWarehouseActivityLine);\n+ ReservationEntry.SetRange(Positive, true);\n+ if ItemTrackingManagement.SumUpItemTracking(ReservationEntry, TempTrackingSpecification1, true, true) then\n+ QtyToAsmBase := Abs(TempTrackingSpecification1.\"Qty. to Handle (Base)\");\n+ end else\n+ QtyToAsmBase := ATOJobPlanningLine.QtyToAsmBaseOnATO();\n+ WhseItemTrackingSetup.CopyTrackingFromWhseActivityLine(NewWarehouseActivityLine);\n+ QtyToPickBase := QtyToAsmBase - WMSManagement.CalcQtyBaseOnATOJobInvtPick(ATOJobPlanningLine, WhseItemTrackingSetup);\n+ if QtyToPickBase > 0 then begin\n+ MakeWarehouseActivityHeader();\n+ if CurrLocation.\"Bin Mandatory\" and (BinCode = '') then\n+ ATOJobPlanningLine.GetATOBin(CurrLocation, BinCode);\n+ NewWarehouseActivityLine.\"Assemble to Order\" := true;\n+ MakeWarehouseActivityLine(NewWarehouseActivityLine, BinCode, QtyToPickBase, RemQtyToPickBase);\n+\n+ AssemblySetup.Get();\n+ if AssemblySetup.\"Create Movements Automatically\" then\n+ CreateATOInventoryMovementsAutomatically(AssemblyHeader, ATOInvtMovementsCreated, TotalATOInvtMovementsToBeCreated);\n+ end;\n+ end;\n OnAfterCreateATOPickLine(QtyToPickBase, AssemblyHeader, NewWarehouseActivityLine, CurrWarehouseActivityHeader, RemQtyToPickBase);\n end;\n \ndiff --git a/App/Layers/W1/BaseApp/Warehouse/Journal/WMSManagement.Codeunit.al b/App/Layers/W1/BaseApp/Warehouse/Journal/WMSManagement.Codeunit.al\nindex dda50b4d..d5917188 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Journal/WMSManagement.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Journal/WMSManagement.Codeunit.al\n@@ -1758,6 +1758,27 @@ codeunit 7302 \"WMS Management\"\n until WarehouseActivityLine.Next() = 0;\n end;\n \n+ local procedure SetFiltersOnATOJobInvtPick(JobPlanningLine: Record \"Job Planning Line\"; var WarehouseActivityLine: Record \"Warehouse Activity Line\")\n+ begin\n+ WarehouseActivityLine.SetRange(WarehouseActivityLine.\"Activity Type\", WarehouseActivityLine.\"Activity Type\"::\"Invt. Pick\");\n+ WarehouseActivityLine.SetSourceFilter(\n+ Database::Job, 0, JobPlanningLine.\"Job No.\", JobPlanningLine.\"Job Contract Entry No.\", JobPlanningLine.\"Line No.\", false);\n+ WarehouseActivityLine.SetRange(WarehouseActivityLine.\"Assemble to Order\", true);\n+ WarehouseActivityLine.SetTrackingFilterIfNotEmpty();\n+ end;\n+\n+ procedure CalcQtyBaseOnATOJobInvtPick(JobPlanningLine: Record \"Job Planning Line\"; WhseItemTrackingSetup: Record \"Item Tracking Setup\") QtyBase: Decimal\n+ var\n+ WarehouseActivityLine: Record \"Warehouse Activity Line\";\n+ begin\n+ WarehouseActivityLine.CopyTrackingFromItemTrackingSetup(WhseItemTrackingSetup);\n+ SetFiltersOnATOJobInvtPick(JobPlanningLine, WarehouseActivityLine);\n+ if WarehouseActivityLine.FindSet() then\n+ repeat\n+ QtyBase += WarehouseActivityLine.\"Qty. Outstanding (Base)\";\n+ until WarehouseActivityLine.Next() = 0;\n+ end;\n+\n procedure CheckOutboundBlockedBin(LocationCode: Code[10]; BinCode: Code[20]; ItemNo: Code[20]; VariantCode: Code[10]; UnitOfMeasureCode: Code[10])\n begin\n CheckBlockedBin(LocationCode, BinCode, ItemNo, VariantCode, UnitOfMeasureCode, false);\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136322'\nCodeunit 136322 Jobs - Assemble-to Order\n Testfunction PostInventoryPickForAssemblyItemRelatedToJobPlanningLineWithBin Failure (7.003 seconds)\n Error:\n Status must be equal to 'Released' in Assembly Header: Document Type=Order, No.=A00001. Current value is 'Open'.\n Call Stack:\n \"Assembly Header\"(Table 900).CreateInvtMovement line 11 - Base Application by Microsoft\n \"Create Inventory Pick/Movement\"(CodeUnit 7322).CreateATOInventoryMovementsAutomatically line 11 - Base Application by Microsoft\n \"Create Inventory Pick/Movement\"(CodeUnit 7322).CreateATOPickLine line 71 - Base Application by Microsoft\n \"Create Inventory Pick/Movement\"(CodeUnit 7322).InsertPickOrMoveBinWhseActLine line 15 - Base Application by Microsoft\n \"Create Inventory Pick/Movement\"(CodeUnit 7322).CreatePickOrMoveLine line 153 - Base Application by Microsoft\n \"Create Inventory Pick/Movement\"(CodeUnit 7322).CreatePickOrMoveFromJobPlanning line 48 - Base Application by Microsoft\n \"Create Inventory Pick/Movement\"(CodeUnit 7322).AutoCreatePickOrMove line 30 - Base Application by Microsoft\n \"Create Invt Put-away/Pick/Mvmt\"(Report 7323).\"Warehouse Request - OnAfterGetRecord\"(Trigger) line 49 - Base Application by Microsoft"} +{"InstanceID": "microsoft__BCApps-4766", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 128.174, "tool_calls": 14, "total_tokens": 192200, "TurnCount": 28}, "Project": "Subscription Billing", "ToolUsage": "{\"edit\":2,\"grep\":1,\"powershell\":2,\"report_intent\":2,\"task\":2,\"update_todo\":2,\"view\":3}", "output": "diff --git a/src/Apps/W1/Subscription Billing/App/Customer Contracts/Tables/CustSubContractLine.Table.al b/src/Apps/W1/Subscription Billing/App/Customer Contracts/Tables/CustSubContractLine.Table.al\nindex 91f83b1..6484d4d 100644\n--- a/src/Apps/W1/Subscription Billing/App/Customer Contracts/Tables/CustSubContractLine.Table.al\t\n+++ b/src/Apps/W1/Subscription Billing/App/Customer Contracts/Tables/CustSubContractLine.Table.al\t\n@@ -66,6 +66,7 @@ table 8062 \"Cust. Sub. Contract Line\"\n end;\n end;\n \n+ CheckAndDisconnectContractLine();\n TempCustomerContractLine := Rec;\n Init();\n SystemId := TempCustomerContractLine.SystemId;\ndiff --git a/src/Apps/W1/Subscription Billing/App/Vendor Contracts/Tables/VendSubContractLine.Table.al b/src/Apps/W1/Subscription Billing/App/Vendor Contracts/Tables/VendSubContractLine.Table.al\nindex 533581b..013f5e4 100644\n--- a/src/Apps/W1/Subscription Billing/App/Vendor Contracts/Tables/VendSubContractLine.Table.al\t\n+++ b/src/Apps/W1/Subscription Billing/App/Vendor Contracts/Tables/VendSubContractLine.Table.al\t\n@@ -63,6 +63,7 @@ table 8065 \"Vend. Sub. Contract Line\"\n end;\n end;\n \n+ CheckAndDisconnectContractLine();\n TempVendorContractLine := Rec;\n Init();\n SystemId := TempVendorContractLine.SystemId;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '148155'\nCodeunit 148155 Contracts Test\n Testfunction ContractLineDisconnectServiceOnNoChange Failure (8.58 seconds)\n Error:\n Item with the No. does not exist.\n Call Stack:\n \"Cust. Sub. Contract Line\"(Table 8062).\"No. - OnValidate\"(Trigger) line 10 - Subscription Billing by Microsoft version 27.0.0.0\n \"Contracts Test\"(CodeUnit 148155).ContractLineDisconnectServiceOnNoChange line 24 - Subscription Billing Test by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0\nSetting test codeunit range '148154'\nCodeunit 148154 Vendor Contracts Test\n Testfunction ContractLineDisconnectServiceOnNoChange Failure (1.186 seconds)\n Error:\n Item with the No. does not exist.\n Call Stack:\n \"Vend. Sub. Contract Line\"(Table 8065).\"No. - OnValidate\"(Trigger) line 10 - Subscription Billing by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-208320", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 818.886, "tool_calls": 44, "total_tokens": 919500, "TurnCount": 242}, "Project": "BaseApp", "ToolUsage": "{\"edit\":6,\"grep\":9,\"powershell\":2,\"report_intent\":3,\"task\":9,\"update_todo\":4,\"view\":11}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrder.Page.al b/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrder.Page.al\nindex 1dee700e..c846cf9c 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrder.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrder.Page.al\n@@ -646,6 +646,7 @@ page 507 \"Blanket Sales Order\"\n if Rec.GetFilter(\"Bill-to Customer No.\") = xRec.\"Bill-to Customer No.\" then\n if Rec.\"Bill-to Customer No.\" <> xRec.\"Bill-to Customer No.\" then\n Rec.SetRange(\"Bill-to Customer No.\");\n+ BillToContact.GetOrClear(Rec.\"Bill-to Contact No.\");\n CurrPage.Update();\n end;\n }\ndiff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesCreditMemo.Page.al b/App/Layers/W1/BaseApp/Sales/Document/SalesCreditMemo.Page.al\nindex 84ba27e1..df37669e 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesCreditMemo.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesCreditMemo.Page.al\n@@ -550,6 +550,7 @@ page 44 \"Sales Credit Memo\"\n if Rec.\"Bill-to Customer No.\" <> xRec.\"Bill-to Customer No.\" then\n Rec.SetRange(\"Bill-to Customer No.\");\n \n+ BillToContact.GetOrClear(Rec.\"Bill-to Contact No.\");\n CurrPage.Update();\n end;\n }\ndiff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesInvoice.Page.al b/App/Layers/W1/BaseApp/Sales/Document/SalesInvoice.Page.al\nindex ee0d93e0..6f4998ac 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesInvoice.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesInvoice.Page.al\n@@ -800,6 +800,7 @@ page 43 \"Sales Invoice\"\n if Rec.\"Bill-to Customer No.\" <> xRec.\"Bill-to Customer No.\" then\n Rec.SetRange(\"Bill-to Customer No.\");\n \n+ BillToContact.GetOrClear(Rec.\"Bill-to Contact No.\");\n CurrPage.Update();\n end;\n end;\ndiff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesOrder.Page.al b/App/Layers/W1/BaseApp/Sales/Document/SalesOrder.Page.al\nindex 77cf2b18..52823336 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesOrder.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesOrder.Page.al\n@@ -809,6 +809,7 @@ page 42 \"Sales Order\"\n if Rec.\"Bill-to Customer No.\" <> xRec.\"Bill-to Customer No.\" then\n Rec.SetRange(\"Bill-to Customer No.\");\n \n+ BillToContact.GetOrClear(Rec.\"Bill-to Contact No.\");\n CurrPage.Update();\n end;\n end;\ndiff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesQuote.Page.al b/App/Layers/W1/BaseApp/Sales/Document/SalesQuote.Page.al\nindex 7827a9ec..6f284aa1 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesQuote.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesQuote.Page.al\n@@ -761,6 +761,7 @@ page 41 \"Sales Quote\"\n if Rec.\"Bill-to Customer No.\" <> xRec.\"Bill-to Customer No.\" then\n Rec.SetRange(\"Bill-to Customer No.\");\n \n+ BillToContact.GetOrClear(Rec.\"Bill-to Contact No.\");\n CurrPage.Update();\n end;\n }\ndiff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesReturnOrder.Page.al b/App/Layers/W1/BaseApp/Sales/Document/SalesReturnOrder.Page.al\nindex e9c58725..ed8b2cb2 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesReturnOrder.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesReturnOrder.Page.al\n@@ -611,6 +611,7 @@ page 6630 \"Sales Return Order\"\n if Rec.\"Bill-to Customer No.\" <> xRec.\"Bill-to Customer No.\" then\n Rec.SetRange(\"Bill-to Customer No.\");\n \n+ BillToContact.GetOrClear(Rec.\"Bill-to Contact No.\");\n CurrPage.Update();\n end;\n }\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134386'\nCodeunit 134386 ERM Sales Documents II\n Testfunction UpdateEmailAndPhoneNoWhenChangeBillToOfSalesInvoice Failure (11.236 seconds)\n Error:\n AssertEquals for Field: BillToContactPhoneNo Expected = '333333333', Actual = '111111111'\n Call Stack:\n \"ERM Sales Documents II\"(CodeUnit 134386).UpdateEmailAndPhoneNoWhenChangeBillToOfSalesInvoice line 34 - Tests-ERM by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-209450", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 525.002, "tool_calls": 40, "total_tokens": 452800, "TurnCount": 146}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":4,\"grep\":14,\"report_intent\":3,\"task\":3,\"update_todo\":2,\"view\":13}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\nindex bb5d38d2..c8adc70a 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\n@@ -1075,6 +1075,8 @@ table 1003 \"Job Planning Line\"\n TestField(Type, Type::Item);\n TestField(\"No.\");\n TestField(\"Usage Link\");\n+ if IsNonInventoriableItem() then\n+ Error(NonInvReserveTypeErr, \"No.\", Reserve);\n end;\n CalcFields(\"Reserved Qty. (Base)\");\n if (Reserve = Reserve::Never) and (\"Reserved Qty. (Base)\" > 0) then\n@@ -1525,6 +1527,7 @@ table 1003 \"Job Planning Line\"\n DifferentQtyToAssembleErr: Label ' must be equal to %1.', Comment = 'Qty. to Assemble must be equal to Quantity, %1 = Quantity';\n CannotBeMoreErr: Label 'cannot be more than %1', Comment = '%1 = Quantity';\n ConfirmDeleteQst: Label '%1 = %2 is greater than %3 = %4. If you delete the %5, the items will remain in the operation area until you put them away.\\Any related item tracking information defined during the pick process will be deleted.\\Do you still want to delete the %5?', Comment = '%1 = FieldCaption(\"Qty. Picked\"), %2 = \"Qty. Picked\", %3 = FieldCaption(\"Qty. Posted\"), %4 = \"Qty. Posted\", %5 = TableCaption';\n+ NonInvReserveTypeErr: Label 'Non-inventory and service items must have the reserve type Never. The current reserve type for item %1 is %2.', Comment = '%1 = Item No., %2 = Reserve';\n \n protected var\n Job: Record Job;\n@@ -1668,10 +1671,11 @@ table 1003 \"Job Planning Line\"\n \"Gen. Prod. Posting Group\" := Item.\"Gen. Prod. Posting Group\";\n Validate(\"Unit of Measure Code\", Item.\"Base Unit of Measure\");\n if \"Usage Link\" then\n- if Item.Reserve = Item.Reserve::Optional then\n- Reserve := Job.Reserve\n- else\n- Reserve := Item.Reserve;\n+ if Item.IsInventoriableType() then\n+ if Item.Reserve = Item.Reserve::Optional then\n+ Reserve := Job.Reserve\n+ else\n+ Reserve := Item.Reserve;\n OnAfterCopyFromItem(Rec, Job, Item);\n end;\n \n@@ -2584,11 +2588,14 @@ table 1003 \"Job Planning Line\"\n FieldNo(\"Usage Link\"):\n if (Type = Type::Item) and \"Usage Link\" then begin\n GetItem();\n- if Item.Reserve = Item.Reserve::Optional then begin\n- GetJob();\n- Reserve := Job.Reserve\n- end else\n- Reserve := Item.Reserve;\n+ if Item.IsInventoriableType() then\n+ if Item.Reserve = Item.Reserve::Optional then begin\n+ GetJob();\n+ Reserve := Job.Reserve\n+ end else\n+ Reserve := Item.Reserve\n+ else\n+ Reserve := Reserve::Never;\n end else\n Reserve := Reserve::Never;\n end;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136302'\nCodeunit 136302 Job Consumption Purchase\n Testfunction PurchaseLineNotReservedWhenItemTypeNonInventoryOrService Failure (19.517 seconds)\n Error:\n Non-inventory and service items must have the reserve type Never. The current reserve type for item GL00000001 is Optional.\n Call Stack:\n \"Job Planning Line\"(Table 1003).\"Reserve - OnValidate\"(Trigger) line 7 - Base Application by Microsoft version 26.0.0.0\n \"Job Consumption Purchase\"(CodeUnit 136302).PurchaseLineNotReservedWhenItemTypeNonInventoryOrService line 34 - Tests-Job by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-216918", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 138.418, "tool_calls": 23, "total_tokens": 353500, "TurnCount": 16}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"glob\":1,\"grep\":6,\"report_intent\":2,\"task\":1,\"update_todo\":4,\"view\":7}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\nindex d541dd08..11bb5bb2 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\n@@ -451,6 +451,7 @@ codeunit 1004 \"Job Transfer Line\"\n Job: Record Job;\n JobTask: Record \"Job Task\";\n NonDeductibleVAT: Codeunit \"Non-Deductible VAT\";\n+ NonDeductVATAmtJobCurrency: Decimal;\n begin\n OnBeforeFromGenJnlLineToJnlLine(JobJnlLine, GenJnlLine);\n \n@@ -498,18 +499,25 @@ codeunit 1004 \"Job Transfer Line\"\n JobJnlLine.\"Total Cost (LCY)\" := GenJnlLine.\"Job Total Cost (LCY)\";\n JobJnlLine.\"Total Cost\" := GenJnlLine.\"Job Total Cost\";\n \n- if NonDeductibleVAT.UseNonDeductibleVATAmountForJobCost() then\n+ if NonDeductibleVAT.UseNonDeductibleVATAmountForJobCost() then begin\n+ NonDeductVATAmtJobCurrency :=\n+ CurrencyExchRate.ExchangeAmtLCYToFCY(\n+ JobJnlLine.\"Posting Date\",\n+ JobJnlLine.\"Currency Code\",\n+ GenJnlLine.\"Non-Deductible VAT Amount LCY\",\n+ JobJnlLine.\"Currency Factor\");\n if JobJnlLine.\"Unit Cost\" > 0 then begin\n JobJnlLine.\"Unit Cost (LCY)\" += Abs(Round(GenJnlLine.\"Non-Deductible VAT Amount LCY\" / JobJnlLine.Quantity));\n- JobJnlLine.\"Unit Cost\" += Abs(Round(GenJnlLine.\"Non-Deductible VAT Amount\" / JobJnlLine.Quantity));\n+ JobJnlLine.\"Unit Cost\" += Abs(Round(NonDeductVATAmtJobCurrency / JobJnlLine.Quantity));\n JobJnlLine.\"Total Cost (LCY)\" += Abs(GenJnlLine.\"Non-Deductible VAT Amount LCY\");\n- JobJnlLine.\"Total Cost\" += Abs(GenJnlLine.\"Non-Deductible VAT Amount\");\n+ JobJnlLine.\"Total Cost\" += Abs(NonDeductVATAmtJobCurrency);\n end else begin\n JobJnlLine.\"Unit Cost (LCY)\" += Round(GenJnlLine.\"Non-Deductible VAT Amount LCY\" / JobJnlLine.Quantity);\n- JobJnlLine.\"Unit Cost\" += Round(GenJnlLine.\"Non-Deductible VAT Amount\" / JobJnlLine.Quantity);\n+ JobJnlLine.\"Unit Cost\" += Round(NonDeductVATAmtJobCurrency / JobJnlLine.Quantity);\n JobJnlLine.\"Total Cost (LCY)\" += GenJnlLine.\"Non-Deductible VAT Amount LCY\";\n- JobJnlLine.\"Total Cost\" += GenJnlLine.\"Non-Deductible VAT Amount\";\n+ JobJnlLine.\"Total Cost\" += NonDeductVATAmtJobCurrency;\n end;\n+ end;\n \n JobJnlLine.\"Unit Price (LCY)\" := GenJnlLine.\"Job Unit Price (LCY)\";\n JobJnlLine.\"Unit Price\" := GenJnlLine.\"Job Unit Price\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134284'\nCodeunit 134284 Non Ded. VAT Misc.\n Testfunction JobJnlLineWithNonDeductNormalVATInFCYFromGenJnlLine Failure (3.904 seconds)\n Error:\n Assert.AreEqual failed. Expected:<10.76> (Decimal). Actual:<10.31> (Decimal). Unit Cost (LCY) with Non-Deductible VAT amount is not correct in Job Journal Line.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"Non Ded. VAT Misc.\"(CodeUnit 134284).JobJnlLineWithNonDeductNormalVATInFCYFromGenJnlLine line 32 - Tests-VAT by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoft__BCApps-5633", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 302.587, "tool_calls": 29, "total_tokens": 763200, "TurnCount": 30}, "Project": "Shopify", "ToolUsage": "{\"edit\":1,\"grep\":7,\"report_intent\":3,\"task\":1,\"update_todo\":2,\"view\":15}", "output": "diff --git a/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al b/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al\nindex 1f790f9..a169edb 100644\n--- a/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al\n@@ -220,11 +220,32 @@ codeunit 30190 \"Shpfy Export Shipments\"\n FulfillmentOrderLine.SetRange(\"Delivery Method Type\", OrderLine.\"Delivery Method Type\");\n FulfillmentOrderLine.SetFilter(\"Remaining Quantity\", '>=%1', Round(SalesShipmentLine.Quantity, 1, '='));\n FulfillmentOrderLine.SetFilter(\"Fulfillment Status\", '<>%1', 'CLOSED');\n- if FulfillmentOrderLine.FindFirst() then\n- exit(true);\n+ if FulfillmentOrderLine.FindSet() then\n+ repeat\n+ if not IsThirdPartyFulfillmentOrder(FulfillmentOrderLine.\"Shopify Fulfillment Order Id\") then\n+ exit(true);\n+ until FulfillmentOrderLine.Next() = 0;\n end;\n end;\n \n+ local procedure IsThirdPartyFulfillmentOrder(FulfillmentOrderId: BigInteger): Boolean\n+ var\n+ FulfillmentOrderHeader: Record \"Shpfy FulFillment Order Header\";\n+ ShopLocation: Record \"Shpfy Shop Location\";\n+ SyncShopLocations: Codeunit \"Shpfy Sync Shop Locations\";\n+ begin\n+ if not FulfillmentOrderHeader.Get(FulfillmentOrderId) then\n+ exit(false);\n+\n+ if not ShopLocation.Get(FulfillmentOrderHeader.\"Shop Code\", FulfillmentOrderHeader.\"Shopify Location Id\") then\n+ exit(false);\n+\n+ if not ShopLocation.\"Is Fulfillment Service\" then\n+ exit(false);\n+\n+ exit(ShopLocation.Name <> SyncShopLocations.GetFulfillmentServiceName());\n+ end;\n+\n local procedure GetNotifyCustomer(Shop: Record \"Shpfy Shop\"; SalesShipmmentHeader: Record \"Sales Shipment Header\"; LocationId: BigInteger): Boolean\n var\n IsHandled: Boolean;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139606'\nCodeunit 139606 Shpfy Shipping Test\n Testfunction UnitTestExportShipmentThirdParty Failure (5.076 seconds)\n Error:\n Assert.AreEqual failed. Expected:<0> (Integer). Actual:<1> (Integer). FulfillmentRequest count check.\n Call Stack:\n \"Library Assert\"(CodeUnit 130002).AreEqual line 3 - Library Assert by Microsoft version 27.2.0.0\n \"Shpfy Shipping Test\"(CodeUnit 139606).UnitTestExportShipmentThirdParty line 26 - Shopify Connector Test by Microsoft version 27.2.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.2.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.2.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.2.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.2.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.2.0.0"} +{"InstanceID": "microsoftInternal__NAV-181900", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 309.858, "tool_calls": 48, "total_tokens": 1311700, "TurnCount": 45}, "Project": "BaseApp", "ToolUsage": "{\"edit\":3,\"glob\":2,\"grep\":14,\"powershell\":1,\"report_intent\":3,\"task\":1,\"update_todo\":3,\"view\":21}", "output": "diff --git a/App/Layers/W1/BaseApp/OtherCapabilities/Approvals/ApprovalsMgmt.Codeunit.al b/App/Layers/W1/BaseApp/OtherCapabilities/Approvals/ApprovalsMgmt.Codeunit.al\nindex 266d61e5..106177c2 100644\n--- a/App/Layers/W1/BaseApp/OtherCapabilities/Approvals/ApprovalsMgmt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/OtherCapabilities/Approvals/ApprovalsMgmt.Codeunit.al\n@@ -2504,6 +2504,8 @@ codeunit 1535 \"Approvals Mgmt.\"\n if ApprovalStatusName = 'Open' then\n exit(CopyStr(PendingApprovalLbl, 1, 20));\n if ApprovalStatusName = 'Approved' then begin\n+ if HasOpenOrPendingApprovalEntries(GenJournalBatch.RecordId) then\n+ exit(CopyStr(PendingApprovalLbl, 1, 20));\n RestrictedRecord.SetRange(Details, RestrictBatchUsageDetailsLbl);\n if not RestrictedRecord.IsEmpty() then begin\n RestrictedRecord.Reset();\n@@ -2533,6 +2535,8 @@ codeunit 1535 \"Approvals Mgmt.\"\n if ApprovalStatusName = 'Open' then\n exit(CopyStr(PendingApprovalLbl, 1, 20));\n if ApprovalStatusName = 'Approved' then begin\n+ if HasOpenOrPendingApprovalEntries(GenJournalLine.RecordId) then\n+ exit(CopyStr(PendingApprovalLbl, 1, 20));\n RestrictedRecord.SetRange(\"Record ID\", GenJournalLine.RecordId);\n if not RestrictedRecord.IsEmpty() then\n exit(CopyStr(ImposedRestrictionLbl, 1, 20));\n@@ -2566,11 +2570,13 @@ codeunit 1535 \"Approvals Mgmt.\"\n if GenJournalBatch.Get(GenJournalLine.\"Journal Template Name\", GenJournalLine.\"Journal Batch Name\") then\n if IsGeneralJournalBatchApprovalsWorkflowEnabled(GenJournalBatch) then\n if FindApprovalEntryByRecordId(ApprovalEntry, GenJournalBatch.RecordId) and (ApprovalEntry.Status = ApprovalEntry.Status::Approved) then\n- GenJnlBatchApprovalStatus := CopyStr(ImposedRestrictionLbl, 1, 20);\n+ if not HasOpenOrPendingApprovalEntries(GenJournalBatch.RecordId) then\n+ GenJnlBatchApprovalStatus := CopyStr(ImposedRestrictionLbl, 1, 20);\n \n if IsGeneralJournalLineApprovalsWorkflowEnabled(GenJournalLine) then\n if FindApprovalEntryByRecordId(ApprovalEntry, GenJournalLine.RecordId) and (ApprovalEntry.Status = ApprovalEntry.Status::Approved) then\n- GenJnlLineApprovalStatus := CopyStr(ImposedRestrictionLbl, 1, 20);\n+ if not HasOpenOrPendingApprovalEntries(GenJournalLine.RecordId) then\n+ GenJnlLineApprovalStatus := CopyStr(ImposedRestrictionLbl, 1, 20);\n end;\n \n local procedure FindOpenApprovalEntryForSequenceNo(RecRef: RecordRef; WorkflowStepInstance: Record \"Workflow Step Instance\"; SequenceNo: Integer): Boolean\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134321'\nCodeunit 134321 General Journal Batch Approval\n Testfunction ShowImposedRestrictionBatchStatusForWorkflowUserGroupIfFirstApprovalEntryIsApproved Failure (6.77 seconds)\n Error:\n Assert.AreEqual failed. Expected: (Text). Actual: (Text). Imposed restriction is not shown.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"General Journal Batch Approval\"(CodeUnit 134321).ShowImposedRestrictionBatchStatusForWorkflowUserGroupIfFirstApprovalEntryIsApproved line 30 - Tests-General Journal by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"InstanceID": "microsoftInternal__NAV-218856", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 291.368, "tool_calls": 16, "total_tokens": 225200, "TurnCount": 68}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":1,\"report_intent\":2,\"task\":2,\"update_todo\":2,\"view\":7}", "output": "diff --git a/App/Layers/W1/BaseApp/Service/Contract/ServiceContractHeader.Table.al b/App/Layers/W1/BaseApp/Service/Contract/ServiceContractHeader.Table.al\nindex 4f315c8f..721296d1 100644\n--- a/App/Layers/W1/BaseApp/Service/Contract/ServiceContractHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Service/Contract/ServiceContractHeader.Table.al\n@@ -2240,6 +2240,7 @@ table 5965 \"Service Contract Header\"\n ContBusinessRelation: Record \"Contact Business Relation\";\n Cust: Record Customer;\n Cont: Record Contact;\n+ ContactBusinessRelationFound: Boolean;\n IsHandled: Boolean;\n begin\n IsHandled := false;\n@@ -2265,7 +2266,11 @@ table 5965 \"Service Contract Header\"\n exit;\n end;\n \n- if ContBusinessRelation.FindByContact(ContBusinessRelation.\"Link to Table\"::Customer, Cont.\"Company No.\") then begin\n+ if Cont.Type = Cont.Type::Person then\n+ ContactBusinessRelationFound := ContBusinessRelation.FindByContact(ContBusinessRelation.\"Link to Table\"::Customer, Cont.\"No.\");\n+ if not ContactBusinessRelationFound then\n+ ContactBusinessRelationFound := ContBusinessRelation.FindByContact(ContBusinessRelation.\"Link to Table\"::Customer, Cont.\"Company No.\");\n+ if ContactBusinessRelationFound then begin\n if (\"Customer No.\" <> '') and\n (\"Customer No.\" <> ContBusinessRelation.\"No.\")\n then\n@@ -2289,6 +2294,7 @@ table 5965 \"Service Contract Header\"\n ContBusinessRelation: Record \"Contact Business Relation\";\n Cust: Record Customer;\n Cont: Record Contact;\n+ ContactBusinessRelationFound: Boolean;\n begin\n if Cont.Get(ContactNo) then begin\n \"Bill-to Contact No.\" := Cont.\"No.\";\n@@ -2305,7 +2311,11 @@ table 5965 \"Service Contract Header\"\n end;\n \n OnUpdateBillToCustOnBeforeContBusinessRelationFindByContact(Rec, Cust, Cont);\n- if ContBusinessRelation.FindByContact(ContBusinessRelation.\"Link to Table\"::Customer, Cont.\"Company No.\") then begin\n+ if Cont.Type = Cont.Type::Person then\n+ ContactBusinessRelationFound := ContBusinessRelation.FindByContact(ContBusinessRelation.\"Link to Table\"::Customer, Cont.\"No.\");\n+ if not ContactBusinessRelationFound then\n+ ContactBusinessRelationFound := ContBusinessRelation.FindByContact(ContBusinessRelation.\"Link to Table\"::Customer, Cont.\"Company No.\");\n+ if ContactBusinessRelationFound then begin\n if \"Bill-to Customer No.\" = '' then begin\n SkipBillToContact := true;\n Validate(\"Bill-to Customer No.\", ContBusinessRelation.\"No.\");\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136102'\nCodeunit 136102 Service Contracts\n Testfunction ChangeCustomerOfTypePeronInServiceContract Failure (5.937 seconds)\n Error:\n Contact CT000024 CT000024 is related to a different company than customer C00010.\n Call Stack:\n \"Service Contract Header\"(Table 5965).\"Bill-to Contact No. - OnValidate\"(Trigger) line 21 - Base Application by Microsoft version 27.0.0.0\n \"Service Contract Header\"(Table 5965).UpdateCust line 51 - Base Application by Microsoft version 27.0.0.0\n ServContractManagement(CodeUnit 5940).ChangeCustNoOnServContract line 46 - Base Application by Microsoft version 27.0.0.0\n \"Service Contracts\"(CodeUnit 136102).ChangeCustomerOfTypePeronInServiceContract line 34 - Tests-SCM-Service by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-176194", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 742.156, "tool_calls": 44, "total_tokens": 1422300, "TurnCount": 139}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":13,\"powershell\":1,\"report_intent\":2,\"task\":3,\"update_todo\":3,\"view\":20}", "output": "diff --git a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\nindex 6dfc7efe..54891f2b 100644\n--- a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n@@ -3195,6 +3195,18 @@ codeunit 6620 \"Copy Document Mgt.\"\n if TempSalesLineBuf.Type = TempSalesLineBuf.Type::\"Charge (Item)\" then begin\n FromSalesLine.TransferFields(FromSalesInvLine);\n FromSalesLine.\"Document Type\" := FromSalesLine.\"Document Type\"::Invoice;\n+ if ToSalesLine.\"Qty. to Invoice\" = 0 then begin\n+ if ToSalesLine.IsCreditDocType() then begin\n+ ToSalesLine.\"Return Qty. to Receive\" := ToSalesLine.Quantity;\n+ ToSalesLine.\"Return Qty. to Receive (Base)\" := ToSalesLine.\"Quantity (Base)\";\n+ end else begin\n+ ToSalesLine.\"Qty. to Ship\" := ToSalesLine.Quantity;\n+ ToSalesLine.\"Qty. to Ship (Base)\" := ToSalesLine.\"Quantity (Base)\";\n+ end;\n+ ToSalesLine.\"Qty. to Invoice\" := ToSalesLine.Quantity;\n+ ToSalesLine.\"Qty. to Invoice (Base)\" := ToSalesLine.\"Quantity (Base)\";\n+ ToSalesLine.Modify();\n+ end;\n CopyFromSalesLineItemChargeAssign(FromSalesLine, ToSalesLine, FromSalesHeader, ItemChargeAssgntNextLineNo);\n end;\n \n@@ -3357,6 +3369,18 @@ codeunit 6620 \"Copy Document Mgt.\"\n if FromSalesLineBuf.Type = FromSalesLineBuf.Type::\"Charge (Item)\" then begin\n FromSalesLine.TransferFields(FromSalesCrMemoLine);\n FromSalesLine.\"Document Type\" := FromSalesLine.\"Document Type\"::\"Credit Memo\";\n+ if ToSalesLine.\"Qty. to Invoice\" = 0 then begin\n+ if ToSalesLine.IsCreditDocType() then begin\n+ ToSalesLine.\"Return Qty. to Receive\" := ToSalesLine.Quantity;\n+ ToSalesLine.\"Return Qty. to Receive (Base)\" := ToSalesLine.\"Quantity (Base)\";\n+ end else begin\n+ ToSalesLine.\"Qty. to Ship\" := ToSalesLine.Quantity;\n+ ToSalesLine.\"Qty. to Ship (Base)\" := ToSalesLine.\"Quantity (Base)\";\n+ end;\n+ ToSalesLine.\"Qty. to Invoice\" := ToSalesLine.Quantity;\n+ ToSalesLine.\"Qty. to Invoice (Base)\" := ToSalesLine.\"Quantity (Base)\";\n+ ToSalesLine.Modify();\n+ end;\n CopyFromSalesLineItemChargeAssign(FromSalesLine, ToSalesLine, FromSalesHeader, ItemChargeAssgntNextLineNo);\n end;\n // copy item tracking\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134329'\nCodeunit 134329 ERM Purchase Return Order\n Testfunction GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToReceiveIsBlankInPurchPayablesSetup Failure (11.047 seconds)\n Error:\n Qty. to Invoice must have a value in Purchase Line: Document Type=Return Order, Document No.=1001, Line No.=20000. It cannot be zero or empty.\n Call Stack:\n \"Item Charge Assignment (Purch)\"(Table 5805).\"Qty. to Assign - OnValidate\"(Trigger) line 4 - Base Application by Microsoft\n \"Item Charge Assgnt. (Purch.)\"(CodeUnit 5805).InsertItemChargeAssignmentWithValuesTo line 20 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyFromPurchLineItemChargeAssign line 47 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyPurchInvLinesToDoc line 144 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyPurchaseLinesToDoc line 15 - Base Application by Microsoft\n \"Posted Purchase Document Lines\"(Page 5855).CopyLineToDoc line 23 - Base Application by Microsoft\n \"Purchase Header\"(Table 38).GetPstdDocLinesToReverse line 9 - Base Application by Microsoft\n \"Purchase Return Order\"(Page 6640).\"GetPostedDocumentLinesToReverse - OnAction\"(Trigger) line 2 - Base Application by Microsoft\nSetting test codeunit range '134387'\nCodeunit 134387 ERM Sales Documents III\n Testfunction GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToShipIsBlankInSalesReceiSetup Failure (3.94 seconds)\n Error:\n Assert.AreEqual failed. Expected:<0> (Integer). Actual:<25> (Decimal). Return Qty. to Receive must be zero..\n Call Stack:"} +{"InstanceID": "microsoftInternal__NAV-216057", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 438.224, "tool_calls": 46, "total_tokens": 1710000, "TurnCount": 93}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":1,\"glob\":2,\"grep\":13,\"powershell\":1,\"report_intent\":2,\"store_memory\":1,\"task\":2,\"update_todo\":4,\"view\":19}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al\nindex 052f4eb6..06e7138b 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al\n@@ -627,7 +627,8 @@ table 99000853 \"Inventory Profile\"\n repeat\n InsertTracking := not\n ((ReservationEntry.\"Reservation Status\" = ReservationEntry.\"Reservation Status\"::Reservation) and\n- (ReservationEntry.Binding = ReservationEntry.Binding::\" \"));\n+ (ReservationEntry.Binding = ReservationEntry.Binding::\" \")) and\n+ (ReservationEntry.\"Reservation Status\" <> ReservationEntry.\"Reservation Status\"::Surplus);\n if InsertTracking and ReservationEntry.TrackingExists() and\n (ReservationEntry.\"Source Type\" <> Database::\"Item Ledger Entry\")\n then begin\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137045'\nCodeunit 137045 SCM Bugfixes\n Testfunction NoDuplicateSurplusReservationEntriesOnRecalculateRequisitionWorksheet Failure (15.456 seconds)\n Error:\n Assert.RecordCount failed. Expected number of Reservation Entry entries: 2. Actual: 3. Filters: Source Type: 39, Source ID: 106009. Records: 2, Yes, GL00000000, , 50, Prospect, , 06/03/26, 0, 39, 1, 106009, , 0, 10000, 0, 06/03/26, , , ADMIN, , 1, 50, , No, Unlimited, 0, , , 50, 50, 0, , , No, GL00000003, , 0, No, , Lot No., No, , , 0, ; 3, Yes, GL00000000, , 100, Tracking, , 02/09/26, 0, 39, 1, 106009, , 0, 10000, 0, 06/03/26, 06/03/26, , ADMIN, , 1, 100, , No, Unlimited, 0, , , 100, 100, 0, , , No, GL00000003, , 0, No, , Lot No., No, , , 0, ; 4, Yes, GL00000000, , 50, Surplus, , 02/09/26, 0, 39, 1, 106009, , 0, 10000, 0, 06/03/26, , , ADMIN, , 1, 50, , Yes, Unlimited, 0, , , 50, 50, 0, , , No, GL00000003, , 0, No, , Lot No., No, , , 0, ; \n Call Stack:\n Assert(CodeUnit 130000).RecordCount line 18 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"SCM Bugfixes\"(CodeUnit 137045).AssertReservationEntryCount line 6 - Tests-SCM by Microsoft version 27.0.0.0\n \"SCM Bugfixes\"(CodeUnit 137045).NoDuplicateSurplusReservationEntriesOnRecalculateRequisitionWorksheet line 51 - Tests-SCM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-220036", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 192.927, "tool_calls": 31, "total_tokens": 601500, "TurnCount": 39}, "Project": "BaseApp", "ToolUsage": "{\"edit\":4,\"glob\":1,\"grep\":8,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":12}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/IssuedReminder.Page.al b/App/Layers/W1/BaseApp/Sales/Reminder/IssuedReminder.Page.al\nindex c15cb6cf..9aa285e8 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/IssuedReminder.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/IssuedReminder.Page.al\n@@ -435,6 +435,9 @@ page 438 \"Issued Reminder\"\n Customer: Record Customer;\n begin\n Customer.GetPrimaryContact(Rec.\"Customer No.\", PrimaryContact);\n+ if PrimaryContact.\"E-Mail\" = '' then\n+ if Customer.Get(Rec.\"Customer No.\") then\n+ PrimaryContact.\"E-Mail\" := Customer.\"E-Mail\";\n end;\n \n var\ndiff --git a/App/Layers/W1/BaseApp/Sales/Reminder/Reminder.Page.al b/App/Layers/W1/BaseApp/Sales/Reminder/Reminder.Page.al\nindex 8810e93d..bd90972e 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/Reminder.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/Reminder.Page.al\n@@ -51,6 +51,7 @@ page 434 Reminder\n trigger OnValidate()\n begin\n ContactCustomer.GetPrimaryContact(Rec.\"Customer No.\", PrimaryContact);\n+ UpdateContactEmail();\n end;\n }\n field(Name; Rec.Name)\n@@ -544,6 +545,7 @@ page 434 Reminder\n trigger OnAfterGetRecord()\n begin\n ContactCustomer.GetPrimaryContact(Rec.\"Customer No.\", PrimaryContact);\n+ UpdateContactEmail();\n end;\n \n var\n@@ -563,5 +565,14 @@ page 434 Reminder\n begin\n DocNoVisible := DocumentNoVisibility.SalesDocumentNoIsVisible(DocType::Reminder, Rec.\"No.\");\n end;\n+\n+ local procedure UpdateContactEmail()\n+ var\n+ Customer: Record Customer;\n+ begin\n+ if PrimaryContact.\"E-Mail\" = '' then\n+ if Customer.Get(Rec.\"Customer No.\") then\n+ PrimaryContact.\"E-Mail\" := Customer.\"E-Mail\";\n+ end;\n }\n \n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134905'\nCodeunit 134905 ERM Issued Reminder Addnl Fee\n Testfunction VerifyEmailOnReminderPageWhenCustomerHasNoContacts Success (16.986 seconds)\n\u001b[32m[17:11:57] Tests passed for Codeunit 134905\u001b[0m\nSetting test codeunit range '134825'\nCodeunit 134825 UT Customer Table\n Testfunction GetPrimaryConactCustomerWithoutContact Failure (1.863 seconds)\n Error:\n Assert.IsTrue failed. Contact No. should not be empty\n Call Stack:\n Assert(CodeUnit 130000).IsTrue line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"UT Customer Table\"(CodeUnit 134825).GetPrimaryConactCustomerWithoutContact line 15 - Tests-Misc by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-218323", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 310.751, "tool_calls": 69, "total_tokens": 2615400, "TurnCount": 50}, "Project": "BaseApp", "ToolUsage": "{\"edit\":11,\"grep\":14,\"powershell\":2,\"report_intent\":2,\"task\":1,\"update_todo\":4,\"view\":35}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al b/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al\nindex 88068be0..417a78e6 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al\n@@ -17,6 +17,7 @@ using Microsoft.Finance.VAT.Setup;\n using Microsoft.Foundation.Address;\n using Microsoft.Foundation.AuditCodes;\n using Microsoft.Foundation.Enums;\n+using Microsoft.Foundation.NoSeries;\n using System.Utilities;\n \n report 20 \"Calc. and Post VAT Settlement\"\n@@ -307,6 +308,8 @@ report 20 \"Calc. and Post VAT Settlement\"\n Clear(GenJnlLine);\n GenJnlLine.\"System-Created Entry\" := true;\n GenJnlLine.\"Account Type\" := GenJnlLine.\"Account Type\"::\"G/L Account\";\n+ GenJnlLine.\"Journal Template Name\" := GenJnlBatch.\"Journal Template Name\";\n+ GenJnlLine.\"Journal Batch Name\" := GenJnlBatch.Name;\n case VATType of\n VATEntry.Type::Purchase:\n GenJnlLine.Description :=\n@@ -516,6 +519,8 @@ report 20 \"Calc. and Post VAT Settlement\"\n GenJnlLine.Init();\n GenJnlLine.\"System-Created Entry\" := true;\n GenJnlLine.\"Account Type\" := GenJnlLine.\"Account Type\"::\"G/L Account\";\n+ GenJnlLine.\"Journal Template Name\" := GenJnlBatch.\"Journal Template Name\";\n+ GenJnlLine.\"Journal Batch Name\" := GenJnlBatch.Name;\n \n GLAccSettle.TestField(\"Gen. Posting Type\", GenJnlLine.\"Gen. Posting Type\"::\" \");\n GLAccSettle.TestField(\"VAT Bus. Posting Group\", '');\n@@ -613,6 +618,45 @@ report 20 \"Calc. and Post VAT Settlement\"\n ApplicationArea = Basic, Suite;\n Caption = 'Document No.';\n ToolTip = 'Specifies a document number. This field must be filled in.';\n+ Visible = not IsJournalTemplNameVisible;\n+ }\n+ field(JnlTemplateName; GenJnlLineReq.\"Journal Template Name\")\n+ {\n+ ApplicationArea = Basic, Suite;\n+ Caption = 'Journal Template Name';\n+ TableRelation = \"Gen. Journal Template\";\n+ ToolTip = 'Specifies the name of the journal template that is used for the posting.';\n+ Visible = IsJournalTemplNameVisible;\n+\n+ trigger OnValidate()\n+ begin\n+ GenJnlLineReq.\"Journal Batch Name\" := '';\n+ end;\n+ }\n+ field(JnlBatchName; GenJnlLineReq.\"Journal Batch Name\")\n+ {\n+ ApplicationArea = Basic, Suite;\n+ Caption = 'Journal Batch Name';\n+ Lookup = true;\n+ ToolTip = 'Specifies the name of the journal batch that is used for the posting.';\n+ Visible = IsJournalTemplNameVisible;\n+\n+ trigger OnLookup(var Text: Text): Boolean\n+ var\n+ GenJnlManagement: Codeunit GenJnlManagement;\n+ begin\n+ GenJnlManagement.SetJnlBatchName(GenJnlLineReq);\n+ if GenJnlLineReq.\"Journal Batch Name\" <> '' then\n+ GenJnlBatch.Get(GenJnlLineReq.\"Journal Template Name\", GenJnlLineReq.\"Journal Batch Name\");\n+ end;\n+\n+ trigger OnValidate()\n+ begin\n+ if GenJnlLineReq.\"Journal Batch Name\" <> '' then begin\n+ GenJnlLineReq.TestField(\"Journal Template Name\");\n+ GenJnlBatch.Get(GenJnlLineReq.\"Journal Template Name\", GenJnlLineReq.\"Journal Batch Name\");\n+ end;\n+ end;\n }\n field(SettlementAcc; GLAccSettle.\"No.\")\n {\n@@ -676,6 +720,12 @@ report 20 \"Calc. and Post VAT Settlement\"\n actions\n {\n }\n+\n+ trigger OnOpenPage()\n+ begin\n+ GLSetup.Get();\n+ IsJournalTemplNameVisible := GLSetup.\"Journal Templ. Name Mandatory\";\n+ end;\n }\n \n labels\n@@ -692,6 +742,7 @@ report 20 \"Calc. and Post VAT Settlement\"\n trigger OnPreReport()\n var\n ConfirmManagement: Codeunit \"Confirm Management\";\n+ NoSeries: Codeunit \"No. Series\";\n begin\n OnBeforePreReport(\"VAT Posting Setup\", PostSettlement, GLAccSettle, DocNo);\n \n@@ -704,8 +755,19 @@ report 20 \"Calc. and Post VAT Settlement\"\n else\n VATDate := PostingDate;\n \n- if DocNo = '' then\n- Error(Text001);\n+ GLSetup.Get();\n+ if GLSetup.\"Journal Templ. Name Mandatory\" then begin\n+ if GenJnlLineReq.\"Journal Template Name\" = '' then\n+ Error(Text001Err, GenJnlLineReq.FieldCaption(\"Journal Template Name\"));\n+ if GenJnlLineReq.\"Journal Batch Name\" = '' then\n+ Error(Text001Err, GenJnlLineReq.FieldCaption(\"Journal Batch Name\"));\n+ Clear(DocNo);\n+ GenJnlBatch.Get(GenJnlLineReq.\"Journal Template Name\", GenJnlLineReq.\"Journal Batch Name\");\n+ GenJnlBatch.TestField(\"No. Series\");\n+ DocNo := NoSeries.GetNextNo(GenJnlBatch.\"No. Series\", PostingDate);\n+ end else\n+ if DocNo = '' then\n+ Error(Text001);\n if GLAccSettle.\"No.\" = '' then\n Error(Text002);\n GLAccSettle.Find();\n@@ -732,6 +794,8 @@ report 20 \"Calc. and Post VAT Settlement\"\n SourceCodeSetup: Record \"Source Code Setup\";\n GenJnlLine: Record \"Gen. Journal Line\";\n GenJnlLine2: Record \"Gen. Journal Line\";\n+ GenJnlLineReq: Record \"Gen. Journal Line\";\n+ GenJnlBatch: Record \"Gen. Journal Batch\";\n GLEntry: Record \"G/L Entry\";\n VATEntry: Record \"VAT Entry\";\n TaxJurisdiction: Record \"Tax Jurisdiction\";\n@@ -755,6 +819,7 @@ report 20 \"Calc. and Post VAT Settlement\"\n HeaderText: Text[30];\n CountryRegionFilter: Text;\n IsVATDateEnabled: Boolean;\n+ IsJournalTemplNameVisible: Boolean;\n #pragma warning disable AA0074\n Text000: Label 'Enter the posting date.';\n Text001: Label 'Enter the document no.';\n@@ -773,6 +838,7 @@ report 20 \"Calc. and Post VAT Settlement\"\n #pragma warning restore AA0470\n #pragma warning restore AA0074\n EnterVATDateLbl: Label 'Enter the VAT Date';\n+ Text001Err: Label '%1 must be entered.', Comment = '%1 = field caption';\n CalcandPostVATSettlementCaptionLbl: Label 'Calc. and Post VAT Settlement';\n PageCaptionLbl: Label 'Page';\n TestReportnotpostedCaptionLbl: Label 'Test Report (Not Posted)';\n@@ -820,6 +886,13 @@ report 20 \"Calc. and Post VAT Settlement\"\n UseAmtsInAddCurr := NewUseAmtsInAddCurr;\n end;\n \n+ procedure SetGenJnlBatch(NewGenJnlBatch: Record \"Gen. Journal Batch\")\n+ begin\n+ GenJnlBatch := NewGenJnlBatch;\n+ GenJnlLineReq.\"Journal Template Name\" := GenJnlBatch.\"Journal Template Name\";\n+ GenJnlLineReq.\"Journal Batch Name\" := GenJnlBatch.Name;\n+ end;\n+\n local procedure CreateVATDateFilter()\n begin\n if EnteredEndDate = 0D then\n@@ -880,6 +953,8 @@ report 20 \"Calc. and Post VAT Settlement\"\n Clear(GenJnlLine2);\n GenJnlLine2.\"System-Created Entry\" := true;\n GenJnlLine2.\"Account Type\" := GenJnlLine2.\"Account Type\"::\"G/L Account\";\n+ GenJnlLine2.\"Journal Template Name\" := GenJnlBatch.\"Journal Template Name\";\n+ GenJnlLine2.\"Journal Batch Name\" := GenJnlBatch.Name;\n GenJnlLine2.Description := GenJnlLine.Description;\n GenJnlLine2.\"Posting Date\" := PostingDate;\n GenJnlLine2.\"VAT Reporting Date\" := VATDate;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134992'\nCodeunit 134992 ERM Financial Reports IV\n Testfunction PostVATSettlementWhenJournalTemplateNameMandatoryIsEnabled Failure (10.444 seconds)\n Error:\n Journal Template Name must be entered.\n Call Stack:\n \"Calc. and Post VAT Settlement\"(Report 20).OnPreReport(Trigger) line 19 - Base Application by Microsoft version 27.0.0.0\n \"ERM Financial Reports IV\"(CodeUnit 134992).SaveCalcAndPostVATSettlementReport line 12 - Tests-ERM by Microsoft version 27.0.0.0\n \"ERM Financial Reports IV\"(CodeUnit 134992).PostVATSettlementWhenJournalTemplateNameMandatoryIsEnabled line 35 - Tests-ERM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-220452", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 444.404, "tool_calls": 16, "total_tokens": 342900, "TurnCount": 73}, "Project": "Shopify", "ToolUsage": "{\"edit\":2,\"grep\":1,\"report_intent\":3,\"task\":3,\"update_todo\":3,\"view\":4}", "output": "diff --git a/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al b/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al\nindex 62d92a55..61837373 100644\n--- a/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al\n+++ b/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al\n@@ -213,6 +213,9 @@ report 30118 \"Shpfy Suggest Payments\"\n SalesCreditMemoHeader: Record \"Sales Cr.Memo Header\";\n CustLedgerEntry: Record \"Cust. Ledger Entry\";\n RefundHeader: Record \"Shpfy Refund Header\";\n+ SalesShipmentHeader: Record \"Sales Shipment Header\";\n+ SalesInvoiceLine: Record \"Sales Invoice Line\";\n+ ProcessedInvoiceNos: List of [Code[20]];\n AmountToApply: Decimal;\n Applied: Boolean;\n begin\n@@ -242,6 +245,43 @@ report 30118 \"Shpfy Suggest Payments\"\n if Applied and (AmountToApply > 0) then\n CreateSuggestPaymentGLAccount(AmountToApply, true);\n end;\n+\n+ if not Applied then begin\n+ SalesShipmentHeader.SetLoadFields(\"No.\");\n+ SalesShipmentHeader.SetRange(\"Shpfy Order Id\", OrderTransaction.\"Shopify Order Id\");\n+ if SalesShipmentHeader.FindSet() then begin\n+ repeat\n+ SalesInvoiceLine.SetLoadFields(\"Document No.\");\n+ SalesInvoiceLine.SetRange(\"Shipment No.\", SalesShipmentHeader.\"No.\");\n+ if SalesInvoiceLine.FindSet() then\n+ repeat\n+ if not ProcessedInvoiceNos.Contains(SalesInvoiceLine.\"Document No.\") then begin\n+ ProcessedInvoiceNos.Add(SalesInvoiceLine.\"Document No.\");\n+ SalesInvoiceHeader.Reset();\n+ SalesInvoiceHeader.SetLoadFields(\"No.\");\n+ SalesInvoiceHeader.SetRange(\"No.\", SalesInvoiceLine.\"Document No.\");\n+ SalesInvoiceHeader.SetRange(Closed, false);\n+ if SalesInvoiceHeader.FindFirst() then begin\n+ CustLedgerEntry.SetAutoCalcFields(\"Remaining Amount\");\n+ CustLedgerEntry.SetRange(\"Open\", true);\n+ CustLedgerEntry.SetRange(\"Applies-to ID\", '');\n+ CustLedgerEntry.SetRange(\"Document Type\", CustLedgerEntry.\"Document Type\"::Invoice);\n+ CustLedgerEntry.SetRange(\"Document No.\", SalesInvoiceHeader.\"No.\");\n+ if CustLedgerEntry.FindSet() then begin\n+ Applied := true;\n+ repeat\n+ CreateSuggestPaymentDocument(CustLedgerEntry, AmountToApply, true);\n+ until CustLedgerEntry.Next() = 0;\n+ end;\n+ end;\n+ end;\n+ until SalesInvoiceLine.Next() = 0;\n+ until SalesShipmentHeader.Next() = 0;\n+\n+ if Applied and (AmountToApply > 0) then\n+ CreateSuggestPaymentGLAccount(AmountToApply, true);\n+ end;\n+ end;\n end;\n OrderTransaction.Type::Refund:\n begin\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139648'\nCodeunit 139648 Shpfy Suggest Payment Test\n Testfunction UnitTestSuggestShopifyPaymentsDocumentLink Failure (16.523 seconds)\n Error:\n The Shopify Suggest Payment table is empty.\n Call Stack:\n \"Shpfy Suggest Payment Test\"(CodeUnit 139648).UnitTestSuggestShopifyPaymentsDocumentLink line 47 - Shopify Connector Test by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-204450", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 422.332, "tool_calls": 28, "total_tokens": 598700, "TurnCount": 109}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":13,\"report_intent\":2,\"store_memory\":1,\"task\":3,\"update_todo\":2,\"view\":5}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\nindex 6bb15d7d..e070ad49 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n@@ -602,6 +602,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n \n TotalPurchaseLine.\"Non-Deductible VAT Base\" += PurchaseLine.\"Non-Deductible VAT Base\";\n TotalPurchaseLine.\"Non-Deductible VAT Amount\" += PurchaseLine.\"Non-Deductible VAT Amount\";\n+ TotalPurchaseLine.\"Non-Deductible VAT Diff.\" += PurchaseLine.\"Non-Deductible VAT Diff.\";\n end;\n \n procedure Increment(var TotalInvoicePostingBuffer: Record \"Invoice Posting Buffer\"; InvoicePostingBuffer: Record \"Invoice Posting Buffer\")\n@@ -697,6 +698,12 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n PurchaseHeader.GetUseDate(), PurchaseHeader.\"Currency Code\",\n TotalPurchaseLine.\"Non-Deductible VAT Amount\", PurchaseHeader.\"Currency Factor\")) -\n TotalPurchaseLineLCY.\"Non-Deductible VAT Amount\";\n+ PurchaseLine.\"Non-Deductible VAT Diff.\" :=\n+ Round(\n+ CurrExchRate.ExchangeAmtFCYToLCY(\n+ PurchaseHeader.GetUseDate(), PurchaseHeader.\"Currency Code\",\n+ TotalPurchaseLine.\"Non-Deductible VAT Diff.\", PurchaseHeader.\"Currency Factor\")) -\n+ TotalPurchaseLineLCY.\"Non-Deductible VAT Diff.\";\n end;\n \n procedure ClearNonDeductibleVAT(var PurchaseLine: Record \"Purchase Line\")\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134287'\nCodeunit 134287 Non-Deductible VAT Statistics\n Testfunction PurchaseInvoiceInCurrencyIsPostedWhenChangeVATAmountOnStatisticIfNDVATPctIs100 Failure (13.254 seconds)\n Error:\n The transaction cannot be completed because it will cause inconsistencies in the G/L Entry table. Check where and how the CONSISTENT function is used in the transaction to find the reason for the error.\\\\Contact your system administrator.\\\\Tables can be marked as inconsistent during comprehensive tasks, such as posting. This prevents data from being updated incorrectly.\n Call Stack:\n \"Purch.-Post\"(CodeUnit 90).FinalizePosting line 79 - Base Application by Microsoft\n \"Purch.-Post\"(CodeUnit 90).RunWithCheck line 142 - Base Application by Microsoft\n \"Purch.-Post\"(CodeUnit 90).OnRun(Trigger) line 2 - Base Application by Microsoft\n \"Library - Purchase\"(CodeUnit 130512).PostPurchaseDocument line 56 - Tests-TestLibraries by Microsoft\n \"Non-Deductible VAT Statistics\"(CodeUnit 134287).PurchaseInvoiceInCurrencyIsPostedWhenChangeVATAmountOnStatisticIfNDVATPctIs100 line 46 - Tests-VAT by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"InstanceID": "microsoftInternal__NAV-227153", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 230.672, "tool_calls": 31, "total_tokens": 484700, "TurnCount": 32}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":12,\"powershell\":1,\"report_intent\":2,\"task\":3,\"update_todo\":2,\"view\":10}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\nindex e033f91e..0e39228f 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\n@@ -472,132 +472,66 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n \n local procedure CalcCustAccAmount(PostingGr: Code[20]): Decimal\n var\n- Cust: Record Customer;\n DtldCustLedgEntry: Record \"Detailed Cust. Ledg. Entry\";\n- CustAccAmount: Decimal;\n begin\n- Cust.SetCurrentKey(\"Customer Posting Group\");\n- Cust.SetRange(\"Customer Posting Group\", PostingGr);\n-\n- if Cust.Find('-') then\n- repeat\n- DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\");\n- DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n- DtldCustLedgEntry.CalcSums(\"Amount (LCY)\");\n- CustAccAmount := CustAccAmount + DtldCustLedgEntry.\"Amount (LCY)\";\n- until Cust.Next() = 0;\n-\n- exit(CustAccAmount);\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n+ DtldCustLedgEntry.CalcSums(\"Amount (LCY)\");\n+ exit(DtldCustLedgEntry.\"Amount (LCY)\");\n end;\n \n local procedure CalcCustCreditAmount(PostingGr: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n var\n- Cust: Record Customer;\n DtldCustLedgEntry: Record \"Detailed Cust. Ledg. Entry\";\n- CustCreditAmount: Decimal;\n begin\n- Cust.SetCurrentKey(\"Customer Posting Group\");\n- Cust.SetRange(\"Customer Posting Group\", PostingGr);\n-\n- if Cust.Find('-') then\n- repeat\n- DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\", \"Entry Type\");\n- DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n- DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n- DtldCustLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n- CustCreditAmount := CustCreditAmount + DtldCustLedgEntry.\"Credit Amount (LCY)\";\n- until Cust.Next() = 0;\n-\n- exit(CustCreditAmount);\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n+ DtldCustLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n+ exit(DtldCustLedgEntry.\"Credit Amount (LCY)\");\n end;\n \n local procedure CalcCustDebitAmount(PostingGr: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n var\n- Cust: Record Customer;\n DtldCustLedgEntry: Record \"Detailed Cust. Ledg. Entry\";\n- CustDebitAmount: Decimal;\n begin\n- Cust.SetCurrentKey(\"Customer Posting Group\");\n- Cust.SetRange(\"Customer Posting Group\", PostingGr);\n-\n- if Cust.Find('-') then\n- repeat\n- DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\", \"Entry Type\");\n- DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n- DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n- DtldCustLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n- CustDebitAmount := CustDebitAmount + DtldCustLedgEntry.\"Debit Amount (LCY)\";\n- until Cust.Next() = 0;\n-\n- exit(-CustDebitAmount);\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n+ DtldCustLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n+ exit(-DtldCustLedgEntry.\"Debit Amount (LCY)\");\n end;\n \n local procedure CalcVendAccAmount(PostingGr: Code[20]): Decimal\n var\n- Vend: Record Vendor;\n DtldVendLedgEntry: Record \"Detailed Vendor Ledg. Entry\";\n- VendAccAmount: Decimal;\n begin\n- Vend.SetCurrentKey(\"Vendor Posting Group\");\n- Vend.SetRange(\"Vendor Posting Group\", PostingGr);\n-\n- if Vend.Find('-') then\n- repeat\n- DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\");\n- DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n- DtldVendLedgEntry.CalcSums(\"Amount (LCY)\");\n- VendAccAmount := VendAccAmount + DtldVendLedgEntry.\"Amount (LCY)\";\n- until Vend.Next() = 0;\n-\n- exit(VendAccAmount);\n+ DtldVendLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n+ DtldVendLedgEntry.CalcSums(\"Amount (LCY)\");\n+ exit(DtldVendLedgEntry.\"Amount (LCY)\");\n end;\n \n local procedure CalcVendCreditAmount(PostingGr: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n var\n- Vend: Record Vendor;\n DtldVendLedgEntry: Record \"Detailed Vendor Ledg. Entry\";\n- VendCreditAmount: Decimal;\n begin\n- Vend.SetCurrentKey(\"Vendor Posting Group\");\n- Vend.SetRange(\"Vendor Posting Group\", PostingGr);\n-\n- if Vend.Find('-') then\n- repeat\n- DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\", \"Entry Type\");\n- DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n- DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n- DtldVendLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n- VendCreditAmount := VendCreditAmount + DtldVendLedgEntry.\"Credit Amount (LCY)\";\n- until Vend.Next() = 0;\n-\n- exit(VendCreditAmount);\n+ DtldVendLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n+ DtldVendLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n+ exit(DtldVendLedgEntry.\"Credit Amount (LCY)\");\n end;\n \n local procedure CalcVendDebitAmount(PostingGr: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n var\n- Vend: Record Vendor;\n DtldVendLedgEntry: Record \"Detailed Vendor Ledg. Entry\";\n- VendDebitAmount: Decimal;\n begin\n- Vend.SetCurrentKey(\"Vendor Posting Group\");\n- Vend.SetRange(\"Vendor Posting Group\", PostingGr);\n-\n- if Vend.Find('-') then\n- repeat\n- DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\", \"Entry Type\");\n- DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n- DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n- DtldVendLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n- VendDebitAmount := VendDebitAmount + DtldVendLedgEntry.\"Debit Amount (LCY)\";\n- until Vend.Next() = 0;\n-\n- exit(-VendDebitAmount);\n+ DtldVendLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n+ DtldVendLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n+ exit(-DtldVendLedgEntry.\"Debit Amount (LCY)\");\n end;\n \n local procedure CalcCurrGainLossAmount(CurrencyCode: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-177493", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 294.799, "tool_calls": 29, "total_tokens": 507600, "TurnCount": 32}, "Project": "BaseApp", "ToolUsage": "{\"edit\":6,\"glob\":4,\"grep\":7,\"powershell\":1,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":6}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\nindex bb47904d..19d02d0c 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n@@ -58,6 +58,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if Item.Get(\"No.\") and (Item.Reserve = Item.Reserve::Never) then\n+ CurrReport.Skip();\n+\n if not CheckIfSalesLineMeetsReservedFromStockSetting(Abs(\"Outstanding Qty. (Base)\"), ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -107,6 +110,9 @@ report 302 \"Get Demand To Reserve\"\n var\n Item: Record Item;\n begin\n+ if Item.Get(\"Item No.\") and (Item.Reserve = Item.Reserve::Never) then\n+ CurrReport.Skip();\n+\n if not CheckIfTransferLineMeetsReservedFromStockSetting(\"Outstanding Qty. (Base)\", ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -158,6 +164,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if Item.Get(\"No.\") and (Item.Reserve = Item.Reserve::Never) then\n+ CurrReport.Skip();\n+\n if not CheckIfServiceLineMeetsReservedFromStockSetting(Abs(\"Outstanding Qty. (Base)\"), ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -208,6 +217,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if Item.Get(\"No.\") and (Item.Reserve = Item.Reserve::Never) then\n+ CurrReport.Skip();\n+\n if not CheckIfJobPlngLineMeetsReservedFromStockSetting(\"Remaining Qty. (Base)\", ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -259,6 +271,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if Item.Get(\"No.\") and (Item.Reserve = Item.Reserve::Never) then\n+ CurrReport.Skip();\n+\n if not CheckIfAssemblyLineMeetsReservedFromStockSetting(\"Remaining Quantity (Base)\", ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -309,6 +324,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if Item.Get(\"Item No.\") and (Item.Reserve = Item.Reserve::Never) then\n+ CurrReport.Skip();\n+\n if not CheckIfProdOrderCompMeetsReservedFromStockSetting(\"Remaining Qty. (Base)\", ReservedFromStock)\n then\n CurrReport.Skip();\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-174794", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 234.686, "tool_calls": 25, "total_tokens": 439600, "TurnCount": 61}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":7,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":11}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\nindex b941d50c..147e4a67 100644\n--- a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n@@ -288,6 +288,7 @@ codeunit 395 \"FinChrgMemo-Issue\"\n TempGenJnlLine.Validate(Amount, TotalAmount);\n TempGenJnlLine.Validate(\"Amount (LCY)\", TotalAmountLCY);\n TempGenJnlLine.\"Due Date\" := FinChrgMemoHeader.\"Due Date\";\n+ TempGenJnlLine.\"Posting Group\" := FinChrgMemoHeader.\"Customer Posting Group\";\n end;\n TempGenJnlLine.Description := FinChrgMemoHeader.\"Posting Description\";\n TempGenJnlLine.\"Source Type\" := TempGenJnlLine.\"Source Type\"::Customer;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-223202", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 259.23, "tool_calls": 25, "total_tokens": 758000, "TurnCount": 23}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":4,\"grep\":6,\"powershell\":1,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":7}", "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al\nindex 84769ae0..3ee54330 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al\n@@ -257,6 +257,7 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ExpSubDirCostRtng: Decimal;\n ExpCapOvhdCostRtng: Decimal;\n ExpOvhdCost: Decimal;\n+ ExpMatCostLine: Decimal;\n begin\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\");\n ProdOrderComp.SetRange(Status, ProdOrderLine.Status);\n@@ -268,8 +269,9 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n #endif\n if ProdOrderComp.Find('-') then\n repeat\n- ExpMatCost := ExpMatCost + ProdOrderComp.\"Cost Amount\";\n+ ExpMatCostLine := ExpMatCostLine + ProdOrderComp.\"Cost Amount\";\n until ProdOrderComp.Next() = 0;\n+ ExpMatCost := ExpMatCost + ExpMatCostLine;\n \n ProdOrderRtngLine.SetRange(Status, ProdOrderLine.Status);\n ProdOrderRtngLine.SetRange(\"Prod. Order No.\", ProdOrderLine.\"Prod. Order No.\");\n@@ -304,7 +306,7 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ExpCapDirCost := ExpCapDirCost + Round(ExpCapDirCostRtng * ShareOfTotalCapCost);\n ExpSubDirCost := ExpSubDirCost + Round(ExpSubDirCostRtng * ShareOfTotalCapCost);\n ExpCapOvhdCost := ExpCapOvhdCost + Round(ExpCapOvhdCostRtng * ShareOfTotalCapCost);\n- ExpMfgDirCost := ExpMatCost + ExpCapDirCost + ExpSubDirCost + ExpCapOvhdCost;\n+ ExpMfgDirCost := ExpMatCostLine + Round(ExpCapDirCostRtng * ShareOfTotalCapCost) + Round(ExpSubDirCostRtng * ShareOfTotalCapCost) + Round(ExpCapOvhdCostRtng * ShareOfTotalCapCost);\n ExpOvhdCost := ExpMfgOvhdCost + ProdOrderLine.\"Overhead Rate\" * ProdOrderLine.\"Quantity (Base)\";\n ExpMfgOvhdCost := ExpOvhdCost +\n Round(CostCalculationMgt.CalcOvhdCost(ExpMfgDirCost, ProdOrderLine.\"Indirect Cost %\", 0, 0));\n@@ -327,6 +329,8 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ExpSubDirCostRtng: Decimal;\n ExpCapOvhdCostRtng: Decimal;\n ExpOvhdCost: Decimal;\n+ ExpMatCostLine: Decimal;\n+ ExpNonInvMatCostLine: Decimal;\n begin\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\");\n ProdOrderComp.SetRange(Status, ProdOrderLine.Status);\n@@ -336,10 +340,12 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n repeat\n Item.Get(ProdOrderComp.\"Item No.\");\n if Item.IsNonInventoriableType() then\n- ExpNonInvMatCost += ProdOrderComp.\"Cost Amount\"\n+ ExpNonInvMatCostLine += ProdOrderComp.\"Cost Amount\"\n else\n- ExpMatCost := ExpMatCost + ProdOrderComp.\"Cost Amount\";\n+ ExpMatCostLine := ExpMatCostLine + ProdOrderComp.\"Cost Amount\";\n until ProdOrderComp.Next() = 0;\n+ ExpMatCost := ExpMatCost + ExpMatCostLine;\n+ ExpNonInvMatCost := ExpNonInvMatCost + ExpNonInvMatCostLine;\n \n ProdOrderRtngLine.SetRange(Status, ProdOrderLine.Status);\n ProdOrderRtngLine.SetRange(\"Prod. Order No.\", ProdOrderLine.\"Prod. Order No.\");\n@@ -366,7 +372,7 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ExpCapDirCost := ExpCapDirCost + Round(ExpCapDirCostRtng * ShareOfTotalCapCost);\n ExpSubDirCost := ExpSubDirCost + Round(ExpSubDirCostRtng * ShareOfTotalCapCost);\n ExpCapOvhdCost := ExpCapOvhdCost + Round(ExpCapOvhdCostRtng * ShareOfTotalCapCost);\n- ExpMfgDirCost := ExpMatCost + ExpNonInvMatCost + ExpCapDirCost + ExpSubDirCost + ExpCapOvhdCost;\n+ ExpMfgDirCost := ExpMatCostLine + ExpNonInvMatCostLine + Round(ExpCapDirCostRtng * ShareOfTotalCapCost) + Round(ExpSubDirCostRtng * ShareOfTotalCapCost) + Round(ExpCapOvhdCostRtng * ShareOfTotalCapCost);\n ExpOvhdCost := ExpMfgOvhdCost + ProdOrderLine.\"Overhead Rate\" * ProdOrderLine.\"Quantity (Base)\";\n ExpMfgOvhdCost := ExpOvhdCost +\n Round(CostCalculationMgt.CalcOvhdCost(ExpMfgDirCost, ProdOrderLine.\"Indirect Cost %\", 0, 0));\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-209496", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 151.24099999999999, "tool_calls": 23, "total_tokens": 384700, "TurnCount": 16}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":6,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":9}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\nindex 10d284cc..768dec3d 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\n@@ -132,8 +132,10 @@ page 835 \"Reminder Level Communication\"\n LocalLanguage.FindFirst();\n \n // Necessary when the user has deleted all languages or has not created any language yet\n- if IsNullGuid(Rec.\"Reminder Attachment Text\") then\n+ if IsNullGuid(Rec.\"Reminder Attachment Text\") then begin\n ReminderCommunication.SetDefaultContentForNewLanguage(CreateGuid(), LocalLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Level\", Rec.SystemId);\n+ Rec.Get(Rec.\"Reminder Terms Code\", Rec.\"No.\");\n+ end;\n \n SelectedNewLanguage := true;\n SelectLanguageAndText(LocalLanguage.Code, true);\ndiff --git a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al\nindex 5cce8ad7..2e1faef8 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al\n@@ -125,8 +125,10 @@ page 1897 \"Reminder Term Communication\"\n LocalLanguage.FindFirst();\n \n // Necessary when the user has deleted all languages or has not created any language yet\n- if IsNullGuid(Rec.\"Reminder Attachment Text\") then\n+ if IsNullGuid(Rec.\"Reminder Attachment Text\") then begin\n ReminderCommunication.SetDefaultContentForNewLanguage(CreateGuid(), LocalLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Term\", Rec.SystemId);\n+ Rec.Get(Rec.Code);\n+ end;\n \n SelectedNewLanguage := true;\n SelectLanguageAndText(LocalLanguage.Code, true);\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-193853", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 293.028, "tool_calls": 39, "total_tokens": 1109500, "TurnCount": 66}, "Project": "EnforcedDigitalVouchers", "ToolUsage": "{\"edit\":2,\"grep\":10,\"powershell\":1,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":20}", "output": "diff --git a/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al b/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\nindex 72dc980e..a6bcbf29 100644\n--- a/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\n+++ b/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\n@@ -301,6 +301,19 @@ codeunit 5579 \"Digital Voucher Impl.\"\n ConnectedGenJnlLine := CurrGenJnlLine;\n end;\n \n+ local procedure SetIncomingDocFromRelatedGenJnlLine(var GenJournalLine: Record \"Gen. Journal Line\")\n+ var\n+ RelatedGenJournalLine: Record \"Gen. Journal Line\";\n+ begin\n+ RelatedGenJournalLine.SetRange(\"Journal Template Name\", GenJournalLine.\"Journal Template Name\");\n+ RelatedGenJournalLine.SetRange(\"Journal Batch Name\", GenJournalLine.\"Journal Batch Name\");\n+ RelatedGenJournalLine.SetRange(\"Posting Date\", GenJournalLine.\"Posting Date\");\n+ RelatedGenJournalLine.SetRange(\"Document No.\", GenJournalLine.\"Document No.\");\n+ RelatedGenJournalLine.SetFilter(\"Incoming Document Entry No.\", '<>%1', 0);\n+ if RelatedGenJournalLine.FindFirst() then\n+ GenJournalLine.\"Incoming Document Entry No.\" := RelatedGenJournalLine.\"Incoming Document Entry No.\";\n+ end;\n+\n local procedure CopyDigitalVoucherToCorrectiveDocument(DigitalVoucherEntryType: Enum \"Digital Voucher Entry Type\"; RecordVar: Variant; DocNo: Code[20]; PostingDate: Date): Integer\n var\n DigitalVoucherEntrySetup: Record \"Digital Voucher Entry Setup\";\n@@ -473,6 +486,7 @@ codeunit 5579 \"Digital Voucher Impl.\"\n local procedure OnAfterCheckGenJnlLine(var GenJournalLine: Record \"Gen. Journal Line\"; var ErrorMessageMgt: Codeunit \"Error Message Management\")\n var\n DigitalVoucherEntrySetup: Record \"Digital Voucher Entry Setup\";\n+ GenJournalLineToCheck: Record \"Gen. Journal Line\";\n begin\n if not DigitalVoucherFeature.IsFeatureEnabled() then\n exit;\n@@ -482,7 +496,10 @@ codeunit 5579 \"Digital Voucher Impl.\"\n exit;\n if not GetDigitalVoucherEntrySetup(DigitalVoucherEntrySetup, DigitalVoucherEntry.GetVoucherEntryTypeFromGenJnlLine(GenJournalLine)) then\n exit;\n- HandleDigitalVoucherForEntryTypeAndDoc(ErrorMessageMgt, DigitalVoucherEntrySetup, GenJournalLine);\n+ GenJournalLineToCheck := GenJournalLine;\n+ if GenJournalLineToCheck.\"Incoming Document Entry No.\" = 0 then\n+ SetIncomingDocFromRelatedGenJnlLine(GenJournalLineToCheck);\n+ HandleDigitalVoucherForEntryTypeAndDoc(ErrorMessageMgt, DigitalVoucherEntrySetup, GenJournalLineToCheck);\n end;\n \n [EventSubscriber(ObjectType::Codeunit, Codeunit::\"Sales-Post\", 'OnAfterFinalizePostingOnBeforeCommit', '', true, true)]\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-213524", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 76.324, "tool_calls": 16, "total_tokens": 236700, "TurnCount": 10}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":7,\"report_intent\":2,\"update_todo\":2,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/Intercompany/ICNavigation.Codeunit.al b/App/Layers/W1/BaseApp/Finance/Intercompany/ICNavigation.Codeunit.al\nindex 92bf43b1..b6bbbe0a 100644\n--- a/App/Layers/W1/BaseApp/Finance/Intercompany/ICNavigation.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/Intercompany/ICNavigation.Codeunit.al\n@@ -111,6 +111,18 @@ codeunit 437 \"IC Navigation\"\n exit(NavigateToSalesInvoice(DocumentNo, ICPartnerCode));\n end;\n \n+ local procedure NavigateToSalesCreditMemo(DocumentNo: Code[20]): Boolean\n+ var\n+ SalesCrMemoHeader: Record \"Sales Cr.Memo Header\";\n+ PostedSalesCreditMemo: Page \"Posted Sales Credit Memo\";\n+ begin\n+ if not SalesCrMemoHeader.Get(DocumentNo) then\n+ exit(false);\n+ PostedSalesCreditMemo.SetRecord(SalesCrMemoHeader);\n+ PostedSalesCreditMemo.Run();\n+ exit(true);\n+ end;\n+\n local procedure NavigateToSalesDocument(DocumentNo: Code[20]; ICDirectionType: Enum \"IC Direction Type\"; ICPartnerCode: Code[20]; DocumentType: Enum \"IC Transaction Document Type\"): Boolean\n var\n ShouldNavigateToDoc: Boolean;\n@@ -120,6 +132,8 @@ codeunit 437 \"IC Navigation\"\n exit(NavigateToSalesOrderDocument(DocumentNo, ICDirectionType, ICPartnerCode));\n DocumentType::Invoice:\n exit(NavigateToSalesInvoice(DocumentNo));\n+ DocumentType::\"Credit Memo\":\n+ exit(NavigateToSalesCreditMemo(DocumentNo));\n else begin\n ShouldNavigateToDoc := false;\n OnNavigateToSalesDocumentOnAfterCheckDocumentType(DocumentNo, ICDirectionType, ICPartnerCode, DocumentType, ShouldNavigateToDoc);\n@@ -223,6 +237,28 @@ codeunit 437 \"IC Navigation\"\n exit(NavigateToPurchaseInvoice(DocumentNo, ICPartnerCode));\n end;\n \n+ local procedure NavigateToPostedPurchaseCreditMemo(DocumentNo: Code[20]; ICPartnerCode: Code[20]): Boolean\n+ var\n+ Vendor: Record Vendor;\n+ PurchCrMemoHdr: Record \"Purch. Cr. Memo Hdr.\";\n+ PostedPurchaseCreditMemo: Page \"Posted Purchase Credit Memo\";\n+ begin\n+ Vendor.SetRange(\"IC Partner Code\", ICPartnerCode);\n+ if not Vendor.FindSet() then\n+ exit(false);\n+ repeat\n+ PurchCrMemoHdr.Reset();\n+ PurchCrMemoHdr.SetRange(\"Buy-from Vendor No.\", Vendor.\"No.\");\n+ PurchCrMemoHdr.SetRange(\"Vendor Cr. Memo No.\", DocumentNo);\n+ if PurchCrMemoHdr.FindFirst() then begin\n+ PostedPurchaseCreditMemo.SetRecord(PurchCrMemoHdr);\n+ PostedPurchaseCreditMemo.Run();\n+ exit(true);\n+ end;\n+ until Vendor.Next() = 0;\n+ exit(false);\n+ end;\n+\n local procedure NavigateToPurchaseDocument(DocumentNo: Code[20]; ICDirectionType: Enum \"IC Direction Type\"; ICPartnerCode: Code[20]; DocumentType: Enum \"IC Transaction Document Type\"): Boolean\n var\n OpenDoc: Boolean;\n@@ -232,6 +268,8 @@ codeunit 437 \"IC Navigation\"\n exit(NavigateToPurchaseOrderDocument(DocumentNo, ICDirectionType, ICPartnerCode));\n DocumentType::Invoice:\n exit(NavigateToPurchaseInvoiceDocument(DocumentNo, ICPartnerCode));\n+ DocumentType::\"Credit Memo\":\n+ exit(NavigateToPostedPurchaseCreditMemo(DocumentNo, ICPartnerCode));\n else begin\n OnNavigateToPurchaseDocumentOnDocumentTypeCaseElse(DocumentNo, ICDirectionType, ICPartnerCode, DocumentType, OpenDoc);\n exit(OpenDoc);\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-174087", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 240.809, "tool_calls": 17, "total_tokens": 223000, "TurnCount": 70}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":2,\"report_intent\":2,\"task\":2,\"update_todo\":2,\"view\":7}", "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al b/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\nindex ff43f4ff..89558fc9 100644\n--- a/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\n+++ b/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\n@@ -362,6 +362,11 @@ page 5077 \"Create Interaction\"\n Enabled = IsMainInfoSet;\n Importance = Additional;\n ToolTip = 'Specifies the evaluation of the interaction involving the contact in the segment.';\n+\n+ trigger OnValidate()\n+ begin\n+ InteractionLogEntry.Evaluation := Rec.Evaluation;\n+ end;\n }\n field(ShowMoreLess4; GetShowMoreLessLbl(ShowLessStep4))\n {\n@@ -694,6 +699,7 @@ page 5077 \"Create Interaction\"\n end;\n Step::\"Step 4\":\n begin\n+ InteractionLogEntry.Evaluation := Rec.Evaluation;\n InteractionLogEntry.Modify();\n CurrPage.Close();\n end;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-212355", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 222.602, "tool_calls": 17, "total_tokens": 289200, "TurnCount": 41}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":2,\"report_intent\":2,\"task\":2,\"update_todo\":4,\"view\":6}", "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Routing/CalculateRoutingLine.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Routing/CalculateRoutingLine.Codeunit.al\nindex c46c8c20..4d40b8b6 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Routing/CalculateRoutingLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Routing/CalculateRoutingLine.Codeunit.al\n@@ -1309,7 +1309,7 @@ codeunit 99000774 \"Calculate Routing Line\"\n end;\n \n MaxLotSize :=\n- ExpectedOperOutput *\n+ ProdOrderQty *\n (1 + ProdOrderRoutingLine.\"Scrap Factor % (Accumulated)\") *\n (1 + TotalScrap / 100) +\n ProdOrderRoutingLine.\"Fixed Scrap Qty. (Accum.)\";\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-218786", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 334.89300000000003, "tool_calls": 9, "total_tokens": 118500, "TurnCount": 91}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"report_intent\":2,\"task\":2,\"update_todo\":2,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al\nindex 0b806569..e597092b 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al\n@@ -3128,7 +3128,7 @@ table 5767 \"Warehouse Activity Line\"\n WhseActivityLine.SetLoadFields(\"Activity Type\", \"No.\", \"Line No.\", \"Item No.\", \"Variant Code\", \"Location Code\", \"Action Type\", Quantity, \"Lot No.\", \"Serial No.\", \"Source No.\", \"Source Line No.\", \"Source Document\");\n WhseActivityLine.SetRange(\"Activity Type\", FromWhseActivityLine.\"Activity Type\");\n WhseActivityLine.SetRange(\"No.\", FromWhseActivityLine.\"No.\");\n- WhseActivityLine.SetFilter(\"Line No.\", '<>%1', FromWhseActivityLine.\"Line No.\");\n+ WhseActivityLine.SetFilter(\"Line No.\", '>%1', FromWhseActivityLine.\"Line No.\");\n WhseActivityLine.SetRange(\"Item No.\", FromWhseActivityLine.\"Item No.\");\n WhseActivityLine.SetRange(\"Variant Code\", FromWhseActivityLine.\"Variant Code\");\n WhseActivityLine.SetRange(\"Location Code\", FromWhseActivityLine.\"Location Code\");\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-213671", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 67.384, "tool_calls": 9, "total_tokens": 162400, "TurnCount": 7}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":1,\"grep\":2,\"report_intent\":2,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al b/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\nindex c70c6c1e..81667180 100644\n--- a/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\n+++ b/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\n@@ -630,7 +630,7 @@ page 5123 \"Opportunity List\"\n if Filter <> '' then begin\n RecRef.GetTable(RecVar);\n IndexFieldRef := RecRef.Field(IndexFieldNo);\n- IndexFieldRef.SetRange(Filter);\n+ IndexFieldRef.SetFilter(Filter);\n if RecRef.FindFirst() then begin\n TextFieldRef := RecRef.Field(TextFieldNo);\n CaptionText := CopyStr(Format(IndexFieldRef.Value) + ' ' + Format(TextFieldRef.Value), 1, MaxStrLen(CaptionText));\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-213629", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 33, "tool_calls": 8, "total_tokens": 105200, "TurnCount": 5}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":4,\"report_intent\":2,\"view\":1}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al\nindex 162d6cc5..544c740a 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al\n@@ -192,6 +192,7 @@ codeunit 1006 \"Copy Job\"\n TargetJobPlanningLine.\"Completely Picked\" := false;\n TargetJobPlanningLine.\"Ledger Entry No.\" := 0;\n TargetJobPlanningLine.\"Ledger Entry Type\" := TargetJobPlanningLine.\"Ledger Entry Type\"::\" \";\n+ TargetJobPlanningLine.\"System-Created Entry\" := false;\n OnCopyJobPlanningLinesOnBeforeTargetJobPlanningLineInsert(TargetJobPlanningLine, SourceJobPlanningLine);\n TargetJobPlanningLine.Insert(true);\n OnCopyJobPlanningLinesOnAfterTargetJobPlanningLineInsert(TargetJobPlanningLine, SourceJobPlanningLine);\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-213683", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 263.01, "tool_calls": 23, "total_tokens": 367000, "TurnCount": 20}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":7,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":8}", "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al\nindex 9735e4b2..246b6a64 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al\n@@ -172,8 +172,6 @@ codeunit 99000795 \"Mfg. Item Integration\"\n RequisitionLine: Record \"Requisition Line\";\n TransferLine: Record \"Transfer Line\";\n ItemJournalLine: Record \"Item Journal Line\";\n- ValueEntry: Record \"Value Entry\";\n- ItemLedgerEntry: Record \"Item Ledger Entry\";\n ProdOrderLine: Record \"Prod. Order Line\";\n begin\n if xRec.\"Item No.\" <> Rec.\"Item No.\" then begin\n@@ -229,16 +227,6 @@ codeunit 99000795 \"Mfg. Item Integration\"\n ItemJournalLine.SetRange(\"Variant Code\", xRec.Code);\n if not ItemJournalLine.IsEmpty() then\n Error(CannotRenameItemErr, Rec.FieldCaption(\"Item No.\"), Rec.TableCaption(), ItemJournalLine.TableCaption());\n-\n- ItemLedgerEntry.SetRange(\"Item No.\", xRec.\"Item No.\");\n- ItemLedgerEntry.SetRange(\"Variant Code\", xRec.Code);\n- if not ItemLedgerEntry.IsEmpty() then\n- Error(CannotRenameItemErr, Rec.FieldCaption(\"Item No.\"), Rec.TableCaption(), ItemLedgerEntry.TableCaption());\n-\n- ValueEntry.SetRange(\"Item No.\", xRec.\"Item No.\");\n- ValueEntry.SetRange(\"Variant Code\", xRec.Code);\n- if not ValueEntry.IsEmpty() then\n- Error(CannotRenameItemErr, Rec.FieldCaption(\"Item No.\"), Rec.TableCaption(), ValueEntry.TableCaption());\n end;\n end;\n \n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-203923", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 631.471, "tool_calls": 34, "total_tokens": 566700, "TurnCount": 34}, "Project": "BaseApp", "ToolUsage": "{\"edit\":5,\"grep\":11,\"powershell\":1,\"report_intent\":3,\"task\":1,\"update_todo\":3,\"view\":10}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\nindex 6bb15d7d..9c9227b8 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n@@ -93,7 +93,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetNonDeductibleVATPct(NonDeductibleVATPct, VATPostingSetup, GeneralPostingType, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (VATPostingSetup.\"VAT Calculation Type\" in [VATPostingSetup.\"VAT Calculation Type\"::\"Normal VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (VATPostingSetup.\"VAT Calculation Type\" in [VATPostingSetup.\"VAT Calculation Type\"::\"Normal VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Reverse Charge VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if (VATPostingSetup.\"Allow Non-Deductible VAT\" = VATPostingSetup.\"Allow Non-Deductible VAT\"::\"Do not allow\") or (GeneralPostingType <> GeneralPostingType::Purchase) then\n exit(0);\n@@ -786,7 +786,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeCalcNonDedAmountsInGenJnlLine(GenJournalLine, Currency, IsHandled);\n if IsHandled then\n exit;\n- if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit;\n if not VATPostingSetup.Get(GenJournalLine.\"VAT Bus. Posting Group\", GenJournalLine.\"VAT Prod. Posting Group\") then\n exit;\n@@ -826,7 +826,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeCalcBalNonDedAmountsInGenJnlLine(GenJournalLine, Currency, IsHandled);\n if IsHandled then\n exit;\n- if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Full VAT\"]) then\n exit;\n if not VATPostingSetup.Get(GenJournalLine.\"Bal. VAT Bus. Posting Group\", GenJournalLine.\"Bal. VAT Prod. Posting Group\") then\n exit;\n@@ -1210,7 +1210,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetNonDedVATPctForGenJnlLine(NonDeductibleVATPct, GenJournalLine, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if not VATPostingSetup.Get(GenJournalLine.\"VAT Bus. Posting Group\", GenJournalLine.\"VAT Prod. Posting Group\") then\n exit(0);\n@@ -1227,7 +1227,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetBalNonDedVATPctForGenJnlLine(NonDeductibleVATPct, GenJournalLine, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if not VATPostingSetup.Get(GenJournalLine.\"Bal. VAT Bus. Posting Group\", GenJournalLine.\"Bal. VAT Prod. Posting Group\") then\n exit(0);\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-217104", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 167.511, "tool_calls": 11, "total_tokens": 209000, "TurnCount": 13}, "Project": "AutomaticAccountCodes", "ToolUsage": "{\"edit\":2,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":3}", "output": "diff --git a/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al b/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\nindex 0e4bcfe3..c051744e 100644\n--- a/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\n+++ b/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\n@@ -71,6 +71,7 @@ codeunit 4850 \"AA Codes Posting Helper\"\n GenJnlCheckLine: Codeunit \"Gen. Jnl.-Check Line\";\n NoOfAutoAccounts: Decimal;\n TotalAmount: Decimal;\n+ TotalAmountLCY: Decimal;\n TotalAltAmount: Decimal;\n SourceCurrBaseAmount: Decimal;\n AccLine: Integer;\n@@ -121,6 +122,9 @@ codeunit 4850 \"AA Codes Posting Helper\"\n GenJnlLine2.Validate(Amount, GenJnlLine2.Amount - TotalAmount);\n if (AccLine = NoOfAutoAccounts) and (TotalAltAmount <> 0) then\n GenJnlLine2.Validate(\"Source Currency Amount\", GenJnlLine2.\"Source Currency Amount\" - TotalAltAmount);\n+ TotalAmountLCY := TotalAmountLCY + GenJnlLine2.\"Amount (LCY)\";\n+ if (AccLine = NoOfAutoAccounts) and (TotalAmountLCY <> 0) then\n+ GenJnlLine2.\"Amount (LCY)\" := GenJnlLine2.\"Amount (LCY)\" - TotalAmountLCY;\n GenJnlCheckLine.RunCheck(GenJnlLine2);\n \n sender.InitGLEntry(GenJnlLine2, GLEntry,\n", "error_message": null} +{"InstanceID": "microsoft__BCApps-4699", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 143.343, "tool_calls": 17, "total_tokens": 298600, "TurnCount": 12}, "Project": "Shopify", "ToolUsage": "{\"edit\":3,\"glob\":1,\"grep\":2,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":5}", "output": "diff --git a/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al b/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al\nindex 4e6ffd2..435166b 100644\n--- a/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al\n@@ -5,6 +5,7 @@\n \n namespace Microsoft.Integration.Shopify;\n \n+using Microsoft.Finance.Currency;\n using Microsoft.Inventory.Item;\n using Microsoft.Foundation.UOM;\n using Microsoft.Purchases.Vendor;\n@@ -258,10 +259,10 @@ codeunit 30171 \"Shpfy Create Item\"\n CreateItemUnitOfMeasure(ShopifyVariant, Item);\n \n if ShopifyVariant.\"Unit Cost\" <> 0 then\n- Item.Validate(\"Unit Cost\", ShopifyVariant.\"Unit Cost\");\n+ Item.Validate(\"Unit Cost\", ConvertToLCY(ShopifyVariant.\"Unit Cost\"));\n \n if ShopifyVariant.Price <> 0 then\n- Item.Validate(\"Unit Price\", ShopifyVariant.Price);\n+ Item.Validate(\"Unit Price\", ConvertToLCY(ShopifyVariant.Price));\n \n if ShopifyProduct.\"Product Type\" <> '' then begin\n ItemCategory.SetFilter(Description, FilterMgt.CleanFilterValue(ShopifyProduct.\"Product Type\", MaxStrLen(ItemCategory.Description)));\n@@ -471,6 +472,15 @@ codeunit 30171 \"Shpfy Create Item\"\n ProductImport.Run();\n end;\n \n+ local procedure ConvertToLCY(Amount: Decimal): Decimal\n+ var\n+ CurrExchRate: Record \"Currency Exchange Rate\";\n+ begin\n+ if Shop.\"Currency Code\" = '' then\n+ exit(Amount);\n+ exit(Round(CurrExchRate.ExchangeAmtFCYToLCY(WorkDate(), Shop.\"Currency Code\", Amount, CurrExchRate.ExchangeRate(WorkDate(), Shop.\"Currency Code\"))));\n+ end;\n+\n /// \n /// Set Shop.\n /// \n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-185792", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 110.456, "tool_calls": 19, "total_tokens": 274900, "TurnCount": 31}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":5,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":6}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\nindex 53e7159a..dfedc162 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\n@@ -598,6 +598,10 @@ table 81 \"Gen. Journal Line\"\n Validate(\"VAT %\");\n Validate(\"Bal. VAT %\");\n UpdateLineBalance();\n+ if JobTaskIsSet() then begin\n+ CreateTempJobJnlLine();\n+ UpdatePricesFromJobJnlLine();\n+ end;\n end;\n end;\n }\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-208748", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 290.04200000000003, "tool_calls": 17, "total_tokens": 402400, "TurnCount": 38}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"glob\":1,\"grep\":3,\"report_intent\":3,\"task\":1,\"update_todo\":3,\"view\":4}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\nindex 7c1943c5..ff223fce 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\n@@ -123,9 +123,11 @@ codeunit 87 \"Blanket Sales Order to Order\"\n ATOLink: Record \"Assemble-to-Order Link\";\n PrepmtMgt: Codeunit \"Prepayment Mgt.\";\n SalesLineReserve: Codeunit \"Sales Line-Reserve\";\n+ BlanketOrderLineMapping: Dictionary of [Integer, Integer];\n QuantityOnOrders: Decimal;\n IsHandled: Boolean;\n ProcessLine: Boolean;\n+ NewAttachedToLineNo: Integer;\n begin\n if not SalesLineBlanketOrder.FindSet() then\n exit;\n@@ -164,6 +166,10 @@ codeunit 87 \"Blanket Sales Order to Order\"\n SalesLineOrder.\"Document No.\" := SalesHeaderOrder.\"No.\";\n NextLineNo += 10000;\n SalesLineOrder.\"Line No.\" := NextLineNo;\n+ BlanketOrderLineMapping.Set(SalesLineBlanketOrder.\"Line No.\", NextLineNo);\n+ if SalesLineOrder.\"Attached to Line No.\" <> 0 then\n+ if BlanketOrderLineMapping.Get(SalesLineOrder.\"Attached to Line No.\", NewAttachedToLineNo) then\n+ SalesLineOrder.\"Attached to Line No.\" := NewAttachedToLineNo;\n SalesLineOrder.\"Blanket Order No.\" := SalesHeaderBlanketOrder.\"No.\";\n SalesLineOrder.\"Blanket Order Line No.\" := SalesLineBlanketOrder.\"Line No.\";\n if (SalesLineOrder.\"No.\" <> '') and (SalesLineOrder.Type <> SalesLineOrder.Type::\" \") then begin\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-220314", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 151.773, "tool_calls": 17, "total_tokens": 348200, "TurnCount": 26}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":1,\"grep\":1,\"powershell\":1,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":7}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al b/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\nindex fb9253b7..aab0b523 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\n@@ -163,6 +163,9 @@ table 83 \"Item Journal Line\"\n OnValidateItemNoOnAfterCalcUnitAmount(Rec, DummyWorkCenter, DummyMachineCenter);\n #endif\n \n+ if \"Item No.\" <> xRec.\"Item No.\" then\n+ \"Unit of Measure Code\" := '';\n+\n case \"Entry Type\" of\n \"Entry Type\"::Purchase:\n \"Unit of Measure Code\" := Item.\"Purch. Unit of Measure\";\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-207247", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 209.74, "tool_calls": 25, "total_tokens": 341400, "TurnCount": 49}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":2,\"grep\":9,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":7}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\nindex bd370429..be4c099e 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n@@ -1539,8 +1539,12 @@ codeunit 99000813 \"Carry Out Action\"\n ActiveVersionCode := VersionManagement.GetBOMVersion(ProductionBOMHeader.\"No.\", WorkDate(), true);\n \n ProductionBOMLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n+ ProductionBOMLine.SetRange(\"Version Code\", ActiveVersionCode);\n ProductionBOMLine.SetRange(Type, ProductionBOMLine.Type::Item);\n ProductionBOMLine.SetRange(\"No.\", ProdOrderComponent.\"Item No.\");\n+ ProductionBOMLine.SetRange(Position, ProdOrderComponent.Position);\n+ ProductionBOMLine.SetRange(\"Position 2\", ProdOrderComponent.\"Position 2\");\n+ ProductionBOMLine.SetRange(\"Position 3\", ProdOrderComponent.\"Position 3\");\n if ProductionBOMLine.FindSet() then\n repeat\n ProductionBOMCommentLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-185488", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 348.674, "tool_calls": 18, "total_tokens": 343800, "TurnCount": 85}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":1,\"report_intent\":2,\"task\":4,\"update_todo\":3,\"view\":7}", "output": "diff --git a/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al b/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al\nindex bcd82095..901d977f 100644\n--- a/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al\n@@ -624,12 +624,26 @@ codeunit 1521 \"Workflow Response Handling\"\n begin\n end;\n \n- local procedure CreateNotificationEntry(WorkflowStepInstance: Record \"Workflow Step Instance\"; ApprovalEntry: Record \"Approval Entry\")\n+ local procedure CreateNotificationEntry(WorkflowStepInstance: Record \"Workflow Step Instance\"; Variant: Variant)\n var\n+ ApprovalEntry: Record \"Approval Entry\";\n WorkflowStepArgument: Record \"Workflow Step Argument\";\n NotificationEntry: Record \"Notification Entry\";\n+ RecRef: RecordRef;\n IsHandled: Boolean;\n begin\n+ RecRef.GetTable(Variant);\n+ case RecRef.Number of\n+ DATABASE::\"Approval Entry\":\n+ ApprovalEntry := Variant;\n+ else begin\n+ ApprovalEntry.SetRange(\"Table ID\", RecRef.Number);\n+ ApprovalEntry.SetRange(\"Record ID to Approve\", RecRef.RecordId);\n+ if not ApprovalEntry.FindLast() then\n+ exit;\n+ end;\n+ end;\n+\n IsHandled := false;\n OnBeforeCreateNotificationEntry(WorkflowStepInstance, ApprovalEntry, IsHandled);\n if IsHandled then\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-185696", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 130.361, "tool_calls": 22, "total_tokens": 463400, "TurnCount": 29}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":1,\"grep\":10,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":4}", "output": "diff --git a/App/Layers/W1/BaseApp/Pricing/Asset/PriceAsset.Table.al b/App/Layers/W1/BaseApp/Pricing/Asset/PriceAsset.Table.al\nindex af29a86d..cee94b96 100644\n--- a/App/Layers/W1/BaseApp/Pricing/Asset/PriceAsset.Table.al\n+++ b/App/Layers/W1/BaseApp/Pricing/Asset/PriceAsset.Table.al\n@@ -231,6 +231,7 @@ table 7003 \"Price Asset\"\n \"Asset No.\" := '';\n Description := '';\n \"Unit of Measure Code\" := '';\n+ \"Variant Code\" := '';\n \"Amount Type\" := \"Amount Type\"::Any;\n \n OnAfterInitAsset(Rec);\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-188438", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 45, "tool_calls": 10, "total_tokens": 153600, "TurnCount": 9}, "Project": "Sustainability", "ToolUsage": "{\"edit\":1,\"grep\":5,\"report_intent\":2,\"view\":2}", "output": "diff --git a/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al b/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al\nindex 4644c873..35add374 100644\n--- a/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al\n+++ b/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al\n@@ -70,7 +70,7 @@ codeunit 6218 \"Sustainability Calc. Mgt.\"\n begin\n FilterGLEntry(SustainAccountCategory, FromDate, ToDate, GLEntry);\n GLEntry.CalcSums(Amount);\n- exit(GLEntry.Amount);\n+ exit(Abs(GLEntry.Amount));\n end;\n \n internal procedure CollectGeneralLedgerAmount(var SustainabilityJnlLine: Record \"Sustainability Jnl. Line\")\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-218995", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 383.67, "tool_calls": 14, "total_tokens": 192100, "TurnCount": 114}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":2,\"report_intent\":3,\"task\":3,\"update_todo\":2,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Posting/JobPostLine.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Posting/JobPostLine.Codeunit.al\nindex a913f1c1..bd54e22b 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Posting/JobPostLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Posting/JobPostLine.Codeunit.al\n@@ -478,6 +478,9 @@ codeunit 1001 \"Job Post-Line\"\n if IsHandled then\n exit;\n \n+ if PurchaseLine.IsNonInventoriableItem() then\n+ exit;\n+\n Job.Get(PurchaseLine.\"Job No.\");\n if Job.GetQuantityAvailable(PurchaseLine.\"No.\", PurchaseLine.\"Location Code\", PurchaseLine.\"Variant Code\", 0, 2) <\n -PurchaseLine.\"Return Qty. to Ship (Base)\"\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-193649", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 334.284, "tool_calls": 33, "total_tokens": 543500, "TurnCount": 59}, "Project": "Shopify", "ToolUsage": "{\"edit\":2,\"grep\":9,\"powershell\":2,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":13}", "output": "diff --git a/App/Apps/W1/Shopify/app/src/Document Links/Codeunits/ShpfyDocumentLinkMgt.Codeunit.al b/App/Apps/W1/Shopify/app/src/Document Links/Codeunits/ShpfyDocumentLinkMgt.Codeunit.al\nindex 575010de..fa3860c6 100644\n--- a/App/Apps/W1/Shopify/app/src/Document Links/Codeunits/ShpfyDocumentLinkMgt.Codeunit.al\t\n+++ b/App/Apps/W1/Shopify/app/src/Document Links/Codeunits/ShpfyDocumentLinkMgt.Codeunit.al\t\n@@ -3,6 +3,7 @@ namespace Microsoft.Integration.Shopify;\n using Microsoft.Sales.Document;\n using Microsoft.Sales.History;\n using Microsoft.Sales.Posting;\n+using Microsoft.Utilities;\n \n codeunit 30262 \"Shpfy Document Link Mgt.\"\n {\n@@ -83,6 +84,14 @@ codeunit 30262 \"Shpfy Document Link Mgt.\"\n end;\n end;\n \n+ [EventSubscriber(ObjectType::Codeunit, Codeunit::\"Copy Document Mgt.\", OnAfterCopySalesHeaderDone, '', true, false)]\n+ local procedure ClearShpfyOrderFieldsOnCopy(var ToSalesHeader: Record \"Sales Header\")\n+ begin\n+ ToSalesHeader.\"Shpfy Order Id\" := 0;\n+ ToSalesHeader.\"Shpfy Order No.\" := '';\n+ ToSalesHeader.\"Shpfy Refund Id\" := 0;\n+ end;\n+\n local procedure CreateNewDocumentLink(DocumentType: Enum \"Shpfy Shop Document Type\"; DocumentId: BigInteger; BCDocumentType: Enum \"Shpfy Document Type\"; DocumentNo: code[20])\n var\n NewDocLinkToBCDoc: Record \"Shpfy Doc. Link To Doc.\";\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-220984", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 52, "tool_calls": 13, "total_tokens": 168300, "TurnCount": 9}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":2,\"report_intent\":2,\"update_todo\":2,\"view\":6}", "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al\nindex 83bf3f09..fc62ac19 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al\n@@ -157,7 +157,7 @@ report 99001043 \"Exchange Production BOM Item\"\n CopyPositionFields(ProductionBOMLine2, ProductionBOMLine3);\n ShouldModifyProductionBOMLine := true;\n OnIntegerOnPostDataItemOnBeforeModifyProductionBOMLine(ProductionBOMLine, ShouldModifyProductionBOMLine);\n- if not ShouldModifyProductionBOMLine then begin\n+ if ShouldModifyProductionBOMLine then begin\n ProductionBOMLine.\"Ending Date\" := StartingDate - 1;\n ProductionBOMLine.Modify();\n end;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-221877", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 367.734, "tool_calls": 34, "total_tokens": 650900, "TurnCount": 77}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":8,\"powershell\":1,\"report_intent\":4,\"task\":2,\"update_todo\":2,\"view\":15}", "output": "diff --git a/App/Layers/W1/BaseApp/Service/Document/ServOrderManagement.Codeunit.al b/App/Layers/W1/BaseApp/Service/Document/ServOrderManagement.Codeunit.al\nindex 47406b42..178c079a 100644\n--- a/App/Layers/W1/BaseApp/Service/Document/ServOrderManagement.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Service/Document/ServOrderManagement.Codeunit.al\n@@ -515,6 +515,53 @@ codeunit 5900 ServOrderManagement\n end;\n end;\n \n+ procedure UpdateServiceOrderStatus(var ServItemLine: Record \"Service Item Line\"; Deleting: Boolean)\n+ var\n+ ServItemLine2: Record \"Service Item Line\";\n+ ServHeader: Record \"Service Header\";\n+ ServHeader2: Record \"Service Header\";\n+ RepairStatus: Record \"Repair Status\";\n+ RepairStatus2: Record \"Repair Status\";\n+ BestPriority: Integer;\n+ begin\n+ if not ServHeader.Get(ServItemLine.\"Document Type\", ServItemLine.\"Document No.\") then\n+ exit;\n+\n+ BestPriority := 0;\n+\n+ if (not Deleting) and (ServItemLine.\"Repair Status Code\" <> '') then\n+ if RepairStatus.Get(ServItemLine.\"Repair Status Code\") then\n+ BestPriority := RepairStatus.Priority;\n+\n+ ServItemLine2.Reset();\n+ ServItemLine2.SetRange(\"Document Type\", ServItemLine.\"Document Type\");\n+ ServItemLine2.SetRange(\"Document No.\", ServItemLine.\"Document No.\");\n+ ServItemLine2.SetFilter(\"Line No.\", '<>%1', ServItemLine.\"Line No.\");\n+ ServItemLine2.SetFilter(\"Repair Status Code\", '<>%1', '');\n+ if ServItemLine2.Find('-') then\n+ repeat\n+ if RepairStatus2.Get(ServItemLine2.\"Repair Status Code\") then\n+ if RepairStatus2.Priority < BestPriority then begin\n+ BestPriority := RepairStatus2.Priority;\n+ RepairStatus := RepairStatus2;\n+ end;\n+ until ServItemLine2.Next() = 0;\n+\n+ if RepairStatus.Code <> '' then\n+ if ServHeader.Status <> RepairStatus.\"Service Order Status\" then begin\n+ ServHeader2 := ServHeader;\n+ ServHeader.SetValidatingFromLines(true);\n+ ServHeader.Validate(Status, RepairStatus.\"Service Order Status\");\n+ if not (ServHeader.Status = ServHeader.Status::Finished) then begin\n+ ServHeader.\"Finishing Date\" := 0D;\n+ ServHeader.\"Finishing Time\" := 0T;\n+ ServHeader.\"Service Time (Hours)\" := 0;\n+ end;\n+ ServHeader.UpdateServiceOrderChangeLog(ServHeader2);\n+ ServHeader.Modify();\n+ end;\n+ end;\n+\n local procedure CopyComponentsFromSI(OldServItem: Record \"Service Item\"; NewServItem: Record \"Service Item\"; CopySerialNo: Boolean)\n var\n ServItemComponent: Record \"Service Item Component\";\ndiff --git a/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al b/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al\nindex 1c8fcc9e..b4f3787f 100644\n--- a/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al\n@@ -1580,6 +1580,8 @@ table 5901 \"Service Item Line\"\n if not IsHandled then\n ServOrderMgt.UpdatePriority(Rec, false);\n \n+ ServOrderMgt.UpdateServiceOrderStatus(Rec, false);\n+\n if \"Line No.\" = 0 then\n LendLoanerWithConfirmation(false);\n \n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-222092", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 249.054, "tool_calls": 26, "total_tokens": 603600, "TurnCount": 30}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":7,\"report_intent\":3,\"task\":1,\"update_todo\":2,\"view\":12}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\nindex 825eb23c..9ff59101 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n@@ -270,8 +270,8 @@ codeunit 393 \"Reminder-Issue\"\n begin\n GenJnlLine2.\"Shortcut Dimension 1 Code\" := GlobalReminderHeader.\"Shortcut Dimension 1 Code\";\n GenJnlLine2.\"Shortcut Dimension 2 Code\" := GlobalReminderHeader.\"Shortcut Dimension 2 Code\";\n- DimSetIDArr[1] := GlobalReminderHeader.\"Dimension Set ID\";\n- DimSetIDArr[2] := TempGenJnlLine.\"Dimension Set ID\";\n+ DimSetIDArr[1] := TempGenJnlLine.\"Dimension Set ID\";\n+ DimSetIDArr[2] := GlobalReminderHeader.\"Dimension Set ID\";\n GenJnlLine2.\"Dimension Set ID\" :=\n DimMgt.GetCombinedDimensionSetID(\n DimSetIDArr, GenJnlLine2.\"Shortcut Dimension 1 Code\", GenJnlLine2.\"Shortcut Dimension 2 Code\");\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-209737", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 300.544, "tool_calls": 26, "total_tokens": 397800, "TurnCount": 73}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":7,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":11}", "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WhseActivityPost.Codeunit.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WhseActivityPost.Codeunit.al\nindex 191a270e..fe342312 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WhseActivityPost.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WhseActivityPost.Codeunit.al\n@@ -465,6 +465,7 @@ codeunit 7324 \"Whse.-Activity-Post\"\n SalesRelease.Reopen(SalesHeader);\n SalesRelease.SetSkipCheckReleaseRestrictions();\n SalesHeader.SetHideValidationDialog(true);\n+ SalesHeader.SetCalledFromWhseDoc(true);\n SalesHeader.Validate(\"Posting Date\", WhseActivHeader.\"Posting Date\");\n OnReleaseSalesDocumentOnBeforeSalesReleaseRun(SalesHeader, WhseActivHeader);\n SalesRelease.Run(SalesHeader);\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-227240", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 150.749, "tool_calls": 9, "total_tokens": 89800, "TurnCount": 47}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\nindex 9ff59101..ff238e73 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n@@ -409,9 +409,6 @@ codeunit 393 \"Reminder-Issue\"\n if IsHandled then\n exit;\n \n- if NewDueDate < ReminderEntry2.\"Due Date\" then\n- exit;\n-\n ReminderEntry2.Validate(\"Due Date\", NewDueDate);\n ReminderEntry2.Modify();\n end;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-226875", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 304.356, "tool_calls": 50, "total_tokens": 1310500, "TurnCount": 76}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":11,\"glob\":1,\"grep\":5,\"powershell\":1,\"report_intent\":2,\"task\":2,\"update_todo\":4,\"view\":23}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\nindex fa043e01..15f2cd1d 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n@@ -154,6 +154,7 @@ page 254 \"Purchase Journal\"\n trigger OnValidate()\n begin\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ SetVendorName();\n EnableApplyEntriesAction();\n CurrPage.SaveRecord();\n end;\n@@ -166,11 +167,12 @@ page 254 \"Purchase Journal\"\n trigger OnValidate()\n begin\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ SetVendorName();\n Rec.ShowShortcutDimCode(ShortcutDimCode);\n CurrPage.SaveRecord();\n end;\n }\n- field(\"\"; AccName)\n+ field(\"\"; VendorName)\n {\n ApplicationArea = Basic, Suite;\n Caption = 'Vendor Name';\n@@ -380,6 +382,7 @@ page 254 \"Purchase Journal\"\n trigger OnValidate()\n begin\n EnableApplyEntriesAction();\n+ SetVendorName();\n end;\n }\n field(\"Bal. Account No.\"; Rec.\"Bal. Account No.\")\n@@ -390,6 +393,7 @@ page 254 \"Purchase Journal\"\n trigger OnValidate()\n begin\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ SetVendorName();\n Rec.ShowShortcutDimCode(ShortcutDimCode);\n CurrPage.SaveRecord();\n end;\n@@ -1494,6 +1498,7 @@ page 254 \"Purchase Journal\"\n begin\n HasIncomingDocument := Rec.\"Incoming Document Entry No.\" <> 0;\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ SetVendorName();\n UpdateBalance();\n EnableApplyEntriesAction();\n SetControlAppearance();\n@@ -1508,6 +1513,7 @@ page 254 \"Purchase Journal\"\n Rec.ShowShortcutDimCode(ShortcutDimCode);\n DocumentAmount := Abs(Rec.Amount);\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ SetVendorName();\n CurrPage.IncomingDocAttachFactBox.PAGE.SetCurrentRecordID(Rec.RecordId());\n ApprovalMgmt.GetGenJnlLineApprovalStatus(Rec, GenJnlLineApprovalStatus, EnabledGenJnlLineWorkflowsExist);\n end;\n@@ -1639,6 +1645,7 @@ page 254 \"Purchase Journal\"\n ShortcutDimCode: array[8] of Code[20];\n AccName: Text[100];\n BalAccName: Text[100];\n+ VendorName: Text[100];\n DimVisible1: Boolean;\n DimVisible2: Boolean;\n DimVisible3: Boolean;\n@@ -1668,6 +1675,17 @@ page 254 \"Purchase Journal\"\n (Rec.\"Bal. Account Type\" in [Rec.\"Bal. Account Type\"::Customer, Rec.\"Bal. Account Type\"::Vendor]);\n end;\n \n+ local procedure SetVendorName()\n+ begin\n+ if Rec.\"Account Type\" = Rec.\"Account Type\"::Vendor then\n+ VendorName := AccName\n+ else\n+ if Rec.\"Bal. Account Type\" = Rec.\"Bal. Account Type\"::Vendor then\n+ VendorName := BalAccName\n+ else\n+ VendorName := '';\n+ end;\n+\n local procedure CurrentJnlBatchNameOnAfterVali()\n begin\n CurrPage.SaveRecord();\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-207236", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 394.124, "tool_calls": 32, "total_tokens": 650500, "TurnCount": 20}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":14,\"report_intent\":3,\"update_todo\":3,\"view\":10}", "output": "diff --git a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseHeader.Table.al b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseHeader.Table.al\nindex 18898d3e..c9455801 100644\n--- a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseHeader.Table.al\n@@ -6419,6 +6419,7 @@ table 38 \"Purchase Header\"\n if DeferralHeadersExist() then\n exit;\n \n+ xRec := Rec;\n if ReplacePostingDate then begin\n \"Posting Date\" := PostingDateReq;\n Validate(\"Currency Code\");\ndiff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al b/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\nindex fbf39fce..81fb4dbf 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\n@@ -7037,6 +7037,7 @@ table 36 \"Sales Header\"\n if DeferralHeadersExist() then\n exit;\n \n+ xRec := Rec;\n \"Posting Date\" := PostingDateReq;\n Validate(\"Currency Code\");\n \n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-216572", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 222.257, "tool_calls": 16, "total_tokens": 304700, "TurnCount": 21}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":3,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":6}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al\nindex 130b3e0f..5c5da42f 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al\n@@ -668,6 +668,8 @@ table 221 \"Gen. Jnl. Allocation\"\n local procedure CopyFieldsFromAllocationAccountDistribution(AllocAccountDistribution: Record \"Alloc. Account Distribution\")\n begin\n Rec.Validate(\"Account No.\", AllocAccountDistribution.\"Destination Account Number\");\n+ if AllocAccountDistribution.\"Dimension Set ID\" <> 0 then\n+ Rec.Validate(\"Dimension Set ID\", AllocAccountDistribution.\"Dimension Set ID\");\n Rec.Validate(\"Allocation %\", AllocAccountDistribution.Percent);\n end;\n \n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-214557", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 96.69, "tool_calls": 15, "total_tokens": 194700, "TurnCount": 11}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"report_intent\":2,\"store_memory\":1,\"task\":1,\"update_todo\":3,\"view\":6}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al\nindex 052f4eb6..8cc0a589 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al\n@@ -659,6 +659,17 @@ table 99000853 \"Inventory Profile\"\n Binding := ReservationEntry.Binding;\n \"Disallow Cancellation\" := ReservationEntry.\"Disallow Cancellation\";\n Found := true;\n+ end else begin\n+ if ReservationEntry.Positive then\n+ OppositeReservationEntry.Get(ReservationEntry.\"Entry No.\", not ReservationEntry.Positive)\n+ else\n+ OppositeReservationEntry := ReservationEntry;\n+ if OppositeReservationEntry.\"Source Type\" <> 5407 then begin // Database::\"Prod. Order Component\"\n+ if \"Primary Order Line\" <> OppositeReservationEntry.\"Source Ref. No.\" then\n+ \"Primary Order Line\" := 0;\n+ end else\n+ if \"Primary Order Line\" <> OppositeReservationEntry.\"Source Prod. Order Line\" then\n+ \"Primary Order Line\" := 0;\n end;\n end else\n if (ReservationEntry.\"Reservation Status\" = ReservationEntry.\"Reservation Status\"::Reservation) and\ndiff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al\nindex e3a6cf2f..bd2fca7b 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al\n@@ -992,7 +992,7 @@ codeunit 99000854 \"Inventory Profile Offsetting\"\n SupplyInvtProfile.SetRange(Binding, DemandInvtProfile.Binding);\n SupplyInvtProfile.SetRange(\"Primary Order Status\", DemandInvtProfile.\"Primary Order Status\");\n SupplyInvtProfile.SetRange(\"Primary Order No.\", DemandInvtProfile.\"Primary Order No.\");\n- SupplyInvtProfile.SetRange(\"Primary Order Line\", DemandInvtProfile.\"Primary Order Line\");\n+ SupplyInvtProfile.SetFilter(\"Primary Order Line\", '%1|0', DemandInvtProfile.\"Primary Order Line\");\n SupplyInvtProfile.SetRange(\"Source Prod. Order Line\");\n if ((DemandInvtProfile.\"Ref. Order Type\" = DemandInvtProfile.\"Ref. Order Type\"::Assembly) or\n ((DemandInvtProfile.\"Ref. Order Type\" = DemandInvtProfile.\"Ref. Order Type\"::\"Prod. Order\") and\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-214825", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 182.31, "tool_calls": 11, "total_tokens": 116200, "TurnCount": 33}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\nindex 604bb915..2da48971 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\n@@ -78,6 +78,7 @@ codeunit 1018 \"Purchase Doc. From Job\"\n JobPlanningLine.SetRange(\"Job Task No.\", JobTask.\"Job Task No.\");\n if JobPlanningLine.IsEmpty() then\n exit;\n+ JobPlanningLine.SetCurrentKey(\"Job Contract Entry No.\");\n JobPlanningLine.FindSet();\n RecRef.GetTable(JobPlanningLine);\n ContractEntryNoFilter := SelectionFilterMgt.GetSelectionFilter(RecRef, JobPlanningLine.FieldNo(\"Job Contract Entry No.\"));\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-227219", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 87.09100000000001, "tool_calls": 11, "total_tokens": 138800, "TurnCount": 20}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":1,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al\nindex 979cdb45..1254b0d5 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al\n@@ -119,7 +119,7 @@ codeunit 5708 \"Release Transfer Document\"\n if IsHandled then\n exit;\n \n- TransLine.SetLoadFields(\"Document No.\", Quantity, \"Item No.\");\n+ TransLine.SetLoadFields(\"Document No.\", Quantity, \"Item No.\", \"Variant Code\");\n TransLine.SetRange(\"Document No.\", TransHeader.\"No.\");\n TransLine.SetFilter(Quantity, '<>0');\n if TransLine.IsEmpty() then\n@@ -131,6 +131,8 @@ codeunit 5708 \"Release Transfer Document\"\n Item.Get(TransLine.\"Item No.\");\n if Item.IsInventoriableType() then\n TransLine.TestField(\"Unit of Measure Code\");\n+ if Item.IsVariantMandatory() then\n+ TransLine.TestField(\"Variant Code\");\n until TransLine.Next() = 0;\n TransLine.SetFilter(\"Item No.\", '');\n end;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-218253", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 155.126, "tool_calls": 11, "total_tokens": 155200, "TurnCount": 43}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":1,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesLineReserve.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Document/SalesLineReserve.Codeunit.al\nindex 15a14be1..d4268d84 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesLineReserve.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesLineReserve.Codeunit.al\n@@ -1304,6 +1304,9 @@ codeunit 99000832 \"Sales Line-Reserve\"\n if (NewSalesLine.Type <> NewSalesLine.Type::Item) or (NewSalesLine.Quantity = 0) or (NewSalesLine.Reserve <> NewSalesLine.Reserve::Always) then\n exit(false);\n \n+ if (NewSalesLine.\"Document Type\" = NewSalesLine.\"Document Type\"::Invoice) and (NewSalesLine.\"Shipment No.\" <> '') then\n+ exit(false);\n+\n Item.SetLoadFields(\"Costing Method\");\n Item.Get(NewSalesLine.\"No.\");\n \n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-175765", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 545.704, "tool_calls": 45, "total_tokens": 1512500, "TurnCount": 120}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":10,\"powershell\":3,\"report_intent\":3,\"task\":5,\"update_todo\":3,\"view\":20}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\nindex 7eff4950..fd4fed06 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\n@@ -7105,9 +7105,11 @@ codeunit 22 \"Item Jnl.-Post Line\"\n OldValueEntry2.Copy(OldValueEntry);\n OldValueEntry2.SetFilter(\"Entry No.\", '<>%1', OldValueEntry.\"Entry No.\");\n OnCalcILEExpectedAmountOnBeforeCalcCostAmounts(OldValueEntry2, OldValueEntry, ItemLedgEntryNo);\n- OldValueEntry2.CalcSums(\"Cost Amount (Expected)\", \"Cost Amount (Expected) (ACY)\");\n+ OldValueEntry2.CalcSums(\"Cost Amount (Expected)\", \"Cost Amount (Expected) (ACY)\", \"Cost Amount (Actual)\", \"Cost Amount (Actual) (ACY)\");\n OldValueEntry.\"Cost Amount (Expected)\" += OldValueEntry2.\"Cost Amount (Expected)\";\n OldValueEntry.\"Cost Amount (Expected) (ACY)\" += OldValueEntry2.\"Cost Amount (Expected) (ACY)\";\n+ OldValueEntry.\"Cost Amount (Actual)\" += OldValueEntry2.\"Cost Amount (Actual)\";\n+ OldValueEntry.\"Cost Amount (Actual) (ACY)\" += OldValueEntry2.\"Cost Amount (Actual) (ACY)\";\n end;\n \n local procedure FindOpenOutputEntryNoToApply(ItemJournalLine: Record \"Item Journal Line\"): Integer\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-215972", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 480.294, "tool_calls": 29, "total_tokens": 788800, "TurnCount": 127}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":15,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":6}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\nindex 9ab054c5..72f38fac 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\n@@ -1592,6 +1592,8 @@ table 5741 \"Transfer Line\"\n exit;\n \n TestField(\"Item No.\");\n+ GetItem();\n+ Item.TestField(Reserve);\n Clear(Reservation);\n OptionNumber := StrMenu(Text011);\n if OptionNumber > 0 then begin\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-205825", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 756.987, "tool_calls": 13, "total_tokens": 372800, "TurnCount": 136}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"report_intent\":2,\"task\":5,\"update_todo\":3,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\nindex da15d9ef..27a04b3f 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\n@@ -133,16 +133,21 @@ codeunit 205 \"Alt. Cust. VAT Reg. Doc. Impl.\" implements \"Alt. Cust. VAT Reg. Do\n if SalesHeader.\"Bill-to Customer No.\" = SalesHeader.\"Sell-to Customer No.\" then\n exit;\n CopyFromCustomer(SalesHeader, xSalesHeader, BillToCustomer);\n- exit;\n+ end else begin\n+ if (SalesHeader.\"VAT Bus. Posting Group\" <> '') and (SalesHeader.\"VAT Bus. Posting Group\" <> BillToCustomer.\"VAT Bus. Posting Group\") then\n+ SalesHeader.Validate(\"VAT Bus. Posting Group\", BillToCustomer.\"VAT Bus. Posting Group\")\n+ else\n+ SalesHeader.\"VAT Bus. Posting Group\" := BillToCustomer.\"VAT Bus. Posting Group\";\n+ SalesHeader.\"VAT Country/Region Code\" := BillToCustomer.\"Country/Region Code\";\n+ SalesHeader.\"VAT Registration No.\" := BillToCustomer.\"VAT Registration No.\";\n+ SalesHeader.\"Registration Number\" := BillToCustomer.\"Registration Number\";\n+ SalesHeader.\"Gen. Bus. Posting Group\" := BillToCustomer.\"Gen. Bus. Posting Group\";\n end;\n- if (SalesHeader.\"VAT Bus. Posting Group\" <> '') and (SalesHeader.\"VAT Bus. Posting Group\" <> BillToCustomer.\"VAT Bus. Posting Group\") then\n- SalesHeader.Validate(\"VAT Bus. Posting Group\", BillToCustomer.\"VAT Bus. Posting Group\")\n- else\n- SalesHeader.\"VAT Bus. Posting Group\" := BillToCustomer.\"VAT Bus. Posting Group\";\n- SalesHeader.\"VAT Country/Region Code\" := BillToCustomer.\"Country/Region Code\";\n- SalesHeader.\"VAT Registration No.\" := BillToCustomer.\"VAT Registration No.\";\n- SalesHeader.\"Registration Number\" := BillToCustomer.\"Registration Number\";\n- SalesHeader.\"Gen. Bus. Posting Group\" := BillToCustomer.\"Gen. Bus. Posting Group\";\n+\n+ if (SalesHeader.\"Ship-to Country/Region Code\" <> '') and\n+ (SalesHeader.\"Ship-to Country/Region Code\" <> BillToCustomer.\"Country/Region Code\")\n+ then\n+ UpdateSetupOnShipToCountryChangeInSalesHeader(SalesHeader, xSalesHeader);\n end;\n \n local procedure IsAltVATRegUsed(SalesHeader: Record \"Sales Header\"): Boolean\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-210528", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 62.977, "tool_calls": 9, "total_tokens": 119700, "TurnCount": 15}, "Project": "Sustainability", "ToolUsage": "{\"edit\":1,\"report_intent\":1,\"task\":1,\"update_todo\":3,\"view\":3}", "output": "diff --git a/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al b/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al\nindex 335c0099..858e5df7 100644\n--- a/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al\n+++ b/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al\n@@ -148,9 +148,19 @@ table 6217 \"Sustainability Setup\"\n \n trigger OnValidate()\n begin\n- if Rec.\"Enable Value Chain Tracking\" then\n+ if Rec.\"Enable Value Chain Tracking\" then begin\n if not ConfirmManagement.GetResponseOrDefault(ConfirmEnableValueChainTrackingQst, false) then\n Error('');\n+\n+ if not Rec.\"Use Emissions In Purch. Doc.\" then\n+ Rec.Validate(\"Use Emissions In Purch. Doc.\", true);\n+ if not Rec.\"Item Emissions\" then\n+ Rec.Validate(\"Item Emissions\", true);\n+ if not Rec.\"Resource Emissions\" then\n+ Rec.Validate(\"Resource Emissions\", true);\n+ if not Rec.\"Work/Machine Center Emissions\" then\n+ Rec.Validate(\"Work/Machine Center Emissions\", true);\n+ end;\n end;\n }\n }\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-226223", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 123.614, "tool_calls": 9, "total_tokens": 87300, "TurnCount": 34}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/Currency/ExchRateAdjmtProcess.Codeunit.al b/App/Layers/W1/BaseApp/Finance/Currency/ExchRateAdjmtProcess.Codeunit.al\nindex 467c235c..bdb56817 100644\n--- a/App/Layers/W1/BaseApp/Finance/Currency/ExchRateAdjmtProcess.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/Currency/ExchRateAdjmtProcess.Codeunit.al\n@@ -308,6 +308,8 @@ codeunit 699 \"Exch. Rate Adjmt. Process\"\n Window.Open(AdjustingVATEntriesTxt + VATEntryProgressBarTxt);\n \n VATEntryNoTotal := VATEntry.Count();\n+ if VATEntryNoTotal = 0 then\n+ exit;\n SetVATEntryFilters(VATEntry, ExchRateAdjmtParameters.\"Start Date\", ExchRateAdjmtParameters.\"End Date\");\n if VATPostingSetup.FindSet() then\n repeat\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-211548", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 277.78, "tool_calls": 15, "total_tokens": 206900, "TurnCount": 32}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":1,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":8}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/AllocationAccount/GenJournalAllocAccMgt.Codeunit.al b/App/Layers/W1/BaseApp/Finance/AllocationAccount/GenJournalAllocAccMgt.Codeunit.al\nindex fbe1c90d..2c7bf2b5 100644\n--- a/App/Layers/W1/BaseApp/Finance/AllocationAccount/GenJournalAllocAccMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/AllocationAccount/GenJournalAllocAccMgt.Codeunit.al\n@@ -465,7 +465,7 @@ codeunit 2677 \"Gen. Journal Alloc. Acc. Mgt.\"\n var\n Increment: Integer;\n begin\n- Increment := Round((NextLineNo - CurrentLineNo) / LinesToInsert, 1);\n+ Increment := Round((NextLineNo - CurrentLineNo) / (LinesToInsert + 1), 1);\n if Increment < LinesToInsert then\n exit(-1);\n \n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-208851", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 63.549, "tool_calls": 16, "total_tokens": 153400, "TurnCount": 10}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":3,\"grep\":5,\"report_intent\":2,\"task\":1,\"view\":4}", "output": "diff --git a/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al b/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al\nindex fb6adbb6..9b29109e 100644\n--- a/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al\n@@ -563,8 +563,10 @@ table 7000 \"Price List Header\"\n xAmountType: Enum \"Price Amount Type\";\n begin\n xAmountType := \"Amount Type\";\n- if \"Source Type\" in [\"Source Type\"::\"Customer Disc. Group\", \"Source Type\"::\"Customer Price Group\"] then\n- \"Amount Type\" := PriceSource.GetDefaultAmountType()\n+ if \"Source Type\" in [\"Source Type\"::\"Customer Disc. Group\", \"Source Type\"::\"Customer Price Group\"] then begin\n+ CopyTo(PriceSource);\n+ \"Amount Type\" := PriceSource.GetDefaultAmountType();\n+ end\n else\n \"Amount Type\" := CalcAmountType();\n if \"Amount Type\" <> xAmountType then\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-227358", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 83.809, "tool_calls": 9, "total_tokens": 90200, "TurnCount": 14}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\nindex 61aff663..39eb6982 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\n@@ -1006,6 +1006,8 @@ codeunit 13 \"Gen. Jnl.-Post Batch\"\n exit;\n if not CurrGenJnlTemplate.\"Unlink Inc. Doc On Posting\" then\n exit;\n+ if not GenJnlLine.Find() then\n+ exit;\n GenJnlLine.\"Incoming Document Entry No.\" := 0;\n GenJnlLine.Modify();\n end;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-207177", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 148.468, "tool_calls": 11, "total_tokens": 220000, "TurnCount": 38}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":5}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\nindex a84b0558..03f2b91b 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n@@ -42,18 +42,20 @@ page 7504 \"Item Attribute Value List\"\n DeleteItemAttributeValueMapping(ItemAttribute.ID);\n end;\n \n- if not Rec.FindAttributeValue(ItemAttributeValue) then\n- Rec.InsertItemAttributeValue(ItemAttributeValue, Rec);\n-\n- if ItemAttributeValue.Get(ItemAttributeValue.\"Attribute ID\", ItemAttributeValue.ID) then begin\n- ItemAttributeValueMapping.Reset();\n- ItemAttributeValueMapping.Init();\n- ItemAttributeValueMapping.\"Table ID\" := Database::Item;\n- ItemAttributeValueMapping.\"No.\" := RelatedRecordCode;\n- ItemAttributeValueMapping.\"Item Attribute ID\" := ItemAttributeValue.\"Attribute ID\";\n- ItemAttributeValueMapping.\"Item Attribute Value ID\" := ItemAttributeValue.ID;\n- OnBeforeItemAttributeValueMappingInsert(ItemAttributeValueMapping, ItemAttributeValue, Rec);\n- ItemAttributeValueMapping.Insert();\n+ if Rec.Value <> '' then begin\n+ if not Rec.FindAttributeValue(ItemAttributeValue) then\n+ Rec.InsertItemAttributeValue(ItemAttributeValue, Rec);\n+\n+ if ItemAttributeValue.Get(ItemAttributeValue.\"Attribute ID\", ItemAttributeValue.ID) then begin\n+ ItemAttributeValueMapping.Reset();\n+ ItemAttributeValueMapping.Init();\n+ ItemAttributeValueMapping.\"Table ID\" := Database::Item;\n+ ItemAttributeValueMapping.\"No.\" := RelatedRecordCode;\n+ ItemAttributeValueMapping.\"Item Attribute ID\" := ItemAttributeValue.\"Attribute ID\";\n+ ItemAttributeValueMapping.\"Item Attribute Value ID\" := ItemAttributeValue.ID;\n+ OnBeforeItemAttributeValueMappingInsert(ItemAttributeValueMapping, ItemAttributeValue, Rec);\n+ ItemAttributeValueMapping.Insert();\n+ end;\n end;\n end;\n }\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-178045", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 1621.919, "tool_calls": 119, "total_tokens": 9775200, "TurnCount": 125}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":61,\"powershell\":4,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":46}", "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderCompReserve.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderCompReserve.Codeunit.al\nindex 9527ab69..cbd93199 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderCompReserve.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderCompReserve.Codeunit.al\n@@ -337,6 +337,10 @@ codeunit 99000838 \"Prod. Order Comp.-Reserve\"\n \n OnTransferPOCompToItemJnlLineCheckILEOnBeforeTransferReservEntry(NewItemJournalLine, OldReservationEntry);\n \n+ if NewItemJournalLine.\"Entry Type\" = NewItemJournalLine.\"Entry Type\"::Consumption then\n+ if NewItemJournalLine.TrackingExists() then\n+ CreateReservEntry.SetNewTrackingFromItemJnlLine(NewItemJournalLine);\n+\n TransferQty := CreateReservEntry.TransferReservEntry(\n Database::\"Item Journal Line\",\n NewItemJournalLine.\"Entry Type\".AsInteger(), NewItemJournalLine.\"Journal Template Name\", NewItemJournalLine.\"Journal Batch Name\", 0,\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-219082", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 165.065, "tool_calls": 23, "total_tokens": 330100, "TurnCount": 31}, "Project": "BaseApp", "ToolUsage": "{\"edit\":4,\"grep\":11,\"powershell\":2,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":1}", "output": "diff --git a/App/Layers/W1/BaseApp/Service/Document/ServiceOrder.Page.al b/App/Layers/W1/BaseApp/Service/Document/ServiceOrder.Page.al\nindex 130ccae8..075f5ac1 100644\n--- a/App/Layers/W1/BaseApp/Service/Document/ServiceOrder.Page.al\n+++ b/App/Layers/W1/BaseApp/Service/Document/ServiceOrder.Page.al\n@@ -1356,6 +1356,7 @@ page 5900 \"Service Order\"\n ServDocumentPrint: Codeunit \"Serv. Document Print\";\n begin\n CurrPage.Update(true);\n+ Commit();\n ServDocumentPrint.PrintServiceHeader(Rec);\n end;\n }\ndiff --git a/App/Layers/W1/BaseApp/Service/Document/ServiceOrders.Page.al b/App/Layers/W1/BaseApp/Service/Document/ServiceOrders.Page.al\nindex 87cde3aa..5e1e115d 100644\n--- a/App/Layers/W1/BaseApp/Service/Document/ServiceOrders.Page.al\n+++ b/App/Layers/W1/BaseApp/Service/Document/ServiceOrders.Page.al\n@@ -593,6 +593,7 @@ page 9318 \"Service Orders\"\n ServDocumentPrint: Codeunit \"Serv. Document Print\";\n begin\n CurrPage.Update(true);\n+ Commit();\n ServDocumentPrint.PrintServiceHeader(Rec);\n end;\n }\ndiff --git a/App/Layers/W1/BaseApp/Service/Document/ServiceQuote.Page.al b/App/Layers/W1/BaseApp/Service/Document/ServiceQuote.Page.al\nindex 6d9579d8..018b31dd 100644\n--- a/App/Layers/W1/BaseApp/Service/Document/ServiceQuote.Page.al\n+++ b/App/Layers/W1/BaseApp/Service/Document/ServiceQuote.Page.al\n@@ -927,6 +927,7 @@ page 5964 \"Service Quote\"\n ServDocumentPrint: Codeunit \"Serv. Document Print\";\n begin\n CurrPage.Update(true);\n+ Commit();\n ServDocumentPrint.PrintServiceHeader(Rec);\n end;\n }\ndiff --git a/App/Layers/W1/BaseApp/Service/Document/ServiceQuotes.Page.al b/App/Layers/W1/BaseApp/Service/Document/ServiceQuotes.Page.al\nindex ca52ac21..1a7b2a98 100644\n--- a/App/Layers/W1/BaseApp/Service/Document/ServiceQuotes.Page.al\n+++ b/App/Layers/W1/BaseApp/Service/Document/ServiceQuotes.Page.al\n@@ -364,6 +364,7 @@ page 9317 \"Service Quotes\"\n ServDocumentPrint: Codeunit \"Serv. Document Print\";\n begin\n CurrPage.Update(true);\n+ Commit();\n ServDocumentPrint.PrintServiceHeader(Rec);\n end;\n }\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-217797", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 197.236, "tool_calls": 22, "total_tokens": 319100, "TurnCount": 13}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":1,\"grep\":13,\"report_intent\":2,\"update_todo\":2,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Availability/CalcItemAvailability.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Availability/CalcItemAvailability.Codeunit.al\nindex 21992d4e..e73c7605 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Availability/CalcItemAvailability.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Availability/CalcItemAvailability.Codeunit.al\n@@ -906,6 +906,10 @@ codeunit 5530 \"Calc. Item Availability\"\n RecRef.SetTable(RequisitionLine);\n ReqWkshTemplate.Get(RequisitionLine.\"Worksheet Template Name\");\n ReqWkshTemplate.TestField(\"Page ID\");\n+ RequisitionLine.FilterGroup(2);\n+ RequisitionLine.SetRange(\"Worksheet Template Name\", RequisitionLine.\"Worksheet Template Name\");\n+ RequisitionLine.FilterGroup(0);\n+ RequisitionLine.\"Worksheet Template Name\" := '';\n PAGE.RunModal(ReqWkshTemplate.\"Page ID\", RequisitionLine);\n end;\n Database::\"Planning Component\":\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-224009", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 801.256, "tool_calls": 35, "total_tokens": 1036400, "TurnCount": 68}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":2,\"grep\":6,\"powershell\":2,\"report_intent\":2,\"task\":3,\"update_todo\":4,\"view\":15}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/CreateReservEntry.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Tracking/CreateReservEntry.Codeunit.al\nindex 00e35ec7..0f7b9f8a 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/CreateReservEntry.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/CreateReservEntry.Codeunit.al\n@@ -87,7 +87,7 @@ codeunit 99000830 \"Create Reserv. Entry\"\n if (ReservEntry.\"Quantity (Base)\" <> 0) and\n ((ReservEntry.Quantity = 0) or (ReservEntry.\"Qty. per Unit of Measure\" <> InsertReservEntry2.\"Qty. per Unit of Measure\"))\n then\n- ReservEntry.Quantity := Round(ReservEntry.\"Quantity (Base)\" / ReservEntry.\"Qty. per Unit of Measure\", UOMMgt.QtyRndPrecision());\n+ ReservEntry.Quantity := ReservEntry.CalcReservationQuantity();\n if not QtyToHandleAndInvoiceIsSet then begin\n ReservEntry.\"Qty. to Handle (Base)\" := ReservEntry.\"Quantity (Base)\";\n ReservEntry.\"Qty. to Invoice (Base)\" := ReservEntry.\"Quantity (Base)\";\ndiff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/ReservationEntry.Table.al b/App/Layers/W1/BaseApp/Inventory/Tracking/ReservationEntry.Table.al\nindex c1b41b15..09ef3f49 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/ReservationEntry.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/ReservationEntry.Table.al\n@@ -904,7 +904,7 @@ table 337 \"Reservation Entry\"\n OnAfterClearItemTrackingFields(Rec);\n end;\n \n- local procedure CalcReservationQuantity(): Decimal\n+ internal procedure CalcReservationQuantity(): Decimal\n var\n ReservEntry: Record \"Reservation Entry\";\n begin\n@@ -914,7 +914,7 @@ table 337 \"Reservation Entry\"\n ReservEntry.SetFilter(\"Entry No.\", '<>%1', \"Entry No.\");\n ReservEntry.SetSourceFilter(\"Source Type\", \"Source Subtype\", \"Source ID\", \"Source Ref. No.\", false);\n ReservEntry.SetSourceFilter(\"Source Batch Name\", \"Source Prod. Order Line\");\n- ReservEntry.SetRange(\"Reservation Status\", \"Reservation Status\"::Reservation);\n+ ReservEntry.SetRange(\"Reservation Status\", \"Reservation Status\");\n ReservEntry.CalcSums(\"Quantity (Base)\", Quantity);\n exit(\n Round((ReservEntry.\"Quantity (Base)\" + \"Quantity (Base)\") / \"Qty. per Unit of Measure\", UOMMgt.QtyRndPrecision()) -\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-175577", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 218.387, "tool_calls": 19, "total_tokens": 313700, "TurnCount": 28}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":3,\"report_intent\":2,\"task\":2,\"update_todo\":2,\"view\":9}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobCreateInvoice.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobCreateInvoice.Codeunit.al\nindex 1e465e16..4347d3f7 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobCreateInvoice.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobCreateInvoice.Codeunit.al\n@@ -384,6 +384,8 @@ codeunit 1002 \"Job Create-Invoice\"\n \n local procedure CreateNewInvoice(var JobTask: Record \"Job Task\"; InvoicePerTask: Boolean; var OldJobNo: Code[20]; var OldJobTaskNo: Code[20]; LastJobTask: Boolean): Boolean\n var\n+ Job: Record Job;\n+ OldJobTask: Record \"Job Task\";\n NewInvoice: Boolean;\n IsHandled: Boolean;\n begin\n@@ -397,8 +399,17 @@ codeunit 1002 \"Job Create-Invoice\"\n else begin\n if OldJobNo <> '' then begin\n if InvoicePerTask then\n- if (OldJobNo <> JobTask.\"Job No.\") or (OldJobTaskNo <> JobTask.\"Job Task No.\") then\n+ if (OldJobNo <> JobTask.\"Job No.\") or (OldJobTaskNo <> JobTask.\"Job Task No.\") then begin\n NewInvoice := true;\n+ if (OldJobNo = JobTask.\"Job No.\") and Job.Get(JobTask.\"Job No.\") then\n+ if Job.\"Task Billing Method\" = Job.\"Task Billing Method\"::\"Multiple customers\" then\n+ if OldJobTask.Get(OldJobNo, OldJobTaskNo) then\n+ if (OldJobTask.\"Sell-to Customer No.\" = JobTask.\"Sell-to Customer No.\") and\n+ (OldJobTask.\"Bill-to Customer No.\" = JobTask.\"Bill-to Customer No.\") and\n+ (OldJobTask.\"Invoice Currency Code\" = JobTask.\"Invoice Currency Code\")\n+ then\n+ NewInvoice := false;\n+ end;\n if not InvoicePerTask then\n if OldJobNo <> JobTask.\"Job No.\" then\n NewInvoice := true;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-195193", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 265.41700000000003, "tool_calls": 23, "total_tokens": 292000, "TurnCount": 28}, "Project": "ExcelReports", "ToolUsage": "{\"edit\":8,\"report_intent\":3,\"task\":3,\"update_todo\":3,\"view\":6}", "output": "diff --git a/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al b/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\nindex 00c238ae..e2a5f9db 100644\n--- a/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\n+++ b/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\n@@ -44,10 +44,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Net Change\" > 0) then\n- Validate(\"Net Change (Debit)\", \"Net Change\")\n- else\n+ if (\"Net Change\" > 0) then begin\n+ Validate(\"Net Change (Debit)\", \"Net Change\");\n+ Validate(\"Net Change (Credit)\", 0);\n+ end else begin\n Validate(\"Net Change (Credit)\", -\"Net Change\");\n+ Validate(\"Net Change (Debit)\", 0);\n+ end;\n end;\n }\n field(11; \"Net Change (Debit)\"; Decimal)\n@@ -64,10 +67,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Balance\" > 0) then\n- Validate(\"Balance (Debit)\", \"Balance\")\n- else\n+ if (\"Balance\" > 0) then begin\n+ Validate(\"Balance (Debit)\", \"Balance\");\n+ Validate(\"Balance (Credit)\", 0);\n+ end else begin\n Validate(\"Balance (Credit)\", -\"Balance\");\n+ Validate(\"Balance (Debit)\", 0);\n+ end;\n end;\n }\n field(14; \"Balance (Debit)\"; Decimal)\n@@ -100,10 +106,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Net\" > 0) then\n- Validate(\"Last Period Net (Debit)\", \"Last Period Net\")\n- else\n+ if (\"Last Period Net\" > 0) then begin\n+ Validate(\"Last Period Net (Debit)\", \"Last Period Net\");\n+ Validate(\"Last Period Net (Credit)\", 0);\n+ end else begin\n Validate(\"Last Period Net (Credit)\", -\"Last Period Net\");\n+ Validate(\"Last Period Net (Debit)\", 0);\n+ end;\n end;\n }\n field(51; \"Last Period Net (Debit)\"; Decimal)\n@@ -120,10 +129,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Bal.\" > 0) then\n- Validate(\"Last Period Bal. (Debit)\", \"Last Period Bal.\")\n- else\n+ if (\"Last Period Bal.\" > 0) then begin\n+ Validate(\"Last Period Bal. (Debit)\", \"Last Period Bal.\");\n+ Validate(\"Last Period Bal. (Credit)\", 0);\n+ end else begin\n Validate(\"Last Period Bal. (Credit)\", -\"Last Period Bal.\");\n+ Validate(\"Last Period Bal. (Debit)\", 0);\n+ end;\n end;\n }\n field(61; \"Last Period Bal. (Debit)\"; Decimal)\n@@ -156,10 +168,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Net Change\" > 0) then\n- Validate(\"Net Change (Debit) (ACY)\", \"Net Change (ACY)\")\n- else\n+ if (\"Net Change (ACY)\" > 0) then begin\n+ Validate(\"Net Change (Debit) (ACY)\", \"Net Change (ACY)\");\n+ Validate(\"Net Change (Credit) (ACY)\", 0);\n+ end else begin\n Validate(\"Net Change (Credit) (ACY)\", -\"Net Change (ACY)\");\n+ Validate(\"Net Change (Debit) (ACY)\", 0);\n+ end;\n end;\n }\n field(111; \"Net Change (Debit) (ACY)\"; Decimal)\n@@ -176,10 +191,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Balance\" > 0) then\n- Validate(\"Balance (Debit) (ACY)\", \"Balance (ACY)\")\n- else\n+ if (\"Balance (ACY)\" > 0) then begin\n+ Validate(\"Balance (Debit) (ACY)\", \"Balance (ACY)\");\n+ Validate(\"Balance (Credit) (ACY)\", 0);\n+ end else begin\n Validate(\"Balance (Credit) (ACY)\", -\"Balance (ACY)\");\n+ Validate(\"Balance (Debit) (ACY)\", 0);\n+ end;\n end;\n }\n field(114; \"Balance (Debit) (ACY)\"; Decimal)\n@@ -196,10 +214,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Net\" > 0) then\n- Validate(\"Last Period Net (Debit) (ACY)\", \"Last Period Net (ACY)\")\n- else\n+ if (\"Last Period Net (ACY)\" > 0) then begin\n+ Validate(\"Last Period Net (Debit) (ACY)\", \"Last Period Net (ACY)\");\n+ Validate(\"Last Period Net (Credit) (ACY)\", 0);\n+ end else begin\n Validate(\"Last Period Net (Credit) (ACY)\", -\"Last Period Net (ACY)\");\n+ Validate(\"Last Period Net (Debit) (ACY)\", 0);\n+ end;\n end;\n }\n field(151; \"Last Period Net (Debit) (ACY)\"; Decimal)\n@@ -216,10 +237,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Bal.\" > 0) then\n- Validate(\"Last Period Bal. (Debit) (ACY)\", \"Last Period Bal. (ACY)\")\n- else\n+ if (\"Last Period Bal. (ACY)\" > 0) then begin\n+ Validate(\"Last Period Bal. (Debit) (ACY)\", \"Last Period Bal. (ACY)\");\n+ Validate(\"Last Period Bal. (Cred.) (ACY)\", 0);\n+ end else begin\n Validate(\"Last Period Bal. (Cred.) (ACY)\", -\"Last Period Bal. (ACY)\");\n+ Validate(\"Last Period Bal. (Debit) (ACY)\", 0);\n+ end;\n end;\n }\n field(161; \"Last Period Bal. (Debit) (ACY)\"; Decimal)\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-210200", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 289.55899999999997, "tool_calls": 20, "total_tokens": 389200, "TurnCount": 84}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":7,\"report_intent\":2,\"task\":2,\"update_todo\":2,\"view\":6}", "output": "diff --git a/App/Layers/W1/BaseApp/Service/Item/StandardServiceItemGrCode.Table.al b/App/Layers/W1/BaseApp/Service/Item/StandardServiceItemGrCode.Table.al\nindex 33f69be4..fe00946f 100644\n--- a/App/Layers/W1/BaseApp/Service/Item/StandardServiceItemGrCode.Table.al\n+++ b/App/Layers/W1/BaseApp/Service/Item/StandardServiceItemGrCode.Table.al\n@@ -159,6 +159,8 @@ table 5998 \"Standard Service Item Gr. Code\"\n ServLine.\"Line No.\" := ServLine.GetLineNo();\n OnBeforeInsertServLine(ServLine);\n ServLine.Insert(true);\n+ if ServLine.Reserve = ServLine.Reserve::Always then\n+ ServLine.AutoReserve(false);\n InsertExtendedText(ServLine);\n end;\n until StdServLine.Next() = 0;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-214926", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 251.263, "tool_calls": 13, "total_tokens": 149700, "TurnCount": 49}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":3,\"report_intent\":2,\"task\":2,\"update_todo\":2,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al b/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\nindex ebeb6ca1..b522f79e 100644\n--- a/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\n@@ -2364,7 +2364,7 @@ table 18 Customer\n RetRcdNotInvAmountLCY := GetReturnRcdNotInvAmountLCY();\n \n TotalAmountLCY :=\n- \"Balance (LCY)\" + \"Outstanding Orders (LCY)\" + \"Shipped Not Invoiced (LCY)\" + \"Outstanding Invoices (LCY)\" +\n+ \"Balance (LCY)\" + \"Outstanding Orders (LCY)\" + \"Shipped Not Invoiced (LCY)\" + \"Outstanding Invoices (LCY)\" -\n SalesOutstandingAmountFromShipment - InvoicedPrepmtAmountLCY - RetRcdNotInvAmountLCY + AdditionalAmountLCY;\n \n OnAfterGetTotalAmountLCYCommon(Rec, TotalAmountLCY);\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-176082", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 271.938, "tool_calls": 25, "total_tokens": 585300, "TurnCount": 68}, "Project": "BaseApp", "ToolUsage": "{\"edit\":4,\"grep\":7,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":7}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\nindex 5fe44b45..80654301 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\n@@ -1304,7 +1304,6 @@ table 5740 \"Transfer Header\"\n TempPurchRcptHeader: Record \"Purch. Rcpt. Header\" temporary;\n PostedPurchaseReceipts: Page \"Posted Purchase Receipts\";\n begin\n- PurchRcptHeader.SetRange(\"Location Code\", \"Transfer-from Code\");\n PostedPurchaseReceipts.SetTableView(PurchRcptHeader);\n PostedPurchaseReceipts.LookupMode := true;\n if PostedPurchaseReceipts.RunModal() = ACTION::LookupOK then begin\n@@ -1373,6 +1372,14 @@ table 5740 \"Transfer Header\"\n OnAddTransferLineFromReceiptLineOnBeforeTransferLineInsert(TransferLine, PurchRcptLine, Rec);\n TransferLine.Insert(true);\n \n+ if PurchRcptLine.\"Item Rcpt. Entry No.\" <> 0 then begin\n+ ItemLedgerEntry.Get(PurchRcptLine.\"Item Rcpt. Entry No.\");\n+ if (ItemLedgerEntry.\"Lot No.\" = '') and (ItemLedgerEntry.\"Serial No.\" = '') then begin\n+ TransferLine.Validate(\"Appl.-to Item Entry\", PurchRcptLine.\"Item Rcpt. Entry No.\");\n+ TransferLine.Modify(true);\n+ end;\n+ end;\n+\n PurchRcptLine.FilterPstdDocLnItemLedgEntries(ItemLedgerEntry);\n ItemTrackingDocMgt.CopyItemLedgerEntriesToTemp(TempItemLedgerEntry, ItemLedgerEntry);\n ItemTrackingMgt.CopyItemLedgEntryTrkgToTransferLine(TempItemLedgerEntry, TransferLine);\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-224668", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 35, "tool_calls": 9, "total_tokens": 111800, "TurnCount": 6}, "Project": "EssentialBusinessHeadlines", "ToolUsage": "{\"edit\":1,\"glob\":2,\"grep\":2,\"report_intent\":1,\"view\":3}", "output": "diff --git a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\nindex 831aa80e..10436a09 100644\n--- a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n+++ b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n@@ -677,7 +677,7 @@ codeunit 1437 \"Essential Bus. Headline Mgt.\"\n var\n EssentialBusinessHeadline: Record \"Ess. Business Headline Per Usr\";\n begin\n- if EssentialBusinessHeadline.Get(HeadlineName) then begin\n+ if EssentialBusinessHeadline.Get(HeadlineName, UserSecurityId()) then begin\n EssentialBusinessHeadline.Validate(\"Headline Visible\", false);\n EssentialBusinessHeadline.Modify();\n end;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-209835", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 154.921, "tool_calls": 11, "total_tokens": 236900, "TurnCount": 24}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":4}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\nindex 78996b41..43c6dbb9 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\n@@ -473,7 +473,8 @@ report 99001020 \"Carry Out Action Msg. - Plan.\"\n if CurrReqWkshTemp <> '' then\n \"Requisition Line\".SetRange(\"Journal Batch Name\", CurrReqWkshName);\n \"Requisition Line\".SetRange(Type, \"Requisition Line\".Type::Item);\n- \"Requisition Line\".SetFilter(\"Action Message\", '<>%1', \"Requisition Line\".\"Action Message\"::\" \");\n+ if \"Requisition Line\".GetFilter(\"Action Message\") = '' then\n+ \"Requisition Line\".SetFilter(\"Action Message\", '<>%1', \"Requisition Line\".\"Action Message\"::\" \");\n OnAfterSetReqLineFilters(\"Requisition Line\");\n end;\n \n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-226448", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 543.175, "tool_calls": 38, "total_tokens": 1530100, "TurnCount": 42}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":1,\"grep\":18,\"powershell\":1,\"report_intent\":2,\"task\":1,\"update_todo\":4,\"view\":10}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\nindex c9d976f7..42954a59 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n@@ -951,6 +951,10 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n GeneralLedgerSetup.GetRecordOnce();\n UpdateNonDeductibleAmounts(GenJournalLine.\"Non-Deductible VAT Base ACY\", GenJournalLine.\"Non-Deductible VAT Amount ACY\", BaseAmountACY, VATAmountACY, GetNonDedVATPctFromGenJournalLine(GenJournalLine), GeneralLedgerSetup.\"Amount Rounding Precision\");\n AdjustVATAmounts(VATAmountACY, BaseAmountACY, GenJournalLine.\"Non-Deductible VAT Amount ACY\", GenJournalLine.\"Non-Deductible VAT Base ACY\");\n+ if GetNonDedVATPctFromGenJournalLine(GenJournalLine) = 100 then begin\n+ GenJournalLine.\"Non-Deductible VAT Base LCY\" := BaseAmount;\n+ GenJournalLine.\"Non-Deductible VAT Amount LCY\" := VATAmount;\n+ end;\n AdjustVATAmounts(VATAmount, BaseAmount, GenJournalLine.\"Non-Deductible VAT Amount LCY\", GenJournalLine.\"Non-Deductible VAT Base LCY\");\n end;\n \n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-206977", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 59, "tool_calls": 16, "total_tokens": 176700, "TurnCount": 9}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":2,\"grep\":10,\"report_intent\":2,\"view\":1}", "output": "diff --git a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\nindex 0877c357..49f16acc 100644\n--- a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\n+++ b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\n@@ -161,7 +161,12 @@ page 903 \"Assembly Lines\"\n AssemblyHeader: Record \"Assembly Header\";\n begin\n AssemblyHeader.Get(Rec.\"Document Type\", Rec.\"Document No.\");\n- PAGE.Run(PAGE::\"Assembly Order\", AssemblyHeader);\n+ case Rec.\"Document Type\" of\n+ Rec.\"Document Type\"::\"Blanket Order\":\n+ PAGE.Run(PAGE::\"Blanket Assembly Order\", AssemblyHeader);\n+ else\n+ PAGE.Run(PAGE::\"Assembly Order\", AssemblyHeader);\n+ end;\n end;\n }\n action(\"Reservation Entries\")\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-192565", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 184.02, "tool_calls": 19, "total_tokens": 257500, "TurnCount": 45}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":5,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":6}", "output": "diff --git a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\nindex fb45dbcf..09b9b67c 100644\n--- a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n@@ -5365,6 +5365,7 @@ table 39 \"Purchase Line\"\n Amount := 0;\n \"VAT Base Amount\" := 0;\n \"Amount Including VAT\" := 0;\n+ NonDeductibleVAT.ClearNonDeductibleVAT(Rec);\n OnUpdateVATAmountsOnBeforePurchLineModify(Rec, PurchLine2);\n if (Quantity = 0) and (xRec.Quantity <> 0) and (xRec.Amount <> 0) then begin\n if \"Line No.\" <> 0 then\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-211710", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 73.622, "tool_calls": 11, "total_tokens": 129300, "TurnCount": 14}, "Project": "Shopify", "ToolUsage": "{\"edit\":1,\"grep\":1,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":3}", "output": "diff --git a/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al b/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al\nindex 773ba116..52bfd17f 100644\n--- a/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al\n+++ b/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al\n@@ -17,7 +17,7 @@ report 30118 \"Shpfy Suggest Payments\"\n dataitem(OrderTransaction; \"Shpfy Order Transaction\")\n {\n RequestFilterFields = \"Created At\";\n- DataItemTableView = sorting(Type) where(Type = filter(Capture | Sale | Refund));\n+ DataItemTableView = sorting(Type) where(Type = filter(Capture | Sale | Refund), Status = const(Success));\n \n trigger OnAfterGetRecord()\n begin\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-179733", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 192.165, "tool_calls": 13, "total_tokens": 217800, "TurnCount": 38}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":1,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":4}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Job/JobTask.Table.al b/App/Layers/W1/BaseApp/Projects/Project/Job/JobTask.Table.al\nindex ca6d73fa..c68c3ce3 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Job/JobTask.Table.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Job/JobTask.Table.al\n@@ -1225,6 +1225,8 @@ table 1001 \"Job Task\"\n exit;\n if Job.\"Task Billing Method\" = Job.\"Task Billing Method\"::\"One customer\" then\n exit;\n+ if \"Job Task Type\" <> \"Job Task Type\"::Posting then\n+ exit;\n \n SetHideValidationDialog(true);\n if Job.\"Sell-to Customer No.\" <> '' then\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-222488", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 294.43399999999997, "tool_calls": 28, "total_tokens": 408400, "TurnCount": 35}, "Project": "BaseApp", "ToolUsage": "{\"edit\":3,\"grep\":7,\"report_intent\":2,\"task\":2,\"update_todo\":4,\"view\":10}", "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseMovementSubform.Page.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseMovementSubform.Page.al\nindex d0836460..bc1056f7 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseMovementSubform.Page.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseMovementSubform.Page.al\n@@ -320,6 +320,8 @@ page 7316 \"Warehouse Movement Subform\"\n WhseActivLine.Copy(Rec);\n WhseActivLine.FilterGroup(3);\n WhseActivLine.SetRange(Breakbulk);\n+ WhseActivLine.FilterGroup(4);\n+ WhseActivLine.SetRange(Breakbulk);\n WhseActivLine.FilterGroup(0);\n CODEUNIT.Run(CODEUNIT::\"Whse.-Act.-Register (Yes/No)\", WhseActivLine);\n Rec.Reset();\ndiff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePickSubform.Page.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePickSubform.Page.al\nindex 12c3ac91..d5831d29 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePickSubform.Page.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePickSubform.Page.al\n@@ -562,6 +562,8 @@ page 5780 \"Whse. Pick Subform\"\n WhseActivLine.Copy(Rec);\n WhseActivLine.FilterGroup(3);\n WhseActivLine.SetRange(Breakbulk);\n+ WhseActivLine.FilterGroup(4);\n+ WhseActivLine.SetRange(Breakbulk);\n WhseActivLine.FilterGroup(0);\n CODEUNIT.Run(CODEUNIT::\"Whse.-Act.-Register (Yes/No)\", WhseActivLine);\n Rec.Reset();\ndiff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al\nindex 07db37f9..d3f4657a 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al\n@@ -487,6 +487,8 @@ page 5771 \"Whse. Put-away Subform\"\n WhseActivLine.Copy(Rec);\n WhseActivLine.FilterGroup(3);\n WhseActivLine.SetRange(Breakbulk);\n+ WhseActivLine.FilterGroup(4);\n+ WhseActivLine.SetRange(Breakbulk);\n WhseActivLine.FilterGroup(0);\n CODEUNIT.Run(CODEUNIT::\"Whse.-Act.-Register (Yes/No)\", WhseActivLine);\n Rec.Reset();\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-176150", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 632.458, "tool_calls": 11, "total_tokens": 106100, "TurnCount": 34}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"report_intent\":2,\"store_memory\":1,\"task\":2,\"update_todo\":3,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al b/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\nindex 55d3fbad..933493a5 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\n@@ -1016,6 +1016,7 @@ page 5510 \"Production Journal\"\n protected procedure MarkRelevantRec(var ItemJournalLine: Record \"Item Journal Line\")\n begin\n ItemJournalLine := Rec;\n+ ItemJournalLine.CopyFilters(Rec);\n if ItemJournalLine.FindSet() then begin\n repeat\n case ItemJournalLine.\"Entry Type\" of\n", "error_message": null} diff --git a/notebooks/result/bug-fix/copilot-cf-opus-4-6/21855870368.jsonl b/notebooks/result/bug-fix/copilot-cf-opus-4-6/21855870368.jsonl new file mode 100644 index 000000000..0e6a95bdd --- /dev/null +++ b/notebooks/result/bug-fix/copilot-cf-opus-4-6/21855870368.jsonl @@ -0,0 +1,101 @@ +{"InstanceID": "microsoftInternal__NAV-218062", "scores": {"BuildRate": 0, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 338.81600000000003, "tool_calls": 32, "total_tokens": 561900, "TurnCount": 48}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":12,\"report_intent\":2,\"store_memory\":1,\"task\":1,\"update_todo\":3,\"view\":12}", "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Availability/WarehouseAvailabilityMgt.Codeunit.al b/App/Layers/W1/BaseApp/Warehouse/Availability/WarehouseAvailabilityMgt.Codeunit.al\nindex 0b63877a..29072881 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Availability/WarehouseAvailabilityMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Availability/WarehouseAvailabilityMgt.Codeunit.al\n@@ -53,6 +53,11 @@ codeunit 7314 \"Warehouse Availability Mgt.\"\n Database::\"Job Planning Line\", \"Job Planning Line Status\"::Order.AsInteger(), SourceNo, SourceLineNo, true);\n ReservEntry.SetSourceFilter('', 0);\n end;\n+ Database::\"Prod. Order Component\":\n+ begin\n+ ReservEntry.SetSourceFilter(SourceType, SourceSubType, SourceNo, SourceSubLineNo, true);\n+ ReservEntry.SetSourceFilter('', SourceLineNo);\n+ end;\n else begin\n IsHandled := false;\n OnCalcLineReservedQtyOnInvtOnSetSourceFilters(ReservEntry, SourceType, SourceSubType, SourceNo, SourceLineNo, SourceSubLineNo, IsHandled);\n", "error_message": "Build or publish failed for App\\Layers\\W1\\BaseApp:\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Warehouse\\Availability\\WarehouseAvailabilityMgt.Codeunit.al(56,23): error AL0118: The name '\"Prod. Order Component\"' does not exist in the current context."} +{"InstanceID": "microsoftInternal__NAV-210528", "scores": {"BuildRate": 0, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 58, "tool_calls": 7, "total_tokens": 81100, "TurnCount": 16}, "Project": "Sustainability", "ToolUsage": "{\"edit\":1,\"report_intent\":1,\"task\":1,\"update_todo\":2,\"view\":2}", "output": "diff --git a/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al b/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al\nindex 335c0099..26b9334a 100644\n--- a/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al\n+++ b/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al\n@@ -148,9 +148,15 @@ table 6217 \"Sustainability Setup\"\n \n trigger OnValidate()\n begin\n- if Rec.\"Enable Value Chain Tracking\" then\n+ if Rec.\"Enable Value Chain Tracking\" then begin\n if not ConfirmManagement.GetResponseOrDefault(ConfirmEnableValueChainTrackingQst, false) then\n Error('');\n+\n+ Rec.Validate(\"Use Emissions In Purchase Documents\", true);\n+ Rec.Validate(\"Item Emissions\", true);\n+ Rec.Validate(\"Resource Emissions\", true);\n+ Rec.Validate(\"Work/Machine Center Emissions\", true);\n+ end;\n end;\n }\n }\n", "error_message": "Build or publish failed for App\\Apps\\W1\\Sustainability\\app:\nC:\\Source\\App\\Apps\\W1\\Sustainability\\app\\src\\RoleCenters\\SustainabilityChartMgmt.Codeunit.al(27,86): warning AL0603: An implicit conversion is being performed from a value of type 'Enum System.Visualization.\"Business Chart Type\"' to a value of type 'Integer'. This conversion can lead to unexpected runtime issues.\nC:\\Source\\App\\Apps\\W1\\Sustainability\\app\\src\\RoleCenters\\SustainabilityChartMgmt.Codeunit.al(67,90): warning AL0603: An implicit conversion is being performed from a value of type 'Enum System.Visualization.\"Business Chart Type\"' to a value of type 'Integer'. This conversion can lead to unexpected runtime issues.\nC:\\Source\\App\\Apps\\W1\\Sustainability\\app\\src\\Setup\\SustainabilitySetup.Table.al(155,34): error AL0118: The name '\"Use Emissions In Purchase Documents\"' does not exist in the current context."} +{"InstanceID": "microsoftInternal__NAV-213741", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 75.061, "tool_calls": 12, "total_tokens": 194400, "TurnCount": 9}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":4,\"report_intent\":1,\"update_todo\":2,\"view\":4}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Costing/InventoryPostingToGL.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Costing/InventoryPostingToGL.Codeunit.al\nindex 9b9c14ed..c9332395 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Costing/InventoryPostingToGL.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Costing/InventoryPostingToGL.Codeunit.al\n@@ -564,6 +564,14 @@ codeunit 5802 \"Inventory Posting To G/L\"\n TempGlobalInvtPostingBuffer.\"Account Type\"::Inventory,\n TempGlobalInvtPostingBuffer.\"Account Type\"::\"Inventory Adjmt.\",\n CostToPost, CostToPostACY, false);\n+ ValueEntry.\"Entry Type\"::\"Direct Cost - Non Inventory\":\n+ if (CostToPost <> 0) or (CostToPostACY <> 0) then\n+ if MfgCostCalcMgt.CanIncNonInvCostIntoProductionItem() then\n+ InitInvtPostBuf(\n+ ValueEntry,\n+ TempGlobalInvtPostingBuffer.\"Account Type\"::Inventory,\n+ TempGlobalInvtPostingBuffer.\"Account Type\"::\"Direct Cost Non-Inventory Applied\",\n+ CostToPost, CostToPostACY, false);\n ValueEntry.\"Entry Type\"::\"Indirect Cost\":\n InitInvtPostBuf(\n ValueEntry,\n@@ -578,6 +586,13 @@ codeunit 5802 \"Inventory Posting To G/L\"\n TempGlobalInvtPostingBuffer.\"Account Type\"::Inventory,\n TempGlobalInvtPostingBuffer.\"Account Type\"::\"Material Variance\",\n CostToPost, CostToPostACY, false);\n+ ValueEntry.\"Variance Type\"::\"Material - Non Inventory\":\n+ if MfgCostCalcMgt.CanIncNonInvCostIntoProductionItem() then\n+ InitInvtPostBuf(\n+ ValueEntry,\n+ TempGlobalInvtPostingBuffer.\"Account Type\"::Inventory,\n+ TempGlobalInvtPostingBuffer.\"Account Type\"::\"Material - Non Inventory Variance\",\n+ CostToPost, CostToPostACY, false);\n ValueEntry.\"Variance Type\"::Capacity:\n InitInvtPostBuf(\n ValueEntry,\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137911'\nCodeunit 137911 SCM Calculate Assembly Cost\n Testfunction VerifyAdjustCostItemEntriesMustBeExecutedForAssemblyItem Failure (8.876 seconds)\n Error:\n Assert.RecordCount failed. Expected number of Value Entry entries: 0. Actual: 1. Filters: Item No.: GL00000000, Item Ledger Entry Type: Assembly Output, Entry Type: Direct Cost - Non Inventory. Records: 678, GL00000000, 06/03/26, Assembly Output, GL00000000, A00001, , , FINISHED, , 676, 1, 0, 0, 233, 0, 430, 0, , 0, ADMIN, INVTADJMT, 0, , , Item, 233, 0, , No, , DOMESTIC, RETAIL, 06/03/26, , 0, 0, 0, Posted Assembly, 0, 06/03/26, Assembly, A00001, 0, No, , No, No, Yes, 06/03/26, Direct Cost - Non Inventory, , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , 0, , Yes, No, 0, , , , , , , , , , , ; \n Call Stack:\n Assert(CodeUnit 130000).RecordCount line 18 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"SCM Calculate Assembly Cost\"(CodeUnit 137911).VerifyAdjustCostItemEntriesMustBeExecutedForAssemblyItem line 43 - Tests-SCM-Assembly by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-183399", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 198.673, "tool_calls": 14, "total_tokens": 187000, "TurnCount": 67}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":3,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\nindex 553ae9c0..cec7b1ec 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n@@ -255,6 +255,7 @@ page 254 \"Purchase Journal\"\n {\n ApplicationArea = Basic, Suite;\n AutoFormatExpression = Rec.\"Currency Code\";\n+ AutoFormatType = 1;\n Caption = 'Document Amount';\n ToolTip = 'Specifies the total amount (including VAT) that the journal line consists of.';\n \n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134918'\nCodeunit 134918 ERM Sales/Purchase Application\n Testfunction DocumentAmountInPurchJnlAcceptsMaxThreeDecimalPlacesValue Failure (4.613 seconds)\n Error:\n Assert.AreEqual failed. Expected:<1.747> (Decimal). Actual:<1.75> (Decimal). The document amount is not correct. Expected: 1.747, Actual: 1.75.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"ERM Sales/Purchase Application\"(CodeUnit 134918).DocumentAmountInPurchJnlAcceptsMaxThreeDecimalPlacesValue line 25 - Tests-ERM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"InstanceID": "microsoftInternal__NAV-207878", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 414.713, "tool_calls": 23, "total_tokens": 416200, "TurnCount": 106}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":5,\"report_intent\":2,\"store_memory\":1,\"task\":3,\"update_todo\":4,\"view\":7}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Availability/AvailabletoPromise.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Availability/AvailabletoPromise.Codeunit.al\nindex a486f294..7f66b5cd 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Availability/AvailabletoPromise.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Availability/AvailabletoPromise.Codeunit.al\n@@ -64,7 +64,7 @@ codeunit 5790 \"Available to Promise\"\n ScheduledReceipt := CalcScheduledReceipt(Item);\n GrossRequirement := CalcGrossRequirement(Item);\n \n- if AvailabilityDate <> 0D then\n+ if (AvailabilityDate <> 0D) and (Format(LookaheadDateFormula) <> '') then\n GrossRequirement +=\n CalculateForward(\n Item, PeriodType,\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134381'\nCodeunit 134381 ERM Dimension Priority\n Testfunction AvailWarningAssemblyOrdersConsideringDueDates Failure (8.39 seconds)\n Error:\n Assert.IsFalse failed. Avail. warning should be No\n Call Stack:\n Assert(CodeUnit 130000).IsFalse line 3 - Tests-TestLibraries by Microsoft version 26.0.0.0\n \"ERM Dimension Priority\"(CodeUnit 134381).AvailWarningAssemblyOrdersConsideringDueDates line 92 - Tests-Dimension by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-223493", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 101.443, "tool_calls": 7, "total_tokens": 108600, "TurnCount": 26}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":1,\"report_intent\":2,\"task\":1,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al b/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al\nindex 6a5f0a88..626b7429 100644\n--- a/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al\n@@ -56,6 +56,7 @@ codeunit 1409 \"Sales Inv. Header - Edit\"\n CustLedgerEntry.Description := SalesInvoiceHeader.\"Posting Description\";\n CustLedgerEntry.\"Promised Pay Date\" := SalesInvoiceHeader.\"Promised Pay Date\";\n CustLedgerEntry.\"Due Date\" := SalesInvoiceHeader.\"Due Date\";\n+ CustLedgerEntry.\"Your Reference\" := SalesInvoiceHeader.\"Your Reference\";\n if CustLedgerEntry.\"Dispute Status\" <> '' then begin\n if DisputeStatus.get(CustLedgerEntry.\"Dispute Status\") then\n if (DisputeStatus.\"Overwrite on hold\") and ClearOnHold(SalesInvoiceHeader) then\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134658'\nCodeunit 134658 Edit Posted Documents\n Testfunction VerifyYourReferenceUpdatedInCustLedgerEntry Failure (22.57 seconds)\n Error:\n Assert.AreEqual failed. Expected:<96aae9bef24e42cb99bfc29fc09badbcf5c> (Text). Actual:<> (Text). Customer Ledger Entry Your Reference not updated.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"Edit Posted Documents\"(CodeUnit 134658).VerifyYourReferenceUpdatedInCustLedgerEntry line 32 - Tests-ERM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-208649", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 398.022, "tool_calls": 26, "total_tokens": 445600, "TurnCount": 41}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":2,\"grep\":12,\"powershell\":1,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":5}", "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\nindex 36930a9e..058f96b4 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n@@ -263,7 +263,6 @@ codeunit 99000773 \"Calculate Prod. Order\"\n Item2: Record Item;\n ComponentSKU: Record \"Stockkeeping Unit\";\n IsHandled: Boolean;\n- QtyRoundPrecision: Decimal;\n begin\n ProdOrderComp.Reset();\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\", \"Item No.\");\n@@ -295,12 +294,7 @@ codeunit 99000773 \"Calculate Prod. Order\"\n ProdOrderComp.\"Bin Code\" := GetDefaultBin();\n ProdOrderComp.Description := ProdBOMLine[Level].Description;\n ProdOrderComp.Validate(\"Unit of Measure Code\", ProdBOMLine[Level].\"Unit of Measure Code\");\n- if (ProdOrderComp.\"Item No.\" <> '') and Item2.Get(ProdOrderComp.\"Item No.\") then\n- QtyRoundPrecision := UOMMgt.GetQtyRoundingPrecision(Item2, ProdBOMLine[Level].\"Unit of Measure Code\");\n- if QtyRoundPrecision <> 0 then\n- ProdOrderComp.\"Quantity per\" := Round(ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM, QtyRoundPrecision)\n- else\n- ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n+ ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n ProdOrderComp.Length := ProdBOMLine[Level].Length;\n ProdOrderComp.Width := ProdBOMLine[Level].Width;\n ProdOrderComp.Weight := ProdBOMLine[Level].Weight;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137088'\nCodeunit 137088 SCM Order Planning - III\n Testfunction ReleasedProdOrderQuantityPerandExpectedQtyRoundingPrecisionChecking Failure (7.337 seconds)\n Error:\n The value in the Qty. Rounding Precision field on the Item Unit of Measure page is causing the rounding precision for the Expected Quantity field to be incorrect.\n Call Stack:\n \"Prod. Order Component\"(Table 5407).\"Expected Quantity - OnValidate\"(Trigger) line 26 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).UpdateExpectedQuantity line 14 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).\"Routing Link Code - OnValidate\"(Trigger) line 5 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).TransferBOMProcessItem line 45 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).TransferBOM line 70 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).Calculate line 105 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order Lines\"(CodeUnit 99000787).ProcessProdOrderLines line 13 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order Lines\"(CodeUnit 99000787).Copy line 23 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order from Sale\"(CodeUnit 99000792).CreateProductionOrder line 54 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateOrder line 11 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateOrders line 35 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateProdOrder line 24 - Base Application by Microsoft version 26.0.0.0\n \"Library - Planning\"(CodeUnit 132203).CreateProdOrderUsingPlanning line 6 - Tests-TestLibraries by Microsoft version 26.0.0.0\n \"SCM Order Planning - III\"(CodeUnit 137088).ReleasedProdOrderQuantityPerandExpectedQtyRoundingPrecisionChecking line 50 - Tests-SCM by Microsoft version 26.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-188438", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 39, "tool_calls": 9, "total_tokens": 86800, "TurnCount": 5}, "Project": "Sustainability", "ToolUsage": "{\"edit\":1,\"grep\":4,\"report_intent\":2,\"view\":2}", "output": "diff --git a/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al b/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al\nindex 4644c873..e3cd8fe4 100644\n--- a/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al\n+++ b/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al\n@@ -88,7 +88,7 @@ codeunit 6218 \"Sustainability Calc. Mgt.\"\n CollectAmountFromGLEntry.LookupMode(true);\n if CollectAmountFromGLEntry.RunModal() = Action::LookupOK then begin\n CollectAmountFromGLEntry.GetDates(FromDate, ToDate);\n- SustainabilityJnlLine.Validate(\"Custom Amount\", GetCollectableGLAmount(SustainAccountCategory, FromDate, ToDate));\n+ SustainabilityJnlLine.Validate(\"Custom Amount\", Abs(GetCollectableGLAmount(SustainAccountCategory, FromDate, ToDate)));\n end;\n end;\n \n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '148181'\nCodeunit 148181 Sustainability Journal Test\n Testfunction TestCustomAmountIsPositiveForNegativeTotalOfGL Failure (4.09 seconds)\n Error:\n Assert.AreEqual failed. Expected:<248.67> (Decimal). Actual:<-248.67> (Decimal). The custom amount must be positive.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"Sustainability Journal Test\"(CodeUnit 148181).TestCustomAmountIsPositiveForNegativeTotalOfGL line 31 - Sustainability Tests by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"InstanceID": "microsoftInternal__NAV-201169", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 167.679, "tool_calls": 28, "total_tokens": 626100, "TurnCount": 38}, "Project": "Shopify", "ToolUsage": "{\"edit\":2,\"glob\":3,\"grep\":7,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":9}", "output": "diff --git a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\nindex 38d77856..a513bdfd 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n@@ -26,6 +26,7 @@ codeunit 30174 \"Shpfy Create Product\"\n Getlocations: Boolean;\n ProductId: BigInteger;\n ItemVariantIsBlockedLbl: Label 'Item variant is blocked or sales blocked.';\n+ ProductTitleIsBlankLbl: Label 'Product title is blank.';\n \n trigger OnRun()\n var\n@@ -51,13 +52,19 @@ codeunit 30174 \"Shpfy Create Product\"\n TempShopifyProduct: Record \"Shpfy Product\" temporary;\n TempShopifyVariant: Record \"Shpfy Variant\" temporary;\n TempShopifyTag: Record \"Shpfy Tag\" temporary;\n+ SkippedRecord: Codeunit \"Shpfy Skipped Record\";\n begin\n CreateTempProduct(Item, TempShopifyProduct, TempShopifyVariant, TempShopifyTag);\n+ if TempShopifyProduct.Title = '' then begin\n+ SkippedRecord.LogSkippedRecord(Item.RecordId, ProductTitleIsBlankLbl, Shop);\n+ exit;\n+ end;\n if not VariantApi.FindShopifyProductVariant(TempShopifyProduct, TempShopifyVariant) then\n ProductId := ProductApi.CreateProduct(TempShopifyProduct, TempShopifyVariant, TempShopifyTag)\n else\n ProductId := TempShopifyProduct.Id;\n- ProductExport.UpdateProductTranslations(ProductId, Item);\n+ if ProductId <> 0 then\n+ ProductExport.UpdateProductTranslations(ProductId, Item);\n end;\n \n internal procedure CreateTempProduct(Item: Record Item; var TempShopifyProduct: Record \"Shpfy Product\" temporary; var TempShopifyVariant: Record \"Shpfy Variant\" temporary; var TempShopifyTag: Record \"Shpfy Tag\" temporary)\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139581'\nCodeunit 139581 Shpfy Skipped Record Log Test\n Testfunction UnitTestLogItemEmptyDescription Failure (6.683 seconds)\n Error:\n The response from Shopify contains no JSON. \\Requested: {\"query\":\"{ locations(first: 20, includeLegacy: true) { pageInfo { hasNextPage endCursor } nodes { legacyResourceId isActive isPrimary name fulfillmentService { serviceName }}}}\"} \\Response: \n Call Stack:\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 21 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 4 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 6 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Sync Shop Locations\"(CodeUnit 30198).SyncLocations line 20 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Sync Shop Locations\"(CodeUnit 30198).OnRun(Trigger) line 4 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Create Product\"(CodeUnit 30174).OnRun(Trigger) line 5 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Add Item to Shopify\"(Report 30106).\"Item - OnAfterGetRecord\"(Trigger) line 12 - Shopify Connector by Microsoft version 26.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-215225", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 290.828, "tool_calls": 24, "total_tokens": 480600, "TurnCount": 73}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":3,\"report_intent\":4,\"task\":2,\"update_todo\":2,\"view\":11}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobJournalLine.Table.al b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobJournalLine.Table.al\nindex fb253f0b..1498c85c 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobJournalLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobJournalLine.Table.al\n@@ -1873,11 +1873,12 @@ table 210 \"Job Journal Line\"\n IsQuantityChangedForPrice() or\n (\"Work Type Code\" <> xRec.\"Work Type Code\") or\n (\"Unit of Measure Code\" <> xRec.\"Unit of Measure Code\") or\n+ (Quantity <> xRec.Quantity) or\n ((\"Posting Date\" <> xRec.\"Posting Date\") and (\"Currency Code\" <> ''))\n then\n exit(true);\n Type::\"G/L Account\":\n- if (\"No.\" <> xRec.\"No.\") or IsQuantityChangedForPrice() then\n+ if (\"No.\" <> xRec.\"No.\") or IsQuantityChangedForPrice() or (Quantity <> xRec.Quantity) then\n exit(true);\n else\n exit(false);\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136305'\nCodeunit 136305 Job Journal\n Testfunction CheckUnitCostAndPriceNotZeroInRecurringJobJnlAfterPosting Failure (7.45 seconds)\n Error:\n AssertEquals for Field: Unit Price Expected = '455.00', Actual = '0.00'\n Call Stack:\n \"Job Journal\"(CodeUnit 136305).CheckUnitCostAndPriceNotZeroInRecurringJobJnlAfterPosting line 23 - Tests-Job by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-209737", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 294.85, "tool_calls": 34, "total_tokens": 866700, "TurnCount": 55}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":12,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":15}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al b/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\nindex e995c8ed..1c9d6c9b 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\n@@ -881,8 +881,10 @@ table 36 \"Sales Header\"\n begin\n ResetInvoiceDiscountValue();\n \n- if \"Currency Factor\" <> xRec.\"Currency Factor\" then\n+ if \"Currency Factor\" <> xRec.\"Currency Factor\" then begin\n UpdateSalesLinesByFieldNo(FieldNo(\"Currency Factor\"), false);\n+ SalesCalcDiscountByType.ApplyDefaultInvoiceDiscount(0, Rec, true);\n+ end;\n end;\n }\n field(34; \"Customer Price Group\"; Code[10])\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137408'\nCodeunit 137408 SCM Warehouse VI\n Testfunction InvDiscPctAndAmtInSOIsNotZeroWhenCreateAndShipInvPickFromSOHavingInvDiscPctAndAmt Failure (24.6 seconds)\n Error:\n AssertEquals for Field: Invoice Disc. Pct. Expected = '10', Actual = '0'\n Call Stack:\n \"SCM Warehouse VI\"(CodeUnit 137408).InvDiscPctAndAmtInSOIsNotZeroWhenCreateAndShipInvPickFromSOHavingInvDiscPctAndAmt line 102 - Tests-SCM by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-207236", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 91.90299999999999, "tool_calls": 21, "total_tokens": 317200, "TurnCount": 15}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":8,\"report_intent\":3,\"update_todo\":2,\"view\":6}", "output": "diff --git a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseHeader.Table.al b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseHeader.Table.al\nindex 18898d3e..766c5a6c 100644\n--- a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseHeader.Table.al\n@@ -6421,7 +6421,7 @@ table 38 \"Purchase Header\"\n \n if ReplacePostingDate then begin\n \"Posting Date\" := PostingDateReq;\n- Validate(\"Currency Code\");\n+ UpdateCurrencyFactor();\n end;\n \n if ReplacePostingDate and ReplaceDocDate and (\"Document Date\" <> PostingDateReq) then begin\ndiff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al b/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\nindex fbf39fce..ed2a68f5 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\n@@ -7038,7 +7038,7 @@ table 36 \"Sales Header\"\n exit;\n \n \"Posting Date\" := PostingDateReq;\n- Validate(\"Currency Code\");\n+ UpdateCurrencyFactor();\n \n if ReplaceVATDate then\n \"VAT Reporting Date\" := VATDateReq;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134391'\nCodeunit 134391 ERM Sales Batch Posting\n Testfunction BatchPostSaleInvoiceWithReplacePostingDateAndCurrencyCode Failure (11.747 seconds)\n Error:\n There is no Job Queue Entry within the filter.\\\\Filters: Record ID to Process: Sales Header: Invoice,102222\n Call Stack:\n \"Library - Job Queue\"(CodeUnit 132458).FindAndRunJobQueueEntryByRecordId line 5 - Tests-TestLibraries by Microsoft version 26.0.0.0\n \"Library - Job Queue\"(CodeUnit 132458).FindAndRunJobQueueEntryByRecordId line 2 - Tests-TestLibraries by Microsoft version 26.0.0.0\n \"ERM Sales Batch Posting\"(CodeUnit 134391).BatchPostSaleInvoiceWithReplacePostingDateAndCurrencyCode line 22 - Tests-ERM by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-176426", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 511.763, "tool_calls": 25, "total_tokens": 394700, "TurnCount": 49}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":2,\"grep\":5,\"report_intent\":3,\"task\":2,\"update_todo\":3,\"view\":9}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\nindex d639a562..27a45311 100644\n--- a/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\n@@ -993,7 +993,7 @@ codeunit 5870 \"Calculate BOM Tree\"\n exit(true);\n end;\n Item.\"Replenishment System\"::\"Prod. Order\":\n- if Item.\"Production BOM No.\" <> '' then\n+ if (Item.\"Production BOM No.\" <> '') or (Item.\"Routing No.\" <> '') then\n exit(true);\n end;\n end;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137391'\nCodeunit 137391 SCM - BOM Cost Shares Report\n Testfunction RolledUpMaterialAndCapacityCostWithRoutingAndNoBOM Failure (3.607 seconds)\n Error:\n AssertEquals for Field: Rolled-up Material Cost Expected = '497.28', Actual = ''\n Call Stack:\n \"SCM - BOM Cost Shares Report\"(CodeUnit 137391).VerifyParentItemMaterialAndCapacityCost line 7 - Tests-SCM by Microsoft\n \"SCM - BOM Cost Shares Report\"(CodeUnit 137391).RolledUpMaterialAndCapacityCostWithRoutingAndNoBOM line 34 - Tests-SCM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"InstanceID": "microsoftInternal__NAV-222484", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 781.928, "tool_calls": 48, "total_tokens": 2025000, "TurnCount": 105}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":4,\"grep\":12,\"report_intent\":3,\"task\":3,\"update_todo\":3,\"view\":22}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/QtyReservedFromItemLedger.Query.al b/App/Layers/W1/BaseApp/Inventory/Tracking/QtyReservedFromItemLedger.Query.al\nindex 9eee9466..c69041d0 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/QtyReservedFromItemLedger.Query.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/QtyReservedFromItemLedger.Query.al\n@@ -26,9 +26,6 @@ query 522 \"Qty. Reserved From Item Ledger\"\n filter(Item_No_; \"Item No.\") { }\n filter(Variant_Code; \"Variant Code\") { }\n filter(Location_Code; \"Location Code\") { }\n- filter(Serial_No_; \"Serial No.\") { }\n- filter(Lot_No_; \"Lot No.\") { }\n- filter(Package_No_; \"Package No.\") { }\n column(Quantity__Base_; \"Quantity (Base)\")\n {\n Method = Sum;\n@@ -42,6 +39,10 @@ query 522 \"Qty. Reserved From Item Ledger\"\n DataItemTableFilter = Positive = const(true),\n \"Source Type\" = const(Database::\"Item Ledger Entry\"),\n \"Reservation Status\" = const(Reservation);\n+\n+ filter(Serial_No_; \"Serial No.\") { }\n+ filter(Lot_No_; \"Lot No.\") { }\n+ filter(Package_No_; \"Package No.\") { }\n }\n }\n }\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137260'\nCodeunit 137260 SCM Inventory Item Tracking\n Testfunction RegisterPickWithNoErrorForFEFOLocation Failure (15.977 seconds)\n Error:\n Lot No. must have a value in Warehouse Activity Line: Activity Type=Pick, No.=PI000001, Line No.=10000. It cannot be zero or empty.\n Call Stack:\n \"Warehouse Activity Line\"(Table 5767).TestTrackingIfRequired line 12 - Base Application by Microsoft version 27.0.0.0\n \"Whse.-Activity-Register\"(CodeUnit 7307).CheckWhseItemTrkgLine line 36 - Base Application by Microsoft version 27.0.0.0\n \"Whse.-Activity-Register\"(CodeUnit 7307).Code line 18 - Base Application by Microsoft version 27.0.0.0\n \"Whse.-Activity-Register\"(CodeUnit 7307).OnRun(Trigger) line 4 - Base Application by Microsoft version 27.0.0.0\n \"Library - Warehouse\"(CodeUnit 132204).RegisterWhseActivity line 10 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"SCM Inventory Item Tracking\"(CodeUnit 137260).RegisterPickWithNoErrorForFEFOLocation line 56 - Tests-SCM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-206135", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 737.65, "tool_calls": 74, "total_tokens": 3018400, "TurnCount": 154}, "Project": "BaseApp", "ToolUsage": "{\"edit\":3,\"glob\":2,\"grep\":23,\"powershell\":2,\"report_intent\":3,\"task\":4,\"update_todo\":3,\"view\":34}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostReceipt.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostReceipt.Codeunit.al\nindex 1ceabce9..877ec530 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostReceipt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostReceipt.Codeunit.al\n@@ -199,7 +199,7 @@ codeunit 5705 \"TransferOrder-Post Receipt\"\n if WhseReceive then\n WhseRcptLine.LockTable();\n TransHeader.LockTable();\n- if WhseReceive then begin\n+ if WhseReceive and not PreviewMode then begin\n WhsePostRcpt.PostUpdateWhseDocuments(WhseRcptHeader);\n TempWhseRcptHeader.Delete();\n end;\ndiff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostShipment.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostShipment.Codeunit.al\nindex ce405d49..1206adb8 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostShipment.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostShipment.Codeunit.al\n@@ -192,7 +192,7 @@ codeunit 5704 \"TransferOrder-Post Shipment\"\n if WhseShip then\n WhseShptLine.LockTable();\n TransHeader.LockTable();\n- if WhseShip then begin\n+ if WhseShip and not PreviewMode then begin\n WhsePostShpt.PostUpdateWhseDocuments(WhseShptHeader);\n TempWhseShptHeader.Delete();\n end;\ndiff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostTransfer.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostTransfer.Codeunit.al\nindex 8c7f8d02..6a723b15 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostTransfer.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostTransfer.Codeunit.al\n@@ -175,7 +175,7 @@ codeunit 5856 \"TransferOrder-Post Transfer\"\n if WhseShip then\n WhseShptLine.LockTable();\n \n- if WhseShip then begin\n+ if WhseShip and not PreviewMode then begin\n WhsePostShipment.PostUpdateWhseDocuments(WhseShptHeader);\n TempWhseShptHeader.Delete();\n end;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137154'\nCodeunit 137154 SCM Warehouse Management II\n Testfunction WarehouseShipmentPageRemainsOpenWhenRunPreviewPostAndCloseGLPostingPreviewPage Failure (12.56 seconds)\n Error:\n The TestPage is not open.\n Call Stack:\n \"SCM Warehouse Management II\"(CodeUnit 137154).WarehouseShipmentPageRemainsOpenWhenRunPreviewPostAndCloseGLPostingPreviewPage line 49 - Tests-SCM by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-182354", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 71.503, "tool_calls": 12, "total_tokens": 171900, "TurnCount": 7}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":3,\"report_intent\":2,\"view\":5}", "output": "diff --git a/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al b/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al\nindex 737182d0..37eec66b 100644\n--- a/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al\n+++ b/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al\n@@ -28,7 +28,7 @@ page 1318 \"Account Receivables KPIs\"\n begin\n CustLedgerEntry.SetRange(Open, true);\n CustLedgerEntry.SetFilter(\"Remaining Amount\", '>%1', 0);\n- CustLedgerEntry.SetFilter(\"Due Date\", '<=%1', WorkDate());\n+ CustLedgerEntry.SetFilter(\"Due Date\", '<=%1', Today());\n CustomerLedgerEntries.SetTableView(CustLedgerEntry);\n CustomerLedgerEntries.Run();\n end;\n@@ -98,7 +98,7 @@ page 1318 \"Account Receivables KPIs\"\n CuesAndKPIs: Codeunit \"Cues And KPIs\";\n SalesInvoicesDueNextWeekStyle: Enum \"Cues And KPIs Style\";\n begin\n- Rec.SetRange(\"Overdue Date Filter\", 0D, WorkDate());\n+ Rec.SetRange(\"Overdue Date Filter\", 0D, Today());\n if not Rec.Get() then begin\n Clear(Rec);\n Rec.Insert();\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134924'\nCodeunit 134924 ERM Cues\n Testfunction TotalOverdueLCYInFinanceCue Failure (5.917 seconds)\n Error:\n Assert.AreEqual failed. Expected:<> (Text). Actual:<50.17> (Text). The total overdue LCY amount is not calculated correctly..\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"ERM Cues\"(CodeUnit 134924).TotalOverdueLCYInFinanceCue line 37 - Tests-ERM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"InstanceID": "microsoftInternal__NAV-180484", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 137.486, "tool_calls": 24, "total_tokens": 273500, "TurnCount": 25}, "Project": "BaseApp", "ToolUsage": "{\"edit\":4,\"grep\":6,\"powershell\":1,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":8}", "output": "diff --git a/App/Layers/W1/BaseApp/eServices/EDocument/IncomingDocument.Table.al b/App/Layers/W1/BaseApp/eServices/EDocument/IncomingDocument.Table.al\nindex 2341887c..0ac55525 100644\n--- a/App/Layers/W1/BaseApp/eServices/EDocument/IncomingDocument.Table.al\n+++ b/App/Layers/W1/BaseApp/eServices/EDocument/IncomingDocument.Table.al\n@@ -506,12 +506,23 @@ table 130 \"Incoming Document\"\n Error(DocAlreadyCreatedErr);\n end;\n \n+ local procedure SetProcessedDocStatus()\n+ begin\n+ if Status <> Status::Created then begin\n+ Status := Status::Created;\n+ Modify(true);\n+ Commit();\n+ end;\n+ end;\n+\n procedure CreateDocumentWithDataExchange()\n var\n RelatedRecord: Variant;\n begin\n- if GetRecord(RelatedRecord) then\n+ if GetRecord(RelatedRecord) then begin\n+ SetProcessedDocStatus();\n Error(DocAlreadyCreatedErr);\n+ end;\n \n CreateWithDataExchange(\"Document Type\"::\" \")\n end;\n@@ -622,8 +633,10 @@ table 130 \"Incoming Document\"\n if IsHandled then\n exit;\n \n- if GetRecord(RelatedRecord) then\n+ if GetRecord(RelatedRecord) then begin\n+ SetProcessedDocStatus();\n Error(DocAlreadyCreatedErr);\n+ end;\n \n CreatedDocumentType.Add(1, \"Document Type\"::Journal.AsInteger());\n CreatedDocumentType.Add(2, \"Document Type\"::\"Sales Invoice\".AsInteger());\n@@ -755,8 +768,10 @@ table 130 \"Incoming Document\"\n ErrorMessage: Record \"Error Message\";\n RelatedRecord: Variant;\n begin\n- if GetRecord(RelatedRecord) then\n+ if GetRecord(RelatedRecord) then begin\n+ SetProcessedDocStatus();\n Error(DocAlreadyCreatedErr);\n+ end;\n \n CreateWithDataExchange(\"Document Type\"::Journal);\n \n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139154'\nCodeunit 139154 Incoming Doc. To Data Exch.UT\n Testfunction StatusRemainsCreatedIfHasLinkedDocWhenReopenIncomingDoc Failure (16.72 seconds)\n Error:\n Assert.AreEqual failed. Expected: (Text). Actual: (Text). Status must be Created in Incoming Document.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"Incoming Doc. To Data Exch.UT\"(CodeUnit 139154).StatusRemainsCreatedIfHasLinkedDocWhenReopenIncomingDoc line 53 - Tests-Data Exchange by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"InstanceID": "microsoftInternal__NAV-215645", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 543.396, "tool_calls": 42, "total_tokens": 1124200, "TurnCount": 51}, "Project": "SubscriptionBilling", "ToolUsage": "{\"edit\":1,\"glob\":1,\"grep\":12,\"read_agent\":4,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":17}", "output": "diff --git a/App/Apps/W1/SubscriptionBilling/App/Billing/Codeunits/CreateBillingDocuments.Codeunit.al b/App/Apps/W1/SubscriptionBilling/App/Billing/Codeunits/CreateBillingDocuments.Codeunit.al\nindex c7efaed2..c289816a 100644\n--- a/App/Apps/W1/SubscriptionBilling/App/Billing/Codeunits/CreateBillingDocuments.Codeunit.al\n+++ b/App/Apps/W1/SubscriptionBilling/App/Billing/Codeunits/CreateBillingDocuments.Codeunit.al\n@@ -261,6 +261,7 @@ codeunit 8060 \"Create Billing Documents\"\n SalesLine.\"Description 2\" := '';\n \n SetInvoicePriceFromUsageDataBilling(SalesLine, TempBillingLine);\n+ SalesLine.\"Exclude from Doc. Total\" := false;\n OnBeforeInsertSalesLineFromContractLine(SalesLine, TempBillingLine);\n SalesLine.Insert(false);\n \n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '148155'\nCodeunit 148155 Contracts Test\n Testfunction SalesInvoiceShowsSubtotalForServCommItem Failure (10.417 seconds)\n Error:\n Exclude from Document Total must be equal to 'No' in Sales Line: Document Type=Invoice, Document No.=102222, Line No.=10000. Current value is 'Yes'.\n Call Stack:\n \"Contracts Test\"(CodeUnit 148155).SalesInvoiceShowsSubtotalForServCommItem line 22 - Subscription Billing Test by Microsoft version 26.3.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.3.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.3.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.3.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.3.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.3.0.0"} +{"InstanceID": "microsoftInternal__NAV-223790", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 526.307, "tool_calls": 61, "total_tokens": 2924700, "TurnCount": 50}, "Project": "BaseApp", "ToolUsage": "{\"edit\":6,\"glob\":5,\"grep\":17,\"powershell\":4,\"report_intent\":3,\"store_memory\":1,\"task\":1,\"update_todo\":4,\"view\":20}", "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/CalculateLowLevelCode.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/CalculateLowLevelCode.Codeunit.al\nindex 1dcd950b..54777684 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/CalculateLowLevelCode.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/CalculateLowLevelCode.Codeunit.al\n@@ -6,6 +6,7 @@ namespace Microsoft.Manufacturing.ProductionBOM;\n \n using Microsoft.Inventory.BOM;\n using Microsoft.Inventory.Item;\n+using Microsoft.Inventory.Location;\n using Microsoft.Manufacturing.Setup;\n \n codeunit 99000793 \"Calculate Low-Level Code\"\n@@ -42,6 +43,7 @@ codeunit 99000793 \"Calculate Low-Level Code\"\n Item2: Record Item;\n ProdBOMLine: Record \"Production BOM Line\";\n AsmBOMComp: Record \"BOM Component\";\n+ SKU: Record \"Stockkeeping Unit\";\n ActLevel: Integer;\n TotalLevels: Integer;\n CalculateDeeperLevel: Boolean;\n@@ -68,6 +70,16 @@ codeunit 99000793 \"Calculate Low-Level Code\"\n if ActLevel > TotalLevels then\n TotalLevels := ActLevel;\n until Item2.Next() = 0;\n+ SKU.SetRange(\"Production BOM No.\", No);\n+ if SKU.FindSet() then\n+ repeat\n+ if Item2.Get(SKU.\"Item No.\") then\n+ if Item2.\"Production BOM No.\" <> No then begin\n+ ActLevel := CalcLevels(Type::Item, Item2.\"No.\", Level + 1, LevelDepth + 1);\n+ if ActLevel > TotalLevels then\n+ TotalLevels := ActLevel;\n+ end;\n+ until SKU.Next() = 0;\n OnCalcLevelsForProdBOM(Item2, No, Level, LevelDepth, TotalLevels);\n end;\n Type::Assembly:\n@@ -175,6 +187,7 @@ codeunit 99000793 \"Calculate Low-Level Code\"\n procedure SetRecursiveLevelsOnItem(var CompItem: Record Item; LowLevelCode: Integer; IgnoreMissingItemsOrBOMs: Boolean)\n var\n CompBOM: Record \"Production BOM Header\";\n+ SKU: Record \"Stockkeeping Unit\";\n xLowLevelCode: Integer;\n EntityPresent: Boolean;\n IsHandled: Boolean;\n@@ -196,6 +209,14 @@ codeunit 99000793 \"Calculate Low-Level Code\"\n if EntityPresent or (not IgnoreMissingItemsOrBOMs) then\n SetRecursiveLevelsOnBOM(CompBOM, CompItem.\"Low-Level Code\" + 1, IgnoreMissingItemsOrBOMs);\n end;\n+ SKU.SetRange(\"Item No.\", CompItem.\"No.\");\n+ SKU.SetFilter(\"Production BOM No.\", '<>%1&<>%2', '', CompItem.\"Production BOM No.\");\n+ if SKU.FindSet() then\n+ repeat\n+ EntityPresent := CompBOM.Get(SKU.\"Production BOM No.\");\n+ if EntityPresent or (not IgnoreMissingItemsOrBOMs) then\n+ SetRecursiveLevelsOnBOM(CompBOM, CompItem.\"Low-Level Code\" + 1, IgnoreMissingItemsOrBOMs);\n+ until SKU.Next() = 0;\n OnSetRecursiveLevelsOnItemOnBeforeCompItemModify(CompItem, IgnoreMissingItemsOrBOMs);\n CompItem.Modify();\n end;\ndiff --git a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/LowLevelCodeCalculator.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/LowLevelCodeCalculator.Codeunit.al\nindex fcabc2e0..a027e35a 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/LowLevelCodeCalculator.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/LowLevelCodeCalculator.Codeunit.al\n@@ -6,6 +6,7 @@ namespace Microsoft.Inventory.BOM.Tree;\n \n using Microsoft.Inventory.BOM;\n using Microsoft.Inventory.Item;\n+using Microsoft.Inventory.Location;\n using Microsoft.Manufacturing.ProductionBOM;\n using System.Threading;\n using System.Utilities;\n@@ -88,6 +89,7 @@ codeunit 3687 \"Low-Level Code Calculator\"\n begin\n // Set nodes on the tree\n PopulateFromItemAndRelatedBOMs(BOMStructure);\n+ PopulateFromSKUAndRelatedBOMs(BOMStructure);\n PopulateFromProductionBOMAndLines(BOMStructure);\n PopulateFromBOMComponents(BOMStructure);\n end;\n@@ -192,6 +194,45 @@ codeunit 3687 \"Low-Level Code Calculator\"\n ItemProductionBOMs.Close();\n end;\n \n+ local procedure PopulateFromSKUAndRelatedBOMs(BOMStructure: Codeunit \"BOM Tree\")\n+ var\n+ StockkeepingUnit: Record \"Stockkeeping Unit\";\n+ Item: Record Item;\n+ ProductionBOMHeader: Record \"Production BOM Header\";\n+ Parent: Codeunit \"BOM Node\";\n+ Child: Codeunit \"BOM Node\";\n+ begin\n+ StockkeepingUnit.SetFilter(\"Production BOM No.\", '<>%1', '');\n+ if StockkeepingUnit.FindSet() then\n+ repeat\n+ Item.SetLoadFields(\"No.\", \"Low-Level Code\", \"Production BOM No.\");\n+ if Item.Get(StockkeepingUnit.\"Item No.\") then\n+ if Item.\"Production BOM No.\" <> StockkeepingUnit.\"Production BOM No.\" then begin\n+ ProductionBOMHeader.SetLoadFields(\"No.\", \"Low-Level Code\", Status);\n+ if ProductionBOMHeader.Get(StockkeepingUnit.\"Production BOM No.\") then\n+ if CheckSKUProductionBOMIsCertified(StockkeepingUnit.\"Production BOM No.\", ProductionBOMHeader.Status) then begin\n+ Parent.CreateForItem(Item.\"No.\", Item.\"Low-Level Code\", LowLevelCodeParam);\n+ Child.CreateForProdBOM(ProductionBOMHeader.\"No.\", ProductionBOMHeader.\"Low-Level Code\", LowLevelCodeParam);\n+\n+ AddChildToParent(BOMStructure, Parent, Child);\n+\n+ Clear(Parent);\n+ Clear(Child);\n+ end;\n+ end;\n+ until StockkeepingUnit.Next() = 0;\n+ end;\n+\n+ local procedure CheckSKUProductionBOMIsCertified(ProductionBOMNo: Code[20]; BOMStatus: Enum \"BOM Status\"): Boolean\n+ var\n+ VersionManagement: Codeunit VersionManagement;\n+ begin\n+ if BOMStatus = BOMStatus::Certified then\n+ exit(true);\n+\n+ exit(VersionManagement.GetBOMVersion(ProductionBOMNo, WorkDate(), true) <> '');\n+ end;\n+\n local procedure PopulateFromProductionBOMAndLines(BOMStructure: Codeunit \"BOM Tree\")\n var\n ProductionBOMHeader: Record \"Production BOM Header\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137035'\nCodeunit 137035 SCM PS Bugs-I\n Testfunction CheckPlanningWorksheetPlanComponentwhenStockkeepingUnitsSetup Failure (16.876 seconds)\n Error:\n Assert.AreEqual failed. Expected:<1> (Integer). Actual:<0> (Integer). New planning worksheet line not created for component item.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"SCM PS Bugs-I\"(CodeUnit 137035).CheckPlanningWorksheetPlanComponentwhenStockkeepingUnitsSetup line 85 - Tests-SCM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-177750", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 944.566, "tool_calls": 35, "total_tokens": 815400, "TurnCount": 224}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":3,\"glob\":1,\"grep\":2,\"powershell\":2,\"report_intent\":4,\"store_memory\":2,\"task\":6,\"update_todo\":4,\"view\":10}", "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al b/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al\nindex 320720d7..2b1062c4 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al\n@@ -2096,9 +2096,11 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n case CurrLocation.\"Special Equipment\" of\n CurrLocation.\"Special Equipment\"::\"According to Bin\":\n begin\n- GetBin(CurrLocation.Code, BinCode);\n- if CurrBin.\"Special Equipment Code\" <> '' then\n- exit(CurrBin.\"Special Equipment Code\");\n+ if BinCode <> '' then begin\n+ GetBin(CurrLocation.Code, BinCode);\n+ if CurrBin.\"Special Equipment Code\" <> '' then\n+ exit(CurrBin.\"Special Equipment Code\");\n+ end;\n \n GetItemAndSKU(ItemNo, LocationCode, VariantCode);\n if CurrStockKeepingUnit.\"Special Equipment Code\" <> '' then\n@@ -2115,8 +2117,10 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n if CurrItem.\"Special Equipment Code\" <> '' then\n exit(CurrItem.\"Special Equipment Code\");\n \n- GetBin(CurrLocation.Code, BinCode);\n- exit(CurrBin.\"Special Equipment Code\")\n+ if BinCode <> '' then begin\n+ GetBin(CurrLocation.Code, BinCode);\n+ exit(CurrBin.\"Special Equipment Code\");\n+ end;\n end\n end\n end;\n@@ -2155,6 +2159,7 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n procedure CreateATOPickLine(NewWarehouseActivityLine: Record \"Warehouse Activity Line\"; BinCode: Code[20]; var RemQtyToPickBase: Decimal)\n var\n ATOSalesLine: Record \"Sales Line\";\n+ ATOJobPlanningLine: Record \"Job Planning Line\";\n AssemblyHeader: Record \"Assembly Header\";\n AssemblySetup: Record \"Assembly Setup\";\n ReservationEntry: Record \"Reservation Entry\";\n@@ -2194,6 +2199,42 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n CreateATOInventoryMovementsAutomatically(AssemblyHeader, ATOInvtMovementsCreated, TotalATOInvtMovementsToBeCreated);\n end;\n end;\n+\n+ if (not IsInvtMovement) and\n+ WMSManagement.GetATOJobPlanningLine(NewWarehouseActivityLine.\"Source Type\",\n+ NewWarehouseActivityLine.\"Source No.\",\n+ NewWarehouseActivityLine.\"Source Line No.\",\n+ NewWarehouseActivityLine.\"Source Subline No.\",\n+ ATOJobPlanningLine)\n+ then begin\n+ ATOJobPlanningLine.AsmToOrderExists(AssemblyHeader);\n+ if NewWarehouseActivityLine.TrackingExists() then begin\n+ AssemblyHeader.SetReservationFilters(ReservationEntry);\n+ ReservationEntry.SetTrackingFilterFromWhseActivityLine(NewWarehouseActivityLine);\n+ ReservationEntry.SetRange(Positive, true);\n+ if ItemTrackingManagement.SumUpItemTracking(ReservationEntry, TempTrackingSpecification1, true, true) then\n+ QtyToAsmBase := Abs(TempTrackingSpecification1.\"Qty. to Handle (Base)\");\n+ end else\n+ QtyToAsmBase := ATOJobPlanningLine.QtyToAsmBaseOnATO();\n+ WhseItemTrackingSetup.CopyTrackingFromWhseActivityLine(NewWarehouseActivityLine);\n+ QtyToPickBase := QtyToAsmBase - WMSManagement.CalcQtyBaseOnATOInvtPick(ATOJobPlanningLine, WhseItemTrackingSetup);\n+ if QtyToPickBase > 0 then begin\n+ MakeWarehouseActivityHeader();\n+ if CurrLocation.\"Bin Mandatory\" and (BinCode = '') then begin\n+ if not CurrLocation.\"Require Shipment\" then\n+ BinCode := CurrLocation.\"Asm.-to-Order Shpt. Bin Code\";\n+ if BinCode = '' then\n+ AssemblyHeader.GetFromAssemblyBin(CurrLocation, BinCode);\n+ end;\n+ NewWarehouseActivityLine.\"Assemble to Order\" := true;\n+ MakeWarehouseActivityLine(NewWarehouseActivityLine, BinCode, QtyToPickBase, RemQtyToPickBase);\n+\n+ AssemblySetup.Get();\n+ if AssemblySetup.\"Create Movements Automatically\" then\n+ CreateATOInventoryMovementsAutomatically(AssemblyHeader, ATOInvtMovementsCreated, TotalATOInvtMovementsToBeCreated);\n+ end;\n+ end;\n+\n OnAfterCreateATOPickLine(QtyToPickBase, AssemblyHeader, NewWarehouseActivityLine, CurrWarehouseActivityHeader, RemQtyToPickBase);\n end;\n \ndiff --git a/App/Layers/W1/BaseApp/Warehouse/Journal/WMSManagement.Codeunit.al b/App/Layers/W1/BaseApp/Warehouse/Journal/WMSManagement.Codeunit.al\nindex dda50b4d..14af5870 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Journal/WMSManagement.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Journal/WMSManagement.Codeunit.al\n@@ -1758,6 +1758,27 @@ codeunit 7302 \"WMS Management\"\n until WarehouseActivityLine.Next() = 0;\n end;\n \n+ local procedure SetFiltersOnATOInvtPick(JobPlanningLine: Record \"Job Planning Line\"; var WarehouseActivityLine: Record \"Warehouse Activity Line\")\n+ begin\n+ WarehouseActivityLine.SetRange(WarehouseActivityLine.\"Activity Type\", WarehouseActivityLine.\"Activity Type\"::\"Invt. Pick\");\n+ WarehouseActivityLine.SetSourceFilter(\n+ Database::Job, 0, JobPlanningLine.\"Job No.\", JobPlanningLine.\"Job Contract Entry No.\", JobPlanningLine.\"Line No.\", false);\n+ WarehouseActivityLine.SetRange(WarehouseActivityLine.\"Assemble to Order\", true);\n+ WarehouseActivityLine.SetTrackingFilterIfNotEmpty();\n+ end;\n+\n+ procedure CalcQtyBaseOnATOInvtPick(JobPlanningLine: Record \"Job Planning Line\"; WhseItemTrackingSetup: Record \"Item Tracking Setup\") QtyBase: Decimal\n+ var\n+ WarehouseActivityLine: Record \"Warehouse Activity Line\";\n+ begin\n+ WarehouseActivityLine.CopyTrackingFromItemTrackingSetup(WhseItemTrackingSetup);\n+ SetFiltersOnATOInvtPick(JobPlanningLine, WarehouseActivityLine);\n+ if WarehouseActivityLine.FindSet() then\n+ repeat\n+ QtyBase += WarehouseActivityLine.\"Qty. Outstanding (Base)\";\n+ until WarehouseActivityLine.Next() = 0;\n+ end;\n+\n procedure CheckOutboundBlockedBin(LocationCode: Code[10]; BinCode: Code[20]; ItemNo: Code[20]; VariantCode: Code[10]; UnitOfMeasureCode: Code[10])\n begin\n CheckBlockedBin(LocationCode, BinCode, ItemNo, VariantCode, UnitOfMeasureCode, false);\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136322'\nCodeunit 136322 Jobs - Assemble-to Order\n Testfunction PostInventoryPickForAssemblyItemRelatedToJobPlanningLineWithBin Failure (6.8 seconds)\n Error:\n Status must be equal to 'Released' in Assembly Header: Document Type=Order, No.=A00001. Current value is 'Open'.\n Call Stack:\n \"Assembly Header\"(Table 900).CreateInvtMovement line 11 - Base Application by Microsoft\n \"Create Inventory Pick/Movement\"(CodeUnit 7322).CreateATOInventoryMovementsAutomatically line 11 - Base Application by Microsoft\n \"Create Inventory Pick/Movement\"(CodeUnit 7322).CreateATOPickLine line 75 - Base Application by Microsoft\n \"Create Inventory Pick/Movement\"(CodeUnit 7322).InsertPickOrMoveBinWhseActLine line 15 - Base Application by Microsoft\n \"Create Inventory Pick/Movement\"(CodeUnit 7322).CreatePickOrMoveLine line 153 - Base Application by Microsoft\n \"Create Inventory Pick/Movement\"(CodeUnit 7322).CreatePickOrMoveFromJobPlanning line 48 - Base Application by Microsoft\n \"Create Inventory Pick/Movement\"(CodeUnit 7322).AutoCreatePickOrMove line 30 - Base Application by Microsoft\n \"Create Invt Put-away/Pick/Mvmt\"(Report 7323).\"Warehouse Request - OnAfterGetRecord\"(Trigger) line 49 - Base Application by Microsoft"} +{"InstanceID": "microsoft__BCApps-4766", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 83.969, "tool_calls": 16, "total_tokens": 188500, "TurnCount": 15}, "Project": "Subscription Billing", "ToolUsage": "{\"edit\":2,\"grep\":2,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":6}", "output": "diff --git a/src/Apps/W1/Subscription Billing/App/Customer Contracts/Tables/CustSubContractLine.Table.al b/src/Apps/W1/Subscription Billing/App/Customer Contracts/Tables/CustSubContractLine.Table.al\nindex 91f83b1..7540e8b 100644\n--- a/src/Apps/W1/Subscription Billing/App/Customer Contracts/Tables/CustSubContractLine.Table.al\t\n+++ b/src/Apps/W1/Subscription Billing/App/Customer Contracts/Tables/CustSubContractLine.Table.al\t\n@@ -49,6 +49,7 @@ table 8062 \"Cust. Sub. Contract Line\"\n GLAccount: Record \"G/L Account\";\n TempCustomerContractLine: Record \"Cust. Sub. Contract Line\" temporary;\n begin\n+ CheckAndDisconnectContractLine();\n case \"Contract Line Type\" of\n \"Contract Line Type\"::Item:\n begin\ndiff --git a/src/Apps/W1/Subscription Billing/App/Vendor Contracts/Tables/VendSubContractLine.Table.al b/src/Apps/W1/Subscription Billing/App/Vendor Contracts/Tables/VendSubContractLine.Table.al\nindex 533581b..afb8be3 100644\n--- a/src/Apps/W1/Subscription Billing/App/Vendor Contracts/Tables/VendSubContractLine.Table.al\t\n+++ b/src/Apps/W1/Subscription Billing/App/Vendor Contracts/Tables/VendSubContractLine.Table.al\t\n@@ -46,6 +46,7 @@ table 8065 \"Vend. Sub. Contract Line\"\n GLAccount: Record \"G/L Account\";\n TempVendorContractLine: Record \"Vend. Sub. Contract Line\" temporary;\n begin\n+ CheckAndDisconnectContractLine();\n case \"Contract Line Type\" of\n \"Contract Line Type\"::Item:\n begin\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '148155'\nCodeunit 148155 Contracts Test\n Testfunction ContractLineDisconnectServiceOnNoChange Failure (9.037 seconds)\n Error:\n Item with the No. does not exist.\n Call Stack:\n \"Cust. Sub. Contract Line\"(Table 8062).\"No. - OnValidate\"(Trigger) line 11 - Subscription Billing by Microsoft version 27.0.0.0\n \"Contracts Test\"(CodeUnit 148155).ContractLineDisconnectServiceOnNoChange line 24 - Subscription Billing Test by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0\nSetting test codeunit range '148154'\nCodeunit 148154 Vendor Contracts Test\n Testfunction ContractLineDisconnectServiceOnNoChange Failure (1.18 seconds)\n Error:\n Item with the No. does not exist.\n Call Stack:\n \"Vend. Sub. Contract Line\"(Table 8065).\"No. - OnValidate\"(Trigger) line 11 - Subscription Billing by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-208320", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 353.037, "tool_calls": 24, "total_tokens": 361800, "TurnCount": 120}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":9,\"report_intent\":3,\"task\":3,\"update_todo\":2,\"view\":6}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesInvoice.Page.al b/App/Layers/W1/BaseApp/Sales/Document/SalesInvoice.Page.al\nindex ee0d93e0..4e3cc327 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesInvoice.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesInvoice.Page.al\n@@ -1868,6 +1868,8 @@ page 43 \"Sales Invoice\"\n StatusStyleTxt := Rec.GetStatusStyleText();\n UpdatePaymentService();\n SetControlAppearance();\n+ SellToContact.GetOrClear(Rec.\"Sell-to Contact No.\");\n+ BillToContact.GetOrClear(Rec.\"Bill-to Contact No.\");\n end;\n \n trigger OnAfterGetRecord()\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134386'\nCodeunit 134386 ERM Sales Documents II\n Testfunction UpdateEmailAndPhoneNoWhenChangeBillToOfSalesInvoice Failure (9.227 seconds)\n Error:\n AssertEquals for Field: BillToContactPhoneNo Expected = '333333333', Actual = '111111111'\n Call Stack:\n \"ERM Sales Documents II\"(CodeUnit 134386).UpdateEmailAndPhoneNoWhenChangeBillToOfSalesInvoice line 34 - Tests-ERM by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-209450", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 253.983, "tool_calls": 37, "total_tokens": 582900, "TurnCount": 67}, "Project": "BaseApp", "ToolUsage": "{\"edit\":5,\"grep\":14,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":13}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\nindex bb5d38d2..f069c054 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\n@@ -1075,6 +1075,8 @@ table 1003 \"Job Planning Line\"\n TestField(Type, Type::Item);\n TestField(\"No.\");\n TestField(\"Usage Link\");\n+ if IsNonInventoriableItem() then\n+ Error(NonInvReserveTypeErr, \"No.\", Reserve);\n end;\n CalcFields(\"Reserved Qty. (Base)\");\n if (Reserve = Reserve::Never) and (\"Reserved Qty. (Base)\" > 0) then\n@@ -1513,6 +1515,7 @@ table 1003 \"Job Planning Line\"\n #pragma warning restore AA0470\n QtyToTransferToInvoiceErr: Label '%1 may not be lower than %2 and may not exceed %3.', Comment = '%1 = Qty. to Transfer to Invoice field name; %2 = First value in comparison; %3 = Second value in comparison';\n AutoReserveQst: Label 'Automatic reservation is not possible.\\Do you want to reserve items manually?';\n+ NonInvReserveTypeErr: Label 'Non-inventory and service items must have the reserve type Never. The current reserve type for item %1 is %2.', Comment = '%1 is Item No., %2 is Reserve';\n NoContractLineErr: Label '%1 cannot be set on a %2 of type %3.', Comment = '%1 = Qty. to Transfer to Invoice field name; %2 = Project Planning Line table name; %3 = The project''s line type';\n QtyAlreadyTransferredErr: Label 'The %1 has already been completely transferred.', Comment = '%1 = Project Planning Line table name';\n #pragma warning disable AA0470\n@@ -1668,10 +1671,13 @@ table 1003 \"Job Planning Line\"\n \"Gen. Prod. Posting Group\" := Item.\"Gen. Prod. Posting Group\";\n Validate(\"Unit of Measure Code\", Item.\"Base Unit of Measure\");\n if \"Usage Link\" then\n- if Item.Reserve = Item.Reserve::Optional then\n- Reserve := Job.Reserve\n+ if Item.IsNonInventoriableType() then\n+ Reserve := Reserve::Never\n else\n- Reserve := Item.Reserve;\n+ if Item.Reserve = Item.Reserve::Optional then\n+ Reserve := Job.Reserve\n+ else\n+ Reserve := Item.Reserve;\n OnAfterCopyFromItem(Rec, Job, Item);\n end;\n \n@@ -2584,11 +2590,14 @@ table 1003 \"Job Planning Line\"\n FieldNo(\"Usage Link\"):\n if (Type = Type::Item) and \"Usage Link\" then begin\n GetItem();\n- if Item.Reserve = Item.Reserve::Optional then begin\n- GetJob();\n- Reserve := Job.Reserve\n- end else\n- Reserve := Item.Reserve;\n+ if Item.IsNonInventoriableType() then\n+ Reserve := Reserve::Never\n+ else\n+ if Item.Reserve = Item.Reserve::Optional then begin\n+ GetJob();\n+ Reserve := Job.Reserve\n+ end else\n+ Reserve := Item.Reserve;\n end else\n Reserve := Reserve::Never;\n end;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136302'\nCodeunit 136302 Job Consumption Purchase\n Testfunction PurchaseLineNotReservedWhenItemTypeNonInventoryOrService Failure (15.667 seconds)\n Error:\n Non-inventory and service items must have the reserve type Never. The current reserve type for item GL00000001 is Optional.\n Call Stack:\n \"Job Planning Line\"(Table 1003).\"Reserve - OnValidate\"(Trigger) line 7 - Base Application by Microsoft version 26.0.0.0\n \"Job Consumption Purchase\"(CodeUnit 136302).PurchaseLineNotReservedWhenItemTypeNonInventoryOrService line 34 - Tests-Job by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-216918", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 167.614, "tool_calls": 18, "total_tokens": 256700, "TurnCount": 33}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":4,\"report_intent\":2,\"task\":2,\"update_todo\":4,\"view\":5}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\nindex d541dd08..997a601b 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\n@@ -501,14 +501,26 @@ codeunit 1004 \"Job Transfer Line\"\n if NonDeductibleVAT.UseNonDeductibleVATAmountForJobCost() then\n if JobJnlLine.\"Unit Cost\" > 0 then begin\n JobJnlLine.\"Unit Cost (LCY)\" += Abs(Round(GenJnlLine.\"Non-Deductible VAT Amount LCY\" / JobJnlLine.Quantity));\n- JobJnlLine.\"Unit Cost\" += Abs(Round(GenJnlLine.\"Non-Deductible VAT Amount\" / JobJnlLine.Quantity));\n+ JobJnlLine.\"Unit Cost\" += Abs(Round(\n+ CurrencyExchRate.ExchangeAmtLCYToFCY(\n+ GenJnlLine.\"Posting Date\", JobJnlLine.\"Currency Code\",\n+ GenJnlLine.\"Non-Deductible VAT Amount LCY\", JobJnlLine.\"Currency Factor\") / JobJnlLine.Quantity));\n JobJnlLine.\"Total Cost (LCY)\" += Abs(GenJnlLine.\"Non-Deductible VAT Amount LCY\");\n- JobJnlLine.\"Total Cost\" += Abs(GenJnlLine.\"Non-Deductible VAT Amount\");\n+ JobJnlLine.\"Total Cost\" += Abs(\n+ CurrencyExchRate.ExchangeAmtLCYToFCY(\n+ GenJnlLine.\"Posting Date\", JobJnlLine.\"Currency Code\",\n+ GenJnlLine.\"Non-Deductible VAT Amount LCY\", JobJnlLine.\"Currency Factor\"));\n end else begin\n JobJnlLine.\"Unit Cost (LCY)\" += Round(GenJnlLine.\"Non-Deductible VAT Amount LCY\" / JobJnlLine.Quantity);\n- JobJnlLine.\"Unit Cost\" += Round(GenJnlLine.\"Non-Deductible VAT Amount\" / JobJnlLine.Quantity);\n+ JobJnlLine.\"Unit Cost\" += Round(\n+ CurrencyExchRate.ExchangeAmtLCYToFCY(\n+ GenJnlLine.\"Posting Date\", JobJnlLine.\"Currency Code\",\n+ GenJnlLine.\"Non-Deductible VAT Amount LCY\", JobJnlLine.\"Currency Factor\") / JobJnlLine.Quantity);\n JobJnlLine.\"Total Cost (LCY)\" += GenJnlLine.\"Non-Deductible VAT Amount LCY\";\n- JobJnlLine.\"Total Cost\" += GenJnlLine.\"Non-Deductible VAT Amount\";\n+ JobJnlLine.\"Total Cost\" +=\n+ CurrencyExchRate.ExchangeAmtLCYToFCY(\n+ GenJnlLine.\"Posting Date\", JobJnlLine.\"Currency Code\",\n+ GenJnlLine.\"Non-Deductible VAT Amount LCY\", JobJnlLine.\"Currency Factor\");\n end;\n \n JobJnlLine.\"Unit Price (LCY)\" := GenJnlLine.\"Job Unit Price (LCY)\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134284'\nCodeunit 134284 Non Ded. VAT Misc.\n Testfunction JobJnlLineWithNonDeductNormalVATInFCYFromGenJnlLine Failure (5.543 seconds)\n Error:\n Assert.AreEqual failed. Expected:<10.76> (Decimal). Actual:<10.31> (Decimal). Unit Cost (LCY) with Non-Deductible VAT amount is not correct in Job Journal Line.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"Non Ded. VAT Misc.\"(CodeUnit 134284).JobJnlLineWithNonDeductNormalVATInFCYFromGenJnlLine line 32 - Tests-VAT by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-181900", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 465.659, "tool_calls": 33, "total_tokens": 568600, "TurnCount": 117}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":2,\"grep\":8,\"powershell\":1,\"report_intent\":3,\"task\":3,\"update_todo\":3,\"view\":12}", "output": "diff --git a/App/Layers/W1/BaseApp/OtherCapabilities/Approvals/ApprovalsMgmt.Codeunit.al b/App/Layers/W1/BaseApp/OtherCapabilities/Approvals/ApprovalsMgmt.Codeunit.al\nindex 266d61e5..63b858cf 100644\n--- a/App/Layers/W1/BaseApp/OtherCapabilities/Approvals/ApprovalsMgmt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/OtherCapabilities/Approvals/ApprovalsMgmt.Codeunit.al\n@@ -2503,6 +2503,8 @@ codeunit 1535 \"Approvals Mgmt.\"\n ApprovalStatusName := GetApprovalEntryStatusValueName(FieldRef, ApprovalEntry);\n if ApprovalStatusName = 'Open' then\n exit(CopyStr(PendingApprovalLbl, 1, 20));\n+ if HasOpenOrPendingApprovalEntries(ApprovalEntry.\"Record ID to Approve\") then\n+ exit(CopyStr(PendingApprovalLbl, 1, 20));\n if ApprovalStatusName = 'Approved' then begin\n RestrictedRecord.SetRange(Details, RestrictBatchUsageDetailsLbl);\n if not RestrictedRecord.IsEmpty() then begin\n@@ -2532,6 +2534,8 @@ codeunit 1535 \"Approvals Mgmt.\"\n ApprovalStatusName := GetApprovalEntryStatusValueName(FieldRef, ApprovalEntry);\n if ApprovalStatusName = 'Open' then\n exit(CopyStr(PendingApprovalLbl, 1, 20));\n+ if HasOpenOrPendingApprovalEntries(ApprovalEntry.\"Record ID to Approve\") then\n+ exit(CopyStr(PendingApprovalLbl, 1, 20));\n if ApprovalStatusName = 'Approved' then begin\n RestrictedRecord.SetRange(\"Record ID\", GenJournalLine.RecordId);\n if not RestrictedRecord.IsEmpty() then\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134321'\nCodeunit 134321 General Journal Batch Approval\n Testfunction ShowImposedRestrictionBatchStatusForWorkflowUserGroupIfFirstApprovalEntryIsApproved Failure (7.41 seconds)\n Error:\n Assert.AreEqual failed. Expected: (Text). Actual: (Text). Imposed restriction is not shown.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"General Journal Batch Approval\"(CodeUnit 134321).ShowImposedRestrictionBatchStatusForWorkflowUserGroupIfFirstApprovalEntryIsApproved line 30 - Tests-General Journal by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"InstanceID": "microsoftInternal__NAV-191624", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 127.737, "tool_calls": 19, "total_tokens": 274400, "TurnCount": 22}, "Project": "ExcelReports", "ToolUsage": "{\"edit\":1,\"grep\":9,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":4}", "output": "diff --git a/App/Apps/W1/ExcelReports/app/src/Financials/EXRFixedAssetAnalysisExcel.Report.al b/App/Apps/W1/ExcelReports/app/src/Financials/EXRFixedAssetAnalysisExcel.Report.al\nindex 686231b5..1e3aa16d 100644\n--- a/App/Apps/W1/ExcelReports/app/src/Financials/EXRFixedAssetAnalysisExcel.Report.al\n+++ b/App/Apps/W1/ExcelReports/app/src/Financials/EXRFixedAssetAnalysisExcel.Report.al\n@@ -28,8 +28,6 @@ report 4412 \"EXR Fixed Asset Analysis Excel\"\n column(FixedAssetSubclassCode; \"FA Subclass Code\") { IncludeCaption = true; }\n column(FixedAssetLocationCode; \"FA Location Code\") { IncludeCaption = true; }\n column(BudgetedAsset; \"Budgeted Asset\") { IncludeCaption = true; }\n- column(AcquisitionDateField; AcquisitionDate) { }\n- column(DisposalDateField; DisposalDate) { }\n column(GlobalDimension1Code; \"Global Dimension 1 Code\") { IncludeCaption = true; }\n column(GlobalDimension2Code; \"Global Dimension 2 Code\") { IncludeCaption = true; }\n dataitem(FAPostingType; \"FA Posting Type\")\n@@ -40,6 +38,8 @@ report 4412 \"EXR Fixed Asset Analysis Excel\"\n column(BeforeStartingDate; BeforeStartingDate) { }\n column(AtEndingDate; AtEndingDate) { }\n column(NetChange; NetChange) { }\n+ column(AcquisitionDateField; AcquisitionDate) { }\n+ column(DisposalDateField; DisposalDate) { }\n trigger OnAfterGetRecord()\n var\n FADepreciationBook: Record \"FA Depreciation Book\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139545'\nCodeunit 139545 Fixed Asset Excel Reports\n Testfunction FirstTimeOpeningRequestPageOfFixedAssetAnalysisShouldInsertPostingTypes Failure (1.867 seconds)\n Error:\n Assert.TableIsNotEmpty failed. Table with filter <> must contain records.\n Call Stack:\n Assert(CodeUnit 130000).RecRefIsNotEmpty line 3 - Tests-TestLibraries by Microsoft\n Assert(CodeUnit 130000).TableIsNotEmpty line 5 - Tests-TestLibraries by Microsoft\n \"Fixed Asset Excel Reports\"(CodeUnit 139545).FirstTimeOpeningRequestPageOfFixedAssetAnalysisShouldInsertPostingTypes line 12 - Dynamics BC Excel Reports Tests by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"InstanceID": "microsoftInternal__NAV-218856", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 433.07, "tool_calls": 17, "total_tokens": 313500, "TurnCount": 125}, "Project": "BaseApp", "ToolUsage": "{\"edit\":3,\"grep\":5,\"report_intent\":2,\"task\":2,\"update_todo\":2,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Service/Contract/ServiceContractHeader.Table.al b/App/Layers/W1/BaseApp/Service/Contract/ServiceContractHeader.Table.al\nindex 4f315c8f..3b5af1ae 100644\n--- a/App/Layers/W1/BaseApp/Service/Contract/ServiceContractHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Service/Contract/ServiceContractHeader.Table.al\n@@ -2240,6 +2240,7 @@ table 5965 \"Service Contract Header\"\n ContBusinessRelation: Record \"Contact Business Relation\";\n Cust: Record Customer;\n Cont: Record Contact;\n+ ContactBusinessRelationFound: Boolean;\n IsHandled: Boolean;\n begin\n IsHandled := false;\n@@ -2265,7 +2266,12 @@ table 5965 \"Service Contract Header\"\n exit;\n end;\n \n- if ContBusinessRelation.FindByContact(ContBusinessRelation.\"Link to Table\"::Customer, Cont.\"Company No.\") then begin\n+ if Cont.Type = Cont.Type::Person then\n+ ContactBusinessRelationFound := ContBusinessRelation.FindByContact(ContBusinessRelation.\"Link to Table\"::Customer, Cont.\"No.\");\n+ if not ContactBusinessRelationFound then\n+ ContactBusinessRelationFound := ContBusinessRelation.FindByContact(ContBusinessRelation.\"Link to Table\"::Customer, Cont.\"Company No.\");\n+\n+ if ContactBusinessRelationFound then begin\n if (\"Customer No.\" <> '') and\n (\"Customer No.\" <> ContBusinessRelation.\"No.\")\n then\n@@ -2289,6 +2295,7 @@ table 5965 \"Service Contract Header\"\n ContBusinessRelation: Record \"Contact Business Relation\";\n Cust: Record Customer;\n Cont: Record Contact;\n+ ContactBusinessRelationFound: Boolean;\n begin\n if Cont.Get(ContactNo) then begin\n \"Bill-to Contact No.\" := Cont.\"No.\";\n@@ -2305,7 +2312,12 @@ table 5965 \"Service Contract Header\"\n end;\n \n OnUpdateBillToCustOnBeforeContBusinessRelationFindByContact(Rec, Cust, Cont);\n- if ContBusinessRelation.FindByContact(ContBusinessRelation.\"Link to Table\"::Customer, Cont.\"Company No.\") then begin\n+ if Cont.Type = Cont.Type::Person then\n+ ContactBusinessRelationFound := ContBusinessRelation.FindByContact(ContBusinessRelation.\"Link to Table\"::Customer, Cont.\"No.\");\n+ if not ContactBusinessRelationFound then\n+ ContactBusinessRelationFound := ContBusinessRelation.FindByContact(ContBusinessRelation.\"Link to Table\"::Customer, Cont.\"Company No.\");\n+\n+ if ContactBusinessRelationFound then begin\n if \"Bill-to Customer No.\" = '' then begin\n SkipBillToContact := true;\n Validate(\"Bill-to Customer No.\", ContBusinessRelation.\"No.\");\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136102'\nCodeunit 136102 Service Contracts\n Testfunction ChangeCustomerOfTypePeronInServiceContract Failure (6.473 seconds)\n Error:\n Contact CT000024 CT000024 is related to a different company than customer C00010.\n Call Stack:\n \"Service Contract Header\"(Table 5965).\"Bill-to Contact No. - OnValidate\"(Trigger) line 21 - Base Application by Microsoft version 27.0.0.0\n \"Service Contract Header\"(Table 5965).UpdateCust line 52 - Base Application by Microsoft version 27.0.0.0\n ServContractManagement(CodeUnit 5940).ChangeCustNoOnServContract line 46 - Base Application by Microsoft version 27.0.0.0\n \"Service Contracts\"(CodeUnit 136102).ChangeCustomerOfTypePeronInServiceContract line 34 - Tests-SCM-Service by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-176194", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 525.436, "tool_calls": 48, "total_tokens": 1912400, "TurnCount": 108}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":20,\"powershell\":1,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":19}", "output": "diff --git a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\nindex 6dfc7efe..16500470 100644\n--- a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n@@ -2406,6 +2406,7 @@ codeunit 6620 \"Copy Document Mgt.\"\n ToItemChargeAssignmentSales: Record \"Item Charge Assignment (Sales)\";\n ItemLedgerEntry: Record \"Item Ledger Entry\";\n Item: Record Item;\n+ SalesLine2: Record \"Sales Line\";\n ItemChargeAssgntSales: Codeunit \"Item Charge Assgnt. (Sales)\";\n CurrencyFactor: Decimal;\n QtyToAssign: Decimal;\n@@ -2418,6 +2419,13 @@ codeunit 6620 \"Copy Document Mgt.\"\n if IsHandled then\n exit;\n \n+ if ToSalesLine.\"Qty. to Invoice\" = 0 then begin\n+ SalesLine2.Get(ToSalesLine.\"Document Type\", ToSalesLine.\"Document No.\", ToSalesLine.\"Line No.\");\n+ SalesLine2.\"Qty. to Invoice\" := SalesLine2.Quantity;\n+ SalesLine2.\"Qty. to Invoice (Base)\" := SalesLine2.\"Quantity (Base)\";\n+ SalesLine2.Modify();\n+ end;\n+\n if FromSalesLine.\"Document Type\" = FromSalesLine.\"Document Type\"::\"Credit Memo\" then\n ValueEntry.SetRange(\"Document Type\", ValueEntry.\"Document Type\"::\"Sales Credit Memo\")\n else\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134329'\nCodeunit 134329 ERM Purchase Return Order\n Testfunction GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToReceiveIsBlankInPurchPayablesSetup Failure (11.35 seconds)\n Error:\n Qty. to Invoice must have a value in Purchase Line: Document Type=Return Order, Document No.=1001, Line No.=20000. It cannot be zero or empty.\n Call Stack:\n \"Item Charge Assignment (Purch)\"(Table 5805).\"Qty. to Assign - OnValidate\"(Trigger) line 4 - Base Application by Microsoft\n \"Item Charge Assgnt. (Purch.)\"(CodeUnit 5805).InsertItemChargeAssignmentWithValuesTo line 20 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyFromPurchLineItemChargeAssign line 47 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyPurchInvLinesToDoc line 144 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyPurchaseLinesToDoc line 15 - Base Application by Microsoft\n \"Posted Purchase Document Lines\"(Page 5855).CopyLineToDoc line 23 - Base Application by Microsoft\n \"Purchase Header\"(Table 38).GetPstdDocLinesToReverse line 9 - Base Application by Microsoft\n \"Purchase Return Order\"(Page 6640).\"GetPostedDocumentLinesToReverse - OnAction\"(Trigger) line 2 - Base Application by Microsoft\nSetting test codeunit range '134387'\nCodeunit 134387 ERM Sales Documents III\n Testfunction GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToShipIsBlankInSalesReceiSetup Success (4.48 seconds)\n\u001b[32m[11:01:44] Tests passed for Codeunit 134387\u001b[0m"} +{"InstanceID": "microsoftInternal__NAV-216057", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 1194.293, "tool_calls": 114, "total_tokens": 6736800, "TurnCount": 220}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":1,\"glob\":1,\"grep\":73,\"powershell\":2,\"report_intent\":4,\"store_memory\":1,\"task\":3,\"update_todo\":3,\"view\":25}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al\nindex 052f4eb6..d7bfd77c 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al\n@@ -626,8 +626,9 @@ table 99000853 \"Inventory Profile\"\n if ReservationEntry.FindSet() then\n repeat\n InsertTracking := not\n- ((ReservationEntry.\"Reservation Status\" = ReservationEntry.\"Reservation Status\"::Reservation) and\n- (ReservationEntry.Binding = ReservationEntry.Binding::\" \"));\n+ (((ReservationEntry.\"Reservation Status\" = ReservationEntry.\"Reservation Status\"::Reservation) and\n+ (ReservationEntry.Binding = ReservationEntry.Binding::\" \")) or\n+ (ReservationEntry.\"Reservation Status\" = ReservationEntry.\"Reservation Status\"::Surplus));\n if InsertTracking and ReservationEntry.TrackingExists() and\n (ReservationEntry.\"Source Type\" <> Database::\"Item Ledger Entry\")\n then begin\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137045'\nCodeunit 137045 SCM Bugfixes\n Testfunction NoDuplicateSurplusReservationEntriesOnRecalculateRequisitionWorksheet Failure (13.607 seconds)\n Error:\n Assert.RecordCount failed. Expected number of Reservation Entry entries: 2. Actual: 3. Filters: Source Type: 39, Source ID: 106009. Records: 2, Yes, GL00000000, , 50, Prospect, , 06/03/26, 0, 39, 1, 106009, , 0, 10000, 0, 06/03/26, , , ADMIN, , 1, 50, , No, Unlimited, 0, , , 50, 50, 0, , , No, GL00000003, , 0, No, , Lot No., No, , , 0, ; 3, Yes, GL00000000, , 100, Tracking, , 02/10/26, 0, 39, 1, 106009, , 0, 10000, 0, 06/03/26, 06/03/26, , ADMIN, , 1, 100, , No, Unlimited, 0, , , 100, 100, 0, , , No, GL00000003, , 0, No, , Lot No., No, , , 0, ; 4, Yes, GL00000000, , 50, Surplus, , 02/10/26, 0, 39, 1, 106009, , 0, 10000, 0, 06/03/26, , , ADMIN, , 1, 50, , Yes, Unlimited, 0, , , 50, 50, 0, , , No, GL00000003, , 0, No, , Lot No., No, , , 0, ; \n Call Stack:\n Assert(CodeUnit 130000).RecordCount line 18 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"SCM Bugfixes\"(CodeUnit 137045).AssertReservationEntryCount line 6 - Tests-SCM by Microsoft version 27.0.0.0\n \"SCM Bugfixes\"(CodeUnit 137045).NoDuplicateSurplusReservationEntriesOnRecalculateRequisitionWorksheet line 51 - Tests-SCM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-220036", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 188.703, "tool_calls": 26, "total_tokens": 311100, "TurnCount": 44}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":11,\"powershell\":2,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":7}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al b/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\nindex 9fdc21c5..f8028c2b 100644\n--- a/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\n@@ -2302,7 +2302,11 @@ table 18 Customer\n begin\n Clear(PrimaryContact);\n if Customer.Get(CustomerNo) then\n- if PrimaryContact.Get(Customer.\"Primary Contact No.\") then;\n+ if not PrimaryContact.Get(Customer.\"Primary Contact No.\") then begin\n+ PrimaryContact.\"E-Mail\" := Customer.\"E-Mail\";\n+ PrimaryContact.\"Phone No.\" := Customer.\"Phone No.\";\n+ PrimaryContact.\"Mobile Phone No.\" := Customer.\"Mobile Phone No.\";\n+ end;\n end;\n \n local procedure GetCustomerPriceGroupPriceCalcMethod(): Enum \"Price Calculation Method\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134905'\nCodeunit 134905 ERM Issued Reminder Addnl Fee\n Testfunction VerifyEmailOnReminderPageWhenCustomerHasNoContacts Success (20.036 seconds)\n\u001b[32m[08:32:57] Tests passed for Codeunit 134905\u001b[0m\nSetting test codeunit range '134825'\nCodeunit 134825 UT Customer Table\n Testfunction GetPrimaryConactCustomerWithoutContact Failure (2.073 seconds)\n Error:\n Assert.IsTrue failed. Contact No. should not be empty\n Call Stack:\n Assert(CodeUnit 130000).IsTrue line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"UT Customer Table\"(CodeUnit 134825).GetPrimaryConactCustomerWithoutContact line 15 - Tests-Misc by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-218323", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 470.075, "tool_calls": 69, "total_tokens": 2317100, "TurnCount": 91}, "Project": "BaseApp", "ToolUsage": "{\"edit\":7,\"grep\":22,\"powershell\":4,\"report_intent\":3,\"task\":2,\"update_todo\":4,\"view\":27}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al b/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al\nindex 88068be0..04ab9d63 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al\n@@ -17,6 +17,7 @@ using Microsoft.Finance.VAT.Setup;\n using Microsoft.Foundation.Address;\n using Microsoft.Foundation.AuditCodes;\n using Microsoft.Foundation.Enums;\n+using Microsoft.Foundation.NoSeries;\n using System.Utilities;\n \n report 20 \"Calc. and Post VAT Settlement\"\n@@ -613,6 +614,45 @@ report 20 \"Calc. and Post VAT Settlement\"\n ApplicationArea = Basic, Suite;\n Caption = 'Document No.';\n ToolTip = 'Specifies a document number. This field must be filled in.';\n+ Visible = not IsJournalTemplNameVisible;\n+ }\n+ field(JnlTemplateName; GenJnlLineReq.\"Journal Template Name\")\n+ {\n+ ApplicationArea = Basic, Suite;\n+ Caption = 'Journal Template Name';\n+ TableRelation = \"Gen. Journal Template\";\n+ ToolTip = 'Specifies the name of the journal template that is used for the posting.';\n+ Visible = IsJournalTemplNameVisible;\n+\n+ trigger OnValidate()\n+ begin\n+ GenJnlLineReq.\"Journal Batch Name\" := '';\n+ end;\n+ }\n+ field(JnlBatchName; GenJnlLineReq.\"Journal Batch Name\")\n+ {\n+ ApplicationArea = Basic, Suite;\n+ Caption = 'Journal Batch Name';\n+ Lookup = true;\n+ ToolTip = 'Specifies the name of the journal batch that is used for the posting.';\n+ Visible = IsJournalTemplNameVisible;\n+\n+ trigger OnLookup(var Text: Text): Boolean\n+ var\n+ GenJnlManagement: Codeunit GenJnlManagement;\n+ begin\n+ GenJnlManagement.SetJnlBatchName(GenJnlLineReq);\n+ if GenJnlLineReq.\"Journal Batch Name\" <> '' then\n+ GenJnlBatch.Get(GenJnlLineReq.\"Journal Template Name\", GenJnlLineReq.\"Journal Batch Name\");\n+ end;\n+\n+ trigger OnValidate()\n+ begin\n+ if GenJnlLineReq.\"Journal Batch Name\" <> '' then begin\n+ GenJnlLineReq.TestField(\"Journal Template Name\");\n+ GenJnlBatch.Get(GenJnlLineReq.\"Journal Template Name\", GenJnlLineReq.\"Journal Batch Name\");\n+ end;\n+ end;\n }\n field(SettlementAcc; GLAccSettle.\"No.\")\n {\n@@ -676,6 +716,12 @@ report 20 \"Calc. and Post VAT Settlement\"\n actions\n {\n }\n+\n+ trigger OnOpenPage()\n+ begin\n+ GLSetup.Get();\n+ IsJournalTemplNameVisible := GLSetup.\"Journal Templ. Name Mandatory\";\n+ end;\n }\n \n labels\n@@ -692,6 +738,7 @@ report 20 \"Calc. and Post VAT Settlement\"\n trigger OnPreReport()\n var\n ConfirmManagement: Codeunit \"Confirm Management\";\n+ NoSeries: Codeunit \"No. Series\";\n begin\n OnBeforePreReport(\"VAT Posting Setup\", PostSettlement, GLAccSettle, DocNo);\n \n@@ -704,8 +751,20 @@ report 20 \"Calc. and Post VAT Settlement\"\n else\n VATDate := PostingDate;\n \n- if DocNo = '' then\n- Error(Text001);\n+ GLSetup.Get();\n+ if GLSetup.\"Journal Templ. Name Mandatory\" then begin\n+ if GenJnlLineReq.\"Journal Template Name\" = '' then\n+ Error(PleaseEnterErr, GenJnlLineReq.FieldCaption(\"Journal Template Name\"));\n+ if GenJnlLineReq.\"Journal Batch Name\" = '' then\n+ Error(PleaseEnterErr, GenJnlLineReq.FieldCaption(\"Journal Batch Name\"));\n+\n+ GenJnlBatch.Get(GenJnlLineReq.\"Journal Template Name\", GenJnlLineReq.\"Journal Batch Name\");\n+ GenJnlBatch.TestField(\"No. Series\");\n+ DocNo := NoSeries.GetNextNo(GenJnlBatch.\"No. Series\", PostingDate);\n+ end else\n+ if DocNo = '' then\n+ Error(Text001);\n+\n if GLAccSettle.\"No.\" = '' then\n Error(Text002);\n GLAccSettle.Find();\n@@ -732,6 +791,8 @@ report 20 \"Calc. and Post VAT Settlement\"\n SourceCodeSetup: Record \"Source Code Setup\";\n GenJnlLine: Record \"Gen. Journal Line\";\n GenJnlLine2: Record \"Gen. Journal Line\";\n+ GenJnlLineReq: Record \"Gen. Journal Line\";\n+ GenJnlBatch: Record \"Gen. Journal Batch\";\n GLEntry: Record \"G/L Entry\";\n VATEntry: Record \"VAT Entry\";\n TaxJurisdiction: Record \"Tax Jurisdiction\";\n@@ -755,6 +816,7 @@ report 20 \"Calc. and Post VAT Settlement\"\n HeaderText: Text[30];\n CountryRegionFilter: Text;\n IsVATDateEnabled: Boolean;\n+ IsJournalTemplNameVisible: Boolean;\n #pragma warning disable AA0074\n Text000: Label 'Enter the posting date.';\n Text001: Label 'Enter the document no.';\n@@ -783,6 +845,7 @@ report 20 \"Calc. and Post VAT Settlement\"\n TotalCaptionLbl: Label 'Total';\n SettlementCaptionLbl: Label 'Settlement';\n VATDateLbl: Label 'VAT Date';\n+ PleaseEnterErr: Label 'Please enter a %1.', Comment = '%1 - field caption';\n \n \n protected var\n@@ -848,6 +911,10 @@ report 20 \"Calc. and Post VAT Settlement\"\n DimMgt.GetRecDefaultDimID(\n GenJnlLine, 0, DefaultDimSource, GenJnlLine.\"Source Code\",\n GenJnlLine.\"Shortcut Dimension 1 Code\", GenJnlLine.\"Shortcut Dimension 2 Code\", 0, 0);\n+ if GLSetup.\"Journal Templ. Name Mandatory\" then begin\n+ GenJnlLine.\"Journal Template Name\" := GenJnlBatch.\"Journal Template Name\";\n+ GenJnlLine.\"Journal Batch Name\" := GenJnlBatch.Name;\n+ end;\n OnPostGenJnlLineOnBeforeGenJnlPostLineRun(GenJnlLine);\n GenJnlPostLine.Run(GenJnlLine);\n end;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134992'\nCodeunit 134992 ERM Financial Reports IV\n Testfunction PostVATSettlementWhenJournalTemplateNameMandatoryIsEnabled Failure (9.66 seconds)\n Error:\n Please enter a Journal Template Name.\n Call Stack:\n \"Calc. and Post VAT Settlement\"(Report 20).OnPreReport(Trigger) line 19 - Base Application by Microsoft version 27.0.0.0\n \"ERM Financial Reports IV\"(CodeUnit 134992).SaveCalcAndPostVATSettlementReport line 12 - Tests-ERM by Microsoft version 27.0.0.0\n \"ERM Financial Reports IV\"(CodeUnit 134992).PostVATSettlementWhenJournalTemplateNameMandatoryIsEnabled line 35 - Tests-ERM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-220452", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 580.274, "tool_calls": 23, "total_tokens": 509100, "TurnCount": 80}, "Project": "Shopify", "ToolUsage": "{\"create\":1,\"edit\":3,\"glob\":2,\"report_intent\":3,\"task\":6,\"update_todo\":3,\"view\":5}", "output": "diff --git a/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al b/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al\nindex 62d92a55..54e39037 100644\n--- a/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al\n+++ b/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al\n@@ -242,6 +242,9 @@ report 30118 \"Shpfy Suggest Payments\"\n if Applied and (AmountToApply > 0) then\n CreateSuggestPaymentGLAccount(AmountToApply, true);\n end;\n+\n+ if not Applied then\n+ FindInvoiceFromShipmentLines(OrderTransaction.\"Shopify Order Id\", CustLedgerEntry, AmountToApply, Applied);\n end;\n OrderTransaction.Type::Refund:\n begin\n@@ -275,6 +278,47 @@ report 30118 \"Shpfy Suggest Payments\"\n end;\n end;\n \n+ local procedure FindInvoiceFromShipmentLines(ShopifyOrderId: BigInteger; var CustLedgerEntry: Record \"Cust. Ledger Entry\"; var AmountToApply: Decimal; var Applied: Boolean)\n+ var\n+ SalesShipmentHeader: Record \"Sales Shipment Header\";\n+ SalesInvoiceLine: Record \"Sales Invoice Line\";\n+ SalesInvoiceHeader: Record \"Sales Invoice Header\";\n+ ProcessedInvoices: List of [Code[20]];\n+ begin\n+ SalesShipmentHeader.SetLoadFields(\"No.\");\n+ SalesShipmentHeader.SetRange(\"Shpfy Order Id\", ShopifyOrderId);\n+ if SalesShipmentHeader.FindSet() then begin\n+ repeat\n+ SalesInvoiceLine.SetLoadFields(\"Document No.\");\n+ SalesInvoiceLine.SetRange(\"Shipment No.\", SalesShipmentHeader.\"No.\");\n+ if SalesInvoiceLine.FindSet() then\n+ repeat\n+ if not ProcessedInvoices.Contains(SalesInvoiceLine.\"Document No.\") then begin\n+ ProcessedInvoices.Add(SalesInvoiceLine.\"Document No.\");\n+ SalesInvoiceHeader.SetRange(\"No.\", SalesInvoiceLine.\"Document No.\");\n+ SalesInvoiceHeader.SetRange(Closed, false);\n+ if SalesInvoiceHeader.FindFirst() then begin\n+ CustLedgerEntry.SetAutoCalcFields(\"Remaining Amount\");\n+ CustLedgerEntry.SetRange(\"Open\", true);\n+ CustLedgerEntry.SetRange(\"Applies-to ID\", '');\n+ CustLedgerEntry.SetRange(\"Document Type\", CustLedgerEntry.\"Document Type\"::Invoice);\n+ CustLedgerEntry.SetRange(\"Document No.\", SalesInvoiceHeader.\"No.\");\n+ if CustLedgerEntry.FindSet() then begin\n+ Applied := true;\n+ repeat\n+ CreateSuggestPaymentDocument(CustLedgerEntry, AmountToApply, true);\n+ until CustLedgerEntry.Next() = 0;\n+ end;\n+ end;\n+ end;\n+ until SalesInvoiceLine.Next() = 0;\n+ until SalesShipmentHeader.Next() = 0;\n+\n+ if Applied and (AmountToApply > 0) then\n+ CreateSuggestPaymentGLAccount(AmountToApply, true);\n+ end;\n+ end;\n+\n local procedure CreateSuggestPaymentDocument(var CustLedgerEntry: Record \"Cust. Ledger Entry\"; var AmountToApply: Decimal; IsInvoice: Boolean)\n begin\n TempSuggestPayment.Init();\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139648'\nCodeunit 139648 Shpfy Suggest Payment Test\n Testfunction UnitTestSuggestShopifyPaymentsDocumentLink Failure (16.966 seconds)\n Error:\n The Shopify Suggest Payment table is empty.\n Call Stack:\n \"Shpfy Suggest Payment Test\"(CodeUnit 139648).UnitTestSuggestShopifyPaymentsDocumentLink line 47 - Shopify Connector Test by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-204450", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 338.955, "tool_calls": 28, "total_tokens": 568800, "TurnCount": 80}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":2,\"grep\":4,\"powershell\":1,\"report_intent\":2,\"store_memory\":1,\"task\":4,\"update_todo\":4,\"view\":9}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\nindex 6bb15d7d..e070ad49 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n@@ -602,6 +602,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n \n TotalPurchaseLine.\"Non-Deductible VAT Base\" += PurchaseLine.\"Non-Deductible VAT Base\";\n TotalPurchaseLine.\"Non-Deductible VAT Amount\" += PurchaseLine.\"Non-Deductible VAT Amount\";\n+ TotalPurchaseLine.\"Non-Deductible VAT Diff.\" += PurchaseLine.\"Non-Deductible VAT Diff.\";\n end;\n \n procedure Increment(var TotalInvoicePostingBuffer: Record \"Invoice Posting Buffer\"; InvoicePostingBuffer: Record \"Invoice Posting Buffer\")\n@@ -697,6 +698,12 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n PurchaseHeader.GetUseDate(), PurchaseHeader.\"Currency Code\",\n TotalPurchaseLine.\"Non-Deductible VAT Amount\", PurchaseHeader.\"Currency Factor\")) -\n TotalPurchaseLineLCY.\"Non-Deductible VAT Amount\";\n+ PurchaseLine.\"Non-Deductible VAT Diff.\" :=\n+ Round(\n+ CurrExchRate.ExchangeAmtFCYToLCY(\n+ PurchaseHeader.GetUseDate(), PurchaseHeader.\"Currency Code\",\n+ TotalPurchaseLine.\"Non-Deductible VAT Diff.\", PurchaseHeader.\"Currency Factor\")) -\n+ TotalPurchaseLineLCY.\"Non-Deductible VAT Diff.\";\n end;\n \n procedure ClearNonDeductibleVAT(var PurchaseLine: Record \"Purchase Line\")\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134287'\nCodeunit 134287 Non-Deductible VAT Statistics\n Testfunction PurchaseInvoiceInCurrencyIsPostedWhenChangeVATAmountOnStatisticIfNDVATPctIs100 Failure (14.923 seconds)\n Error:\n The transaction cannot be completed because it will cause inconsistencies in the G/L Entry table. Check where and how the CONSISTENT function is used in the transaction to find the reason for the error.\\\\Contact your system administrator.\\\\Tables can be marked as inconsistent during comprehensive tasks, such as posting. This prevents data from being updated incorrectly.\n Call Stack:\n \"Purch.-Post\"(CodeUnit 90).FinalizePosting line 79 - Base Application by Microsoft\n \"Purch.-Post\"(CodeUnit 90).RunWithCheck line 142 - Base Application by Microsoft\n \"Purch.-Post\"(CodeUnit 90).OnRun(Trigger) line 2 - Base Application by Microsoft\n \"Library - Purchase\"(CodeUnit 130512).PostPurchaseDocument line 56 - Tests-TestLibraries by Microsoft\n \"Non-Deductible VAT Statistics\"(CodeUnit 134287).PurchaseInvoiceInCurrencyIsPostedWhenChangeVATAmountOnStatisticIfNDVATPctIs100 line 46 - Tests-VAT by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"InstanceID": "microsoftInternal__NAV-227153", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 207.109, "tool_calls": 29, "total_tokens": 397200, "TurnCount": 31}, "Project": "BaseApp", "ToolUsage": "{\"edit\":6,\"grep\":5,\"report_intent\":2,\"task\":3,\"update_todo\":3,\"view\":10}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\nindex e033f91e..0e39228f 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\n@@ -472,132 +472,66 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n \n local procedure CalcCustAccAmount(PostingGr: Code[20]): Decimal\n var\n- Cust: Record Customer;\n DtldCustLedgEntry: Record \"Detailed Cust. Ledg. Entry\";\n- CustAccAmount: Decimal;\n begin\n- Cust.SetCurrentKey(\"Customer Posting Group\");\n- Cust.SetRange(\"Customer Posting Group\", PostingGr);\n-\n- if Cust.Find('-') then\n- repeat\n- DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\");\n- DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n- DtldCustLedgEntry.CalcSums(\"Amount (LCY)\");\n- CustAccAmount := CustAccAmount + DtldCustLedgEntry.\"Amount (LCY)\";\n- until Cust.Next() = 0;\n-\n- exit(CustAccAmount);\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n+ DtldCustLedgEntry.CalcSums(\"Amount (LCY)\");\n+ exit(DtldCustLedgEntry.\"Amount (LCY)\");\n end;\n \n local procedure CalcCustCreditAmount(PostingGr: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n var\n- Cust: Record Customer;\n DtldCustLedgEntry: Record \"Detailed Cust. Ledg. Entry\";\n- CustCreditAmount: Decimal;\n begin\n- Cust.SetCurrentKey(\"Customer Posting Group\");\n- Cust.SetRange(\"Customer Posting Group\", PostingGr);\n-\n- if Cust.Find('-') then\n- repeat\n- DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\", \"Entry Type\");\n- DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n- DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n- DtldCustLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n- CustCreditAmount := CustCreditAmount + DtldCustLedgEntry.\"Credit Amount (LCY)\";\n- until Cust.Next() = 0;\n-\n- exit(CustCreditAmount);\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n+ DtldCustLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n+ exit(DtldCustLedgEntry.\"Credit Amount (LCY)\");\n end;\n \n local procedure CalcCustDebitAmount(PostingGr: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n var\n- Cust: Record Customer;\n DtldCustLedgEntry: Record \"Detailed Cust. Ledg. Entry\";\n- CustDebitAmount: Decimal;\n begin\n- Cust.SetCurrentKey(\"Customer Posting Group\");\n- Cust.SetRange(\"Customer Posting Group\", PostingGr);\n-\n- if Cust.Find('-') then\n- repeat\n- DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\", \"Entry Type\");\n- DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n- DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n- DtldCustLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n- CustDebitAmount := CustDebitAmount + DtldCustLedgEntry.\"Debit Amount (LCY)\";\n- until Cust.Next() = 0;\n-\n- exit(-CustDebitAmount);\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n+ DtldCustLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n+ exit(-DtldCustLedgEntry.\"Debit Amount (LCY)\");\n end;\n \n local procedure CalcVendAccAmount(PostingGr: Code[20]): Decimal\n var\n- Vend: Record Vendor;\n DtldVendLedgEntry: Record \"Detailed Vendor Ledg. Entry\";\n- VendAccAmount: Decimal;\n begin\n- Vend.SetCurrentKey(\"Vendor Posting Group\");\n- Vend.SetRange(\"Vendor Posting Group\", PostingGr);\n-\n- if Vend.Find('-') then\n- repeat\n- DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\");\n- DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n- DtldVendLedgEntry.CalcSums(\"Amount (LCY)\");\n- VendAccAmount := VendAccAmount + DtldVendLedgEntry.\"Amount (LCY)\";\n- until Vend.Next() = 0;\n-\n- exit(VendAccAmount);\n+ DtldVendLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n+ DtldVendLedgEntry.CalcSums(\"Amount (LCY)\");\n+ exit(DtldVendLedgEntry.\"Amount (LCY)\");\n end;\n \n local procedure CalcVendCreditAmount(PostingGr: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n var\n- Vend: Record Vendor;\n DtldVendLedgEntry: Record \"Detailed Vendor Ledg. Entry\";\n- VendCreditAmount: Decimal;\n begin\n- Vend.SetCurrentKey(\"Vendor Posting Group\");\n- Vend.SetRange(\"Vendor Posting Group\", PostingGr);\n-\n- if Vend.Find('-') then\n- repeat\n- DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\", \"Entry Type\");\n- DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n- DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n- DtldVendLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n- VendCreditAmount := VendCreditAmount + DtldVendLedgEntry.\"Credit Amount (LCY)\";\n- until Vend.Next() = 0;\n-\n- exit(VendCreditAmount);\n+ DtldVendLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n+ DtldVendLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n+ exit(DtldVendLedgEntry.\"Credit Amount (LCY)\");\n end;\n \n local procedure CalcVendDebitAmount(PostingGr: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n var\n- Vend: Record Vendor;\n DtldVendLedgEntry: Record \"Detailed Vendor Ledg. Entry\";\n- VendDebitAmount: Decimal;\n begin\n- Vend.SetCurrentKey(\"Vendor Posting Group\");\n- Vend.SetRange(\"Vendor Posting Group\", PostingGr);\n-\n- if Vend.Find('-') then\n- repeat\n- DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\", \"Entry Type\");\n- DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n- DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n- DtldVendLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n- VendDebitAmount := VendDebitAmount + DtldVendLedgEntry.\"Debit Amount (LCY)\";\n- until Vend.Next() = 0;\n-\n- exit(-VendDebitAmount);\n+ DtldVendLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n+ DtldVendLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n+ exit(-DtldVendLedgEntry.\"Debit Amount (LCY)\");\n end;\n \n local procedure CalcCurrGainLossAmount(CurrencyCode: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-206527", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 618.189, "tool_calls": 53, "total_tokens": 2029200, "TurnCount": 72}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":4,\"grep\":20,\"powershell\":3,\"report_intent\":3,\"task\":1,\"update_todo\":4,\"view\":17}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al b/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\nindex e3280001..3ecf13df 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\n@@ -102,8 +102,8 @@ table 99000829 \"Planning Component\"\n end else\n \"Qty. per Unit of Measure\" := 1;\n \n- \"Qty. Rounding Precision\" := UOMMgt.GetQtyRoundingPrecision(Item, \"Unit of Measure Code\");\n- \"Qty. Rounding Precision (Base)\" := UOMMgt.GetQtyRoundingPrecision(Item, Item.\"Base Unit of Measure\");\n+ \"Qty. Rounding Precision\" := 0;\n+ \"Qty. Rounding Precision (Base)\" := 0;\n \n \"Indirect Cost %\" := Round(Item.\"Indirect Cost %\" * \"Qty. per Unit of Measure\", UOMMgt.QtyRndPrecision());\n \ndiff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\nindex 36930a9e..058f96b4 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n@@ -263,7 +263,6 @@ codeunit 99000773 \"Calculate Prod. Order\"\n Item2: Record Item;\n ComponentSKU: Record \"Stockkeeping Unit\";\n IsHandled: Boolean;\n- QtyRoundPrecision: Decimal;\n begin\n ProdOrderComp.Reset();\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\", \"Item No.\");\n@@ -295,12 +294,7 @@ codeunit 99000773 \"Calculate Prod. Order\"\n ProdOrderComp.\"Bin Code\" := GetDefaultBin();\n ProdOrderComp.Description := ProdBOMLine[Level].Description;\n ProdOrderComp.Validate(\"Unit of Measure Code\", ProdBOMLine[Level].\"Unit of Measure Code\");\n- if (ProdOrderComp.\"Item No.\" <> '') and Item2.Get(ProdOrderComp.\"Item No.\") then\n- QtyRoundPrecision := UOMMgt.GetQtyRoundingPrecision(Item2, ProdBOMLine[Level].\"Unit of Measure Code\");\n- if QtyRoundPrecision <> 0 then\n- ProdOrderComp.\"Quantity per\" := Round(ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM, QtyRoundPrecision)\n- else\n- ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n+ ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n ProdOrderComp.Length := ProdBOMLine[Level].Length;\n ProdOrderComp.Width := ProdBOMLine[Level].Width;\n ProdOrderComp.Weight := ProdBOMLine[Level].Weight;\ndiff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al b/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\nindex c532e014..8a312e9e 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\n@@ -117,8 +117,8 @@ table 5407 \"Prod. Order Component\"\n GetGLSetup();\n \n \"Qty. per Unit of Measure\" := UOMMgt.GetQtyPerUnitOfMeasure(Item, \"Unit of Measure Code\");\n- \"Qty. Rounding Precision\" := UOMMgt.GetQtyRoundingPrecision(Item, \"Unit of Measure Code\");\n- \"Qty. Rounding Precision (Base)\" := UOMMgt.GetQtyRoundingPrecision(Item, Item.\"Base Unit of Measure\");\n+ \"Qty. Rounding Precision\" := 0;\n+ \"Qty. Rounding Precision (Base)\" := 0;\n \n \"Quantity (Base)\" := CalcBaseQty(Quantity, FieldCaption(Quantity), FieldCaption(\"Quantity (Base)\"));\n \n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-177493", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 204.278, "tool_calls": 36, "total_tokens": 671000, "TurnCount": 42}, "Project": "BaseApp", "ToolUsage": "{\"edit\":6,\"grep\":20,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":4}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\nindex bb47904d..1ba5d671 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n@@ -58,6 +58,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if Reserve = Reserve::Never then\n+ CurrReport.Skip();\n+\n if not CheckIfSalesLineMeetsReservedFromStockSetting(Abs(\"Outstanding Qty. (Base)\"), ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -107,6 +110,9 @@ report 302 \"Get Demand To Reserve\"\n var\n Item: Record Item;\n begin\n+ if Item.Get(\"Item No.\") and (Item.Reserve = Item.Reserve::Never) then\n+ CurrReport.Skip();\n+\n if not CheckIfTransferLineMeetsReservedFromStockSetting(\"Outstanding Qty. (Base)\", ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -158,6 +164,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if Reserve = Reserve::Never then\n+ CurrReport.Skip();\n+\n if not CheckIfServiceLineMeetsReservedFromStockSetting(Abs(\"Outstanding Qty. (Base)\"), ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -208,6 +217,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if Reserve = Reserve::Never then\n+ CurrReport.Skip();\n+\n if not CheckIfJobPlngLineMeetsReservedFromStockSetting(\"Remaining Qty. (Base)\", ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -259,6 +271,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if Reserve = Reserve::Never then\n+ CurrReport.Skip();\n+\n if not CheckIfAssemblyLineMeetsReservedFromStockSetting(\"Remaining Quantity (Base)\", ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -309,6 +324,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if Item.Get(\"Item No.\") and (Item.Reserve = Item.Reserve::Never) then\n+ CurrReport.Skip();\n+\n if not CheckIfProdOrderCompMeetsReservedFromStockSetting(\"Remaining Qty. (Base)\", ReservedFromStock)\n then\n CurrReport.Skip();\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-217974", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 236.924, "tool_calls": 19, "total_tokens": 214700, "TurnCount": 75}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":6,\"report_intent\":2,\"task\":1,\"update_todo\":1,\"view\":8}", "output": "diff --git a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\nindex 780de254..5d1ff1d0 100644\n--- a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n@@ -1757,6 +1757,7 @@ codeunit 6620 \"Copy Document Mgt.\"\n OnUpdateSalesHeaderWhenCopyFromSalesHeaderOnBeforeValidateShipToCode(SalesHeader);\n SalesHeader.Validate(SalesHeader.\"Ship-to Code\");\n end;\n+ UpdateShipToAddress(SalesHeader);\n if FromDocType in [\"Sales Document Type From\"::Quote, \"Sales Document Type From\"::\"Blanket Order\"] then\n if OriginalSalesHeader.\"Posting Date\" = 0D then\n SalesHeader.\"Posting Date\" := WorkDate()\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-174794", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 129.284, "tool_calls": 21, "total_tokens": 360900, "TurnCount": 21}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":6,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":9}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\nindex b941d50c..b0359488 100644\n--- a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n@@ -285,6 +285,7 @@ codeunit 395 \"FinChrgMemo-Issue\"\n end;\n TempGenJnlLine.Validate(\"Currency Code\", FinChrgMemoHeader.\"Currency Code\");\n if TempGenJnlLine.\"Account Type\" = TempGenJnlLine.\"Account Type\"::Customer then begin\n+ TempGenJnlLine.\"Posting Group\" := FinChrgMemoHeader.\"Customer Posting Group\";\n TempGenJnlLine.Validate(Amount, TotalAmount);\n TempGenJnlLine.Validate(\"Amount (LCY)\", TotalAmountLCY);\n TempGenJnlLine.\"Due Date\" := FinChrgMemoHeader.\"Due Date\";\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-223202", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 296.335, "tool_calls": 21, "total_tokens": 597300, "TurnCount": 33}, "Project": "BaseApp", "ToolUsage": "{\"edit\":3,\"grep\":2,\"powershell\":1,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":8}", "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al\nindex 84769ae0..c8e0c24e 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al\n@@ -257,7 +257,16 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ExpSubDirCostRtng: Decimal;\n ExpCapOvhdCostRtng: Decimal;\n ExpOvhdCost: Decimal;\n+ PrevExpMatCost: Decimal;\n+ PrevExpCapDirCost: Decimal;\n+ PrevExpSubDirCost: Decimal;\n+ PrevExpCapOvhdCost: Decimal;\n begin\n+ PrevExpMatCost := ExpMatCost;\n+ PrevExpCapDirCost := ExpCapDirCost;\n+ PrevExpSubDirCost := ExpSubDirCost;\n+ PrevExpCapOvhdCost := ExpCapOvhdCost;\n+\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\");\n ProdOrderComp.SetRange(Status, ProdOrderLine.Status);\n ProdOrderComp.SetRange(\"Prod. Order No.\", ProdOrderLine.\"Prod. Order No.\");\n@@ -304,7 +313,7 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ExpCapDirCost := ExpCapDirCost + Round(ExpCapDirCostRtng * ShareOfTotalCapCost);\n ExpSubDirCost := ExpSubDirCost + Round(ExpSubDirCostRtng * ShareOfTotalCapCost);\n ExpCapOvhdCost := ExpCapOvhdCost + Round(ExpCapOvhdCostRtng * ShareOfTotalCapCost);\n- ExpMfgDirCost := ExpMatCost + ExpCapDirCost + ExpSubDirCost + ExpCapOvhdCost;\n+ ExpMfgDirCost := (ExpMatCost - PrevExpMatCost) + (ExpCapDirCost - PrevExpCapDirCost) + (ExpSubDirCost - PrevExpSubDirCost) + (ExpCapOvhdCost - PrevExpCapOvhdCost);\n ExpOvhdCost := ExpMfgOvhdCost + ProdOrderLine.\"Overhead Rate\" * ProdOrderLine.\"Quantity (Base)\";\n ExpMfgOvhdCost := ExpOvhdCost +\n Round(CostCalculationMgt.CalcOvhdCost(ExpMfgDirCost, ProdOrderLine.\"Indirect Cost %\", 0, 0));\n@@ -327,7 +336,18 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ExpSubDirCostRtng: Decimal;\n ExpCapOvhdCostRtng: Decimal;\n ExpOvhdCost: Decimal;\n+ PrevExpMatCost: Decimal;\n+ PrevExpNonInvMatCost: Decimal;\n+ PrevExpCapDirCost: Decimal;\n+ PrevExpSubDirCost: Decimal;\n+ PrevExpCapOvhdCost: Decimal;\n begin\n+ PrevExpMatCost := ExpMatCost;\n+ PrevExpNonInvMatCost := ExpNonInvMatCost;\n+ PrevExpCapDirCost := ExpCapDirCost;\n+ PrevExpSubDirCost := ExpSubDirCost;\n+ PrevExpCapOvhdCost := ExpCapOvhdCost;\n+\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\");\n ProdOrderComp.SetRange(Status, ProdOrderLine.Status);\n ProdOrderComp.SetRange(\"Prod. Order No.\", ProdOrderLine.\"Prod. Order No.\");\n@@ -366,7 +386,7 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ExpCapDirCost := ExpCapDirCost + Round(ExpCapDirCostRtng * ShareOfTotalCapCost);\n ExpSubDirCost := ExpSubDirCost + Round(ExpSubDirCostRtng * ShareOfTotalCapCost);\n ExpCapOvhdCost := ExpCapOvhdCost + Round(ExpCapOvhdCostRtng * ShareOfTotalCapCost);\n- ExpMfgDirCost := ExpMatCost + ExpNonInvMatCost + ExpCapDirCost + ExpSubDirCost + ExpCapOvhdCost;\n+ ExpMfgDirCost := (ExpMatCost - PrevExpMatCost) + (ExpNonInvMatCost - PrevExpNonInvMatCost) + (ExpCapDirCost - PrevExpCapDirCost) + (ExpSubDirCost - PrevExpSubDirCost) + (ExpCapOvhdCost - PrevExpCapOvhdCost);\n ExpOvhdCost := ExpMfgOvhdCost + ProdOrderLine.\"Overhead Rate\" * ProdOrderLine.\"Quantity (Base)\";\n ExpMfgOvhdCost := ExpOvhdCost +\n Round(CostCalculationMgt.CalcOvhdCost(ExpMfgDirCost, ProdOrderLine.\"Indirect Cost %\", 0, 0));\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-209496", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 129.34, "tool_calls": 18, "total_tokens": 244700, "TurnCount": 18}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":2,\"grep\":3,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":6}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\nindex 10d284cc..768dec3d 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\n@@ -132,8 +132,10 @@ page 835 \"Reminder Level Communication\"\n LocalLanguage.FindFirst();\n \n // Necessary when the user has deleted all languages or has not created any language yet\n- if IsNullGuid(Rec.\"Reminder Attachment Text\") then\n+ if IsNullGuid(Rec.\"Reminder Attachment Text\") then begin\n ReminderCommunication.SetDefaultContentForNewLanguage(CreateGuid(), LocalLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Level\", Rec.SystemId);\n+ Rec.Get(Rec.\"Reminder Terms Code\", Rec.\"No.\");\n+ end;\n \n SelectedNewLanguage := true;\n SelectLanguageAndText(LocalLanguage.Code, true);\ndiff --git a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al\nindex 5cce8ad7..2e1faef8 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al\n@@ -125,8 +125,10 @@ page 1897 \"Reminder Term Communication\"\n LocalLanguage.FindFirst();\n \n // Necessary when the user has deleted all languages or has not created any language yet\n- if IsNullGuid(Rec.\"Reminder Attachment Text\") then\n+ if IsNullGuid(Rec.\"Reminder Attachment Text\") then begin\n ReminderCommunication.SetDefaultContentForNewLanguage(CreateGuid(), LocalLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Term\", Rec.SystemId);\n+ Rec.Get(Rec.Code);\n+ end;\n \n SelectedNewLanguage := true;\n SelectLanguageAndText(LocalLanguage.Code, true);\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-193853", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 206.772, "tool_calls": 24, "total_tokens": 583000, "TurnCount": 46}, "Project": "EnforcedDigitalVouchers", "ToolUsage": "{\"edit\":2,\"grep\":2,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":13}", "output": "diff --git a/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al b/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\nindex 72dc980e..a27beb65 100644\n--- a/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\n+++ b/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\n@@ -219,6 +219,8 @@ codeunit 5579 \"Digital Voucher Impl.\"\n VoucherAttached := GetIncomingDocumentRecordFromRecordRef(IncomingDocument, RecRef);\n if VoucherAttached then\n exit(true);\n+ if CheckVoucherAttachedToRelatedGenJnlLine(RecRef) then\n+ exit(true);\n if DigitalVoucherEntrySetup.\"Generate Automatically\" then\n exit(true);\n SourceCodeSetup.Get();\n@@ -274,6 +276,30 @@ codeunit 5579 \"Digital Voucher Impl.\"\n exit(true);\n end;\n \n+ local procedure CheckVoucherAttachedToRelatedGenJnlLine(RecRef: RecordRef): Boolean\n+ var\n+ GenJournalLine: Record \"Gen. Journal Line\";\n+ RelatedGenJournalLine: Record \"Gen. Journal Line\";\n+ IncomingDocument: Record \"Incoming Document\";\n+ RelatedRecRef: RecordRef;\n+ begin\n+ if RecRef.Number <> Database::\"Gen. Journal Line\" then\n+ exit(false);\n+ RecRef.SetTable(GenJournalLine);\n+ RelatedGenJournalLine.SetRange(\"Journal Template Name\", GenJournalLine.\"Journal Template Name\");\n+ RelatedGenJournalLine.SetRange(\"Journal Batch Name\", GenJournalLine.\"Journal Batch Name\");\n+ RelatedGenJournalLine.SetRange(\"Posting Date\", GenJournalLine.\"Posting Date\");\n+ RelatedGenJournalLine.SetRange(\"Document No.\", GenJournalLine.\"Document No.\");\n+ RelatedGenJournalLine.SetFilter(\"Line No.\", '<>%1', GenJournalLine.\"Line No.\");\n+ if RelatedGenJournalLine.FindSet() then\n+ repeat\n+ RelatedRecRef.GetTable(RelatedGenJournalLine);\n+ if GetIncomingDocumentRecordFromRecordRef(IncomingDocument, RelatedRecRef) then\n+ exit(true);\n+ until RelatedGenJournalLine.Next() = 0;\n+ exit(false);\n+ end;\n+\n local procedure AttachGenJnlLinePDFToIncomingDocument(RecRef: RecordRef)\n var\n GenJournalLine: Record \"Gen. Journal Line\";\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-213524", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 100.85499999999999, "tool_calls": 20, "total_tokens": 267900, "TurnCount": 11}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":10,\"report_intent\":2,\"update_todo\":3,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/Intercompany/ICNavigation.Codeunit.al b/App/Layers/W1/BaseApp/Finance/Intercompany/ICNavigation.Codeunit.al\nindex 92bf43b1..9849c205 100644\n--- a/App/Layers/W1/BaseApp/Finance/Intercompany/ICNavigation.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/Intercompany/ICNavigation.Codeunit.al\n@@ -111,6 +111,18 @@ codeunit 437 \"IC Navigation\"\n exit(NavigateToSalesInvoice(DocumentNo, ICPartnerCode));\n end;\n \n+ local procedure NavigateToSalesCreditMemo(DocumentNo: Code[20]): Boolean\n+ var\n+ SalesCrMemoHeader: Record \"Sales Cr.Memo Header\";\n+ PostedSalesCreditMemo: Page \"Posted Sales Credit Memo\";\n+ begin\n+ if not SalesCrMemoHeader.Get(DocumentNo) then\n+ exit(false);\n+ PostedSalesCreditMemo.SetRecord(SalesCrMemoHeader);\n+ PostedSalesCreditMemo.Run();\n+ exit(true);\n+ end;\n+\n local procedure NavigateToSalesDocument(DocumentNo: Code[20]; ICDirectionType: Enum \"IC Direction Type\"; ICPartnerCode: Code[20]; DocumentType: Enum \"IC Transaction Document Type\"): Boolean\n var\n ShouldNavigateToDoc: Boolean;\n@@ -120,6 +132,8 @@ codeunit 437 \"IC Navigation\"\n exit(NavigateToSalesOrderDocument(DocumentNo, ICDirectionType, ICPartnerCode));\n DocumentType::Invoice:\n exit(NavigateToSalesInvoice(DocumentNo));\n+ DocumentType::\"Credit Memo\":\n+ exit(NavigateToSalesCreditMemo(DocumentNo));\n else begin\n ShouldNavigateToDoc := false;\n OnNavigateToSalesDocumentOnAfterCheckDocumentType(DocumentNo, ICDirectionType, ICPartnerCode, DocumentType, ShouldNavigateToDoc);\n@@ -223,6 +237,45 @@ codeunit 437 \"IC Navigation\"\n exit(NavigateToPurchaseInvoice(DocumentNo, ICPartnerCode));\n end;\n \n+ local procedure NavigateToPostedPurchaseCreditMemo(DocumentNo: Code[20]; VendorNo: Code[20]): Boolean\n+ var\n+ PurchCrMemoHdr: Record \"Purch. Cr. Memo Hdr.\";\n+ PostedPurchaseCreditMemo: Page \"Posted Purchase Credit Memo\";\n+ begin\n+ PurchCrMemoHdr.SetRange(\"Buy-from Vendor No.\", VendorNo);\n+ PurchCrMemoHdr.SetRange(\"Vendor Cr. Memo No.\", DocumentNo);\n+ if not PurchCrMemoHdr.FindFirst() then\n+ exit(false);\n+ PostedPurchaseCreditMemo.SetRecord(PurchCrMemoHdr);\n+ PostedPurchaseCreditMemo.Run();\n+ exit(true);\n+ end;\n+\n+ local procedure NavigateToPurchaseCreditMemoDocument(DocumentNo: Code[20]; ICPartnerCode: Code[20]): Boolean\n+ var\n+ Vendor: Record Vendor;\n+ PurchaseHeader: Record \"Purchase Header\";\n+ PurchaseCreditMemo: Page \"Purchase Credit Memo\";\n+ begin\n+ Vendor.SetRange(\"IC Partner Code\", ICPartnerCode);\n+ if not Vendor.FindSet() then\n+ exit(false);\n+ repeat\n+ PurchaseHeader.SetRange(\"IC Direction\", PurchaseHeader.\"IC Direction\"::Incoming);\n+ PurchaseHeader.SetRange(\"Document Type\", PurchaseHeader.\"Document Type\"::\"Credit Memo\");\n+ PurchaseHeader.SetRange(\"Buy-from Vendor No.\", Vendor.\"No.\");\n+ PurchaseHeader.SetRange(\"Vendor Cr. Memo No.\", DocumentNo);\n+ if PurchaseHeader.FindFirst() then begin\n+ PurchaseCreditMemo.SetRecord(PurchaseHeader);\n+ PurchaseCreditMemo.Run();\n+ exit(true);\n+ end;\n+ if NavigateToPostedPurchaseCreditMemo(DocumentNo, Vendor.\"No.\") then\n+ exit(true);\n+ until Vendor.Next() = 0;\n+ exit(false);\n+ end;\n+\n local procedure NavigateToPurchaseDocument(DocumentNo: Code[20]; ICDirectionType: Enum \"IC Direction Type\"; ICPartnerCode: Code[20]; DocumentType: Enum \"IC Transaction Document Type\"): Boolean\n var\n OpenDoc: Boolean;\n@@ -232,6 +285,8 @@ codeunit 437 \"IC Navigation\"\n exit(NavigateToPurchaseOrderDocument(DocumentNo, ICDirectionType, ICPartnerCode));\n DocumentType::Invoice:\n exit(NavigateToPurchaseInvoiceDocument(DocumentNo, ICPartnerCode));\n+ DocumentType::\"Credit Memo\":\n+ exit(NavigateToPurchaseCreditMemoDocument(DocumentNo, ICPartnerCode));\n else begin\n OnNavigateToPurchaseDocumentOnDocumentTypeCaseElse(DocumentNo, ICDirectionType, ICPartnerCode, DocumentType, OpenDoc);\n exit(OpenDoc);\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-174087", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 150.801, "tool_calls": 16, "total_tokens": 228300, "TurnCount": 27}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":1,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":8}", "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al b/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\nindex ff43f4ff..e789ff20 100644\n--- a/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\n+++ b/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\n@@ -356,7 +356,7 @@ page 5077 \"Create Interaction\"\n Caption = 'Interaction Result Description';\n ToolTip = 'Specifies a description of the interaction.';\n }\n- field(Evaluation; Rec.Evaluation)\n+ field(Evaluation; InteractionLogEntry.Evaluation)\n {\n ApplicationArea = RelationshipMgmt;\n Enabled = IsMainInfoSet;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-212355", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 191.024, "tool_calls": 13, "total_tokens": 183500, "TurnCount": 28}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":2,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":5}", "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Routing/CalculateRoutingLine.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Routing/CalculateRoutingLine.Codeunit.al\nindex c46c8c20..4d40b8b6 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Routing/CalculateRoutingLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Routing/CalculateRoutingLine.Codeunit.al\n@@ -1309,7 +1309,7 @@ codeunit 99000774 \"Calculate Routing Line\"\n end;\n \n MaxLotSize :=\n- ExpectedOperOutput *\n+ ProdOrderQty *\n (1 + ProdOrderRoutingLine.\"Scrap Factor % (Accumulated)\") *\n (1 + TotalScrap / 100) +\n ProdOrderRoutingLine.\"Fixed Scrap Qty. (Accum.)\";\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-223819", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 516.341, "tool_calls": 31, "total_tokens": 698500, "TurnCount": 133}, "Project": "BaseApp", "ToolUsage": "{\"edit\":5,\"grep\":1,\"powershell\":1,\"report_intent\":2,\"task\":4,\"update_todo\":3,\"view\":15}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al b/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\nindex 7fc2d985..024bc284 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\n@@ -2375,11 +2375,8 @@ table 83 \"Item Journal Line\"\n OnCreateDimOnBeforeUpdateGlobalDimFromDimSetID(Rec, xRec, CurrFieldNo, OldDimSetID, DefaultDimSource, InheritFromDimSetID, InheritFromTableNo);\n DimMgt.UpdateGlobalDimFromDimSetID(\"Dimension Set ID\", \"Shortcut Dimension 1 Code\", \"Shortcut Dimension 2 Code\");\n \n- if \"Entry Type\" = \"Entry Type\"::Transfer then begin\n- \"New Dimension Set ID\" := \"Dimension Set ID\";\n- \"New Shortcut Dimension 1 Code\" := \"Shortcut Dimension 1 Code\";\n- \"New Shortcut Dimension 2 Code\" := \"Shortcut Dimension 2 Code\";\n- end;\n+ if \"Entry Type\" = \"Entry Type\"::Transfer then\n+ UpdateNewDimSetIDFromTransfer(SourceCode);\n end;\n \n /// \n@@ -3732,6 +3729,35 @@ table 83 \"Item Journal Line\"\n DimMgt.UpdateGlobalDimFromDimSetID(\"New Dimension Set ID\", \"New Shortcut Dimension 1 Code\", \"New Shortcut Dimension 2 Code\");\n end;\n \n+ local procedure UpdateNewDimSetIDFromTransfer(SourceCode: Code[10])\n+ var\n+ NewDefaultDimSource: List of [Dictionary of [Integer, Code[20]]];\n+ begin\n+ if (\"New Location Code\" <> '') and (\"New Location Code\" <> \"Location Code\") then begin\n+ InitNewDefaultDimensionSources(NewDefaultDimSource);\n+ \"New Shortcut Dimension 1 Code\" := '';\n+ \"New Shortcut Dimension 2 Code\" := '';\n+ \"New Dimension Set ID\" :=\n+ DimMgt.GetRecDefaultDimID(\n+ Rec, CurrFieldNo, NewDefaultDimSource, SourceCode,\n+ \"New Shortcut Dimension 1 Code\", \"New Shortcut Dimension 2 Code\", 0, 0);\n+ DimMgt.UpdateGlobalDimFromDimSetID(\"New Dimension Set ID\", \"New Shortcut Dimension 1 Code\", \"New Shortcut Dimension 2 Code\");\n+ end else begin\n+ \"New Dimension Set ID\" := \"Dimension Set ID\";\n+ \"New Shortcut Dimension 1 Code\" := \"Shortcut Dimension 1 Code\";\n+ \"New Shortcut Dimension 2 Code\" := \"Shortcut Dimension 2 Code\";\n+ end;\n+ end;\n+\n+ local procedure InitNewDefaultDimensionSources(var DefaultDimSource: List of [Dictionary of [Integer, Code[20]]])\n+ begin\n+ DimMgt.AddDimSource(DefaultDimSource, Database::Item, Rec.\"Item No.\", false);\n+ DimMgt.AddDimSource(DefaultDimSource, Database::\"Salesperson/Purchaser\", Rec.\"Salespers./Purch. Code\", false);\n+ DimMgt.AddDimSource(DefaultDimSource, Database::Location, Rec.\"New Location Code\", false);\n+\n+ OnAfterInitDefaultDimensionSources(Rec, DefaultDimSource, Rec.FieldNo(\"New Location Code\"));\n+ end;\n+\n local procedure GetTableValuePair(FieldNo: Integer) TableValuePair: Dictionary of [Integer, Code[20]]\n begin\n case true of\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-218786", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 208.537, "tool_calls": 10, "total_tokens": 139900, "TurnCount": 48}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":1,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al\nindex 0b806569..e597092b 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al\n@@ -3128,7 +3128,7 @@ table 5767 \"Warehouse Activity Line\"\n WhseActivityLine.SetLoadFields(\"Activity Type\", \"No.\", \"Line No.\", \"Item No.\", \"Variant Code\", \"Location Code\", \"Action Type\", Quantity, \"Lot No.\", \"Serial No.\", \"Source No.\", \"Source Line No.\", \"Source Document\");\n WhseActivityLine.SetRange(\"Activity Type\", FromWhseActivityLine.\"Activity Type\");\n WhseActivityLine.SetRange(\"No.\", FromWhseActivityLine.\"No.\");\n- WhseActivityLine.SetFilter(\"Line No.\", '<>%1', FromWhseActivityLine.\"Line No.\");\n+ WhseActivityLine.SetFilter(\"Line No.\", '>%1', FromWhseActivityLine.\"Line No.\");\n WhseActivityLine.SetRange(\"Item No.\", FromWhseActivityLine.\"Item No.\");\n WhseActivityLine.SetRange(\"Variant Code\", FromWhseActivityLine.\"Variant Code\");\n WhseActivityLine.SetRange(\"Location Code\", FromWhseActivityLine.\"Location Code\");\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-213671", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 55, "tool_calls": 11, "total_tokens": 137600, "TurnCount": 7}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":1,\"grep\":1,\"report_intent\":2,\"update_todo\":3,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al b/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\nindex c70c6c1e..81667180 100644\n--- a/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\n+++ b/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\n@@ -630,7 +630,7 @@ page 5123 \"Opportunity List\"\n if Filter <> '' then begin\n RecRef.GetTable(RecVar);\n IndexFieldRef := RecRef.Field(IndexFieldNo);\n- IndexFieldRef.SetRange(Filter);\n+ IndexFieldRef.SetFilter(Filter);\n if RecRef.FindFirst() then begin\n TextFieldRef := RecRef.Field(TextFieldNo);\n CaptionText := CopyStr(Format(IndexFieldRef.Value) + ' ' + Format(TextFieldRef.Value), 1, MaxStrLen(CaptionText));\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-213629", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 110.256, "tool_calls": 7, "total_tokens": 87900, "TurnCount": 24}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"report_intent\":2,\"task\":2,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al\nindex 162d6cc5..544c740a 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al\n@@ -192,6 +192,7 @@ codeunit 1006 \"Copy Job\"\n TargetJobPlanningLine.\"Completely Picked\" := false;\n TargetJobPlanningLine.\"Ledger Entry No.\" := 0;\n TargetJobPlanningLine.\"Ledger Entry Type\" := TargetJobPlanningLine.\"Ledger Entry Type\"::\" \";\n+ TargetJobPlanningLine.\"System-Created Entry\" := false;\n OnCopyJobPlanningLinesOnBeforeTargetJobPlanningLineInsert(TargetJobPlanningLine, SourceJobPlanningLine);\n TargetJobPlanningLine.Insert(true);\n OnCopyJobPlanningLinesOnAfterTargetJobPlanningLineInsert(TargetJobPlanningLine, SourceJobPlanningLine);\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-213683", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 296.748, "tool_calls": 19, "total_tokens": 320700, "TurnCount": 62}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":4,\"report_intent\":3,\"task\":2,\"update_todo\":3,\"view\":5}", "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al\nindex 9735e4b2..246b6a64 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al\n@@ -172,8 +172,6 @@ codeunit 99000795 \"Mfg. Item Integration\"\n RequisitionLine: Record \"Requisition Line\";\n TransferLine: Record \"Transfer Line\";\n ItemJournalLine: Record \"Item Journal Line\";\n- ValueEntry: Record \"Value Entry\";\n- ItemLedgerEntry: Record \"Item Ledger Entry\";\n ProdOrderLine: Record \"Prod. Order Line\";\n begin\n if xRec.\"Item No.\" <> Rec.\"Item No.\" then begin\n@@ -229,16 +227,6 @@ codeunit 99000795 \"Mfg. Item Integration\"\n ItemJournalLine.SetRange(\"Variant Code\", xRec.Code);\n if not ItemJournalLine.IsEmpty() then\n Error(CannotRenameItemErr, Rec.FieldCaption(\"Item No.\"), Rec.TableCaption(), ItemJournalLine.TableCaption());\n-\n- ItemLedgerEntry.SetRange(\"Item No.\", xRec.\"Item No.\");\n- ItemLedgerEntry.SetRange(\"Variant Code\", xRec.Code);\n- if not ItemLedgerEntry.IsEmpty() then\n- Error(CannotRenameItemErr, Rec.FieldCaption(\"Item No.\"), Rec.TableCaption(), ItemLedgerEntry.TableCaption());\n-\n- ValueEntry.SetRange(\"Item No.\", xRec.\"Item No.\");\n- ValueEntry.SetRange(\"Variant Code\", xRec.Code);\n- if not ValueEntry.IsEmpty() then\n- Error(CannotRenameItemErr, Rec.FieldCaption(\"Item No.\"), Rec.TableCaption(), ValueEntry.TableCaption());\n end;\n end;\n \n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-217104", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 189.843, "tool_calls": 14, "total_tokens": 238200, "TurnCount": 16}, "Project": "AutomaticAccountCodes", "ToolUsage": "{\"edit\":2,\"grep\":4,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":2}", "output": "diff --git a/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al b/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\nindex 0e4bcfe3..c051744e 100644\n--- a/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\n+++ b/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\n@@ -71,6 +71,7 @@ codeunit 4850 \"AA Codes Posting Helper\"\n GenJnlCheckLine: Codeunit \"Gen. Jnl.-Check Line\";\n NoOfAutoAccounts: Decimal;\n TotalAmount: Decimal;\n+ TotalAmountLCY: Decimal;\n TotalAltAmount: Decimal;\n SourceCurrBaseAmount: Decimal;\n AccLine: Integer;\n@@ -121,6 +122,9 @@ codeunit 4850 \"AA Codes Posting Helper\"\n GenJnlLine2.Validate(Amount, GenJnlLine2.Amount - TotalAmount);\n if (AccLine = NoOfAutoAccounts) and (TotalAltAmount <> 0) then\n GenJnlLine2.Validate(\"Source Currency Amount\", GenJnlLine2.\"Source Currency Amount\" - TotalAltAmount);\n+ TotalAmountLCY := TotalAmountLCY + GenJnlLine2.\"Amount (LCY)\";\n+ if (AccLine = NoOfAutoAccounts) and (TotalAmountLCY <> 0) then\n+ GenJnlLine2.\"Amount (LCY)\" := GenJnlLine2.\"Amount (LCY)\" - TotalAmountLCY;\n GenJnlCheckLine.RunCheck(GenJnlLine2);\n \n sender.InitGLEntry(GenJnlLine2, GLEntry,\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-203923", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 441.422, "tool_calls": 33, "total_tokens": 535100, "TurnCount": 100}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":5,\"grep\":9,\"powershell\":1,\"report_intent\":2,\"task\":3,\"update_todo\":3,\"view\":9}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\nindex 6bb15d7d..9c9227b8 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n@@ -93,7 +93,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetNonDeductibleVATPct(NonDeductibleVATPct, VATPostingSetup, GeneralPostingType, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (VATPostingSetup.\"VAT Calculation Type\" in [VATPostingSetup.\"VAT Calculation Type\"::\"Normal VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (VATPostingSetup.\"VAT Calculation Type\" in [VATPostingSetup.\"VAT Calculation Type\"::\"Normal VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Reverse Charge VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if (VATPostingSetup.\"Allow Non-Deductible VAT\" = VATPostingSetup.\"Allow Non-Deductible VAT\"::\"Do not allow\") or (GeneralPostingType <> GeneralPostingType::Purchase) then\n exit(0);\n@@ -786,7 +786,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeCalcNonDedAmountsInGenJnlLine(GenJournalLine, Currency, IsHandled);\n if IsHandled then\n exit;\n- if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit;\n if not VATPostingSetup.Get(GenJournalLine.\"VAT Bus. Posting Group\", GenJournalLine.\"VAT Prod. Posting Group\") then\n exit;\n@@ -826,7 +826,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeCalcBalNonDedAmountsInGenJnlLine(GenJournalLine, Currency, IsHandled);\n if IsHandled then\n exit;\n- if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Full VAT\"]) then\n exit;\n if not VATPostingSetup.Get(GenJournalLine.\"Bal. VAT Bus. Posting Group\", GenJournalLine.\"Bal. VAT Prod. Posting Group\") then\n exit;\n@@ -1210,7 +1210,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetNonDedVATPctForGenJnlLine(NonDeductibleVATPct, GenJournalLine, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if not VATPostingSetup.Get(GenJournalLine.\"VAT Bus. Posting Group\", GenJournalLine.\"VAT Prod. Posting Group\") then\n exit(0);\n@@ -1227,7 +1227,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetBalNonDedVATPctForGenJnlLine(NonDeductibleVATPct, GenJournalLine, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if not VATPostingSetup.Get(GenJournalLine.\"Bal. VAT Bus. Posting Group\", GenJournalLine.\"Bal. VAT Prod. Posting Group\") then\n exit(0);\n", "error_message": null} +{"InstanceID": "microsoft__BCApps-4699", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 209.834, "tool_calls": 28, "total_tokens": 689500, "TurnCount": 38}, "Project": "Shopify", "ToolUsage": "{\"edit\":3,\"glob\":6,\"grep\":7,\"report_intent\":1,\"task\":3,\"update_todo\":3,\"view\":5}", "output": "diff --git a/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al b/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al\nindex 4e6ffd2..2d12aa1 100644\n--- a/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al\n@@ -5,6 +5,7 @@\n \n namespace Microsoft.Integration.Shopify;\n \n+using Microsoft.Finance.Currency;\n using Microsoft.Inventory.Item;\n using Microsoft.Foundation.UOM;\n using Microsoft.Purchases.Vendor;\n@@ -227,6 +228,7 @@ codeunit 30171 \"Shpfy Create Item\"\n /// Parameter of type Boolean.\n local procedure DoCreateItem(var ShopifyProduct: Record \"Shpfy Product\"; var ShopifyVariant: Record \"Shpfy Variant\"; var Item: Record Item; ForVariant: Boolean)\n var\n+ CurrencyExchangeRate: Record \"Currency Exchange Rate\";\n ItemCategory: Record \"Item Category\";\n ItemVariant: Record \"Item Variant\";\n Vendor: Record Vendor;\n@@ -258,10 +260,16 @@ codeunit 30171 \"Shpfy Create Item\"\n CreateItemUnitOfMeasure(ShopifyVariant, Item);\n \n if ShopifyVariant.\"Unit Cost\" <> 0 then\n- Item.Validate(\"Unit Cost\", ShopifyVariant.\"Unit Cost\");\n+ if Shop.\"Currency Code\" = '' then\n+ Item.Validate(\"Unit Cost\", ShopifyVariant.\"Unit Cost\")\n+ else\n+ Item.Validate(\"Unit Cost\", CurrencyExchangeRate.ExchangeAmtFCYToLCY(WorkDate(), Shop.\"Currency Code\", ShopifyVariant.\"Unit Cost\", CurrencyExchangeRate.ExchangeRate(WorkDate(), Shop.\"Currency Code\")));\n \n if ShopifyVariant.Price <> 0 then\n- Item.Validate(\"Unit Price\", ShopifyVariant.Price);\n+ if Shop.\"Currency Code\" = '' then\n+ Item.Validate(\"Unit Price\", ShopifyVariant.Price)\n+ else\n+ Item.Validate(\"Unit Price\", CurrencyExchangeRate.ExchangeAmtFCYToLCY(WorkDate(), Shop.\"Currency Code\", ShopifyVariant.Price, CurrencyExchangeRate.ExchangeRate(WorkDate(), Shop.\"Currency Code\")));\n \n if ShopifyProduct.\"Product Type\" <> '' then begin\n ItemCategory.SetFilter(Description, FilterMgt.CleanFilterValue(ShopifyProduct.\"Product Type\", MaxStrLen(ItemCategory.Description)));\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-185792", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 195.739, "tool_calls": 15, "total_tokens": 138900, "TurnCount": 50}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":1,\"grep\":3,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":4}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\nindex 53e7159a..da7c4360 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\n@@ -598,6 +598,11 @@ table 81 \"Gen. Journal Line\"\n Validate(\"VAT %\");\n Validate(\"Bal. VAT %\");\n UpdateLineBalance();\n+\n+ if JobTaskIsSet() then begin\n+ CreateTempJobJnlLine();\n+ UpdatePricesFromJobJnlLine();\n+ end;\n end;\n end;\n }\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-208748", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 691.705, "tool_calls": 26, "total_tokens": 761100, "TurnCount": 122}, "Project": "BaseApp", "ToolUsage": "{\"edit\":3,\"glob\":1,\"grep\":3,\"report_intent\":3,\"task\":3,\"update_todo\":2,\"view\":11}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\nindex 7c1943c5..a4aae686 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\n@@ -2,6 +2,7 @@\n \n using Microsoft.Assembly.Document;\n using Microsoft.Finance.ReceivablesPayables;\n+using Microsoft.Foundation.ExtendedText;\n using Microsoft.Foundation.UOM;\n using Microsoft.Inventory.Availability;\n using Microsoft.Inventory.Tracking;\n@@ -123,6 +124,7 @@ codeunit 87 \"Blanket Sales Order to Order\"\n ATOLink: Record \"Assemble-to-Order Link\";\n PrepmtMgt: Codeunit \"Prepayment Mgt.\";\n SalesLineReserve: Codeunit \"Sales Line-Reserve\";\n+ TransferOldExtLines: Codeunit \"Transfer Old Ext. Text Lines\";\n QuantityOnOrders: Decimal;\n IsHandled: Boolean;\n ProcessLine: Boolean;\n@@ -166,6 +168,9 @@ codeunit 87 \"Blanket Sales Order to Order\"\n SalesLineOrder.\"Line No.\" := NextLineNo;\n SalesLineOrder.\"Blanket Order No.\" := SalesHeaderBlanketOrder.\"No.\";\n SalesLineOrder.\"Blanket Order Line No.\" := SalesLineBlanketOrder.\"Line No.\";\n+ SalesLineOrder.\"Attached to Line No.\" :=\n+ TransferOldExtLines.TransferExtendedText(\n+ SalesLineBlanketOrder.\"Line No.\", NextLineNo, SalesLineBlanketOrder.\"Attached to Line No.\");\n if (SalesLineOrder.\"No.\" <> '') and (SalesLineOrder.Type <> SalesLineOrder.Type::\" \") then begin\n SalesLineOrder.Amount := 0;\n SalesLineOrder.\"Amount Including VAT\" := 0;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-220314", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 89.121, "tool_calls": 11, "total_tokens": 148800, "TurnCount": 21}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al b/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\nindex fb9253b7..926da315 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\n@@ -163,6 +163,7 @@ table 83 \"Item Journal Line\"\n OnValidateItemNoOnAfterCalcUnitAmount(Rec, DummyWorkCenter, DummyMachineCenter);\n #endif\n \n+ \"Unit of Measure Code\" := '';\n case \"Entry Type\" of\n \"Entry Type\"::Purchase:\n \"Unit of Measure Code\" := Item.\"Purch. Unit of Measure\";\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-207247", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 165.14, "tool_calls": 17, "total_tokens": 204100, "TurnCount": 30}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":7,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":4}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\nindex bd370429..be4c099e 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n@@ -1539,8 +1539,12 @@ codeunit 99000813 \"Carry Out Action\"\n ActiveVersionCode := VersionManagement.GetBOMVersion(ProductionBOMHeader.\"No.\", WorkDate(), true);\n \n ProductionBOMLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n+ ProductionBOMLine.SetRange(\"Version Code\", ActiveVersionCode);\n ProductionBOMLine.SetRange(Type, ProductionBOMLine.Type::Item);\n ProductionBOMLine.SetRange(\"No.\", ProdOrderComponent.\"Item No.\");\n+ ProductionBOMLine.SetRange(Position, ProdOrderComponent.Position);\n+ ProductionBOMLine.SetRange(\"Position 2\", ProdOrderComponent.\"Position 2\");\n+ ProductionBOMLine.SetRange(\"Position 3\", ProdOrderComponent.\"Position 3\");\n if ProductionBOMLine.FindSet() then\n repeat\n ProductionBOMCommentLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-185696", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 186.048, "tool_calls": 19, "total_tokens": 294400, "TurnCount": 54}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":7,\"report_intent\":2,\"task\":2,\"update_todo\":2,\"view\":5}", "output": "diff --git a/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListLines.Page.al b/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListLines.Page.al\nindex bb986d65..878710ff 100644\n--- a/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListLines.Page.al\n+++ b/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListLines.Page.al\n@@ -303,6 +303,7 @@ page 7001 \"Price List Lines\"\n Rec.\"Currency Code\" := PriceListHeader.\"Currency Code\";\n end;\n Rec.\"Amount Type\" := ViewAmountType;\n+ Rec.SetNewRecord(true);\n Rec.Validate(\"Asset Type\", xRec.\"Asset Type\");\n UpdateSourceType();\n end;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-185488", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 235.758, "tool_calls": 22, "total_tokens": 547400, "TurnCount": 18}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":1,\"grep\":9,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":5}", "output": "diff --git a/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al b/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al\nindex bcd82095..a94adf3e 100644\n--- a/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al\n@@ -624,12 +624,25 @@ codeunit 1521 \"Workflow Response Handling\"\n begin\n end;\n \n- local procedure CreateNotificationEntry(WorkflowStepInstance: Record \"Workflow Step Instance\"; ApprovalEntry: Record \"Approval Entry\")\n+ local procedure CreateNotificationEntry(WorkflowStepInstance: Record \"Workflow Step Instance\"; RecVar: Variant)\n var\n WorkflowStepArgument: Record \"Workflow Step Argument\";\n+ ApprovalEntry: Record \"Approval Entry\";\n NotificationEntry: Record \"Notification Entry\";\n+ RecRef: RecordRef;\n IsHandled: Boolean;\n begin\n+ RecRef.GetTable(RecVar);\n+ if RecRef.Number = Database::\"Approval Entry\" then\n+ ApprovalEntry := RecVar\n+ else begin\n+ ApprovalEntry.SetCurrentKey(\"Table ID\", \"Record ID to Approve\", Status, \"Workflow Step Instance ID\", \"Sequence No.\");\n+ ApprovalEntry.SetRange(\"Table ID\", RecRef.Number);\n+ ApprovalEntry.SetRange(\"Record ID to Approve\", RecRef.RecordId);\n+ if not ApprovalEntry.FindLast() then\n+ exit;\n+ end;\n+\n IsHandled := false;\n OnBeforeCreateNotificationEntry(WorkflowStepInstance, ApprovalEntry, IsHandled);\n if IsHandled then\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-218995", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 91.173, "tool_calls": 16, "total_tokens": 322500, "TurnCount": 14}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":7,\"report_intent\":2,\"update_todo\":2,\"view\":4}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Posting/JobPostLine.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Posting/JobPostLine.Codeunit.al\nindex a913f1c1..bd54e22b 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Posting/JobPostLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Posting/JobPostLine.Codeunit.al\n@@ -478,6 +478,9 @@ codeunit 1001 \"Job Post-Line\"\n if IsHandled then\n exit;\n \n+ if PurchaseLine.IsNonInventoriableItem() then\n+ exit;\n+\n Job.Get(PurchaseLine.\"Job No.\");\n if Job.GetQuantityAvailable(PurchaseLine.\"No.\", PurchaseLine.\"Location Code\", PurchaseLine.\"Variant Code\", 0, 2) <\n -PurchaseLine.\"Return Qty. to Ship (Base)\"\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-193649", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 308.819, "tool_calls": 27, "total_tokens": 548400, "TurnCount": 65}, "Project": "Shopify", "ToolUsage": "{\"edit\":3,\"grep\":7,\"report_intent\":2,\"task\":3,\"update_todo\":3,\"view\":9}", "output": "diff --git a/App/Apps/W1/Shopify/app/src/Document Links/Codeunits/ShpfyDocumentLinkMgt.Codeunit.al b/App/Apps/W1/Shopify/app/src/Document Links/Codeunits/ShpfyDocumentLinkMgt.Codeunit.al\nindex 575010de..ea2d8df6 100644\n--- a/App/Apps/W1/Shopify/app/src/Document Links/Codeunits/ShpfyDocumentLinkMgt.Codeunit.al\t\n+++ b/App/Apps/W1/Shopify/app/src/Document Links/Codeunits/ShpfyDocumentLinkMgt.Codeunit.al\t\n@@ -1,8 +1,10 @@\n namespace Microsoft.Integration.Shopify;\n \n+using Microsoft.Sales.Archive;\n using Microsoft.Sales.Document;\n using Microsoft.Sales.History;\n using Microsoft.Sales.Posting;\n+using Microsoft.Utilities;\n \n codeunit 30262 \"Shpfy Document Link Mgt.\"\n {\n@@ -96,4 +98,15 @@ codeunit 30262 \"Shpfy Document Link Mgt.\"\n NewDocLinkToBCDoc.Insert();\n end;\n end;\n+\n+ [EventSubscriber(ObjectType::Codeunit, Codeunit::\"Copy Document Mgt.\", 'OnAfterCopySalesHeaderDone', '', true, false)]\n+ local procedure OnAfterCopySalesHeaderDone(var ToSalesHeader: Record \"Sales Header\"; OldSalesHeader: Record \"Sales Header\"; FromSalesHeader: Record \"Sales Header\"; FromSalesShipmentHeader: Record \"Sales Shipment Header\"; FromSalesInvoiceHeader: Record \"Sales Invoice Header\"; FromReturnReceiptHeader: Record \"Return Receipt Header\"; FromSalesCrMemoHeader: Record \"Sales Cr.Memo Header\"; FromSalesHeaderArchive: Record \"Sales Header Archive\"; FromDocType: Enum \"Sales Document Type From\")\n+ begin\n+ if ToSalesHeader.IsTemporary() then\n+ exit;\n+\n+ ToSalesHeader.\"Shpfy Order Id\" := 0;\n+ ToSalesHeader.\"Shpfy Order No.\" := '';\n+ ToSalesHeader.Modify();\n+ end;\n }\n\\ No newline at end of file\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-221877", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 255.394, "tool_calls": 25, "total_tokens": 435700, "TurnCount": 51}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":6,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":11}", "output": "diff --git a/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al b/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al\nindex 1c8fcc9e..1426a748 100644\n--- a/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al\n@@ -1583,6 +1583,45 @@ table 5901 \"Service Item Line\"\n if \"Line No.\" = 0 then\n LendLoanerWithConfirmation(false);\n \n+ if \"Repair Status Code\" <> '' then begin\n+ RepairStatus.Get(\"Repair Status Code\");\n+ RepairStatusPriority := RepairStatus.Priority;\n+ UseLineNo := \"Line No.\";\n+ ServItemLine.Reset();\n+ ServItemLine.SetRange(\"Document Type\", \"Document Type\");\n+ ServItemLine.SetRange(\"Document No.\", \"Document No.\");\n+ ServItemLine.SetFilter(\"Line No.\", '<>%1', \"Line No.\");\n+ ServItemLine.SetFilter(\"Repair Status Code\", '<>%1', '');\n+ if ServItemLine.Find('-') then\n+ repeat\n+ RepairStatus2.Get(ServItemLine.\"Repair Status Code\");\n+ if RepairStatus2.Priority < RepairStatusPriority then begin\n+ RepairStatusPriority := RepairStatus2.Priority;\n+ UseLineNo := ServItemLine.\"Line No.\";\n+ end;\n+ until ServItemLine.Next() = 0;\n+ if \"Line No.\" <> UseLineNo then begin\n+ ServItemLine.Get(\"Document Type\", \"Document No.\", UseLineNo);\n+ RepairStatus.Get(ServItemLine.\"Repair Status Code\");\n+ end else\n+ RepairStatus.Get(\"Repair Status Code\");\n+ ServHeader2.Get(Rec.\"Document Type\", Rec.\"Document No.\");\n+ ServHeader3 := ServHeader2;\n+ if ServHeader2.Status <> RepairStatus.\"Service Order Status\" then begin\n+ ServHeader2.SetValidatingFromLines(true);\n+ if ServHeader2.\"Finishing Date\" = 0D then\n+ ServHeader2.Validate(\"Finishing Date\", \"Finishing Date\");\n+ ServHeader2.Validate(Status, RepairStatus.\"Service Order Status\");\n+ if not (ServHeader2.Status = ServHeader2.Status::Finished) then begin\n+ ServHeader2.\"Finishing Date\" := 0D;\n+ ServHeader2.\"Finishing Time\" := 0T;\n+ ServHeader2.\"Service Time (Hours)\" := 0;\n+ end;\n+ ServHeader2.UpdateServiceOrderChangeLog(ServHeader3);\n+ ServHeader2.Modify();\n+ end;\n+ end;\n+\n if \"Service Item No.\" = '' then\n \"Ship-to Code\" := ServHeader.\"Ship-to Code\";\n if FirstServItemLine and\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-220984", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 65.039, "tool_calls": 14, "total_tokens": 168200, "TurnCount": 9}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":3,\"report_intent\":2,\"update_todo\":2,\"view\":6}", "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al\nindex 83bf3f09..fc62ac19 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al\n@@ -157,7 +157,7 @@ report 99001043 \"Exchange Production BOM Item\"\n CopyPositionFields(ProductionBOMLine2, ProductionBOMLine3);\n ShouldModifyProductionBOMLine := true;\n OnIntegerOnPostDataItemOnBeforeModifyProductionBOMLine(ProductionBOMLine, ShouldModifyProductionBOMLine);\n- if not ShouldModifyProductionBOMLine then begin\n+ if ShouldModifyProductionBOMLine then begin\n ProductionBOMLine.\"Ending Date\" := StartingDate - 1;\n ProductionBOMLine.Modify();\n end;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-222092", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 744.745, "tool_calls": 39, "total_tokens": 1627900, "TurnCount": 88}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":1,\"grep\":9,\"report_intent\":3,\"task\":3,\"update_todo\":2,\"view\":20}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\nindex 825eb23c..9ff59101 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n@@ -270,8 +270,8 @@ codeunit 393 \"Reminder-Issue\"\n begin\n GenJnlLine2.\"Shortcut Dimension 1 Code\" := GlobalReminderHeader.\"Shortcut Dimension 1 Code\";\n GenJnlLine2.\"Shortcut Dimension 2 Code\" := GlobalReminderHeader.\"Shortcut Dimension 2 Code\";\n- DimSetIDArr[1] := GlobalReminderHeader.\"Dimension Set ID\";\n- DimSetIDArr[2] := TempGenJnlLine.\"Dimension Set ID\";\n+ DimSetIDArr[1] := TempGenJnlLine.\"Dimension Set ID\";\n+ DimSetIDArr[2] := GlobalReminderHeader.\"Dimension Set ID\";\n GenJnlLine2.\"Dimension Set ID\" :=\n DimMgt.GetCombinedDimensionSetID(\n DimSetIDArr, GenJnlLine2.\"Shortcut Dimension 1 Code\", GenJnlLine2.\"Shortcut Dimension 2 Code\");\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-226875", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 295.48, "tool_calls": 47, "total_tokens": 1109700, "TurnCount": 74}, "Project": "BaseApp", "ToolUsage": "{\"edit\":12,\"grep\":2,\"powershell\":2,\"report_intent\":2,\"task\":3,\"update_todo\":3,\"view\":23}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\nindex fa043e01..15f2cd1d 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n@@ -154,6 +154,7 @@ page 254 \"Purchase Journal\"\n trigger OnValidate()\n begin\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ SetVendorName();\n EnableApplyEntriesAction();\n CurrPage.SaveRecord();\n end;\n@@ -166,11 +167,12 @@ page 254 \"Purchase Journal\"\n trigger OnValidate()\n begin\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ SetVendorName();\n Rec.ShowShortcutDimCode(ShortcutDimCode);\n CurrPage.SaveRecord();\n end;\n }\n- field(\"\"; AccName)\n+ field(\"\"; VendorName)\n {\n ApplicationArea = Basic, Suite;\n Caption = 'Vendor Name';\n@@ -380,6 +382,7 @@ page 254 \"Purchase Journal\"\n trigger OnValidate()\n begin\n EnableApplyEntriesAction();\n+ SetVendorName();\n end;\n }\n field(\"Bal. Account No.\"; Rec.\"Bal. Account No.\")\n@@ -390,6 +393,7 @@ page 254 \"Purchase Journal\"\n trigger OnValidate()\n begin\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ SetVendorName();\n Rec.ShowShortcutDimCode(ShortcutDimCode);\n CurrPage.SaveRecord();\n end;\n@@ -1494,6 +1498,7 @@ page 254 \"Purchase Journal\"\n begin\n HasIncomingDocument := Rec.\"Incoming Document Entry No.\" <> 0;\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ SetVendorName();\n UpdateBalance();\n EnableApplyEntriesAction();\n SetControlAppearance();\n@@ -1508,6 +1513,7 @@ page 254 \"Purchase Journal\"\n Rec.ShowShortcutDimCode(ShortcutDimCode);\n DocumentAmount := Abs(Rec.Amount);\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ SetVendorName();\n CurrPage.IncomingDocAttachFactBox.PAGE.SetCurrentRecordID(Rec.RecordId());\n ApprovalMgmt.GetGenJnlLineApprovalStatus(Rec, GenJnlLineApprovalStatus, EnabledGenJnlLineWorkflowsExist);\n end;\n@@ -1639,6 +1645,7 @@ page 254 \"Purchase Journal\"\n ShortcutDimCode: array[8] of Code[20];\n AccName: Text[100];\n BalAccName: Text[100];\n+ VendorName: Text[100];\n DimVisible1: Boolean;\n DimVisible2: Boolean;\n DimVisible3: Boolean;\n@@ -1668,6 +1675,17 @@ page 254 \"Purchase Journal\"\n (Rec.\"Bal. Account Type\" in [Rec.\"Bal. Account Type\"::Customer, Rec.\"Bal. Account Type\"::Vendor]);\n end;\n \n+ local procedure SetVendorName()\n+ begin\n+ if Rec.\"Account Type\" = Rec.\"Account Type\"::Vendor then\n+ VendorName := AccName\n+ else\n+ if Rec.\"Bal. Account Type\" = Rec.\"Bal. Account Type\"::Vendor then\n+ VendorName := BalAccName\n+ else\n+ VendorName := '';\n+ end;\n+\n local procedure CurrentJnlBatchNameOnAfterVali()\n begin\n CurrPage.SaveRecord();\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-227240", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 180.319, "tool_calls": 10, "total_tokens": 143700, "TurnCount": 38}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":1,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\nindex 9ff59101..ff238e73 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n@@ -409,9 +409,6 @@ codeunit 393 \"Reminder-Issue\"\n if IsHandled then\n exit;\n \n- if NewDueDate < ReminderEntry2.\"Due Date\" then\n- exit;\n-\n ReminderEntry2.Validate(\"Due Date\", NewDueDate);\n ReminderEntry2.Modify();\n end;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-216572", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 105.041, "tool_calls": 15, "total_tokens": 184800, "TurnCount": 18}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":2,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":7}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al\nindex 130b3e0f..4012363f 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al\n@@ -669,6 +669,8 @@ table 221 \"Gen. Jnl. Allocation\"\n begin\n Rec.Validate(\"Account No.\", AllocAccountDistribution.\"Destination Account Number\");\n Rec.Validate(\"Allocation %\", AllocAccountDistribution.Percent);\n+ Rec.Validate(\"Dimension Set ID\", AllocAccountDistribution.\"Dimension Set ID\");\n+ Rec.Modify(true);\n end;\n \n local procedure CheckGLAccount(var GLAccount: Record \"G/L Account\")\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-226004", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 852.429, "tool_calls": 67, "total_tokens": 3336700, "TurnCount": 110}, "Project": "BaseApp", "ToolUsage": "{\"edit\":5,\"grep\":16,\"powershell\":6,\"report_intent\":3,\"task\":2,\"update_todo\":4,\"view\":31}", "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al b/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al\nindex d086521b..85611c63 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al\n@@ -74,6 +74,7 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n HasExpiredItems: Boolean;\n SuppressCommit: Boolean;\n HideDialogForTracking: Boolean;\n+ RemQtyToPickInUoM: Decimal;\n NothingToHandleMsg: Label 'There is nothing to handle.';\n QtyNotSufficientOnSalesErr: Label 'Quantity available to pick is not sufficient to fulfill shipping advise %1 for sales line with Document Type %2, Document No. %3, Line No. %4.', Comment = '%1=Shipping advise no., %2=Document Type, %3=Document No., %4=Line No.';\n QtyNotSufficientOnTransferErr: Label 'Quantity available to pick is not sufficient to fulfill shipping advise %1 for transfer line with Document No. %2, Line No. %3.', Comment = '%1=Shipping advise no., %2=Document No., %3=Line No.';\n@@ -783,6 +784,7 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n end;\n \n if RemQtyToPickBase > 0 then begin\n+ RemQtyToPickInUoM := NewWarehouseActivityLine.CalcQty(RemQtyToPickBase);\n if ItemTrackingManagement.GetWhseItemTrkgSetup(NewWarehouseActivityLine.\"Item No.\", WhseItemTrackingSetup) then begin\n OnCreatePickOrMoveLineOnAfterGetWhseItemTrkgSetup(NewWarehouseActivityLine, WhseItemTrackingSetup);\n if IsBlankInvtMovement then\n@@ -1927,19 +1929,26 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n /// Provided remaining quantity to pick in base unit.\n procedure MakeWarehouseActivityLine(var NewWarehouseActivityLine: Record \"Warehouse Activity Line\"; TakeBinCode: Code[20]; QtyToPickBase: Decimal; var RemQtyToPickBase: Decimal)\n var\n+ UnitOfMeasureManagement: Codeunit \"Unit of Measure Management\";\n IsHandled: Boolean;\n+ CalculatedPickQty: Decimal;\n begin\n IsHandled := false;\n OnBeforeMakeWarehouseActivityLine(NewWarehouseActivityLine, RemQtyToPickBase, NextLineNo, TakeBinCode, QtyToPickBase, IsInvtMovement, LineCreated, CompleteShipment, IsHandled);\n if IsHandled then\n exit;\n \n- NewWarehouseActivityLine.Quantity := NewWarehouseActivityLine.CalcQty(QtyToPickBase);\n+ CalculatedPickQty := NewWarehouseActivityLine.CalcQty(QtyToPickBase);\n+ if (CalculatedPickQty <> RemQtyToPickInUoM) and (Abs(RemQtyToPickInUoM - CalculatedPickQty) <= UnitOfMeasureManagement.QtyRndPrecision()) then\n+ NewWarehouseActivityLine.Quantity := RemQtyToPickInUoM\n+ else\n+ NewWarehouseActivityLine.Quantity := CalculatedPickQty;\n NewWarehouseActivityLine.\"Qty. (Base)\" := QtyToPickBase;\n NewWarehouseActivityLine.\"Qty. Outstanding\" := NewWarehouseActivityLine.Quantity;\n NewWarehouseActivityLine.\"Qty. Outstanding (Base)\" := NewWarehouseActivityLine.\"Qty. (Base)\";\n SetLineData(NewWarehouseActivityLine, TakeBinCode);\n RemQtyToPickBase := RemQtyToPickBase - QtyToPickBase;\n+ RemQtyToPickInUoM := RemQtyToPickInUoM - NewWarehouseActivityLine.Quantity;\n end;\n \n /// \n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-214557", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 195.145, "tool_calls": 21, "total_tokens": 366000, "TurnCount": 52}, "Project": "BaseApp", "ToolUsage": "{\"edit\":3,\"grep\":1,\"report_intent\":2,\"store_memory\":1,\"task\":1,\"update_todo\":2,\"view\":11}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al\nindex 052f4eb6..7c72a65d 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al\n@@ -659,7 +659,17 @@ table 99000853 \"Inventory Profile\"\n Binding := ReservationEntry.Binding;\n \"Disallow Cancellation\" := ReservationEntry.\"Disallow Cancellation\";\n Found := true;\n- end;\n+ end else\n+ if \"Primary Order Line\" <> 0 then begin\n+ if ReservationEntry.Positive then\n+ OppositeReservationEntry.Get(ReservationEntry.\"Entry No.\", not ReservationEntry.Positive)\n+ else\n+ OppositeReservationEntry := ReservationEntry;\n+ if (OppositeReservationEntry.\"Source ID\" = \"Primary Order No.\") and\n+ (GetPrimaryOrderLine(OppositeReservationEntry) <> \"Primary Order Line\")\n+ then\n+ \"Primary Order Line\" := 0;\n+ end;\n end else\n if (ReservationEntry.\"Reservation Status\" = ReservationEntry.\"Reservation Status\"::Reservation) and\n ((\"Fixed Date\" = 0D) or (\"Fixed Date\" > ReservationEntry.\"Shipment Date\"))\n@@ -669,6 +679,13 @@ table 99000853 \"Inventory Profile\"\n exit(AutoReservedQty);\n end;\n \n+ local procedure GetPrimaryOrderLine(ReservationEntry: Record \"Reservation Entry\"): Integer\n+ begin\n+ if ReservationEntry.\"Source Type\" <> 5407 then // Database::\"Prod. Order Component\"\n+ exit(ReservationEntry.\"Source Ref. No.\");\n+ exit(ReservationEntry.\"Source Prod. Order Line\");\n+ end;\n+\n procedure TransferQtyFromItemTrgkEntry(var TrackingReservationEntry: Record \"Reservation Entry\")\n begin\n \"Original Quantity\" := 0;\ndiff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al\nindex e3a6cf2f..7233ebbe 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al\n@@ -992,7 +992,7 @@ codeunit 99000854 \"Inventory Profile Offsetting\"\n SupplyInvtProfile.SetRange(Binding, DemandInvtProfile.Binding);\n SupplyInvtProfile.SetRange(\"Primary Order Status\", DemandInvtProfile.\"Primary Order Status\");\n SupplyInvtProfile.SetRange(\"Primary Order No.\", DemandInvtProfile.\"Primary Order No.\");\n- SupplyInvtProfile.SetRange(\"Primary Order Line\", DemandInvtProfile.\"Primary Order Line\");\n+ SupplyInvtProfile.SetFilter(\"Primary Order Line\", '%1|%2', DemandInvtProfile.\"Primary Order Line\", 0);\n SupplyInvtProfile.SetRange(\"Source Prod. Order Line\");\n if ((DemandInvtProfile.\"Ref. Order Type\" = DemandInvtProfile.\"Ref. Order Type\"::Assembly) or\n ((DemandInvtProfile.\"Ref. Order Type\" = DemandInvtProfile.\"Ref. Order Type\"::\"Prod. Order\") and\n", "error_message": null} +{"InstanceID": "microsoft__BCApps-4822", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 251.213, "tool_calls": 46, "total_tokens": 1410200, "TurnCount": 44}, "Project": "Shopify", "ToolUsage": "{\"create\":1,\"edit\":4,\"glob\":1,\"grep\":13,\"powershell\":1,\"report_intent\":3,\"task\":1,\"update_todo\":3,\"view\":19}", "output": "diff --git a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\nindex 2d20144..cf83a44 100644\n--- a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\n@@ -523,7 +523,7 @@ codeunit 30286 \"Shpfy Company API\"\n JResponse := CommunicationMgt.ExecuteGraphQL(GraphQuery.ToText());\n if JResponse.SelectToken('$.data.companyLocationCreate.companyLocation', JCompanyLocation) then\n if not JsonHelper.IsTokenNull(JCompanyLocation) then begin\n- LocationId := CreateCustomerLocation(JCompanyLocation.AsObject(), ShopifyCompany, Customer.SystemId);\n+ LocationId := CreateCustomerLocation(JCompanyLocation.AsObject(), ShopifyCompany, Customer);\n if JsonHelper.GetJsonArray(JCompanyLocation, JContactRoles, 'company.contactRoles.edges') then begin\n foreach JItem in JContactRoles do\n CompanyContactRoles.Add(JsonHelper.GetValueAsText(JItem, 'node.name'), CommunicationMgt.GetIdOfGId(JsonHelper.GetValueAsText(JItem, 'node.id')));\n@@ -540,7 +540,7 @@ codeunit 30286 \"Shpfy Company API\"\n /// \n /// JSON object containing the company location data from Shopify API response.\n /// The parent Shopify company record.\n- /// The GUID of the Business Central customer that was exported.\n+ /// The Business Central customer record that was exported.\n /// \n /// This procedure:\n /// - Extracts the Shopify-generated ID and creates the initial record\n@@ -552,7 +552,7 @@ codeunit 30286 \"Shpfy Company API\"\n /// The procedure assumes the JSON structure matches Shopify's companyLocationCreate response format.\n /// All text fields are properly truncated to match the field lengths in the table definition.\n /// \n- local procedure CreateCustomerLocation(JCompanyLocation: JsonObject; ShopifyCompany: Record \"Shpfy Company\"; CustomerId: Guid): BigInteger\n+ local procedure CreateCustomerLocation(JCompanyLocation: JsonObject; ShopifyCompany: Record \"Shpfy Company\"; Customer: Record Customer): BigInteger\n var\n CompanyLocation: Record \"Shpfy Company Location\";\n CompanyLocationId: BigInteger;\n@@ -580,7 +580,9 @@ codeunit 30286 \"Shpfy Company API\"\n #pragma warning restore AA0139\n CompanyLocation.Recipient := CopyStr(JsonHelper.GetValueAsText(JCompanyLocation, 'billingAddress.recipient', MaxStrLen(CompanyLocation.Recipient)), 1, MaxStrLen(CompanyLocation.Recipient));\n CompanyLocation.\"Shpfy Payment Terms Id\" := CommunicationMgt.GetIdOfGId(JsonHelper.GetValueAsText(JCompanyLocation, 'buyerExperienceConfiguration.paymentTermsTemplate.id'));\n- CompanyLocation.\"Customer Id\" := CustomerId;\n+ CompanyLocation.\"Customer Id\" := Customer.SystemId;\n+ CompanyLocation.\"Sell-to Customer No.\" := Customer.\"No.\";\n+ CompanyLocation.\"Bill-to Customer No.\" := Customer.\"Bill-to Customer No.\";\n CompanyLocation.Modify(true);\n exit(CompanyLocationId);\n end;\ndiff --git a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyExport.Codeunit.al b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyExport.Codeunit.al\nindex 9b3b3f1..67667ad 100644\n--- a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyExport.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyExport.Codeunit.al\n@@ -74,6 +74,8 @@ codeunit 30284 \"Shpfy Company Export\"\n \n CompanyLocation.Default := true;\n CompanyLocation.\"Company SystemId\" := ShopifyCompany.SystemId;\n+ CompanyLocation.\"Sell-to Customer No.\" := Customer.\"No.\";\n+ CompanyLocation.\"Bill-to Customer No.\" := Customer.\"Bill-to Customer No.\";\n CompanyLocation.Insert();\n end;\n end;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-214825", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 150.867, "tool_calls": 16, "total_tokens": 238200, "TurnCount": 30}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":2,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":7}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\nindex 604bb915..2da48971 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\n@@ -78,6 +78,7 @@ codeunit 1018 \"Purchase Doc. From Job\"\n JobPlanningLine.SetRange(\"Job Task No.\", JobTask.\"Job Task No.\");\n if JobPlanningLine.IsEmpty() then\n exit;\n+ JobPlanningLine.SetCurrentKey(\"Job Contract Entry No.\");\n JobPlanningLine.FindSet();\n RecRef.GetTable(JobPlanningLine);\n ContractEntryNoFilter := SelectionFilterMgt.GetSelectionFilter(RecRef, JobPlanningLine.FieldNo(\"Job Contract Entry No.\"));\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-227219", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 121.993, "tool_calls": 10, "total_tokens": 105900, "TurnCount": 26}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al\nindex 979cdb45..1254b0d5 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al\n@@ -119,7 +119,7 @@ codeunit 5708 \"Release Transfer Document\"\n if IsHandled then\n exit;\n \n- TransLine.SetLoadFields(\"Document No.\", Quantity, \"Item No.\");\n+ TransLine.SetLoadFields(\"Document No.\", Quantity, \"Item No.\", \"Variant Code\");\n TransLine.SetRange(\"Document No.\", TransHeader.\"No.\");\n TransLine.SetFilter(Quantity, '<>0');\n if TransLine.IsEmpty() then\n@@ -131,6 +131,8 @@ codeunit 5708 \"Release Transfer Document\"\n Item.Get(TransLine.\"Item No.\");\n if Item.IsInventoriableType() then\n TransLine.TestField(\"Unit of Measure Code\");\n+ if Item.IsVariantMandatory() then\n+ TransLine.TestField(\"Variant Code\");\n until TransLine.Next() = 0;\n TransLine.SetFilter(\"Item No.\", '');\n end;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-218253", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 382.476, "tool_calls": 24, "total_tokens": 617100, "TurnCount": 112}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":1,\"grep\":6,\"powershell\":1,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":8}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesLineReserve.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Document/SalesLineReserve.Codeunit.al\nindex 15a14be1..dd8ccc19 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesLineReserve.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesLineReserve.Codeunit.al\n@@ -1304,6 +1304,9 @@ codeunit 99000832 \"Sales Line-Reserve\"\n if (NewSalesLine.Type <> NewSalesLine.Type::Item) or (NewSalesLine.Quantity = 0) or (NewSalesLine.Reserve <> NewSalesLine.Reserve::Always) then\n exit(false);\n \n+ if NewSalesLine.\"Shipment No.\" <> '' then\n+ exit(false);\n+\n Item.SetLoadFields(\"Costing Method\");\n Item.Get(NewSalesLine.\"No.\");\n \n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-175765", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 475.132, "tool_calls": 37, "total_tokens": 1108500, "TurnCount": 126}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":10,\"powershell\":3,\"report_intent\":3,\"task\":3,\"update_todo\":3,\"view\":14}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\nindex 7eff4950..fd4fed06 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\n@@ -7105,9 +7105,11 @@ codeunit 22 \"Item Jnl.-Post Line\"\n OldValueEntry2.Copy(OldValueEntry);\n OldValueEntry2.SetFilter(\"Entry No.\", '<>%1', OldValueEntry.\"Entry No.\");\n OnCalcILEExpectedAmountOnBeforeCalcCostAmounts(OldValueEntry2, OldValueEntry, ItemLedgEntryNo);\n- OldValueEntry2.CalcSums(\"Cost Amount (Expected)\", \"Cost Amount (Expected) (ACY)\");\n+ OldValueEntry2.CalcSums(\"Cost Amount (Expected)\", \"Cost Amount (Expected) (ACY)\", \"Cost Amount (Actual)\", \"Cost Amount (Actual) (ACY)\");\n OldValueEntry.\"Cost Amount (Expected)\" += OldValueEntry2.\"Cost Amount (Expected)\";\n OldValueEntry.\"Cost Amount (Expected) (ACY)\" += OldValueEntry2.\"Cost Amount (Expected) (ACY)\";\n+ OldValueEntry.\"Cost Amount (Actual)\" += OldValueEntry2.\"Cost Amount (Actual)\";\n+ OldValueEntry.\"Cost Amount (Actual) (ACY)\" += OldValueEntry2.\"Cost Amount (Actual) (ACY)\";\n end;\n \n local procedure FindOpenOutputEntryNoToApply(ItemJournalLine: Record \"Item Journal Line\"): Integer\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-205825", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 307.07, "tool_calls": 21, "total_tokens": 400700, "TurnCount": 28}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":3,\"report_intent\":2,\"task\":2,\"update_todo\":4,\"view\":9}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\nindex da15d9ef..193cccc8 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\n@@ -143,6 +143,11 @@ codeunit 205 \"Alt. Cust. VAT Reg. Doc. Impl.\" implements \"Alt. Cust. VAT Reg. Do\n SalesHeader.\"VAT Registration No.\" := BillToCustomer.\"VAT Registration No.\";\n SalesHeader.\"Registration Number\" := BillToCustomer.\"Registration Number\";\n SalesHeader.\"Gen. Bus. Posting Group\" := BillToCustomer.\"Gen. Bus. Posting Group\";\n+\n+ if (SalesHeader.\"Ship-to Country/Region Code\" <> '') and\n+ (SalesHeader.\"Ship-to Country/Region Code\" <> BillToCustomer.\"Country/Region Code\")\n+ then\n+ UpdateSetupOnShipToCountryChangeInSalesHeader(SalesHeader, xSalesHeader);\n end;\n \n local procedure IsAltVATRegUsed(SalesHeader: Record \"Sales Header\"): Boolean\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-215972", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 436.149, "tool_calls": 31, "total_tokens": 566300, "TurnCount": 120}, "Project": "BaseApp", "ToolUsage": "{\"edit\":3,\"grep\":12,\"report_intent\":2,\"task\":3,\"update_todo\":2,\"view\":9}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\nindex 9ab054c5..e4b23745 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\n@@ -1592,6 +1592,8 @@ table 5741 \"Transfer Line\"\n exit;\n \n TestField(\"Item No.\");\n+ GetItem();\n+ Item.TestField(Reserve);\n Clear(Reservation);\n OptionNumber := StrMenu(Text011);\n if OptionNumber > 0 then begin\n@@ -2014,10 +2016,13 @@ table 5741 \"Transfer Line\"\n ReservMgt: Codeunit \"Reservation Management\";\n SourceRecRef: RecordRef;\n AutoReserved: Boolean;\n+ ReserveItem: Record Item;\n begin\n TransLine.SetAutoCalcFields(\"Reserved Quantity Outbnd.\", \"Reserved Qty. Outbnd. (Base)\");\n if TransLine.FindSet() then\n repeat\n+ ReserveItem.Get(TransLine.\"Item No.\");\n+ ReserveItem.TestField(Reserve);\n SourceRecRef.GetTable(TransLine);\n ReservMgt.SetReservSource(SourceRecRef);\n TransLine.TestField(\"Shipment Date\");\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-226223", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 41, "tool_calls": 11, "total_tokens": 138900, "TurnCount": 7}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":4,\"report_intent\":2,\"update_todo\":2,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/Currency/ExchRateAdjmtProcess.Codeunit.al b/App/Layers/W1/BaseApp/Finance/Currency/ExchRateAdjmtProcess.Codeunit.al\nindex 467c235c..1c2a34e1 100644\n--- a/App/Layers/W1/BaseApp/Finance/Currency/ExchRateAdjmtProcess.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/Currency/ExchRateAdjmtProcess.Codeunit.al\n@@ -312,7 +312,8 @@ codeunit 699 \"Exch. Rate Adjmt. Process\"\n if VATPostingSetup.FindSet() then\n repeat\n VATEntryNo := VATEntryNo + 1;\n- Window.Update(1, Round(VATEntryNo / VATEntryNoTotal * 10000, 1));\n+ if VATEntryNoTotal <> 0 then\n+ Window.Update(1, Round(VATEntryNo / VATEntryNoTotal * 10000, 1));\n \n ProcessVATAdjustment(VATPostingSetup);\n until VATPostingSetup.Next() = 0;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-211548", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 216.15, "tool_calls": 25, "total_tokens": 331300, "TurnCount": 18}, "Project": "BaseApp", "ToolUsage": "{\"edit\":6,\"grep\":4,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":9}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/AllocationAccount/GenJournalAllocAccMgt.Codeunit.al b/App/Layers/W1/BaseApp/Finance/AllocationAccount/GenJournalAllocAccMgt.Codeunit.al\nindex fbe1c90d..2572ecf2 100644\n--- a/App/Layers/W1/BaseApp/Finance/AllocationAccount/GenJournalAllocAccMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/AllocationAccount/GenJournalAllocAccMgt.Codeunit.al\n@@ -281,7 +281,7 @@ codeunit 2677 \"Gen. Journal Alloc. Acc. Mgt.\"\n LastJournalLineNo := AllocationAccountGenJournalLine.\"Line No.\";\n \n Increment := GetLineIncrement(AllocationAccountGenJournalLine.\"Line No.\", NextJournalLineNo, AllocationLine.Count);\n- if Increment < -1 then begin\n+ if Increment < 0 then begin\n Increment := 10000;\n LastJournalLineNo := GetLastGenJournalLine(AllocationAccountGenJournalLine)\n end;\n@@ -465,7 +465,7 @@ codeunit 2677 \"Gen. Journal Alloc. Acc. Mgt.\"\n var\n Increment: Integer;\n begin\n- Increment := Round((NextLineNo - CurrentLineNo) / LinesToInsert, 1);\n+ Increment := Round((NextLineNo - CurrentLineNo) / (LinesToInsert + 1), 1);\n if Increment < LinesToInsert then\n exit(-1);\n \ndiff --git a/App/Layers/W1/BaseApp/Finance/AllocationAccount/Purchase/PurchaseAllocAccMgt.Codeunit.al b/App/Layers/W1/BaseApp/Finance/AllocationAccount/Purchase/PurchaseAllocAccMgt.Codeunit.al\nindex f1284466..e96eff54 100644\n--- a/App/Layers/W1/BaseApp/Finance/AllocationAccount/Purchase/PurchaseAllocAccMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/AllocationAccount/Purchase/PurchaseAllocAccMgt.Codeunit.al\n@@ -283,7 +283,7 @@ codeunit 2679 \"Purchase Alloc. Acc. Mgt.\"\n LastLineNo := AllocationAccountPurchaseLine.\"Line No.\";\n \n Increment := GetLineIncrement(AllocationAccountPurchaseLine.\"Line No.\", NextLineNo, AllocationLine.Count);\n- if Increment < -1 then begin\n+ if Increment < 0 then begin\n Increment := 10000;\n LastLineNo := GetLastLine(AllocationAccountPurchaseLine)\n end;\n@@ -593,7 +593,7 @@ codeunit 2679 \"Purchase Alloc. Acc. Mgt.\"\n var\n Increment: Integer;\n begin\n- Increment := Round((NextLineNo - CurrentLineNo) / LinesToInsert, 1);\n+ Increment := Round((NextLineNo - CurrentLineNo) / (LinesToInsert + 1), 1);\n if Increment < LinesToInsert then\n exit(-1);\n \ndiff --git a/App/Layers/W1/BaseApp/Finance/AllocationAccount/Sales/SalesAllocAccMgt.Codeunit.al b/App/Layers/W1/BaseApp/Finance/AllocationAccount/Sales/SalesAllocAccMgt.Codeunit.al\nindex b7d2d4ac..c517f765 100644\n--- a/App/Layers/W1/BaseApp/Finance/AllocationAccount/Sales/SalesAllocAccMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/AllocationAccount/Sales/SalesAllocAccMgt.Codeunit.al\n@@ -277,7 +277,7 @@ codeunit 2678 \"Sales Alloc. Acc. Mgt.\"\n LastLineNo := AllocationAccountSalesLine.\"Line No.\";\n \n Increment := GetLineIncrement(AllocationAccountSalesLine.\"Line No.\", NextLineNo, AllocationLine.Count);\n- if Increment < -1 then begin\n+ if Increment < 0 then begin\n Increment := 10000;\n LastLineNo := GetLastLine(AllocationAccountSalesLine)\n end;\n@@ -584,7 +584,7 @@ codeunit 2678 \"Sales Alloc. Acc. Mgt.\"\n var\n Increment: Integer;\n begin\n- Increment := Round((NextLineNo - CurrentLineNo) / LinesToInsert, 1);\n+ Increment := Round((NextLineNo - CurrentLineNo) / (LinesToInsert + 1), 1);\n if Increment < LinesToInsert then\n exit(-1);\n \n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-211521", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 68.17, "tool_calls": 11, "total_tokens": 148800, "TurnCount": 7}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":5,\"report_intent\":2,\"update_todo\":2,\"view\":1}", "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al b/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\nindex 401cabee..0883009a 100644\n--- a/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\n+++ b/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\n@@ -566,7 +566,7 @@ table 5050 Contact\n CalcFormula = min(\"To-do\".Date where(\"Contact Company No.\" = field(\"Company No.\"),\n \"Contact No.\" = field(filter(\"Lookup Contact No.\")),\n Closed = const(false),\n- \"System To-do Type\" = const(\"Contact Attendee\")));\n+ \"System To-do Type\" = filter(Organizer | \"Contact Attendee\")));\n Caption = 'Next Task Date';\n Editable = false;\n FieldClass = FlowField;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-208851", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 83.773, "tool_calls": 13, "total_tokens": 179400, "TurnCount": 13}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":3,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al b/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al\nindex fb6adbb6..e3d24df7 100644\n--- a/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al\n@@ -563,6 +563,7 @@ table 7000 \"Price List Header\"\n xAmountType: Enum \"Price Amount Type\";\n begin\n xAmountType := \"Amount Type\";\n+ CopyTo(PriceSource);\n if \"Source Type\" in [\"Source Type\"::\"Customer Disc. Group\", \"Source Type\"::\"Customer Price Group\"] then\n \"Amount Type\" := PriceSource.GetDefaultAmountType()\n else\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-224447", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 231.915, "tool_calls": 18, "total_tokens": 239700, "TurnCount": 34}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":6,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":4}", "output": "diff --git a/App/Layers/W1/BaseApp/Foundation/Reporting/ReportSelections.Table.al b/App/Layers/W1/BaseApp/Foundation/Reporting/ReportSelections.Table.al\nindex 7a71bebb..6e62ece0 100644\n--- a/App/Layers/W1/BaseApp/Foundation/Reporting/ReportSelections.Table.al\n+++ b/App/Layers/W1/BaseApp/Foundation/Reporting/ReportSelections.Table.al\n@@ -1269,7 +1269,8 @@ table 77 \"Report Selections\"\n Database::\"Sales Invoice Header\",\n Database::\"Sales Cr.Memo Header\",\n Database::\"Sales Shipment Header\",\n- Database::\"Return Receipt Header\"];\n+ Database::\"Return Receipt Header\",\n+ Database::\"Issued Reminder Header\"];\n \n OnAfterIsCustomerAccount(DocumentTableId, IsCustomer);\n end;\n@@ -1523,7 +1524,9 @@ table 77 \"Report Selections\"\n if TableId = Database::Customer then begin\n FieldName := 'Sell-to Customer No.';\n OnSendEmailDirectlyOnAfterSetFieldName(DocumentRecord.Number(), FieldName);\n- if DataTypeManagement.FindfieldByName(DocumentRecord, FieldRef, FieldName) and Customer.Get(Format(FieldRef.Value())) then begin\n+ if not DataTypeManagement.FindfieldByName(DocumentRecord, FieldRef, FieldName) then\n+ DataTypeManagement.FindfieldByName(DocumentRecord, FieldRef, 'Customer No.');\n+ if Customer.Get(Format(FieldRef.Value())) then begin\n SourceTableIDs.Add(Database::Customer);\n SourceIDs.Add(Customer.SystemId);\n SourceRelationTypes.Add(Enum::\"Email Relation Type\"::\"Related Entity\".AsInteger());\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-227358", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 63.217, "tool_calls": 11, "total_tokens": 125200, "TurnCount": 10}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":1,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\nindex 61aff663..39eb6982 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\n@@ -1006,6 +1006,8 @@ codeunit 13 \"Gen. Jnl.-Post Batch\"\n exit;\n if not CurrGenJnlTemplate.\"Unlink Inc. Doc On Posting\" then\n exit;\n+ if not GenJnlLine.Find() then\n+ exit;\n GenJnlLine.\"Incoming Document Entry No.\" := 0;\n GenJnlLine.Modify();\n end;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-207177", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 90.252, "tool_calls": 17, "total_tokens": 197100, "TurnCount": 15}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":3,\"grep\":2,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":5}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\nindex a84b0558..03f2b91b 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n@@ -42,18 +42,20 @@ page 7504 \"Item Attribute Value List\"\n DeleteItemAttributeValueMapping(ItemAttribute.ID);\n end;\n \n- if not Rec.FindAttributeValue(ItemAttributeValue) then\n- Rec.InsertItemAttributeValue(ItemAttributeValue, Rec);\n-\n- if ItemAttributeValue.Get(ItemAttributeValue.\"Attribute ID\", ItemAttributeValue.ID) then begin\n- ItemAttributeValueMapping.Reset();\n- ItemAttributeValueMapping.Init();\n- ItemAttributeValueMapping.\"Table ID\" := Database::Item;\n- ItemAttributeValueMapping.\"No.\" := RelatedRecordCode;\n- ItemAttributeValueMapping.\"Item Attribute ID\" := ItemAttributeValue.\"Attribute ID\";\n- ItemAttributeValueMapping.\"Item Attribute Value ID\" := ItemAttributeValue.ID;\n- OnBeforeItemAttributeValueMappingInsert(ItemAttributeValueMapping, ItemAttributeValue, Rec);\n- ItemAttributeValueMapping.Insert();\n+ if Rec.Value <> '' then begin\n+ if not Rec.FindAttributeValue(ItemAttributeValue) then\n+ Rec.InsertItemAttributeValue(ItemAttributeValue, Rec);\n+\n+ if ItemAttributeValue.Get(ItemAttributeValue.\"Attribute ID\", ItemAttributeValue.ID) then begin\n+ ItemAttributeValueMapping.Reset();\n+ ItemAttributeValueMapping.Init();\n+ ItemAttributeValueMapping.\"Table ID\" := Database::Item;\n+ ItemAttributeValueMapping.\"No.\" := RelatedRecordCode;\n+ ItemAttributeValueMapping.\"Item Attribute ID\" := ItemAttributeValue.\"Attribute ID\";\n+ ItemAttributeValueMapping.\"Item Attribute Value ID\" := ItemAttributeValue.ID;\n+ OnBeforeItemAttributeValueMappingInsert(ItemAttributeValueMapping, ItemAttributeValue, Rec);\n+ ItemAttributeValueMapping.Insert();\n+ end;\n end;\n end;\n }\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-178045", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 979.843, "tool_calls": 107, "total_tokens": 6739300, "TurnCount": 137}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":1,\"grep\":56,\"powershell\":2,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":40}", "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderCompReserve.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderCompReserve.Codeunit.al\nindex 9527ab69..9293bc13 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderCompReserve.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderCompReserve.Codeunit.al\n@@ -335,6 +335,9 @@ codeunit 99000838 \"Prod. Order Comp.-Reserve\"\n repeat\n OldReservationEntry.TestItemFields(OldProdOrderComponent.\"Item No.\", OldProdOrderComponent.\"Variant Code\", OldProdOrderComponent.\"Location Code\");\n \n+ if (NewItemJournalLine.\"Entry Type\" = NewItemJournalLine.\"Entry Type\"::Consumption) and NewItemJournalLine.TrackingExists() then\n+ CreateReservEntry.SetNewTrackingFromItemJnlLine(NewItemJournalLine);\n+\n OnTransferPOCompToItemJnlLineCheckILEOnBeforeTransferReservEntry(NewItemJournalLine, OldReservationEntry);\n \n TransferQty := CreateReservEntry.TransferReservEntry(\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-219082", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 352.03, "tool_calls": 19, "total_tokens": 314800, "TurnCount": 84}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":3,\"report_intent\":2,\"task\":3,\"update_todo\":3,\"view\":7}", "output": "diff --git a/App/Layers/W1/BaseApp/Service/Document/ServDocumentPrint.Codeunit.al b/App/Layers/W1/BaseApp/Service/Document/ServDocumentPrint.Codeunit.al\nindex 28eb2a76..a274ac1d 100644\n--- a/App/Layers/W1/BaseApp/Service/Document/ServDocumentPrint.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Service/Document/ServDocumentPrint.Codeunit.al\n@@ -125,8 +125,8 @@ codeunit 6461 \"Serv. Document Print\"\n ServLine.FindFirst();\n CODEUNIT.Run(CODEUNIT::\"Service-Calc. Discount\", ServLine);\n ServHeader.Get(ServHeader.\"Document Type\", ServHeader.\"No.\");\n- Commit();\n end;\n+ Commit();\n end;\n \n procedure GetServContractTypeUsage(ServiceContractHeader: Record \"Service Contract Header\"): Enum \"Report Selection Usage\"\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-217797", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 298.463, "tool_calls": 26, "total_tokens": 398100, "TurnCount": 60}, "Project": "BaseApp", "ToolUsage": "{\"edit\":4,\"grep\":4,\"powershell\":2,\"report_intent\":3,\"task\":2,\"update_todo\":2,\"view\":9}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/PlanningWorksheet.Page.al b/App/Layers/W1/BaseApp/Inventory/Requisition/PlanningWorksheet.Page.al\nindex 2eaf3fe5..59ecb84f 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/PlanningWorksheet.Page.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/PlanningWorksheet.Page.al\n@@ -963,6 +963,8 @@ page 99000852 \"Planning Worksheet\"\n PAGE::\"Planning Worksheet\", false, \"Req. Worksheet Template Type\"::Planning, Rec, JnlSelected);\n if not JnlSelected then\n Error('');\n+ if Rec.\"Journal Batch Name\" <> '' then\n+ CurrentWkshBatchName := Rec.\"Journal Batch Name\";\n ReqJnlManagement.OpenJnl(CurrentWkshBatchName, Rec);\n end;\n \ndiff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/RecurringReqWorksheet.Page.al b/App/Layers/W1/BaseApp/Inventory/Requisition/RecurringReqWorksheet.Page.al\nindex 1b7cece2..b82f07ee 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/RecurringReqWorksheet.Page.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/RecurringReqWorksheet.Page.al\n@@ -620,6 +620,8 @@ page 296 \"Recurring Req. Worksheet\"\n PAGE::\"Recurring Req. Worksheet\", true, Enum::\"Req. Worksheet Template Type\"::\"Req.\", Rec, JnlSelected);\n if not JnlSelected then\n Error('');\n+ if Rec.\"Journal Batch Name\" <> '' then\n+ CurrentJnlBatchName := Rec.\"Journal Batch Name\";\n ReqJnlManagement.OpenJnl(CurrentJnlBatchName, Rec);\n end;\n \ndiff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/ReqWorksheet.Page.al b/App/Layers/W1/BaseApp/Inventory/Requisition/ReqWorksheet.Page.al\nindex fc14723c..7409c5b6 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/ReqWorksheet.Page.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/ReqWorksheet.Page.al\n@@ -952,6 +952,8 @@ page 291 \"Req. Worksheet\"\n Error('');\n \n OnBeforeOpenReqWorksheet(CurrentJnlBatchName);\n+ if Rec.\"Journal Batch Name\" <> '' then\n+ CurrentJnlBatchName := Rec.\"Journal Batch Name\";\n ReqJnlManagement.OpenJnl(CurrentJnlBatchName, Rec);\n end;\n \ndiff --git a/App/Layers/W1/BaseApp/Manufacturing/Journal/SubcontractingWorksheet.Page.al b/App/Layers/W1/BaseApp/Manufacturing/Journal/SubcontractingWorksheet.Page.al\nindex 5b9be780..c6a20f70 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Journal/SubcontractingWorksheet.Page.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Journal/SubcontractingWorksheet.Page.al\n@@ -433,6 +433,8 @@ page 99000886 \"Subcontracting Worksheet\"\n PAGE::\"Subcontracting Worksheet\", false, \"Req. Worksheet Template Type\"::\"For. Labor\", Rec, JnlSelected);\n if not JnlSelected then\n Error('');\n+ if Rec.\"Journal Batch Name\" <> '' then\n+ CurrentJnlBatchName := Rec.\"Journal Batch Name\";\n ReqJnlManagement.OpenJnl(CurrentJnlBatchName, Rec);\n end;\n \n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-224009", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 228.39, "tool_calls": 25, "total_tokens": 476600, "TurnCount": 35}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":1,\"grep\":6,\"powershell\":2,\"report_intent\":2,\"task\":1,\"update_todo\":4,\"view\":8}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/ReservationEntry.Table.al b/App/Layers/W1/BaseApp/Inventory/Tracking/ReservationEntry.Table.al\nindex c1b41b15..a37726d6 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/ReservationEntry.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/ReservationEntry.Table.al\n@@ -914,7 +914,7 @@ table 337 \"Reservation Entry\"\n ReservEntry.SetFilter(\"Entry No.\", '<>%1', \"Entry No.\");\n ReservEntry.SetSourceFilter(\"Source Type\", \"Source Subtype\", \"Source ID\", \"Source Ref. No.\", false);\n ReservEntry.SetSourceFilter(\"Source Batch Name\", \"Source Prod. Order Line\");\n- ReservEntry.SetRange(\"Reservation Status\", \"Reservation Status\"::Reservation);\n+ ReservEntry.SetFilter(\"Reservation Status\", '%1|%2', \"Reservation Status\"::Reservation, \"Reservation Status\"::Tracking);\n ReservEntry.CalcSums(\"Quantity (Base)\", Quantity);\n exit(\n Round((ReservEntry.\"Quantity (Base)\" + \"Quantity (Base)\") / \"Qty. per Unit of Measure\", UOMMgt.QtyRndPrecision()) -\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-175577", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 316.026, "tool_calls": 15, "total_tokens": 286200, "TurnCount": 31}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":1,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":8}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobCreateInvoice.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobCreateInvoice.Codeunit.al\nindex 1e465e16..0273dd2e 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobCreateInvoice.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobCreateInvoice.Codeunit.al\n@@ -398,7 +398,8 @@ codeunit 1002 \"Job Create-Invoice\"\n if OldJobNo <> '' then begin\n if InvoicePerTask then\n if (OldJobNo <> JobTask.\"Job No.\") or (OldJobTaskNo <> JobTask.\"Job Task No.\") then\n- NewInvoice := true;\n+ if not IsMultipleCustomersSameBillingGroup(JobTask) then\n+ NewInvoice := true;\n if not InvoicePerTask then\n if OldJobNo <> JobTask.\"Job No.\" then\n NewInvoice := true;\n@@ -411,6 +412,25 @@ codeunit 1002 \"Job Create-Invoice\"\n exit(NewInvoice);\n end;\n \n+ local procedure IsMultipleCustomersSameBillingGroup(var JobTask: Record \"Job Task\"): Boolean\n+ var\n+ Job: Record Job;\n+ PrevJobTask: Record \"Job Task\";\n+ begin\n+ if not Job.Get(JobTask.\"Job No.\") then\n+ exit(false);\n+ if Job.\"Task Billing Method\" <> Job.\"Task Billing Method\"::\"Multiple customers\" then\n+ exit(false);\n+ if not TempJobPlanningLine.FindFirst() then\n+ exit(false);\n+ if not PrevJobTask.Get(TempJobPlanningLine.\"Job No.\", TempJobPlanningLine.\"Job Task No.\") then\n+ exit(false);\n+ exit(\n+ (JobTask.\"Sell-to Customer No.\" = PrevJobTask.\"Sell-to Customer No.\") and\n+ (JobTask.\"Bill-to Customer No.\" = PrevJobTask.\"Bill-to Customer No.\") and\n+ (JobTask.\"Invoice Currency Code\" = PrevJobTask.\"Invoice Currency Code\"));\n+ end;\n+\n local procedure CreateSalesHeader(Job: Record Job; PostingDate: Date; DocumentDate: Date; JobPlanningLine: Record \"Job Planning Line\")\n var\n JobTask: Record \"Job Task\";\n", "error_message": null} +{"InstanceID": "microsoft__BCApps-5633", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 424.287, "tool_calls": 21, "total_tokens": 641400, "TurnCount": 32}, "Project": "Shopify", "ToolUsage": "{\"create\":1,\"edit\":3,\"powershell\":1,\"report_intent\":3,\"task\":3,\"update_todo\":3,\"view\":7}", "output": "diff --git a/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al b/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al\nindex 1f790f9..f8ef08b 100644\n--- a/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al\n@@ -17,7 +17,8 @@ codeunit 30190 \"Shpfy Export Shipments\"\n Permissions =\n tabledata \"Sales Shipment Header\" = rm,\n tabledata \"Sales Shipment Line\" = r,\n- tabledata \"Shipping Agent\" = r;\n+ tabledata \"Shipping Agent\" = r,\n+ tabledata \"Shpfy Shop Location\" = r;\n \n var\n ShopifyCommunicationMgt: Codeunit \"Shpfy Communication Mgt.\";\n@@ -107,7 +108,8 @@ codeunit 30190 \"Shpfy Export Shipments\"\n repeat\n if OrderLine.Get(SalesShipmentHeader.\"Shpfy Order Id\", SalesShipmentLine.\"Shpfy Order Line Id\") then\n if (OrderLine.\"Location Id\" = LocationId) and (OrderLine.\"Delivery Method Type\" = DeliveryMethodType) then\n- if FindFulfillmentOrderLine(SalesShipmentHeader, SalesShipmentLine, FulfillmentOrderLine) then begin\n+ if FindFulfillmentOrderLine(SalesShipmentHeader, SalesShipmentLine, FulfillmentOrderLine) then\n+ if not IsThirdPartyFulfillmentServiceLocation(Shop.Code, FulfillmentOrderLine.\"Shopify Location Id\") then begin\n FulfillmentOrderLine.\"Quantity to Fulfill\" += Round(SalesShipmentLine.Quantity, 1, '=');\n FulfillmentOrderLine.\"Remaining Quantity\" := FulfillmentOrderLine.\"Remaining Quantity\" - Round(SalesShipmentLine.Quantity, 1, '=');\n FulfillmentOrderLine.Modify();\n@@ -249,4 +251,14 @@ codeunit 30190 \"Shpfy Export Shipments\"\n if FulfillmentOrdersAPI.AcceptFulfillmentRequest(Shop, FulfillmentOrderHeader) then\n AssignedFulfillmentOrderIds.Remove(FulfillmentOrderId);\n end;\n+\n+ local procedure IsThirdPartyFulfillmentServiceLocation(ShopCode: Code[20]; LocationId: BigInteger): Boolean\n+ var\n+ ShopLocation: Record \"Shpfy Shop Location\";\n+ SyncShopLocations: Codeunit \"Shpfy Sync Shop Locations\";\n+ begin\n+ if ShopLocation.Get(ShopCode, LocationId) then\n+ if ShopLocation.\"Is Fulfillment Service\" then\n+ exit(ShopLocation.Name <> SyncShopLocations.GetFulfillmentServiceName());\n+ end;\n }\n\\ No newline at end of file\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-195193", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 249.153, "tool_calls": 31, "total_tokens": 548900, "TurnCount": 54}, "Project": "ExcelReports", "ToolUsage": "{\"edit\":8,\"glob\":1,\"grep\":2,\"powershell\":1,\"report_intent\":3,\"task\":3,\"update_todo\":3,\"view\":10}", "output": "diff --git a/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al b/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\nindex 00c238ae..e2a5f9db 100644\n--- a/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\n+++ b/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\n@@ -44,10 +44,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Net Change\" > 0) then\n- Validate(\"Net Change (Debit)\", \"Net Change\")\n- else\n+ if (\"Net Change\" > 0) then begin\n+ Validate(\"Net Change (Debit)\", \"Net Change\");\n+ Validate(\"Net Change (Credit)\", 0);\n+ end else begin\n Validate(\"Net Change (Credit)\", -\"Net Change\");\n+ Validate(\"Net Change (Debit)\", 0);\n+ end;\n end;\n }\n field(11; \"Net Change (Debit)\"; Decimal)\n@@ -64,10 +67,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Balance\" > 0) then\n- Validate(\"Balance (Debit)\", \"Balance\")\n- else\n+ if (\"Balance\" > 0) then begin\n+ Validate(\"Balance (Debit)\", \"Balance\");\n+ Validate(\"Balance (Credit)\", 0);\n+ end else begin\n Validate(\"Balance (Credit)\", -\"Balance\");\n+ Validate(\"Balance (Debit)\", 0);\n+ end;\n end;\n }\n field(14; \"Balance (Debit)\"; Decimal)\n@@ -100,10 +106,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Net\" > 0) then\n- Validate(\"Last Period Net (Debit)\", \"Last Period Net\")\n- else\n+ if (\"Last Period Net\" > 0) then begin\n+ Validate(\"Last Period Net (Debit)\", \"Last Period Net\");\n+ Validate(\"Last Period Net (Credit)\", 0);\n+ end else begin\n Validate(\"Last Period Net (Credit)\", -\"Last Period Net\");\n+ Validate(\"Last Period Net (Debit)\", 0);\n+ end;\n end;\n }\n field(51; \"Last Period Net (Debit)\"; Decimal)\n@@ -120,10 +129,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Bal.\" > 0) then\n- Validate(\"Last Period Bal. (Debit)\", \"Last Period Bal.\")\n- else\n+ if (\"Last Period Bal.\" > 0) then begin\n+ Validate(\"Last Period Bal. (Debit)\", \"Last Period Bal.\");\n+ Validate(\"Last Period Bal. (Credit)\", 0);\n+ end else begin\n Validate(\"Last Period Bal. (Credit)\", -\"Last Period Bal.\");\n+ Validate(\"Last Period Bal. (Debit)\", 0);\n+ end;\n end;\n }\n field(61; \"Last Period Bal. (Debit)\"; Decimal)\n@@ -156,10 +168,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Net Change\" > 0) then\n- Validate(\"Net Change (Debit) (ACY)\", \"Net Change (ACY)\")\n- else\n+ if (\"Net Change (ACY)\" > 0) then begin\n+ Validate(\"Net Change (Debit) (ACY)\", \"Net Change (ACY)\");\n+ Validate(\"Net Change (Credit) (ACY)\", 0);\n+ end else begin\n Validate(\"Net Change (Credit) (ACY)\", -\"Net Change (ACY)\");\n+ Validate(\"Net Change (Debit) (ACY)\", 0);\n+ end;\n end;\n }\n field(111; \"Net Change (Debit) (ACY)\"; Decimal)\n@@ -176,10 +191,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Balance\" > 0) then\n- Validate(\"Balance (Debit) (ACY)\", \"Balance (ACY)\")\n- else\n+ if (\"Balance (ACY)\" > 0) then begin\n+ Validate(\"Balance (Debit) (ACY)\", \"Balance (ACY)\");\n+ Validate(\"Balance (Credit) (ACY)\", 0);\n+ end else begin\n Validate(\"Balance (Credit) (ACY)\", -\"Balance (ACY)\");\n+ Validate(\"Balance (Debit) (ACY)\", 0);\n+ end;\n end;\n }\n field(114; \"Balance (Debit) (ACY)\"; Decimal)\n@@ -196,10 +214,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Net\" > 0) then\n- Validate(\"Last Period Net (Debit) (ACY)\", \"Last Period Net (ACY)\")\n- else\n+ if (\"Last Period Net (ACY)\" > 0) then begin\n+ Validate(\"Last Period Net (Debit) (ACY)\", \"Last Period Net (ACY)\");\n+ Validate(\"Last Period Net (Credit) (ACY)\", 0);\n+ end else begin\n Validate(\"Last Period Net (Credit) (ACY)\", -\"Last Period Net (ACY)\");\n+ Validate(\"Last Period Net (Debit) (ACY)\", 0);\n+ end;\n end;\n }\n field(151; \"Last Period Net (Debit) (ACY)\"; Decimal)\n@@ -216,10 +237,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Bal.\" > 0) then\n- Validate(\"Last Period Bal. (Debit) (ACY)\", \"Last Period Bal. (ACY)\")\n- else\n+ if (\"Last Period Bal. (ACY)\" > 0) then begin\n+ Validate(\"Last Period Bal. (Debit) (ACY)\", \"Last Period Bal. (ACY)\");\n+ Validate(\"Last Period Bal. (Cred.) (ACY)\", 0);\n+ end else begin\n Validate(\"Last Period Bal. (Cred.) (ACY)\", -\"Last Period Bal. (ACY)\");\n+ Validate(\"Last Period Bal. (Debit) (ACY)\", 0);\n+ end;\n end;\n }\n field(161; \"Last Period Bal. (Debit) (ACY)\"; Decimal)\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-210200", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 433.64300000000003, "tool_calls": 16, "total_tokens": 237300, "TurnCount": 95}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":1,\"grep\":2,\"report_intent\":2,\"task\":3,\"update_todo\":2,\"view\":5}", "output": "diff --git a/App/Layers/W1/BaseApp/Service/Item/StandardServiceItemGrCode.Table.al b/App/Layers/W1/BaseApp/Service/Item/StandardServiceItemGrCode.Table.al\nindex 33f69be4..72c99aff 100644\n--- a/App/Layers/W1/BaseApp/Service/Item/StandardServiceItemGrCode.Table.al\n+++ b/App/Layers/W1/BaseApp/Service/Item/StandardServiceItemGrCode.Table.al\n@@ -160,6 +160,11 @@ table 5998 \"Standard Service Item Gr. Code\"\n OnBeforeInsertServLine(ServLine);\n ServLine.Insert(true);\n InsertExtendedText(ServLine);\n+ if (ServLine.Type = ServLine.Type::Item) and\n+ (ServLine.\"No.\" <> '') and\n+ (ServLine.Reserve = ServLine.Reserve::Always)\n+ then\n+ ServLine.AutoReserve();\n end;\n until StdServLine.Next() = 0;\n end;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-214926", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 310.978, "tool_calls": 12, "total_tokens": 186500, "TurnCount": 88}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":1,\"report_intent\":2,\"task\":3,\"update_todo\":3,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al b/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\nindex ebeb6ca1..b522f79e 100644\n--- a/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\n@@ -2364,7 +2364,7 @@ table 18 Customer\n RetRcdNotInvAmountLCY := GetReturnRcdNotInvAmountLCY();\n \n TotalAmountLCY :=\n- \"Balance (LCY)\" + \"Outstanding Orders (LCY)\" + \"Shipped Not Invoiced (LCY)\" + \"Outstanding Invoices (LCY)\" +\n+ \"Balance (LCY)\" + \"Outstanding Orders (LCY)\" + \"Shipped Not Invoiced (LCY)\" + \"Outstanding Invoices (LCY)\" -\n SalesOutstandingAmountFromShipment - InvoicedPrepmtAmountLCY - RetRcdNotInvAmountLCY + AdditionalAmountLCY;\n \n OnAfterGetTotalAmountLCYCommon(Rec, TotalAmountLCY);\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-224668", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 29, "tool_calls": 5, "total_tokens": 63256, "TurnCount": 4}, "Project": "EssentialBusinessHeadlines", "ToolUsage": "{\"edit\":1,\"glob\":1,\"grep\":1,\"report_intent\":1,\"view\":1}", "output": "diff --git a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\nindex 831aa80e..10436a09 100644\n--- a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n+++ b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n@@ -677,7 +677,7 @@ codeunit 1437 \"Essential Bus. Headline Mgt.\"\n var\n EssentialBusinessHeadline: Record \"Ess. Business Headline Per Usr\";\n begin\n- if EssentialBusinessHeadline.Get(HeadlineName) then begin\n+ if EssentialBusinessHeadline.Get(HeadlineName, UserSecurityId()) then begin\n EssentialBusinessHeadline.Validate(\"Headline Visible\", false);\n EssentialBusinessHeadline.Modify();\n end;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-176082", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 283.766, "tool_calls": 17, "total_tokens": 395500, "TurnCount": 68}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":2,\"grep\":1,\"report_intent\":2,\"task\":5,\"update_todo\":2,\"view\":4}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\nindex 5fe44b45..f0c1f44c 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\n@@ -1304,7 +1304,6 @@ table 5740 \"Transfer Header\"\n TempPurchRcptHeader: Record \"Purch. Rcpt. Header\" temporary;\n PostedPurchaseReceipts: Page \"Posted Purchase Receipts\";\n begin\n- PurchRcptHeader.SetRange(\"Location Code\", \"Transfer-from Code\");\n PostedPurchaseReceipts.SetTableView(PurchRcptHeader);\n PostedPurchaseReceipts.LookupMode := true;\n if PostedPurchaseReceipts.RunModal() = ACTION::LookupOK then begin\n@@ -1377,6 +1376,13 @@ table 5740 \"Transfer Header\"\n ItemTrackingDocMgt.CopyItemLedgerEntriesToTemp(TempItemLedgerEntry, ItemLedgerEntry);\n ItemTrackingMgt.CopyItemLedgEntryTrkgToTransferLine(TempItemLedgerEntry, TransferLine);\n \n+ if ItemLedgerEntry.Count = 1 then\n+ if ItemLedgerEntry.FindFirst() then\n+ if (ItemLedgerEntry.\"Lot No.\" = '') and (ItemLedgerEntry.\"Serial No.\" = '') then begin\n+ TransferLine.Validate(\"Appl.-to Item Entry\", ItemLedgerEntry.\"Entry No.\");\n+ TransferLine.Modify(true);\n+ end;\n+\n OnAfterAddTransferLineFromReceiptLine(TransferLine, PurchRcptLine, TempItemLedgerEntry, Rec);\n end;\n \n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-209835", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 179.542, "tool_calls": 10, "total_tokens": 97500, "TurnCount": 29}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":1,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\nindex 78996b41..43c6dbb9 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\n@@ -473,7 +473,8 @@ report 99001020 \"Carry Out Action Msg. - Plan.\"\n if CurrReqWkshTemp <> '' then\n \"Requisition Line\".SetRange(\"Journal Batch Name\", CurrReqWkshName);\n \"Requisition Line\".SetRange(Type, \"Requisition Line\".Type::Item);\n- \"Requisition Line\".SetFilter(\"Action Message\", '<>%1', \"Requisition Line\".\"Action Message\"::\" \");\n+ if \"Requisition Line\".GetFilter(\"Action Message\") = '' then\n+ \"Requisition Line\".SetFilter(\"Action Message\", '<>%1', \"Requisition Line\".\"Action Message\"::\" \");\n OnAfterSetReqLineFilters(\"Requisition Line\");\n end;\n \n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-226448", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 1661.204, "tool_calls": 101, "total_tokens": 7854400, "TurnCount": 288}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":1,\"glob\":1,\"grep\":41,\"powershell\":2,\"report_intent\":2,\"store_memory\":1,\"task\":6,\"update_todo\":3,\"view\":43}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/VATAmountLine.Table.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/VATAmountLine.Table.al\nindex 5706c4b1..2552293d 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/VATAmountLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/VATAmountLine.Table.al\n@@ -687,6 +687,7 @@ table 290 \"VAT Amount Line\"\n OnUpdateLinesOnAfterCalcVATAmount(Rec, PrevVATAmountLine, Currency, VATBaseDiscountPerc, PricesIncludingVAT);\n \"Amount Including VAT\" := \"VAT Base\" + \"VAT Amount\";\n OnUpdateLinesOnAfterCalcAmountIncludingVATNormalVAT(Rec, PrevVATAmountLine, Currency, VATBaseDiscountPerc, PricesIncludingVAT);\n+ NonDeductibleVAT.UpdateNonDeductibleAmountsWithDiffInVATAmountLine(Rec, Currency);\n if Positive then\n PrevVATAmountLine.Init()\n else begin\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-206977", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 48, "tool_calls": 13, "total_tokens": 143700, "TurnCount": 8}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":2,\"grep\":5,\"report_intent\":2,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\nindex 0877c357..dbb3e2af 100644\n--- a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\n+++ b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\n@@ -161,7 +161,14 @@ page 903 \"Assembly Lines\"\n AssemblyHeader: Record \"Assembly Header\";\n begin\n AssemblyHeader.Get(Rec.\"Document Type\", Rec.\"Document No.\");\n- PAGE.Run(PAGE::\"Assembly Order\", AssemblyHeader);\n+ case Rec.\"Document Type\" of\n+ Rec.\"Document Type\"::Quote:\n+ PAGE.Run(PAGE::\"Assembly Quote\", AssemblyHeader);\n+ Rec.\"Document Type\"::Order:\n+ PAGE.Run(PAGE::\"Assembly Order\", AssemblyHeader);\n+ Rec.\"Document Type\"::\"Blanket Order\":\n+ PAGE.Run(PAGE::\"Blanket Assembly Order\", AssemblyHeader);\n+ end;\n end;\n }\n action(\"Reservation Entries\")\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-192565", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 214.379, "tool_calls": 13, "total_tokens": 171900, "TurnCount": 59}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":6}", "output": "diff --git a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\nindex fb45dbcf..b59c9d7a 100644\n--- a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n@@ -5365,6 +5365,7 @@ table 39 \"Purchase Line\"\n Amount := 0;\n \"VAT Base Amount\" := 0;\n \"Amount Including VAT\" := 0;\n+ NonDeductibleVAT.Update(Rec, Currency);\n OnUpdateVATAmountsOnBeforePurchLineModify(Rec, PurchLine2);\n if (Quantity = 0) and (xRec.Quantity <> 0) and (xRec.Amount <> 0) then begin\n if \"Line No.\" <> 0 then\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-211710", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 71.618, "tool_calls": 6, "total_tokens": 102300, "TurnCount": 15}, "Project": "Shopify", "ToolUsage": "{\"edit\":1,\"report_intent\":2,\"task\":1,\"view\":2}", "output": "diff --git a/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al b/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al\nindex 773ba116..52bfd17f 100644\n--- a/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al\n+++ b/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al\n@@ -17,7 +17,7 @@ report 30118 \"Shpfy Suggest Payments\"\n dataitem(OrderTransaction; \"Shpfy Order Transaction\")\n {\n RequestFilterFields = \"Created At\";\n- DataItemTableView = sorting(Type) where(Type = filter(Capture | Sale | Refund));\n+ DataItemTableView = sorting(Type) where(Type = filter(Capture | Sale | Refund), Status = const(Success));\n \n trigger OnAfterGetRecord()\n begin\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-179733", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 141.456, "tool_calls": 17, "total_tokens": 214500, "TurnCount": 22}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":2,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":8}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Job/JobTask.Table.al b/App/Layers/W1/BaseApp/Projects/Project/Job/JobTask.Table.al\nindex ca6d73fa..c68c3ce3 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Job/JobTask.Table.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Job/JobTask.Table.al\n@@ -1225,6 +1225,8 @@ table 1001 \"Job Task\"\n exit;\n if Job.\"Task Billing Method\" = Job.\"Task Billing Method\"::\"One customer\" then\n exit;\n+ if \"Job Task Type\" <> \"Job Task Type\"::Posting then\n+ exit;\n \n SetHideValidationDialog(true);\n if Job.\"Sell-to Customer No.\" <> '' then\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-222488", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 295.902, "tool_calls": 34, "total_tokens": 786200, "TurnCount": 35}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":11,\"powershell\":1,\"report_intent\":2,\"task\":1,\"update_todo\":4,\"view\":14}", "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al\nindex 07db37f9..a70aef62 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al\n@@ -485,6 +485,8 @@ page 5771 \"Whse. Put-away Subform\"\n WhseActivLine: Record \"Warehouse Activity Line\";\n begin\n WhseActivLine.Copy(Rec);\n+ WhseActivLine.FilterGroup(4);\n+ WhseActivLine.SetRange(Breakbulk);\n WhseActivLine.FilterGroup(3);\n WhseActivLine.SetRange(Breakbulk);\n WhseActivLine.FilterGroup(0);\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-176150", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 194.947, "tool_calls": 15, "total_tokens": 179800, "TurnCount": 61}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":1,\"grep\":1,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":5}", "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al b/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\nindex 55d3fbad..933493a5 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\n@@ -1016,6 +1016,7 @@ page 5510 \"Production Journal\"\n protected procedure MarkRelevantRec(var ItemJournalLine: Record \"Item Journal Line\")\n begin\n ItemJournalLine := Rec;\n+ ItemJournalLine.CopyFilters(Rec);\n if ItemJournalLine.FindSet() then begin\n repeat\n case ItemJournalLine.\"Entry Type\" of\n", "error_message": null} diff --git a/notebooks/result/bug-fix/copilot-cf-opus-4-6/21864728490.jsonl b/notebooks/result/bug-fix/copilot-cf-opus-4-6/21864728490.jsonl new file mode 100644 index 000000000..b7e3ea8b2 --- /dev/null +++ b/notebooks/result/bug-fix/copilot-cf-opus-4-6/21864728490.jsonl @@ -0,0 +1,101 @@ +{"InstanceID": "microsoftInternal__NAV-218062", "scores": {"BuildRate": 0, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 643.4159999999999, "tool_calls": 29, "total_tokens": 705600, "TurnCount": 90}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":8,\"report_intent\":2,\"store_memory\":1,\"task\":2,\"update_todo\":4,\"view\":11}", "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Availability/WarehouseAvailabilityMgt.Codeunit.al b/App/Layers/W1/BaseApp/Warehouse/Availability/WarehouseAvailabilityMgt.Codeunit.al\nindex 0b63877a..29072881 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Availability/WarehouseAvailabilityMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Availability/WarehouseAvailabilityMgt.Codeunit.al\n@@ -53,6 +53,11 @@ codeunit 7314 \"Warehouse Availability Mgt.\"\n Database::\"Job Planning Line\", \"Job Planning Line Status\"::Order.AsInteger(), SourceNo, SourceLineNo, true);\n ReservEntry.SetSourceFilter('', 0);\n end;\n+ Database::\"Prod. Order Component\":\n+ begin\n+ ReservEntry.SetSourceFilter(SourceType, SourceSubType, SourceNo, SourceSubLineNo, true);\n+ ReservEntry.SetSourceFilter('', SourceLineNo);\n+ end;\n else begin\n IsHandled := false;\n OnCalcLineReservedQtyOnInvtOnSetSourceFilters(ReservEntry, SourceType, SourceSubType, SourceNo, SourceLineNo, SourceSubLineNo, IsHandled);\n", "error_message": "Build or publish failed for App\\Layers\\W1\\BaseApp:\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Warehouse\\Availability\\WarehouseAvailabilityMgt.Codeunit.al(56,23): error AL0118: The name '\"Prod. Order Component\"' does not exist in the current context."} +{"InstanceID": "microsoftInternal__NAV-224447", "scores": {"BuildRate": 0, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 205.419, "tool_calls": 19, "total_tokens": 304100, "TurnCount": 40}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":5,\"report_intent\":3,\"task\":2,\"update_todo\":3,\"view\":4}", "output": "diff --git a/App/Layers/W1/BaseApp/Foundation/Reporting/ReportSelections.Table.al b/App/Layers/W1/BaseApp/Foundation/Reporting/ReportSelections.Table.al\nindex 7a71bebb..f38fc613 100644\n--- a/App/Layers/W1/BaseApp/Foundation/Reporting/ReportSelections.Table.al\n+++ b/App/Layers/W1/BaseApp/Foundation/Reporting/ReportSelections.Table.al\n@@ -1269,7 +1269,9 @@ table 77 \"Report Selections\"\n Database::\"Sales Invoice Header\",\n Database::\"Sales Cr.Memo Header\",\n Database::\"Sales Shipment Header\",\n- Database::\"Return Receipt Header\"];\n+ Database::\"Return Receipt Header\",\n+ Database::\"Issued Reminder Header\",\n+ Database::\"Issued Fin. Charge Memo Header\"];\n \n OnAfterIsCustomerAccount(DocumentTableId, IsCustomer);\n end;\n@@ -1521,7 +1523,10 @@ table 77 \"Report Selections\"\n // Related Source - Customer or vendor receiving the document\n TableId := GetAccountTableId(DocumentRecord.Number());\n if TableId = Database::Customer then begin\n- FieldName := 'Sell-to Customer No.';\n+ if DocumentRecord.Number() in [Database::\"Issued Reminder Header\", Database::\"Issued Fin. Charge Memo Header\"] then\n+ FieldName := 'Customer No.'\n+ else\n+ FieldName := 'Sell-to Customer No.';\n OnSendEmailDirectlyOnAfterSetFieldName(DocumentRecord.Number(), FieldName);\n if DataTypeManagement.FindfieldByName(DocumentRecord, FieldRef, FieldName) and Customer.Get(Format(FieldRef.Value())) then begin\n SourceTableIDs.Add(Database::Customer);\n", "error_message": "Build or publish failed for App\\Layers\\W1\\BaseApp:\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Foundation\\Reporting\\ReportSelections.Table.al(1274,55): error AL0118: The name '\"Issued Fin. Charge Memo Header\"' does not exist in the current context.\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Foundation\\Reporting\\ReportSelections.Table.al(1526,90): error AL0118: The name '\"Issued Fin. Charge Memo Header\"' does not exist in the current context."} +{"InstanceID": "microsoftInternal__NAV-178045", "scores": {"BuildRate": 0, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 1800, "tool_calls": 0, "total_tokens": 0, "TurnCount": 0}, "Project": "BaseApp", "ToolUsage": "0", "output": "", "error_message": "Agent timed out"} +{"InstanceID": "microsoftInternal__NAV-191624", "scores": {"BuildRate": 0, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 77.18299999999999, "tool_calls": 9, "total_tokens": 134400, "TurnCount": 12}, "Project": "ExcelReports", "ToolUsage": "{\"edit\":2,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":2}", "output": "diff --git a/App/Apps/W1/ExcelReports/app/src/Financials/EXRFixedAssetAnalysisExcel.Report.al b/App/Apps/W1/ExcelReports/app/src/Financials/EXRFixedAssetAnalysisExcel.Report.al\nindex 686231b5..00ec900c 100644\n--- a/App/Apps/W1/ExcelReports/app/src/Financials/EXRFixedAssetAnalysisExcel.Report.al\n+++ b/App/Apps/W1/ExcelReports/app/src/Financials/EXRFixedAssetAnalysisExcel.Report.al\n@@ -32,6 +32,16 @@ report 4412 \"EXR Fixed Asset Analysis Excel\"\n column(DisposalDateField; DisposalDate) { }\n column(GlobalDimension1Code; \"Global Dimension 1 Code\") { IncludeCaption = true; }\n column(GlobalDimension2Code; \"Global Dimension 2 Code\") { IncludeCaption = true; }\n+ trigger OnAfterGetRecord()\n+ var\n+ FADepreciationBook: Record \"FA Depreciation Book\";\n+ begin\n+ if FADepreciationBook.Get(FixedAssetData.\"No.\", DepreciationBookCode) then begin\n+ AcquisitionDate := FADepreciationBook.\"Acquisition Date\";\n+ DisposalDate := FADepreciationBook.\"Disposal Date\";\n+ end;\n+ end;\n+\n dataitem(FAPostingType; \"FA Posting Type\")\n {\n DataItemTableView = where(\"FA Entry\" = const(true));\n@@ -50,8 +60,6 @@ report 4412 \"EXR Fixed Asset Analysis Excel\"\n if ShouldSkipRecord() then\n CurrReport.Skip();\n FADepreciationBook.Get(FixedAssetData.\"No.\", DepreciationBookCode);\n- AcquisitionDate := FADepreciationBook.\"Acquisition Date\";\n- DisposalDate := FADepreciationBook.\"Disposal Date\";\n if BudgetReport then\n BudgetDepreciation.Calculate(FixedAssetData.\"No.\", StartingDate - 1, EndingDate, DepreciationBookCode, BeforeAmount, EndingAmount);\n \n", "error_message": "Build or publish failed for App\\Apps\\W1\\ExcelReports\\app:\nC:\\Source\\App\\Apps\\W1\\ExcelReports\\app\\src\\Financials\\EXRFixedAssetAnalysisExcel.Report.al(45,13): error AL0104: Syntax error, '}' expected\nC:\\Source\\App\\Apps\\W1\\ExcelReports\\app\\src\\Financials\\EXRFixedAssetAnalysisExcel.Report.al(77,5): error AL0198: Expected one of the application object keywords (table, tableextension, page, pageextension, pagecustomization, profile, profileextension, codeunit, report, reportextension, xmlport, query, controladdin, dotnet, enum, enumextension, interface, permissionset, permissionsetextension, entitlement)\nC:\\Source\\App\\Apps\\W1\\ExcelReports\\app\\src\\Financials\\EXRFixedAssetAnalysisExcel.Report.al(223,35): error AL0114: Syntax error, integer literal expected\nC:\\Source\\App\\Apps\\W1\\ExcelReports\\app\\src\\Financials\\EXRFixedAssetAnalysisExcel.Report.al(223,54): error AL0104: Syntax error, '{' expected\nC:\\Source\\App\\Apps\\W1\\ExcelReports\\app\\src\\Financials\\EXRFixedAssetAnalysisExcel.Report.al(223,54): error AL0104: Syntax error, '}' expected\nC:\\Source\\App\\Apps\\W1\\ExcelReports\\app\\src\\Financials\\EXRFixedAssetAnalysisExcel.Report.al(223,54): error AL0198: Expected one of the application object keywords (table, tableextension, page, pageextension, pagecustomization, profile, profileextension, codeunit, report, reportextension, xmlport, query, controladdin, dotnet, enum, enumextension, interface, permissionset, permissionsetextension, entitlement)"} +{"InstanceID": "microsoftInternal__NAV-206527", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 266.19, "tool_calls": 26, "total_tokens": 482800, "TurnCount": 61}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":2,\"grep\":7,\"powershell\":1,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":8}", "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\nindex 36930a9e..058f96b4 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n@@ -263,7 +263,6 @@ codeunit 99000773 \"Calculate Prod. Order\"\n Item2: Record Item;\n ComponentSKU: Record \"Stockkeeping Unit\";\n IsHandled: Boolean;\n- QtyRoundPrecision: Decimal;\n begin\n ProdOrderComp.Reset();\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\", \"Item No.\");\n@@ -295,12 +294,7 @@ codeunit 99000773 \"Calculate Prod. Order\"\n ProdOrderComp.\"Bin Code\" := GetDefaultBin();\n ProdOrderComp.Description := ProdBOMLine[Level].Description;\n ProdOrderComp.Validate(\"Unit of Measure Code\", ProdBOMLine[Level].\"Unit of Measure Code\");\n- if (ProdOrderComp.\"Item No.\" <> '') and Item2.Get(ProdOrderComp.\"Item No.\") then\n- QtyRoundPrecision := UOMMgt.GetQtyRoundingPrecision(Item2, ProdBOMLine[Level].\"Unit of Measure Code\");\n- if QtyRoundPrecision <> 0 then\n- ProdOrderComp.\"Quantity per\" := Round(ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM, QtyRoundPrecision)\n- else\n- ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n+ ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n ProdOrderComp.Length := ProdBOMLine[Level].Length;\n ProdOrderComp.Width := ProdBOMLine[Level].Width;\n ProdOrderComp.Weight := ProdBOMLine[Level].Weight;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137088'\nCodeunit 137088 SCM Order Planning - III\n Testfunction ReleasedProdOrderQuantityPerandExpectedQtyRoundingPrecisionChecking Failure (8.437 seconds)\n Error:\n The value in the Qty. Rounding Precision field on the Item Unit of Measure page is causing the rounding precision for the Expected Quantity field to be incorrect.\n Call Stack:\n \"Prod. Order Component\"(Table 5407).\"Expected Quantity - OnValidate\"(Trigger) line 26 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).UpdateExpectedQuantity line 14 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).\"Routing Link Code - OnValidate\"(Trigger) line 5 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).TransferBOMProcessItem line 45 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).TransferBOM line 70 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).Calculate line 105 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order Lines\"(CodeUnit 99000787).ProcessProdOrderLines line 13 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order Lines\"(CodeUnit 99000787).Copy line 23 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order from Sale\"(CodeUnit 99000792).CreateProductionOrder line 54 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateOrder line 11 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateOrders line 35 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateProdOrder line 24 - Base Application by Microsoft version 26.0.0.0\n \"Library - Planning\"(CodeUnit 132203).CreateProdOrderUsingPlanning line 6 - Tests-TestLibraries by Microsoft version 26.0.0.0\n \"SCM Order Planning - III\"(CodeUnit 137088).ReleasedProdOrderQuantityPerandExpectedQtyRoundingPrecisionChecking line 50 - Tests-SCM by Microsoft version 26.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-213741", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 66.951, "tool_calls": 11, "total_tokens": 143800, "TurnCount": 7}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":3,\"report_intent\":2,\"update_todo\":2,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Costing/InventoryPostingToGL.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Costing/InventoryPostingToGL.Codeunit.al\nindex 9b9c14ed..c9332395 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Costing/InventoryPostingToGL.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Costing/InventoryPostingToGL.Codeunit.al\n@@ -564,6 +564,14 @@ codeunit 5802 \"Inventory Posting To G/L\"\n TempGlobalInvtPostingBuffer.\"Account Type\"::Inventory,\n TempGlobalInvtPostingBuffer.\"Account Type\"::\"Inventory Adjmt.\",\n CostToPost, CostToPostACY, false);\n+ ValueEntry.\"Entry Type\"::\"Direct Cost - Non Inventory\":\n+ if (CostToPost <> 0) or (CostToPostACY <> 0) then\n+ if MfgCostCalcMgt.CanIncNonInvCostIntoProductionItem() then\n+ InitInvtPostBuf(\n+ ValueEntry,\n+ TempGlobalInvtPostingBuffer.\"Account Type\"::Inventory,\n+ TempGlobalInvtPostingBuffer.\"Account Type\"::\"Direct Cost Non-Inventory Applied\",\n+ CostToPost, CostToPostACY, false);\n ValueEntry.\"Entry Type\"::\"Indirect Cost\":\n InitInvtPostBuf(\n ValueEntry,\n@@ -578,6 +586,13 @@ codeunit 5802 \"Inventory Posting To G/L\"\n TempGlobalInvtPostingBuffer.\"Account Type\"::Inventory,\n TempGlobalInvtPostingBuffer.\"Account Type\"::\"Material Variance\",\n CostToPost, CostToPostACY, false);\n+ ValueEntry.\"Variance Type\"::\"Material - Non Inventory\":\n+ if MfgCostCalcMgt.CanIncNonInvCostIntoProductionItem() then\n+ InitInvtPostBuf(\n+ ValueEntry,\n+ TempGlobalInvtPostingBuffer.\"Account Type\"::Inventory,\n+ TempGlobalInvtPostingBuffer.\"Account Type\"::\"Material - Non Inventory Variance\",\n+ CostToPost, CostToPostACY, false);\n ValueEntry.\"Variance Type\"::Capacity:\n InitInvtPostBuf(\n ValueEntry,\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137911'\nCodeunit 137911 SCM Calculate Assembly Cost\n Testfunction VerifyAdjustCostItemEntriesMustBeExecutedForAssemblyItem Failure (8.203 seconds)\n Error:\n Assert.RecordCount failed. Expected number of Value Entry entries: 0. Actual: 1. Filters: Item No.: GL00000000, Item Ledger Entry Type: Assembly Output, Entry Type: Direct Cost - Non Inventory. Records: 678, GL00000000, 06/03/26, Assembly Output, GL00000000, A00001, , , FINISHED, , 676, 1, 0, 0, 233, 0, 430, 0, , 0, ADMIN, INVTADJMT, 0, , , Item, 233, 0, , No, , DOMESTIC, RETAIL, 06/03/26, , 0, 0, 0, Posted Assembly, 0, 06/03/26, Assembly, A00001, 0, No, , No, No, Yes, 06/03/26, Direct Cost - Non Inventory, , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , 0, , Yes, No, 0, , , , , , , , , , , ; \n Call Stack:\n Assert(CodeUnit 130000).RecordCount line 18 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"SCM Calculate Assembly Cost\"(CodeUnit 137911).VerifyAdjustCostItemEntriesMustBeExecutedForAssemblyItem line 43 - Tests-SCM-Assembly by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-183399", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 107.71000000000001, "tool_calls": 18, "total_tokens": 166000, "TurnCount": 34}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":7,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":4}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\nindex 553ae9c0..cec7b1ec 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n@@ -255,6 +255,7 @@ page 254 \"Purchase Journal\"\n {\n ApplicationArea = Basic, Suite;\n AutoFormatExpression = Rec.\"Currency Code\";\n+ AutoFormatType = 1;\n Caption = 'Document Amount';\n ToolTip = 'Specifies the total amount (including VAT) that the journal line consists of.';\n \ndiff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/SalesJournal.Page.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/SalesJournal.Page.al\nindex d63650ad..4dfc2fdf 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/SalesJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/SalesJournal.Page.al\n@@ -247,6 +247,7 @@ page 253 \"Sales Journal\"\n {\n ApplicationArea = Basic, Suite;\n AutoFormatExpression = Rec.\"Currency Code\";\n+ AutoFormatType = 1;\n Caption = 'Document Amount';\n ToolTip = 'Specifies the total amount (including VAT) that the journal line consists of.';\n \n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134918'\nCodeunit 134918 ERM Sales/Purchase Application\n Testfunction DocumentAmountInPurchJnlAcceptsMaxThreeDecimalPlacesValue Failure (3.926 seconds)\n Error:\n Assert.AreEqual failed. Expected:<1.747> (Decimal). Actual:<1.75> (Decimal). The document amount is not correct. Expected: 1.747, Actual: 1.75.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"ERM Sales/Purchase Application\"(CodeUnit 134918).DocumentAmountInPurchJnlAcceptsMaxThreeDecimalPlacesValue line 25 - Tests-ERM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"InstanceID": "microsoftInternal__NAV-207878", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 259.385, "tool_calls": 12, "total_tokens": 149700, "TurnCount": 36}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":1,\"report_intent\":2,\"store_memory\":1,\"task\":1,\"update_todo\":3,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Availability/AvailabletoPromise.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Availability/AvailabletoPromise.Codeunit.al\nindex a486f294..7f66b5cd 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Availability/AvailabletoPromise.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Availability/AvailabletoPromise.Codeunit.al\n@@ -64,7 +64,7 @@ codeunit 5790 \"Available to Promise\"\n ScheduledReceipt := CalcScheduledReceipt(Item);\n GrossRequirement := CalcGrossRequirement(Item);\n \n- if AvailabilityDate <> 0D then\n+ if (AvailabilityDate <> 0D) and (Format(LookaheadDateFormula) <> '') then\n GrossRequirement +=\n CalculateForward(\n Item, PeriodType,\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134381'\nCodeunit 134381 ERM Dimension Priority\n Testfunction AvailWarningAssemblyOrdersConsideringDueDates Failure (8.62 seconds)\n Error:\n Assert.IsFalse failed. Avail. warning should be No\n Call Stack:\n Assert(CodeUnit 130000).IsFalse line 3 - Tests-TestLibraries by Microsoft version 26.0.0.0\n \"ERM Dimension Priority\"(CodeUnit 134381).AvailWarningAssemblyOrdersConsideringDueDates line 92 - Tests-Dimension by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-208649", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 656.624, "tool_calls": 46, "total_tokens": 1627200, "TurnCount": 43}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":5,\"grep\":22,\"powershell\":2,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":10}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al b/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\nindex e3280001..239b4ab8 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\n@@ -182,28 +182,11 @@ table 99000829 \"Planning Component\"\n Editable = false;\n \n trigger OnValidate()\n- var\n- ItemUnitOfMeasure: Record \"Item Unit of Measure\";\n- UnroundedExpectedQuantity: Decimal;\n- ItemPrecRoundedExpectedQuantity: Decimal;\n- BaseUOMPrecRoundedExpectedQuantity: Decimal;\n begin\n- UnroundedExpectedQuantity := \"Expected Quantity\";\n-\n if Item.Get(\"Item No.\") and (\"Ref. Order Type\" <> \"Ref. Order Type\"::Assembly) then\n if Item.\"Rounding Precision\" > 0 then\n \"Expected Quantity\" := UOMMgt.RoundToItemRndPrecision(\"Expected Quantity\", Item.\"Rounding Precision\");\n \n- ItemPrecRoundedExpectedQuantity := \"Expected Quantity\";\n- BaseUOMPrecRoundedExpectedQuantity := UOMMgt.RoundQty(\"Expected Quantity\", \"Qty. Rounding Precision\");\n-\n- if (\"Qty. Rounding Precision\" > 0) and (BaseUOMPrecRoundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity) then\n- if UnroundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity then\n- Error(WrongPrecisionItemAndUOMExpectedQtyErr, Item.FieldCaption(\"Rounding Precision\"), Item.TableCaption(), ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"))\n- else\n- Error(WrongPrecOnUOMExpectedQtyErr, ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"));\n-\n- \"Expected Quantity\" := BaseUOMPrecRoundedExpectedQuantity;\n \"Expected Quantity (Base)\" := CalcBaseQty(\"Expected Quantity\", FieldCaption(\"Expected Quantity\"), FieldCaption(\"Expected Quantity (Base)\"));\n \n \"Net Quantity (Base)\" := \"Expected Quantity (Base)\" - \"Original Expected Qty. (Base)\";\ndiff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\nindex 36930a9e..058f96b4 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n@@ -263,7 +263,6 @@ codeunit 99000773 \"Calculate Prod. Order\"\n Item2: Record Item;\n ComponentSKU: Record \"Stockkeeping Unit\";\n IsHandled: Boolean;\n- QtyRoundPrecision: Decimal;\n begin\n ProdOrderComp.Reset();\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\", \"Item No.\");\n@@ -295,12 +294,7 @@ codeunit 99000773 \"Calculate Prod. Order\"\n ProdOrderComp.\"Bin Code\" := GetDefaultBin();\n ProdOrderComp.Description := ProdBOMLine[Level].Description;\n ProdOrderComp.Validate(\"Unit of Measure Code\", ProdBOMLine[Level].\"Unit of Measure Code\");\n- if (ProdOrderComp.\"Item No.\" <> '') and Item2.Get(ProdOrderComp.\"Item No.\") then\n- QtyRoundPrecision := UOMMgt.GetQtyRoundingPrecision(Item2, ProdBOMLine[Level].\"Unit of Measure Code\");\n- if QtyRoundPrecision <> 0 then\n- ProdOrderComp.\"Quantity per\" := Round(ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM, QtyRoundPrecision)\n- else\n- ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n+ ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n ProdOrderComp.Length := ProdBOMLine[Level].Length;\n ProdOrderComp.Width := ProdBOMLine[Level].Width;\n ProdOrderComp.Weight := ProdBOMLine[Level].Weight;\ndiff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al b/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\nindex c532e014..0334d1b7 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\n@@ -249,10 +249,6 @@ table 5407 \"Prod. Order Component\"\n \n trigger OnValidate()\n var\n- ItemUnitOfMeasure: Record \"Item Unit of Measure\";\n- UnroundedExpectedQuantity: Decimal;\n- ItemPrecRoundedExpectedQuantity: Decimal;\n- BaseUOMPrecRoundedExpectedQuantity: Decimal;\n IsHandled: Boolean;\n begin\n IsHandled := false;\n@@ -260,26 +256,14 @@ table 5407 \"Prod. Order Component\"\n if IsHandled then\n exit;\n \n- UnroundedExpectedQuantity := \"Expected Quantity\";\n if Item.Get(\"Item No.\") then\n if Item.\"Rounding Precision\" > 0 then\n RoundExpectedQuantity();\n \n- ItemPrecRoundedExpectedQuantity := \"Expected Quantity\";\n-\n- BaseUOMPrecRoundedExpectedQuantity := UOMMgt.RoundQty(\"Expected Quantity\", \"Qty. Rounding Precision\");\n-\n- if (\"Qty. Rounding Precision\" > 0) and (BaseUOMPrecRoundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity) then\n- if UnroundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity then\n- Error(WrongPrecisionItemAndUOMExpectedQtyErr, Item.FieldCaption(\"Rounding Precision\"), Item.TableCaption(), ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"))\n- else\n- Error(WrongPrecOnUOMExpectedQtyErr, ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"));\n-\n- \"Expected Quantity\" := BaseUOMPrecRoundedExpectedQuantity;\n \"Expected Qty. (Base)\" := CalcBaseQty(\"Expected Quantity\", FieldCaption(\"Expected Quantity\"), FieldCaption(\"Expected Qty. (Base)\"));\n \n // Recalculate 'Expected Quantity' based on the base value to make sure values are consistent\n- \"Expected Quantity\" := UOMMgt.RoundQty(\"Expected Qty. (Base)\" / \"Qty. per Unit of Measure\", \"Qty. Rounding Precision\");\n+ \"Expected Quantity\" := UOMMgt.RoundQty(\"Expected Qty. (Base)\" / \"Qty. per Unit of Measure\");\n \n if (Status in [Status::Released, Status::Finished]) and\n (xRec.\"Item No.\" <> '') and\n@@ -289,7 +273,7 @@ table 5407 \"Prod. Order Component\"\n \n OnValidateExpectedQuantityOnAfterCalcActConsumptionQty(Rec, xRec);\n \"Remaining Quantity\" := \"Expected Quantity\" - \"Act. Consumption (Qty)\" / \"Qty. per Unit of Measure\";\n- \"Remaining Quantity\" := UOMMgt.RoundQty(\"Remaining Quantity\", \"Qty. Rounding Precision\");\n+ \"Remaining Quantity\" := UOMMgt.RoundQty(\"Remaining Quantity\");\n \n if (\"Remaining Quantity\" * \"Expected Quantity\") <= 0 then\n \"Remaining Quantity\" := 0;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137088'\nCodeunit 137088 SCM Order Planning - III\n Testfunction ReleasedProdOrderQuantityPerandExpectedQtyRoundingPrecisionChecking Failure (8.633 seconds)\n Error:\n Qty. Rounding Precision on Item-GL00000000 causes the Expected Quantity and Expected Qty. (Base) to be out of balance. Rounding of the field Expected Qty. (Base) results to 0.\n Call Stack:\n \"Unit of Measure Management\"(CodeUnit 5402).CalcBaseQty line 9 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).CalcBaseQty line 9 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).\"Expected Quantity - OnValidate\"(Trigger) line 13 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).UpdateExpectedQuantity line 14 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).\"Routing Link Code - OnValidate\"(Trigger) line 5 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).TransferBOMProcessItem line 45 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).TransferBOM line 70 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).Calculate line 105 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order Lines\"(CodeUnit 99000787).ProcessProdOrderLines line 13 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order Lines\"(CodeUnit 99000787).Copy line 23 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order from Sale\"(CodeUnit 99000792).CreateProductionOrder line 54 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateOrder line 11 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateOrders line 35 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateProdOrder line 24 - Base Application by Microsoft version 26.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-188438", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 66.348, "tool_calls": 12, "total_tokens": 184800, "TurnCount": 10}, "Project": "Sustainability", "ToolUsage": "{\"edit\":1,\"grep\":5,\"report_intent\":2,\"view\":4}", "output": "diff --git a/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al b/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al\nindex 4644c873..e3cd8fe4 100644\n--- a/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al\n+++ b/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al\n@@ -88,7 +88,7 @@ codeunit 6218 \"Sustainability Calc. Mgt.\"\n CollectAmountFromGLEntry.LookupMode(true);\n if CollectAmountFromGLEntry.RunModal() = Action::LookupOK then begin\n CollectAmountFromGLEntry.GetDates(FromDate, ToDate);\n- SustainabilityJnlLine.Validate(\"Custom Amount\", GetCollectableGLAmount(SustainAccountCategory, FromDate, ToDate));\n+ SustainabilityJnlLine.Validate(\"Custom Amount\", Abs(GetCollectableGLAmount(SustainAccountCategory, FromDate, ToDate)));\n end;\n end;\n \n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '148181'\nCodeunit 148181 Sustainability Journal Test\n Testfunction TestCustomAmountIsPositiveForNegativeTotalOfGL Failure (4.176 seconds)\n Error:\n Assert.AreEqual failed. Expected:<248.67> (Decimal). Actual:<-248.67> (Decimal). The custom amount must be positive.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"Sustainability Journal Test\"(CodeUnit 148181).TestCustomAmountIsPositiveForNegativeTotalOfGL line 31 - Sustainability Tests by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"InstanceID": "microsoftInternal__NAV-201169", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 213.941, "tool_calls": 28, "total_tokens": 693000, "TurnCount": 46}, "Project": "Shopify", "ToolUsage": "{\"create\":1,\"edit\":2,\"glob\":5,\"grep\":4,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":10}", "output": "diff --git a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\nindex 38d77856..357f4376 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n@@ -26,6 +26,7 @@ codeunit 30174 \"Shpfy Create Product\"\n Getlocations: Boolean;\n ProductId: BigInteger;\n ItemVariantIsBlockedLbl: Label 'Item variant is blocked or sales blocked.';\n+ ItemTitleIsEmptyLbl: Label 'Product title is empty.';\n \n trigger OnRun()\n var\n@@ -51,13 +52,19 @@ codeunit 30174 \"Shpfy Create Product\"\n TempShopifyProduct: Record \"Shpfy Product\" temporary;\n TempShopifyVariant: Record \"Shpfy Variant\" temporary;\n TempShopifyTag: Record \"Shpfy Tag\" temporary;\n+ SkippedRecord: Codeunit \"Shpfy Skipped Record\";\n begin\n CreateTempProduct(Item, TempShopifyProduct, TempShopifyVariant, TempShopifyTag);\n+ if TempShopifyProduct.Title = '' then begin\n+ SkippedRecord.LogSkippedRecord(Item.RecordId, ItemTitleIsEmptyLbl, Shop);\n+ exit;\n+ end;\n if not VariantApi.FindShopifyProductVariant(TempShopifyProduct, TempShopifyVariant) then\n ProductId := ProductApi.CreateProduct(TempShopifyProduct, TempShopifyVariant, TempShopifyTag)\n else\n ProductId := TempShopifyProduct.Id;\n- ProductExport.UpdateProductTranslations(ProductId, Item);\n+ if ProductId <> 0 then\n+ ProductExport.UpdateProductTranslations(ProductId, Item);\n end;\n \n internal procedure CreateTempProduct(Item: Record Item; var TempShopifyProduct: Record \"Shpfy Product\" temporary; var TempShopifyVariant: Record \"Shpfy Variant\" temporary; var TempShopifyTag: Record \"Shpfy Tag\" temporary)\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139581'\nCodeunit 139581 Shpfy Skipped Record Log Test\n Testfunction UnitTestLogItemEmptyDescription Failure (7.35 seconds)\n Error:\n The response from Shopify contains no JSON. \\Requested: {\"query\":\"{ locations(first: 20, includeLegacy: true) { pageInfo { hasNextPage endCursor } nodes { legacyResourceId isActive isPrimary name fulfillmentService { serviceName }}}}\"} \\Response: \n Call Stack:\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 21 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 4 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 6 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Sync Shop Locations\"(CodeUnit 30198).SyncLocations line 20 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Sync Shop Locations\"(CodeUnit 30198).OnRun(Trigger) line 4 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Create Product\"(CodeUnit 30174).OnRun(Trigger) line 5 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Add Item to Shopify\"(Report 30106).\"Item - OnAfterGetRecord\"(Trigger) line 12 - Shopify Connector by Microsoft version 26.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-176426", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 256.493, "tool_calls": 26, "total_tokens": 507100, "TurnCount": 34}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":1,\"glob\":2,\"grep\":2,\"report_intent\":3,\"task\":1,\"update_todo\":2,\"view\":14}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\nindex d639a562..27a45311 100644\n--- a/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\n@@ -993,7 +993,7 @@ codeunit 5870 \"Calculate BOM Tree\"\n exit(true);\n end;\n Item.\"Replenishment System\"::\"Prod. Order\":\n- if Item.\"Production BOM No.\" <> '' then\n+ if (Item.\"Production BOM No.\" <> '') or (Item.\"Routing No.\" <> '') then\n exit(true);\n end;\n end;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137391'\nCodeunit 137391 SCM - BOM Cost Shares Report\n Testfunction RolledUpMaterialAndCapacityCostWithRoutingAndNoBOM Failure (4.08 seconds)\n Error:\n AssertEquals for Field: Rolled-up Material Cost Expected = '497.28', Actual = ''\n Call Stack:\n \"SCM - BOM Cost Shares Report\"(CodeUnit 137391).VerifyParentItemMaterialAndCapacityCost line 7 - Tests-SCM by Microsoft\n \"SCM - BOM Cost Shares Report\"(CodeUnit 137391).RolledUpMaterialAndCapacityCostWithRoutingAndNoBOM line 34 - Tests-SCM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"InstanceID": "microsoftInternal__NAV-222484", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 509.326, "tool_calls": 18, "total_tokens": 397000, "TurnCount": 75}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":1,\"grep\":1,\"report_intent\":2,\"task\":3,\"update_todo\":3,\"view\":7}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/QtyReservedFromItemLedger.Query.al b/App/Layers/W1/BaseApp/Inventory/Tracking/QtyReservedFromItemLedger.Query.al\nindex 9eee9466..c69041d0 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/QtyReservedFromItemLedger.Query.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/QtyReservedFromItemLedger.Query.al\n@@ -26,9 +26,6 @@ query 522 \"Qty. Reserved From Item Ledger\"\n filter(Item_No_; \"Item No.\") { }\n filter(Variant_Code; \"Variant Code\") { }\n filter(Location_Code; \"Location Code\") { }\n- filter(Serial_No_; \"Serial No.\") { }\n- filter(Lot_No_; \"Lot No.\") { }\n- filter(Package_No_; \"Package No.\") { }\n column(Quantity__Base_; \"Quantity (Base)\")\n {\n Method = Sum;\n@@ -42,6 +39,10 @@ query 522 \"Qty. Reserved From Item Ledger\"\n DataItemTableFilter = Positive = const(true),\n \"Source Type\" = const(Database::\"Item Ledger Entry\"),\n \"Reservation Status\" = const(Reservation);\n+\n+ filter(Serial_No_; \"Serial No.\") { }\n+ filter(Lot_No_; \"Lot No.\") { }\n+ filter(Package_No_; \"Package No.\") { }\n }\n }\n }\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137260'\nCodeunit 137260 SCM Inventory Item Tracking\n Testfunction RegisterPickWithNoErrorForFEFOLocation Failure (16.843 seconds)\n Error:\n Lot No. must have a value in Warehouse Activity Line: Activity Type=Pick, No.=PI000001, Line No.=10000. It cannot be zero or empty.\n Call Stack:\n \"Warehouse Activity Line\"(Table 5767).TestTrackingIfRequired line 12 - Base Application by Microsoft version 27.0.0.0\n \"Whse.-Activity-Register\"(CodeUnit 7307).CheckWhseItemTrkgLine line 36 - Base Application by Microsoft version 27.0.0.0\n \"Whse.-Activity-Register\"(CodeUnit 7307).Code line 18 - Base Application by Microsoft version 27.0.0.0\n \"Whse.-Activity-Register\"(CodeUnit 7307).OnRun(Trigger) line 4 - Base Application by Microsoft version 27.0.0.0\n \"Library - Warehouse\"(CodeUnit 132204).RegisterWhseActivity line 10 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"SCM Inventory Item Tracking\"(CodeUnit 137260).RegisterPickWithNoErrorForFEFOLocation line 56 - Tests-SCM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-182354", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 43, "tool_calls": 11, "total_tokens": 90300, "TurnCount": 5}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":2,\"report_intent\":2,\"update_todo\":2,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al b/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al\nindex 737182d0..37eec66b 100644\n--- a/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al\n+++ b/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al\n@@ -28,7 +28,7 @@ page 1318 \"Account Receivables KPIs\"\n begin\n CustLedgerEntry.SetRange(Open, true);\n CustLedgerEntry.SetFilter(\"Remaining Amount\", '>%1', 0);\n- CustLedgerEntry.SetFilter(\"Due Date\", '<=%1', WorkDate());\n+ CustLedgerEntry.SetFilter(\"Due Date\", '<=%1', Today());\n CustomerLedgerEntries.SetTableView(CustLedgerEntry);\n CustomerLedgerEntries.Run();\n end;\n@@ -98,7 +98,7 @@ page 1318 \"Account Receivables KPIs\"\n CuesAndKPIs: Codeunit \"Cues And KPIs\";\n SalesInvoicesDueNextWeekStyle: Enum \"Cues And KPIs Style\";\n begin\n- Rec.SetRange(\"Overdue Date Filter\", 0D, WorkDate());\n+ Rec.SetRange(\"Overdue Date Filter\", 0D, Today());\n if not Rec.Get() then begin\n Clear(Rec);\n Rec.Insert();\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134924'\nCodeunit 134924 ERM Cues\n Testfunction TotalOverdueLCYInFinanceCue Failure (6.463 seconds)\n Error:\n Assert.AreEqual failed. Expected:<> (Text). Actual:<50.17> (Text). The total overdue LCY amount is not calculated correctly..\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"ERM Cues\"(CodeUnit 134924).TotalOverdueLCYInFinanceCue line 37 - Tests-ERM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"InstanceID": "microsoftInternal__NAV-180484", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 106.35499999999999, "tool_calls": 19, "total_tokens": 225000, "TurnCount": 20}, "Project": "BaseApp", "ToolUsage": "{\"edit\":4,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":10}", "output": "diff --git a/App/Layers/W1/BaseApp/eServices/EDocument/IncomingDocument.Table.al b/App/Layers/W1/BaseApp/eServices/EDocument/IncomingDocument.Table.al\nindex 2341887c..86f0137c 100644\n--- a/App/Layers/W1/BaseApp/eServices/EDocument/IncomingDocument.Table.al\n+++ b/App/Layers/W1/BaseApp/eServices/EDocument/IncomingDocument.Table.al\n@@ -506,12 +506,21 @@ table 130 \"Incoming Document\"\n Error(DocAlreadyCreatedErr);\n end;\n \n+ local procedure SetCreatedDocStatus()\n+ var\n+ ReleaseIncomingDocument: Codeunit \"Release Incoming Document\";\n+ begin\n+ ReleaseIncomingDocument.Create(Rec);\n+ end;\n+\n procedure CreateDocumentWithDataExchange()\n var\n RelatedRecord: Variant;\n begin\n- if GetRecord(RelatedRecord) then\n+ if GetRecord(RelatedRecord) then begin\n+ SetCreatedDocStatus();\n Error(DocAlreadyCreatedErr);\n+ end;\n \n CreateWithDataExchange(\"Document Type\"::\" \")\n end;\n@@ -622,8 +631,10 @@ table 130 \"Incoming Document\"\n if IsHandled then\n exit;\n \n- if GetRecord(RelatedRecord) then\n+ if GetRecord(RelatedRecord) then begin\n+ SetCreatedDocStatus();\n Error(DocAlreadyCreatedErr);\n+ end;\n \n CreatedDocumentType.Add(1, \"Document Type\"::Journal.AsInteger());\n CreatedDocumentType.Add(2, \"Document Type\"::\"Sales Invoice\".AsInteger());\n@@ -755,8 +766,10 @@ table 130 \"Incoming Document\"\n ErrorMessage: Record \"Error Message\";\n RelatedRecord: Variant;\n begin\n- if GetRecord(RelatedRecord) then\n+ if GetRecord(RelatedRecord) then begin\n+ SetCreatedDocStatus();\n Error(DocAlreadyCreatedErr);\n+ end;\n \n CreateWithDataExchange(\"Document Type\"::Journal);\n \n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139154'\nCodeunit 139154 Incoming Doc. To Data Exch.UT\n Testfunction StatusRemainsCreatedIfHasLinkedDocWhenReopenIncomingDoc Failure (13.847 seconds)\n Error:\n Assert.AreEqual failed. Expected: (Text). Actual: (Text). Status must be Created in Incoming Document.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"Incoming Doc. To Data Exch.UT\"(CodeUnit 139154).StatusRemainsCreatedIfHasLinkedDocWhenReopenIncomingDoc line 53 - Tests-Data Exchange by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"InstanceID": "microsoftInternal__NAV-215645", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 322.446, "tool_calls": 31, "total_tokens": 752500, "TurnCount": 40}, "Project": "SubscriptionBilling", "ToolUsage": "{\"edit\":1,\"grep\":10,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":13}", "output": "diff --git a/App/Apps/W1/SubscriptionBilling/App/Billing/Codeunits/CreateBillingDocuments.Codeunit.al b/App/Apps/W1/SubscriptionBilling/App/Billing/Codeunits/CreateBillingDocuments.Codeunit.al\nindex c7efaed2..c289816a 100644\n--- a/App/Apps/W1/SubscriptionBilling/App/Billing/Codeunits/CreateBillingDocuments.Codeunit.al\n+++ b/App/Apps/W1/SubscriptionBilling/App/Billing/Codeunits/CreateBillingDocuments.Codeunit.al\n@@ -261,6 +261,7 @@ codeunit 8060 \"Create Billing Documents\"\n SalesLine.\"Description 2\" := '';\n \n SetInvoicePriceFromUsageDataBilling(SalesLine, TempBillingLine);\n+ SalesLine.\"Exclude from Doc. Total\" := false;\n OnBeforeInsertSalesLineFromContractLine(SalesLine, TempBillingLine);\n SalesLine.Insert(false);\n \n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '148155'\nCodeunit 148155 Contracts Test\n Testfunction SalesInvoiceShowsSubtotalForServCommItem Failure (9.243 seconds)\n Error:\n Exclude from Document Total must be equal to 'No' in Sales Line: Document Type=Invoice, Document No.=102222, Line No.=10000. Current value is 'Yes'.\n Call Stack:\n \"Contracts Test\"(CodeUnit 148155).SalesInvoiceShowsSubtotalForServCommItem line 22 - Subscription Billing Test by Microsoft version 26.3.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.3.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.3.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.3.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.3.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.3.0.0"} +{"InstanceID": "microsoftInternal__NAV-223790", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 325.059, "tool_calls": 21, "total_tokens": 421600, "TurnCount": 39}, "Project": "BaseApp", "ToolUsage": "{\"edit\":4,\"glob\":2,\"powershell\":1,\"report_intent\":2,\"store_memory\":1,\"task\":3,\"update_todo\":3,\"view\":5}", "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/LowLevelCodeCalculator.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/LowLevelCodeCalculator.Codeunit.al\nindex fcabc2e0..f1dde4b2 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/LowLevelCodeCalculator.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/LowLevelCodeCalculator.Codeunit.al\n@@ -6,6 +6,7 @@ namespace Microsoft.Inventory.BOM.Tree;\n \n using Microsoft.Inventory.BOM;\n using Microsoft.Inventory.Item;\n+using Microsoft.Inventory.Location;\n using Microsoft.Manufacturing.ProductionBOM;\n using System.Threading;\n using System.Utilities;\n@@ -88,6 +89,7 @@ codeunit 3687 \"Low-Level Code Calculator\"\n begin\n // Set nodes on the tree\n PopulateFromItemAndRelatedBOMs(BOMStructure);\n+ PopulateFromSKUAndRelatedBOMs(BOMStructure);\n PopulateFromProductionBOMAndLines(BOMStructure);\n PopulateFromBOMComponents(BOMStructure);\n end;\n@@ -95,12 +97,14 @@ codeunit 3687 \"Low-Level Code Calculator\"\n local procedure LockTables()\n var\n Item: Record Item;\n+ StockkeepingUnit: Record \"Stockkeeping Unit\";\n ProductionBOMHeader: Record \"Production BOM Header\";\n ProductionBOMLine: Record \"Production BOM Line\";\n ProductionBOMVersion: Record \"Production BOM Version\";\n BOMComponent: Record \"BOM Component\";\n begin\n Item.LockTable();\n+ StockkeepingUnit.LockTable();\n ProductionBOMHeader.LockTable();\n ProductionBOMLine.LockTable();\n ProductionBOMVersion.LockTable();\n@@ -192,6 +196,34 @@ codeunit 3687 \"Low-Level Code Calculator\"\n ItemProductionBOMs.Close();\n end;\n \n+ local procedure PopulateFromSKUAndRelatedBOMs(BOMStructure: Codeunit \"BOM Tree\")\n+ var\n+ Item: Record Item;\n+ StockkeepingUnit: Record \"Stockkeeping Unit\";\n+ ProductionBOMHeader: Record \"Production BOM Header\";\n+ Parent: Codeunit \"BOM Node\";\n+ Child: Codeunit \"BOM Node\";\n+ VersionManagement: Codeunit VersionManagement;\n+ begin\n+ StockkeepingUnit.SetFilter(\"Production BOM No.\", '<>%1', '');\n+ if StockkeepingUnit.FindSet() then\n+ repeat\n+ if ProductionBOMHeader.Get(StockkeepingUnit.\"Production BOM No.\") then\n+ if (ProductionBOMHeader.Status = ProductionBOMHeader.Status::Certified) or\n+ (VersionManagement.GetBOMVersion(StockkeepingUnit.\"Production BOM No.\", WorkDate(), true) <> '') then\n+ if Item.Get(StockkeepingUnit.\"Item No.\") then begin\n+ Parent.CreateForItem(Item.\"No.\", Item.\"Low-Level Code\", LowLevelCodeParam);\n+ Child.CreateForProdBOM(ProductionBOMHeader.\"No.\", ProductionBOMHeader.\"Low-Level Code\", LowLevelCodeParam);\n+\n+ AddChildToParent(BOMStructure, Parent, Child);\n+\n+ // ensure that next nodes created are new instances\n+ Clear(Parent);\n+ Clear(Child);\n+ end;\n+ until StockkeepingUnit.Next() = 0;\n+ end;\n+\n local procedure PopulateFromProductionBOMAndLines(BOMStructure: Codeunit \"BOM Tree\")\n var\n ProductionBOMHeader: Record \"Production BOM Header\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137035'\nCodeunit 137035 SCM PS Bugs-I\n Testfunction CheckPlanningWorksheetPlanComponentwhenStockkeepingUnitsSetup Failure (17.554 seconds)\n Error:\n Assert.AreEqual failed. Expected:<1> (Integer). Actual:<0> (Integer). New planning worksheet line not created for component item.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"SCM PS Bugs-I\"(CodeUnit 137035).CheckPlanningWorksheetPlanComponentwhenStockkeepingUnitsSetup line 85 - Tests-SCM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-177750", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 310.336, "tool_calls": 58, "total_tokens": 1518200, "TurnCount": 36}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":5,\"glob\":1,\"grep\":28,\"powershell\":2,\"report_intent\":2,\"update_todo\":4,\"view\":15}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\nindex a1e3fedb..ca450a3a 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\n@@ -3075,6 +3075,30 @@ table 1003 \"Job Planning Line\"\n exit(0);\n end;\n \n+ procedure QtyAsmRemainingBaseOnATO(): Decimal\n+ var\n+ AsmHeader: Record \"Assembly Header\";\n+ begin\n+ if AsmToOrderExists(AsmHeader) then\n+ exit(AsmHeader.\"Remaining Quantity (Base)\");\n+ exit(0);\n+ end;\n+\n+ procedure GetATOBin(Location: Record Location; var BinCode: Code[20]): Boolean\n+ var\n+ AsmHeader: Record \"Assembly Header\";\n+ begin\n+ if not Location.\"Require Shipment\" then\n+ BinCode := Location.\"Asm.-to-Order Shpt. Bin Code\";\n+ if BinCode <> '' then\n+ exit(true);\n+\n+ if AsmHeader.GetFromAssemblyBin(Location, BinCode) then\n+ exit(true);\n+\n+ exit(false);\n+ end;\n+\n procedure ShowAsmToJobPlanningLines()\n begin\n ATOLink.ShowAsmToJobPlanningLines(Rec);\ndiff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al b/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al\nindex 320720d7..4e392308 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al\n@@ -1073,6 +1073,7 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n local procedure CalcRemQtyToPickOrMoveBase(NewWarehouseActivityLine: Record \"Warehouse Activity Line\"; OutstandingQtyBase: Decimal; var RemQtyToPickBase: Decimal)\n var\n ATOSalesLine: Record \"Sales Line\";\n+ ATOJobPlanningLine: Record \"Job Planning Line\";\n MaxQtyToPickBase: Decimal;\n begin\n MaxQtyToPickBase :=\n@@ -1084,6 +1085,9 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n if WMSManagement.GetATOSalesLine(NewWarehouseActivityLine.\"Source Type\", NewWarehouseActivityLine.\"Source Subtype\", NewWarehouseActivityLine.\"Source No.\", NewWarehouseActivityLine.\"Source Line No.\", ATOSalesLine) then\n MaxQtyToPickBase += ATOSalesLine.QtyAsmRemainingBaseOnATO();\n \n+ if WMSManagement.GetATOJobPlanningLine(NewWarehouseActivityLine.\"Source Type\", NewWarehouseActivityLine.\"Source No.\", NewWarehouseActivityLine.\"Source Line No.\", NewWarehouseActivityLine.\"Source Subline No.\", ATOJobPlanningLine) then\n+ MaxQtyToPickBase += ATOJobPlanningLine.QtyAsmRemainingBaseOnATO();\n+\n if RemQtyToPickBase > MaxQtyToPickBase then begin\n RemQtyToPickBase := MaxQtyToPickBase;\n if NewWarehouseActivityLine.\"Shipping Advice\" = NewWarehouseActivityLine.\"Shipping Advice\"::Complete then\n@@ -2096,9 +2100,11 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n case CurrLocation.\"Special Equipment\" of\n CurrLocation.\"Special Equipment\"::\"According to Bin\":\n begin\n- GetBin(CurrLocation.Code, BinCode);\n- if CurrBin.\"Special Equipment Code\" <> '' then\n- exit(CurrBin.\"Special Equipment Code\");\n+ if BinCode <> '' then begin\n+ GetBin(CurrLocation.Code, BinCode);\n+ if CurrBin.\"Special Equipment Code\" <> '' then\n+ exit(CurrBin.\"Special Equipment Code\");\n+ end;\n \n GetItemAndSKU(ItemNo, LocationCode, VariantCode);\n if CurrStockKeepingUnit.\"Special Equipment Code\" <> '' then\n@@ -2115,8 +2121,10 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n if CurrItem.\"Special Equipment Code\" <> '' then\n exit(CurrItem.\"Special Equipment Code\");\n \n- GetBin(CurrLocation.Code, BinCode);\n- exit(CurrBin.\"Special Equipment Code\")\n+ if BinCode <> '' then begin\n+ GetBin(CurrLocation.Code, BinCode);\n+ exit(CurrBin.\"Special Equipment Code\");\n+ end;\n end\n end\n end;\n@@ -2155,6 +2163,7 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n procedure CreateATOPickLine(NewWarehouseActivityLine: Record \"Warehouse Activity Line\"; BinCode: Code[20]; var RemQtyToPickBase: Decimal)\n var\n ATOSalesLine: Record \"Sales Line\";\n+ ATOJobPlanningLine: Record \"Job Planning Line\";\n AssemblyHeader: Record \"Assembly Header\";\n AssemblySetup: Record \"Assembly Setup\";\n ReservationEntry: Record \"Reservation Entry\";\n@@ -2193,7 +2202,37 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n if AssemblySetup.\"Create Movements Automatically\" then\n CreateATOInventoryMovementsAutomatically(AssemblyHeader, ATOInvtMovementsCreated, TotalATOInvtMovementsToBeCreated);\n end;\n- end;\n+ end else\n+ if (not IsInvtMovement) and\n+ WMSManagement.GetATOJobPlanningLine(NewWarehouseActivityLine.\"Source Type\",\n+ NewWarehouseActivityLine.\"Source No.\",\n+ NewWarehouseActivityLine.\"Source Line No.\",\n+ NewWarehouseActivityLine.\"Source Subline No.\",\n+ ATOJobPlanningLine)\n+ then begin\n+ ATOJobPlanningLine.AsmToOrderExists(AssemblyHeader);\n+ if NewWarehouseActivityLine.TrackingExists() then begin\n+ AssemblyHeader.SetReservationFilters(ReservationEntry);\n+ ReservationEntry.SetTrackingFilterFromWhseActivityLine(NewWarehouseActivityLine);\n+ ReservationEntry.SetRange(Positive, true);\n+ if ItemTrackingManagement.SumUpItemTracking(ReservationEntry, TempTrackingSpecification1, true, true) then\n+ QtyToAsmBase := Abs(TempTrackingSpecification1.\"Qty. to Handle (Base)\");\n+ end else\n+ QtyToAsmBase := ATOJobPlanningLine.QtyToAsmBaseOnATO();\n+ WhseItemTrackingSetup.CopyTrackingFromWhseActivityLine(NewWarehouseActivityLine);\n+ QtyToPickBase := QtyToAsmBase - WMSManagement.CalcQtyBaseOnATOJobInvtPick(ATOJobPlanningLine, WhseItemTrackingSetup);\n+ if QtyToPickBase > 0 then begin\n+ MakeWarehouseActivityHeader();\n+ if CurrLocation.\"Bin Mandatory\" and (BinCode = '') then\n+ ATOJobPlanningLine.GetATOBin(CurrLocation, BinCode);\n+ NewWarehouseActivityLine.\"Assemble to Order\" := true;\n+ MakeWarehouseActivityLine(NewWarehouseActivityLine, BinCode, QtyToPickBase, RemQtyToPickBase);\n+\n+ AssemblySetup.Get();\n+ if AssemblySetup.\"Create Movements Automatically\" then\n+ CreateATOInventoryMovementsAutomatically(AssemblyHeader, ATOInvtMovementsCreated, TotalATOInvtMovementsToBeCreated);\n+ end;\n+ end;\n OnAfterCreateATOPickLine(QtyToPickBase, AssemblyHeader, NewWarehouseActivityLine, CurrWarehouseActivityHeader, RemQtyToPickBase);\n end;\n \ndiff --git a/App/Layers/W1/BaseApp/Warehouse/Journal/WMSManagement.Codeunit.al b/App/Layers/W1/BaseApp/Warehouse/Journal/WMSManagement.Codeunit.al\nindex dda50b4d..f473ba9e 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Journal/WMSManagement.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Journal/WMSManagement.Codeunit.al\n@@ -1758,6 +1758,35 @@ codeunit 7302 \"WMS Management\"\n until WarehouseActivityLine.Next() = 0;\n end;\n \n+ local procedure SetFiltersOnATOJobInvtPick(JobPlanningLine: Record \"Job Planning Line\"; var WarehouseActivityLine: Record \"Warehouse Activity Line\")\n+ begin\n+ WarehouseActivityLine.SetRange(WarehouseActivityLine.\"Activity Type\", WarehouseActivityLine.\"Activity Type\"::\"Invt. Pick\");\n+ WarehouseActivityLine.SetSourceFilter(\n+ Database::Job, 0, JobPlanningLine.\"Job No.\", JobPlanningLine.\"Job Contract Entry No.\", JobPlanningLine.\"Line No.\", false);\n+ WarehouseActivityLine.SetRange(WarehouseActivityLine.\"Assemble to Order\", true);\n+ WarehouseActivityLine.SetTrackingFilterIfNotEmpty();\n+ end;\n+\n+ procedure ATOJobInvtPickExists(JobPlanningLine: Record \"Job Planning Line\"): Boolean\n+ var\n+ WarehouseActivityLine: Record \"Warehouse Activity Line\";\n+ begin\n+ SetFiltersOnATOJobInvtPick(JobPlanningLine, WarehouseActivityLine);\n+ exit(not WarehouseActivityLine.IsEmpty);\n+ end;\n+\n+ procedure CalcQtyBaseOnATOJobInvtPick(JobPlanningLine: Record \"Job Planning Line\"; WhseItemTrackingSetup: Record \"Item Tracking Setup\") QtyBase: Decimal\n+ var\n+ WarehouseActivityLine: Record \"Warehouse Activity Line\";\n+ begin\n+ WarehouseActivityLine.CopyTrackingFromItemTrackingSetup(WhseItemTrackingSetup);\n+ SetFiltersOnATOJobInvtPick(JobPlanningLine, WarehouseActivityLine);\n+ if WarehouseActivityLine.FindSet() then\n+ repeat\n+ QtyBase += WarehouseActivityLine.\"Qty. Outstanding (Base)\";\n+ until WarehouseActivityLine.Next() = 0;\n+ end;\n+\n procedure CheckOutboundBlockedBin(LocationCode: Code[10]; BinCode: Code[20]; ItemNo: Code[20]; VariantCode: Code[10]; UnitOfMeasureCode: Code[10])\n begin\n CheckBlockedBin(LocationCode, BinCode, ItemNo, VariantCode, UnitOfMeasureCode, false);\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136322'\nCodeunit 136322 Jobs - Assemble-to Order\n Testfunction PostInventoryPickForAssemblyItemRelatedToJobPlanningLineWithBin Failure (6.963 seconds)\n Error:\n Status must be equal to 'Released' in Assembly Header: Document Type=Order, No.=A00001. Current value is 'Open'.\n Call Stack:\n \"Assembly Header\"(Table 900).CreateInvtMovement line 11 - Base Application by Microsoft\n \"Create Inventory Pick/Movement\"(CodeUnit 7322).CreateATOInventoryMovementsAutomatically line 11 - Base Application by Microsoft\n \"Create Inventory Pick/Movement\"(CodeUnit 7322).CreateATOPickLine line 70 - Base Application by Microsoft\n \"Create Inventory Pick/Movement\"(CodeUnit 7322).InsertPickOrMoveBinWhseActLine line 15 - Base Application by Microsoft\n \"Create Inventory Pick/Movement\"(CodeUnit 7322).CreatePickOrMoveLine line 153 - Base Application by Microsoft\n \"Create Inventory Pick/Movement\"(CodeUnit 7322).CreatePickOrMoveFromJobPlanning line 48 - Base Application by Microsoft\n \"Create Inventory Pick/Movement\"(CodeUnit 7322).AutoCreatePickOrMove line 30 - Base Application by Microsoft\n \"Create Invt Put-away/Pick/Mvmt\"(Report 7323).\"Warehouse Request - OnAfterGetRecord\"(Trigger) line 49 - Base Application by Microsoft"} +{"InstanceID": "microsoftInternal__NAV-208320", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 445.185, "tool_calls": 58, "total_tokens": 894400, "TurnCount": 116}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":6,\"grep\":28,\"powershell\":2,\"report_intent\":3,\"task\":3,\"update_todo\":3,\"view\":12}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrder.Page.al b/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrder.Page.al\nindex 1dee700e..edd7bd58 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrder.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrder.Page.al\n@@ -647,6 +647,7 @@ page 507 \"Blanket Sales Order\"\n if Rec.\"Bill-to Customer No.\" <> xRec.\"Bill-to Customer No.\" then\n Rec.SetRange(\"Bill-to Customer No.\");\n CurrPage.Update();\n+ BillToContact.GetOrClear(Rec.\"Bill-to Contact No.\");\n end;\n }\n field(\"Bill-to Address\"; Rec.\"Bill-to Address\")\ndiff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesCreditMemo.Page.al b/App/Layers/W1/BaseApp/Sales/Document/SalesCreditMemo.Page.al\nindex 84ba27e1..e8600ca6 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesCreditMemo.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesCreditMemo.Page.al\n@@ -551,6 +551,7 @@ page 44 \"Sales Credit Memo\"\n Rec.SetRange(\"Bill-to Customer No.\");\n \n CurrPage.Update();\n+ BillToContact.GetOrClear(Rec.\"Bill-to Contact No.\");\n end;\n }\n field(\"Bill-to Address\"; Rec.\"Bill-to Address\")\ndiff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesInvoice.Page.al b/App/Layers/W1/BaseApp/Sales/Document/SalesInvoice.Page.al\nindex ee0d93e0..f60efdd3 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesInvoice.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesInvoice.Page.al\n@@ -801,6 +801,7 @@ page 43 \"Sales Invoice\"\n Rec.SetRange(\"Bill-to Customer No.\");\n \n CurrPage.Update();\n+ BillToContact.GetOrClear(Rec.\"Bill-to Contact No.\");\n end;\n end;\n }\ndiff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesOrder.Page.al b/App/Layers/W1/BaseApp/Sales/Document/SalesOrder.Page.al\nindex 77cf2b18..0344b42a 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesOrder.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesOrder.Page.al\n@@ -810,6 +810,7 @@ page 42 \"Sales Order\"\n Rec.SetRange(\"Bill-to Customer No.\");\n \n CurrPage.Update();\n+ BillToContact.GetOrClear(Rec.\"Bill-to Contact No.\");\n end;\n end;\n }\ndiff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesQuote.Page.al b/App/Layers/W1/BaseApp/Sales/Document/SalesQuote.Page.al\nindex 7827a9ec..c59f2ec1 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesQuote.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesQuote.Page.al\n@@ -762,6 +762,7 @@ page 41 \"Sales Quote\"\n Rec.SetRange(\"Bill-to Customer No.\");\n \n CurrPage.Update();\n+ BillToContact.GetOrClear(Rec.\"Bill-to Contact No.\");\n end;\n }\n field(\"Bill-to Address\"; Rec.\"Bill-to Address\")\ndiff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesReturnOrder.Page.al b/App/Layers/W1/BaseApp/Sales/Document/SalesReturnOrder.Page.al\nindex e9c58725..ed17555a 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesReturnOrder.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesReturnOrder.Page.al\n@@ -612,6 +612,7 @@ page 6630 \"Sales Return Order\"\n Rec.SetRange(\"Bill-to Customer No.\");\n \n CurrPage.Update();\n+ BillToContact.GetOrClear(Rec.\"Bill-to Contact No.\");\n end;\n }\n field(\"Bill-to Address\"; Rec.\"Bill-to Address\")\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134386'\nCodeunit 134386 ERM Sales Documents II\n Testfunction UpdateEmailAndPhoneNoWhenChangeBillToOfSalesInvoice Failure (9.194 seconds)\n Error:\n AssertEquals for Field: BillToContactPhoneNo Expected = '333333333', Actual = '111111111'\n Call Stack:\n \"ERM Sales Documents II\"(CodeUnit 134386).UpdateEmailAndPhoneNoWhenChangeBillToOfSalesInvoice line 34 - Tests-ERM by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0"} +{"InstanceID": "microsoft__BCApps-4766", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 111.237, "tool_calls": 15, "total_tokens": 181800, "TurnCount": 20}, "Project": "Subscription Billing", "ToolUsage": "{\"edit\":2,\"grep\":1,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":6}", "output": "diff --git a/src/Apps/W1/Subscription Billing/App/Customer Contracts/Tables/CustSubContractLine.Table.al b/src/Apps/W1/Subscription Billing/App/Customer Contracts/Tables/CustSubContractLine.Table.al\nindex 91f83b1..6484d4d 100644\n--- a/src/Apps/W1/Subscription Billing/App/Customer Contracts/Tables/CustSubContractLine.Table.al\t\n+++ b/src/Apps/W1/Subscription Billing/App/Customer Contracts/Tables/CustSubContractLine.Table.al\t\n@@ -66,6 +66,7 @@ table 8062 \"Cust. Sub. Contract Line\"\n end;\n end;\n \n+ CheckAndDisconnectContractLine();\n TempCustomerContractLine := Rec;\n Init();\n SystemId := TempCustomerContractLine.SystemId;\ndiff --git a/src/Apps/W1/Subscription Billing/App/Vendor Contracts/Tables/VendSubContractLine.Table.al b/src/Apps/W1/Subscription Billing/App/Vendor Contracts/Tables/VendSubContractLine.Table.al\nindex 533581b..013f5e4 100644\n--- a/src/Apps/W1/Subscription Billing/App/Vendor Contracts/Tables/VendSubContractLine.Table.al\t\n+++ b/src/Apps/W1/Subscription Billing/App/Vendor Contracts/Tables/VendSubContractLine.Table.al\t\n@@ -63,6 +63,7 @@ table 8065 \"Vend. Sub. Contract Line\"\n end;\n end;\n \n+ CheckAndDisconnectContractLine();\n TempVendorContractLine := Rec;\n Init();\n SystemId := TempVendorContractLine.SystemId;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '148155'\nCodeunit 148155 Contracts Test\n Testfunction ContractLineDisconnectServiceOnNoChange Failure (8.994 seconds)\n Error:\n Item with the No. does not exist.\n Call Stack:\n \"Cust. Sub. Contract Line\"(Table 8062).\"No. - OnValidate\"(Trigger) line 10 - Subscription Billing by Microsoft version 27.0.0.0\n \"Contracts Test\"(CodeUnit 148155).ContractLineDisconnectServiceOnNoChange line 24 - Subscription Billing Test by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0\nSetting test codeunit range '148154'\nCodeunit 148154 Vendor Contracts Test\n Testfunction ContractLineDisconnectServiceOnNoChange Failure (1.317 seconds)\n Error:\n Item with the No. does not exist.\n Call Stack:\n \"Vend. Sub. Contract Line\"(Table 8065).\"No. - OnValidate\"(Trigger) line 10 - Subscription Billing by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-209450", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 413.413, "tool_calls": 33, "total_tokens": 484200, "TurnCount": 93}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":1,\"grep\":12,\"report_intent\":2,\"task\":2,\"update_todo\":2,\"view\":13}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\nindex bb5d38d2..1e011027 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\n@@ -1075,6 +1075,8 @@ table 1003 \"Job Planning Line\"\n TestField(Type, Type::Item);\n TestField(\"No.\");\n TestField(\"Usage Link\");\n+ GetItem();\n+ Item.TestField(Type, Item.Type::Inventory);\n end;\n CalcFields(\"Reserved Qty. (Base)\");\n if (Reserve = Reserve::Never) and (\"Reserved Qty. (Base)\" > 0) then\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136302'\nCodeunit 136302 Job Consumption Purchase\n Testfunction PurchaseLineNotReservedWhenItemTypeNonInventoryOrService Failure (15.763 seconds)\n Error:\n Type must be equal to 'Inventory' in Item: No.=GL00000001. Current value is 'Non-Inventory'.\n Call Stack:\n \"Job Planning Line\"(Table 1003).\"Reserve - OnValidate\"(Trigger) line 7 - Base Application by Microsoft version 26.0.0.0\n \"Job Consumption Purchase\"(CodeUnit 136302).PurchaseLineNotReservedWhenItemTypeNonInventoryOrService line 34 - Tests-Job by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0"} +{"InstanceID": "microsoft__BCApps-5633", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 626.638, "tool_calls": 24, "total_tokens": 694800, "TurnCount": 25}, "Project": "Shopify", "ToolUsage": "{\"create\":1,\"edit\":2,\"grep\":2,\"powershell\":2,\"report_intent\":3,\"task\":2,\"update_todo\":4,\"view\":8}", "output": "diff --git a/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al b/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al\nindex 1f790f9..661c605 100644\n--- a/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al\n@@ -58,6 +58,13 @@ codeunit 30190 \"Shpfy Export Shipments\"\n if ShopifyOrderHeader.Get(SalesShipmentHeader.\"Shpfy Order Id\") then begin\n ShopifyCommunicationMgt.SetShop(ShopifyOrderHeader.\"Shop Code\");\n Shop.Get(ShopifyOrderHeader.\"Shop Code\");\n+ if IsThirdPartyFulfillmentServiceLocation(Shop.Code, LocationId) then begin\n+ if SalesShipmentHeader.\"Shpfy Fulfillment Id\" = 0 then begin\n+ SalesShipmentHeader.\"Shpfy Fulfillment Id\" := -2;\n+ SalesShipmentHeader.Modify(true);\n+ end;\n+ exit;\n+ end;\n FulfillmentOrderRequests := CreateFulfillmentOrderRequest(SalesShipmentHeader, Shop, LocationId, DeliveryMethodType, AssignedFulfillmentOrderIds);\n if FulfillmentOrderRequests.Count <> 0 then\n foreach FulfillmentOrderRequest in FulfillmentOrderRequests do begin\n@@ -249,4 +256,15 @@ codeunit 30190 \"Shpfy Export Shipments\"\n if FulfillmentOrdersAPI.AcceptFulfillmentRequest(Shop, FulfillmentOrderHeader) then\n AssignedFulfillmentOrderIds.Remove(FulfillmentOrderId);\n end;\n+\n+ local procedure IsThirdPartyFulfillmentServiceLocation(ShopCode: Code[20]; LocationId: BigInteger): Boolean\n+ var\n+ ShopLocation: Record \"Shpfy Shop Location\";\n+ SyncShopLocations: Codeunit \"Shpfy Sync Shop Locations\";\n+ begin\n+ if ShopLocation.Get(ShopCode, LocationId) then\n+ if ShopLocation.\"Is Fulfillment Service\" then\n+ exit(ShopLocation.Name <> SyncShopLocations.GetFulfillmentServiceName());\n+ exit(false);\n+ end;\n }\n\\ No newline at end of file\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139606'\nCodeunit 139606 Shpfy Shipping Test\n Testfunction UnitTestExportShipmentThirdParty Failure (5.697 seconds)\n Error:\n Assert.AreEqual failed. Expected:<0> (Integer). Actual:<1> (Integer). FulfillmentRequest count check.\n Call Stack:\n \"Library Assert\"(CodeUnit 130002).AreEqual line 3 - Library Assert by Microsoft version 27.2.0.0\n \"Shpfy Shipping Test\"(CodeUnit 139606).UnitTestExportShipmentThirdParty line 26 - Shopify Connector Test by Microsoft version 27.2.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.2.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.2.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.2.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.2.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.2.0.0"} +{"InstanceID": "microsoftInternal__NAV-216918", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 647.333, "tool_calls": 27, "total_tokens": 720900, "TurnCount": 159}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":2,\"grep\":4,\"report_intent\":2,\"task\":4,\"update_todo\":3,\"view\":11}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\nindex d541dd08..931f0277 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\n@@ -451,6 +451,7 @@ codeunit 1004 \"Job Transfer Line\"\n Job: Record Job;\n JobTask: Record \"Job Task\";\n NonDeductibleVAT: Codeunit \"Non-Deductible VAT\";\n+ NonDeductibleVATAmountJobCurrency: Decimal;\n begin\n OnBeforeFromGenJnlLineToJnlLine(JobJnlLine, GenJnlLine);\n \n@@ -498,18 +499,20 @@ codeunit 1004 \"Job Transfer Line\"\n JobJnlLine.\"Total Cost (LCY)\" := GenJnlLine.\"Job Total Cost (LCY)\";\n JobJnlLine.\"Total Cost\" := GenJnlLine.\"Job Total Cost\";\n \n- if NonDeductibleVAT.UseNonDeductibleVATAmountForJobCost() then\n+ if NonDeductibleVAT.UseNonDeductibleVATAmountForJobCost() then begin\n+ NonDeductibleVATAmountJobCurrency := GetNonDeductibleVATAmountInJobCurrency(GenJnlLine);\n if JobJnlLine.\"Unit Cost\" > 0 then begin\n JobJnlLine.\"Unit Cost (LCY)\" += Abs(Round(GenJnlLine.\"Non-Deductible VAT Amount LCY\" / JobJnlLine.Quantity));\n- JobJnlLine.\"Unit Cost\" += Abs(Round(GenJnlLine.\"Non-Deductible VAT Amount\" / JobJnlLine.Quantity));\n+ JobJnlLine.\"Unit Cost\" += Abs(Round(NonDeductibleVATAmountJobCurrency / JobJnlLine.Quantity));\n JobJnlLine.\"Total Cost (LCY)\" += Abs(GenJnlLine.\"Non-Deductible VAT Amount LCY\");\n- JobJnlLine.\"Total Cost\" += Abs(GenJnlLine.\"Non-Deductible VAT Amount\");\n+ JobJnlLine.\"Total Cost\" += Abs(NonDeductibleVATAmountJobCurrency);\n end else begin\n JobJnlLine.\"Unit Cost (LCY)\" += Round(GenJnlLine.\"Non-Deductible VAT Amount LCY\" / JobJnlLine.Quantity);\n- JobJnlLine.\"Unit Cost\" += Round(GenJnlLine.\"Non-Deductible VAT Amount\" / JobJnlLine.Quantity);\n+ JobJnlLine.\"Unit Cost\" += Round(NonDeductibleVATAmountJobCurrency / JobJnlLine.Quantity);\n JobJnlLine.\"Total Cost (LCY)\" += GenJnlLine.\"Non-Deductible VAT Amount LCY\";\n- JobJnlLine.\"Total Cost\" += GenJnlLine.\"Non-Deductible VAT Amount\";\n+ JobJnlLine.\"Total Cost\" += NonDeductibleVATAmountJobCurrency;\n end;\n+ end;\n \n JobJnlLine.\"Unit Price (LCY)\" := GenJnlLine.\"Job Unit Price (LCY)\";\n JobJnlLine.\"Unit Price\" := GenJnlLine.\"Job Unit Price\";\n@@ -528,6 +531,22 @@ codeunit 1004 \"Job Transfer Line\"\n OnAfterFromGenJnlLineToJnlLine(JobJnlLine, GenJnlLine);\n end;\n \n+ local procedure GetNonDeductibleVATAmountInJobCurrency(GenJnlLine: Record \"Gen. Journal Line\"): Decimal\n+ begin\n+ if GenJnlLine.\"Currency Code\" = GenJnlLine.\"Job Currency Code\" then\n+ exit(GenJnlLine.\"Non-Deductible VAT Amount\");\n+\n+ if GenJnlLine.\"Job Currency Code\" = '' then\n+ exit(GenJnlLine.\"Non-Deductible VAT Amount LCY\");\n+\n+ exit(\n+ CurrencyExchRate.ExchangeAmtLCYToFCY(\n+ GenJnlLine.\"Posting Date\",\n+ GenJnlLine.\"Job Currency Code\",\n+ GenJnlLine.\"Non-Deductible VAT Amount LCY\",\n+ GenJnlLine.\"Job Currency Factor\"));\n+ end;\n+\n procedure FromJobLedgEntryToPlanningLine(JobLedgEntry: Record \"Job Ledger Entry\"; var JobPlanningLine: Record \"Job Planning Line\")\n var\n PriceType: Enum \"Price Type\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134284'\nCodeunit 134284 Non Ded. VAT Misc.\n Testfunction JobJnlLineWithNonDeductNormalVATInFCYFromGenJnlLine Failure (4.053 seconds)\n Error:\n Assert.AreEqual failed. Expected:<10.76> (Decimal). Actual:<10.31> (Decimal). Unit Cost (LCY) with Non-Deductible VAT amount is not correct in Job Journal Line.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"Non Ded. VAT Misc.\"(CodeUnit 134284).JobJnlLineWithNonDeductNormalVATInFCYFromGenJnlLine line 32 - Tests-VAT by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-181900", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 343.3, "tool_calls": 28, "total_tokens": 440700, "TurnCount": 77}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":2,\"grep\":8,\"report_intent\":3,\"task\":3,\"update_todo\":3,\"view\":8}", "output": "diff --git a/App/Layers/W1/BaseApp/OtherCapabilities/Approvals/ApprovalsMgmt.Codeunit.al b/App/Layers/W1/BaseApp/OtherCapabilities/Approvals/ApprovalsMgmt.Codeunit.al\nindex 266d61e5..4b65fab2 100644\n--- a/App/Layers/W1/BaseApp/OtherCapabilities/Approvals/ApprovalsMgmt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/OtherCapabilities/Approvals/ApprovalsMgmt.Codeunit.al\n@@ -2504,6 +2504,8 @@ codeunit 1535 \"Approvals Mgmt.\"\n if ApprovalStatusName = 'Open' then\n exit(CopyStr(PendingApprovalLbl, 1, 20));\n if ApprovalStatusName = 'Approved' then begin\n+ if HasOpenOrPendingApprovalEntries(GenJournalBatch.RecordId) then\n+ exit(CopyStr(PendingApprovalLbl, 1, 20));\n RestrictedRecord.SetRange(Details, RestrictBatchUsageDetailsLbl);\n if not RestrictedRecord.IsEmpty() then begin\n RestrictedRecord.Reset();\n@@ -2533,6 +2535,8 @@ codeunit 1535 \"Approvals Mgmt.\"\n if ApprovalStatusName = 'Open' then\n exit(CopyStr(PendingApprovalLbl, 1, 20));\n if ApprovalStatusName = 'Approved' then begin\n+ if HasOpenOrPendingApprovalEntries(GenJournalLine.RecordId) then\n+ exit(CopyStr(PendingApprovalLbl, 1, 20));\n RestrictedRecord.SetRange(\"Record ID\", GenJournalLine.RecordId);\n if not RestrictedRecord.IsEmpty() then\n exit(CopyStr(ImposedRestrictionLbl, 1, 20));\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134321'\nCodeunit 134321 General Journal Batch Approval\n Testfunction ShowImposedRestrictionBatchStatusForWorkflowUserGroupIfFirstApprovalEntryIsApproved Failure (6.7 seconds)\n Error:\n Assert.AreEqual failed. Expected: (Text). Actual: (Text). Imposed restriction is not shown.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"General Journal Batch Approval\"(CodeUnit 134321).ShowImposedRestrictionBatchStatusForWorkflowUserGroupIfFirstApprovalEntryIsApproved line 30 - Tests-General Journal by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"InstanceID": "microsoftInternal__NAV-218856", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 257.432, "tool_calls": 18, "total_tokens": 246200, "TurnCount": 73}, "Project": "BaseApp", "ToolUsage": "{\"edit\":4,\"report_intent\":2,\"task\":4,\"update_todo\":3,\"view\":5}", "output": "diff --git a/App/Layers/W1/BaseApp/Service/Contract/ServiceContractHeader.Table.al b/App/Layers/W1/BaseApp/Service/Contract/ServiceContractHeader.Table.al\nindex 4f315c8f..e0b6688e 100644\n--- a/App/Layers/W1/BaseApp/Service/Contract/ServiceContractHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Service/Contract/ServiceContractHeader.Table.al\n@@ -2241,6 +2241,7 @@ table 5965 \"Service Contract Header\"\n Cust: Record Customer;\n Cont: Record Contact;\n IsHandled: Boolean;\n+ ContactBusinessRelationFound: Boolean;\n begin\n IsHandled := false;\n OnBeforeUpdateCust(Rec, ContactNo, IsHandled);\n@@ -2265,7 +2266,13 @@ table 5965 \"Service Contract Header\"\n exit;\n end;\n \n- if ContBusinessRelation.FindByContact(ContBusinessRelation.\"Link to Table\"::Customer, Cont.\"Company No.\") then begin\n+ ContactBusinessRelationFound := false;\n+ if Cont.Type = Cont.Type::Person then\n+ ContactBusinessRelationFound := ContBusinessRelation.FindByContact(ContBusinessRelation.\"Link to Table\"::Customer, Cont.\"No.\");\n+ if not ContactBusinessRelationFound then\n+ ContactBusinessRelationFound := ContBusinessRelation.FindByContact(ContBusinessRelation.\"Link to Table\"::Customer, Cont.\"Company No.\");\n+\n+ if ContactBusinessRelationFound then begin\n if (\"Customer No.\" <> '') and\n (\"Customer No.\" <> ContBusinessRelation.\"No.\")\n then\n@@ -2289,6 +2296,7 @@ table 5965 \"Service Contract Header\"\n ContBusinessRelation: Record \"Contact Business Relation\";\n Cust: Record Customer;\n Cont: Record Contact;\n+ ContactBusinessRelationFound: Boolean;\n begin\n if Cont.Get(ContactNo) then begin\n \"Bill-to Contact No.\" := Cont.\"No.\";\n@@ -2305,7 +2313,13 @@ table 5965 \"Service Contract Header\"\n end;\n \n OnUpdateBillToCustOnBeforeContBusinessRelationFindByContact(Rec, Cust, Cont);\n- if ContBusinessRelation.FindByContact(ContBusinessRelation.\"Link to Table\"::Customer, Cont.\"Company No.\") then begin\n+ ContactBusinessRelationFound := false;\n+ if Cont.Type = Cont.Type::Person then\n+ ContactBusinessRelationFound := ContBusinessRelation.FindByContact(ContBusinessRelation.\"Link to Table\"::Customer, Cont.\"No.\");\n+ if not ContactBusinessRelationFound then\n+ ContactBusinessRelationFound := ContBusinessRelation.FindByContact(ContBusinessRelation.\"Link to Table\"::Customer, Cont.\"Company No.\");\n+\n+ if ContactBusinessRelationFound then begin\n if \"Bill-to Customer No.\" = '' then begin\n SkipBillToContact := true;\n Validate(\"Bill-to Customer No.\", ContBusinessRelation.\"No.\");\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136102'\nCodeunit 136102 Service Contracts\n Testfunction ChangeCustomerOfTypePeronInServiceContract Failure (7.03 seconds)\n Error:\n Contact CT000024 CT000024 is related to a different company than customer C00010.\n Call Stack:\n \"Service Contract Header\"(Table 5965).\"Bill-to Contact No. - OnValidate\"(Trigger) line 21 - Base Application by Microsoft version 27.0.0.0\n \"Service Contract Header\"(Table 5965).UpdateCust line 53 - Base Application by Microsoft version 27.0.0.0\n ServContractManagement(CodeUnit 5940).ChangeCustNoOnServContract line 46 - Base Application by Microsoft version 27.0.0.0\n \"Service Contracts\"(CodeUnit 136102).ChangeCustomerOfTypePeronInServiceContract line 34 - Tests-SCM-Service by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-176194", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 483.269, "tool_calls": 46, "total_tokens": 1710200, "TurnCount": 103}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":22,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":17}", "output": "diff --git a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\nindex 6dfc7efe..49cc6294 100644\n--- a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n@@ -3195,6 +3195,11 @@ codeunit 6620 \"Copy Document Mgt.\"\n if TempSalesLineBuf.Type = TempSalesLineBuf.Type::\"Charge (Item)\" then begin\n FromSalesLine.TransferFields(FromSalesInvLine);\n FromSalesLine.\"Document Type\" := FromSalesLine.\"Document Type\"::Invoice;\n+ if ToSalesLine.\"Qty. to Invoice\" = 0 then begin\n+ ToSalesLine.\"Qty. to Invoice\" := ToSalesLine.Quantity;\n+ ToSalesLine.\"Qty. to Invoice (Base)\" := ToSalesLine.\"Quantity (Base)\";\n+ ToSalesLine.Modify();\n+ end;\n CopyFromSalesLineItemChargeAssign(FromSalesLine, ToSalesLine, FromSalesHeader, ItemChargeAssgntNextLineNo);\n end;\n \n@@ -3357,6 +3362,11 @@ codeunit 6620 \"Copy Document Mgt.\"\n if FromSalesLineBuf.Type = FromSalesLineBuf.Type::\"Charge (Item)\" then begin\n FromSalesLine.TransferFields(FromSalesCrMemoLine);\n FromSalesLine.\"Document Type\" := FromSalesLine.\"Document Type\"::\"Credit Memo\";\n+ if ToSalesLine.\"Qty. to Invoice\" = 0 then begin\n+ ToSalesLine.\"Qty. to Invoice\" := ToSalesLine.Quantity;\n+ ToSalesLine.\"Qty. to Invoice (Base)\" := ToSalesLine.\"Quantity (Base)\";\n+ ToSalesLine.Modify();\n+ end;\n CopyFromSalesLineItemChargeAssign(FromSalesLine, ToSalesLine, FromSalesHeader, ItemChargeAssgntNextLineNo);\n end;\n // copy item tracking\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134329'\nCodeunit 134329 ERM Purchase Return Order\n Testfunction GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToReceiveIsBlankInPurchPayablesSetup Failure (10.693 seconds)\n Error:\n Qty. to Invoice must have a value in Purchase Line: Document Type=Return Order, Document No.=1001, Line No.=20000. It cannot be zero or empty.\n Call Stack:\n \"Item Charge Assignment (Purch)\"(Table 5805).\"Qty. to Assign - OnValidate\"(Trigger) line 4 - Base Application by Microsoft\n \"Item Charge Assgnt. (Purch.)\"(CodeUnit 5805).InsertItemChargeAssignmentWithValuesTo line 20 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyFromPurchLineItemChargeAssign line 47 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyPurchInvLinesToDoc line 144 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyPurchaseLinesToDoc line 15 - Base Application by Microsoft\n \"Posted Purchase Document Lines\"(Page 5855).CopyLineToDoc line 23 - Base Application by Microsoft\n \"Purchase Header\"(Table 38).GetPstdDocLinesToReverse line 9 - Base Application by Microsoft\n \"Purchase Return Order\"(Page 6640).\"GetPostedDocumentLinesToReverse - OnAction\"(Trigger) line 2 - Base Application by Microsoft\nSetting test codeunit range '134387'\nCodeunit 134387 ERM Sales Documents III\n Testfunction GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToShipIsBlankInSalesReceiSetup Success (4.11 seconds)\n\u001b[32m[15:51:51] Tests passed for Codeunit 134387\u001b[0m"} +{"InstanceID": "microsoftInternal__NAV-216057", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 1678.59, "tool_calls": 80, "total_tokens": 5544600, "TurnCount": 288}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":1,\"grep\":31,\"powershell\":1,\"report_intent\":2,\"task\":8,\"update_todo\":3,\"view\":33}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al\nindex 052f4eb6..df69a2af 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al\n@@ -626,8 +626,9 @@ table 99000853 \"Inventory Profile\"\n if ReservationEntry.FindSet() then\n repeat\n InsertTracking := not\n- ((ReservationEntry.\"Reservation Status\" = ReservationEntry.\"Reservation Status\"::Reservation) and\n- (ReservationEntry.Binding = ReservationEntry.Binding::\" \"));\n+ (((ReservationEntry.\"Reservation Status\" = ReservationEntry.\"Reservation Status\"::Reservation) and\n+ (ReservationEntry.Binding = ReservationEntry.Binding::\" \")) or\n+ (ReservationEntry.\"Reservation Status\" = ReservationEntry.\"Reservation Status\"::Prospect));\n if InsertTracking and ReservationEntry.TrackingExists() and\n (ReservationEntry.\"Source Type\" <> Database::\"Item Ledger Entry\")\n then begin\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137045'\nCodeunit 137045 SCM Bugfixes\n Testfunction NoDuplicateSurplusReservationEntriesOnRecalculateRequisitionWorksheet Failure (13.603 seconds)\n Error:\n Assert.RecordCount failed. Expected number of Reservation Entry entries: 2. Actual: 3. Filters: Source Type: 39, Source ID: 106009. Records: 2, Yes, GL00000000, , 50, Prospect, , 06/03/26, 0, 39, 1, 106009, , 0, 10000, 0, 06/03/26, , , ADMIN, , 1, 50, , No, Unlimited, 0, , , 50, 50, 0, , , No, GL00000003, , 0, No, , Lot No., No, , , 0, ; 3, Yes, GL00000000, , 100, Tracking, , 02/10/26, 0, 39, 1, 106009, , 0, 10000, 0, 06/03/26, 06/03/26, , ADMIN, , 1, 100, , No, Unlimited, 0, , , 100, 100, 0, , , No, GL00000003, , 0, No, , Lot No., No, , , 0, ; 4, Yes, GL00000000, , 50, Surplus, , 02/10/26, 0, 39, 1, 106009, , 0, 10000, 0, 06/03/26, , , ADMIN, , 1, 50, , Yes, Unlimited, 0, , , 0, 0, 0, , , No, , , 0, No, , None, No, , , 0, ; \n Call Stack:\n Assert(CodeUnit 130000).RecordCount line 18 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"SCM Bugfixes\"(CodeUnit 137045).AssertReservationEntryCount line 6 - Tests-SCM by Microsoft version 27.0.0.0\n \"SCM Bugfixes\"(CodeUnit 137045).NoDuplicateSurplusReservationEntriesOnRecalculateRequisitionWorksheet line 51 - Tests-SCM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-210200", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 405.905, "tool_calls": 12, "total_tokens": 132400, "TurnCount": 83}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":1,\"report_intent\":2,\"task\":3,\"update_todo\":2,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Service/Document/StandardServiceCode.Table.al b/App/Layers/W1/BaseApp/Service/Document/StandardServiceCode.Table.al\nindex 986aeff9..4e8aa9c8 100644\n--- a/App/Layers/W1/BaseApp/Service/Document/StandardServiceCode.Table.al\n+++ b/App/Layers/W1/BaseApp/Service/Document/StandardServiceCode.Table.al\n@@ -191,6 +191,10 @@ table 5996 \"Standard Service Code\"\n ServLine.\"Line No.\" := ServLine.GetLineNo();\n OnBeforeInsertServLine(ServLine);\n ServLine.Insert(true);\n+ if (ServLine.Reserve = ServLine.Reserve::Always) and\n+ (ServLine.\"Outstanding Qty. (Base)\" <> 0)\n+ then\n+ ServLine.AutoReserve(false);\n InsertExtendedText(ServLine);\n end;\n until StdServLine.Next() = 0;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136119'\nCodeunit 136119 Service Standard Codes\n Testfunction ReservationEntryMustBeCreatedWhenReserveIsAlwaysInServiceLine Failure (7.786 seconds)\n Error:\n Assert.AreEqual failed. Expected:<5> (Integer). Actual:<0> (Decimal). Reserved Qty. (Base) must be equal to 5 in Service Line.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 26.0.0.0\n \"Service Standard Codes\"(CodeUnit 136119).ReservationEntryMustBeCreatedWhenReserveIsAlwaysInServiceLine line 61 - Tests-SCM-Service by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-220036", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 198.607, "tool_calls": 22, "total_tokens": 436400, "TurnCount": 50}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":8,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":8}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al b/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\nindex 9fdc21c5..f8028c2b 100644\n--- a/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\n@@ -2302,7 +2302,11 @@ table 18 Customer\n begin\n Clear(PrimaryContact);\n if Customer.Get(CustomerNo) then\n- if PrimaryContact.Get(Customer.\"Primary Contact No.\") then;\n+ if not PrimaryContact.Get(Customer.\"Primary Contact No.\") then begin\n+ PrimaryContact.\"E-Mail\" := Customer.\"E-Mail\";\n+ PrimaryContact.\"Phone No.\" := Customer.\"Phone No.\";\n+ PrimaryContact.\"Mobile Phone No.\" := Customer.\"Mobile Phone No.\";\n+ end;\n end;\n \n local procedure GetCustomerPriceGroupPriceCalcMethod(): Enum \"Price Calculation Method\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134905'\nCodeunit 134905 ERM Issued Reminder Addnl Fee\n Testfunction VerifyEmailOnReminderPageWhenCustomerHasNoContacts Success (18.277 seconds)\n\u001b[32m[13:16:23] Tests passed for Codeunit 134905\u001b[0m\nSetting test codeunit range '134825'\nCodeunit 134825 UT Customer Table\n Testfunction GetPrimaryConactCustomerWithoutContact Failure (2.09 seconds)\n Error:\n Assert.IsTrue failed. Contact No. should not be empty\n Call Stack:\n Assert(CodeUnit 130000).IsTrue line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"UT Customer Table\"(CodeUnit 134825).GetPrimaryConactCustomerWithoutContact line 15 - Tests-Misc by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-220452", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 378.301, "tool_calls": 27, "total_tokens": 468800, "TurnCount": 45}, "Project": "Shopify", "ToolUsage": "{\"edit\":2,\"glob\":2,\"grep\":7,\"report_intent\":3,\"task\":2,\"update_todo\":3,\"view\":8}", "output": "diff --git a/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al b/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al\nindex 62d92a55..61ebd07c 100644\n--- a/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al\n+++ b/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al\n@@ -213,6 +213,9 @@ report 30118 \"Shpfy Suggest Payments\"\n SalesCreditMemoHeader: Record \"Sales Cr.Memo Header\";\n CustLedgerEntry: Record \"Cust. Ledger Entry\";\n RefundHeader: Record \"Shpfy Refund Header\";\n+ SalesShipmentHeader: Record \"Sales Shipment Header\";\n+ SalesInvoiceLine: Record \"Sales Invoice Line\";\n+ ProcessedInvoices: List of [Code[20]];\n AmountToApply: Decimal;\n Applied: Boolean;\n begin\n@@ -242,6 +245,38 @@ report 30118 \"Shpfy Suggest Payments\"\n if Applied and (AmountToApply > 0) then\n CreateSuggestPaymentGLAccount(AmountToApply, true);\n end;\n+\n+ if not Applied then begin\n+ SalesShipmentHeader.SetRange(\"Shpfy Order Id\", OrderTransaction.\"Shopify Order Id\");\n+ if SalesShipmentHeader.FindSet() then\n+ repeat\n+ SalesInvoiceLine.SetRange(\"Shipment No.\", SalesShipmentHeader.\"No.\");\n+ if SalesInvoiceLine.FindSet() then\n+ repeat\n+ if not ProcessedInvoices.Contains(SalesInvoiceLine.\"Document No.\") then begin\n+ ProcessedInvoices.Add(SalesInvoiceLine.\"Document No.\");\n+ SalesInvoiceHeader.Reset();\n+ if SalesInvoiceHeader.Get(SalesInvoiceLine.\"Document No.\") then\n+ if not SalesInvoiceHeader.Closed then begin\n+ CustLedgerEntry.SetAutoCalcFields(\"Remaining Amount\");\n+ CustLedgerEntry.SetRange(\"Open\", true);\n+ CustLedgerEntry.SetRange(\"Applies-to ID\", '');\n+ CustLedgerEntry.SetRange(\"Document Type\", CustLedgerEntry.\"Document Type\"::Invoice);\n+ CustLedgerEntry.SetRange(\"Document No.\", SalesInvoiceHeader.\"No.\");\n+ if CustLedgerEntry.FindSet() then begin\n+ Applied := true;\n+ repeat\n+ CreateSuggestPaymentDocument(CustLedgerEntry, AmountToApply, true);\n+ until CustLedgerEntry.Next() = 0;\n+ end;\n+ end;\n+ end;\n+ until SalesInvoiceLine.Next() = 0;\n+ until SalesShipmentHeader.Next() = 0;\n+\n+ if Applied and (AmountToApply > 0) then\n+ CreateSuggestPaymentGLAccount(AmountToApply, true);\n+ end;\n end;\n OrderTransaction.Type::Refund:\n begin\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139648'\nCodeunit 139648 Shpfy Suggest Payment Test\n Testfunction UnitTestSuggestShopifyPaymentsDocumentLink Failure (18.367 seconds)\n Error:\n The Shopify Suggest Payment table is empty.\n Call Stack:\n \"Shpfy Suggest Payment Test\"(CodeUnit 139648).UnitTestSuggestShopifyPaymentsDocumentLink line 47 - Shopify Connector Test by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"InstanceID": "microsoftInternal__NAV-204450", "scores": {"BuildRate": 1, "ResolutionRate": 0}, "metrics": {"cached": null, "duration": 339.915, "tool_calls": 29, "total_tokens": 517100, "TurnCount": 94}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":7,\"powershell\":1,\"report_intent\":3,\"task\":3,\"update_todo\":3,\"view\":10}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\nindex 6bb15d7d..e070ad49 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n@@ -602,6 +602,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n \n TotalPurchaseLine.\"Non-Deductible VAT Base\" += PurchaseLine.\"Non-Deductible VAT Base\";\n TotalPurchaseLine.\"Non-Deductible VAT Amount\" += PurchaseLine.\"Non-Deductible VAT Amount\";\n+ TotalPurchaseLine.\"Non-Deductible VAT Diff.\" += PurchaseLine.\"Non-Deductible VAT Diff.\";\n end;\n \n procedure Increment(var TotalInvoicePostingBuffer: Record \"Invoice Posting Buffer\"; InvoicePostingBuffer: Record \"Invoice Posting Buffer\")\n@@ -697,6 +698,12 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n PurchaseHeader.GetUseDate(), PurchaseHeader.\"Currency Code\",\n TotalPurchaseLine.\"Non-Deductible VAT Amount\", PurchaseHeader.\"Currency Factor\")) -\n TotalPurchaseLineLCY.\"Non-Deductible VAT Amount\";\n+ PurchaseLine.\"Non-Deductible VAT Diff.\" :=\n+ Round(\n+ CurrExchRate.ExchangeAmtFCYToLCY(\n+ PurchaseHeader.GetUseDate(), PurchaseHeader.\"Currency Code\",\n+ TotalPurchaseLine.\"Non-Deductible VAT Diff.\", PurchaseHeader.\"Currency Factor\")) -\n+ TotalPurchaseLineLCY.\"Non-Deductible VAT Diff.\";\n end;\n \n procedure ClearNonDeductibleVAT(var PurchaseLine: Record \"Purchase Line\")\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134287'\nCodeunit 134287 Non-Deductible VAT Statistics\n Testfunction PurchaseInvoiceInCurrencyIsPostedWhenChangeVATAmountOnStatisticIfNDVATPctIs100 Failure (14.703 seconds)\n Error:\n The transaction cannot be completed because it will cause inconsistencies in the G/L Entry table. Check where and how the CONSISTENT function is used in the transaction to find the reason for the error.\\\\Contact your system administrator.\\\\Tables can be marked as inconsistent during comprehensive tasks, such as posting. This prevents data from being updated incorrectly.\n Call Stack:\n \"Purch.-Post\"(CodeUnit 90).FinalizePosting line 79 - Base Application by Microsoft\n \"Purch.-Post\"(CodeUnit 90).RunWithCheck line 142 - Base Application by Microsoft\n \"Purch.-Post\"(CodeUnit 90).OnRun(Trigger) line 2 - Base Application by Microsoft\n \"Library - Purchase\"(CodeUnit 130512).PostPurchaseDocument line 56 - Tests-TestLibraries by Microsoft\n \"Non-Deductible VAT Statistics\"(CodeUnit 134287).PurchaseInvoiceInCurrencyIsPostedWhenChangeVATAmountOnStatisticIfNDVATPctIs100 line 46 - Tests-VAT by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"InstanceID": "microsoftInternal__NAV-227153", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 179.578, "tool_calls": 22, "total_tokens": 358000, "TurnCount": 33}, "Project": "BaseApp", "ToolUsage": "{\"edit\":6,\"grep\":1,\"powershell\":1,\"report_intent\":2,\"task\":3,\"update_todo\":2,\"view\":7}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\nindex e033f91e..e370d00d 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\n@@ -472,130 +472,82 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n \n local procedure CalcCustAccAmount(PostingGr: Code[20]): Decimal\n var\n- Cust: Record Customer;\n DtldCustLedgEntry: Record \"Detailed Cust. Ledg. Entry\";\n CustAccAmount: Decimal;\n begin\n- Cust.SetCurrentKey(\"Customer Posting Group\");\n- Cust.SetRange(\"Customer Posting Group\", PostingGr);\n-\n- if Cust.Find('-') then\n- repeat\n- DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\");\n- DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n- DtldCustLedgEntry.CalcSums(\"Amount (LCY)\");\n- CustAccAmount := CustAccAmount + DtldCustLedgEntry.\"Amount (LCY)\";\n- until Cust.Next() = 0;\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n+ DtldCustLedgEntry.CalcSums(\"Amount (LCY)\");\n+ CustAccAmount := DtldCustLedgEntry.\"Amount (LCY)\";\n \n exit(CustAccAmount);\n end;\n \n local procedure CalcCustCreditAmount(PostingGr: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n var\n- Cust: Record Customer;\n DtldCustLedgEntry: Record \"Detailed Cust. Ledg. Entry\";\n CustCreditAmount: Decimal;\n begin\n- Cust.SetCurrentKey(\"Customer Posting Group\");\n- Cust.SetRange(\"Customer Posting Group\", PostingGr);\n-\n- if Cust.Find('-') then\n- repeat\n- DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\", \"Entry Type\");\n- DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n- DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n- DtldCustLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n- CustCreditAmount := CustCreditAmount + DtldCustLedgEntry.\"Credit Amount (LCY)\";\n- until Cust.Next() = 0;\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n+ DtldCustLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n+ CustCreditAmount := DtldCustLedgEntry.\"Credit Amount (LCY)\";\n \n exit(CustCreditAmount);\n end;\n \n local procedure CalcCustDebitAmount(PostingGr: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n var\n- Cust: Record Customer;\n DtldCustLedgEntry: Record \"Detailed Cust. Ledg. Entry\";\n CustDebitAmount: Decimal;\n begin\n- Cust.SetCurrentKey(\"Customer Posting Group\");\n- Cust.SetRange(\"Customer Posting Group\", PostingGr);\n-\n- if Cust.Find('-') then\n- repeat\n- DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\", \"Entry Type\");\n- DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n- DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n- DtldCustLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n- CustDebitAmount := CustDebitAmount + DtldCustLedgEntry.\"Debit Amount (LCY)\";\n- until Cust.Next() = 0;\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n+ DtldCustLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n+ CustDebitAmount := DtldCustLedgEntry.\"Debit Amount (LCY)\";\n \n exit(-CustDebitAmount);\n end;\n \n local procedure CalcVendAccAmount(PostingGr: Code[20]): Decimal\n var\n- Vend: Record Vendor;\n DtldVendLedgEntry: Record \"Detailed Vendor Ledg. Entry\";\n VendAccAmount: Decimal;\n begin\n- Vend.SetCurrentKey(\"Vendor Posting Group\");\n- Vend.SetRange(\"Vendor Posting Group\", PostingGr);\n-\n- if Vend.Find('-') then\n- repeat\n- DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\");\n- DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n- DtldVendLedgEntry.CalcSums(\"Amount (LCY)\");\n- VendAccAmount := VendAccAmount + DtldVendLedgEntry.\"Amount (LCY)\";\n- until Vend.Next() = 0;\n+ DtldVendLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n+ DtldVendLedgEntry.CalcSums(\"Amount (LCY)\");\n+ VendAccAmount := DtldVendLedgEntry.\"Amount (LCY)\";\n \n exit(VendAccAmount);\n end;\n \n local procedure CalcVendCreditAmount(PostingGr: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n var\n- Vend: Record Vendor;\n DtldVendLedgEntry: Record \"Detailed Vendor Ledg. Entry\";\n VendCreditAmount: Decimal;\n begin\n- Vend.SetCurrentKey(\"Vendor Posting Group\");\n- Vend.SetRange(\"Vendor Posting Group\", PostingGr);\n-\n- if Vend.Find('-') then\n- repeat\n- DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\", \"Entry Type\");\n- DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n- DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n- DtldVendLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n- VendCreditAmount := VendCreditAmount + DtldVendLedgEntry.\"Credit Amount (LCY)\";\n- until Vend.Next() = 0;\n+ DtldVendLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n+ DtldVendLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n+ VendCreditAmount := DtldVendLedgEntry.\"Credit Amount (LCY)\";\n \n exit(VendCreditAmount);\n end;\n \n local procedure CalcVendDebitAmount(PostingGr: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n var\n- Vend: Record Vendor;\n DtldVendLedgEntry: Record \"Detailed Vendor Ledg. Entry\";\n VendDebitAmount: Decimal;\n begin\n- Vend.SetCurrentKey(\"Vendor Posting Group\");\n- Vend.SetRange(\"Vendor Posting Group\", PostingGr);\n-\n- if Vend.Find('-') then\n- repeat\n- DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\", \"Entry Type\");\n- DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n- DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n- DtldVendLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n- VendDebitAmount := VendDebitAmount + DtldVendLedgEntry.\"Debit Amount (LCY)\";\n- until Vend.Next() = 0;\n+ DtldVendLedgEntry.SetRange(\"Posting Group\", PostingGr);\n+ DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n+ DtldVendLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n+ VendDebitAmount := DtldVendLedgEntry.\"Debit Amount (LCY)\";\n \n exit(-VendDebitAmount);\n end;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-177493", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 402.56600000000003, "tool_calls": 25, "total_tokens": 554200, "TurnCount": 102}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":6,\"glob\":1,\"grep\":2,\"powershell\":1,\"report_intent\":2,\"task\":3,\"update_todo\":4,\"view\":5}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\nindex bb47904d..1ba5d671 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n@@ -58,6 +58,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if Reserve = Reserve::Never then\n+ CurrReport.Skip();\n+\n if not CheckIfSalesLineMeetsReservedFromStockSetting(Abs(\"Outstanding Qty. (Base)\"), ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -107,6 +110,9 @@ report 302 \"Get Demand To Reserve\"\n var\n Item: Record Item;\n begin\n+ if Item.Get(\"Item No.\") and (Item.Reserve = Item.Reserve::Never) then\n+ CurrReport.Skip();\n+\n if not CheckIfTransferLineMeetsReservedFromStockSetting(\"Outstanding Qty. (Base)\", ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -158,6 +164,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if Reserve = Reserve::Never then\n+ CurrReport.Skip();\n+\n if not CheckIfServiceLineMeetsReservedFromStockSetting(Abs(\"Outstanding Qty. (Base)\"), ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -208,6 +217,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if Reserve = Reserve::Never then\n+ CurrReport.Skip();\n+\n if not CheckIfJobPlngLineMeetsReservedFromStockSetting(\"Remaining Qty. (Base)\", ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -259,6 +271,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if Reserve = Reserve::Never then\n+ CurrReport.Skip();\n+\n if not CheckIfAssemblyLineMeetsReservedFromStockSetting(\"Remaining Quantity (Base)\", ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -309,6 +324,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if Item.Get(\"Item No.\") and (Item.Reserve = Item.Reserve::Never) then\n+ CurrReport.Skip();\n+\n if not CheckIfProdOrderCompMeetsReservedFromStockSetting(\"Remaining Qty. (Base)\", ReservedFromStock)\n then\n CurrReport.Skip();\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-217974", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 637.374, "tool_calls": 31, "total_tokens": 720600, "TurnCount": 152}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":1,\"grep\":12,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":10}", "output": "diff --git a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\nindex 780de254..7e6d719a 100644\n--- a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n@@ -1752,11 +1752,14 @@ codeunit 6620 \"Copy Document Mgt.\"\n SalesHeader.Status := SalesHeader.Status::Open;\n if SalesHeader.\"Document Type\" <> SalesHeader.\"Document Type\"::Order then\n SalesHeader.\"Prepayment %\" := 0;\n- if FromDocType = \"Sales Document Type From\"::\"Return Order\" then begin\n- SalesHeader.CopySellToAddressToShipToAddress();\n- OnUpdateSalesHeaderWhenCopyFromSalesHeaderOnBeforeValidateShipToCode(SalesHeader);\n- SalesHeader.Validate(SalesHeader.\"Ship-to Code\");\n- end;\n+ if SalesHeader.IsCreditDocType() then\n+ SalesHeader.UpdateShipToAddress()\n+ else\n+ if FromDocType = \"Sales Document Type From\"::\"Return Order\" then begin\n+ SalesHeader.CopySellToAddressToShipToAddress();\n+ OnUpdateSalesHeaderWhenCopyFromSalesHeaderOnBeforeValidateShipToCode(SalesHeader);\n+ SalesHeader.Validate(SalesHeader.\"Ship-to Code\");\n+ end;\n if FromDocType in [\"Sales Document Type From\"::Quote, \"Sales Document Type From\"::\"Blanket Order\"] then\n if OriginalSalesHeader.\"Posting Date\" = 0D then\n SalesHeader.\"Posting Date\" := WorkDate()\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-174794", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 174.655, "tool_calls": 23, "total_tokens": 401000, "TurnCount": 31}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":1,\"grep\":7,\"report_intent\":2,\"task\":1,\"update_todo\":4,\"view\":7}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\nindex b941d50c..b0359488 100644\n--- a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n@@ -285,6 +285,7 @@ codeunit 395 \"FinChrgMemo-Issue\"\n end;\n TempGenJnlLine.Validate(\"Currency Code\", FinChrgMemoHeader.\"Currency Code\");\n if TempGenJnlLine.\"Account Type\" = TempGenJnlLine.\"Account Type\"::Customer then begin\n+ TempGenJnlLine.\"Posting Group\" := FinChrgMemoHeader.\"Customer Posting Group\";\n TempGenJnlLine.Validate(Amount, TotalAmount);\n TempGenJnlLine.Validate(\"Amount (LCY)\", TotalAmountLCY);\n TempGenJnlLine.\"Due Date\" := FinChrgMemoHeader.\"Due Date\";\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-223202", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 258.094, "tool_calls": 22, "total_tokens": 675600, "TurnCount": 20}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":2,\"glob\":2,\"grep\":3,\"powershell\":1,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":7}", "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al\nindex 84769ae0..9e02f307 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al\n@@ -257,7 +257,9 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ExpSubDirCostRtng: Decimal;\n ExpCapOvhdCostRtng: Decimal;\n ExpOvhdCost: Decimal;\n+ PrevExpMatCost: Decimal;\n begin\n+ PrevExpMatCost := ExpMatCost;\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\");\n ProdOrderComp.SetRange(Status, ProdOrderLine.Status);\n ProdOrderComp.SetRange(\"Prod. Order No.\", ProdOrderLine.\"Prod. Order No.\");\n@@ -304,7 +306,7 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ExpCapDirCost := ExpCapDirCost + Round(ExpCapDirCostRtng * ShareOfTotalCapCost);\n ExpSubDirCost := ExpSubDirCost + Round(ExpSubDirCostRtng * ShareOfTotalCapCost);\n ExpCapOvhdCost := ExpCapOvhdCost + Round(ExpCapOvhdCostRtng * ShareOfTotalCapCost);\n- ExpMfgDirCost := ExpMatCost + ExpCapDirCost + ExpSubDirCost + ExpCapOvhdCost;\n+ ExpMfgDirCost := (ExpMatCost - PrevExpMatCost) + Round(ExpCapDirCostRtng * ShareOfTotalCapCost) + Round(ExpSubDirCostRtng * ShareOfTotalCapCost) + Round(ExpCapOvhdCostRtng * ShareOfTotalCapCost);\n ExpOvhdCost := ExpMfgOvhdCost + ProdOrderLine.\"Overhead Rate\" * ProdOrderLine.\"Quantity (Base)\";\n ExpMfgOvhdCost := ExpOvhdCost +\n Round(CostCalculationMgt.CalcOvhdCost(ExpMfgDirCost, ProdOrderLine.\"Indirect Cost %\", 0, 0));\n@@ -327,7 +329,11 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ExpSubDirCostRtng: Decimal;\n ExpCapOvhdCostRtng: Decimal;\n ExpOvhdCost: Decimal;\n+ PrevExpMatCost: Decimal;\n+ PrevExpNonInvMatCost: Decimal;\n begin\n+ PrevExpMatCost := ExpMatCost;\n+ PrevExpNonInvMatCost := ExpNonInvMatCost;\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\");\n ProdOrderComp.SetRange(Status, ProdOrderLine.Status);\n ProdOrderComp.SetRange(\"Prod. Order No.\", ProdOrderLine.\"Prod. Order No.\");\n@@ -366,7 +372,7 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ExpCapDirCost := ExpCapDirCost + Round(ExpCapDirCostRtng * ShareOfTotalCapCost);\n ExpSubDirCost := ExpSubDirCost + Round(ExpSubDirCostRtng * ShareOfTotalCapCost);\n ExpCapOvhdCost := ExpCapOvhdCost + Round(ExpCapOvhdCostRtng * ShareOfTotalCapCost);\n- ExpMfgDirCost := ExpMatCost + ExpNonInvMatCost + ExpCapDirCost + ExpSubDirCost + ExpCapOvhdCost;\n+ ExpMfgDirCost := (ExpMatCost - PrevExpMatCost) + (ExpNonInvMatCost - PrevExpNonInvMatCost) + Round(ExpCapDirCostRtng * ShareOfTotalCapCost) + Round(ExpSubDirCostRtng * ShareOfTotalCapCost) + Round(ExpCapOvhdCostRtng * ShareOfTotalCapCost);\n ExpOvhdCost := ExpMfgOvhdCost + ProdOrderLine.\"Overhead Rate\" * ProdOrderLine.\"Quantity (Base)\";\n ExpMfgOvhdCost := ExpOvhdCost +\n Round(CostCalculationMgt.CalcOvhdCost(ExpMfgDirCost, ProdOrderLine.\"Indirect Cost %\", 0, 0));\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-209496", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 126.708, "tool_calls": 20, "total_tokens": 309100, "TurnCount": 17}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":2,\"grep\":6,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":6}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\nindex 10d284cc..768dec3d 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\n@@ -132,8 +132,10 @@ page 835 \"Reminder Level Communication\"\n LocalLanguage.FindFirst();\n \n // Necessary when the user has deleted all languages or has not created any language yet\n- if IsNullGuid(Rec.\"Reminder Attachment Text\") then\n+ if IsNullGuid(Rec.\"Reminder Attachment Text\") then begin\n ReminderCommunication.SetDefaultContentForNewLanguage(CreateGuid(), LocalLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Level\", Rec.SystemId);\n+ Rec.Get(Rec.\"Reminder Terms Code\", Rec.\"No.\");\n+ end;\n \n SelectedNewLanguage := true;\n SelectLanguageAndText(LocalLanguage.Code, true);\ndiff --git a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al\nindex 5cce8ad7..2e1faef8 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al\n@@ -125,8 +125,10 @@ page 1897 \"Reminder Term Communication\"\n LocalLanguage.FindFirst();\n \n // Necessary when the user has deleted all languages or has not created any language yet\n- if IsNullGuid(Rec.\"Reminder Attachment Text\") then\n+ if IsNullGuid(Rec.\"Reminder Attachment Text\") then begin\n ReminderCommunication.SetDefaultContentForNewLanguage(CreateGuid(), LocalLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Term\", Rec.SystemId);\n+ Rec.Get(Rec.Code);\n+ end;\n \n SelectedNewLanguage := true;\n SelectLanguageAndText(LocalLanguage.Code, true);\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-213524", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 282.258, "tool_calls": 16, "total_tokens": 340000, "TurnCount": 34}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":4,\"grep\":2,\"report_intent\":2,\"task\":2,\"update_todo\":2,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/Intercompany/ICNavigation.Codeunit.al b/App/Layers/W1/BaseApp/Finance/Intercompany/ICNavigation.Codeunit.al\nindex 92bf43b1..0e994aff 100644\n--- a/App/Layers/W1/BaseApp/Finance/Intercompany/ICNavigation.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/Intercompany/ICNavigation.Codeunit.al\n@@ -111,6 +111,66 @@ codeunit 437 \"IC Navigation\"\n exit(NavigateToSalesInvoice(DocumentNo, ICPartnerCode));\n end;\n \n+ local procedure NavigateToSalesCreditMemo(DocumentNo: Code[20]): Boolean\n+ var\n+ SalesCrMemoHeader: Record \"Sales Cr.Memo Header\";\n+ PostedSalesCreditMemo: Page \"Posted Sales Credit Memo\";\n+ begin\n+ if not SalesCrMemoHeader.Get(DocumentNo) then\n+ exit(false);\n+ PostedSalesCreditMemo.SetRecord(SalesCrMemoHeader);\n+ PostedSalesCreditMemo.Run();\n+ exit(true);\n+ end;\n+\n+ local procedure NavigateToSalesCreditMemo(DocumentNo: Code[20]; ICPartnerCode: Code[20]): Boolean\n+ var\n+ Customer: Record Customer;\n+ SalesCrMemoHeader: Record \"Sales Cr.Memo Header\";\n+ PostedSalesCreditMemo: Page \"Posted Sales Credit Memo\";\n+ begin\n+ Customer.SetRange(\"IC Partner Code\", ICPartnerCode);\n+ if not Customer.FindSet() then\n+ exit(false);\n+ repeat\n+ SalesCrMemoHeader.Reset();\n+ SalesCrMemoHeader.SetRange(\"Return Order No.\", DocumentNo);\n+ SalesCrMemoHeader.SetRange(\"Sell-to Customer No.\", Customer.\"No.\");\n+ if SalesCrMemoHeader.FindFirst() then begin\n+ PostedSalesCreditMemo.SetRecord(SalesCrMemoHeader);\n+ PostedSalesCreditMemo.Run();\n+ exit(true);\n+ end;\n+ until Customer.Next() = 0;\n+ exit(false);\n+ end;\n+\n+ local procedure NavigateToSalesReturnOrderDocument(DocumentNo: Code[20]; ICDirectionType: Enum \"IC Direction Type\"; ICPartnerCode: Code[20]): Boolean\n+ var\n+ SalesHeader: Record \"Sales Header\";\n+ SalesReturnOrder: Page \"Sales Return Order\";\n+ begin\n+ case ICDirectionType of\n+ ICDirectionType::Outgoing:\n+ begin\n+ SalesHeader.SetRange(\"Document Type\", SalesHeader.\"Document Type\"::\"Return Order\");\n+ SalesHeader.SetRange(\"No.\", DocumentNo);\n+ end;\n+ ICDirectionType::Incoming:\n+ begin\n+ SalesHeader.SetRange(\"External Document No.\", DocumentNo);\n+ SalesHeader.SetRange(\"IC Direction\", ICDirectionType);\n+ SalesHeader.SetRange(\"Sell-to IC Partner Code\", ICPartnerCode);\n+ end;\n+ end;\n+ if SalesHeader.FindFirst() then begin\n+ SalesReturnOrder.SetRecord(SalesHeader);\n+ SalesReturnOrder.Run();\n+ exit(true);\n+ end;\n+ exit(NavigateToSalesCreditMemo(DocumentNo, ICPartnerCode));\n+ end;\n+\n local procedure NavigateToSalesDocument(DocumentNo: Code[20]; ICDirectionType: Enum \"IC Direction Type\"; ICPartnerCode: Code[20]; DocumentType: Enum \"IC Transaction Document Type\"): Boolean\n var\n ShouldNavigateToDoc: Boolean;\n@@ -120,6 +180,10 @@ codeunit 437 \"IC Navigation\"\n exit(NavigateToSalesOrderDocument(DocumentNo, ICDirectionType, ICPartnerCode));\n DocumentType::Invoice:\n exit(NavigateToSalesInvoice(DocumentNo));\n+ DocumentType::\"Credit Memo\":\n+ exit(NavigateToSalesCreditMemo(DocumentNo));\n+ DocumentType::\"Return Order\":\n+ exit(NavigateToSalesReturnOrderDocument(DocumentNo, ICDirectionType, ICPartnerCode));\n else begin\n ShouldNavigateToDoc := false;\n OnNavigateToSalesDocumentOnAfterCheckDocumentType(DocumentNo, ICDirectionType, ICPartnerCode, DocumentType, ShouldNavigateToDoc);\n@@ -223,6 +287,70 @@ codeunit 437 \"IC Navigation\"\n exit(NavigateToPurchaseInvoice(DocumentNo, ICPartnerCode));\n end;\n \n+ local procedure NavigateToPostedPurchaseCreditMemo(DocumentNo: Code[20]; VendorNo: Code[20]): Boolean\n+ var\n+ PurchCrMemoHdr: Record \"Purch. Cr. Memo Hdr.\";\n+ PostedPurchaseCreditMemo: Page \"Posted Purchase Credit Memo\";\n+ begin\n+ PurchCrMemoHdr.SetRange(\"Buy-from Vendor No.\", VendorNo);\n+ PurchCrMemoHdr.SetRange(\"Vendor Cr. Memo No.\", DocumentNo);\n+ if not PurchCrMemoHdr.FindFirst() then\n+ exit(false);\n+ PostedPurchaseCreditMemo.SetRecord(PurchCrMemoHdr);\n+ PostedPurchaseCreditMemo.Run();\n+ exit(true);\n+ end;\n+\n+ local procedure NavigateToPurchaseCreditMemoDocument(DocumentNo: Code[20]; ICPartnerCode: Code[20]): Boolean\n+ var\n+ Vendor: Record Vendor;\n+ PurchaseHeader: Record \"Purchase Header\";\n+ PurchaseCreditMemo: Page \"Purchase Credit Memo\";\n+ begin\n+ Vendor.SetRange(\"IC Partner Code\", ICPartnerCode);\n+ if not Vendor.FindSet() then\n+ exit(false);\n+ repeat\n+ PurchaseHeader.SetRange(\"IC Direction\", PurchaseHeader.\"IC Direction\"::Incoming);\n+ PurchaseHeader.SetRange(\"Buy-from Vendor No.\", Vendor.\"No.\");\n+ PurchaseHeader.SetRange(\"Vendor Cr. Memo No.\", DocumentNo);\n+ if PurchaseHeader.FindFirst() then begin\n+ PurchaseCreditMemo.SetRecord(PurchaseHeader);\n+ PurchaseCreditMemo.Run();\n+ exit(true);\n+ end;\n+ if NavigateToPostedPurchaseCreditMemo(DocumentNo, Vendor.\"No.\") then\n+ exit(true);\n+ until Vendor.Next() = 0;\n+ exit(false);\n+ end;\n+\n+ local procedure NavigateToPurchaseReturnOrderDocument(DocumentNo: Code[20]; ICDirectionType: Enum \"IC Direction Type\"; ICPartnerCode: Code[20]): Boolean\n+ var\n+ PurchaseHeader: Record \"Purchase Header\";\n+ PurchaseReturnOrder: Page \"Purchase Return Order\";\n+ begin\n+ case ICDirectionType of\n+ ICDirectionType::Outgoing:\n+ begin\n+ PurchaseHeader.SetRange(\"Document Type\", PurchaseHeader.\"Document Type\"::\"Return Order\");\n+ PurchaseHeader.SetRange(\"No.\", DocumentNo);\n+ end;\n+ ICDirectionType::Incoming:\n+ begin\n+ PurchaseHeader.SetRange(\"Vendor Order No.\", DocumentNo);\n+ PurchaseHeader.SetRange(\"IC Direction\", ICDirectionType);\n+ PurchaseHeader.SetRange(\"Buy-from IC Partner Code\", ICPartnerCode);\n+ end;\n+ end;\n+ if PurchaseHeader.FindFirst() then begin\n+ PurchaseReturnOrder.SetRecord(PurchaseHeader);\n+ PurchaseReturnOrder.Run();\n+ exit(true);\n+ end;\n+ exit(NavigateToPurchaseCreditMemoDocument(DocumentNo, ICPartnerCode));\n+ end;\n+\n local procedure NavigateToPurchaseDocument(DocumentNo: Code[20]; ICDirectionType: Enum \"IC Direction Type\"; ICPartnerCode: Code[20]; DocumentType: Enum \"IC Transaction Document Type\"): Boolean\n var\n OpenDoc: Boolean;\n@@ -232,6 +360,10 @@ codeunit 437 \"IC Navigation\"\n exit(NavigateToPurchaseOrderDocument(DocumentNo, ICDirectionType, ICPartnerCode));\n DocumentType::Invoice:\n exit(NavigateToPurchaseInvoiceDocument(DocumentNo, ICPartnerCode));\n+ DocumentType::\"Credit Memo\":\n+ exit(NavigateToPurchaseCreditMemoDocument(DocumentNo, ICPartnerCode));\n+ DocumentType::\"Return Order\":\n+ exit(NavigateToPurchaseReturnOrderDocument(DocumentNo, ICDirectionType, ICPartnerCode));\n else begin\n OnNavigateToPurchaseDocumentOnDocumentTypeCaseElse(DocumentNo, ICDirectionType, ICPartnerCode, DocumentType, OpenDoc);\n exit(OpenDoc);\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-193853", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 358.721, "tool_calls": 32, "total_tokens": 777600, "TurnCount": 75}, "Project": "EnforcedDigitalVouchers", "ToolUsage": "{\"edit\":1,\"glob\":2,\"grep\":6,\"report_intent\":3,\"task\":2,\"update_todo\":3,\"view\":15}", "output": "diff --git a/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al b/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\nindex 72dc980e..5eae6a71 100644\n--- a/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\n+++ b/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\n@@ -267,13 +267,34 @@ codeunit 5579 \"Digital Voucher Impl.\"\n begin\n Clear(IncomingDocument);\n if not IncomingDocument.FindFromIncomingDocumentEntryNo(MainRecordRef, IncomingDocument) then\n- IncomingDocument.FindByDocumentNoAndPostingDate(MainRecordRef, IncomingDocument);\n+ if not FindIncomingDocumentFromRelatedGenJnlLine(IncomingDocument, MainRecordRef) then\n+ IncomingDocument.FindByDocumentNoAndPostingDate(MainRecordRef, IncomingDocument);\n if IncomingDocument.\"Entry No.\" = 0 then\n exit(false);\n IncomingDocumentAttachment.SetRange(\"Incoming Document Entry No.\", IncomingDocument.\"Entry No.\");\n exit(true);\n end;\n \n+ local procedure FindIncomingDocumentFromRelatedGenJnlLine(var IncomingDocument: Record \"Incoming Document\"; MainRecordRef: RecordRef): Boolean\n+ var\n+ GenJournalLine: Record \"Gen. Journal Line\";\n+ RelatedGenJournalLine: Record \"Gen. Journal Line\";\n+ RelatedRecordRef: RecordRef;\n+ begin\n+ if MainRecordRef.Number <> Database::\"Gen. Journal Line\" then\n+ exit(false);\n+ MainRecordRef.SetTable(GenJournalLine);\n+ RelatedGenJournalLine.SetRange(\"Journal Template Name\", GenJournalLine.\"Journal Template Name\");\n+ RelatedGenJournalLine.SetRange(\"Journal Batch Name\", GenJournalLine.\"Journal Batch Name\");\n+ RelatedGenJournalLine.SetRange(\"Posting Date\", GenJournalLine.\"Posting Date\");\n+ RelatedGenJournalLine.SetRange(\"Document No.\", GenJournalLine.\"Document No.\");\n+ RelatedGenJournalLine.SetFilter(\"Incoming Document Entry No.\", '<>0');\n+ if not RelatedGenJournalLine.FindFirst() then\n+ exit(false);\n+ RelatedRecordRef.GetTable(RelatedGenJournalLine);\n+ exit(IncomingDocument.FindFromIncomingDocumentEntryNo(RelatedRecordRef, IncomingDocument));\n+ end;\n+\n local procedure AttachGenJnlLinePDFToIncomingDocument(RecRef: RecordRef)\n var\n GenJournalLine: Record \"Gen. Journal Line\";\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-174087", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 295.293, "tool_calls": 19, "total_tokens": 271100, "TurnCount": 72}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":7,\"report_intent\":2,\"task\":2,\"update_todo\":2,\"view\":5}", "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al b/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\nindex ff43f4ff..4ba0c1de 100644\n--- a/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\n+++ b/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\n@@ -362,6 +362,11 @@ page 5077 \"Create Interaction\"\n Enabled = IsMainInfoSet;\n Importance = Additional;\n ToolTip = 'Specifies the evaluation of the interaction involving the contact in the segment.';\n+\n+ trigger OnValidate()\n+ begin\n+ InteractionLogEntry.Evaluation := Rec.Evaluation;\n+ end;\n }\n field(ShowMoreLess4; GetShowMoreLessLbl(ShowLessStep4))\n {\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-212355", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 250.02, "tool_calls": 23, "total_tokens": 597200, "TurnCount": 36}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":1,\"grep\":3,\"report_intent\":3,\"task\":1,\"update_todo\":3,\"view\":11}", "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Routing/CalculateRoutingLine.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Routing/CalculateRoutingLine.Codeunit.al\nindex c46c8c20..4d40b8b6 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Routing/CalculateRoutingLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Routing/CalculateRoutingLine.Codeunit.al\n@@ -1309,7 +1309,7 @@ codeunit 99000774 \"Calculate Routing Line\"\n end;\n \n MaxLotSize :=\n- ExpectedOperOutput *\n+ ProdOrderQty *\n (1 + ProdOrderRoutingLine.\"Scrap Factor % (Accumulated)\") *\n (1 + TotalScrap / 100) +\n ProdOrderRoutingLine.\"Fixed Scrap Qty. (Accum.)\";\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-218786", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 176.22899999999998, "tool_calls": 8, "total_tokens": 118100, "TurnCount": 27}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al\nindex 0b806569..e597092b 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al\n@@ -3128,7 +3128,7 @@ table 5767 \"Warehouse Activity Line\"\n WhseActivityLine.SetLoadFields(\"Activity Type\", \"No.\", \"Line No.\", \"Item No.\", \"Variant Code\", \"Location Code\", \"Action Type\", Quantity, \"Lot No.\", \"Serial No.\", \"Source No.\", \"Source Line No.\", \"Source Document\");\n WhseActivityLine.SetRange(\"Activity Type\", FromWhseActivityLine.\"Activity Type\");\n WhseActivityLine.SetRange(\"No.\", FromWhseActivityLine.\"No.\");\n- WhseActivityLine.SetFilter(\"Line No.\", '<>%1', FromWhseActivityLine.\"Line No.\");\n+ WhseActivityLine.SetFilter(\"Line No.\", '>%1', FromWhseActivityLine.\"Line No.\");\n WhseActivityLine.SetRange(\"Item No.\", FromWhseActivityLine.\"Item No.\");\n WhseActivityLine.SetRange(\"Variant Code\", FromWhseActivityLine.\"Variant Code\");\n WhseActivityLine.SetRange(\"Location Code\", FromWhseActivityLine.\"Location Code\");\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-223819", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 249.954, "tool_calls": 30, "total_tokens": 655400, "TurnCount": 46}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":6,\"grep\":3,\"powershell\":1,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":14}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al b/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\nindex 7fc2d985..32433f78 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\n@@ -2351,6 +2351,7 @@ table 83 \"Item Journal Line\"\n procedure CreateDim(DefaultDimSource: List of [Dictionary of [Integer, Code[20]]]; InheritFromDimSetID: Integer; InheritFromTableNo: Integer)\n var\n ItemJournalTemplate: Record \"Item Journal Template\";\n+ NewDefaultDimSource: List of [Dictionary of [Integer, Code[20]]];\n SourceCode: Code[10];\n IsHandled: Boolean;\n OldDimSetID: Integer;\n@@ -2376,9 +2377,14 @@ table 83 \"Item Journal Line\"\n DimMgt.UpdateGlobalDimFromDimSetID(\"Dimension Set ID\", \"Shortcut Dimension 1 Code\", \"Shortcut Dimension 2 Code\");\n \n if \"Entry Type\" = \"Entry Type\"::Transfer then begin\n- \"New Dimension Set ID\" := \"Dimension Set ID\";\n- \"New Shortcut Dimension 1 Code\" := \"Shortcut Dimension 1 Code\";\n- \"New Shortcut Dimension 2 Code\" := \"Shortcut Dimension 2 Code\";\n+ InitNewDefaultDimensionSources(NewDefaultDimSource, CurrFieldNo);\n+ \"New Shortcut Dimension 1 Code\" := '';\n+ \"New Shortcut Dimension 2 Code\" := '';\n+ \"New Dimension Set ID\" :=\n+ DimMgt.GetRecDefaultDimID(\n+ Rec, CurrFieldNo, NewDefaultDimSource, SourceCode,\n+ \"New Shortcut Dimension 1 Code\", \"New Shortcut Dimension 2 Code\", InheritFromDimSetID, InheritFromTableNo);\n+ DimMgt.UpdateGlobalDimFromDimSetID(\"New Dimension Set ID\", \"New Shortcut Dimension 1 Code\", \"New Shortcut Dimension 2 Code\");\n end;\n end;\n \n@@ -3716,7 +3722,7 @@ table 83 \"Item Journal Line\"\n begin\n if not DimMgt.IsDefaultDimDefinedForTable(GetTableValuePair(FieldNo)) then\n exit;\n- InitDefaultDimensionSources(DefaultDimSource, FieldNo);\n+ InitNewDefaultDimensionSources(DefaultDimSource, FieldNo);\n \n SourceCode := \"Source Code\";\n if SourceCode = '' then\n@@ -3758,6 +3764,15 @@ table 83 \"Item Journal Line\"\n OnAfterInitDefaultDimensionSources(Rec, DefaultDimSource, FieldNo);\n end;\n \n+ local procedure InitNewDefaultDimensionSources(var DefaultDimSource: List of [Dictionary of [Integer, Code[20]]]; FieldNo: Integer)\n+ begin\n+ DimMgt.AddDimSource(DefaultDimSource, Database::Item, Rec.\"Item No.\", FieldNo = Rec.FieldNo(\"Item No.\"));\n+ DimMgt.AddDimSource(DefaultDimSource, Database::\"Salesperson/Purchaser\", Rec.\"Salespers./Purch. Code\", FieldNo = Rec.FieldNo(\"Salespers./Purch. Code\"));\n+ DimMgt.AddDimSource(DefaultDimSource, Database::Location, Rec.\"New Location Code\", FieldNo = Rec.FieldNo(\"New Location Code\"));\n+\n+ OnAfterInitDefaultDimensionSources(Rec, DefaultDimSource, FieldNo);\n+ end;\n+\n /// \n /// Renumbers the document number of the current item journal line based on the number series specified in the\n /// associated item journal batch.\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-213671", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 49, "tool_calls": 9, "total_tokens": 113900, "TurnCount": 6}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":1,\"grep\":1,\"report_intent\":2,\"update_todo\":2,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al b/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\nindex c70c6c1e..a24dbc39 100644\n--- a/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\n+++ b/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\n@@ -626,11 +626,10 @@ page 5123 \"Opportunity List\"\n IndexFieldRef: FieldRef;\n TextFieldRef: FieldRef;\n begin\n- Filter := DelChr(Filter, '<>', '''');\n if Filter <> '' then begin\n RecRef.GetTable(RecVar);\n IndexFieldRef := RecRef.Field(IndexFieldNo);\n- IndexFieldRef.SetRange(Filter);\n+ IndexFieldRef.SetFilter(Filter);\n if RecRef.FindFirst() then begin\n TextFieldRef := RecRef.Field(TextFieldNo);\n CaptionText := CopyStr(Format(IndexFieldRef.Value) + ' ' + Format(TextFieldRef.Value), 1, MaxStrLen(CaptionText));\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-213629", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 103.032, "tool_calls": 8, "total_tokens": 86500, "TurnCount": 17}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al\nindex 162d6cc5..544c740a 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al\n@@ -192,6 +192,7 @@ codeunit 1006 \"Copy Job\"\n TargetJobPlanningLine.\"Completely Picked\" := false;\n TargetJobPlanningLine.\"Ledger Entry No.\" := 0;\n TargetJobPlanningLine.\"Ledger Entry Type\" := TargetJobPlanningLine.\"Ledger Entry Type\"::\" \";\n+ TargetJobPlanningLine.\"System-Created Entry\" := false;\n OnCopyJobPlanningLinesOnBeforeTargetJobPlanningLineInsert(TargetJobPlanningLine, SourceJobPlanningLine);\n TargetJobPlanningLine.Insert(true);\n OnCopyJobPlanningLinesOnAfterTargetJobPlanningLineInsert(TargetJobPlanningLine, SourceJobPlanningLine);\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-213683", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 405.614, "tool_calls": 16, "total_tokens": 253200, "TurnCount": 58}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":2,\"grep\":3,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al\nindex 9735e4b2..246b6a64 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al\n@@ -172,8 +172,6 @@ codeunit 99000795 \"Mfg. Item Integration\"\n RequisitionLine: Record \"Requisition Line\";\n TransferLine: Record \"Transfer Line\";\n ItemJournalLine: Record \"Item Journal Line\";\n- ValueEntry: Record \"Value Entry\";\n- ItemLedgerEntry: Record \"Item Ledger Entry\";\n ProdOrderLine: Record \"Prod. Order Line\";\n begin\n if xRec.\"Item No.\" <> Rec.\"Item No.\" then begin\n@@ -229,16 +227,6 @@ codeunit 99000795 \"Mfg. Item Integration\"\n ItemJournalLine.SetRange(\"Variant Code\", xRec.Code);\n if not ItemJournalLine.IsEmpty() then\n Error(CannotRenameItemErr, Rec.FieldCaption(\"Item No.\"), Rec.TableCaption(), ItemJournalLine.TableCaption());\n-\n- ItemLedgerEntry.SetRange(\"Item No.\", xRec.\"Item No.\");\n- ItemLedgerEntry.SetRange(\"Variant Code\", xRec.Code);\n- if not ItemLedgerEntry.IsEmpty() then\n- Error(CannotRenameItemErr, Rec.FieldCaption(\"Item No.\"), Rec.TableCaption(), ItemLedgerEntry.TableCaption());\n-\n- ValueEntry.SetRange(\"Item No.\", xRec.\"Item No.\");\n- ValueEntry.SetRange(\"Variant Code\", xRec.Code);\n- if not ValueEntry.IsEmpty() then\n- Error(CannotRenameItemErr, Rec.FieldCaption(\"Item No.\"), Rec.TableCaption(), ValueEntry.TableCaption());\n end;\n end;\n \n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-217104", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 289.277, "tool_calls": 11, "total_tokens": 211600, "TurnCount": 24}, "Project": "AutomaticAccountCodes", "ToolUsage": "{\"edit\":2,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":2}", "output": "diff --git a/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al b/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\nindex 0e4bcfe3..021fba3b 100644\n--- a/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\n+++ b/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\n@@ -72,6 +72,7 @@ codeunit 4850 \"AA Codes Posting Helper\"\n NoOfAutoAccounts: Decimal;\n TotalAmount: Decimal;\n TotalAltAmount: Decimal;\n+ TotalAmountLCY: Decimal;\n SourceCurrBaseAmount: Decimal;\n AccLine: Integer;\n begin\n@@ -121,6 +122,9 @@ codeunit 4850 \"AA Codes Posting Helper\"\n GenJnlLine2.Validate(Amount, GenJnlLine2.Amount - TotalAmount);\n if (AccLine = NoOfAutoAccounts) and (TotalAltAmount <> 0) then\n GenJnlLine2.Validate(\"Source Currency Amount\", GenJnlLine2.\"Source Currency Amount\" - TotalAltAmount);\n+ TotalAmountLCY := TotalAmountLCY + GenJnlLine2.\"Amount (LCY)\";\n+ if (AccLine = NoOfAutoAccounts) and (TotalAmountLCY <> 0) then\n+ GenJnlLine2.\"Amount (LCY)\" := GenJnlLine2.\"Amount (LCY)\" - TotalAmountLCY;\n GenJnlCheckLine.RunCheck(GenJnlLine2);\n \n sender.InitGLEntry(GenJnlLine2, GLEntry,\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-203923", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 347.294, "tool_calls": 38, "total_tokens": 624100, "TurnCount": 66}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":7,\"grep\":6,\"powershell\":2,\"report_intent\":2,\"task\":3,\"update_todo\":4,\"view\":13}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\nindex 6bb15d7d..9c9227b8 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n@@ -93,7 +93,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetNonDeductibleVATPct(NonDeductibleVATPct, VATPostingSetup, GeneralPostingType, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (VATPostingSetup.\"VAT Calculation Type\" in [VATPostingSetup.\"VAT Calculation Type\"::\"Normal VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (VATPostingSetup.\"VAT Calculation Type\" in [VATPostingSetup.\"VAT Calculation Type\"::\"Normal VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Reverse Charge VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if (VATPostingSetup.\"Allow Non-Deductible VAT\" = VATPostingSetup.\"Allow Non-Deductible VAT\"::\"Do not allow\") or (GeneralPostingType <> GeneralPostingType::Purchase) then\n exit(0);\n@@ -786,7 +786,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeCalcNonDedAmountsInGenJnlLine(GenJournalLine, Currency, IsHandled);\n if IsHandled then\n exit;\n- if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit;\n if not VATPostingSetup.Get(GenJournalLine.\"VAT Bus. Posting Group\", GenJournalLine.\"VAT Prod. Posting Group\") then\n exit;\n@@ -826,7 +826,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeCalcBalNonDedAmountsInGenJnlLine(GenJournalLine, Currency, IsHandled);\n if IsHandled then\n exit;\n- if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Full VAT\"]) then\n exit;\n if not VATPostingSetup.Get(GenJournalLine.\"Bal. VAT Bus. Posting Group\", GenJournalLine.\"Bal. VAT Prod. Posting Group\") then\n exit;\n@@ -1210,7 +1210,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetNonDedVATPctForGenJnlLine(NonDeductibleVATPct, GenJournalLine, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if not VATPostingSetup.Get(GenJournalLine.\"VAT Bus. Posting Group\", GenJournalLine.\"VAT Prod. Posting Group\") then\n exit(0);\n@@ -1227,7 +1227,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetBalNonDedVATPctForGenJnlLine(NonDeductibleVATPct, GenJournalLine, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if not VATPostingSetup.Get(GenJournalLine.\"Bal. VAT Bus. Posting Group\", GenJournalLine.\"Bal. VAT Prod. Posting Group\") then\n exit(0);\ndiff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/VATAmountLine.Table.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/VATAmountLine.Table.al\nindex c65beede..fa92ae61 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/VATAmountLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/VATAmountLine.Table.al\n@@ -696,6 +696,7 @@ table 290 \"VAT Amount Line\"\n \"VAT Base\" := 0;\n \"VAT Amount\" := \"VAT Difference\" + CalcLineAmount();\n \"Amount Including VAT\" := \"VAT Amount\";\n+ NonDeductibleVAT.UpdateNonDeductibleAmountsWithDiffInVATAmountLine(Rec, Currency);\n end;\n \"VAT Calculation Type\"::\"Sales Tax\":\n begin\n@@ -750,6 +751,7 @@ table 290 \"VAT Amount Line\"\n \"VAT Base\" := 0;\n \"VAT Amount\" := \"VAT Difference\" + CalcLineAmount();\n \"Amount Including VAT\" := \"VAT Amount\";\n+ NonDeductibleVAT.UpdateNonDeductibleAmountsWithDiffInVATAmountLine(Rec, Currency);\n end;\n \"VAT Calculation Type\"::\"Sales Tax\":\n begin\n", "error_message": null} +{"InstanceID": "microsoft__BCApps-4699", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 216.977, "tool_calls": 31, "total_tokens": 603000, "TurnCount": 42}, "Project": "Shopify", "ToolUsage": "{\"create\":1,\"edit\":4,\"glob\":2,\"grep\":5,\"powershell\":2,\"report_intent\":2,\"task\":3,\"update_todo\":3,\"view\":9}", "output": "diff --git a/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al b/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al\nindex 4e6ffd2..cdbb26f 100644\n--- a/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al\n@@ -5,6 +5,7 @@\n \n namespace Microsoft.Integration.Shopify;\n \n+using Microsoft.Finance.Currency;\n using Microsoft.Inventory.Item;\n using Microsoft.Foundation.UOM;\n using Microsoft.Purchases.Vendor;\n@@ -227,6 +228,7 @@ codeunit 30171 \"Shpfy Create Item\"\n /// Parameter of type Boolean.\n local procedure DoCreateItem(var ShopifyProduct: Record \"Shpfy Product\"; var ShopifyVariant: Record \"Shpfy Variant\"; var Item: Record Item; ForVariant: Boolean)\n var\n+ CurrExchRate: Record \"Currency Exchange Rate\";\n ItemCategory: Record \"Item Category\";\n ItemVariant: Record \"Item Variant\";\n Vendor: Record Vendor;\n@@ -258,10 +260,16 @@ codeunit 30171 \"Shpfy Create Item\"\n CreateItemUnitOfMeasure(ShopifyVariant, Item);\n \n if ShopifyVariant.\"Unit Cost\" <> 0 then\n- Item.Validate(\"Unit Cost\", ShopifyVariant.\"Unit Cost\");\n+ if Shop.\"Currency Code\" <> '' then\n+ Item.Validate(\"Unit Cost\", Round(CurrExchRate.ExchangeAmtFCYToLCY(WorkDate(), Shop.\"Currency Code\", ShopifyVariant.\"Unit Cost\", CurrExchRate.ExchangeRate(WorkDate(), Shop.\"Currency Code\"))))\n+ else\n+ Item.Validate(\"Unit Cost\", ShopifyVariant.\"Unit Cost\");\n \n if ShopifyVariant.Price <> 0 then\n- Item.Validate(\"Unit Price\", ShopifyVariant.Price);\n+ if Shop.\"Currency Code\" <> '' then\n+ Item.Validate(\"Unit Price\", Round(CurrExchRate.ExchangeAmtFCYToLCY(WorkDate(), Shop.\"Currency Code\", ShopifyVariant.Price, CurrExchRate.ExchangeRate(WorkDate(), Shop.\"Currency Code\"))))\n+ else\n+ Item.Validate(\"Unit Price\", ShopifyVariant.Price);\n \n if ShopifyProduct.\"Product Type\" <> '' then begin\n ItemCategory.SetFilter(Description, FilterMgt.CleanFilterValue(ShopifyProduct.\"Product Type\", MaxStrLen(ItemCategory.Description)));\ndiff --git a/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyProductPriceCalc.Codeunit.al b/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyProductPriceCalc.Codeunit.al\nindex 892592c..cc31d5d 100644\n--- a/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyProductPriceCalc.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyProductPriceCalc.Codeunit.al\n@@ -5,6 +5,7 @@\n \n namespace Microsoft.Integration.Shopify;\n \n+using Microsoft.Finance.Currency;\n using Microsoft.Inventory.Item;\n using Microsoft.Sales.Document;\n using Microsoft.Sales.Customer;\n@@ -55,6 +56,7 @@ codeunit 30182 \"Shpfy Product Price Calc.\"\n /// Parameter of type Decimal.\n internal procedure CalcPrice(Item: Record Item; ItemVariant: Code[20]; UnitOfMeasure: Code[20]; var UnitCost: Decimal; var Price: Decimal; var ComparePrice: Decimal)\n var\n+ CurrExchRate: Record \"Currency Exchange Rate\";\n ItemUnitofMeasure: Record \"Item Unit of Measure\";\n TempSalesLine: Record \"Sales Line\" temporary;\n ShpfyUpdatePriceSouce: codeunit \"Shpfy Update Price Source\";\n@@ -85,6 +87,10 @@ codeunit 30182 \"Shpfy Product Price Calc.\"\n UnitCost := UnitCost * ItemUnitofMeasure.\"Qty. per Unit of Measure\";\n Price := Price * ItemUnitofMeasure.\"Qty. per Unit of Measure\";\n end;\n+ if CurrencyCode <> '' then begin\n+ UnitCost := Round(CurrExchRate.ExchangeAmtLCYToFCY(WorkDate(), CurrencyCode, UnitCost, CurrExchRate.ExchangeRate(WorkDate(), CurrencyCode)));\n+ Price := Round(CurrExchRate.ExchangeAmtLCYToFCY(WorkDate(), CurrencyCode, Price, CurrExchRate.ExchangeRate(WorkDate(), CurrencyCode)));\n+ end;\n ComparePrice := Price;\n end;\n UnbindSubscription(ShpfyUpdatePriceSouce);\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-223493", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 107.673, "tool_calls": 16, "total_tokens": 237900, "TurnCount": 22}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":3,\"report_intent\":2,\"task\":1,\"update_todo\":4,\"view\":4}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al b/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al\nindex 6a5f0a88..626b7429 100644\n--- a/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al\n@@ -56,6 +56,7 @@ codeunit 1409 \"Sales Inv. Header - Edit\"\n CustLedgerEntry.Description := SalesInvoiceHeader.\"Posting Description\";\n CustLedgerEntry.\"Promised Pay Date\" := SalesInvoiceHeader.\"Promised Pay Date\";\n CustLedgerEntry.\"Due Date\" := SalesInvoiceHeader.\"Due Date\";\n+ CustLedgerEntry.\"Your Reference\" := SalesInvoiceHeader.\"Your Reference\";\n if CustLedgerEntry.\"Dispute Status\" <> '' then begin\n if DisputeStatus.get(CustLedgerEntry.\"Dispute Status\") then\n if (DisputeStatus.\"Overwrite on hold\") and ClearOnHold(SalesInvoiceHeader) then\ndiff --git a/App/Layers/W1/BaseApp/Sales/Receivables/CustEntryEdit.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Receivables/CustEntryEdit.Codeunit.al\nindex c64fa944..37b99e91 100644\n--- a/App/Layers/W1/BaseApp/Sales/Receivables/CustEntryEdit.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Receivables/CustEntryEdit.Codeunit.al\n@@ -57,6 +57,7 @@ codeunit 103 \"Cust. Entry-Edit\"\n CustLedgEntry.\"Direct Debit Mandate ID\" := Rec.\"Direct Debit Mandate ID\";\n end;\n CustLedgEntry.Description := Rec.Description;\n+ CustLedgEntry.\"Your Reference\" := Rec.\"Your Reference\";\n CustLedgEntry.Validate(\"Exported to Payment File\", Rec.\"Exported to Payment File\");\n CustLedgEntry.Validate(\"Promised Pay Date\", Rec.\"Promised Pay Date\");\n CustLedgEntry.Validate(\"Dispute Status\", Rec.\"Dispute Status\");\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-208748", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 351.797, "tool_calls": 22, "total_tokens": 574400, "TurnCount": 25}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"glob\":2,\"grep\":4,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":8}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\nindex 7c1943c5..653f43d5 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\n@@ -123,6 +123,7 @@ codeunit 87 \"Blanket Sales Order to Order\"\n ATOLink: Record \"Assemble-to-Order Link\";\n PrepmtMgt: Codeunit \"Prepayment Mgt.\";\n SalesLineReserve: Codeunit \"Sales Line-Reserve\";\n+ BlanketOrderLineMapping: Dictionary of [Integer, Integer];\n QuantityOnOrders: Decimal;\n IsHandled: Boolean;\n ProcessLine: Boolean;\n@@ -164,6 +165,10 @@ codeunit 87 \"Blanket Sales Order to Order\"\n SalesLineOrder.\"Document No.\" := SalesHeaderOrder.\"No.\";\n NextLineNo += 10000;\n SalesLineOrder.\"Line No.\" := NextLineNo;\n+ BlanketOrderLineMapping.Add(SalesLineBlanketOrder.\"Line No.\", NextLineNo);\n+ if SalesLineOrder.\"Attached to Line No.\" <> 0 then\n+ if BlanketOrderLineMapping.ContainsKey(SalesLineOrder.\"Attached to Line No.\") then\n+ SalesLineOrder.\"Attached to Line No.\" := BlanketOrderLineMapping.Get(SalesLineOrder.\"Attached to Line No.\");\n SalesLineOrder.\"Blanket Order No.\" := SalesHeaderBlanketOrder.\"No.\";\n SalesLineOrder.\"Blanket Order Line No.\" := SalesLineBlanketOrder.\"Line No.\";\n if (SalesLineOrder.\"No.\" <> '') and (SalesLineOrder.Type <> SalesLineOrder.Type::\" \") then begin\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-185792", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 179.878, "tool_calls": 11, "total_tokens": 129300, "TurnCount": 45}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":2,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\nindex 53e7159a..da7c4360 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\n@@ -598,6 +598,11 @@ table 81 \"Gen. Journal Line\"\n Validate(\"VAT %\");\n Validate(\"Bal. VAT %\");\n UpdateLineBalance();\n+\n+ if JobTaskIsSet() then begin\n+ CreateTempJobJnlLine();\n+ UpdatePricesFromJobJnlLine();\n+ end;\n end;\n end;\n }\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-220314", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 131.468, "tool_calls": 13, "total_tokens": 194600, "TurnCount": 37}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":1,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":5}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al b/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\nindex fb9253b7..dc52ff0a 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\n@@ -168,6 +168,8 @@ table 83 \"Item Journal Line\"\n \"Unit of Measure Code\" := Item.\"Purch. Unit of Measure\";\n \"Entry Type\"::Sale:\n \"Unit of Measure Code\" := Item.\"Sales Unit of Measure\";\n+ else\n+ \"Unit of Measure Code\" := Item.\"Base Unit of Measure\";\n end;\n OnValidateItemNoOnAfterValidateUnitofMeasureCode(Rec, xRec, Item, CurrFieldNo);\n \n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-207247", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 363.682, "tool_calls": 30, "total_tokens": 644800, "TurnCount": 39}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":1,\"grep\":13,\"powershell\":6,\"report_intent\":3,\"task\":1,\"update_todo\":3,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\nindex bd370429..be4c099e 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n@@ -1539,8 +1539,12 @@ codeunit 99000813 \"Carry Out Action\"\n ActiveVersionCode := VersionManagement.GetBOMVersion(ProductionBOMHeader.\"No.\", WorkDate(), true);\n \n ProductionBOMLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n+ ProductionBOMLine.SetRange(\"Version Code\", ActiveVersionCode);\n ProductionBOMLine.SetRange(Type, ProductionBOMLine.Type::Item);\n ProductionBOMLine.SetRange(\"No.\", ProdOrderComponent.\"Item No.\");\n+ ProductionBOMLine.SetRange(Position, ProdOrderComponent.Position);\n+ ProductionBOMLine.SetRange(\"Position 2\", ProdOrderComponent.\"Position 2\");\n+ ProductionBOMLine.SetRange(\"Position 3\", ProdOrderComponent.\"Position 3\");\n if ProductionBOMLine.FindSet() then\n repeat\n ProductionBOMCommentLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-185696", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 222.002, "tool_calls": 32, "total_tokens": 660300, "TurnCount": 60}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":2,\"grep\":10,\"report_intent\":1,\"task\":1,\"update_todo\":3,\"view\":14}", "output": "diff --git a/App/Layers/W1/BaseApp/Pricing/Asset/PriceAsset.Table.al b/App/Layers/W1/BaseApp/Pricing/Asset/PriceAsset.Table.al\nindex af29a86d..cee94b96 100644\n--- a/App/Layers/W1/BaseApp/Pricing/Asset/PriceAsset.Table.al\n+++ b/App/Layers/W1/BaseApp/Pricing/Asset/PriceAsset.Table.al\n@@ -231,6 +231,7 @@ table 7003 \"Price Asset\"\n \"Asset No.\" := '';\n Description := '';\n \"Unit of Measure Code\" := '';\n+ \"Variant Code\" := '';\n \"Amount Type\" := \"Amount Type\"::Any;\n \n OnAfterInitAsset(Rec);\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-185488", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 636, "tool_calls": 18, "total_tokens": 362400, "TurnCount": 200}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"report_intent\":2,\"task\":8,\"update_todo\":3,\"view\":4}", "output": "diff --git a/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al b/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al\nindex bcd82095..b05f215b 100644\n--- a/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al\n@@ -624,12 +624,24 @@ codeunit 1521 \"Workflow Response Handling\"\n begin\n end;\n \n- local procedure CreateNotificationEntry(WorkflowStepInstance: Record \"Workflow Step Instance\"; ApprovalEntry: Record \"Approval Entry\")\n+ local procedure CreateNotificationEntry(WorkflowStepInstance: Record \"Workflow Step Instance\"; Variant: Variant)\n var\n+ ApprovalEntry: Record \"Approval Entry\";\n WorkflowStepArgument: Record \"Workflow Step Argument\";\n NotificationEntry: Record \"Notification Entry\";\n+ ApprovalsMgmt: Codeunit \"Approvals Mgmt.\";\n+ RecRef: RecordRef;\n IsHandled: Boolean;\n begin\n+ RecRef.GetTable(Variant);\n+ case RecRef.Number of\n+ DATABASE::\"Approval Entry\":\n+ ApprovalEntry := Variant;\n+ else\n+ if not ApprovalsMgmt.FindApprovalEntryByRecordId(ApprovalEntry, RecRef.RecordId) then\n+ exit;\n+ end;\n+\n IsHandled := false;\n OnBeforeCreateNotificationEntry(WorkflowStepInstance, ApprovalEntry, IsHandled);\n if IsHandled then\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-218995", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 107.292, "tool_calls": 15, "total_tokens": 287300, "TurnCount": 14}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":8,\"report_intent\":2,\"view\":4}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Posting/JobPostLine.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Posting/JobPostLine.Codeunit.al\nindex a913f1c1..172ae097 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Posting/JobPostLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Posting/JobPostLine.Codeunit.al\n@@ -478,6 +478,10 @@ codeunit 1001 \"Job Post-Line\"\n if IsHandled then\n exit;\n \n+ if Item.Get(PurchaseLine.\"No.\") then\n+ if Item.IsNonInventoriableType() then\n+ exit;\n+\n Job.Get(PurchaseLine.\"Job No.\");\n if Job.GetQuantityAvailable(PurchaseLine.\"No.\", PurchaseLine.\"Location Code\", PurchaseLine.\"Variant Code\", 0, 2) <\n -PurchaseLine.\"Return Qty. to Ship (Base)\"\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-193649", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 426.468, "tool_calls": 44, "total_tokens": 1213300, "TurnCount": 68}, "Project": "Shopify", "ToolUsage": "{\"edit\":2,\"glob\":3,\"grep\":18,\"powershell\":2,\"report_intent\":2,\"task\":3,\"update_todo\":3,\"view\":11}", "output": "diff --git a/App/Apps/W1/Shopify/app/src/Document Links/Codeunits/ShpfyDocumentLinkMgt.Codeunit.al b/App/Apps/W1/Shopify/app/src/Document Links/Codeunits/ShpfyDocumentLinkMgt.Codeunit.al\nindex 575010de..e8ea8785 100644\n--- a/App/Apps/W1/Shopify/app/src/Document Links/Codeunits/ShpfyDocumentLinkMgt.Codeunit.al\t\n+++ b/App/Apps/W1/Shopify/app/src/Document Links/Codeunits/ShpfyDocumentLinkMgt.Codeunit.al\t\n@@ -1,8 +1,10 @@\n namespace Microsoft.Integration.Shopify;\n \n+using Microsoft.Sales.Archive;\n using Microsoft.Sales.Document;\n using Microsoft.Sales.History;\n using Microsoft.Sales.Posting;\n+using Microsoft.Utilities;\n \n codeunit 30262 \"Shpfy Document Link Mgt.\"\n {\n@@ -96,4 +98,15 @@ codeunit 30262 \"Shpfy Document Link Mgt.\"\n NewDocLinkToBCDoc.Insert();\n end;\n end;\n+\n+ [EventSubscriber(ObjectType::Codeunit, Codeunit::\"Copy Document Mgt.\", 'OnAfterCopySalesHeaderDone', '', true, false)]\n+ local procedure OnAfterCopySalesHeaderDone(var ToSalesHeader: Record \"Sales Header\"; OldSalesHeader: Record \"Sales Header\"; FromSalesHeader: Record \"Sales Header\"; FromSalesShipmentHeader: Record \"Sales Shipment Header\"; FromSalesInvoiceHeader: Record \"Sales Invoice Header\"; FromReturnReceiptHeader: Record \"Return Receipt Header\"; FromSalesCrMemoHeader: Record \"Sales Cr.Memo Header\"; FromSalesHeaderArchive: Record \"Sales Header Archive\"; FromDocType: Enum \"Sales Document Type From\")\n+ begin\n+ if ToSalesHeader.IsTemporary() then\n+ exit;\n+\n+ ToSalesHeader.\"Shpfy Order Id\" := 0;\n+ ToSalesHeader.\"Shpfy Order No.\" := '';\n+ ToSalesHeader.\"Shpfy Refund Id\" := 0;\n+ end;\n }\n\\ No newline at end of file\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-221877", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 382.308, "tool_calls": 27, "total_tokens": 531700, "TurnCount": 76}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"glob\":1,\"grep\":1,\"powershell\":4,\"report_intent\":3,\"task\":3,\"update_todo\":3,\"view\":10}", "output": "diff --git a/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al b/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al\nindex 1c8fcc9e..c9072dcc 100644\n--- a/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al\n@@ -1580,6 +1580,8 @@ table 5901 \"Service Item Line\"\n if not IsHandled then\n ServOrderMgt.UpdatePriority(Rec, false);\n \n+ UpdateServiceHeaderStatusFromLines();\n+\n if \"Line No.\" = 0 then\n LendLoanerWithConfirmation(false);\n \n@@ -1765,6 +1767,52 @@ table 5901 \"Service Item Line\"\n protected var\n SkipResponseTimeHrsUpdate: Boolean;\n \n+ local procedure UpdateServiceHeaderStatusFromLines()\n+ begin\n+ if \"Repair Status Code\" = '' then\n+ exit;\n+\n+ RepairStatus.Get(\"Repair Status Code\");\n+ RepairStatusPriority := RepairStatus.Priority;\n+ UseLineNo := \"Line No.\";\n+ ServItemLine.Reset();\n+ ServItemLine.SetRange(\"Document Type\", \"Document Type\");\n+ ServItemLine.SetRange(\"Document No.\", \"Document No.\");\n+ ServItemLine.SetFilter(\"Line No.\", '<>%1', \"Line No.\");\n+ ServItemLine.SetFilter(\"Repair Status Code\", '<>%1', '');\n+ if ServItemLine.Find('-') then\n+ repeat\n+ RepairStatus2.Get(ServItemLine.\"Repair Status Code\");\n+ if RepairStatus2.Priority < RepairStatusPriority then begin\n+ RepairStatusPriority := RepairStatus2.Priority;\n+ UseLineNo := ServItemLine.\"Line No.\";\n+ end;\n+ until ServItemLine.Next() = 0;\n+ if \"Line No.\" <> UseLineNo then begin\n+ ServItemLine.Get(\"Document Type\", \"Document No.\", UseLineNo);\n+ RepairStatus.Get(ServItemLine.\"Repair Status Code\");\n+ end else\n+ RepairStatus.Get(\"Repair Status Code\");\n+ ServHeader2.Get(Rec.\"Document Type\", Rec.\"Document No.\");\n+ ServHeader3 := ServHeader2;\n+ if ServHeader2.Status <> RepairStatus.\"Service Order Status\" then begin\n+ ServHeader2.SetValidatingFromLines(true);\n+ if ServHeader2.\"Finishing Date\" = 0D then\n+ ServHeader2.Validate(\"Finishing Date\", \"Finishing Date\");\n+ ServHeader2.Validate(Status, RepairStatus.\"Service Order Status\");\n+ if not (ServHeader2.Status = ServHeader2.Status::Finished) then begin\n+ ServHeader2.\"Finishing Date\" := 0D;\n+ ServHeader2.\"Finishing Time\" := 0T;\n+ ServHeader2.\"Service Time (Hours)\" := 0;\n+ end;\n+ ServHeader2.UpdateServiceOrderChangeLog(ServHeader3);\n+ ServHeader2.Modify();\n+ if ServHeader2.Status = ServHeader2.Status::Finished then\n+ UpdateStartFinishDateTime(\"Document Type\", \"Document No.\", \"Line No.\", \"Starting Date\", \"Starting Time\",\n+ \"Finishing Date\", \"Finishing Time\", false);\n+ end;\n+ end;\n+\n procedure SetUpNewLine()\n begin\n if ServHeader.Get(\"Document Type\", \"Document No.\") then begin\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-220984", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 59, "tool_calls": 13, "total_tokens": 169200, "TurnCount": 9}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":2,\"report_intent\":2,\"update_todo\":2,\"view\":6}", "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al\nindex 83bf3f09..fc62ac19 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al\n@@ -157,7 +157,7 @@ report 99001043 \"Exchange Production BOM Item\"\n CopyPositionFields(ProductionBOMLine2, ProductionBOMLine3);\n ShouldModifyProductionBOMLine := true;\n OnIntegerOnPostDataItemOnBeforeModifyProductionBOMLine(ProductionBOMLine, ShouldModifyProductionBOMLine);\n- if not ShouldModifyProductionBOMLine then begin\n+ if ShouldModifyProductionBOMLine then begin\n ProductionBOMLine.\"Ending Date\" := StartingDate - 1;\n ProductionBOMLine.Modify();\n end;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-222092", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 329.144, "tool_calls": 23, "total_tokens": 521000, "TurnCount": 28}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":7,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":8}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\nindex 825eb23c..9ff59101 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n@@ -270,8 +270,8 @@ codeunit 393 \"Reminder-Issue\"\n begin\n GenJnlLine2.\"Shortcut Dimension 1 Code\" := GlobalReminderHeader.\"Shortcut Dimension 1 Code\";\n GenJnlLine2.\"Shortcut Dimension 2 Code\" := GlobalReminderHeader.\"Shortcut Dimension 2 Code\";\n- DimSetIDArr[1] := GlobalReminderHeader.\"Dimension Set ID\";\n- DimSetIDArr[2] := TempGenJnlLine.\"Dimension Set ID\";\n+ DimSetIDArr[1] := TempGenJnlLine.\"Dimension Set ID\";\n+ DimSetIDArr[2] := GlobalReminderHeader.\"Dimension Set ID\";\n GenJnlLine2.\"Dimension Set ID\" :=\n DimMgt.GetCombinedDimensionSetID(\n DimSetIDArr, GenJnlLine2.\"Shortcut Dimension 1 Code\", GenJnlLine2.\"Shortcut Dimension 2 Code\");\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-215225", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 238.403, "tool_calls": 29, "total_tokens": 569700, "TurnCount": 64}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":10,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":12}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobJournalLine.Table.al b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobJournalLine.Table.al\nindex fb253f0b..9386f68a 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobJournalLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobJournalLine.Table.al\n@@ -1662,18 +1662,12 @@ table 210 \"Job Journal Line\"\n begin\n Quantity := 0;\n \"Quantity (Base)\" := 0;\n- \"Direct Unit Cost (LCY)\" := 0;\n- \"Unit Cost (LCY)\" := 0;\n- \"Unit Cost\" := 0;\n \"Total Cost (LCY)\" := 0;\n \"Total Cost\" := 0;\n- \"Unit Price (LCY)\" := 0;\n- \"Unit Price\" := 0;\n \"Total Price (LCY)\" := 0;\n \"Total Price\" := 0;\n \"Line Amount (LCY)\" := 0;\n \"Line Amount\" := 0;\n- \"Line Discount %\" := 0;\n \"Line Discount Amount (LCY)\" := 0;\n \"Line Discount Amount\" := 0;\n \"Remaining Qty.\" := 0;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-209737", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 363.93, "tool_calls": 22, "total_tokens": 395600, "TurnCount": 77}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":1,\"grep\":7,\"report_intent\":2,\"task\":3,\"update_todo\":3,\"view\":5}", "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WhseActivityPost.Codeunit.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WhseActivityPost.Codeunit.al\nindex 191a270e..fe342312 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WhseActivityPost.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WhseActivityPost.Codeunit.al\n@@ -465,6 +465,7 @@ codeunit 7324 \"Whse.-Activity-Post\"\n SalesRelease.Reopen(SalesHeader);\n SalesRelease.SetSkipCheckReleaseRestrictions();\n SalesHeader.SetHideValidationDialog(true);\n+ SalesHeader.SetCalledFromWhseDoc(true);\n SalesHeader.Validate(\"Posting Date\", WhseActivHeader.\"Posting Date\");\n OnReleaseSalesDocumentOnBeforeSalesReleaseRun(SalesHeader, WhseActivHeader);\n SalesRelease.Run(SalesHeader);\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-226875", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 354.675, "tool_calls": 32, "total_tokens": 627600, "TurnCount": 108}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":8,\"grep\":1,\"powershell\":1,\"report_intent\":2,\"task\":3,\"update_todo\":3,\"view\":13}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\nindex fa043e01..0f2f952f 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n@@ -154,6 +154,7 @@ page 254 \"Purchase Journal\"\n trigger OnValidate()\n begin\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ UpdateVendorName();\n EnableApplyEntriesAction();\n CurrPage.SaveRecord();\n end;\n@@ -166,11 +167,12 @@ page 254 \"Purchase Journal\"\n trigger OnValidate()\n begin\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ UpdateVendorName();\n Rec.ShowShortcutDimCode(ShortcutDimCode);\n CurrPage.SaveRecord();\n end;\n }\n- field(\"\"; AccName)\n+ field(\"\"; VendorName)\n {\n ApplicationArea = Basic, Suite;\n Caption = 'Vendor Name';\n@@ -390,6 +392,7 @@ page 254 \"Purchase Journal\"\n trigger OnValidate()\n begin\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ UpdateVendorName();\n Rec.ShowShortcutDimCode(ShortcutDimCode);\n CurrPage.SaveRecord();\n end;\n@@ -1494,6 +1497,7 @@ page 254 \"Purchase Journal\"\n begin\n HasIncomingDocument := Rec.\"Incoming Document Entry No.\" <> 0;\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ UpdateVendorName();\n UpdateBalance();\n EnableApplyEntriesAction();\n SetControlAppearance();\n@@ -1508,6 +1512,7 @@ page 254 \"Purchase Journal\"\n Rec.ShowShortcutDimCode(ShortcutDimCode);\n DocumentAmount := Abs(Rec.Amount);\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ UpdateVendorName();\n CurrPage.IncomingDocAttachFactBox.PAGE.SetCurrentRecordID(Rec.RecordId());\n ApprovalMgmt.GetGenJnlLineApprovalStatus(Rec, GenJnlLineApprovalStatus, EnabledGenJnlLineWorkflowsExist);\n end;\n@@ -1639,6 +1644,7 @@ page 254 \"Purchase Journal\"\n ShortcutDimCode: array[8] of Code[20];\n AccName: Text[100];\n BalAccName: Text[100];\n+ VendorName: Text[100];\n DimVisible1: Boolean;\n DimVisible2: Boolean;\n DimVisible3: Boolean;\n@@ -1661,6 +1667,17 @@ page 254 \"Purchase Journal\"\n NumberOfRecords := Rec.Count();\n end;\n \n+ local procedure UpdateVendorName()\n+ begin\n+ if Rec.\"Account Type\" = Rec.\"Account Type\"::Vendor then\n+ VendorName := AccName\n+ else\n+ if Rec.\"Bal. Account Type\" = Rec.\"Bal. Account Type\"::Vendor then\n+ VendorName := BalAccName\n+ else\n+ VendorName := '';\n+ end;\n+\n local procedure EnableApplyEntriesAction()\n begin\n ApplyEntriesActionEnabled :=\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-227240", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 128.575, "tool_calls": 10, "total_tokens": 117300, "TurnCount": 23}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":2,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\nindex 9ff59101..72c7ed97 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n@@ -409,7 +409,7 @@ codeunit 393 \"Reminder-Issue\"\n if IsHandled then\n exit;\n \n- if NewDueDate < ReminderEntry2.\"Due Date\" then\n+ if NewDueDate = ReminderEntry2.\"Due Date\" then\n exit;\n \n ReminderEntry2.Validate(\"Due Date\", NewDueDate);\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-207236", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 136.614, "tool_calls": 19, "total_tokens": 285400, "TurnCount": 13}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":7,\"report_intent\":2,\"update_todo\":2,\"view\":6}", "output": "diff --git a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseHeader.Table.al b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseHeader.Table.al\nindex 18898d3e..f2dd4774 100644\n--- a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseHeader.Table.al\n@@ -6421,6 +6421,7 @@ table 38 \"Purchase Header\"\n \n if ReplacePostingDate then begin\n \"Posting Date\" := PostingDateReq;\n+ xRec := Rec;\n Validate(\"Currency Code\");\n end;\n \ndiff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al b/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\nindex fbf39fce..901b4209 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\n@@ -7038,6 +7038,7 @@ table 36 \"Sales Header\"\n exit;\n \n \"Posting Date\" := PostingDateReq;\n+ xRec := Rec;\n Validate(\"Currency Code\");\n \n if ReplaceVATDate then\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-216572", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 215.11599999999999, "tool_calls": 18, "total_tokens": 275600, "TurnCount": 28}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":1,\"report_intent\":2,\"task\":2,\"update_todo\":2,\"view\":9}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al\nindex 130b3e0f..bec9da91 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al\n@@ -666,9 +666,25 @@ table 221 \"Gen. Jnl. Allocation\"\n end;\n \n local procedure CopyFieldsFromAllocationAccountDistribution(AllocAccountDistribution: Record \"Alloc. Account Distribution\")\n+ var\n+ DimensionManagement: Codeunit DimensionManagement;\n+ DimensionSetIDArr: array[10] of Integer;\n begin\n Rec.Validate(\"Account No.\", AllocAccountDistribution.\"Destination Account Number\");\n Rec.Validate(\"Allocation %\", AllocAccountDistribution.Percent);\n+ if AllocAccountDistribution.\"Dimension Set ID\" <> 0 then begin\n+ if Rec.\"Dimension Set ID\" = 0 then\n+ Rec.\"Dimension Set ID\" := AllocAccountDistribution.\"Dimension Set ID\"\n+ else begin\n+ DimensionSetIDArr[1] := Rec.\"Dimension Set ID\";\n+ DimensionSetIDArr[2] := AllocAccountDistribution.\"Dimension Set ID\";\n+ Rec.\"Dimension Set ID\" :=\n+ DimensionManagement.GetCombinedDimensionSetID(\n+ DimensionSetIDArr, Rec.\"Shortcut Dimension 1 Code\", Rec.\"Shortcut Dimension 2 Code\");\n+ end;\n+ DimensionManagement.UpdateGlobalDimFromDimSetID(Rec.\"Dimension Set ID\", Rec.\"Shortcut Dimension 1 Code\", Rec.\"Shortcut Dimension 2 Code\");\n+ Rec.Modify(true);\n+ end;\n end;\n \n local procedure CheckGLAccount(var GLAccount: Record \"G/L Account\")\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-226004", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 394.404, "tool_calls": 50, "total_tokens": 1915100, "TurnCount": 48}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":3,\"grep\":10,\"powershell\":3,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":27}", "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al b/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al\nindex d086521b..2cc05828 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al\n@@ -74,6 +74,7 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n HasExpiredItems: Boolean;\n SuppressCommit: Boolean;\n HideDialogForTracking: Boolean;\n+ CurrRemQtyToPick: Decimal;\n NothingToHandleMsg: Label 'There is nothing to handle.';\n QtyNotSufficientOnSalesErr: Label 'Quantity available to pick is not sufficient to fulfill shipping advise %1 for sales line with Document Type %2, Document No. %3, Line No. %4.', Comment = '%1=Shipping advise no., %2=Document Type, %3=Document No., %4=Line No.';\n QtyNotSufficientOnTransferErr: Label 'Quantity available to pick is not sufficient to fulfill shipping advise %1 for transfer line with Document No. %2, Line No. %3.', Comment = '%1=Shipping advise no., %2=Document No., %3=Line No.';\n@@ -783,6 +784,7 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n end;\n \n if RemQtyToPickBase > 0 then begin\n+ CurrRemQtyToPick := NewWarehouseActivityLine.CalcQty(RemQtyToPickBase);\n if ItemTrackingManagement.GetWhseItemTrkgSetup(NewWarehouseActivityLine.\"Item No.\", WhseItemTrackingSetup) then begin\n OnCreatePickOrMoveLineOnAfterGetWhseItemTrkgSetup(NewWarehouseActivityLine, WhseItemTrackingSetup);\n if IsBlankInvtMovement then\n@@ -1927,6 +1929,8 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n /// Provided remaining quantity to pick in base unit.\n procedure MakeWarehouseActivityLine(var NewWarehouseActivityLine: Record \"Warehouse Activity Line\"; TakeBinCode: Code[20]; QtyToPickBase: Decimal; var RemQtyToPickBase: Decimal)\n var\n+ UnitOfMeasureManagement: Codeunit \"Unit of Measure Management\";\n+ CalculatedPickQty: Decimal;\n IsHandled: Boolean;\n begin\n IsHandled := false;\n@@ -1934,12 +1938,19 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n if IsHandled then\n exit;\n \n- NewWarehouseActivityLine.Quantity := NewWarehouseActivityLine.CalcQty(QtyToPickBase);\n+ CalculatedPickQty := NewWarehouseActivityLine.CalcQty(QtyToPickBase);\n+ if (CurrRemQtyToPick > 0) and\n+ (UnitOfMeasureManagement.RoundQty(UnitOfMeasureManagement.CalcBaseQty(CurrRemQtyToPick - CalculatedPickQty, NewWarehouseActivityLine.\"Qty. per Unit of Measure\"), 1) = 0)\n+ then\n+ NewWarehouseActivityLine.Quantity := CurrRemQtyToPick\n+ else\n+ NewWarehouseActivityLine.Quantity := CalculatedPickQty;\n NewWarehouseActivityLine.\"Qty. (Base)\" := QtyToPickBase;\n NewWarehouseActivityLine.\"Qty. Outstanding\" := NewWarehouseActivityLine.Quantity;\n NewWarehouseActivityLine.\"Qty. Outstanding (Base)\" := NewWarehouseActivityLine.\"Qty. (Base)\";\n SetLineData(NewWarehouseActivityLine, TakeBinCode);\n RemQtyToPickBase := RemQtyToPickBase - QtyToPickBase;\n+ CurrRemQtyToPick -= NewWarehouseActivityLine.Quantity;\n end;\n \n /// \n", "error_message": null} +{"InstanceID": "microsoft__BCApps-4822", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 212.12, "tool_calls": 35, "total_tokens": 838000, "TurnCount": 39}, "Project": "Shopify", "ToolUsage": "{\"edit\":4,\"grep\":7,\"powershell\":1,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":18}", "output": "diff --git a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\nindex 2d20144..cf83a44 100644\n--- a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\n@@ -523,7 +523,7 @@ codeunit 30286 \"Shpfy Company API\"\n JResponse := CommunicationMgt.ExecuteGraphQL(GraphQuery.ToText());\n if JResponse.SelectToken('$.data.companyLocationCreate.companyLocation', JCompanyLocation) then\n if not JsonHelper.IsTokenNull(JCompanyLocation) then begin\n- LocationId := CreateCustomerLocation(JCompanyLocation.AsObject(), ShopifyCompany, Customer.SystemId);\n+ LocationId := CreateCustomerLocation(JCompanyLocation.AsObject(), ShopifyCompany, Customer);\n if JsonHelper.GetJsonArray(JCompanyLocation, JContactRoles, 'company.contactRoles.edges') then begin\n foreach JItem in JContactRoles do\n CompanyContactRoles.Add(JsonHelper.GetValueAsText(JItem, 'node.name'), CommunicationMgt.GetIdOfGId(JsonHelper.GetValueAsText(JItem, 'node.id')));\n@@ -540,7 +540,7 @@ codeunit 30286 \"Shpfy Company API\"\n /// \n /// JSON object containing the company location data from Shopify API response.\n /// The parent Shopify company record.\n- /// The GUID of the Business Central customer that was exported.\n+ /// The Business Central customer record that was exported.\n /// \n /// This procedure:\n /// - Extracts the Shopify-generated ID and creates the initial record\n@@ -552,7 +552,7 @@ codeunit 30286 \"Shpfy Company API\"\n /// The procedure assumes the JSON structure matches Shopify's companyLocationCreate response format.\n /// All text fields are properly truncated to match the field lengths in the table definition.\n /// \n- local procedure CreateCustomerLocation(JCompanyLocation: JsonObject; ShopifyCompany: Record \"Shpfy Company\"; CustomerId: Guid): BigInteger\n+ local procedure CreateCustomerLocation(JCompanyLocation: JsonObject; ShopifyCompany: Record \"Shpfy Company\"; Customer: Record Customer): BigInteger\n var\n CompanyLocation: Record \"Shpfy Company Location\";\n CompanyLocationId: BigInteger;\n@@ -580,7 +580,9 @@ codeunit 30286 \"Shpfy Company API\"\n #pragma warning restore AA0139\n CompanyLocation.Recipient := CopyStr(JsonHelper.GetValueAsText(JCompanyLocation, 'billingAddress.recipient', MaxStrLen(CompanyLocation.Recipient)), 1, MaxStrLen(CompanyLocation.Recipient));\n CompanyLocation.\"Shpfy Payment Terms Id\" := CommunicationMgt.GetIdOfGId(JsonHelper.GetValueAsText(JCompanyLocation, 'buyerExperienceConfiguration.paymentTermsTemplate.id'));\n- CompanyLocation.\"Customer Id\" := CustomerId;\n+ CompanyLocation.\"Customer Id\" := Customer.SystemId;\n+ CompanyLocation.\"Sell-to Customer No.\" := Customer.\"No.\";\n+ CompanyLocation.\"Bill-to Customer No.\" := Customer.\"Bill-to Customer No.\";\n CompanyLocation.Modify(true);\n exit(CompanyLocationId);\n end;\ndiff --git a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyExport.Codeunit.al b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyExport.Codeunit.al\nindex 9b3b3f1..67667ad 100644\n--- a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyExport.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyExport.Codeunit.al\n@@ -74,6 +74,8 @@ codeunit 30284 \"Shpfy Company Export\"\n \n CompanyLocation.Default := true;\n CompanyLocation.\"Company SystemId\" := ShopifyCompany.SystemId;\n+ CompanyLocation.\"Sell-to Customer No.\" := Customer.\"No.\";\n+ CompanyLocation.\"Bill-to Customer No.\" := Customer.\"Bill-to Customer No.\";\n CompanyLocation.Insert();\n end;\n end;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-214557", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 197.671, "tool_calls": 17, "total_tokens": 275900, "TurnCount": 52}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":2,\"grep\":2,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":7}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al\nindex 052f4eb6..e1f349e5 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al\n@@ -659,6 +659,18 @@ table 99000853 \"Inventory Profile\"\n Binding := ReservationEntry.Binding;\n \"Disallow Cancellation\" := ReservationEntry.\"Disallow Cancellation\";\n Found := true;\n+ end else begin\n+ if ReservationEntry.Positive then\n+ OppositeReservationEntry.Get(ReservationEntry.\"Entry No.\", not ReservationEntry.Positive)\n+ else\n+ OppositeReservationEntry := ReservationEntry;\n+ if \"Primary Order No.\" = OppositeReservationEntry.\"Source ID\" then\n+ if OppositeReservationEntry.\"Source Type\" <> 5407 then begin // Database::\"Prod. Order Component\"\n+ if \"Primary Order Line\" <> OppositeReservationEntry.\"Source Ref. No.\" then\n+ \"Primary Order Line\" := 0;\n+ end else\n+ if \"Primary Order Line\" <> OppositeReservationEntry.\"Source Prod. Order Line\" then\n+ \"Primary Order Line\" := 0;\n end;\n end else\n if (ReservationEntry.\"Reservation Status\" = ReservationEntry.\"Reservation Status\"::Reservation) and\ndiff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al\nindex e3a6cf2f..bd2fca7b 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al\n@@ -992,7 +992,7 @@ codeunit 99000854 \"Inventory Profile Offsetting\"\n SupplyInvtProfile.SetRange(Binding, DemandInvtProfile.Binding);\n SupplyInvtProfile.SetRange(\"Primary Order Status\", DemandInvtProfile.\"Primary Order Status\");\n SupplyInvtProfile.SetRange(\"Primary Order No.\", DemandInvtProfile.\"Primary Order No.\");\n- SupplyInvtProfile.SetRange(\"Primary Order Line\", DemandInvtProfile.\"Primary Order Line\");\n+ SupplyInvtProfile.SetFilter(\"Primary Order Line\", '%1|0', DemandInvtProfile.\"Primary Order Line\");\n SupplyInvtProfile.SetRange(\"Source Prod. Order Line\");\n if ((DemandInvtProfile.\"Ref. Order Type\" = DemandInvtProfile.\"Ref. Order Type\"::Assembly) or\n ((DemandInvtProfile.\"Ref. Order Type\" = DemandInvtProfile.\"Ref. Order Type\"::\"Prod. Order\") and\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-214825", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 207.049, "tool_calls": 19, "total_tokens": 273400, "TurnCount": 32}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":2,\"grep\":3,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":7}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\nindex 604bb915..2da48971 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\n@@ -78,6 +78,7 @@ codeunit 1018 \"Purchase Doc. From Job\"\n JobPlanningLine.SetRange(\"Job Task No.\", JobTask.\"Job Task No.\");\n if JobPlanningLine.IsEmpty() then\n exit;\n+ JobPlanningLine.SetCurrentKey(\"Job Contract Entry No.\");\n JobPlanningLine.FindSet();\n RecRef.GetTable(JobPlanningLine);\n ContractEntryNoFilter := SelectionFilterMgt.GetSelectionFilter(RecRef, JobPlanningLine.FieldNo(\"Job Contract Entry No.\"));\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-227219", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 133.844, "tool_calls": 11, "total_tokens": 167900, "TurnCount": 35}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":1,\"report_intent\":2,\"task\":3,\"update_todo\":2,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al\nindex 979cdb45..1254b0d5 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al\n@@ -119,7 +119,7 @@ codeunit 5708 \"Release Transfer Document\"\n if IsHandled then\n exit;\n \n- TransLine.SetLoadFields(\"Document No.\", Quantity, \"Item No.\");\n+ TransLine.SetLoadFields(\"Document No.\", Quantity, \"Item No.\", \"Variant Code\");\n TransLine.SetRange(\"Document No.\", TransHeader.\"No.\");\n TransLine.SetFilter(Quantity, '<>0');\n if TransLine.IsEmpty() then\n@@ -131,6 +131,8 @@ codeunit 5708 \"Release Transfer Document\"\n Item.Get(TransLine.\"Item No.\");\n if Item.IsInventoriableType() then\n TransLine.TestField(\"Unit of Measure Code\");\n+ if Item.IsVariantMandatory() then\n+ TransLine.TestField(\"Variant Code\");\n until TransLine.Next() = 0;\n TransLine.SetFilter(\"Item No.\", '');\n end;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-218253", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 267.95799999999997, "tool_calls": 18, "total_tokens": 270400, "TurnCount": 74}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":4,\"report_intent\":3,\"task\":2,\"update_todo\":3,\"view\":5}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesLineReserve.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Document/SalesLineReserve.Codeunit.al\nindex 15a14be1..ed7a445d 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesLineReserve.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesLineReserve.Codeunit.al\n@@ -1301,7 +1301,7 @@ codeunit 99000832 \"Sales Line-Reserve\"\n var\n Item: Record Item;\n begin\n- if (NewSalesLine.Type <> NewSalesLine.Type::Item) or (NewSalesLine.Quantity = 0) or (NewSalesLine.Reserve <> NewSalesLine.Reserve::Always) then\n+ if (NewSalesLine.Type <> NewSalesLine.Type::Item) or (NewSalesLine.Quantity = 0) or (NewSalesLine.Reserve <> NewSalesLine.Reserve::Always) or (NewSalesLine.\"Document Type\" = NewSalesLine.\"Document Type\"::Invoice) then\n exit(false);\n \n Item.SetLoadFields(\"Costing Method\");\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-215972", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 176.801, "tool_calls": 23, "total_tokens": 336200, "TurnCount": 42}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":12,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":4}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\nindex 9ab054c5..72f38fac 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\n@@ -1592,6 +1592,8 @@ table 5741 \"Transfer Line\"\n exit;\n \n TestField(\"Item No.\");\n+ GetItem();\n+ Item.TestField(Reserve);\n Clear(Reservation);\n OptionNumber := StrMenu(Text011);\n if OptionNumber > 0 then begin\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-175765", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 429.455, "tool_calls": 49, "total_tokens": 2014300, "TurnCount": 70}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":16,\"powershell\":2,\"report_intent\":3,\"task\":1,\"update_todo\":3,\"view\":23}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\nindex 7eff4950..fd4fed06 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\n@@ -7105,9 +7105,11 @@ codeunit 22 \"Item Jnl.-Post Line\"\n OldValueEntry2.Copy(OldValueEntry);\n OldValueEntry2.SetFilter(\"Entry No.\", '<>%1', OldValueEntry.\"Entry No.\");\n OnCalcILEExpectedAmountOnBeforeCalcCostAmounts(OldValueEntry2, OldValueEntry, ItemLedgEntryNo);\n- OldValueEntry2.CalcSums(\"Cost Amount (Expected)\", \"Cost Amount (Expected) (ACY)\");\n+ OldValueEntry2.CalcSums(\"Cost Amount (Expected)\", \"Cost Amount (Expected) (ACY)\", \"Cost Amount (Actual)\", \"Cost Amount (Actual) (ACY)\");\n OldValueEntry.\"Cost Amount (Expected)\" += OldValueEntry2.\"Cost Amount (Expected)\";\n OldValueEntry.\"Cost Amount (Expected) (ACY)\" += OldValueEntry2.\"Cost Amount (Expected) (ACY)\";\n+ OldValueEntry.\"Cost Amount (Actual)\" += OldValueEntry2.\"Cost Amount (Actual)\";\n+ OldValueEntry.\"Cost Amount (Actual) (ACY)\" += OldValueEntry2.\"Cost Amount (Actual) (ACY)\";\n end;\n \n local procedure FindOpenOutputEntryNoToApply(ItemJournalLine: Record \"Item Journal Line\"): Integer\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-205825", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 1336.481, "tool_calls": 23, "total_tokens": 597400, "TurnCount": 420}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":1,\"glob\":1,\"report_intent\":2,\"task\":9,\"update_todo\":4,\"view\":5}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\nindex da15d9ef..813f3f42 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\n@@ -123,6 +123,7 @@ codeunit 205 \"Alt. Cust. VAT Reg. Doc. Impl.\" implements \"Alt. Cust. VAT Reg. Do\n \n procedure UpdateSetupOnBillToCustomerChangeInSalesHeader(var SalesHeader: Record \"Sales Header\"; xSalesHeader: Record \"Sales Header\"; BillToCustomer: Record Customer)\n var\n+ AltCustVATReg: Record \"Alt. Cust. VAT Reg.\";\n GLSetup: Record \"General Ledger Setup\";\n begin\n GLSetup.Get();\n@@ -143,6 +144,10 @@ codeunit 205 \"Alt. Cust. VAT Reg. Doc. Impl.\" implements \"Alt. Cust. VAT Reg. Do\n SalesHeader.\"VAT Registration No.\" := BillToCustomer.\"VAT Registration No.\";\n SalesHeader.\"Registration Number\" := BillToCustomer.\"Registration Number\";\n SalesHeader.\"Gen. Bus. Posting Group\" := BillToCustomer.\"Gen. Bus. Posting Group\";\n+\n+ if (SalesHeader.\"Ship-to Country/Region Code\" <> '') and (SalesHeader.\"Ship-to Country/Region Code\" <> BillToCustomer.\"Country/Region Code\") then\n+ if AltCustVATRegFacade.GetAlternativeCustVATReg(AltCustVATReg, BillToCustomer.\"No.\", SalesHeader.\"Ship-to Country/Region Code\") then\n+ SalesHeader.Validate(\"VAT Country/Region Code\", AltCustVATReg.\"VAT Country/Region Code\");\n end;\n \n local procedure IsAltVATRegUsed(SalesHeader: Record \"Sales Header\"): Boolean\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-210528", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 76.5, "tool_calls": 11, "total_tokens": 163700, "TurnCount": 20}, "Project": "Sustainability", "ToolUsage": "{\"edit\":2,\"report_intent\":1,\"task\":1,\"update_todo\":3,\"view\":4}", "output": "diff --git a/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al b/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al\nindex 335c0099..e55f04ea 100644\n--- a/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al\n+++ b/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al\n@@ -148,9 +148,12 @@ table 6217 \"Sustainability Setup\"\n \n trigger OnValidate()\n begin\n- if Rec.\"Enable Value Chain Tracking\" then\n+ if Rec.\"Enable Value Chain Tracking\" then begin\n if not ConfirmManagement.GetResponseOrDefault(ConfirmEnableValueChainTrackingQst, false) then\n Error('');\n+\n+ EnablePrerequisiteFields();\n+ end;\n end;\n }\n }\n@@ -241,4 +244,16 @@ table 6217 \"Sustainability Setup\"\n if not Get() then\n Insert();\n end;\n+\n+ local procedure EnablePrerequisiteFields()\n+ begin\n+ if not Rec.\"Use Emissions In Purch. Doc.\" then\n+ Rec.Validate(\"Use Emissions In Purch. Doc.\", true);\n+ if not Rec.\"Item Emissions\" then\n+ Rec.Validate(\"Item Emissions\", true);\n+ if not Rec.\"Resource Emissions\" then\n+ Rec.Validate(\"Resource Emissions\", true);\n+ if not Rec.\"Work/Machine Center Emissions\" then\n+ Rec.Validate(\"Work/Machine Center Emissions\", true);\n+ end;\n }\n\\ No newline at end of file\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-226223", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 184.081, "tool_calls": 21, "total_tokens": 347800, "TurnCount": 50}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":3,\"grep\":2,\"powershell\":1,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":8}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/Currency/ExchRateAdjmtProcess.Codeunit.al b/App/Layers/W1/BaseApp/Finance/Currency/ExchRateAdjmtProcess.Codeunit.al\nindex 467c235c..1c2a34e1 100644\n--- a/App/Layers/W1/BaseApp/Finance/Currency/ExchRateAdjmtProcess.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/Currency/ExchRateAdjmtProcess.Codeunit.al\n@@ -312,7 +312,8 @@ codeunit 699 \"Exch. Rate Adjmt. Process\"\n if VATPostingSetup.FindSet() then\n repeat\n VATEntryNo := VATEntryNo + 1;\n- Window.Update(1, Round(VATEntryNo / VATEntryNoTotal * 10000, 1));\n+ if VATEntryNoTotal <> 0 then\n+ Window.Update(1, Round(VATEntryNo / VATEntryNoTotal * 10000, 1));\n \n ProcessVATAdjustment(VATPostingSetup);\n until VATPostingSetup.Next() = 0;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-211548", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 337.812, "tool_calls": 22, "total_tokens": 426800, "TurnCount": 28}, "Project": "BaseApp", "ToolUsage": "{\"edit\":3,\"grep\":4,\"powershell\":2,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":7}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/AllocationAccount/GenJournalAllocAccMgt.Codeunit.al b/App/Layers/W1/BaseApp/Finance/AllocationAccount/GenJournalAllocAccMgt.Codeunit.al\nindex fbe1c90d..2c7bf2b5 100644\n--- a/App/Layers/W1/BaseApp/Finance/AllocationAccount/GenJournalAllocAccMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/AllocationAccount/GenJournalAllocAccMgt.Codeunit.al\n@@ -465,7 +465,7 @@ codeunit 2677 \"Gen. Journal Alloc. Acc. Mgt.\"\n var\n Increment: Integer;\n begin\n- Increment := Round((NextLineNo - CurrentLineNo) / LinesToInsert, 1);\n+ Increment := Round((NextLineNo - CurrentLineNo) / (LinesToInsert + 1), 1);\n if Increment < LinesToInsert then\n exit(-1);\n \ndiff --git a/App/Layers/W1/BaseApp/Finance/AllocationAccount/Purchase/PurchaseAllocAccMgt.Codeunit.al b/App/Layers/W1/BaseApp/Finance/AllocationAccount/Purchase/PurchaseAllocAccMgt.Codeunit.al\nindex f1284466..47892f41 100644\n--- a/App/Layers/W1/BaseApp/Finance/AllocationAccount/Purchase/PurchaseAllocAccMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/AllocationAccount/Purchase/PurchaseAllocAccMgt.Codeunit.al\n@@ -593,7 +593,7 @@ codeunit 2679 \"Purchase Alloc. Acc. Mgt.\"\n var\n Increment: Integer;\n begin\n- Increment := Round((NextLineNo - CurrentLineNo) / LinesToInsert, 1);\n+ Increment := Round((NextLineNo - CurrentLineNo) / (LinesToInsert + 1), 1);\n if Increment < LinesToInsert then\n exit(-1);\n \ndiff --git a/App/Layers/W1/BaseApp/Finance/AllocationAccount/Sales/SalesAllocAccMgt.Codeunit.al b/App/Layers/W1/BaseApp/Finance/AllocationAccount/Sales/SalesAllocAccMgt.Codeunit.al\nindex b7d2d4ac..60158607 100644\n--- a/App/Layers/W1/BaseApp/Finance/AllocationAccount/Sales/SalesAllocAccMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/AllocationAccount/Sales/SalesAllocAccMgt.Codeunit.al\n@@ -584,7 +584,7 @@ codeunit 2678 \"Sales Alloc. Acc. Mgt.\"\n var\n Increment: Integer;\n begin\n- Increment := Round((NextLineNo - CurrentLineNo) / LinesToInsert, 1);\n+ Increment := Round((NextLineNo - CurrentLineNo) / (LinesToInsert + 1), 1);\n if Increment < LinesToInsert then\n exit(-1);\n \n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-206135", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 675.464, "tool_calls": 65, "total_tokens": 2919100, "TurnCount": 102}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":7,\"grep\":17,\"powershell\":2,\"report_intent\":3,\"task\":2,\"update_todo\":4,\"view\":29}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostShipment.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostShipment.Codeunit.al\nindex ce405d49..1206adb8 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostShipment.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostShipment.Codeunit.al\n@@ -192,7 +192,7 @@ codeunit 5704 \"TransferOrder-Post Shipment\"\n if WhseShip then\n WhseShptLine.LockTable();\n TransHeader.LockTable();\n- if WhseShip then begin\n+ if WhseShip and not PreviewMode then begin\n WhsePostShpt.PostUpdateWhseDocuments(WhseShptHeader);\n TempWhseShptHeader.Delete();\n end;\ndiff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostTransfer.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostTransfer.Codeunit.al\nindex 8c7f8d02..6a723b15 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostTransfer.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostTransfer.Codeunit.al\n@@ -175,7 +175,7 @@ codeunit 5856 \"TransferOrder-Post Transfer\"\n if WhseShip then\n WhseShptLine.LockTable();\n \n- if WhseShip then begin\n+ if WhseShip and not PreviewMode then begin\n WhsePostShipment.PostUpdateWhseDocuments(WhseShptHeader);\n TempWhseShptHeader.Delete();\n end;\ndiff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferWhsePostShipment.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferWhsePostShipment.Codeunit.al\nindex 497b9a81..e5190853 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferWhsePostShipment.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferWhsePostShipment.Codeunit.al\n@@ -263,6 +263,7 @@ codeunit 5748 \"Transfer Whse. Post Shipment\"\n else begin\n TransferOrderPostShipment.SetWhseShptHeader(WhseShptHeader);\n TransferOrderPostShipment.SetSuppressCommit(WhsePostParameters.\"Suppress Commit\" or WhsePostParameters.\"Preview Posting\");\n+ TransferOrderPostShipment.SetPreviewMode(WhsePostParameters.\"Preview Posting\");\n if TransferOrderPostShipment.Run(TransHeader) then begin\n CounterSourceDocOK := CounterSourceDocOK + 1;\n Result := true;\n@@ -285,6 +286,7 @@ codeunit 5748 \"Transfer Whse. Post Shipment\"\n Clear(TransferOrderPostTransfer);\n TransferOrderPostTransfer.SetWhseShptHeader(WhseShptHeader);\n TransferOrderPostTransfer.SetSuppressCommit(WhsePostParameters.\"Suppress Commit\" or WhsePostParameters.\"Preview Posting\");\n+ TransferOrderPostTransfer.SetPreviewMode(WhsePostParameters.\"Preview Posting\");\n if TransferOrderPostTransfer.Run(TransHeader) then begin\n CounterSourceDocOK := CounterSourceDocOK + 1;\n Posted := true;\n@@ -295,6 +297,7 @@ codeunit 5748 \"Transfer Whse. Post Shipment\"\n Clear(TransferOrderPostShipment);\n TransferOrderPostShipment.SetWhseShptHeader(WhseShptHeader);\n TransferOrderPostShipment.SetSuppressCommit(WhsePostParameters.\"Suppress Commit\" or WhsePostParameters.\"Preview Posting\");\n+ TransferOrderPostShipment.SetPreviewMode(WhsePostParameters.\"Preview Posting\");\n if TransferOrderPostShipment.Run(TransHeader) then begin\n Clear(TransferOrderPostReceipt);\n TransferOrderPostReceipt.SetSuppressCommit(WhsePostParameters.\"Suppress Commit\" or WhsePostParameters.\"Preview Posting\");\n@@ -326,6 +329,7 @@ codeunit 5748 \"Transfer Whse. Post Shipment\"\n else begin\n TransferOrderPostShipment.SetWhseShptHeader(WhseShptHeader);\n TransferOrderPostShipment.SetSuppressCommit(WhsePostParameters.\"Suppress Commit\" or WhsePostParameters.\"Preview Posting\");\n+ TransferOrderPostShipment.SetPreviewMode(WhsePostParameters.\"Preview Posting\");\n TransferOrderPostShipment.RunWithCheck(TransHeader);\n CounterSourceDocOK := CounterSourceDocOK + 1;\n end;\n@@ -344,6 +348,7 @@ codeunit 5748 \"Transfer Whse. Post Shipment\"\n Clear(TransferOrderPostTransfer);\n TransferOrderPostTransfer.SetWhseShptHeader(WhseShptHeader);\n TransferOrderPostTransfer.SetSuppressCommit(WhsePostParameters.\"Suppress Commit\" or WhsePostParameters.\"Preview Posting\");\n+ TransferOrderPostTransfer.SetPreviewMode(WhsePostParameters.\"Preview Posting\");\n TransferOrderPostTransfer.RunWithCheck(TransHeader);\n CounterSourceDocOK := CounterSourceDocOK + 1;\n end;\n@@ -352,6 +357,7 @@ codeunit 5748 \"Transfer Whse. Post Shipment\"\n Clear(TransferOrderPostShipment);\n TransferOrderPostShipment.SetWhseShptHeader(WhseShptHeader);\n TransferOrderPostShipment.SetSuppressCommit(WhsePostParameters.\"Suppress Commit\" or WhsePostParameters.\"Preview Posting\");\n+ TransferOrderPostShipment.SetPreviewMode(WhsePostParameters.\"Preview Posting\");\n TransferOrderPostShipment.RunWithCheck(TransHeader);\n Clear(TransferOrderPostReceipt);\n TransferOrderPostReceipt.SetSuppressCommit(WhsePostParameters.\"Suppress Commit\" or WhsePostParameters.\"Preview Posting\");\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-211521", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 49, "tool_calls": 9, "total_tokens": 113300, "TurnCount": 6}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":4,\"report_intent\":2,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al b/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\nindex 401cabee..0883009a 100644\n--- a/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\n+++ b/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\n@@ -566,7 +566,7 @@ table 5050 Contact\n CalcFormula = min(\"To-do\".Date where(\"Contact Company No.\" = field(\"Company No.\"),\n \"Contact No.\" = field(filter(\"Lookup Contact No.\")),\n Closed = const(false),\n- \"System To-do Type\" = const(\"Contact Attendee\")));\n+ \"System To-do Type\" = filter(Organizer | \"Contact Attendee\")));\n Caption = 'Next Task Date';\n Editable = false;\n FieldClass = FlowField;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-208851", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 71.95400000000001, "tool_calls": 7, "total_tokens": 108200, "TurnCount": 12}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"report_intent\":2,\"task\":2,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al b/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al\nindex fb6adbb6..9b29109e 100644\n--- a/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al\n@@ -563,8 +563,10 @@ table 7000 \"Price List Header\"\n xAmountType: Enum \"Price Amount Type\";\n begin\n xAmountType := \"Amount Type\";\n- if \"Source Type\" in [\"Source Type\"::\"Customer Disc. Group\", \"Source Type\"::\"Customer Price Group\"] then\n- \"Amount Type\" := PriceSource.GetDefaultAmountType()\n+ if \"Source Type\" in [\"Source Type\"::\"Customer Disc. Group\", \"Source Type\"::\"Customer Price Group\"] then begin\n+ CopyTo(PriceSource);\n+ \"Amount Type\" := PriceSource.GetDefaultAmountType();\n+ end\n else\n \"Amount Type\" := CalcAmountType();\n if \"Amount Type\" <> xAmountType then\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-227358", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 55, "tool_calls": 8, "total_tokens": 123500, "TurnCount": 7}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":4,\"report_intent\":2,\"view\":1}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\nindex 61aff663..9a5de2b5 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\n@@ -1006,6 +1006,8 @@ codeunit 13 \"Gen. Jnl.-Post Batch\"\n exit;\n if not CurrGenJnlTemplate.\"Unlink Inc. Doc On Posting\" then\n exit;\n+ if not GenJnlLine.Get(GenJnlLine.\"Journal Template Name\", GenJnlLine.\"Journal Batch Name\", GenJnlLine.\"Line No.\") then\n+ exit;\n GenJnlLine.\"Incoming Document Entry No.\" := 0;\n GenJnlLine.Modify();\n end;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-207177", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 223.478, "tool_calls": 12, "total_tokens": 228300, "TurnCount": 46}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":4}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\nindex a84b0558..03f2b91b 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n@@ -42,18 +42,20 @@ page 7504 \"Item Attribute Value List\"\n DeleteItemAttributeValueMapping(ItemAttribute.ID);\n end;\n \n- if not Rec.FindAttributeValue(ItemAttributeValue) then\n- Rec.InsertItemAttributeValue(ItemAttributeValue, Rec);\n-\n- if ItemAttributeValue.Get(ItemAttributeValue.\"Attribute ID\", ItemAttributeValue.ID) then begin\n- ItemAttributeValueMapping.Reset();\n- ItemAttributeValueMapping.Init();\n- ItemAttributeValueMapping.\"Table ID\" := Database::Item;\n- ItemAttributeValueMapping.\"No.\" := RelatedRecordCode;\n- ItemAttributeValueMapping.\"Item Attribute ID\" := ItemAttributeValue.\"Attribute ID\";\n- ItemAttributeValueMapping.\"Item Attribute Value ID\" := ItemAttributeValue.ID;\n- OnBeforeItemAttributeValueMappingInsert(ItemAttributeValueMapping, ItemAttributeValue, Rec);\n- ItemAttributeValueMapping.Insert();\n+ if Rec.Value <> '' then begin\n+ if not Rec.FindAttributeValue(ItemAttributeValue) then\n+ Rec.InsertItemAttributeValue(ItemAttributeValue, Rec);\n+\n+ if ItemAttributeValue.Get(ItemAttributeValue.\"Attribute ID\", ItemAttributeValue.ID) then begin\n+ ItemAttributeValueMapping.Reset();\n+ ItemAttributeValueMapping.Init();\n+ ItemAttributeValueMapping.\"Table ID\" := Database::Item;\n+ ItemAttributeValueMapping.\"No.\" := RelatedRecordCode;\n+ ItemAttributeValueMapping.\"Item Attribute ID\" := ItemAttributeValue.\"Attribute ID\";\n+ ItemAttributeValueMapping.\"Item Attribute Value ID\" := ItemAttributeValue.ID;\n+ OnBeforeItemAttributeValueMappingInsert(ItemAttributeValueMapping, ItemAttributeValue, Rec);\n+ ItemAttributeValueMapping.Insert();\n+ end;\n end;\n end;\n }\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-219082", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 248.249, "tool_calls": 28, "total_tokens": 284500, "TurnCount": 79}, "Project": "BaseApp", "ToolUsage": "{\"edit\":4,\"grep\":6,\"report_intent\":2,\"task\":3,\"update_todo\":3,\"view\":10}", "output": "diff --git a/App/Layers/W1/BaseApp/Service/Document/ServiceOrder.Page.al b/App/Layers/W1/BaseApp/Service/Document/ServiceOrder.Page.al\nindex 130ccae8..075f5ac1 100644\n--- a/App/Layers/W1/BaseApp/Service/Document/ServiceOrder.Page.al\n+++ b/App/Layers/W1/BaseApp/Service/Document/ServiceOrder.Page.al\n@@ -1356,6 +1356,7 @@ page 5900 \"Service Order\"\n ServDocumentPrint: Codeunit \"Serv. Document Print\";\n begin\n CurrPage.Update(true);\n+ Commit();\n ServDocumentPrint.PrintServiceHeader(Rec);\n end;\n }\ndiff --git a/App/Layers/W1/BaseApp/Service/Document/ServiceOrders.Page.al b/App/Layers/W1/BaseApp/Service/Document/ServiceOrders.Page.al\nindex 87cde3aa..5e1e115d 100644\n--- a/App/Layers/W1/BaseApp/Service/Document/ServiceOrders.Page.al\n+++ b/App/Layers/W1/BaseApp/Service/Document/ServiceOrders.Page.al\n@@ -593,6 +593,7 @@ page 9318 \"Service Orders\"\n ServDocumentPrint: Codeunit \"Serv. Document Print\";\n begin\n CurrPage.Update(true);\n+ Commit();\n ServDocumentPrint.PrintServiceHeader(Rec);\n end;\n }\ndiff --git a/App/Layers/W1/BaseApp/Service/Document/ServiceQuote.Page.al b/App/Layers/W1/BaseApp/Service/Document/ServiceQuote.Page.al\nindex 6d9579d8..018b31dd 100644\n--- a/App/Layers/W1/BaseApp/Service/Document/ServiceQuote.Page.al\n+++ b/App/Layers/W1/BaseApp/Service/Document/ServiceQuote.Page.al\n@@ -927,6 +927,7 @@ page 5964 \"Service Quote\"\n ServDocumentPrint: Codeunit \"Serv. Document Print\";\n begin\n CurrPage.Update(true);\n+ Commit();\n ServDocumentPrint.PrintServiceHeader(Rec);\n end;\n }\ndiff --git a/App/Layers/W1/BaseApp/Service/Document/ServiceQuotes.Page.al b/App/Layers/W1/BaseApp/Service/Document/ServiceQuotes.Page.al\nindex ca52ac21..1a7b2a98 100644\n--- a/App/Layers/W1/BaseApp/Service/Document/ServiceQuotes.Page.al\n+++ b/App/Layers/W1/BaseApp/Service/Document/ServiceQuotes.Page.al\n@@ -364,6 +364,7 @@ page 9317 \"Service Quotes\"\n ServDocumentPrint: Codeunit \"Serv. Document Print\";\n begin\n CurrPage.Update(true);\n+ Commit();\n ServDocumentPrint.PrintServiceHeader(Rec);\n end;\n }\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-217797", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 307.682, "tool_calls": 15, "total_tokens": 223700, "TurnCount": 50}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":2,\"report_intent\":2,\"task\":3,\"update_todo\":3,\"view\":4}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Availability/CalcItemAvailability.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Availability/CalcItemAvailability.Codeunit.al\nindex 21992d4e..e73c7605 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Availability/CalcItemAvailability.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Availability/CalcItemAvailability.Codeunit.al\n@@ -906,6 +906,10 @@ codeunit 5530 \"Calc. Item Availability\"\n RecRef.SetTable(RequisitionLine);\n ReqWkshTemplate.Get(RequisitionLine.\"Worksheet Template Name\");\n ReqWkshTemplate.TestField(\"Page ID\");\n+ RequisitionLine.FilterGroup(2);\n+ RequisitionLine.SetRange(\"Worksheet Template Name\", RequisitionLine.\"Worksheet Template Name\");\n+ RequisitionLine.FilterGroup(0);\n+ RequisitionLine.\"Worksheet Template Name\" := '';\n PAGE.RunModal(ReqWkshTemplate.\"Page ID\", RequisitionLine);\n end;\n Database::\"Planning Component\":\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-224009", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 379.559, "tool_calls": 13, "total_tokens": 209200, "TurnCount": 76}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"report_intent\":2,\"task\":3,\"update_todo\":3,\"view\":4}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/ReservationEntry.Table.al b/App/Layers/W1/BaseApp/Inventory/Tracking/ReservationEntry.Table.al\nindex c1b41b15..0049aea7 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/ReservationEntry.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/ReservationEntry.Table.al\n@@ -914,7 +914,7 @@ table 337 \"Reservation Entry\"\n ReservEntry.SetFilter(\"Entry No.\", '<>%1', \"Entry No.\");\n ReservEntry.SetSourceFilter(\"Source Type\", \"Source Subtype\", \"Source ID\", \"Source Ref. No.\", false);\n ReservEntry.SetSourceFilter(\"Source Batch Name\", \"Source Prod. Order Line\");\n- ReservEntry.SetRange(\"Reservation Status\", \"Reservation Status\"::Reservation);\n+ ReservEntry.SetRange(\"Reservation Status\", \"Reservation Status\");\n ReservEntry.CalcSums(\"Quantity (Base)\", Quantity);\n exit(\n Round((ReservEntry.\"Quantity (Base)\" + \"Quantity (Base)\") / \"Qty. per Unit of Measure\", UOMMgt.QtyRndPrecision()) -\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-175577", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 280.557, "tool_calls": 26, "total_tokens": 565800, "TurnCount": 21}, "Project": "BaseApp", "ToolUsage": "{\"edit\":2,\"grep\":8,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":10}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobCreateInvoice.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobCreateInvoice.Codeunit.al\nindex 1e465e16..5fd4ada7 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobCreateInvoice.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobCreateInvoice.Codeunit.al\n@@ -398,7 +398,8 @@ codeunit 1002 \"Job Create-Invoice\"\n if OldJobNo <> '' then begin\n if InvoicePerTask then\n if (OldJobNo <> JobTask.\"Job No.\") or (OldJobTaskNo <> JobTask.\"Job Task No.\") then\n- NewInvoice := true;\n+ if not HasSameBillingInformation(JobTask) then\n+ NewInvoice := true;\n if not InvoicePerTask then\n if OldJobNo <> JobTask.\"Job No.\" then\n NewInvoice := true;\n@@ -411,6 +412,27 @@ codeunit 1002 \"Job Create-Invoice\"\n exit(NewInvoice);\n end;\n \n+ local procedure HasSameBillingInformation(JobTask: Record \"Job Task\"): Boolean\n+ var\n+ Job: Record Job;\n+ PreviousJobTask: Record \"Job Task\";\n+ begin\n+ if not Job.Get(JobTask.\"Job No.\") then\n+ exit(false);\n+ if Job.\"Task Billing Method\" <> Job.\"Task Billing Method\"::\"Multiple customers\" then\n+ exit(false);\n+ if not TempJobPlanningLine.Find('-') then\n+ exit(false);\n+ if TempJobPlanningLine.\"Job No.\" <> JobTask.\"Job No.\" then\n+ exit(false);\n+ if not PreviousJobTask.Get(TempJobPlanningLine.\"Job No.\", TempJobPlanningLine.\"Job Task No.\") then\n+ exit(false);\n+ exit(\n+ (JobTask.\"Sell-to Customer No.\" = PreviousJobTask.\"Sell-to Customer No.\") and\n+ (JobTask.\"Bill-to Customer No.\" = PreviousJobTask.\"Bill-to Customer No.\") and\n+ (JobTask.\"Invoice Currency Code\" = PreviousJobTask.\"Invoice Currency Code\"));\n+ end;\n+\n local procedure CreateSalesHeader(Job: Record Job; PostingDate: Date; DocumentDate: Date; JobPlanningLine: Record \"Job Planning Line\")\n var\n JobTask: Record \"Job Task\";\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-195193", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 277.981, "tool_calls": 37, "total_tokens": 540100, "TurnCount": 28}, "Project": "ExcelReports", "ToolUsage": "{\"edit\":8,\"glob\":4,\"grep\":9,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":10}", "output": "diff --git a/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al b/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\nindex 00c238ae..07129206 100644\n--- a/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\n+++ b/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\n@@ -44,10 +44,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Net Change\" > 0) then\n- Validate(\"Net Change (Debit)\", \"Net Change\")\n- else\n+ if (\"Net Change\" > 0) then begin\n+ Validate(\"Net Change (Debit)\", \"Net Change\");\n+ \"Net Change (Credit)\" := 0;\n+ end else begin\n+ \"Net Change (Debit)\" := 0;\n Validate(\"Net Change (Credit)\", -\"Net Change\");\n+ end;\n end;\n }\n field(11; \"Net Change (Debit)\"; Decimal)\n@@ -64,10 +67,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Balance\" > 0) then\n- Validate(\"Balance (Debit)\", \"Balance\")\n- else\n+ if (\"Balance\" > 0) then begin\n+ Validate(\"Balance (Debit)\", \"Balance\");\n+ \"Balance (Credit)\" := 0;\n+ end else begin\n+ \"Balance (Debit)\" := 0;\n Validate(\"Balance (Credit)\", -\"Balance\");\n+ end;\n end;\n }\n field(14; \"Balance (Debit)\"; Decimal)\n@@ -100,10 +106,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Net\" > 0) then\n- Validate(\"Last Period Net (Debit)\", \"Last Period Net\")\n- else\n+ if (\"Last Period Net\" > 0) then begin\n+ Validate(\"Last Period Net (Debit)\", \"Last Period Net\");\n+ \"Last Period Net (Credit)\" := 0;\n+ end else begin\n+ \"Last Period Net (Debit)\" := 0;\n Validate(\"Last Period Net (Credit)\", -\"Last Period Net\");\n+ end;\n end;\n }\n field(51; \"Last Period Net (Debit)\"; Decimal)\n@@ -120,10 +129,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Bal.\" > 0) then\n- Validate(\"Last Period Bal. (Debit)\", \"Last Period Bal.\")\n- else\n+ if (\"Last Period Bal.\" > 0) then begin\n+ Validate(\"Last Period Bal. (Debit)\", \"Last Period Bal.\");\n+ \"Last Period Bal. (Credit)\" := 0;\n+ end else begin\n+ \"Last Period Bal. (Debit)\" := 0;\n Validate(\"Last Period Bal. (Credit)\", -\"Last Period Bal.\");\n+ end;\n end;\n }\n field(61; \"Last Period Bal. (Debit)\"; Decimal)\n@@ -156,10 +168,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Net Change\" > 0) then\n- Validate(\"Net Change (Debit) (ACY)\", \"Net Change (ACY)\")\n- else\n+ if (\"Net Change (ACY)\" > 0) then begin\n+ Validate(\"Net Change (Debit) (ACY)\", \"Net Change (ACY)\");\n+ \"Net Change (Credit) (ACY)\" := 0;\n+ end else begin\n+ \"Net Change (Debit) (ACY)\" := 0;\n Validate(\"Net Change (Credit) (ACY)\", -\"Net Change (ACY)\");\n+ end;\n end;\n }\n field(111; \"Net Change (Debit) (ACY)\"; Decimal)\n@@ -176,10 +191,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Balance\" > 0) then\n- Validate(\"Balance (Debit) (ACY)\", \"Balance (ACY)\")\n- else\n+ if (\"Balance (ACY)\" > 0) then begin\n+ Validate(\"Balance (Debit) (ACY)\", \"Balance (ACY)\");\n+ \"Balance (Credit) (ACY)\" := 0;\n+ end else begin\n+ \"Balance (Debit) (ACY)\" := 0;\n Validate(\"Balance (Credit) (ACY)\", -\"Balance (ACY)\");\n+ end;\n end;\n }\n field(114; \"Balance (Debit) (ACY)\"; Decimal)\n@@ -196,10 +214,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Net\" > 0) then\n- Validate(\"Last Period Net (Debit) (ACY)\", \"Last Period Net (ACY)\")\n- else\n+ if (\"Last Period Net (ACY)\" > 0) then begin\n+ Validate(\"Last Period Net (Debit) (ACY)\", \"Last Period Net (ACY)\");\n+ \"Last Period Net (Credit) (ACY)\" := 0;\n+ end else begin\n+ \"Last Period Net (Debit) (ACY)\" := 0;\n Validate(\"Last Period Net (Credit) (ACY)\", -\"Last Period Net (ACY)\");\n+ end;\n end;\n }\n field(151; \"Last Period Net (Debit) (ACY)\"; Decimal)\n@@ -216,10 +237,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Bal.\" > 0) then\n- Validate(\"Last Period Bal. (Debit) (ACY)\", \"Last Period Bal. (ACY)\")\n- else\n+ if (\"Last Period Bal. (ACY)\" > 0) then begin\n+ Validate(\"Last Period Bal. (Debit) (ACY)\", \"Last Period Bal. (ACY)\");\n+ \"Last Period Bal. (Cred.) (ACY)\" := 0;\n+ end else begin\n+ \"Last Period Bal. (Debit) (ACY)\" := 0;\n Validate(\"Last Period Bal. (Cred.) (ACY)\", -\"Last Period Bal. (ACY)\");\n+ end;\n end;\n }\n field(161; \"Last Period Bal. (Debit) (ACY)\"; Decimal)\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-214926", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 189.208, "tool_calls": 16, "total_tokens": 216900, "TurnCount": 26}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":1,\"grep\":3,\"report_intent\":2,\"task\":2,\"update_todo\":2,\"view\":5}", "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al b/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\nindex ebeb6ca1..b522f79e 100644\n--- a/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\n@@ -2364,7 +2364,7 @@ table 18 Customer\n RetRcdNotInvAmountLCY := GetReturnRcdNotInvAmountLCY();\n \n TotalAmountLCY :=\n- \"Balance (LCY)\" + \"Outstanding Orders (LCY)\" + \"Shipped Not Invoiced (LCY)\" + \"Outstanding Invoices (LCY)\" +\n+ \"Balance (LCY)\" + \"Outstanding Orders (LCY)\" + \"Shipped Not Invoiced (LCY)\" + \"Outstanding Invoices (LCY)\" -\n SalesOutstandingAmountFromShipment - InvoicedPrepmtAmountLCY - RetRcdNotInvAmountLCY + AdditionalAmountLCY;\n \n OnAfterGetTotalAmountLCYCommon(Rec, TotalAmountLCY);\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-218323", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 220.401, "tool_calls": 25, "total_tokens": 273000, "TurnCount": 48}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":7,\"report_intent\":2,\"task\":3,\"update_todo\":3,\"view\":9}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlCheckLine.Codeunit.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlCheckLine.Codeunit.al\nindex c7ffd42b..8fe06275 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlCheckLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlCheckLine.Codeunit.al\n@@ -400,7 +400,7 @@ codeunit 11 \"Gen. Jnl.-Check Line\"\n end;\n end;\n \n- if GLSetup.\"Journal Templ. Name Mandatory\" then\n+ if GLSetup.\"Journal Templ. Name Mandatory\" and not GenJnlLine.\"System-Created Entry\" then\n GenJnlLine.TestField(\"Journal Template Name\", ErrorInfo.Create());\n OnBeforeDateNotAllowed(GenJnlLine, DateCheckDone);\n if not DateCheckDone then\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-224668", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 45, "tool_calls": 7, "total_tokens": 81362, "TurnCount": 6}, "Project": "EssentialBusinessHeadlines", "ToolUsage": "{\"edit\":1,\"glob\":1,\"grep\":2,\"report_intent\":1,\"view\":2}", "output": "diff --git a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\nindex 831aa80e..10436a09 100644\n--- a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n+++ b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n@@ -677,7 +677,7 @@ codeunit 1437 \"Essential Bus. Headline Mgt.\"\n var\n EssentialBusinessHeadline: Record \"Ess. Business Headline Per Usr\";\n begin\n- if EssentialBusinessHeadline.Get(HeadlineName) then begin\n+ if EssentialBusinessHeadline.Get(HeadlineName, UserSecurityId()) then begin\n EssentialBusinessHeadline.Validate(\"Headline Visible\", false);\n EssentialBusinessHeadline.Modify();\n end;\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-209835", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 290.797, "tool_calls": 21, "total_tokens": 344800, "TurnCount": 35}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":1,\"glob\":2,\"grep\":5,\"report_intent\":2,\"task\":1,\"update_todo\":4,\"view\":5}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\nindex 78996b41..43c6dbb9 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\n@@ -473,7 +473,8 @@ report 99001020 \"Carry Out Action Msg. - Plan.\"\n if CurrReqWkshTemp <> '' then\n \"Requisition Line\".SetRange(\"Journal Batch Name\", CurrReqWkshName);\n \"Requisition Line\".SetRange(Type, \"Requisition Line\".Type::Item);\n- \"Requisition Line\".SetFilter(\"Action Message\", '<>%1', \"Requisition Line\".\"Action Message\"::\" \");\n+ if \"Requisition Line\".GetFilter(\"Action Message\") = '' then\n+ \"Requisition Line\".SetFilter(\"Action Message\", '<>%1', \"Requisition Line\".\"Action Message\"::\" \");\n OnAfterSetReqLineFilters(\"Requisition Line\");\n end;\n \n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-176082", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 183.244, "tool_calls": 17, "total_tokens": 296300, "TurnCount": 42}, "Project": "BaseApp", "ToolUsage": "{\"create\":1,\"edit\":2,\"grep\":2,\"report_intent\":2,\"task\":2,\"update_todo\":3,\"view\":5}", "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\nindex 5fe44b45..5d7fd3dc 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\n@@ -1304,7 +1304,6 @@ table 5740 \"Transfer Header\"\n TempPurchRcptHeader: Record \"Purch. Rcpt. Header\" temporary;\n PostedPurchaseReceipts: Page \"Posted Purchase Receipts\";\n begin\n- PurchRcptHeader.SetRange(\"Location Code\", \"Transfer-from Code\");\n PostedPurchaseReceipts.SetTableView(PurchRcptHeader);\n PostedPurchaseReceipts.LookupMode := true;\n if PostedPurchaseReceipts.RunModal() = ACTION::LookupOK then begin\n@@ -1374,6 +1373,10 @@ table 5740 \"Transfer Header\"\n TransferLine.Insert(true);\n \n PurchRcptLine.FilterPstdDocLnItemLedgEntries(ItemLedgerEntry);\n+ if ItemLedgerEntry.FindFirst() then begin\n+ TransferLine.Validate(\"Appl.-to Item Entry\", ItemLedgerEntry.\"Entry No.\");\n+ TransferLine.Modify(true);\n+ end;\n ItemTrackingDocMgt.CopyItemLedgerEntriesToTemp(TempItemLedgerEntry, ItemLedgerEntry);\n ItemTrackingMgt.CopyItemLedgEntryTrkgToTransferLine(TempItemLedgerEntry, TransferLine);\n \n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-226448", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 241.408, "tool_calls": 13, "total_tokens": 201200, "TurnCount": 58}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":1,\"report_intent\":2,\"store_memory\":1,\"task\":3,\"update_todo\":3,\"view\":2}", "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/VATAmountLine.Table.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/VATAmountLine.Table.al\nindex 5706c4b1..2552293d 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/VATAmountLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/VATAmountLine.Table.al\n@@ -687,6 +687,7 @@ table 290 \"VAT Amount Line\"\n OnUpdateLinesOnAfterCalcVATAmount(Rec, PrevVATAmountLine, Currency, VATBaseDiscountPerc, PricesIncludingVAT);\n \"Amount Including VAT\" := \"VAT Base\" + \"VAT Amount\";\n OnUpdateLinesOnAfterCalcAmountIncludingVATNormalVAT(Rec, PrevVATAmountLine, Currency, VATBaseDiscountPerc, PricesIncludingVAT);\n+ NonDeductibleVAT.UpdateNonDeductibleAmountsWithDiffInVATAmountLine(Rec, Currency);\n if Positive then\n PrevVATAmountLine.Init()\n else begin\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-206977", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 57, "tool_calls": 13, "total_tokens": 135800, "TurnCount": 8}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":1,\"grep\":6,\"report_intent\":2,\"view\":3}", "output": "diff --git a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\nindex 0877c357..cdc6d505 100644\n--- a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\n+++ b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\n@@ -161,7 +161,14 @@ page 903 \"Assembly Lines\"\n AssemblyHeader: Record \"Assembly Header\";\n begin\n AssemblyHeader.Get(Rec.\"Document Type\", Rec.\"Document No.\");\n- PAGE.Run(PAGE::\"Assembly Order\", AssemblyHeader);\n+ case AssemblyHeader.\"Document Type\" of\n+ AssemblyHeader.\"Document Type\"::Quote:\n+ PAGE.Run(PAGE::\"Assembly Quote\", AssemblyHeader);\n+ AssemblyHeader.\"Document Type\"::Order:\n+ PAGE.Run(PAGE::\"Assembly Order\", AssemblyHeader);\n+ AssemblyHeader.\"Document Type\"::\"Blanket Order\":\n+ PAGE.Run(PAGE::\"Blanket Assembly Order\", AssemblyHeader);\n+ end;\n end;\n }\n action(\"Reservation Entries\")\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-192565", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 231.64600000000002, "tool_calls": 17, "total_tokens": 329500, "TurnCount": 57}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":5,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":5}", "output": "diff --git a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\nindex fb45dbcf..b59c9d7a 100644\n--- a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n@@ -5365,6 +5365,7 @@ table 39 \"Purchase Line\"\n Amount := 0;\n \"VAT Base Amount\" := 0;\n \"Amount Including VAT\" := 0;\n+ NonDeductibleVAT.Update(Rec, Currency);\n OnUpdateVATAmountsOnBeforePurchLineModify(Rec, PurchLine2);\n if (Quantity = 0) and (xRec.Quantity <> 0) and (xRec.Amount <> 0) then begin\n if \"Line No.\" <> 0 then\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-211710", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 82.084, "tool_calls": 9, "total_tokens": 103200, "TurnCount": 13}, "Project": "Shopify", "ToolUsage": "{\"edit\":1,\"report_intent\":2,\"task\":1,\"update_todo\":2,\"view\":3}", "output": "diff --git a/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al b/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al\nindex 773ba116..52bfd17f 100644\n--- a/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al\n+++ b/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al\n@@ -17,7 +17,7 @@ report 30118 \"Shpfy Suggest Payments\"\n dataitem(OrderTransaction; \"Shpfy Order Transaction\")\n {\n RequestFilterFields = \"Created At\";\n- DataItemTableView = sorting(Type) where(Type = filter(Capture | Sale | Refund));\n+ DataItemTableView = sorting(Type) where(Type = filter(Capture | Sale | Refund), Status = const(Success));\n \n trigger OnAfterGetRecord()\n begin\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-179733", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 202.275, "tool_calls": 17, "total_tokens": 251100, "TurnCount": 50}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"grep\":2,\"report_intent\":2,\"task\":2,\"update_todo\":4,\"view\":6}", "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Job/JobTask.Table.al b/App/Layers/W1/BaseApp/Projects/Project/Job/JobTask.Table.al\nindex ca6d73fa..fc721059 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Job/JobTask.Table.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Job/JobTask.Table.al\n@@ -1221,6 +1221,8 @@ table 1001 \"Job Task\"\n \n local procedure InitCustomer()\n begin\n+ if \"Job Task Type\" <> \"Job Task Type\"::Posting then\n+ exit;\n if not Job.Get(\"Job No.\") then\n exit;\n if Job.\"Task Billing Method\" = Job.\"Task Billing Method\"::\"One customer\" then\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-176150", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 91.167, "tool_calls": 10, "total_tokens": 121500, "TurnCount": 22}, "Project": "BaseApp", "ToolUsage": "{\"edit\":1,\"glob\":1,\"grep\":1,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":1}", "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al b/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\nindex 55d3fbad..933493a5 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\n@@ -1016,6 +1016,7 @@ page 5510 \"Production Journal\"\n protected procedure MarkRelevantRec(var ItemJournalLine: Record \"Item Journal Line\")\n begin\n ItemJournalLine := Rec;\n+ ItemJournalLine.CopyFilters(Rec);\n if ItemJournalLine.FindSet() then begin\n repeat\n case ItemJournalLine.\"Entry Type\" of\n", "error_message": null} +{"InstanceID": "microsoftInternal__NAV-222488", "scores": {"BuildRate": 1, "ResolutionRate": 1}, "metrics": {"cached": null, "duration": 210.619, "tool_calls": 39, "total_tokens": 791200, "TurnCount": 39}, "Project": "BaseApp", "ToolUsage": "{\"edit\":3,\"grep\":12,\"powershell\":1,\"report_intent\":2,\"task\":1,\"update_todo\":3,\"view\":17}", "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseMovementSubform.Page.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseMovementSubform.Page.al\nindex d0836460..eff77b30 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseMovementSubform.Page.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseMovementSubform.Page.al\n@@ -318,6 +318,8 @@ page 7316 \"Warehouse Movement Subform\"\n WhseActivLine: Record \"Warehouse Activity Line\";\n begin\n WhseActivLine.Copy(Rec);\n+ WhseActivLine.FilterGroup(4);\n+ WhseActivLine.SetRange(Breakbulk);\n WhseActivLine.FilterGroup(3);\n WhseActivLine.SetRange(Breakbulk);\n WhseActivLine.FilterGroup(0);\ndiff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePickSubform.Page.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePickSubform.Page.al\nindex 12c3ac91..0e07335e 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePickSubform.Page.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePickSubform.Page.al\n@@ -560,6 +560,8 @@ page 5780 \"Whse. Pick Subform\"\n exit;\n \n WhseActivLine.Copy(Rec);\n+ WhseActivLine.FilterGroup(4);\n+ WhseActivLine.SetRange(Breakbulk);\n WhseActivLine.FilterGroup(3);\n WhseActivLine.SetRange(Breakbulk);\n WhseActivLine.FilterGroup(0);\ndiff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al\nindex 07db37f9..a70aef62 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al\n@@ -485,6 +485,8 @@ page 5771 \"Whse. Put-away Subform\"\n WhseActivLine: Record \"Warehouse Activity Line\";\n begin\n WhseActivLine.Copy(Rec);\n+ WhseActivLine.FilterGroup(4);\n+ WhseActivLine.SetRange(Breakbulk);\n WhseActivLine.FilterGroup(3);\n WhseActivLine.SetRange(Breakbulk);\n WhseActivLine.FilterGroup(0);\n", "error_message": null} diff --git a/notebooks/result/bug-fix/copilot-cf-opus-4-6/run-25281894565.jsonl b/notebooks/result/bug-fix/copilot-cf-opus-4-6/run-25281894565.jsonl new file mode 100644 index 000000000..116509046 --- /dev/null +++ b/notebooks/result/bug-fix/copilot-cf-opus-4-6/run-25281894565.jsonl @@ -0,0 +1,121 @@ +{"instance_id": "microsoftInternal__NAV-174087__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al b/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\nindex ff43f4ff..de6a6303 100644\n--- a/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\n+++ b/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\n@@ -580,8 +580,10 @@ page 5077 \"Create Interaction\"\n \n trigger OnQueryClosePage(CloseAction: Action): Boolean\n begin\n- if UpdateLogEntry then\n+ if UpdateLogEntry then begin\n+ InteractionLogEntry.Evaluation := Rec.Evaluation;\n InteractionLogEntry.Modify();\n+ end;\n end;\n \n var\n@@ -694,6 +696,7 @@ page 5077 \"Create Interaction\"\n end;\n Step::\"Step 4\":\n begin\n+ InteractionLogEntry.Evaluation := Rec.Evaluation;\n InteractionLogEntry.Modify();\n CurrPage.Close();\n end;\n", "error_message": null, "metrics": {"execution_time": 102.0, "llm_duration": null, "turn_count": 12, "prompt_tokens": 320100, "completion_tokens": 3500, "tool_usage": {"grep": 8, "report_intent": 1, "view": 6, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-174087__cf-2", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Interaction/InteractionLogEntry.Table.al b/App/Layers/W1/BaseApp/CRM/Interaction/InteractionLogEntry.Table.al\nindex 9eed442c..0dad84a2 100644\n--- a/App/Layers/W1/BaseApp/CRM/Interaction/InteractionLogEntry.Table.al\n+++ b/App/Layers/W1/BaseApp/CRM/Interaction/InteractionLogEntry.Table.al\n@@ -319,6 +319,12 @@ table 5065 \"Interaction Log Entry\"\n }\n }\n \n+ trigger OnModify()\n+ begin\n+ if HasSegmentLineForModify then\n+ CopyFromSegment(TempSegmentLineForModify);\n+ end;\n+\n trigger OnDelete()\n var\n InteractionCommentLine: Record \"Inter. Log Entry Comment Line\";\n@@ -348,6 +354,14 @@ table 5065 \"Interaction Log Entry\"\n TitleFromLbl: Label '%1 - from %2', Comment = '%1 - document description, %2 - name';\n TitleByLbl: Label '%1 - by %2', Comment = '%1 - document description, %2 - name';\n OpenMessageQst: Label 'You are about to open an email message in Outlook Online. Email messages might contain harmful content. Use caution when interacting with the message. Do you want to continue?';\n+ TempSegmentLineForModify: Record \"Segment Line\" temporary;\n+ HasSegmentLineForModify: Boolean;\n+\n+ procedure SetSegmentLine(var SegmentLine: Record \"Segment Line\")\n+ begin\n+ TempSegmentLineForModify := SegmentLine;\n+ HasSegmentLineForModify := true;\n+ end;\n \n procedure InsertRecord()\n var\ndiff --git a/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al b/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\nindex ff43f4ff..0f60989e 100644\n--- a/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\n+++ b/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\n@@ -694,7 +694,8 @@ page 5077 \"Create Interaction\"\n end;\n Step::\"Step 4\":\n begin\n- InteractionLogEntry.Modify();\n+ InteractionLogEntry.SetSegmentLine(Rec);\n+ InteractionLogEntry.Modify(true);\n CurrPage.Close();\n end;\n end;\n", "error_message": null, "metrics": {"execution_time": 536.0, "llm_duration": null, "turn_count": 40, "prompt_tokens": 1500000, "completion_tokens": 23100, "tool_usage": {"grep": 27, "view": 23, "report_intent": 2, "powershell": 1, "edit": 3}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-174794__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\nindex b941d50c..147e4a67 100644\n--- a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n@@ -288,6 +288,7 @@ codeunit 395 \"FinChrgMemo-Issue\"\n TempGenJnlLine.Validate(Amount, TotalAmount);\n TempGenJnlLine.Validate(\"Amount (LCY)\", TotalAmountLCY);\n TempGenJnlLine.\"Due Date\" := FinChrgMemoHeader.\"Due Date\";\n+ TempGenJnlLine.\"Posting Group\" := FinChrgMemoHeader.\"Customer Posting Group\";\n end;\n TempGenJnlLine.Description := FinChrgMemoHeader.\"Posting Description\";\n TempGenJnlLine.\"Source Type\" := TempGenJnlLine.\"Source Type\"::Customer;\n", "error_message": null, "metrics": {"execution_time": 109.0, "llm_duration": null, "turn_count": 11, "prompt_tokens": 288800, "completion_tokens": 4200, "tool_usage": {"grep": 10, "view": 5, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-174794__cf-2", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\nindex b941d50c..60ab40c9 100644\n--- a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n@@ -288,6 +288,7 @@ codeunit 395 \"FinChrgMemo-Issue\"\n TempGenJnlLine.Validate(Amount, TotalAmount);\n TempGenJnlLine.Validate(\"Amount (LCY)\", TotalAmountLCY);\n TempGenJnlLine.\"Due Date\" := FinChrgMemoHeader.\"Due Date\";\n+ TempGenJnlLine.\"Customer Posting Group\" := FinChrgMemoHeader.\"Customer Posting Group\";\n end;\n TempGenJnlLine.Description := FinChrgMemoHeader.\"Posting Description\";\n TempGenJnlLine.\"Source Type\" := TempGenJnlLine.\"Source Type\"::Customer;\n", "error_message": "Build or publish failed for App\\Layers\\W1\\BaseApp:\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Inventory\\Costing\\CalcInventoryAdjmtOrder.Codeunit.al(459,186): warning AL0749: The type 'CalculateActualMaterialCost' of the parameter 'Calculate Actual Material Cost' of the event method 'OnCalcActualMaterialCostsOnAfterSetFilters' has 'Internal' accessibility. The method will not be callable outside of this module without an implicit conversion.\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Finance\\GeneralLedger\\Setup\\GeneralLedgerSetup.Table.al(888,20): warning AL0842: The type 'VAT Period Control' of the public field 'Control VAT Period' has 'Internal' accessibility. The field will not be usable outside of this module without an implicit conversion.\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Sales\\FinanceCharge\\FinChrgMemoIssue.Codeunit.al(291,28): error AL0132: 'Record \"Gen. Journal Line\" temporary' does not contain a definition for 'Customer Posting Group'", "metrics": {"execution_time": 114.0, "llm_duration": null, "turn_count": 14, "prompt_tokens": 307900, "completion_tokens": 3600, "tool_usage": {"grep": 7, "glob": 3, "view": 6, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": false} +{"instance_id": "microsoftInternal__NAV-174794__cf-3", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\nindex b941d50c..60ab40c9 100644\n--- a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n@@ -288,6 +288,7 @@ codeunit 395 \"FinChrgMemo-Issue\"\n TempGenJnlLine.Validate(Amount, TotalAmount);\n TempGenJnlLine.Validate(\"Amount (LCY)\", TotalAmountLCY);\n TempGenJnlLine.\"Due Date\" := FinChrgMemoHeader.\"Due Date\";\n+ TempGenJnlLine.\"Customer Posting Group\" := FinChrgMemoHeader.\"Customer Posting Group\";\n end;\n TempGenJnlLine.Description := FinChrgMemoHeader.\"Posting Description\";\n TempGenJnlLine.\"Source Type\" := TempGenJnlLine.\"Source Type\"::Customer;\n", "error_message": "Build or publish failed for App\\Layers\\W1\\BaseApp:\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Inventory\\Costing\\CalcInventoryAdjmtOrder.Codeunit.al(459,186): warning AL0749: The type 'CalculateActualMaterialCost' of the parameter 'Calculate Actual Material Cost' of the event method 'OnCalcActualMaterialCostsOnAfterSetFilters' has 'Internal' accessibility. The method will not be callable outside of this module without an implicit conversion.\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Finance\\GeneralLedger\\Setup\\GeneralLedgerSetup.Table.al(888,20): warning AL0842: The type 'VAT Period Control' of the public field 'Control VAT Period' has 'Internal' accessibility. The field will not be usable outside of this module without an implicit conversion.\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Sales\\FinanceCharge\\FinChrgMemoIssue.Codeunit.al(291,28): error AL0132: 'Record \"Gen. Journal Line\" temporary' does not contain a definition for 'Customer Posting Group'", "metrics": {"execution_time": 107.0, "llm_duration": null, "turn_count": 11, "prompt_tokens": 320400, "completion_tokens": 3900, "tool_usage": {"grep": 8, "view": 6, "report_intent": 2, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": false} +{"instance_id": "microsoftInternal__NAV-175765__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al\nindex b47fc326..e7e34dd3 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al\n@@ -277,11 +277,20 @@ codeunit 9030 \"Undo Transfer Shipment\"\n ItemJnlLine.\"Quantity (Base)\" := ItemLedgEntry.Quantity;\n ItemJnlLine.\"Invoiced Quantity\" := ItemLedgEntry.\"Invoiced Quantity\";\n ItemJnlLine.\"Invoiced Qty. (Base)\" := ItemLedgEntry.\"Invoiced Quantity\";\n+ ItemJnlLine.\"Unit Cost\" := CalcUnitCostFromItemLedgEntry(ItemLedgEntry);\n OnPostCorrectiveItemLedgEntriesOnBeforeRun(ItemJnlLine, ItemLedgEntry);\n ItemJnlPostLine.Run(ItemJnlLine);\n until ItemLedgEntry.Next() = 0;\n end;\n \n+ local procedure CalcUnitCostFromItemLedgEntry(var ItemLedgEntry: Record \"Item Ledger Entry\"): Decimal\n+ begin\n+ ItemLedgEntry.CalcFields(\"Cost Amount (Actual)\");\n+ if ItemLedgEntry.Quantity <> 0 then\n+ exit(Abs(ItemLedgEntry.\"Cost Amount (Actual)\" / ItemLedgEntry.Quantity));\n+ exit(0);\n+ end;\n+\n local procedure InsertNewShipmentLine(OldTransShptLine: Record \"Transfer Shipment Line\"; ItemShptEntryNo: Integer; DocLineNo: Integer)\n var\n NewTransShptLine: Record \"Transfer Shipment Line\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137038'\nCodeunit 137038 SCM Transfers\n Testfunction AdjustCostOfUndoneTransferShipment Failure (4.68 seconds)\n Error:\n Unit Cost must be equal to '111.96' in Item: No.=GL00000000. Current value is '24.87'.\n Call Stack:\n \"SCM Transfers\"(CodeUnit 137038).AdjustCostOfUndoneTransferShipment line 45 - Tests-SCM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 799.0, "llm_duration": null, "turn_count": 50, "prompt_tokens": 2600000, "completion_tokens": 36300, "tool_usage": {"grep": 37, "view": 18, "report_intent": 3, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-175765__cf-2", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al\nindex b47fc326..868fe925 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al\n@@ -92,6 +92,8 @@ codeunit 9030 \"Undo Transfer Shipment\"\n CheckTransferShptLine(TransShptLine);\n until TransShptLine.Next() = 0;\n \n+ MakeInventoryAdjustment();\n+\n TransShptLine.FindSet();\n repeat\n OnCodeOnBeforeUndoLoop(TransShptLine);\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137038'\nCodeunit 137038 SCM Transfers\n Testfunction AdjustCostOfUndoneTransferShipment Failure (4.9 seconds)\n Error:\n Unit Cost must be equal to '111.96' in Item: No.=GL00000000. Current value is '24.87'.\n Call Stack:\n \"SCM Transfers\"(CodeUnit 137038).AdjustCostOfUndoneTransferShipment line 46 - Tests-SCM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 57.0, "llm_duration": null, "turn_count": 6, "prompt_tokens": 156700, "completion_tokens": 1500, "tool_usage": {"grep": 3, "view": 2, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-175765__cf-3", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Costing/InventoryAdjustment.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Costing/InventoryAdjustment.Codeunit.al\nindex a12484a4..3f685550 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Costing/InventoryAdjustment.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Costing/InventoryAdjustment.Codeunit.al\n@@ -699,9 +699,9 @@ codeunit 5895 \"Inventory Adjustment\" implements \"Inventory Adjustment\"\n OutbndItemLedgEntry.Get(InbndItemApplnEntry.\"Outbound Item Entry No.\");\n CalcItemApplnEntryOldCost(TempOldCostElementBuf, OutbndItemLedgEntry, InbndItemApplnEntry.Quantity);\n \n- InbndItemLedgEntry.Get(InbndItemApplnEntry.\"Item Ledger Entry No.\");\n+ InbndItemLedgEntry.Get(InbndItemApplnEntry.\"Inbound Item Entry No.\");\n InbndValueEntry.SetCurrentKey(\"Item Ledger Entry No.\", \"Document No.\");\n- InbndValueEntry.SetRange(\"Item Ledger Entry No.\", InbndItemApplnEntry.\"Item Ledger Entry No.\");\n+ InbndValueEntry.SetRange(\"Item Ledger Entry No.\", InbndItemApplnEntry.\"Inbound Item Entry No.\");\n OnAdjustAppliedInbndEntriesOnAfterSetFilter(InbndValueEntry);\n InbndValueEntry.FindSet();\n repeat\ndiff --git a/App/Layers/W1/BaseApp/Inventory/Ledger/ItemApplicationEntry.Table.al b/App/Layers/W1/BaseApp/Inventory/Ledger/ItemApplicationEntry.Table.al\nindex d8494729..02df3fea 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Ledger/ItemApplicationEntry.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Ledger/ItemApplicationEntry.Table.al\n@@ -170,7 +170,7 @@ table 339 \"Item Application Entry\"\n SetCurrentKey(\n \"Outbound Item Entry No.\", \"Item Ledger Entry No.\", \"Cost Application\", \"Transferred-from Entry No.\");\n SetRange(\"Outbound Item Entry No.\", OutbndItemLedgEntryNo);\n- SetFilter(\"Item Ledger Entry No.\", '<>%1', OutbndItemLedgEntryNo);\n+ SetFilter(\"Inbound Item Entry No.\", '<>%1', OutbndItemLedgEntryNo);\n SetRange(\"Transferred-from Entry No.\", 0);\n if IsCostApplication then\n SetRange(\"Cost Application\", true);\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137038'\nCodeunit 137038 SCM Transfers\n Testfunction AdjustCostOfUndoneTransferShipment Failure (4.65 seconds)\n Error:\n Unit Cost must be equal to '111.96' in Item: No.=GL00000000. Current value is '24.87'.\n Call Stack:\n \"SCM Transfers\"(CodeUnit 137038).AdjustCostOfUndoneTransferShipment line 47 - Tests-SCM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 1594.0, "llm_duration": null, "turn_count": 71, "prompt_tokens": 4900000, "completion_tokens": 79300, "tool_usage": {"grep": 43, "view": 36, "report_intent": 3, "glob": 2, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-176082__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\nindex 5fe44b45..78380aea 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\n@@ -1304,7 +1304,6 @@ table 5740 \"Transfer Header\"\n TempPurchRcptHeader: Record \"Purch. Rcpt. Header\" temporary;\n PostedPurchaseReceipts: Page \"Posted Purchase Receipts\";\n begin\n- PurchRcptHeader.SetRange(\"Location Code\", \"Transfer-from Code\");\n PostedPurchaseReceipts.SetTableView(PurchRcptHeader);\n PostedPurchaseReceipts.LookupMode := true;\n if PostedPurchaseReceipts.RunModal() = ACTION::LookupOK then begin\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137038'\nCodeunit 137038 SCM Transfers\n Testfunction GetReceiptLinesShowListOfPostedPurchRcptsHavingTransferFromCodeInLocationCodeOfPurchRcptLines Failure (10.503 seconds)\n Error:\n Assert.AreEqual failed. Expected:<3> (Integer). Actual:<0> (Integer). Appl.-to Item Entry must be 3 in Transfer Line..\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"SCM Transfers\"(CodeUnit 137038).GetReceiptLinesShowListOfPostedPurchRcptsHavingTransferFromCodeInLocationCodeOfPurchRcptLines line 80 - Tests-SCM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 69.0, "llm_duration": null, "turn_count": 8, "prompt_tokens": 205200, "completion_tokens": 2100, "tool_usage": {"grep": 4, "view": 4, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-176082__cf-2", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\nindex 5fe44b45..2e35e4f7 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\n@@ -1301,12 +1301,29 @@ table 5740 \"Transfer Header\"\n procedure GetReceiptLines()\n var\n PurchRcptHeader: Record \"Purch. Rcpt. Header\";\n+ PurchRcptLine: Record \"Purch. Rcpt. Line\";\n TempPurchRcptHeader: Record \"Purch. Rcpt. Header\" temporary;\n+ SelectionFilterManagement: Codeunit SelectionFilterManagement;\n PostedPurchaseReceipts: Page \"Posted Purchase Receipts\";\n+ RecRef: RecordRef;\n begin\n- PurchRcptHeader.SetRange(\"Location Code\", \"Transfer-from Code\");\n+ PurchRcptLine.SetRange(Type, PurchRcptLine.Type::Item);\n+ PurchRcptLine.SetRange(\"Location Code\", \"Transfer-from Code\");\n+ if PurchRcptLine.FindSet() then\n+ repeat\n+ if not TempPurchRcptHeader.Get(PurchRcptLine.\"Document No.\") then begin\n+ TempPurchRcptHeader.Init();\n+ TempPurchRcptHeader.\"No.\" := PurchRcptLine.\"Document No.\";\n+ TempPurchRcptHeader.Insert();\n+ end;\n+ until PurchRcptLine.Next() = 0;\n+\n+ RecRef.GetTable(TempPurchRcptHeader);\n+ PurchRcptHeader.SetFilter(\"No.\", SelectionFilterManagement.GetSelectionFilter(RecRef, TempPurchRcptHeader.FieldNo(\"No.\")));\n PostedPurchaseReceipts.SetTableView(PurchRcptHeader);\n PostedPurchaseReceipts.LookupMode := true;\n+ TempPurchRcptHeader.Reset();\n+ TempPurchRcptHeader.DeleteAll();\n if PostedPurchaseReceipts.RunModal() = ACTION::LookupOK then begin\n PostedPurchaseReceipts.GetSelectedRecords(TempPurchRcptHeader);\n CreateTransferLinesFromSelectedPurchReceipts(TempPurchRcptHeader);\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137038'\nCodeunit 137038 SCM Transfers\n Testfunction GetReceiptLinesShowListOfPostedPurchRcptsHavingTransferFromCodeInLocationCodeOfPurchRcptLines Failure (10.074 seconds)\n Error:\n Assert.AreEqual failed. Expected:<3> (Integer). Actual:<0> (Integer). Appl.-to Item Entry must be 3 in Transfer Line..\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"SCM Transfers\"(CodeUnit 137038).GetReceiptLinesShowListOfPostedPurchRcptsHavingTransferFromCodeInLocationCodeOfPurchRcptLines line 80 - Tests-SCM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 103.0, "llm_duration": null, "turn_count": 7, "prompt_tokens": 180900, "completion_tokens": 4600, "tool_usage": {"grep": 4, "view": 3, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-176082__cf-3", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\nindex 5fe44b45..2d012a10 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\n@@ -1377,6 +1377,13 @@ table 5740 \"Transfer Header\"\n ItemTrackingDocMgt.CopyItemLedgerEntriesToTemp(TempItemLedgerEntry, ItemLedgerEntry);\n ItemTrackingMgt.CopyItemLedgEntryTrkgToTransferLine(TempItemLedgerEntry, TransferLine);\n \n+ if ItemLedgerEntry.Count = 1 then\n+ if ItemLedgerEntry.FindFirst() then\n+ if not ItemLedgerEntry.TrackingExists() then begin\n+ TransferLine.Validate(\"Appl.-to Item Entry\", ItemLedgerEntry.\"Entry No.\");\n+ TransferLine.Modify(true);\n+ end;\n+\n OnAfterAddTransferLineFromReceiptLine(TransferLine, PurchRcptLine, TempItemLedgerEntry, Rec);\n end;\n \n", "error_message": null, "metrics": {"execution_time": 207.0, "llm_duration": null, "turn_count": 20, "prompt_tokens": 644700, "completion_tokens": 7500, "tool_usage": {"grep": 15, "view": 5, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-176150__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al b/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\nindex 55d3fbad..6823f82f 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\n@@ -645,6 +645,8 @@ page 5510 \"Production Journal\"\n ItemJnlLine: Record \"Item Journal Line\";\n begin\n MarkRelevantRec(ItemJnlLine);\n+ ItemJnlLine.SetRange(\"Order Type\", ItemJnlLine.\"Order Type\"::Production);\n+ ItemJnlLine.SetRange(\"Order No.\", ProdOrder.\"No.\");\n ItemJnlLine.PreviewPostItemJnlFromProduction();\n \n SetFilterGroup();\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137072'\nCodeunit 137072 SCM Production Orders II\n Testfunction PreviewPostingOfProductionJournalPostsCorrectConsumptionILE Failure (6.167 seconds)\n Error:\n Unhandled UI: Message There is nothing to post because the journal does not contain a quantity or amount.\n Call Stack:\n \"Production Journal Mgt\"(CodeUnit 5510).Handling line 30 - Base Application by Microsoft\n \"Released Prod. Order Lines\"(Page 99000832).ShowProductionJournal line 10 - Base Application by Microsoft\n \"Released Prod. Order Lines\"(Page 99000832).\"ProductionJournal - OnAction\"(Trigger) line 2 - Base Application by Microsoft", "metrics": {"execution_time": 823.0, "llm_duration": null, "turn_count": 47, "prompt_tokens": 2200000, "completion_tokens": 37100, "tool_usage": {"grep": 23, "view": 27, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-176150__cf-2", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al b/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\nindex 55d3fbad..b22bf513 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\n@@ -1015,7 +1015,7 @@ page 5510 \"Production Journal\"\n \n protected procedure MarkRelevantRec(var ItemJournalLine: Record \"Item Journal Line\")\n begin\n- ItemJournalLine := Rec;\n+ ItemJournalLine.Copy(Rec);\n if ItemJournalLine.FindSet() then begin\n repeat\n case ItemJournalLine.\"Entry Type\" of\n", "error_message": null, "metrics": {"execution_time": 308.0, "llm_duration": null, "turn_count": 20, "prompt_tokens": 848300, "completion_tokens": 14200, "tool_usage": {"grep": 16, "view": 6, "glob": 1, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-176194__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Page.al b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Page.al\nindex 0893904c..09b7d9ce 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Page.al\n@@ -310,8 +310,6 @@ page 5814 \"Item Charge Assignment (Sales)\"\n ItemChargeAssgntSales: Record \"Item Charge Assignment (Sales)\";\n ShipmentLines: Page \"Sales Shipment Lines\";\n begin\n- SalesLine2.TestField(\"Qty. to Invoice\");\n-\n ItemChargeAssgntSales.SetRange(\"Document Type\", Rec.\"Document Type\");\n ItemChargeAssgntSales.SetRange(\"Document No.\", Rec.\"Document No.\");\n ItemChargeAssgntSales.SetRange(\"Document Line No.\", Rec.\"Document Line No.\");\ndiff --git a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al\nindex 7cd86681..54a3ab82 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al\n@@ -58,8 +58,6 @@ table 5809 \"Item Charge Assignment (Sales)\"\n trigger OnValidate()\n begin\n SalesLine.Get(\"Document Type\", \"Document No.\", \"Document Line No.\");\n- if Rec.\"Qty. to Assign\" <> xRec.\"Qty. to Assign\" then\n- SalesLine.TestField(\"Qty. to Invoice\");\n TestField(\"Applies-to Doc. Line No.\");\n if (\"Qty. to Assign\" <> 0) and (\"Applies-to Doc. Type\" = \"Document Type\") then\n if SalesLineInvoiced() then\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134329'\nCodeunit 134329 ERM Purchase Return Order\n Testfunction GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToReceiveIsBlankInPurchPayablesSetup Failure (9.97 seconds)\n Error:\n Qty. to Invoice must have a value in Purchase Line: Document Type=Return Order, Document No.=1001, Line No.=20000. It cannot be zero or empty.\n Call Stack:\n \"Item Charge Assignment (Purch)\"(Table 5805).\"Qty. to Assign - OnValidate\"(Trigger) line 4 - Base Application by Microsoft\n \"Item Charge Assgnt. (Purch.)\"(CodeUnit 5805).InsertItemChargeAssignmentWithValuesTo line 20 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyFromPurchLineItemChargeAssign line 47 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyPurchInvLinesToDoc line 144 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyPurchaseLinesToDoc line 15 - Base Application by Microsoft\n \"Posted Purchase Document Lines\"(Page 5855).CopyLineToDoc line 23 - Base Application by Microsoft\n \"Purchase Header\"(Table 38).GetPstdDocLinesToReverse line 9 - Base Application by Microsoft\n \"Purchase Return Order\"(Page 6640).\"GetPostedDocumentLinesToReverse - OnAction\"(Trigger) line 2 - Base Application by Microsoft\nSetting test codeunit range '134387'\nCodeunit 134387 ERM Sales Documents III\n Testfunction GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToShipIsBlankInSalesReceiSetup Success (3.81 seconds)\n\u001b[32m[16:12:13] Tests passed for Codeunit 134387\u001b[0m", "metrics": {"execution_time": 47.0, "llm_duration": null, "turn_count": 5, "prompt_tokens": 80600, "completion_tokens": 1700, "tool_usage": {"grep": 1, "glob": 1, "view": 4, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-176194__cf-2", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesLine.Table.al b/App/Layers/W1/BaseApp/Sales/Document/SalesLine.Table.al\nindex f6e57fd4..2d17e5be 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesLine.Table.al\n@@ -3835,7 +3835,8 @@ table 37 \"Sales Line\"\n \n GetSalesSetup();\n if (SalesSetup.\"Default Quantity to Ship\" = SalesSetup.\"Default Quantity to Ship\"::Remainder) or\n- (\"Document Type\" = \"Document Type\"::Invoice)\n+ (\"Document Type\" = \"Document Type\"::Invoice) or\n+ (Type = Type::\"Charge (Item)\")\n then begin\n \"Qty. to Ship\" := \"Outstanding Quantity\";\n \"Qty. to Ship (Base)\" := \"Outstanding Qty. (Base)\";\n@@ -3862,7 +3863,8 @@ table 37 \"Sales Line\"\n \n GetSalesSetup();\n if (SalesSetup.\"Default Quantity to Ship\" = SalesSetup.\"Default Quantity to Ship\"::Remainder) or\n- (\"Document Type\" = \"Document Type\"::\"Credit Memo\")\n+ (\"Document Type\" = \"Document Type\"::\"Credit Memo\") or\n+ (Type = Type::\"Charge (Item)\")\n then begin\n \"Return Qty. to Receive\" := \"Outstanding Quantity\";\n \"Return Qty. to Receive (Base)\" := \"Outstanding Qty. (Base)\";\n@@ -7133,14 +7135,18 @@ table 37 \"Sales Line\"\n if (\"Document Type\" = \"Document Type\"::Order) or (\"Document Type\" = \"Document Type\"::Quote) then begin\n \"Qty. to Ship\" := 0;\n \"Qty. to Ship (Base)\" := 0;\n- \"Qty. to Invoice\" := 0;\n- \"Qty. to Invoice (Base)\" := 0;\n+ if Type <> Type::\"Charge (Item)\" then begin\n+ \"Qty. to Invoice\" := 0;\n+ \"Qty. to Invoice (Base)\" := 0;\n+ end;\n end;\n if \"Document Type\" = \"Document Type\"::\"Return Order\" then begin\n \"Return Qty. to Receive\" := 0;\n \"Return Qty. to Receive (Base)\" := 0;\n- \"Qty. to Invoice\" := 0;\n- \"Qty. to Invoice (Base)\" := 0;\n+ if Type <> Type::\"Charge (Item)\" then begin\n+ \"Qty. to Invoice\" := 0;\n+ \"Qty. to Invoice (Base)\" := 0;\n+ end;\n end;\n end;\n \n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134329'\nCodeunit 134329 ERM Purchase Return Order\n Testfunction GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToReceiveIsBlankInPurchPayablesSetup Failure (11.714 seconds)\n Error:\n Qty. to Invoice must have a value in Purchase Line: Document Type=Return Order, Document No.=1001, Line No.=20000. It cannot be zero or empty.\n Call Stack:\n \"Item Charge Assignment (Purch)\"(Table 5805).\"Qty. to Assign - OnValidate\"(Trigger) line 4 - Base Application by Microsoft\n \"Item Charge Assgnt. (Purch.)\"(CodeUnit 5805).InsertItemChargeAssignmentWithValuesTo line 20 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyFromPurchLineItemChargeAssign line 47 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyPurchInvLinesToDoc line 144 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyPurchaseLinesToDoc line 15 - Base Application by Microsoft\n \"Posted Purchase Document Lines\"(Page 5855).CopyLineToDoc line 23 - Base Application by Microsoft\n \"Purchase Header\"(Table 38).GetPstdDocLinesToReverse line 9 - Base Application by Microsoft\n \"Purchase Return Order\"(Page 6640).\"GetPostedDocumentLinesToReverse - OnAction\"(Trigger) line 2 - Base Application by Microsoft\nSetting test codeunit range '134387'\nCodeunit 134387 ERM Sales Documents III\n Testfunction GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToShipIsBlankInSalesReceiSetup Success (4.327 seconds)\n\u001b[32m[16:12:15] Tests passed for Codeunit 134387\u001b[0m", "metrics": {"execution_time": 821.0, "llm_duration": null, "turn_count": 78, "prompt_tokens": 5800000, "completion_tokens": 33400, "tool_usage": {"grep": 51, "view": 26, "glob": 2, "powershell": 4, "report_intent": 1, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-176194__cf-3", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al\nindex 7cd86681..54a3ab82 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al\n@@ -58,8 +58,6 @@ table 5809 \"Item Charge Assignment (Sales)\"\n trigger OnValidate()\n begin\n SalesLine.Get(\"Document Type\", \"Document No.\", \"Document Line No.\");\n- if Rec.\"Qty. to Assign\" <> xRec.\"Qty. to Assign\" then\n- SalesLine.TestField(\"Qty. to Invoice\");\n TestField(\"Applies-to Doc. Line No.\");\n if (\"Qty. to Assign\" <> 0) and (\"Applies-to Doc. Type\" = \"Document Type\") then\n if SalesLineInvoiced() then\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134329'\nCodeunit 134329 ERM Purchase Return Order\n Testfunction GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToReceiveIsBlankInPurchPayablesSetup Failure (10.23 seconds)\n Error:\n Qty. to Invoice must have a value in Purchase Line: Document Type=Return Order, Document No.=1001, Line No.=20000. It cannot be zero or empty.\n Call Stack:\n \"Item Charge Assignment (Purch)\"(Table 5805).\"Qty. to Assign - OnValidate\"(Trigger) line 4 - Base Application by Microsoft\n \"Item Charge Assgnt. (Purch.)\"(CodeUnit 5805).InsertItemChargeAssignmentWithValuesTo line 20 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyFromPurchLineItemChargeAssign line 47 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyPurchInvLinesToDoc line 144 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyPurchaseLinesToDoc line 15 - Base Application by Microsoft\n \"Posted Purchase Document Lines\"(Page 5855).CopyLineToDoc line 23 - Base Application by Microsoft\n \"Purchase Header\"(Table 38).GetPstdDocLinesToReverse line 9 - Base Application by Microsoft\n \"Purchase Return Order\"(Page 6640).\"GetPostedDocumentLinesToReverse - OnAction\"(Trigger) line 2 - Base Application by Microsoft\nSetting test codeunit range '134387'\nCodeunit 134387 ERM Sales Documents III\n Testfunction GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToShipIsBlankInSalesReceiSetup Success (3.784 seconds)\n\u001b[32m[15:52:15] Tests passed for Codeunit 134387\u001b[0m", "metrics": {"execution_time": 43.0, "llm_duration": null, "turn_count": 5, "prompt_tokens": 91300, "completion_tokens": 1500, "tool_usage": {"grep": 4, "report_intent": 1, "edit": 1, "view": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-176426__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\nindex d639a562..b9a060f5 100644\n--- a/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\n@@ -719,8 +719,8 @@ codeunit 5870 \"Calculate BOM Tree\"\n BOMBuffer.RoundCosts(1 / LotSize);\n end else\n if BOMBuffer.Type = BOMBuffer.Type::Item then begin\n+ BOMBuffer.CalcOvhdCost();\n BOMBuffer.RoundCosts(1 / LotSize);\n- BOMBuffer.GetItemCosts();\n end;\n \n BOMBuffer.CalcUnitCost();\n", "error_message": null, "metrics": {"execution_time": 163.0, "llm_duration": null, "turn_count": 11, "prompt_tokens": 302000, "completion_tokens": 7000, "tool_usage": {"grep": 6, "view": 7, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-176426__cf-2", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\nindex d639a562..bb95a2f8 100644\n--- a/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\n@@ -713,15 +713,10 @@ codeunit 5870 \"Calculate BOM Tree\"\n BOMBuffer.GetResCosts();\n end;\n BOMBuffer.RoundCosts(1 / LotSize);\n- end else\n- if HasBomStructure(BOMBuffer.\"No.\") then begin\n- BOMBuffer.CalcOvhdCost();\n- BOMBuffer.RoundCosts(1 / LotSize);\n- end else\n- if BOMBuffer.Type = BOMBuffer.Type::Item then begin\n- BOMBuffer.RoundCosts(1 / LotSize);\n- BOMBuffer.GetItemCosts();\n- end;\n+ end else begin\n+ BOMBuffer.CalcOvhdCost();\n+ BOMBuffer.RoundCosts(1 / LotSize);\n+ end;\n \n BOMBuffer.CalcUnitCost();\n BOMBuffer.Modify();\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137391'\nCodeunit 137391 SCM - BOM Cost Shares Report\n Testfunction RolledUpMaterialAndCapacityCostWithRoutingAndNoBOM Failure (3.477 seconds)\n Error:\n AssertEquals for Field: Rolled-up Material Cost Expected = '497.28', Actual = ''\n Call Stack:\n \"SCM - BOM Cost Shares Report\"(CodeUnit 137391).VerifyParentItemMaterialAndCapacityCost line 7 - Tests-SCM by Microsoft\n \"SCM - BOM Cost Shares Report\"(CodeUnit 137391).RolledUpMaterialAndCapacityCostWithRoutingAndNoBOM line 34 - Tests-SCM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 223.0, "llm_duration": null, "turn_count": 16, "prompt_tokens": 417700, "completion_tokens": 9200, "tool_usage": {"grep": 9, "view": 10, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-177493__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\nindex bb47904d..723b506b 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n@@ -58,6 +58,10 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if Item.Get(\"No.\") then\n+ if Item.Reserve = Item.Reserve::Never then\n+ CurrReport.Skip();\n+\n if not CheckIfSalesLineMeetsReservedFromStockSetting(Abs(\"Outstanding Qty. (Base)\"), ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -107,6 +111,10 @@ report 302 \"Get Demand To Reserve\"\n var\n Item: Record Item;\n begin\n+ if Item.Get(\"Item No.\") then\n+ if Item.Reserve = Item.Reserve::Never then\n+ CurrReport.Skip();\n+\n if not CheckIfTransferLineMeetsReservedFromStockSetting(\"Outstanding Qty. (Base)\", ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -158,6 +166,10 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if Item.Get(\"No.\") then\n+ if Item.Reserve = Item.Reserve::Never then\n+ CurrReport.Skip();\n+\n if not CheckIfServiceLineMeetsReservedFromStockSetting(Abs(\"Outstanding Qty. (Base)\"), ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -208,6 +220,10 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if Item.Get(\"No.\") then\n+ if Item.Reserve = Item.Reserve::Never then\n+ CurrReport.Skip();\n+\n if not CheckIfJobPlngLineMeetsReservedFromStockSetting(\"Remaining Qty. (Base)\", ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -259,6 +275,10 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if Item.Get(\"No.\") then\n+ if Item.Reserve = Item.Reserve::Never then\n+ CurrReport.Skip();\n+\n if not CheckIfAssemblyLineMeetsReservedFromStockSetting(\"Remaining Quantity (Base)\", ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -309,6 +329,10 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if Item.Get(\"Item No.\") then\n+ if Item.Reserve = Item.Reserve::Never then\n+ CurrReport.Skip();\n+\n if not CheckIfProdOrderCompMeetsReservedFromStockSetting(\"Remaining Qty. (Base)\", ReservedFromStock)\n then\n CurrReport.Skip();\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137023'\nCodeunit 137023 SCM Reservation Worksheet\n Testfunction ItemWithReserveNeverNotInReservationWorksheet Failure (6.93 seconds)\n Error:\n Assert.IsFalse failed. Sales demand with Reserve=Never should appear (filtering deferred to post-processing).\n Call Stack:\n Assert(CodeUnit 130000).IsFalse line 3 - Tests-TestLibraries by Microsoft\n \"SCM Reservation Worksheet\"(CodeUnit 137023).ItemWithReserveNeverNotInReservationWorksheet line 50 - Tests-SCM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 119.0, "llm_duration": null, "turn_count": 11, "prompt_tokens": 274900, "completion_tokens": 5900, "tool_usage": {"grep": 6, "view": 5, "report_intent": 1, "edit": 6}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-177493__cf-2", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\nindex bb47904d..81b47f9a 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n@@ -58,6 +58,10 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if Item.Get(\"No.\") then\n+ if Item.Reserve = Item.Reserve::Never then\n+ CurrReport.Skip();\n+\n if not CheckIfSalesLineMeetsReservedFromStockSetting(Abs(\"Outstanding Qty. (Base)\"), ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -158,6 +162,10 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if Item.Get(\"No.\") then\n+ if Item.Reserve = Item.Reserve::Never then\n+ CurrReport.Skip();\n+\n if not CheckIfServiceLineMeetsReservedFromStockSetting(Abs(\"Outstanding Qty. (Base)\"), ReservedFromStock)\n then\n CurrReport.Skip();\n", "error_message": null, "metrics": {"execution_time": 76.0, "llm_duration": null, "turn_count": 8, "prompt_tokens": 173200, "completion_tokens": 3300, "tool_usage": {"grep": 5, "view": 7, "report_intent": 1, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-177493__cf-3", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\nindex bb47904d..bd9a4d3c 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n@@ -58,6 +58,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if Reserve = Enum::\"Reserve Method\"::Never then\n+ CurrReport.Skip();\n+\n if not CheckIfSalesLineMeetsReservedFromStockSetting(Abs(\"Outstanding Qty. (Base)\"), ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -107,6 +110,10 @@ report 302 \"Get Demand To Reserve\"\n var\n Item: Record Item;\n begin\n+ Item.SetLoadFields(Reserve);\n+ if Item.Get(\"Item No.\") and (Item.Reserve = Enum::\"Reserve Method\"::Never) then\n+ CurrReport.Skip();\n+\n if not CheckIfTransferLineMeetsReservedFromStockSetting(\"Outstanding Qty. (Base)\", ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -158,6 +165,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if Reserve = Enum::\"Reserve Method\"::Never then\n+ CurrReport.Skip();\n+\n if not CheckIfServiceLineMeetsReservedFromStockSetting(Abs(\"Outstanding Qty. (Base)\"), ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -208,6 +218,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if Reserve = Enum::\"Reserve Method\"::Never then\n+ CurrReport.Skip();\n+\n if not CheckIfJobPlngLineMeetsReservedFromStockSetting(\"Remaining Qty. (Base)\", ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -259,6 +272,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if Reserve = Enum::\"Reserve Method\"::Never then\n+ CurrReport.Skip();\n+\n if not CheckIfAssemblyLineMeetsReservedFromStockSetting(\"Remaining Quantity (Base)\", ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -309,6 +325,10 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ Item.SetLoadFields(Reserve);\n+ if Item.Get(\"Item No.\") and (Item.Reserve = Enum::\"Reserve Method\"::Never) then\n+ CurrReport.Skip();\n+\n if not CheckIfProdOrderCompMeetsReservedFromStockSetting(\"Remaining Qty. (Base)\", ReservedFromStock)\n then\n CurrReport.Skip();\n", "error_message": null, "metrics": {"execution_time": 394.0, "llm_duration": null, "turn_count": 46, "prompt_tokens": 1700000, "completion_tokens": 20400, "tool_usage": {"grep": 25, "view": 23, "report_intent": 2, "powershell": 2, "task": 1, "edit": 6}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-178045__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\nindex 7e739c29..71027697 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\n@@ -7130,7 +7130,7 @@ codeunit 22 \"Item Jnl.-Post Line\"\n ItemLedgerEntry.SetRange(Open, true);\n ItemLedgerEntry.SetFilter(\"Remaining Quantity\", '>=%1', -ItemJournalLine.\"Output Quantity (Base)\");\n if not ItemLedgerEntry.IsEmpty() then\n- if ItemLedgerEntry.Count = 1 then begin\n+ if ItemLedgerEntry.Count >= 1 then begin\n ItemLedgerEntry.FindFirst();\n exit(ItemLedgerEntry.\"Entry No.\");\n end;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137404'\nCodeunit 137404 SCM Manufacturing\n Testfunction ConsumptionIsPostedForMultipleILEsOfSameLotNo Failure (8.634 seconds)\n Error:\n You have insufficient quantity of Item GL00000000 on inventory.\n Call Stack:\n \"Production Journal Mgt\"(CodeUnit 5510).Handling line 30 - Base Application by Microsoft\n \"Released Prod. Order Lines\"(Page 99000832).ShowProductionJournal line 10 - Base Application by Microsoft\n \"Released Prod. Order Lines\"(Page 99000832).\"ProductionJournal - OnAction\"(Trigger) line 2 - Base Application by Microsoft", "metrics": {"execution_time": 2041.0, "llm_duration": null, "turn_count": 157, "prompt_tokens": 12200000, "completion_tokens": 78900, "tool_usage": {"grep": 86, "view": 57, "powershell": 14, "stop_powershell": 1, "report_intent": 2, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-179733__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al\nindex efa323e6..5376fec0 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al\n@@ -91,10 +91,11 @@ codeunit 1006 \"Copy Job\"\n TargetJobTask.Validate(\"Job No.\", TargetJob.\"No.\");\n TargetJobTask.Validate(\"Job Task No.\", SourceJobTask.\"Job Task No.\");\n TargetJobTask.TransferFields(SourceJobTask, false);\n- if SourceJob.\"Task Billing Method\" = SourceJob.\"Task Billing Method\"::\"Multiple customers\" then begin\n- TargetJobTask.SetHideValidationDialog(true);\n- TargetJobTask.Validate(\"Sell-to Customer No.\", '');\n- end;\n+ if SourceJob.\"Task Billing Method\" = SourceJob.\"Task Billing Method\"::\"Multiple customers\" then\n+ if SourceJobTask.\"Job Task Type\" <> SourceJobTask.\"Job Task Type\"::\"Begin-Total\" then begin\n+ TargetJobTask.SetHideValidationDialog(true);\n+ TargetJobTask.Validate(\"Sell-to Customer No.\", '');\n+ end;\n if TargetJobTask.\"WIP Method\" <> '' then begin\n TargetJobTask.Validate(\"WIP-Total\", TargetJobTask.\"WIP-Total\"::Total);\n TargetJobTask.Validate(\"WIP Method\", TargetJob.\"WIP Method\");\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136323'\nCodeunit 136323 Jobs - Multiple Customers\n Testfunction CopyTotalsProjectTasksTypeIntoProjectsWithMultipleCustomerBillingOption Failure (1.654 seconds)\n Error:\n Project Task Type must be equal to 'Posting' in Project Task: Project No.=ZZZJ002, Project Task No.=ZZZJT001. Current value is 'Begin-Total'.\n Call Stack:\n \"Job Task\"(Table 1001).\"Sell-to Customer No. - OnValidate\"(Trigger) line 3 - Base Application by Microsoft\n \"Job Task\"(Table 1001).InitCustomer line 9 - Base Application by Microsoft\n \"Job Task\"(Table 1001).OnInsert(Trigger) line 20 - Base Application by Microsoft\n \"Copy Job\"(CodeUnit 1006).CopyJobTasks line 44 - Base Application by Microsoft\n \"Jobs - Multiple Customers\"(CodeUnit 136323).CopyTotalsProjectTasksTypeIntoProjectsWithMultipleCustomerBillingOption line 34 - Tests-Job by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 68.0, "llm_duration": null, "turn_count": 9, "prompt_tokens": 248700, "completion_tokens": 1800, "tool_usage": {"grep": 5, "view": 5, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-180484__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/eServices/EDocument/ReleaseIncomingDocument.Codeunit.al b/App/Layers/W1/BaseApp/eServices/EDocument/ReleaseIncomingDocument.Codeunit.al\nindex 4e5ba08c..c8a6bbc5 100644\n--- a/App/Layers/W1/BaseApp/eServices/EDocument/ReleaseIncomingDocument.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/eServices/EDocument/ReleaseIncomingDocument.Codeunit.al\n@@ -48,7 +48,10 @@ codeunit 132 \"Release Incoming Document\"\n if IncomingDocument.Status = IncomingDocument.Status::New then\n exit;\n ClearReleaseFields(IncomingDocument);\n- IncomingDocument.Status := IncomingDocument.Status::New;\n+ if IncomingDocument.\"Document No.\" <> '' then\n+ IncomingDocument.Status := IncomingDocument.Status::Created\n+ else\n+ IncomingDocument.Status := IncomingDocument.Status::New;\n \n IncomingDocument.Modify(true);\n end;\n", "error_message": null, "metrics": {"execution_time": 60.0, "llm_duration": null, "turn_count": 7, "prompt_tokens": 149200, "completion_tokens": 2000, "tool_usage": {"grep": 5, "view": 2, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-180484__cf-2", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/eServices/EDocument/ReleaseIncomingDocument.Codeunit.al b/App/Layers/W1/BaseApp/eServices/EDocument/ReleaseIncomingDocument.Codeunit.al\nindex 4e5ba08c..90d66946 100644\n--- a/App/Layers/W1/BaseApp/eServices/EDocument/ReleaseIncomingDocument.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/eServices/EDocument/ReleaseIncomingDocument.Codeunit.al\n@@ -45,7 +45,7 @@ codeunit 132 \"Release Incoming Document\"\n \n procedure Reopen(var IncomingDocument: Record \"Incoming Document\")\n begin\n- if IncomingDocument.Status = IncomingDocument.Status::New then\n+ if IncomingDocument.Status in [IncomingDocument.Status::New, IncomingDocument.Status::Created] then\n exit;\n ClearReleaseFields(IncomingDocument);\n IncomingDocument.Status := IncomingDocument.Status::New;\n", "error_message": null, "metrics": {"execution_time": 33.0, "llm_duration": null, "turn_count": 4, "prompt_tokens": 73000, "completion_tokens": 1100, "tool_usage": {"grep": 2, "view": 1, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-182354__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al b/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al\nindex 737182d0..36e53ab0 100644\n--- a/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al\n+++ b/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al\n@@ -28,7 +28,7 @@ page 1318 \"Account Receivables KPIs\"\n begin\n CustLedgerEntry.SetRange(Open, true);\n CustLedgerEntry.SetFilter(\"Remaining Amount\", '>%1', 0);\n- CustLedgerEntry.SetFilter(\"Due Date\", '<=%1', WorkDate());\n+ CustLedgerEntry.SetFilter(\"Due Date\", '<=%1', GetFilterDate());\n CustomerLedgerEntries.SetTableView(CustLedgerEntry);\n CustomerLedgerEntries.Run();\n end;\n@@ -93,12 +93,19 @@ page 1318 \"Account Receivables KPIs\"\n SalesInvoicesDueNextWeekStyleExpr: Text;\n AverageCollectionDays: Decimal;\n \n+ local procedure GetFilterDate(): Date\n+ begin\n+ if Today() <> 0D then\n+ exit(Today());\n+ exit(WorkDate());\n+ end;\n+\n trigger OnInit()\n var\n CuesAndKPIs: Codeunit \"Cues And KPIs\";\n SalesInvoicesDueNextWeekStyle: Enum \"Cues And KPIs Style\";\n begin\n- Rec.SetRange(\"Overdue Date Filter\", 0D, WorkDate());\n+ Rec.SetRange(\"Overdue Date Filter\", 0D, GetFilterDate());\n if not Rec.Get() then begin\n Clear(Rec);\n Rec.Insert();\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134924'\nCodeunit 134924 ERM Cues\n Testfunction TotalOverdueLCYInFinanceCue Failure (5.736 seconds)\n Error:\n Assert.AreEqual failed. Expected:<> (Text). Actual:<50.17> (Text). The total overdue LCY amount is not calculated correctly..\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"ERM Cues\"(CodeUnit 134924).TotalOverdueLCYInFinanceCue line 38 - Tests-ERM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 59.0, "llm_duration": null, "turn_count": 7, "prompt_tokens": 130500, "completion_tokens": 1800, "tool_usage": {"grep": 3, "view": 2, "report_intent": 1, "edit": 3}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-183399__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\nindex 553ae9c0..d13ece2f 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n@@ -254,6 +254,7 @@ page 254 \"Purchase Journal\"\n field(DocumentAmount; DocumentAmount)\n {\n ApplicationArea = Basic, Suite;\n+ AutoFormatType = 1;\n AutoFormatExpression = Rec.\"Currency Code\";\n Caption = 'Document Amount';\n ToolTip = 'Specifies the total amount (including VAT) that the journal line consists of.';\ndiff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/SalesJournal.Page.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/SalesJournal.Page.al\nindex d63650ad..d3861f33 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/SalesJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/SalesJournal.Page.al\n@@ -246,6 +246,7 @@ page 253 \"Sales Journal\"\n field(DocumentAmount; DocumentAmount)\n {\n ApplicationArea = Basic, Suite;\n+ AutoFormatType = 1;\n AutoFormatExpression = Rec.\"Currency Code\";\n Caption = 'Document Amount';\n ToolTip = 'Specifies the total amount (including VAT) that the journal line consists of.';\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134918'\nCodeunit 134918 ERM Sales/Purchase Application\n Testfunction DocumentAmountInPurchJnlAcceptsMaxThreeDecimalPlacesValue Failure (4.553 seconds)\n Error:\n Assert.AreEqual failed. Expected:<1.7461> (Decimal). Actual:<1.75> (Decimal). The document amount is not correct. Expected: 1.7461, Actual: 1.75.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"ERM Sales/Purchase Application\"(CodeUnit 134918).DocumentAmountInPurchJnlAcceptsMaxThreeDecimalPlacesValue line 25 - Tests-ERM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 77.0, "llm_duration": null, "turn_count": 8, "prompt_tokens": 171400, "completion_tokens": 2400, "tool_usage": {"grep": 4, "view": 3, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-183399__cf-2", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\nindex 553ae9c0..920a93e9 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n@@ -1626,7 +1626,7 @@ page 254 \"Purchase Journal\"\n DimVisible8: Boolean;\n IsSimplePage: Boolean;\n CurrentJnlBatchName: Code[10];\n- DocumentAmount: Decimal;\n+ DocumentAmount: Decimal decimalplaces = 0 : 5;\n \n local procedure UpdateBalance()\n begin\ndiff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/SalesJournal.Page.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/SalesJournal.Page.al\nindex d63650ad..8969b41e 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/SalesJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/SalesJournal.Page.al\n@@ -1541,7 +1541,7 @@ page 253 \"Sales Journal\"\n ShowAllLinesEnabled: Boolean;\n IsSaaSExcelAddinEnabled: Boolean;\n IsSimplePage: Boolean;\n- DocumentAmount: Decimal;\n+ DocumentAmount: Decimal decimalplaces = 0 : 5;\n EmptyDocumentTypeErr: Label 'You must specify a document type for %1.', Comment = '%1 = Document number.';\n NegativeDocAmountErr: Label 'You must specify a positive amount as the document amount. If the journal line is for a document type that has a negative amount, the amount will be tracked correctly.';\n ActionOnlyAllowedForAllocationAccountsErr: Label 'This action is only available for lines that have Allocation Account set as Account Type or Balancing Account Type.';\n", "error_message": "Build or publish failed for App\\Layers\\W1\\BaseApp:\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Finance\\GeneralLedger\\Journal\\PurchaseJournal.Page.al(1629,33): error AL0104: Syntax error, ';' expected\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Finance\\GeneralLedger\\Journal\\PurchaseJournal.Page.al(1629,47): error AL0104: Syntax error, ':' expected\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Finance\\GeneralLedger\\Journal\\PurchaseJournal.Page.al(1629,47): error AL0107: Syntax error, identifier expected\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Finance\\GeneralLedger\\Journal\\PurchaseJournal.Page.al(1629,47): error AL0104: Syntax error, ';' expected\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Finance\\GeneralLedger\\Journal\\SalesJournal.Page.al(1544,33): error AL0104: Syntax error, ';' expected\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Finance\\GeneralLedger\\Journal\\SalesJournal.Page.al(1544,47): error AL0104: Syntax error, ':' expected\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Finance\\GeneralLedger\\Journal\\SalesJournal.Page.al(1544,47): error AL0107: Syntax error, identifier expected\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Finance\\GeneralLedger\\Journal\\SalesJournal.Page.al(1544,47): error AL0104: Syntax error, ';' expected", "metrics": {"execution_time": 68.0, "llm_duration": null, "turn_count": 7, "prompt_tokens": 146000, "completion_tokens": 1800, "tool_usage": {"grep": 6, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": false} +{"instance_id": "microsoftInternal__NAV-185488__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al b/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al\nindex bcd82095..38dbdfc0 100644\n--- a/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al\n@@ -624,12 +624,27 @@ codeunit 1521 \"Workflow Response Handling\"\n begin\n end;\n \n- local procedure CreateNotificationEntry(WorkflowStepInstance: Record \"Workflow Step Instance\"; ApprovalEntry: Record \"Approval Entry\")\n+ local procedure CreateNotificationEntry(WorkflowStepInstance: Record \"Workflow Step Instance\"; Variant: Variant)\n var\n+ ApprovalEntry: Record \"Approval Entry\";\n WorkflowStepArgument: Record \"Workflow Step Argument\";\n NotificationEntry: Record \"Notification Entry\";\n+ RecRef: RecordRef;\n IsHandled: Boolean;\n begin\n+ RecRef.GetTable(Variant);\n+ case RecRef.Number of\n+ DATABASE::\"Approval Entry\":\n+ ApprovalEntry := Variant;\n+ else begin\n+ ApprovalEntry.SetCurrentKey(\"Table ID\", \"Record ID to Approve\");\n+ ApprovalEntry.SetRange(\"Table ID\", RecRef.Number);\n+ ApprovalEntry.SetRange(\"Record ID to Approve\", RecRef.RecordId);\n+ if not ApprovalEntry.FindFirst() then\n+ exit;\n+ end;\n+ end;\n+\n IsHandled := false;\n OnBeforeCreateNotificationEntry(WorkflowStepInstance, ApprovalEntry, IsHandled);\n if IsHandled then\n", "error_message": null, "metrics": {"execution_time": 144.0, "llm_duration": null, "turn_count": 16, "prompt_tokens": 617000, "completion_tokens": 5500, "tool_usage": {"grep": 14, "view": 5, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-185792__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\nindex 53e7159a..dfedc162 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\n@@ -598,6 +598,10 @@ table 81 \"Gen. Journal Line\"\n Validate(\"VAT %\");\n Validate(\"Bal. VAT %\");\n UpdateLineBalance();\n+ if JobTaskIsSet() then begin\n+ CreateTempJobJnlLine();\n+ UpdatePricesFromJobJnlLine();\n+ end;\n end;\n end;\n }\n", "error_message": null, "metrics": {"execution_time": 64.0, "llm_duration": null, "turn_count": 8, "prompt_tokens": 184800, "completion_tokens": 1900, "tool_usage": {"grep": 4, "view": 3, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-188438__cf-1", "project": "Sustainability", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/Sustainability/app/src/Calculation/GLAccountsSubform.Page.al b/App/Apps/W1/Sustainability/app/src/Calculation/GLAccountsSubform.Page.al\nindex 3e39d840..8a140d9a 100644\n--- a/App/Apps/W1/Sustainability/app/src/Calculation/GLAccountsSubform.Page.al\n+++ b/App/Apps/W1/Sustainability/app/src/Calculation/GLAccountsSubform.Page.al\n@@ -8,6 +8,7 @@ page 6225 \"G/L Accounts Subform\"\n Editable = false;\n PageType = ListPart;\n SourceTable = \"G/L Account\";\n+ SourceTableView = where(\"Direct Posting\" = const(true));\n \n layout\n {\ndiff --git a/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al b/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al\nindex 4644c873..b2a0caa9 100644\n--- a/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al\n+++ b/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al\n@@ -2,6 +2,7 @@ namespace Microsoft.Sustainability.Calculation;\n \n using Microsoft.Sustainability.Journal;\n using Microsoft.Sustainability.Account;\n+using Microsoft.Finance.GeneralLedger.Account;\n using Microsoft.Finance.GeneralLedger.Ledger;\n \n codeunit 6218 \"Sustainability Calc. Mgt.\"\n@@ -70,7 +71,7 @@ codeunit 6218 \"Sustainability Calc. Mgt.\"\n begin\n FilterGLEntry(SustainAccountCategory, FromDate, ToDate, GLEntry);\n GLEntry.CalcSums(Amount);\n- exit(GLEntry.Amount);\n+ exit(Abs(GLEntry.Amount));\n end;\n \n internal procedure CollectGeneralLedgerAmount(var SustainabilityJnlLine: Record \"Sustainability Jnl. Line\")\n@@ -93,9 +94,15 @@ codeunit 6218 \"Sustainability Calc. Mgt.\"\n end;\n \n internal procedure FilterGLEntry(SustainAccountCategory: Record \"Sustain. Account Category\"; FromDate: Date; ToDate: Date; var GLEntry: Record \"G/L Entry\");\n+ var\n+ DirectPostingAccountFilter: Text;\n begin\n GLEntry.Reset();\n- GLEntry.SetFilter(\"G/L Account No.\", SustainAccountCategory.\"G/L Account Filter\");\n+ DirectPostingAccountFilter := GetDirectPostingAccountFilter(SustainAccountCategory.\"G/L Account Filter\");\n+ if DirectPostingAccountFilter <> '' then\n+ GLEntry.SetFilter(\"G/L Account No.\", DirectPostingAccountFilter)\n+ else\n+ GLEntry.SetRange(\"G/L Account No.\", '');\n GLEntry.SetFilter(\"Global Dimension 1 Code\", SustainAccountCategory.\"Global Dimension 1 Filter\");\n GLEntry.SetFilter(\"Global Dimension 2 Code\", SustainAccountCategory.\"Global Dimension 2 Filter\");\n if (FromDate <> 0D) or (ToDate <> 0D) then\n@@ -108,6 +115,22 @@ codeunit 6218 \"Sustainability Calc. Mgt.\"\n begin\n end;\n \n+ local procedure GetDirectPostingAccountFilter(GLAccountFilter: Text): Text\n+ var\n+ GLAccount: Record \"G/L Account\";\n+ AccountFilter: Text;\n+ begin\n+ GLAccount.SetFilter(\"No.\", GLAccountFilter);\n+ GLAccount.SetRange(\"Direct Posting\", true);\n+ if GLAccount.FindSet() then\n+ repeat\n+ if AccountFilter <> '' then\n+ AccountFilter += '|';\n+ AccountFilter += GLAccount.\"No.\";\n+ until GLAccount.Next() = 0;\n+ exit(AccountFilter);\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnBeforeCalculationEmissions(var IsHandled: Boolean; var SustainabilityJnlLine: Record \"Sustainability Jnl. Line\")\n begin\n", "error_message": null, "metrics": {"execution_time": 142.0, "llm_duration": null, "turn_count": 8, "prompt_tokens": 182500, "completion_tokens": 7300, "tool_usage": {"grep": 4, "view": 5, "report_intent": 1, "edit": 5}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-192565__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\nindex fb45dbcf..09b9b67c 100644\n--- a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n@@ -5365,6 +5365,7 @@ table 39 \"Purchase Line\"\n Amount := 0;\n \"VAT Base Amount\" := 0;\n \"Amount Including VAT\" := 0;\n+ NonDeductibleVAT.ClearNonDeductibleVAT(Rec);\n OnUpdateVATAmountsOnBeforePurchLineModify(Rec, PurchLine2);\n if (Quantity = 0) and (xRec.Quantity <> 0) and (xRec.Amount <> 0) then begin\n if \"Line No.\" <> 0 then\n", "error_message": null, "metrics": {"execution_time": 88.0, "llm_duration": null, "turn_count": 10, "prompt_tokens": 310400, "completion_tokens": 3200, "tool_usage": {"grep": 7, "view": 4, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-192565__cf-2", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\nindex fb45dbcf..b59c9d7a 100644\n--- a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n@@ -5365,6 +5365,7 @@ table 39 \"Purchase Line\"\n Amount := 0;\n \"VAT Base Amount\" := 0;\n \"Amount Including VAT\" := 0;\n+ NonDeductibleVAT.Update(Rec, Currency);\n OnUpdateVATAmountsOnBeforePurchLineModify(Rec, PurchLine2);\n if (Quantity = 0) and (xRec.Quantity <> 0) and (xRec.Amount <> 0) then begin\n if \"Line No.\" <> 0 then\n", "error_message": null, "metrics": {"execution_time": 108.0, "llm_duration": null, "turn_count": 14, "prompt_tokens": 438500, "completion_tokens": 4000, "tool_usage": {"grep": 11, "view": 6, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-192565__cf-3", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\nindex fb45dbcf..b59c9d7a 100644\n--- a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n@@ -5365,6 +5365,7 @@ table 39 \"Purchase Line\"\n Amount := 0;\n \"VAT Base Amount\" := 0;\n \"Amount Including VAT\" := 0;\n+ NonDeductibleVAT.Update(Rec, Currency);\n OnUpdateVATAmountsOnBeforePurchLineModify(Rec, PurchLine2);\n if (Quantity = 0) and (xRec.Quantity <> 0) and (xRec.Amount <> 0) then begin\n if \"Line No.\" <> 0 then\n", "error_message": null, "metrics": {"execution_time": 92.0, "llm_duration": null, "turn_count": 12, "prompt_tokens": 344300, "completion_tokens": 3000, "tool_usage": {"grep": 5, "view": 7, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-193853__cf-1", "project": "EnforcedDigitalVouchers", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al b/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\nindex 72dc980e..1db6d789 100644\n--- a/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\n+++ b/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\n@@ -268,12 +268,31 @@ codeunit 5579 \"Digital Voucher Impl.\"\n Clear(IncomingDocument);\n if not IncomingDocument.FindFromIncomingDocumentEntryNo(MainRecordRef, IncomingDocument) then\n IncomingDocument.FindByDocumentNoAndPostingDate(MainRecordRef, IncomingDocument);\n+ if (IncomingDocument.\"Entry No.\" = 0) and (MainRecordRef.Number = Database::\"Gen. Journal Line\") then\n+ FindIncomingDocFromSiblingGenJnlLine(IncomingDocument, MainRecordRef);\n if IncomingDocument.\"Entry No.\" = 0 then\n exit(false);\n IncomingDocumentAttachment.SetRange(\"Incoming Document Entry No.\", IncomingDocument.\"Entry No.\");\n exit(true);\n end;\n \n+ local procedure FindIncomingDocFromSiblingGenJnlLine(var IncomingDocument: Record \"Incoming Document\"; MainRecordRef: RecordRef)\n+ var\n+ GenJournalLine: Record \"Gen. Journal Line\";\n+ SiblingGenJournalLine: Record \"Gen. Journal Line\";\n+ begin\n+ MainRecordRef.SetTable(GenJournalLine);\n+ SiblingGenJournalLine.SetRange(\"Journal Template Name\", GenJournalLine.\"Journal Template Name\");\n+ SiblingGenJournalLine.SetRange(\"Journal Batch Name\", GenJournalLine.\"Journal Batch Name\");\n+ SiblingGenJournalLine.SetRange(\"Posting Date\", GenJournalLine.\"Posting Date\");\n+ SiblingGenJournalLine.SetRange(\"Document No.\", GenJournalLine.\"Document No.\");\n+ SiblingGenJournalLine.SetFilter(\"Incoming Document Entry No.\", '<>0');\n+ SiblingGenJournalLine.SetFilter(\"Line No.\", '<>%1', GenJournalLine.\"Line No.\");\n+ if SiblingGenJournalLine.FindFirst() then\n+ if not IncomingDocument.Get(SiblingGenJournalLine.\"Incoming Document Entry No.\") then\n+ Clear(IncomingDocument);\n+ end;\n+\n local procedure AttachGenJnlLinePDFToIncomingDocument(RecRef: RecordRef)\n var\n GenJournalLine: Record \"Gen. Journal Line\";\n", "error_message": null, "metrics": {"execution_time": 344.0, "llm_duration": null, "turn_count": 30, "prompt_tokens": 1300000, "completion_tokens": 16000, "tool_usage": {"grep": 25, "view": 16, "report_intent": 2, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-193853__cf-2", "project": "EnforcedDigitalVouchers", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al b/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\nindex 72dc980e..6b8c9ac9 100644\n--- a/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\n+++ b/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\n@@ -482,9 +482,30 @@ codeunit 5579 \"Digital Voucher Impl.\"\n exit;\n if not GetDigitalVoucherEntrySetup(DigitalVoucherEntrySetup, DigitalVoucherEntry.GetVoucherEntryTypeFromGenJnlLine(GenJournalLine)) then\n exit;\n+ if IsIncomingDocAttachedToRelatedGenJnlLine(GenJournalLine) then\n+ exit;\n HandleDigitalVoucherForEntryTypeAndDoc(ErrorMessageMgt, DigitalVoucherEntrySetup, GenJournalLine);\n end;\n \n+ local procedure IsIncomingDocAttachedToRelatedGenJnlLine(GenJournalLine: Record \"Gen. Journal Line\"): Boolean\n+ var\n+ RelatedGenJournalLine: Record \"Gen. Journal Line\";\n+ IncomingDocument: Record \"Incoming Document\";\n+ begin\n+ if GenJournalLine.\"Incoming Document Entry No.\" <> 0 then\n+ exit(false);\n+ RelatedGenJournalLine.SetRange(\"Journal Template Name\", GenJournalLine.\"Journal Template Name\");\n+ RelatedGenJournalLine.SetRange(\"Journal Batch Name\", GenJournalLine.\"Journal Batch Name\");\n+ RelatedGenJournalLine.SetRange(\"Document No.\", GenJournalLine.\"Document No.\");\n+ RelatedGenJournalLine.SetRange(\"Posting Date\", GenJournalLine.\"Posting Date\");\n+ RelatedGenJournalLine.SetFilter(\"Incoming Document Entry No.\", '<>0');\n+ if not RelatedGenJournalLine.FindFirst() then\n+ exit(false);\n+ if not IncomingDocument.Get(RelatedGenJournalLine.\"Incoming Document Entry No.\") then\n+ exit(false);\n+ exit(IncomingDocument.IsADocumentAttached());\n+ end;\n+\n [EventSubscriber(ObjectType::Codeunit, Codeunit::\"Sales-Post\", 'OnAfterFinalizePostingOnBeforeCommit', '', true, true)]\n local procedure CheckSalesVoucherOnAfterFinalizePostingOnBeforeCommit(var SalesHeader: Record \"Sales Header\"; var SalesShipmentHeader: Record \"Sales Shipment Header\"; var SalesInvoiceHeader: Record \"Sales Invoice Header\"; var SalesCrMemoHeader: Record \"Sales Cr.Memo Header\"; var ReturnReceiptHeader: Record \"Return Receipt Header\"; var GenJnlPostLine: Codeunit \"Gen. Jnl.-Post Line\"; CommitIsSuppressed: Boolean; PreviewMode: Boolean; WhseShip: Boolean; WhseReceive: Boolean; var EverythingInvoiced: Boolean)\n begin\n", "error_message": null, "metrics": {"execution_time": 353.0, "llm_duration": null, "turn_count": 47, "prompt_tokens": 2100000, "completion_tokens": 14300, "tool_usage": {"grep": 29, "view": 18, "report_intent": 2, "powershell": 3, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-195193__cf-1", "project": "ExcelReports", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al b/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\nindex 00c238ae..07129206 100644\n--- a/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\n+++ b/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\n@@ -44,10 +44,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Net Change\" > 0) then\n- Validate(\"Net Change (Debit)\", \"Net Change\")\n- else\n+ if (\"Net Change\" > 0) then begin\n+ Validate(\"Net Change (Debit)\", \"Net Change\");\n+ \"Net Change (Credit)\" := 0;\n+ end else begin\n+ \"Net Change (Debit)\" := 0;\n Validate(\"Net Change (Credit)\", -\"Net Change\");\n+ end;\n end;\n }\n field(11; \"Net Change (Debit)\"; Decimal)\n@@ -64,10 +67,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Balance\" > 0) then\n- Validate(\"Balance (Debit)\", \"Balance\")\n- else\n+ if (\"Balance\" > 0) then begin\n+ Validate(\"Balance (Debit)\", \"Balance\");\n+ \"Balance (Credit)\" := 0;\n+ end else begin\n+ \"Balance (Debit)\" := 0;\n Validate(\"Balance (Credit)\", -\"Balance\");\n+ end;\n end;\n }\n field(14; \"Balance (Debit)\"; Decimal)\n@@ -100,10 +106,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Net\" > 0) then\n- Validate(\"Last Period Net (Debit)\", \"Last Period Net\")\n- else\n+ if (\"Last Period Net\" > 0) then begin\n+ Validate(\"Last Period Net (Debit)\", \"Last Period Net\");\n+ \"Last Period Net (Credit)\" := 0;\n+ end else begin\n+ \"Last Period Net (Debit)\" := 0;\n Validate(\"Last Period Net (Credit)\", -\"Last Period Net\");\n+ end;\n end;\n }\n field(51; \"Last Period Net (Debit)\"; Decimal)\n@@ -120,10 +129,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Bal.\" > 0) then\n- Validate(\"Last Period Bal. (Debit)\", \"Last Period Bal.\")\n- else\n+ if (\"Last Period Bal.\" > 0) then begin\n+ Validate(\"Last Period Bal. (Debit)\", \"Last Period Bal.\");\n+ \"Last Period Bal. (Credit)\" := 0;\n+ end else begin\n+ \"Last Period Bal. (Debit)\" := 0;\n Validate(\"Last Period Bal. (Credit)\", -\"Last Period Bal.\");\n+ end;\n end;\n }\n field(61; \"Last Period Bal. (Debit)\"; Decimal)\n@@ -156,10 +168,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Net Change\" > 0) then\n- Validate(\"Net Change (Debit) (ACY)\", \"Net Change (ACY)\")\n- else\n+ if (\"Net Change (ACY)\" > 0) then begin\n+ Validate(\"Net Change (Debit) (ACY)\", \"Net Change (ACY)\");\n+ \"Net Change (Credit) (ACY)\" := 0;\n+ end else begin\n+ \"Net Change (Debit) (ACY)\" := 0;\n Validate(\"Net Change (Credit) (ACY)\", -\"Net Change (ACY)\");\n+ end;\n end;\n }\n field(111; \"Net Change (Debit) (ACY)\"; Decimal)\n@@ -176,10 +191,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Balance\" > 0) then\n- Validate(\"Balance (Debit) (ACY)\", \"Balance (ACY)\")\n- else\n+ if (\"Balance (ACY)\" > 0) then begin\n+ Validate(\"Balance (Debit) (ACY)\", \"Balance (ACY)\");\n+ \"Balance (Credit) (ACY)\" := 0;\n+ end else begin\n+ \"Balance (Debit) (ACY)\" := 0;\n Validate(\"Balance (Credit) (ACY)\", -\"Balance (ACY)\");\n+ end;\n end;\n }\n field(114; \"Balance (Debit) (ACY)\"; Decimal)\n@@ -196,10 +214,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Net\" > 0) then\n- Validate(\"Last Period Net (Debit) (ACY)\", \"Last Period Net (ACY)\")\n- else\n+ if (\"Last Period Net (ACY)\" > 0) then begin\n+ Validate(\"Last Period Net (Debit) (ACY)\", \"Last Period Net (ACY)\");\n+ \"Last Period Net (Credit) (ACY)\" := 0;\n+ end else begin\n+ \"Last Period Net (Debit) (ACY)\" := 0;\n Validate(\"Last Period Net (Credit) (ACY)\", -\"Last Period Net (ACY)\");\n+ end;\n end;\n }\n field(151; \"Last Period Net (Debit) (ACY)\"; Decimal)\n@@ -216,10 +237,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Bal.\" > 0) then\n- Validate(\"Last Period Bal. (Debit) (ACY)\", \"Last Period Bal. (ACY)\")\n- else\n+ if (\"Last Period Bal. (ACY)\" > 0) then begin\n+ Validate(\"Last Period Bal. (Debit) (ACY)\", \"Last Period Bal. (ACY)\");\n+ \"Last Period Bal. (Cred.) (ACY)\" := 0;\n+ end else begin\n+ \"Last Period Bal. (Debit) (ACY)\" := 0;\n Validate(\"Last Period Bal. (Cred.) (ACY)\", -\"Last Period Bal. (ACY)\");\n+ end;\n end;\n }\n field(161; \"Last Period Bal. (Debit) (ACY)\"; Decimal)\n", "error_message": null, "metrics": {"execution_time": 101.0, "llm_duration": null, "turn_count": 5, "prompt_tokens": 138500, "completion_tokens": 5500, "tool_usage": {"grep": 1, "glob": 1, "view": 4, "report_intent": 1, "edit": 8}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-195193__cf-2", "project": "ExcelReports", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al b/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\nindex 00c238ae..e2a5f9db 100644\n--- a/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\n+++ b/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\n@@ -44,10 +44,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Net Change\" > 0) then\n- Validate(\"Net Change (Debit)\", \"Net Change\")\n- else\n+ if (\"Net Change\" > 0) then begin\n+ Validate(\"Net Change (Debit)\", \"Net Change\");\n+ Validate(\"Net Change (Credit)\", 0);\n+ end else begin\n Validate(\"Net Change (Credit)\", -\"Net Change\");\n+ Validate(\"Net Change (Debit)\", 0);\n+ end;\n end;\n }\n field(11; \"Net Change (Debit)\"; Decimal)\n@@ -64,10 +67,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Balance\" > 0) then\n- Validate(\"Balance (Debit)\", \"Balance\")\n- else\n+ if (\"Balance\" > 0) then begin\n+ Validate(\"Balance (Debit)\", \"Balance\");\n+ Validate(\"Balance (Credit)\", 0);\n+ end else begin\n Validate(\"Balance (Credit)\", -\"Balance\");\n+ Validate(\"Balance (Debit)\", 0);\n+ end;\n end;\n }\n field(14; \"Balance (Debit)\"; Decimal)\n@@ -100,10 +106,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Net\" > 0) then\n- Validate(\"Last Period Net (Debit)\", \"Last Period Net\")\n- else\n+ if (\"Last Period Net\" > 0) then begin\n+ Validate(\"Last Period Net (Debit)\", \"Last Period Net\");\n+ Validate(\"Last Period Net (Credit)\", 0);\n+ end else begin\n Validate(\"Last Period Net (Credit)\", -\"Last Period Net\");\n+ Validate(\"Last Period Net (Debit)\", 0);\n+ end;\n end;\n }\n field(51; \"Last Period Net (Debit)\"; Decimal)\n@@ -120,10 +129,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Bal.\" > 0) then\n- Validate(\"Last Period Bal. (Debit)\", \"Last Period Bal.\")\n- else\n+ if (\"Last Period Bal.\" > 0) then begin\n+ Validate(\"Last Period Bal. (Debit)\", \"Last Period Bal.\");\n+ Validate(\"Last Period Bal. (Credit)\", 0);\n+ end else begin\n Validate(\"Last Period Bal. (Credit)\", -\"Last Period Bal.\");\n+ Validate(\"Last Period Bal. (Debit)\", 0);\n+ end;\n end;\n }\n field(61; \"Last Period Bal. (Debit)\"; Decimal)\n@@ -156,10 +168,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Net Change\" > 0) then\n- Validate(\"Net Change (Debit) (ACY)\", \"Net Change (ACY)\")\n- else\n+ if (\"Net Change (ACY)\" > 0) then begin\n+ Validate(\"Net Change (Debit) (ACY)\", \"Net Change (ACY)\");\n+ Validate(\"Net Change (Credit) (ACY)\", 0);\n+ end else begin\n Validate(\"Net Change (Credit) (ACY)\", -\"Net Change (ACY)\");\n+ Validate(\"Net Change (Debit) (ACY)\", 0);\n+ end;\n end;\n }\n field(111; \"Net Change (Debit) (ACY)\"; Decimal)\n@@ -176,10 +191,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Balance\" > 0) then\n- Validate(\"Balance (Debit) (ACY)\", \"Balance (ACY)\")\n- else\n+ if (\"Balance (ACY)\" > 0) then begin\n+ Validate(\"Balance (Debit) (ACY)\", \"Balance (ACY)\");\n+ Validate(\"Balance (Credit) (ACY)\", 0);\n+ end else begin\n Validate(\"Balance (Credit) (ACY)\", -\"Balance (ACY)\");\n+ Validate(\"Balance (Debit) (ACY)\", 0);\n+ end;\n end;\n }\n field(114; \"Balance (Debit) (ACY)\"; Decimal)\n@@ -196,10 +214,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Net\" > 0) then\n- Validate(\"Last Period Net (Debit) (ACY)\", \"Last Period Net (ACY)\")\n- else\n+ if (\"Last Period Net (ACY)\" > 0) then begin\n+ Validate(\"Last Period Net (Debit) (ACY)\", \"Last Period Net (ACY)\");\n+ Validate(\"Last Period Net (Credit) (ACY)\", 0);\n+ end else begin\n Validate(\"Last Period Net (Credit) (ACY)\", -\"Last Period Net (ACY)\");\n+ Validate(\"Last Period Net (Debit) (ACY)\", 0);\n+ end;\n end;\n }\n field(151; \"Last Period Net (Debit) (ACY)\"; Decimal)\n@@ -216,10 +237,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Bal.\" > 0) then\n- Validate(\"Last Period Bal. (Debit) (ACY)\", \"Last Period Bal. (ACY)\")\n- else\n+ if (\"Last Period Bal. (ACY)\" > 0) then begin\n+ Validate(\"Last Period Bal. (Debit) (ACY)\", \"Last Period Bal. (ACY)\");\n+ Validate(\"Last Period Bal. (Cred.) (ACY)\", 0);\n+ end else begin\n Validate(\"Last Period Bal. (Cred.) (ACY)\", -\"Last Period Bal. (ACY)\");\n+ Validate(\"Last Period Bal. (Debit) (ACY)\", 0);\n+ end;\n end;\n }\n field(161; \"Last Period Bal. (Debit) (ACY)\"; Decimal)\n", "error_message": null, "metrics": {"execution_time": 122.0, "llm_duration": null, "turn_count": 11, "prompt_tokens": 299800, "completion_tokens": 5700, "tool_usage": {"grep": 4, "view": 5, "report_intent": 1, "edit": 8}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-195193__cf-3", "project": "ExcelReports", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al b/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\nindex 00c238ae..e2a5f9db 100644\n--- a/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\n+++ b/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\n@@ -44,10 +44,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Net Change\" > 0) then\n- Validate(\"Net Change (Debit)\", \"Net Change\")\n- else\n+ if (\"Net Change\" > 0) then begin\n+ Validate(\"Net Change (Debit)\", \"Net Change\");\n+ Validate(\"Net Change (Credit)\", 0);\n+ end else begin\n Validate(\"Net Change (Credit)\", -\"Net Change\");\n+ Validate(\"Net Change (Debit)\", 0);\n+ end;\n end;\n }\n field(11; \"Net Change (Debit)\"; Decimal)\n@@ -64,10 +67,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Balance\" > 0) then\n- Validate(\"Balance (Debit)\", \"Balance\")\n- else\n+ if (\"Balance\" > 0) then begin\n+ Validate(\"Balance (Debit)\", \"Balance\");\n+ Validate(\"Balance (Credit)\", 0);\n+ end else begin\n Validate(\"Balance (Credit)\", -\"Balance\");\n+ Validate(\"Balance (Debit)\", 0);\n+ end;\n end;\n }\n field(14; \"Balance (Debit)\"; Decimal)\n@@ -100,10 +106,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Net\" > 0) then\n- Validate(\"Last Period Net (Debit)\", \"Last Period Net\")\n- else\n+ if (\"Last Period Net\" > 0) then begin\n+ Validate(\"Last Period Net (Debit)\", \"Last Period Net\");\n+ Validate(\"Last Period Net (Credit)\", 0);\n+ end else begin\n Validate(\"Last Period Net (Credit)\", -\"Last Period Net\");\n+ Validate(\"Last Period Net (Debit)\", 0);\n+ end;\n end;\n }\n field(51; \"Last Period Net (Debit)\"; Decimal)\n@@ -120,10 +129,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Bal.\" > 0) then\n- Validate(\"Last Period Bal. (Debit)\", \"Last Period Bal.\")\n- else\n+ if (\"Last Period Bal.\" > 0) then begin\n+ Validate(\"Last Period Bal. (Debit)\", \"Last Period Bal.\");\n+ Validate(\"Last Period Bal. (Credit)\", 0);\n+ end else begin\n Validate(\"Last Period Bal. (Credit)\", -\"Last Period Bal.\");\n+ Validate(\"Last Period Bal. (Debit)\", 0);\n+ end;\n end;\n }\n field(61; \"Last Period Bal. (Debit)\"; Decimal)\n@@ -156,10 +168,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Net Change\" > 0) then\n- Validate(\"Net Change (Debit) (ACY)\", \"Net Change (ACY)\")\n- else\n+ if (\"Net Change (ACY)\" > 0) then begin\n+ Validate(\"Net Change (Debit) (ACY)\", \"Net Change (ACY)\");\n+ Validate(\"Net Change (Credit) (ACY)\", 0);\n+ end else begin\n Validate(\"Net Change (Credit) (ACY)\", -\"Net Change (ACY)\");\n+ Validate(\"Net Change (Debit) (ACY)\", 0);\n+ end;\n end;\n }\n field(111; \"Net Change (Debit) (ACY)\"; Decimal)\n@@ -176,10 +191,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Balance\" > 0) then\n- Validate(\"Balance (Debit) (ACY)\", \"Balance (ACY)\")\n- else\n+ if (\"Balance (ACY)\" > 0) then begin\n+ Validate(\"Balance (Debit) (ACY)\", \"Balance (ACY)\");\n+ Validate(\"Balance (Credit) (ACY)\", 0);\n+ end else begin\n Validate(\"Balance (Credit) (ACY)\", -\"Balance (ACY)\");\n+ Validate(\"Balance (Debit) (ACY)\", 0);\n+ end;\n end;\n }\n field(114; \"Balance (Debit) (ACY)\"; Decimal)\n@@ -196,10 +214,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Net\" > 0) then\n- Validate(\"Last Period Net (Debit) (ACY)\", \"Last Period Net (ACY)\")\n- else\n+ if (\"Last Period Net (ACY)\" > 0) then begin\n+ Validate(\"Last Period Net (Debit) (ACY)\", \"Last Period Net (ACY)\");\n+ Validate(\"Last Period Net (Credit) (ACY)\", 0);\n+ end else begin\n Validate(\"Last Period Net (Credit) (ACY)\", -\"Last Period Net (ACY)\");\n+ Validate(\"Last Period Net (Debit) (ACY)\", 0);\n+ end;\n end;\n }\n field(151; \"Last Period Net (Debit) (ACY)\"; Decimal)\n@@ -216,10 +237,13 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Bal.\" > 0) then\n- Validate(\"Last Period Bal. (Debit) (ACY)\", \"Last Period Bal. (ACY)\")\n- else\n+ if (\"Last Period Bal. (ACY)\" > 0) then begin\n+ Validate(\"Last Period Bal. (Debit) (ACY)\", \"Last Period Bal. (ACY)\");\n+ Validate(\"Last Period Bal. (Cred.) (ACY)\", 0);\n+ end else begin\n Validate(\"Last Period Bal. (Cred.) (ACY)\", -\"Last Period Bal. (ACY)\");\n+ Validate(\"Last Period Bal. (Debit) (ACY)\", 0);\n+ end;\n end;\n }\n field(161; \"Last Period Bal. (Debit) (ACY)\"; Decimal)\n", "error_message": null, "metrics": {"execution_time": 109.0, "llm_duration": null, "turn_count": 9, "prompt_tokens": 254000, "completion_tokens": 5200, "tool_usage": {"grep": 4, "view": 6, "report_intent": 1, "edit": 8}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-201169__cf-1", "project": "Shopify", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\nindex 38d77856..c35f4053 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n@@ -26,6 +26,7 @@ codeunit 30174 \"Shpfy Create Product\"\n Getlocations: Boolean;\n ProductId: BigInteger;\n ItemVariantIsBlockedLbl: Label 'Item variant is blocked or sales blocked.';\n+ ProductTitleIsBlankLbl: Label 'Product title is blank.';\n \n trigger OnRun()\n var\n@@ -51,13 +52,19 @@ codeunit 30174 \"Shpfy Create Product\"\n TempShopifyProduct: Record \"Shpfy Product\" temporary;\n TempShopifyVariant: Record \"Shpfy Variant\" temporary;\n TempShopifyTag: Record \"Shpfy Tag\" temporary;\n+ SkippedRecord: Codeunit \"Shpfy Skipped Record\";\n begin\n CreateTempProduct(Item, TempShopifyProduct, TempShopifyVariant, TempShopifyTag);\n+ if TempShopifyProduct.Title.Trim() = '' then begin\n+ SkippedRecord.LogSkippedRecord(Item.RecordId, ProductTitleIsBlankLbl, Shop);\n+ exit;\n+ end;\n if not VariantApi.FindShopifyProductVariant(TempShopifyProduct, TempShopifyVariant) then\n ProductId := ProductApi.CreateProduct(TempShopifyProduct, TempShopifyVariant, TempShopifyTag)\n else\n ProductId := TempShopifyProduct.Id;\n- ProductExport.UpdateProductTranslations(ProductId, Item);\n+ if ProductId <> 0 then\n+ ProductExport.UpdateProductTranslations(ProductId, Item);\n end;\n \n internal procedure CreateTempProduct(Item: Record Item; var TempShopifyProduct: Record \"Shpfy Product\" temporary; var TempShopifyVariant: Record \"Shpfy Variant\" temporary; var TempShopifyTag: Record \"Shpfy Tag\" temporary)\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139581'\nCodeunit 139581 Shpfy Skipped Record Log Test\n Testfunction UnitTestLogItemEmptyDescription Failure (6.71 seconds)\n Error:\n The response from Shopify contains no JSON. \\Requested: {\"query\":\"{ locations(first: 20, includeLegacy: true) { pageInfo { hasNextPage endCursor } nodes { legacyResourceId isActive isPrimary name fulfillmentService { serviceName }}}}\"} \\Response: \n Call Stack:\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 21 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 4 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 6 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Sync Shop Locations\"(CodeUnit 30198).SyncLocations line 20 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Sync Shop Locations\"(CodeUnit 30198).OnRun(Trigger) line 4 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Create Product\"(CodeUnit 30174).OnRun(Trigger) line 5 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Add Item to Shopify\"(Report 30106).\"Item - OnAfterGetRecord\"(Trigger) line 12 - Shopify Connector by Microsoft version 26.0.0.0", "metrics": {"execution_time": 112.0, "llm_duration": null, "turn_count": 15, "prompt_tokens": 386500, "completion_tokens": 4400, "tool_usage": {"grep": 10, "view": 8, "glob": 1, "report_intent": 1, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-201169__cf-2", "project": "Shopify", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\nindex 38d77856..f2369a36 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n@@ -26,6 +26,7 @@ codeunit 30174 \"Shpfy Create Product\"\n Getlocations: Boolean;\n ProductId: BigInteger;\n ItemVariantIsBlockedLbl: Label 'Item variant is blocked or sales blocked.';\n+ ProductTitleIsEmptyLbl: Label 'Product title is empty.';\n \n trigger OnRun()\n var\n@@ -51,13 +52,19 @@ codeunit 30174 \"Shpfy Create Product\"\n TempShopifyProduct: Record \"Shpfy Product\" temporary;\n TempShopifyVariant: Record \"Shpfy Variant\" temporary;\n TempShopifyTag: Record \"Shpfy Tag\" temporary;\n+ SkippedRecord: Codeunit \"Shpfy Skipped Record\";\n begin\n CreateTempProduct(Item, TempShopifyProduct, TempShopifyVariant, TempShopifyTag);\n+ if TempShopifyProduct.Title = '' then begin\n+ SkippedRecord.LogSkippedRecord(Item.RecordId, ProductTitleIsEmptyLbl, Shop);\n+ exit;\n+ end;\n if not VariantApi.FindShopifyProductVariant(TempShopifyProduct, TempShopifyVariant) then\n ProductId := ProductApi.CreateProduct(TempShopifyProduct, TempShopifyVariant, TempShopifyTag)\n else\n ProductId := TempShopifyProduct.Id;\n- ProductExport.UpdateProductTranslations(ProductId, Item);\n+ if ProductId <> 0 then\n+ ProductExport.UpdateProductTranslations(ProductId, Item);\n end;\n \n internal procedure CreateTempProduct(Item: Record Item; var TempShopifyProduct: Record \"Shpfy Product\" temporary; var TempShopifyVariant: Record \"Shpfy Variant\" temporary; var TempShopifyTag: Record \"Shpfy Tag\" temporary)\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139581'\nCodeunit 139581 Shpfy Skipped Record Log Test\n Testfunction UnitTestLogItemEmptyDescription Failure (6.684 seconds)\n Error:\n The response from Shopify contains no JSON. \\Requested: {\"query\":\"{ locations(first: 20, includeLegacy: true) { pageInfo { hasNextPage endCursor } nodes { legacyResourceId isActive isPrimary name fulfillmentService { serviceName }}}}\"} \\Response: \n Call Stack:\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 21 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 4 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 6 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Sync Shop Locations\"(CodeUnit 30198).SyncLocations line 20 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Sync Shop Locations\"(CodeUnit 30198).OnRun(Trigger) line 4 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Create Product\"(CodeUnit 30174).OnRun(Trigger) line 5 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Add Item to Shopify\"(Report 30106).\"Item - OnAfterGetRecord\"(Trigger) line 12 - Shopify Connector by Microsoft version 26.0.0.0", "metrics": {"execution_time": 140.0, "llm_duration": null, "turn_count": 19, "prompt_tokens": 520299, "completion_tokens": 5300, "tool_usage": {"grep": 16, "view": 7, "glob": 1, "report_intent": 1, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-201169__cf-3", "project": "Shopify", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\nindex 38d77856..a513bdfd 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n@@ -26,6 +26,7 @@ codeunit 30174 \"Shpfy Create Product\"\n Getlocations: Boolean;\n ProductId: BigInteger;\n ItemVariantIsBlockedLbl: Label 'Item variant is blocked or sales blocked.';\n+ ProductTitleIsBlankLbl: Label 'Product title is blank.';\n \n trigger OnRun()\n var\n@@ -51,13 +52,19 @@ codeunit 30174 \"Shpfy Create Product\"\n TempShopifyProduct: Record \"Shpfy Product\" temporary;\n TempShopifyVariant: Record \"Shpfy Variant\" temporary;\n TempShopifyTag: Record \"Shpfy Tag\" temporary;\n+ SkippedRecord: Codeunit \"Shpfy Skipped Record\";\n begin\n CreateTempProduct(Item, TempShopifyProduct, TempShopifyVariant, TempShopifyTag);\n+ if TempShopifyProduct.Title = '' then begin\n+ SkippedRecord.LogSkippedRecord(Item.RecordId, ProductTitleIsBlankLbl, Shop);\n+ exit;\n+ end;\n if not VariantApi.FindShopifyProductVariant(TempShopifyProduct, TempShopifyVariant) then\n ProductId := ProductApi.CreateProduct(TempShopifyProduct, TempShopifyVariant, TempShopifyTag)\n else\n ProductId := TempShopifyProduct.Id;\n- ProductExport.UpdateProductTranslations(ProductId, Item);\n+ if ProductId <> 0 then\n+ ProductExport.UpdateProductTranslations(ProductId, Item);\n end;\n \n internal procedure CreateTempProduct(Item: Record Item; var TempShopifyProduct: Record \"Shpfy Product\" temporary; var TempShopifyVariant: Record \"Shpfy Variant\" temporary; var TempShopifyTag: Record \"Shpfy Tag\" temporary)\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139581'\nCodeunit 139581 Shpfy Skipped Record Log Test\n Testfunction UnitTestLogItemEmptyDescription Failure (6.703 seconds)\n Error:\n The response from Shopify contains no JSON. \\Requested: {\"query\":\"{ locations(first: 20, includeLegacy: true) { pageInfo { hasNextPage endCursor } nodes { legacyResourceId isActive isPrimary name fulfillmentService { serviceName }}}}\"} \\Response: \n Call Stack:\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 21 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 4 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 6 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Sync Shop Locations\"(CodeUnit 30198).SyncLocations line 20 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Sync Shop Locations\"(CodeUnit 30198).OnRun(Trigger) line 4 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Create Product\"(CodeUnit 30174).OnRun(Trigger) line 5 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Add Item to Shopify\"(Report 30106).\"Item - OnAfterGetRecord\"(Trigger) line 12 - Shopify Connector by Microsoft version 26.0.0.0", "metrics": {"execution_time": 86.0, "llm_duration": null, "turn_count": 9, "prompt_tokens": 221200, "completion_tokens": 3600, "tool_usage": {"grep": 9, "view": 4, "report_intent": 1, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-203923__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\nindex 6bb15d7d..9c9227b8 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n@@ -93,7 +93,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetNonDeductibleVATPct(NonDeductibleVATPct, VATPostingSetup, GeneralPostingType, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (VATPostingSetup.\"VAT Calculation Type\" in [VATPostingSetup.\"VAT Calculation Type\"::\"Normal VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (VATPostingSetup.\"VAT Calculation Type\" in [VATPostingSetup.\"VAT Calculation Type\"::\"Normal VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Reverse Charge VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if (VATPostingSetup.\"Allow Non-Deductible VAT\" = VATPostingSetup.\"Allow Non-Deductible VAT\"::\"Do not allow\") or (GeneralPostingType <> GeneralPostingType::Purchase) then\n exit(0);\n@@ -786,7 +786,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeCalcNonDedAmountsInGenJnlLine(GenJournalLine, Currency, IsHandled);\n if IsHandled then\n exit;\n- if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit;\n if not VATPostingSetup.Get(GenJournalLine.\"VAT Bus. Posting Group\", GenJournalLine.\"VAT Prod. Posting Group\") then\n exit;\n@@ -826,7 +826,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeCalcBalNonDedAmountsInGenJnlLine(GenJournalLine, Currency, IsHandled);\n if IsHandled then\n exit;\n- if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Full VAT\"]) then\n exit;\n if not VATPostingSetup.Get(GenJournalLine.\"Bal. VAT Bus. Posting Group\", GenJournalLine.\"Bal. VAT Prod. Posting Group\") then\n exit;\n@@ -1210,7 +1210,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetNonDedVATPctForGenJnlLine(NonDeductibleVATPct, GenJournalLine, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if not VATPostingSetup.Get(GenJournalLine.\"VAT Bus. Posting Group\", GenJournalLine.\"VAT Prod. Posting Group\") then\n exit(0);\n@@ -1227,7 +1227,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetBalNonDedVATPctForGenJnlLine(NonDeductibleVATPct, GenJournalLine, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if not VATPostingSetup.Get(GenJournalLine.\"Bal. VAT Bus. Posting Group\", GenJournalLine.\"Bal. VAT Prod. Posting Group\") then\n exit(0);\n", "error_message": null, "metrics": {"execution_time": 100.0, "llm_duration": null, "turn_count": 7, "prompt_tokens": 178900, "completion_tokens": 5200, "tool_usage": {"grep": 5, "view": 5, "report_intent": 1, "edit": 4}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-203923__cf-2", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\nindex 6bb15d7d..9c9227b8 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n@@ -93,7 +93,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetNonDeductibleVATPct(NonDeductibleVATPct, VATPostingSetup, GeneralPostingType, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (VATPostingSetup.\"VAT Calculation Type\" in [VATPostingSetup.\"VAT Calculation Type\"::\"Normal VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (VATPostingSetup.\"VAT Calculation Type\" in [VATPostingSetup.\"VAT Calculation Type\"::\"Normal VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Reverse Charge VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if (VATPostingSetup.\"Allow Non-Deductible VAT\" = VATPostingSetup.\"Allow Non-Deductible VAT\"::\"Do not allow\") or (GeneralPostingType <> GeneralPostingType::Purchase) then\n exit(0);\n@@ -786,7 +786,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeCalcNonDedAmountsInGenJnlLine(GenJournalLine, Currency, IsHandled);\n if IsHandled then\n exit;\n- if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit;\n if not VATPostingSetup.Get(GenJournalLine.\"VAT Bus. Posting Group\", GenJournalLine.\"VAT Prod. Posting Group\") then\n exit;\n@@ -826,7 +826,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeCalcBalNonDedAmountsInGenJnlLine(GenJournalLine, Currency, IsHandled);\n if IsHandled then\n exit;\n- if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Full VAT\"]) then\n exit;\n if not VATPostingSetup.Get(GenJournalLine.\"Bal. VAT Bus. Posting Group\", GenJournalLine.\"Bal. VAT Prod. Posting Group\") then\n exit;\n@@ -1210,7 +1210,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetNonDedVATPctForGenJnlLine(NonDeductibleVATPct, GenJournalLine, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if not VATPostingSetup.Get(GenJournalLine.\"VAT Bus. Posting Group\", GenJournalLine.\"VAT Prod. Posting Group\") then\n exit(0);\n@@ -1227,7 +1227,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetBalNonDedVATPctForGenJnlLine(NonDeductibleVATPct, GenJournalLine, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if not VATPostingSetup.Get(GenJournalLine.\"Bal. VAT Bus. Posting Group\", GenJournalLine.\"Bal. VAT Prod. Posting Group\") then\n exit(0);\n", "error_message": null, "metrics": {"execution_time": 188.0, "llm_duration": null, "turn_count": 17, "prompt_tokens": 535000, "completion_tokens": 8300, "tool_usage": {"grep": 12, "view": 7, "report_intent": 1, "edit": 5, "powershell": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-203923__cf-3", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\nindex 6bb15d7d..bead3a09 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n@@ -786,7 +786,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeCalcNonDedAmountsInGenJnlLine(GenJournalLine, Currency, IsHandled);\n if IsHandled then\n exit;\n- if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit;\n if not VATPostingSetup.Get(GenJournalLine.\"VAT Bus. Posting Group\", GenJournalLine.\"VAT Prod. Posting Group\") then\n exit;\n@@ -826,7 +826,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeCalcBalNonDedAmountsInGenJnlLine(GenJournalLine, Currency, IsHandled);\n if IsHandled then\n exit;\n- if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Full VAT\"]) then\n exit;\n if not VATPostingSetup.Get(GenJournalLine.\"Bal. VAT Bus. Posting Group\", GenJournalLine.\"Bal. VAT Prod. Posting Group\") then\n exit;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134288'\nCodeunit 134288 Non-Deductible VAT Journal\n Testfunction NonDeductibleVATShouldShowAsNonDeductibleOnDoingFullVAT Failure (3.617 seconds)\n Error:\n Assert.AreEqual failed. Expected:<24.87> (Decimal). Actual:<0> (Decimal). Non-Deductable VAT Amount must be 24.87 in VAT Entries.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"Non-Deductible VAT Journal\"(CodeUnit 134288).NonDeductibleVATShouldShowAsNonDeductibleOnDoingFullVAT line 34 - Tests-VAT by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 127.0, "llm_duration": null, "turn_count": 13, "prompt_tokens": 336000, "completion_tokens": 5400, "tool_usage": {"grep": 10, "view": 6, "report_intent": 1, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-204450__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\nindex 6bb15d7d..82120172 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n@@ -602,6 +602,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n \n TotalPurchaseLine.\"Non-Deductible VAT Base\" += PurchaseLine.\"Non-Deductible VAT Base\";\n TotalPurchaseLine.\"Non-Deductible VAT Amount\" += PurchaseLine.\"Non-Deductible VAT Amount\";\n+ TotalPurchaseLine.\"Non-Deductible VAT Diff.\" += PurchaseLine.\"Non-Deductible VAT Diff.\";\n end;\n \n procedure Increment(var TotalInvoicePostingBuffer: Record \"Invoice Posting Buffer\"; InvoicePostingBuffer: Record \"Invoice Posting Buffer\")\n@@ -683,6 +684,12 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n if PurchaseLine.\"Non-Deductible VAT %\" = 100 then begin\n PurchaseLine.\"Non-Deductible VAT Base\" := PurchaseLine.\"VAT Base Amount\";\n PurchaseLine.\"Non-Deductible VAT Amount\" := PurchaseLine.\"Amount Including VAT\" - PurchaseLine.\"VAT Base Amount\" - PurchaseLine.\"VAT Difference\";\n+ PurchaseLine.\"Non-Deductible VAT Diff.\" :=\n+ Round(\n+ CurrExchRate.ExchangeAmtFCYToLCY(\n+ PurchaseHeader.GetUseDate(), PurchaseHeader.\"Currency Code\",\n+ TotalPurchaseLine.\"Non-Deductible VAT Diff.\", PurchaseHeader.\"Currency Factor\")) -\n+ TotalPurchaseLineLCY.\"Non-Deductible VAT Diff.\";\n exit;\n end;\n PurchaseLine.\"Non-Deductible VAT Base\" :=\n@@ -697,6 +704,12 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n PurchaseHeader.GetUseDate(), PurchaseHeader.\"Currency Code\",\n TotalPurchaseLine.\"Non-Deductible VAT Amount\", PurchaseHeader.\"Currency Factor\")) -\n TotalPurchaseLineLCY.\"Non-Deductible VAT Amount\";\n+ PurchaseLine.\"Non-Deductible VAT Diff.\" :=\n+ Round(\n+ CurrExchRate.ExchangeAmtFCYToLCY(\n+ PurchaseHeader.GetUseDate(), PurchaseHeader.\"Currency Code\",\n+ TotalPurchaseLine.\"Non-Deductible VAT Diff.\", PurchaseHeader.\"Currency Factor\")) -\n+ TotalPurchaseLineLCY.\"Non-Deductible VAT Diff.\";\n end;\n \n procedure ClearNonDeductibleVAT(var PurchaseLine: Record \"Purchase Line\")\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134287'\nCodeunit 134287 Non-Deductible VAT Statistics\n Testfunction PurchaseInvoiceInCurrencyIsPostedWhenChangeVATAmountOnStatisticIfNDVATPctIs100 Failure (16.44 seconds)\n Error:\n The transaction cannot be completed because it will cause inconsistencies in the G/L Entry table. Check where and how the CONSISTENT function is used in the transaction to find the reason for the error.\\\\Contact your system administrator.\\\\Tables can be marked as inconsistent during comprehensive tasks, such as posting. This prevents data from being updated incorrectly.\n Call Stack:\n \"Purch.-Post\"(CodeUnit 90).FinalizePosting line 79 - Base Application by Microsoft\n \"Purch.-Post\"(CodeUnit 90).RunWithCheck line 142 - Base Application by Microsoft\n \"Purch.-Post\"(CodeUnit 90).OnRun(Trigger) line 2 - Base Application by Microsoft\n \"Library - Purchase\"(CodeUnit 130512).PostPurchaseDocument line 56 - Tests-TestLibraries by Microsoft\n \"Non-Deductible VAT Statistics\"(CodeUnit 134287).PurchaseInvoiceInCurrencyIsPostedWhenChangeVATAmountOnStatisticIfNDVATPctIs100 line 46 - Tests-VAT by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 265.0, "llm_duration": null, "turn_count": 60, "prompt_tokens": 2300000, "completion_tokens": 26500, "tool_usage": {"grep": 12, "powershell": 1, "task": 1, "view": 17, "report_intent": 1, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-205825__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\nindex da15d9ef..b6804aa1 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\n@@ -95,6 +95,8 @@ codeunit 205 \"Alt. Cust. VAT Reg. Doc. Impl.\" implements \"Alt. Cust. VAT Reg. Do\n VATCustomer: Record Customer;\n begin\n GetCustVATCalc(VATCustomer, SalesHeader);\n+ if SalesHeader.\"Ship-to Country/Region Code\" = '' then\n+ exit;\n if AltCustVATRegFacade.GetAlternativeCustVATReg(AltCustVATReg, VATCustomer.\"No.\", SalesHeader.\"Ship-to Country/Region Code\") then\n SalesHeader.Validate(\"VAT Country/Region Code\", AltCustVATReg.\"VAT Country/Region Code\")\n else\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134237'\nCodeunit 134237 Alt. Cust. VAT. Doc. Tests\n Testfunction ShipToCodeConnectionAltCustVATSetupOfBillToCustomer Failure (4.38 seconds)\n Error:\n VAT Country/Region Code must be equal to 'GU00000009' in Sales Header: Document Type=Order, No.=101005. Current value is 'GU00000006'.\n Call Stack:\n \"Alt. Cust. VAT. Doc. Tests\"(CodeUnit 134237).VerifyVATRegDataInSalesHeader line 2 - Tests-VAT by Microsoft\n \"Alt. Cust. VAT. Doc. Tests\"(CodeUnit 134237).ShipToCodeConnectionAltCustVATSetupOfBillToCustomer line 27 - Tests-VAT by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 111.0, "llm_duration": null, "turn_count": 9, "prompt_tokens": 309300, "completion_tokens": 4700, "tool_usage": {"grep": 4, "view": 9, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-205825__cf-2", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\nindex da15d9ef..b6804aa1 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\n@@ -95,6 +95,8 @@ codeunit 205 \"Alt. Cust. VAT Reg. Doc. Impl.\" implements \"Alt. Cust. VAT Reg. Do\n VATCustomer: Record Customer;\n begin\n GetCustVATCalc(VATCustomer, SalesHeader);\n+ if SalesHeader.\"Ship-to Country/Region Code\" = '' then\n+ exit;\n if AltCustVATRegFacade.GetAlternativeCustVATReg(AltCustVATReg, VATCustomer.\"No.\", SalesHeader.\"Ship-to Country/Region Code\") then\n SalesHeader.Validate(\"VAT Country/Region Code\", AltCustVATReg.\"VAT Country/Region Code\")\n else\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134237'\nCodeunit 134237 Alt. Cust. VAT. Doc. Tests\n Testfunction ShipToCodeConnectionAltCustVATSetupOfBillToCustomer Failure (4.113 seconds)\n Error:\n VAT Country/Region Code must be equal to 'GU00000009' in Sales Header: Document Type=Order, No.=101005. Current value is 'GU00000006'.\n Call Stack:\n \"Alt. Cust. VAT. Doc. Tests\"(CodeUnit 134237).VerifyVATRegDataInSalesHeader line 2 - Tests-VAT by Microsoft\n \"Alt. Cust. VAT. Doc. Tests\"(CodeUnit 134237).ShipToCodeConnectionAltCustVATSetupOfBillToCustomer line 27 - Tests-VAT by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 85.0, "llm_duration": null, "turn_count": 9, "prompt_tokens": 273300, "completion_tokens": 2800, "tool_usage": {"grep": 4, "view": 6, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-206527__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\nindex 36930a9e..058f96b4 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n@@ -263,7 +263,6 @@ codeunit 99000773 \"Calculate Prod. Order\"\n Item2: Record Item;\n ComponentSKU: Record \"Stockkeeping Unit\";\n IsHandled: Boolean;\n- QtyRoundPrecision: Decimal;\n begin\n ProdOrderComp.Reset();\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\", \"Item No.\");\n@@ -295,12 +294,7 @@ codeunit 99000773 \"Calculate Prod. Order\"\n ProdOrderComp.\"Bin Code\" := GetDefaultBin();\n ProdOrderComp.Description := ProdBOMLine[Level].Description;\n ProdOrderComp.Validate(\"Unit of Measure Code\", ProdBOMLine[Level].\"Unit of Measure Code\");\n- if (ProdOrderComp.\"Item No.\" <> '') and Item2.Get(ProdOrderComp.\"Item No.\") then\n- QtyRoundPrecision := UOMMgt.GetQtyRoundingPrecision(Item2, ProdBOMLine[Level].\"Unit of Measure Code\");\n- if QtyRoundPrecision <> 0 then\n- ProdOrderComp.\"Quantity per\" := Round(ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM, QtyRoundPrecision)\n- else\n- ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n+ ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n ProdOrderComp.Length := ProdBOMLine[Level].Length;\n ProdOrderComp.Width := ProdBOMLine[Level].Width;\n ProdOrderComp.Weight := ProdBOMLine[Level].Weight;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137088'\nCodeunit 137088 SCM Order Planning - III\n Testfunction ReleasedProdOrderQuantityPerandExpectedQtyRoundingPrecisionChecking Failure (6.73 seconds)\n Error:\n The value in the Rounding Precision field on the Item page, and Qty. Rounding Precision field on the Item Unit of Measure page, are causing the rounding precision for the Expected Quantity field to be incorrect.\n Call Stack:\n \"Prod. Order Component\"(Table 5407).\"Expected Quantity - OnValidate\"(Trigger) line 24 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).UpdateExpectedQuantity line 14 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).\"Routing Link Code - OnValidate\"(Trigger) line 5 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).TransferBOMProcessItem line 45 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).TransferBOM line 70 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).Calculate line 105 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order Lines\"(CodeUnit 99000787).ProcessProdOrderLines line 13 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order Lines\"(CodeUnit 99000787).Copy line 23 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order from Sale\"(CodeUnit 99000792).CreateProductionOrder line 54 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateOrder line 11 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateOrders line 35 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateProdOrder line 24 - Base Application by Microsoft version 26.0.0.0\n \"Library - Planning\"(CodeUnit 132203).CreateProdOrderUsingPlanning line 6 - Tests-TestLibraries by Microsoft version 26.0.0.0\n \"SCM Order Planning - III\"(CodeUnit 137088).ReleasedProdOrderQuantityPerandExpectedQtyRoundingPrecisionChecking line 50 - Tests-SCM by Microsoft version 26.0.0.0", "metrics": {"execution_time": 119.0, "llm_duration": null, "turn_count": 13, "prompt_tokens": 414800, "completion_tokens": 4400, "tool_usage": {"grep": 12, "view": 6, "report_intent": 2, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-206977__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\nindex 0877c357..cdc6d505 100644\n--- a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\n+++ b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\n@@ -161,7 +161,14 @@ page 903 \"Assembly Lines\"\n AssemblyHeader: Record \"Assembly Header\";\n begin\n AssemblyHeader.Get(Rec.\"Document Type\", Rec.\"Document No.\");\n- PAGE.Run(PAGE::\"Assembly Order\", AssemblyHeader);\n+ case AssemblyHeader.\"Document Type\" of\n+ AssemblyHeader.\"Document Type\"::Quote:\n+ PAGE.Run(PAGE::\"Assembly Quote\", AssemblyHeader);\n+ AssemblyHeader.\"Document Type\"::Order:\n+ PAGE.Run(PAGE::\"Assembly Order\", AssemblyHeader);\n+ AssemblyHeader.\"Document Type\"::\"Blanket Order\":\n+ PAGE.Run(PAGE::\"Blanket Assembly Order\", AssemblyHeader);\n+ end;\n end;\n }\n action(\"Reservation Entries\")\n", "error_message": null, "metrics": {"execution_time": 54.0, "llm_duration": null, "turn_count": 6, "prompt_tokens": 99900, "completion_tokens": 1700, "tool_usage": {"grep": 6, "view": 2, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-206977__cf-2", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\nindex 0877c357..49f16acc 100644\n--- a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\n+++ b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\n@@ -161,7 +161,12 @@ page 903 \"Assembly Lines\"\n AssemblyHeader: Record \"Assembly Header\";\n begin\n AssemblyHeader.Get(Rec.\"Document Type\", Rec.\"Document No.\");\n- PAGE.Run(PAGE::\"Assembly Order\", AssemblyHeader);\n+ case Rec.\"Document Type\" of\n+ Rec.\"Document Type\"::\"Blanket Order\":\n+ PAGE.Run(PAGE::\"Blanket Assembly Order\", AssemblyHeader);\n+ else\n+ PAGE.Run(PAGE::\"Assembly Order\", AssemblyHeader);\n+ end;\n end;\n }\n action(\"Reservation Entries\")\n", "error_message": null, "metrics": {"execution_time": 59.0, "llm_duration": null, "turn_count": 7, "prompt_tokens": 147800, "completion_tokens": 1600, "tool_usage": {"grep": 8, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-206977__cf-3", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\nindex 0877c357..6fa4013c 100644\n--- a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\n+++ b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\n@@ -161,7 +161,10 @@ page 903 \"Assembly Lines\"\n AssemblyHeader: Record \"Assembly Header\";\n begin\n AssemblyHeader.Get(Rec.\"Document Type\", Rec.\"Document No.\");\n- PAGE.Run(PAGE::\"Assembly Order\", AssemblyHeader);\n+ if AssemblyHeader.\"Document Type\" = AssemblyHeader.\"Document Type\"::\"Blanket Order\" then\n+ PAGE.Run(PAGE::\"Blanket Assembly Order\", AssemblyHeader)\n+ else\n+ PAGE.Run(PAGE::\"Assembly Order\", AssemblyHeader);\n end;\n }\n action(\"Reservation Entries\")\n", "error_message": null, "metrics": {"execution_time": 66.0, "llm_duration": null, "turn_count": 6, "prompt_tokens": 147300, "completion_tokens": 1600, "tool_usage": {"grep": 6, "view": 1, "glob": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-207177__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\nindex a84b0558..35987dc2 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n@@ -42,6 +42,9 @@ page 7504 \"Item Attribute Value List\"\n DeleteItemAttributeValueMapping(ItemAttribute.ID);\n end;\n \n+ if Rec.Value = '' then\n+ exit;\n+\n if not Rec.FindAttributeValue(ItemAttributeValue) then\n Rec.InsertItemAttributeValue(ItemAttributeValue, Rec);\n \n", "error_message": null, "metrics": {"execution_time": 93.0, "llm_duration": null, "turn_count": 11, "prompt_tokens": 288100, "completion_tokens": 3400, "tool_usage": {"grep": 1, "view": 11, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-207177__cf-2", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\nindex a84b0558..35987dc2 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n@@ -42,6 +42,9 @@ page 7504 \"Item Attribute Value List\"\n DeleteItemAttributeValueMapping(ItemAttribute.ID);\n end;\n \n+ if Rec.Value = '' then\n+ exit;\n+\n if not Rec.FindAttributeValue(ItemAttributeValue) then\n Rec.InsertItemAttributeValue(ItemAttributeValue, Rec);\n \n", "error_message": null, "metrics": {"execution_time": 79.0, "llm_duration": null, "turn_count": 8, "prompt_tokens": 193300, "completion_tokens": 3500, "tool_usage": {"grep": 3, "view": 7, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-207177__cf-3", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\nindex a84b0558..35987dc2 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n@@ -42,6 +42,9 @@ page 7504 \"Item Attribute Value List\"\n DeleteItemAttributeValueMapping(ItemAttribute.ID);\n end;\n \n+ if Rec.Value = '' then\n+ exit;\n+\n if not Rec.FindAttributeValue(ItemAttributeValue) then\n Rec.InsertItemAttributeValue(ItemAttributeValue, Rec);\n \n", "error_message": null, "metrics": {"execution_time": 88.0, "llm_duration": null, "turn_count": 8, "prompt_tokens": 215300, "completion_tokens": 3600, "tool_usage": {"grep": 3, "view": 6, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-207236__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseHeader.Table.al b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseHeader.Table.al\nindex 18898d3e..7272b2cc 100644\n--- a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseHeader.Table.al\n@@ -6420,6 +6420,7 @@ table 38 \"Purchase Header\"\n exit;\n \n if ReplacePostingDate then begin\n+ Get(\"Document Type\", \"No.\");\n \"Posting Date\" := PostingDateReq;\n Validate(\"Currency Code\");\n end;\ndiff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al b/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\nindex fbf39fce..fb2bc8e6 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\n@@ -7037,6 +7037,7 @@ table 36 \"Sales Header\"\n if DeferralHeadersExist() then\n exit;\n \n+ Get(\"Document Type\", \"No.\");\n \"Posting Date\" := PostingDateReq;\n Validate(\"Currency Code\");\n \n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134391'\nCodeunit 134391 ERM Sales Batch Posting\n Testfunction BatchPostSaleInvoiceWithReplacePostingDateAndCurrencyCode Failure (9.51 seconds)\n Error:\n There is no Job Queue Entry within the filter.\\\\Filters: Record ID to Process: Sales Header: Invoice,102222\n Call Stack:\n \"Library - Job Queue\"(CodeUnit 132458).FindAndRunJobQueueEntryByRecordId line 5 - Tests-TestLibraries by Microsoft version 26.0.0.0\n \"Library - Job Queue\"(CodeUnit 132458).FindAndRunJobQueueEntryByRecordId line 2 - Tests-TestLibraries by Microsoft version 26.0.0.0\n \"ERM Sales Batch Posting\"(CodeUnit 134391).BatchPostSaleInvoiceWithReplacePostingDateAndCurrencyCode line 22 - Tests-ERM by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0", "metrics": {"execution_time": 231.0, "llm_duration": null, "turn_count": 14, "prompt_tokens": 340600, "completion_tokens": 10400, "tool_usage": {"grep": 8, "view": 6, "report_intent": 1, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-207247__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\nindex bd370429..d84df0de 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n@@ -1541,6 +1541,9 @@ codeunit 99000813 \"Carry Out Action\"\n ProductionBOMLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n ProductionBOMLine.SetRange(Type, ProductionBOMLine.Type::Item);\n ProductionBOMLine.SetRange(\"No.\", ProdOrderComponent.\"Item No.\");\n+ ProductionBOMLine.SetRange(Position, ProdOrderComponent.Position);\n+ ProductionBOMLine.SetRange(\"Position 2\", ProdOrderComponent.\"Position 2\");\n+ ProductionBOMLine.SetRange(\"Position 3\", ProdOrderComponent.\"Position 3\");\n if ProductionBOMLine.FindSet() then\n repeat\n ProductionBOMCommentLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n", "error_message": null, "metrics": {"execution_time": 80.0, "llm_duration": null, "turn_count": 8, "prompt_tokens": 172100, "completion_tokens": 2400, "tool_usage": {"grep": 7, "view": 4, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-207247__cf-2", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\nindex bd370429..d0b4ff0a 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n@@ -1541,6 +1541,10 @@ codeunit 99000813 \"Carry Out Action\"\n ProductionBOMLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n ProductionBOMLine.SetRange(Type, ProductionBOMLine.Type::Item);\n ProductionBOMLine.SetRange(\"No.\", ProdOrderComponent.\"Item No.\");\n+ ProductionBOMLine.SetRange(\"Version Code\", ActiveVersionCode);\n+ ProductionBOMLine.SetRange(Position, ProdOrderComponent.Position);\n+ ProductionBOMLine.SetRange(\"Position 2\", ProdOrderComponent.\"Position 2\");\n+ ProductionBOMLine.SetRange(\"Position 3\", ProdOrderComponent.\"Position 3\");\n if ProductionBOMLine.FindSet() then\n repeat\n ProductionBOMCommentLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n", "error_message": null, "metrics": {"execution_time": 204.0, "llm_duration": null, "turn_count": 21, "prompt_tokens": 595900, "completion_tokens": 7900, "tool_usage": {"grep": 22, "view": 9, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-207247__cf-3", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\nindex bd370429..be4c099e 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n@@ -1539,8 +1539,12 @@ codeunit 99000813 \"Carry Out Action\"\n ActiveVersionCode := VersionManagement.GetBOMVersion(ProductionBOMHeader.\"No.\", WorkDate(), true);\n \n ProductionBOMLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n+ ProductionBOMLine.SetRange(\"Version Code\", ActiveVersionCode);\n ProductionBOMLine.SetRange(Type, ProductionBOMLine.Type::Item);\n ProductionBOMLine.SetRange(\"No.\", ProdOrderComponent.\"Item No.\");\n+ ProductionBOMLine.SetRange(Position, ProdOrderComponent.Position);\n+ ProductionBOMLine.SetRange(\"Position 2\", ProdOrderComponent.\"Position 2\");\n+ ProductionBOMLine.SetRange(\"Position 3\", ProdOrderComponent.\"Position 3\");\n if ProductionBOMLine.FindSet() then\n repeat\n ProductionBOMCommentLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n", "error_message": null, "metrics": {"execution_time": 197.0, "llm_duration": null, "turn_count": 18, "prompt_tokens": 706600, "completion_tokens": 10900, "tool_usage": {"task": 1, "grep": 13, "view": 6, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-207878__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Availability/AvailabletoPromise.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Availability/AvailabletoPromise.Codeunit.al\nindex a486f294..7f66b5cd 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Availability/AvailabletoPromise.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Availability/AvailabletoPromise.Codeunit.al\n@@ -64,7 +64,7 @@ codeunit 5790 \"Available to Promise\"\n ScheduledReceipt := CalcScheduledReceipt(Item);\n GrossRequirement := CalcGrossRequirement(Item);\n \n- if AvailabilityDate <> 0D then\n+ if (AvailabilityDate <> 0D) and (Format(LookaheadDateFormula) <> '') then\n GrossRequirement +=\n CalculateForward(\n Item, PeriodType,\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134381'\nCodeunit 134381 ERM Dimension Priority\n Testfunction AvailWarningAssemblyOrdersConsideringDueDates Failure (7.276 seconds)\n Error:\n Assert.IsFalse failed. Avail. warning should be No\n Call Stack:\n Assert(CodeUnit 130000).IsFalse line 3 - Tests-TestLibraries by Microsoft version 26.0.0.0\n \"ERM Dimension Priority\"(CodeUnit 134381).AvailWarningAssemblyOrdersConsideringDueDates line 92 - Tests-Dimension by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0", "metrics": {"execution_time": 1106.0, "llm_duration": null, "turn_count": 87, "prompt_tokens": 5100000, "completion_tokens": 57300, "tool_usage": {"task": 1, "grep": 44, "view": 22, "read_agent": 1, "report_intent": 2, "glob": 2, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-208649__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\nindex 36930a9e..058f96b4 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n@@ -263,7 +263,6 @@ codeunit 99000773 \"Calculate Prod. Order\"\n Item2: Record Item;\n ComponentSKU: Record \"Stockkeeping Unit\";\n IsHandled: Boolean;\n- QtyRoundPrecision: Decimal;\n begin\n ProdOrderComp.Reset();\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\", \"Item No.\");\n@@ -295,12 +294,7 @@ codeunit 99000773 \"Calculate Prod. Order\"\n ProdOrderComp.\"Bin Code\" := GetDefaultBin();\n ProdOrderComp.Description := ProdBOMLine[Level].Description;\n ProdOrderComp.Validate(\"Unit of Measure Code\", ProdBOMLine[Level].\"Unit of Measure Code\");\n- if (ProdOrderComp.\"Item No.\" <> '') and Item2.Get(ProdOrderComp.\"Item No.\") then\n- QtyRoundPrecision := UOMMgt.GetQtyRoundingPrecision(Item2, ProdBOMLine[Level].\"Unit of Measure Code\");\n- if QtyRoundPrecision <> 0 then\n- ProdOrderComp.\"Quantity per\" := Round(ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM, QtyRoundPrecision)\n- else\n- ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n+ ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n ProdOrderComp.Length := ProdBOMLine[Level].Length;\n ProdOrderComp.Width := ProdBOMLine[Level].Width;\n ProdOrderComp.Weight := ProdBOMLine[Level].Weight;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137088'\nCodeunit 137088 SCM Order Planning - III\n Testfunction ReleasedProdOrderQuantityPerandExpectedQtyRoundingPrecisionChecking Failure (7.853 seconds)\n Error:\n The value in the Qty. Rounding Precision field on the Item Unit of Measure page is causing the rounding precision for the Expected Quantity field to be incorrect.\n Call Stack:\n \"Prod. Order Component\"(Table 5407).\"Expected Quantity - OnValidate\"(Trigger) line 26 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).UpdateExpectedQuantity line 14 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).\"Routing Link Code - OnValidate\"(Trigger) line 5 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).TransferBOMProcessItem line 45 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).TransferBOM line 70 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).Calculate line 105 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order Lines\"(CodeUnit 99000787).ProcessProdOrderLines line 13 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order Lines\"(CodeUnit 99000787).Copy line 23 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order from Sale\"(CodeUnit 99000792).CreateProductionOrder line 54 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateOrder line 11 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateOrders line 35 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateProdOrder line 24 - Base Application by Microsoft version 26.0.0.0\n \"Library - Planning\"(CodeUnit 132203).CreateProdOrderUsingPlanning line 6 - Tests-TestLibraries by Microsoft version 26.0.0.0\n \"SCM Order Planning - III\"(CodeUnit 137088).ReleasedProdOrderQuantityPerandExpectedQtyRoundingPrecisionChecking line 50 - Tests-SCM by Microsoft version 26.0.0.0", "metrics": {"execution_time": 122.0, "llm_duration": null, "turn_count": 14, "prompt_tokens": 570900, "completion_tokens": 4300, "tool_usage": {"grep": 12, "view": 4, "report_intent": 1, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-208649__cf-2", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\nindex 36930a9e..058f96b4 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n@@ -263,7 +263,6 @@ codeunit 99000773 \"Calculate Prod. Order\"\n Item2: Record Item;\n ComponentSKU: Record \"Stockkeeping Unit\";\n IsHandled: Boolean;\n- QtyRoundPrecision: Decimal;\n begin\n ProdOrderComp.Reset();\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\", \"Item No.\");\n@@ -295,12 +294,7 @@ codeunit 99000773 \"Calculate Prod. Order\"\n ProdOrderComp.\"Bin Code\" := GetDefaultBin();\n ProdOrderComp.Description := ProdBOMLine[Level].Description;\n ProdOrderComp.Validate(\"Unit of Measure Code\", ProdBOMLine[Level].\"Unit of Measure Code\");\n- if (ProdOrderComp.\"Item No.\" <> '') and Item2.Get(ProdOrderComp.\"Item No.\") then\n- QtyRoundPrecision := UOMMgt.GetQtyRoundingPrecision(Item2, ProdBOMLine[Level].\"Unit of Measure Code\");\n- if QtyRoundPrecision <> 0 then\n- ProdOrderComp.\"Quantity per\" := Round(ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM, QtyRoundPrecision)\n- else\n- ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n+ ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n ProdOrderComp.Length := ProdBOMLine[Level].Length;\n ProdOrderComp.Width := ProdBOMLine[Level].Width;\n ProdOrderComp.Weight := ProdBOMLine[Level].Weight;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137088'\nCodeunit 137088 SCM Order Planning - III\n Testfunction ReleasedProdOrderQuantityPerandExpectedQtyRoundingPrecisionChecking Failure (7.81 seconds)\n Error:\n The value in the Qty. Rounding Precision field on the Item Unit of Measure page is causing the rounding precision for the Expected Quantity field to be incorrect.\n Call Stack:\n \"Prod. Order Component\"(Table 5407).\"Expected Quantity - OnValidate\"(Trigger) line 26 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).UpdateExpectedQuantity line 14 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).\"Routing Link Code - OnValidate\"(Trigger) line 5 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).TransferBOMProcessItem line 45 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).TransferBOM line 70 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).Calculate line 105 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order Lines\"(CodeUnit 99000787).ProcessProdOrderLines line 13 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order Lines\"(CodeUnit 99000787).Copy line 23 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order from Sale\"(CodeUnit 99000792).CreateProductionOrder line 54 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateOrder line 11 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateOrders line 35 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateProdOrder line 24 - Base Application by Microsoft version 26.0.0.0\n \"Library - Planning\"(CodeUnit 132203).CreateProdOrderUsingPlanning line 6 - Tests-TestLibraries by Microsoft version 26.0.0.0\n \"SCM Order Planning - III\"(CodeUnit 137088).ReleasedProdOrderQuantityPerandExpectedQtyRoundingPrecisionChecking line 50 - Tests-SCM by Microsoft version 26.0.0.0", "metrics": {"execution_time": 126.0, "llm_duration": null, "turn_count": 12, "prompt_tokens": 405800, "completion_tokens": 4500, "tool_usage": {"grep": 10, "view": 6, "report_intent": 1, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-208748__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\nindex 7c1943c5..4e041256 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\n@@ -123,6 +123,7 @@ codeunit 87 \"Blanket Sales Order to Order\"\n ATOLink: Record \"Assemble-to-Order Link\";\n PrepmtMgt: Codeunit \"Prepayment Mgt.\";\n SalesLineReserve: Codeunit \"Sales Line-Reserve\";\n+ LineNoMapping: Dictionary of [Integer, Integer];\n QuantityOnOrders: Decimal;\n IsHandled: Boolean;\n ProcessLine: Boolean;\n@@ -166,6 +167,10 @@ codeunit 87 \"Blanket Sales Order to Order\"\n SalesLineOrder.\"Line No.\" := NextLineNo;\n SalesLineOrder.\"Blanket Order No.\" := SalesHeaderBlanketOrder.\"No.\";\n SalesLineOrder.\"Blanket Order Line No.\" := SalesLineBlanketOrder.\"Line No.\";\n+ LineNoMapping.Set(SalesLineBlanketOrder.\"Line No.\", NextLineNo);\n+ if SalesLineOrder.IsExtendedText() then\n+ if LineNoMapping.ContainsKey(SalesLineOrder.\"Attached to Line No.\") then\n+ SalesLineOrder.\"Attached to Line No.\" := LineNoMapping.Get(SalesLineOrder.\"Attached to Line No.\");\n if (SalesLineOrder.\"No.\" <> '') and (SalesLineOrder.Type <> SalesLineOrder.Type::\" \") then begin\n SalesLineOrder.Amount := 0;\n SalesLineOrder.\"Amount Including VAT\" := 0;\n", "error_message": null, "metrics": {"execution_time": 247.0, "llm_duration": null, "turn_count": 17, "prompt_tokens": 584700, "completion_tokens": 11800, "tool_usage": {"grep": 9, "view": 8, "report_intent": 2, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-208748__cf-2", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\nindex 7c1943c5..3097a954 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\n@@ -123,6 +123,7 @@ codeunit 87 \"Blanket Sales Order to Order\"\n ATOLink: Record \"Assemble-to-Order Link\";\n PrepmtMgt: Codeunit \"Prepayment Mgt.\";\n SalesLineReserve: Codeunit \"Sales Line-Reserve\";\n+ LineNoMapping: Dictionary of [Integer, Integer];\n QuantityOnOrders: Decimal;\n IsHandled: Boolean;\n ProcessLine: Boolean;\n@@ -164,6 +165,10 @@ codeunit 87 \"Blanket Sales Order to Order\"\n SalesLineOrder.\"Document No.\" := SalesHeaderOrder.\"No.\";\n NextLineNo += 10000;\n SalesLineOrder.\"Line No.\" := NextLineNo;\n+ LineNoMapping.Set(SalesLineBlanketOrder.\"Line No.\", NextLineNo);\n+ if SalesLineOrder.IsExtendedText() then\n+ if LineNoMapping.ContainsKey(SalesLineOrder.\"Attached to Line No.\") then\n+ SalesLineOrder.\"Attached to Line No.\" := LineNoMapping.Get(SalesLineOrder.\"Attached to Line No.\");\n SalesLineOrder.\"Blanket Order No.\" := SalesHeaderBlanketOrder.\"No.\";\n SalesLineOrder.\"Blanket Order Line No.\" := SalesLineBlanketOrder.\"Line No.\";\n if (SalesLineOrder.\"No.\" <> '') and (SalesLineOrder.Type <> SalesLineOrder.Type::\" \") then begin\n", "error_message": null, "metrics": {"execution_time": 142.0, "llm_duration": null, "turn_count": 13, "prompt_tokens": 365800, "completion_tokens": 6200, "tool_usage": {"grep": 5, "view": 7, "report_intent": 1, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-208851__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al b/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al\nindex fb6adbb6..9b29109e 100644\n--- a/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al\n@@ -563,8 +563,10 @@ table 7000 \"Price List Header\"\n xAmountType: Enum \"Price Amount Type\";\n begin\n xAmountType := \"Amount Type\";\n- if \"Source Type\" in [\"Source Type\"::\"Customer Disc. Group\", \"Source Type\"::\"Customer Price Group\"] then\n- \"Amount Type\" := PriceSource.GetDefaultAmountType()\n+ if \"Source Type\" in [\"Source Type\"::\"Customer Disc. Group\", \"Source Type\"::\"Customer Price Group\"] then begin\n+ CopyTo(PriceSource);\n+ \"Amount Type\" := PriceSource.GetDefaultAmountType();\n+ end\n else\n \"Amount Type\" := CalcAmountType();\n if \"Amount Type\" <> xAmountType then\n", "error_message": null, "metrics": {"execution_time": 64.0, "llm_duration": null, "turn_count": 5, "prompt_tokens": 147400, "completion_tokens": 2300, "tool_usage": {"grep": 4, "view": 3, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-209450__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\nindex bb5d38d2..232198a6 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\n@@ -1075,6 +1075,8 @@ table 1003 \"Job Planning Line\"\n TestField(Type, Type::Item);\n TestField(\"No.\");\n TestField(\"Usage Link\");\n+ if IsNonInventoriableItem() then\n+ Error(NonInvReserveTypeErr, \"No.\", Reserve);\n end;\n CalcFields(\"Reserved Qty. (Base)\");\n if (Reserve = Reserve::Never) and (\"Reserved Qty. (Base)\" > 0) then\n@@ -1521,6 +1523,7 @@ table 1003 \"Job Planning Line\"\n QtyGreaterErr: Label '%1 cannot be higher than %2.', Comment = '%1 = Caption for field Quantity; %2 = Captiion for field Qty. Transferred to Invoice';\n RequestedDeliveryDateErr: Label 'You cannot change the %1 when the %2 has been filled in.', Comment = '%1 = Caption for field Requested Delivery Date; %2 = Captiion for field Promised Delivery Date';\n NotPossibleJobPlanningLineErr: Label 'It is not possible to deleted project planning line transferred to an invoice.';\n+ NonInvReserveTypeErr: Label 'Non-inventory and service items must have the reserve type Never. The current reserve type for item %1 is %2.', Comment = '%1 is Item No., %2 is Reserve';\n NegativeQtyToAssembleErr: Label ' must be positive.', Comment = 'Qty. to Assemble can''t be negative';\n DifferentQtyToAssembleErr: Label ' must be equal to %1.', Comment = 'Qty. to Assemble must be equal to Quantity, %1 = Quantity';\n CannotBeMoreErr: Label 'cannot be more than %1', Comment = '%1 = Quantity';\n@@ -2649,6 +2652,8 @@ table 1003 \"Job Planning Line\"\n begin\n TestField(Type, Type::Item);\n TestField(\"No.\");\n+ if IsNonInventoriableItem() then\n+ Error(NonInvReserveTypeErr, \"No.\", Reserve);\n if Reserve = Reserve::Never then\n FieldError(Reserve);\n JobPlanningLineReserve.ReservQuantity(Rec, QtyToReserve, QtyToReserveBase);\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136302'\nCodeunit 136302 Job Consumption Purchase\n Testfunction PurchaseLineNotReservedWhenItemTypeNonInventory Failure (17.597 seconds)\n Error:\n Non-inventory and service items must have the reserve type Never. The current reserve type for item GL00000001 is Optional.\n Call Stack:\n \"Job Planning Line\"(Table 1003).\"Reserve - OnValidate\"(Trigger) line 7 - Base Application by Microsoft version 26.0.0.0\n \"Job Consumption Purchase\"(CodeUnit 136302).PurchaseLineNotReservedWhenItemTypeNonInventory line 33 - Tests-Job by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0", "metrics": {"execution_time": 113.0, "llm_duration": null, "turn_count": 13, "prompt_tokens": 313100, "completion_tokens": 3800, "tool_usage": {"grep": 10, "view": 8, "report_intent": 1, "edit": 3}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-209450__cf-2", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\nindex bb5d38d2..183df806 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\n@@ -1075,6 +1075,8 @@ table 1003 \"Job Planning Line\"\n TestField(Type, Type::Item);\n TestField(\"No.\");\n TestField(\"Usage Link\");\n+ GetItem();\n+ Item.TestField(Type, Item.Type::Inventory);\n end;\n CalcFields(\"Reserved Qty. (Base)\");\n if (Reserve = Reserve::Never) and (\"Reserved Qty. (Base)\" > 0) then\n@@ -1668,10 +1670,13 @@ table 1003 \"Job Planning Line\"\n \"Gen. Prod. Posting Group\" := Item.\"Gen. Prod. Posting Group\";\n Validate(\"Unit of Measure Code\", Item.\"Base Unit of Measure\");\n if \"Usage Link\" then\n- if Item.Reserve = Item.Reserve::Optional then\n- Reserve := Job.Reserve\n+ if Item.IsNonInventoriableType() then\n+ Reserve := Reserve::Never\n else\n- Reserve := Item.Reserve;\n+ if Item.Reserve = Item.Reserve::Optional then\n+ Reserve := Job.Reserve\n+ else\n+ Reserve := Item.Reserve;\n OnAfterCopyFromItem(Rec, Job, Item);\n end;\n \n@@ -2584,11 +2589,14 @@ table 1003 \"Job Planning Line\"\n FieldNo(\"Usage Link\"):\n if (Type = Type::Item) and \"Usage Link\" then begin\n GetItem();\n- if Item.Reserve = Item.Reserve::Optional then begin\n- GetJob();\n- Reserve := Job.Reserve\n- end else\n- Reserve := Item.Reserve;\n+ if Item.IsNonInventoriableType() then\n+ Reserve := Reserve::Never\n+ else\n+ if Item.Reserve = Item.Reserve::Optional then begin\n+ GetJob();\n+ Reserve := Job.Reserve\n+ end else\n+ Reserve := Item.Reserve;\n end else\n Reserve := Reserve::Never;\n end;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136302'\nCodeunit 136302 Job Consumption Purchase\n Testfunction PurchaseLineNotReservedWhenItemTypeService Failure (19.307 seconds)\n Error:\n Type must be equal to 'Inventory' in Item: No.=GL00000001. Current value is 'Service'.\n Call Stack:\n \"Job Planning Line\"(Table 1003).\"Reserve - OnValidate\"(Trigger) line 7 - Base Application by Microsoft version 26.0.0.0\n \"Job Consumption Purchase\"(CodeUnit 136302).PurchaseLineNotReservedWhenItemTypeService line 33 - Tests-Job by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0", "metrics": {"execution_time": 103.0, "llm_duration": null, "turn_count": 10, "prompt_tokens": 275900, "completion_tokens": 3700, "tool_usage": {"grep": 7, "view": 8, "report_intent": 1, "edit": 3}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-209496__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\nindex 10d284cc..768dec3d 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\n@@ -132,8 +132,10 @@ page 835 \"Reminder Level Communication\"\n LocalLanguage.FindFirst();\n \n // Necessary when the user has deleted all languages or has not created any language yet\n- if IsNullGuid(Rec.\"Reminder Attachment Text\") then\n+ if IsNullGuid(Rec.\"Reminder Attachment Text\") then begin\n ReminderCommunication.SetDefaultContentForNewLanguage(CreateGuid(), LocalLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Level\", Rec.SystemId);\n+ Rec.Get(Rec.\"Reminder Terms Code\", Rec.\"No.\");\n+ end;\n \n SelectedNewLanguage := true;\n SelectLanguageAndText(LocalLanguage.Code, true);\ndiff --git a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al\nindex 5cce8ad7..2e1faef8 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al\n@@ -125,8 +125,10 @@ page 1897 \"Reminder Term Communication\"\n LocalLanguage.FindFirst();\n \n // Necessary when the user has deleted all languages or has not created any language yet\n- if IsNullGuid(Rec.\"Reminder Attachment Text\") then\n+ if IsNullGuid(Rec.\"Reminder Attachment Text\") then begin\n ReminderCommunication.SetDefaultContentForNewLanguage(CreateGuid(), LocalLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Term\", Rec.SystemId);\n+ Rec.Get(Rec.Code);\n+ end;\n \n SelectedNewLanguage := true;\n SelectLanguageAndText(LocalLanguage.Code, true);\n", "error_message": null, "metrics": {"execution_time": 118.0, "llm_duration": null, "turn_count": 12, "prompt_tokens": 315900, "completion_tokens": 4600, "tool_usage": {"grep": 6, "view": 7, "report_intent": 1, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-209496__cf-2", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\nindex 10d284cc..768dec3d 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\n@@ -132,8 +132,10 @@ page 835 \"Reminder Level Communication\"\n LocalLanguage.FindFirst();\n \n // Necessary when the user has deleted all languages or has not created any language yet\n- if IsNullGuid(Rec.\"Reminder Attachment Text\") then\n+ if IsNullGuid(Rec.\"Reminder Attachment Text\") then begin\n ReminderCommunication.SetDefaultContentForNewLanguage(CreateGuid(), LocalLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Level\", Rec.SystemId);\n+ Rec.Get(Rec.\"Reminder Terms Code\", Rec.\"No.\");\n+ end;\n \n SelectedNewLanguage := true;\n SelectLanguageAndText(LocalLanguage.Code, true);\ndiff --git a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al\nindex 5cce8ad7..2e1faef8 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al\n@@ -125,8 +125,10 @@ page 1897 \"Reminder Term Communication\"\n LocalLanguage.FindFirst();\n \n // Necessary when the user has deleted all languages or has not created any language yet\n- if IsNullGuid(Rec.\"Reminder Attachment Text\") then\n+ if IsNullGuid(Rec.\"Reminder Attachment Text\") then begin\n ReminderCommunication.SetDefaultContentForNewLanguage(CreateGuid(), LocalLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Term\", Rec.SystemId);\n+ Rec.Get(Rec.Code);\n+ end;\n \n SelectedNewLanguage := true;\n SelectLanguageAndText(LocalLanguage.Code, true);\n", "error_message": null, "metrics": {"execution_time": 124.0, "llm_duration": null, "turn_count": 10, "prompt_tokens": 254000, "completion_tokens": 5000, "tool_usage": {"grep": 3, "view": 6, "report_intent": 1, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-209835__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\nindex 78996b41..43c6dbb9 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\n@@ -473,7 +473,8 @@ report 99001020 \"Carry Out Action Msg. - Plan.\"\n if CurrReqWkshTemp <> '' then\n \"Requisition Line\".SetRange(\"Journal Batch Name\", CurrReqWkshName);\n \"Requisition Line\".SetRange(Type, \"Requisition Line\".Type::Item);\n- \"Requisition Line\".SetFilter(\"Action Message\", '<>%1', \"Requisition Line\".\"Action Message\"::\" \");\n+ if \"Requisition Line\".GetFilter(\"Action Message\") = '' then\n+ \"Requisition Line\".SetFilter(\"Action Message\", '<>%1', \"Requisition Line\".\"Action Message\"::\" \");\n OnAfterSetReqLineFilters(\"Requisition Line\");\n end;\n \n", "error_message": null, "metrics": {"execution_time": 106.0, "llm_duration": null, "turn_count": 13, "prompt_tokens": 360400, "completion_tokens": 3300, "tool_usage": {"grep": 6, "view": 8, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-209835__cf-2", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\nindex 78996b41..43c6dbb9 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\n@@ -473,7 +473,8 @@ report 99001020 \"Carry Out Action Msg. - Plan.\"\n if CurrReqWkshTemp <> '' then\n \"Requisition Line\".SetRange(\"Journal Batch Name\", CurrReqWkshName);\n \"Requisition Line\".SetRange(Type, \"Requisition Line\".Type::Item);\n- \"Requisition Line\".SetFilter(\"Action Message\", '<>%1', \"Requisition Line\".\"Action Message\"::\" \");\n+ if \"Requisition Line\".GetFilter(\"Action Message\") = '' then\n+ \"Requisition Line\".SetFilter(\"Action Message\", '<>%1', \"Requisition Line\".\"Action Message\"::\" \");\n OnAfterSetReqLineFilters(\"Requisition Line\");\n end;\n \n", "error_message": null, "metrics": {"execution_time": 116.0, "llm_duration": null, "turn_count": 11, "prompt_tokens": 305200, "completion_tokens": 4100, "tool_usage": {"grep": 6, "view": 7, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-210200__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Service/Document/StandardServiceCode.Table.al b/App/Layers/W1/BaseApp/Service/Document/StandardServiceCode.Table.al\nindex 986aeff9..eed8e6c4 100644\n--- a/App/Layers/W1/BaseApp/Service/Document/StandardServiceCode.Table.al\n+++ b/App/Layers/W1/BaseApp/Service/Document/StandardServiceCode.Table.al\n@@ -191,6 +191,7 @@ table 5996 \"Standard Service Code\"\n ServLine.\"Line No.\" := ServLine.GetLineNo();\n OnBeforeInsertServLine(ServLine);\n ServLine.Insert(true);\n+ ServLine.AutoReserve(false);\n InsertExtendedText(ServLine);\n end;\n until StdServLine.Next() = 0;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136119'\nCodeunit 136119 Service Standard Codes\n Testfunction ReservationEntryMustBeCreatedWhenReserveIsAlwaysInServiceLine Failure (9.183 seconds)\n Error:\n Assert.AreEqual failed. Expected:<5> (Integer). Actual:<0> (Decimal). Reserved Qty. (Base) must be equal to 5 in Service Line.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 26.0.0.0\n \"Service Standard Codes\"(CodeUnit 136119).ReservationEntryMustBeCreatedWhenReserveIsAlwaysInServiceLine line 61 - Tests-SCM-Service by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0", "metrics": {"execution_time": 62.0, "llm_duration": null, "turn_count": 7, "prompt_tokens": 141900, "completion_tokens": 1700, "tool_usage": {"grep": 5, "view": 2, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-210200__cf-2", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Service/Document/StandardServiceCode.Table.al b/App/Layers/W1/BaseApp/Service/Document/StandardServiceCode.Table.al\nindex 986aeff9..d79bdd55 100644\n--- a/App/Layers/W1/BaseApp/Service/Document/StandardServiceCode.Table.al\n+++ b/App/Layers/W1/BaseApp/Service/Document/StandardServiceCode.Table.al\n@@ -192,6 +192,8 @@ table 5996 \"Standard Service Code\"\n OnBeforeInsertServLine(ServLine);\n ServLine.Insert(true);\n InsertExtendedText(ServLine);\n+ if (ServLine.Type = ServLine.Type::Item) and (ServLine.Reserve = ServLine.Reserve::Always) then\n+ ServLine.AutoReserve(false);\n end;\n until StdServLine.Next() = 0;\n end;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136119'\nCodeunit 136119 Service Standard Codes\n Testfunction ReservationEntryMustBeCreatedWhenReserveIsAlwaysInServiceLine Failure (8.644 seconds)\n Error:\n Assert.AreEqual failed. Expected:<5> (Integer). Actual:<0> (Decimal). Reserved Qty. (Base) must be equal to 5 in Service Line.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 26.0.0.0\n \"Service Standard Codes\"(CodeUnit 136119).ReservationEntryMustBeCreatedWhenReserveIsAlwaysInServiceLine line 66 - Tests-SCM-Service by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0", "metrics": {"execution_time": 128.0, "llm_duration": null, "turn_count": 17, "prompt_tokens": 523900, "completion_tokens": 3500, "tool_usage": {"grep": 13, "view": 6, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-210528__cf-1", "project": "Sustainability", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al b/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al\nindex 335c0099..9f66745d 100644\n--- a/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al\n+++ b/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al\n@@ -148,9 +148,17 @@ table 6217 \"Sustainability Setup\"\n \n trigger OnValidate()\n begin\n- if Rec.\"Enable Value Chain Tracking\" then\n+ if Rec.\"Enable Value Chain Tracking\" then begin\n if not ConfirmManagement.GetResponseOrDefault(ConfirmEnableValueChainTrackingQst, false) then\n Error('');\n+\n+ if not Rec.\"Use Emissions In Purch. Doc.\" then\n+ Rec.Validate(\"Use Emissions In Purch. Doc.\", true);\n+ if not Rec.\"Item Emissions\" then\n+ Rec.Validate(\"Item Emissions\", true);\n+ if not Rec.\"Resource Emissions\" then\n+ Rec.Validate(\"Resource Emissions\", true);\n+ end;\n end;\n }\n }\n", "error_message": null, "metrics": {"execution_time": 42.0, "llm_duration": null, "turn_count": 7, "prompt_tokens": 113100, "completion_tokens": 1200, "tool_usage": {"grep": 3, "view": 2, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-211521__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al b/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\nindex 401cabee..42569b9b 100644\n--- a/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\n+++ b/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\n@@ -565,8 +565,7 @@ table 5050 Contact\n {\n CalcFormula = min(\"To-do\".Date where(\"Contact Company No.\" = field(\"Company No.\"),\n \"Contact No.\" = field(filter(\"Lookup Contact No.\")),\n- Closed = const(false),\n- \"System To-do Type\" = const(\"Contact Attendee\")));\n+ Closed = const(false)));\n Caption = 'Next Task Date';\n Editable = false;\n FieldClass = FlowField;\n", "error_message": null, "metrics": {"execution_time": 78.0, "llm_duration": null, "turn_count": 11, "prompt_tokens": 196300, "completion_tokens": 2100, "tool_usage": {"grep": 3, "view": 3, "edit": 2, "powershell": 3}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-211521__cf-2", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al b/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\nindex 401cabee..42569b9b 100644\n--- a/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\n+++ b/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\n@@ -565,8 +565,7 @@ table 5050 Contact\n {\n CalcFormula = min(\"To-do\".Date where(\"Contact Company No.\" = field(\"Company No.\"),\n \"Contact No.\" = field(filter(\"Lookup Contact No.\")),\n- Closed = const(false),\n- \"System To-do Type\" = const(\"Contact Attendee\")));\n+ Closed = const(false)));\n Caption = 'Next Task Date';\n Editable = false;\n FieldClass = FlowField;\n", "error_message": null, "metrics": {"execution_time": 88.0, "llm_duration": null, "turn_count": 14, "prompt_tokens": 251000, "completion_tokens": 2500, "tool_usage": {"grep": 11, "view": 1, "glob": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-213671__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al b/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\nindex c70c6c1e..81667180 100644\n--- a/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\n+++ b/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\n@@ -630,7 +630,7 @@ page 5123 \"Opportunity List\"\n if Filter <> '' then begin\n RecRef.GetTable(RecVar);\n IndexFieldRef := RecRef.Field(IndexFieldNo);\n- IndexFieldRef.SetRange(Filter);\n+ IndexFieldRef.SetFilter(Filter);\n if RecRef.FindFirst() then begin\n TextFieldRef := RecRef.Field(TextFieldNo);\n CaptionText := CopyStr(Format(IndexFieldRef.Value) + ' ' + Format(TextFieldRef.Value), 1, MaxStrLen(CaptionText));\n", "error_message": null, "metrics": {"execution_time": 59.0, "llm_duration": null, "turn_count": 4, "prompt_tokens": 73500, "completion_tokens": 1900, "tool_usage": {"grep": 2, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-213671__cf-2", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al b/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\nindex c70c6c1e..a24dbc39 100644\n--- a/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\n+++ b/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\n@@ -626,11 +626,10 @@ page 5123 \"Opportunity List\"\n IndexFieldRef: FieldRef;\n TextFieldRef: FieldRef;\n begin\n- Filter := DelChr(Filter, '<>', '''');\n if Filter <> '' then begin\n RecRef.GetTable(RecVar);\n IndexFieldRef := RecRef.Field(IndexFieldNo);\n- IndexFieldRef.SetRange(Filter);\n+ IndexFieldRef.SetFilter(Filter);\n if RecRef.FindFirst() then begin\n TextFieldRef := RecRef.Field(TextFieldNo);\n CaptionText := CopyStr(Format(IndexFieldRef.Value) + ' ' + Format(TextFieldRef.Value), 1, MaxStrLen(CaptionText));\n", "error_message": null, "metrics": {"execution_time": 57.0, "llm_duration": null, "turn_count": 5, "prompt_tokens": 86600, "completion_tokens": 2200, "tool_usage": {"grep": 2, "edit": 1, "view": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-213683__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al\nindex 9735e4b2..246b6a64 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al\n@@ -172,8 +172,6 @@ codeunit 99000795 \"Mfg. Item Integration\"\n RequisitionLine: Record \"Requisition Line\";\n TransferLine: Record \"Transfer Line\";\n ItemJournalLine: Record \"Item Journal Line\";\n- ValueEntry: Record \"Value Entry\";\n- ItemLedgerEntry: Record \"Item Ledger Entry\";\n ProdOrderLine: Record \"Prod. Order Line\";\n begin\n if xRec.\"Item No.\" <> Rec.\"Item No.\" then begin\n@@ -229,16 +227,6 @@ codeunit 99000795 \"Mfg. Item Integration\"\n ItemJournalLine.SetRange(\"Variant Code\", xRec.Code);\n if not ItemJournalLine.IsEmpty() then\n Error(CannotRenameItemErr, Rec.FieldCaption(\"Item No.\"), Rec.TableCaption(), ItemJournalLine.TableCaption());\n-\n- ItemLedgerEntry.SetRange(\"Item No.\", xRec.\"Item No.\");\n- ItemLedgerEntry.SetRange(\"Variant Code\", xRec.Code);\n- if not ItemLedgerEntry.IsEmpty() then\n- Error(CannotRenameItemErr, Rec.FieldCaption(\"Item No.\"), Rec.TableCaption(), ItemLedgerEntry.TableCaption());\n-\n- ValueEntry.SetRange(\"Item No.\", xRec.\"Item No.\");\n- ValueEntry.SetRange(\"Variant Code\", xRec.Code);\n- if not ValueEntry.IsEmpty() then\n- Error(CannotRenameItemErr, Rec.FieldCaption(\"Item No.\"), Rec.TableCaption(), ValueEntry.TableCaption());\n end;\n end;\n \n", "error_message": null, "metrics": {"execution_time": 125.0, "llm_duration": null, "turn_count": 13, "prompt_tokens": 388200, "completion_tokens": 4300, "tool_usage": {"grep": 8, "view": 6, "report_intent": 1, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-214557__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al\nindex e3a6cf2f..f471236a 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al\n@@ -1004,6 +1004,14 @@ codeunit 99000854 \"Inventory Profile Offsetting\"\n \n SupplyInvtProfile.SetTrackingFilter(DemandInvtProfile);\n SupplyExists := SupplyInvtProfile.FindFirst();\n+ if not SupplyExists then\n+ if (DemandInvtProfile.Binding = DemandInvtProfile.Binding::\"Order-to-Order\") and\n+ (DemandInvtProfile.\"Source Type\" = 5407) and // Database::\"Prod. Order Component\"\n+ (DemandInvtProfile.\"Primary Order No.\" <> '')\n+ then begin\n+ SupplyInvtProfile.SetRange(\"Primary Order Line\");\n+ SupplyExists := SupplyInvtProfile.FindFirst();\n+ end;\n SupplyIleInvtProfile.Copy(SupplyInvtProfile);\n OnBeforeMatchAttributesDemandApplicationLoop(SupplyInvtProfile, DemandInvtProfile, SupplyExists);\n while (DemandInvtProfile.\"Untracked Quantity\" > 0) and\n", "error_message": null, "metrics": {"execution_time": 751.0, "llm_duration": null, "turn_count": 96, "prompt_tokens": 4800000, "completion_tokens": 49000, "tool_usage": {"view": 23, "grep": 15, "glob": 9, "task": 1, "powershell": 1, "read_agent": 1, "report_intent": 2, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-214825__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\nindex 604bb915..789de8f8 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\n@@ -74,6 +74,7 @@ codeunit 1018 \"Purchase Doc. From Job\"\n RecRef: RecordRef;\n begin\n JobPlanningLine.SetLoadFields(\"Job Contract Entry No.\");\n+ JobPlanningLine.SetCurrentKey(\"Job Contract Entry No.\");\n JobPlanningLine.SetRange(\"Job No.\", JobTask.\"Job No.\");\n JobPlanningLine.SetRange(\"Job Task No.\", JobTask.\"Job Task No.\");\n if JobPlanningLine.IsEmpty() then\n", "error_message": null, "metrics": {"execution_time": 75.0, "llm_duration": null, "turn_count": 8, "prompt_tokens": 169600, "completion_tokens": 2100, "tool_usage": {"grep": 6, "view": 2, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-214825__cf-2", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\nindex 604bb915..2da48971 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\n@@ -78,6 +78,7 @@ codeunit 1018 \"Purchase Doc. From Job\"\n JobPlanningLine.SetRange(\"Job Task No.\", JobTask.\"Job Task No.\");\n if JobPlanningLine.IsEmpty() then\n exit;\n+ JobPlanningLine.SetCurrentKey(\"Job Contract Entry No.\");\n JobPlanningLine.FindSet();\n RecRef.GetTable(JobPlanningLine);\n ContractEntryNoFilter := SelectionFilterMgt.GetSelectionFilter(RecRef, JobPlanningLine.FieldNo(\"Job Contract Entry No.\"));\n", "error_message": null, "metrics": {"execution_time": 58.0, "llm_duration": null, "turn_count": 6, "prompt_tokens": 105900, "completion_tokens": 1800, "tool_usage": {"grep": 3, "view": 2, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-214926__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Customer/CheckCreditLimit.Page.al b/App/Layers/W1/BaseApp/Sales/Customer/CheckCreditLimit.Page.al\nindex 1c970adc..cb5a9b28 100644\n--- a/App/Layers/W1/BaseApp/Sales/Customer/CheckCreditLimit.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Customer/CheckCreditLimit.Page.al\n@@ -493,8 +493,7 @@ page 343 \"Check Credit Limit\"\n \n local procedure CalcTotalOutstandingAmt() Result: Decimal\n var\n- SalesLine: Record \"Sales Line\";\n- SalesOutstandingAmountFromShipment: Decimal;\n+ ShippedOutstandingInvoicesLCY: Decimal;\n IsHandled: Boolean;\n begin\n IsHandled := false;\n@@ -503,9 +502,9 @@ page 343 \"Check Credit Limit\"\n exit(Result);\n \n Rec.CalcFields(\"Outstanding Invoices (LCY)\", \"Outstanding Orders (LCY)\");\n- SalesOutstandingAmountFromShipment := SalesLine.OutstandingInvoiceAmountFromShipment(Rec.\"No.\");\n+ ShippedOutstandingInvoicesLCY := Rec.GetShippedOutstandingInvoicesLCY();\n \n- Result := Rec.\"Outstanding Orders (LCY)\" + Rec.\"Outstanding Invoices (LCY)\" - SalesOutstandingAmountFromShipment;\n+ Result := Rec.\"Outstanding Orders (LCY)\" + Rec.\"Outstanding Invoices (LCY)\" - ShippedOutstandingInvoicesLCY;\n \n OnAfterCalcTotalOutstandingAmt(Rec, Result);\n end;\ndiff --git a/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al b/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\nindex ebeb6ca1..a57962fa 100644\n--- a/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\n@@ -2345,9 +2345,7 @@ table 18 Customer\n \n local procedure GetTotalAmountLCYCommon(): Decimal\n var\n- [SecurityFiltering(SecurityFilter::Filtered)]\n- SalesLine: Record \"Sales Line\";\n- SalesOutstandingAmountFromShipment: Decimal;\n+ ShippedOutstandingInvoicesLCY: Decimal;\n InvoicedPrepmtAmountLCY: Decimal;\n RetRcdNotInvAmountLCY: Decimal;\n AdditionalAmountLCY: Decimal;\n@@ -2359,18 +2357,31 @@ table 18 Customer\n if IsHandled then\n exit(AdditionalAmountLCY);\n \n- SalesOutstandingAmountFromShipment := SalesLine.OutstandingInvoiceAmountFromShipment(\"No.\");\n+ ShippedOutstandingInvoicesLCY := GetShippedOutstandingInvoicesLCY();\n InvoicedPrepmtAmountLCY := GetInvoicedPrepmtAmountLCY();\n RetRcdNotInvAmountLCY := GetReturnRcdNotInvAmountLCY();\n \n TotalAmountLCY :=\n- \"Balance (LCY)\" + \"Outstanding Orders (LCY)\" + \"Shipped Not Invoiced (LCY)\" + \"Outstanding Invoices (LCY)\" +\n- SalesOutstandingAmountFromShipment - InvoicedPrepmtAmountLCY - RetRcdNotInvAmountLCY + AdditionalAmountLCY;\n+ \"Balance (LCY)\" + \"Outstanding Orders (LCY)\" + \"Shipped Not Invoiced (LCY)\" + \"Outstanding Invoices (LCY)\" -\n+ ShippedOutstandingInvoicesLCY - InvoicedPrepmtAmountLCY - RetRcdNotInvAmountLCY + AdditionalAmountLCY;\n \n OnAfterGetTotalAmountLCYCommon(Rec, TotalAmountLCY);\n exit(TotalAmountLCY);\n end;\n \n+ procedure GetShippedOutstandingInvoicesLCY(): Decimal\n+ var\n+ [SecurityFiltering(SecurityFilter::Filtered)]\n+ SalesLine: Record \"Sales Line\";\n+ begin\n+ SalesLine.SetCurrentKey(\"Document Type\", \"Sell-to Customer No.\", \"Shipment No.\");\n+ SalesLine.SetRange(\"Document Type\", SalesLine.\"Document Type\"::Invoice);\n+ SalesLine.SetRange(\"Sell-to Customer No.\", \"No.\");\n+ SalesLine.SetFilter(\"Shipment No.\", '<>%1', '');\n+ SalesLine.CalcSums(\"Outstanding Amount (LCY)\");\n+ exit(SalesLine.\"Outstanding Amount (LCY)\");\n+ end;\n+\n procedure GetSalesLCY() SalesLCY: Decimal\n var\n CustomerSalesYTD: Record Customer;\ndiff --git a/App/Layers/W1/BaseApp/Service/Sales/Customer/ServCheckCreditLimit.Page.al b/App/Layers/W1/BaseApp/Service/Sales/Customer/ServCheckCreditLimit.Page.al\nindex 2eb5a265..cfa1251c 100644\n--- a/App/Layers/W1/BaseApp/Service/Sales/Customer/ServCheckCreditLimit.Page.al\n+++ b/App/Layers/W1/BaseApp/Service/Sales/Customer/ServCheckCreditLimit.Page.al\n@@ -398,9 +398,8 @@ page 6489 \"Serv. Check Credit Limit\"\n \n local procedure CalcTotalOutstandingAmt() Result: Decimal\n var\n- SalesLine: Record \"Sales Line\";\n- SalesOutstandingAmountFromShipment: Decimal;\n ServOutstandingAmountFromShipment: Decimal;\n+ ShippedOutstandingInvoicesLCY: Decimal;\n IsHandled: Boolean;\n begin\n IsHandled := false;\n@@ -410,12 +409,12 @@ page 6489 \"Serv. Check Credit Limit\"\n \n Rec.CalcFields(\n \"Outstanding Invoices (LCY)\", \"Outstanding Orders (LCY)\", \"Outstanding Serv.Invoices(LCY)\", \"Outstanding Serv. Orders (LCY)\");\n- SalesOutstandingAmountFromShipment := SalesLine.OutstandingInvoiceAmountFromShipment(Rec.\"No.\");\n+ ShippedOutstandingInvoicesLCY := Rec.GetShippedOutstandingInvoicesLCY();\n ServOutstandingAmountFromShipment := ServiceLine.OutstandingInvoiceAmountFromShipment(Rec.\"No.\");\n \n exit(\n Rec.\"Outstanding Orders (LCY)\" + Rec.\"Outstanding Invoices (LCY)\" + Rec.\"Outstanding Serv. Orders (LCY)\" +\n- Rec.\"Outstanding Serv.Invoices(LCY)\" - SalesOutstandingAmountFromShipment - ServOutstandingAmountFromShipment);\n+ Rec.\"Outstanding Serv.Invoices(LCY)\" - ShippedOutstandingInvoicesLCY - ServOutstandingAmountFromShipment);\n end;\n \n procedure SetHideMessageVisible(HideMsgVisible: Boolean)\n", "error_message": null, "metrics": {"execution_time": 154.0, "llm_duration": null, "turn_count": 13, "prompt_tokens": 309200, "completion_tokens": 6800, "tool_usage": {"grep": 7, "view": 9, "report_intent": 2, "edit": 4}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-215972__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\nindex 9ab054c5..2a21e635 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\n@@ -1592,9 +1592,12 @@ table 5741 \"Transfer Line\"\n exit;\n \n TestField(\"Item No.\");\n+ GetItem();\n Clear(Reservation);\n OptionNumber := StrMenu(Text011);\n if OptionNumber > 0 then begin\n+ if (OptionNumber = 1) and (\"Qty. to Ship\" > 0) then\n+ Item.TestField(Reserve);\n Reservation.SetReservSource(Rec, Enum::\"Transfer Direction\".FromInteger(OptionNumber - 1));\n Reservation.RunModal();\n end;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137140'\nCodeunit 137140 SCM Inventory Documents\n Testfunction ReservationShouldNotPossibleOnTransferOrderIfItemReserveSetAsNever Failure (6.07 seconds)\n Error:\n Assert.ExpectedErrorCode failed. Expected: TestField. Actual: MissingUIHandler. Actual error message: Unhandled UI: StrMenu Outbound,Inbound.\n Call Stack:\n Assert(CodeUnit 130000).ExpectedErrorCode line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"SCM Inventory Documents\"(CodeUnit 137140).ReservationShouldNotPossibleOnTransferOrderIfItemReserveSetAsNever line 33 - Tests-SCM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0", "metrics": {"execution_time": 149.0, "llm_duration": null, "turn_count": 16, "prompt_tokens": 506700, "completion_tokens": 5700, "tool_usage": {"grep": 20, "view": 4, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-215972__cf-2", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\nindex 9ab054c5..736b9f85 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\n@@ -1255,6 +1255,15 @@ table 5741 \"Transfer Line\"\n Item.Get(\"Item No.\");\n end;\n \n+ /// \n+ /// Validates that the item's Reserve field is not set to Never.\n+ /// \n+ internal procedure TestItemReserve()\n+ begin\n+ GetItem();\n+ Item.TestField(Reserve);\n+ end;\n+\n local procedure GetItemNo(): Code[20]\n var\n ReturnValue: Text[50];\n@@ -1595,6 +1604,8 @@ table 5741 \"Transfer Line\"\n Clear(Reservation);\n OptionNumber := StrMenu(Text011);\n if OptionNumber > 0 then begin\n+ if OptionNumber = 1 then\n+ TestItemReserve();\n Reservation.SetReservSource(Rec, Enum::\"Transfer Direction\".FromInteger(OptionNumber - 1));\n Reservation.RunModal();\n end;\n@@ -2018,6 +2029,7 @@ table 5741 \"Transfer Line\"\n TransLine.SetAutoCalcFields(\"Reserved Quantity Outbnd.\", \"Reserved Qty. Outbnd. (Base)\");\n if TransLine.FindSet() then\n repeat\n+ TransLine.TestItemReserve();\n SourceRecRef.GetTable(TransLine);\n ReservMgt.SetReservSource(SourceRecRef);\n TransLine.TestField(\"Shipment Date\");\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137140'\nCodeunit 137140 SCM Inventory Documents\n Testfunction ReservationShouldNotPossibleOnTransferOrderIfItemReserveSetAsNever Failure (6.257 seconds)\n Error:\n Assert.ExpectedErrorCode failed. Expected: TestField. Actual: MissingUIHandler. Actual error message: Unhandled UI: StrMenu Outbound,Inbound.\n Call Stack:\n Assert(CodeUnit 130000).ExpectedErrorCode line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"SCM Inventory Documents\"(CodeUnit 137140).ReservationShouldNotPossibleOnTransferOrderIfItemReserveSetAsNever line 33 - Tests-SCM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0", "metrics": {"execution_time": 194.0, "llm_duration": null, "turn_count": 28, "prompt_tokens": 929100, "completion_tokens": 7600, "tool_usage": {"grep": 19, "view": 15, "report_intent": 1, "glob": 1, "edit": 3}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-216572__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al\nindex 130b3e0f..d3d709d3 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al\n@@ -669,6 +669,11 @@ table 221 \"Gen. Jnl. Allocation\"\n begin\n Rec.Validate(\"Account No.\", AllocAccountDistribution.\"Destination Account Number\");\n Rec.Validate(\"Allocation %\", AllocAccountDistribution.Percent);\n+ if AllocAccountDistribution.\"Dimension Set ID\" <> 0 then begin\n+ Rec.\"Dimension Set ID\" := AllocAccountDistribution.\"Dimension Set ID\";\n+ DimMgt.UpdateGlobalDimFromDimSetID(Rec.\"Dimension Set ID\", Rec.\"Shortcut Dimension 1 Code\", Rec.\"Shortcut Dimension 2 Code\");\n+ end;\n+ Rec.Modify(true);\n end;\n \n local procedure CheckGLAccount(var GLAccount: Record \"G/L Account\")\n", "error_message": null, "metrics": {"execution_time": 81.0, "llm_duration": null, "turn_count": 10, "prompt_tokens": 232100, "completion_tokens": 2600, "tool_usage": {"grep": 8, "view": 4, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-216918__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\nindex d541dd08..0146a2d9 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\n@@ -451,6 +451,8 @@ codeunit 1004 \"Job Transfer Line\"\n Job: Record Job;\n JobTask: Record \"Job Task\";\n NonDeductibleVAT: Codeunit \"Non-Deductible VAT\";\n+ NonDeductibleVATAmountJobCurrency: Decimal;\n+ NonDeductibleVATAmtPerUnitJobCurrency: Decimal;\n begin\n OnBeforeFromGenJnlLineToJnlLine(JobJnlLine, GenJnlLine);\n \n@@ -498,18 +500,22 @@ codeunit 1004 \"Job Transfer Line\"\n JobJnlLine.\"Total Cost (LCY)\" := GenJnlLine.\"Job Total Cost (LCY)\";\n JobJnlLine.\"Total Cost\" := GenJnlLine.\"Job Total Cost\";\n \n- if NonDeductibleVAT.UseNonDeductibleVATAmountForJobCost() then\n+ if NonDeductibleVAT.UseNonDeductibleVATAmountForJobCost() then begin\n+ GetCurrencyRounding(JobJnlLine.\"Currency Code\");\n+ NonDeductibleVATAmountJobCurrency := GetNonDeductibleVATAmountInJobCurrency(GenJnlLine, JobJnlLine);\n+ NonDeductibleVATAmtPerUnitJobCurrency := Round(NonDeductibleVATAmountJobCurrency / JobJnlLine.Quantity, Currency.\"Unit-Amount Rounding Precision\");\n if JobJnlLine.\"Unit Cost\" > 0 then begin\n JobJnlLine.\"Unit Cost (LCY)\" += Abs(Round(GenJnlLine.\"Non-Deductible VAT Amount LCY\" / JobJnlLine.Quantity));\n- JobJnlLine.\"Unit Cost\" += Abs(Round(GenJnlLine.\"Non-Deductible VAT Amount\" / JobJnlLine.Quantity));\n+ JobJnlLine.\"Unit Cost\" += Abs(NonDeductibleVATAmtPerUnitJobCurrency);\n JobJnlLine.\"Total Cost (LCY)\" += Abs(GenJnlLine.\"Non-Deductible VAT Amount LCY\");\n- JobJnlLine.\"Total Cost\" += Abs(GenJnlLine.\"Non-Deductible VAT Amount\");\n+ JobJnlLine.\"Total Cost\" += Abs(NonDeductibleVATAmountJobCurrency);\n end else begin\n JobJnlLine.\"Unit Cost (LCY)\" += Round(GenJnlLine.\"Non-Deductible VAT Amount LCY\" / JobJnlLine.Quantity);\n- JobJnlLine.\"Unit Cost\" += Round(GenJnlLine.\"Non-Deductible VAT Amount\" / JobJnlLine.Quantity);\n+ JobJnlLine.\"Unit Cost\" += NonDeductibleVATAmtPerUnitJobCurrency;\n JobJnlLine.\"Total Cost (LCY)\" += GenJnlLine.\"Non-Deductible VAT Amount LCY\";\n- JobJnlLine.\"Total Cost\" += GenJnlLine.\"Non-Deductible VAT Amount\";\n+ JobJnlLine.\"Total Cost\" += NonDeductibleVATAmountJobCurrency;\n end;\n+ end;\n \n JobJnlLine.\"Unit Price (LCY)\" := GenJnlLine.\"Job Unit Price (LCY)\";\n JobJnlLine.\"Unit Price\" := GenJnlLine.\"Job Unit Price\";\n@@ -886,6 +892,20 @@ codeunit 1004 \"Job Transfer Line\"\n end;\n end;\n \n+ local procedure GetNonDeductibleVATAmountInJobCurrency(GenJnlLine: Record \"Gen. Journal Line\"; JobJnlLine: Record \"Job Journal Line\"): Decimal\n+ begin\n+ if JobJnlLine.\"Currency Code\" = '' then\n+ exit(GenJnlLine.\"Non-Deductible VAT Amount LCY\");\n+\n+ exit(Round(\n+ CurrencyExchRate.ExchangeAmtLCYToFCY(\n+ JobJnlLine.\"Posting Date\",\n+ JobJnlLine.\"Currency Code\",\n+ GenJnlLine.\"Non-Deductible VAT Amount LCY\",\n+ JobJnlLine.\"Currency Factor\"),\n+ Currency.\"Amount Rounding Precision\"));\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnAfterIsCreatedFromJob(var SalesLine: Record \"Sales Line\"; var Result: Boolean)\n begin\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134284'\nCodeunit 134284 Non Ded. VAT Misc.\n Testfunction JobJnlLineWithNonDeductNormalVATInFCYFromGenJnlLine Failure (3.986 seconds)\n Error:\n Assert.AreEqual failed. Expected:<5.7> (Decimal). Actual:<5.23> (Decimal). Unit Cost (LCY) should not include Non-Deductible VAT when Job has no currency.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"Non Ded. VAT Misc.\"(CodeUnit 134284).JobJnlLineWithNonDeductNormalVATInFCYFromGenJnlLine line 32 - Tests-VAT by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0", "metrics": {"execution_time": 154.0, "llm_duration": null, "turn_count": 18, "prompt_tokens": 520500, "completion_tokens": 7300, "tool_usage": {"grep": 9, "view": 10, "report_intent": 1, "edit": 3}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-216918__cf-2", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\nindex d541dd08..ec4250cb 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\n@@ -451,6 +451,8 @@ codeunit 1004 \"Job Transfer Line\"\n Job: Record Job;\n JobTask: Record \"Job Task\";\n NonDeductibleVAT: Codeunit \"Non-Deductible VAT\";\n+ NonDeductibleVATAmountLCY: Decimal;\n+ NonDeductibleVATAmountJob: Decimal;\n begin\n OnBeforeFromGenJnlLineToJnlLine(JobJnlLine, GenJnlLine);\n \n@@ -499,16 +501,20 @@ codeunit 1004 \"Job Transfer Line\"\n JobJnlLine.\"Total Cost\" := GenJnlLine.\"Job Total Cost\";\n \n if NonDeductibleVAT.UseNonDeductibleVATAmountForJobCost() then\n- if JobJnlLine.\"Unit Cost\" > 0 then begin\n- JobJnlLine.\"Unit Cost (LCY)\" += Abs(Round(GenJnlLine.\"Non-Deductible VAT Amount LCY\" / JobJnlLine.Quantity));\n- JobJnlLine.\"Unit Cost\" += Abs(Round(GenJnlLine.\"Non-Deductible VAT Amount\" / JobJnlLine.Quantity));\n- JobJnlLine.\"Total Cost (LCY)\" += Abs(GenJnlLine.\"Non-Deductible VAT Amount LCY\");\n- JobJnlLine.\"Total Cost\" += Abs(GenJnlLine.\"Non-Deductible VAT Amount\");\n- end else begin\n- JobJnlLine.\"Unit Cost (LCY)\" += Round(GenJnlLine.\"Non-Deductible VAT Amount LCY\" / JobJnlLine.Quantity);\n- JobJnlLine.\"Unit Cost\" += Round(GenJnlLine.\"Non-Deductible VAT Amount\" / JobJnlLine.Quantity);\n- JobJnlLine.\"Total Cost (LCY)\" += GenJnlLine.\"Non-Deductible VAT Amount LCY\";\n- JobJnlLine.\"Total Cost\" += GenJnlLine.\"Non-Deductible VAT Amount\";\n+ if JobJnlLine.Quantity <> 0 then begin\n+ NonDeductibleVATAmountLCY := GenJnlLine.\"Non-Deductible VAT Amount LCY\";\n+ NonDeductibleVATAmountJob := GetNonDeductibleVATAmtForJob(NonDeductibleVATAmountLCY, JobJnlLine.\"Currency Code\", JobJnlLine.\"Currency Factor\", JobJnlLine.\"Posting Date\");\n+ if JobJnlLine.\"Unit Cost\" > 0 then begin\n+ JobJnlLine.\"Unit Cost (LCY)\" += Abs(Round(NonDeductibleVATAmountLCY / JobJnlLine.Quantity));\n+ JobJnlLine.\"Unit Cost\" += Abs(Round(NonDeductibleVATAmountJob / JobJnlLine.Quantity));\n+ JobJnlLine.\"Total Cost (LCY)\" += Abs(NonDeductibleVATAmountLCY);\n+ JobJnlLine.\"Total Cost\" += Abs(NonDeductibleVATAmountJob);\n+ end else begin\n+ JobJnlLine.\"Unit Cost (LCY)\" += Round(NonDeductibleVATAmountLCY / JobJnlLine.Quantity);\n+ JobJnlLine.\"Unit Cost\" += Round(NonDeductibleVATAmountJob / JobJnlLine.Quantity);\n+ JobJnlLine.\"Total Cost (LCY)\" += NonDeductibleVATAmountLCY;\n+ JobJnlLine.\"Total Cost\" += NonDeductibleVATAmountJob;\n+ end;\n end;\n \n JobJnlLine.\"Unit Price (LCY)\" := GenJnlLine.\"Job Unit Price (LCY)\";\n@@ -886,6 +892,13 @@ codeunit 1004 \"Job Transfer Line\"\n end;\n end;\n \n+ local procedure GetNonDeductibleVATAmtForJob(NonDeductibleVATAmountLCY: Decimal; JobCurrencyCode: Code[10]; JobCurrencyFactor: Decimal; PostingDate: Date): Decimal\n+ begin\n+ if JobCurrencyCode = '' then\n+ exit(NonDeductibleVATAmountLCY);\n+ exit(CurrencyExchRate.ExchangeAmtLCYToFCY(PostingDate, JobCurrencyCode, NonDeductibleVATAmountLCY, JobCurrencyFactor));\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnAfterIsCreatedFromJob(var SalesLine: Record \"Sales Line\"; var Result: Boolean)\n begin\n", "error_message": null, "metrics": {"execution_time": 119.0, "llm_duration": null, "turn_count": 12, "prompt_tokens": 310900, "completion_tokens": 5300, "tool_usage": {"grep": 4, "view": 8, "report_intent": 1, "edit": 3}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-217104__cf-1", "project": "AutomaticAccountCodes", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al b/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\nindex 0e4bcfe3..6823631a 100644\n--- a/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\n+++ b/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\n@@ -71,6 +71,7 @@ codeunit 4850 \"AA Codes Posting Helper\"\n GenJnlCheckLine: Codeunit \"Gen. Jnl.-Check Line\";\n NoOfAutoAccounts: Decimal;\n TotalAmount: Decimal;\n+ TotalAmountLCY: Decimal;\n TotalAltAmount: Decimal;\n SourceCurrBaseAmount: Decimal;\n AccLine: Integer;\n@@ -119,6 +120,9 @@ codeunit 4850 \"AA Codes Posting Helper\"\n TotalAltAmount := TotalAltAmount + GenJnlLine2.\"Source Currency Amount\";\n if (AccLine = NoOfAutoAccounts) and (TotalAmount <> 0) then\n GenJnlLine2.Validate(Amount, GenJnlLine2.Amount - TotalAmount);\n+ TotalAmountLCY := TotalAmountLCY + GenJnlLine2.\"Amount (LCY)\";\n+ if (AccLine = NoOfAutoAccounts) and (TotalAmountLCY <> 0) then\n+ GenJnlLine2.\"Amount (LCY)\" := GenJnlLine2.\"Amount (LCY)\" - TotalAmountLCY;\n if (AccLine = NoOfAutoAccounts) and (TotalAltAmount <> 0) then\n GenJnlLine2.Validate(\"Source Currency Amount\", GenJnlLine2.\"Source Currency Amount\" - TotalAltAmount);\n GenJnlCheckLine.RunCheck(GenJnlLine2);\n", "error_message": null, "metrics": {"execution_time": 125.0, "llm_duration": null, "turn_count": 9, "prompt_tokens": 224400, "completion_tokens": 6000, "tool_usage": {"grep": 2, "view": 4, "report_intent": 1, "edit": 3}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-217104__cf-2", "project": "AutomaticAccountCodes", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al b/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\nindex 0e4bcfe3..44dbeea5 100644\n--- a/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\n+++ b/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\n@@ -71,6 +71,7 @@ codeunit 4850 \"AA Codes Posting Helper\"\n GenJnlCheckLine: Codeunit \"Gen. Jnl.-Check Line\";\n NoOfAutoAccounts: Decimal;\n TotalAmount: Decimal;\n+ TotalAmountLCY: Decimal;\n TotalAltAmount: Decimal;\n SourceCurrBaseAmount: Decimal;\n AccLine: Integer;\n@@ -116,11 +117,14 @@ codeunit 4850 \"AA Codes Posting Helper\"\n CopyDimensionFromAutoAccLine(GenJnlLine2, AutomaticAccountLine);\n AccLine := AccLine + 1;\n TotalAmount := TotalAmount + GenJnlLine2.Amount;\n+ TotalAmountLCY := TotalAmountLCY + GenJnlLine2.\"Amount (LCY)\";\n TotalAltAmount := TotalAltAmount + GenJnlLine2.\"Source Currency Amount\";\n if (AccLine = NoOfAutoAccounts) and (TotalAmount <> 0) then\n GenJnlLine2.Validate(Amount, GenJnlLine2.Amount - TotalAmount);\n if (AccLine = NoOfAutoAccounts) and (TotalAltAmount <> 0) then\n GenJnlLine2.Validate(\"Source Currency Amount\", GenJnlLine2.\"Source Currency Amount\" - TotalAltAmount);\n+ if (AccLine = NoOfAutoAccounts) and (TotalAmountLCY <> 0) then\n+ GenJnlLine2.\"Amount (LCY)\" := GenJnlLine2.\"Amount (LCY)\" - TotalAmountLCY;\n GenJnlCheckLine.RunCheck(GenJnlLine2);\n \n sender.InitGLEntry(GenJnlLine2, GLEntry,\n", "error_message": null, "metrics": {"execution_time": 85.0, "llm_duration": null, "turn_count": 6, "prompt_tokens": 141700, "completion_tokens": 3700, "tool_usage": {"grep": 1, "view": 2, "report_intent": 1, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-217797__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Availability/CalcItemAvailability.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Availability/CalcItemAvailability.Codeunit.al\nindex 21992d4e..e73c7605 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Availability/CalcItemAvailability.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Availability/CalcItemAvailability.Codeunit.al\n@@ -906,6 +906,10 @@ codeunit 5530 \"Calc. Item Availability\"\n RecRef.SetTable(RequisitionLine);\n ReqWkshTemplate.Get(RequisitionLine.\"Worksheet Template Name\");\n ReqWkshTemplate.TestField(\"Page ID\");\n+ RequisitionLine.FilterGroup(2);\n+ RequisitionLine.SetRange(\"Worksheet Template Name\", RequisitionLine.\"Worksheet Template Name\");\n+ RequisitionLine.FilterGroup(0);\n+ RequisitionLine.\"Worksheet Template Name\" := '';\n PAGE.RunModal(ReqWkshTemplate.\"Page ID\", RequisitionLine);\n end;\n Database::\"Planning Component\":\n", "error_message": null, "metrics": {"execution_time": 257.0, "llm_duration": null, "turn_count": 24, "prompt_tokens": 777500, "completion_tokens": 10500, "tool_usage": {"grep": 18, "glob": 5, "view": 8, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-217974__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\nindex 780de254..452e8278 100644\n--- a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n@@ -747,6 +747,7 @@ codeunit 6620 \"Copy Document Mgt.\"\n begin\n FromSalesHeader.CalcFields(\"Work Description\");\n ToSalesHeader.TransferFields(FromSalesHeader, false);\n+ UpdateShipToAddress(ToSalesHeader);\n UpdateSalesHeaderWhenCopyFromSalesHeader(ToSalesHeader, OldSalesHeader, FromDocType);\n SetReceivedFromCountryCode(FromDocType, ToSalesHeader);\n OnAfterCopySalesHeader(ToSalesHeader, OldSalesHeader, FromSalesHeader, FromDocType);\n", "error_message": null, "metrics": {"execution_time": 77.0, "llm_duration": null, "turn_count": 7, "prompt_tokens": 154800, "completion_tokens": 2700, "tool_usage": {"grep": 7, "report_intent": 1, "view": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-217974__cf-2", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\nindex 780de254..833fb007 100644\n--- a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n@@ -748,6 +748,7 @@ codeunit 6620 \"Copy Document Mgt.\"\n FromSalesHeader.CalcFields(\"Work Description\");\n ToSalesHeader.TransferFields(FromSalesHeader, false);\n UpdateSalesHeaderWhenCopyFromSalesHeader(ToSalesHeader, OldSalesHeader, FromDocType);\n+ UpdateShipToAddress(ToSalesHeader);\n SetReceivedFromCountryCode(FromDocType, ToSalesHeader);\n OnAfterCopySalesHeader(ToSalesHeader, OldSalesHeader, FromSalesHeader, FromDocType);\n end;\n", "error_message": null, "metrics": {"execution_time": 91.0, "llm_duration": null, "turn_count": 8, "prompt_tokens": 218500, "completion_tokens": 2900, "tool_usage": {"grep": 6, "report_intent": 1, "view": 2, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-218062__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Availability/WarehouseAvailabilityMgt.Codeunit.al b/App/Layers/W1/BaseApp/Warehouse/Availability/WarehouseAvailabilityMgt.Codeunit.al\nindex 0b63877a..99de0cb1 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Availability/WarehouseAvailabilityMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Availability/WarehouseAvailabilityMgt.Codeunit.al\n@@ -840,9 +840,7 @@ codeunit 7314 \"Warehouse Availability Mgt.\"\n var\n Location: Record Location;\n Item: Record Item;\n- BinContent: Record \"Bin Content\";\n TempWhseActivLine: Record \"Warehouse Activity Line\" temporary;\n- TypeHelper: Codeunit \"Type Helper\";\n QtyReservedOnPickShip: Decimal;\n QtyReservedForCurrLine: Decimal;\n begin\n@@ -854,21 +852,7 @@ codeunit 7314 \"Warehouse Availability Mgt.\"\n \n if Item.Get(WhseWorksheetLine.\"Item No.\") then;\n \n- if Location.\"Bin Mandatory\" then begin\n- BinContent.SetRange(\"Location Code\", WhseWorksheetLine.\"Location Code\");\n- BinContent.SetRange(\"Item No.\", WhseWorksheetLine.\"Item No.\");\n- BinContent.SetRange(\"Variant Code\", WhseWorksheetLine.\"Variant Code\");\n- if BinContent.FindSet() then\n- repeat\n- AvailQtyBase += TypeHelper.Maximum(0, BinContent.CalcQtyAvailToPick(0));\n- until BinContent.Next() = 0;\n-\n- Item.SetRange(\"Location Filter\", WhseWorksheetLine.\"Location Code\");\n- Item.SetRange(\"Variant Filter\", WhseWorksheetLine.\"Variant Code\");\n- Item.CalcFields(\"Reserved Qty. on Inventory\");\n- AvailQtyBase := AvailQtyBase - Item.\"Reserved Qty. on Inventory\" - CalcQtyBasePickedNotShippedOnWarehouseShipmentLine(WhseWorksheetLine, Item);\n- end else\n- AvailQtyBase := CalcInvtAvailQty(Item, Location, WhseWorksheetLine.\"Variant Code\", TempWhseActivLine);\n+ AvailQtyBase := CalcInvtAvailQty(Item, Location, WhseWorksheetLine.\"Variant Code\", TempWhseActivLine);\n \n if Location.\"Require Pick\" then\n QtyReservedOnPickShip := CalcReservQtyOnPicksShips(WhseWorksheetLine.\"Location Code\", WhseWorksheetLine.\"Item No.\", WhseWorksheetLine.\"Variant Code\", TempWhseActivLine);\n", "error_message": null, "metrics": {"execution_time": 2033.0, "llm_duration": null, "turn_count": 105, "prompt_tokens": 7900000, "completion_tokens": 107200, "tool_usage": {"grep": 62, "view": 39, "powershell": 6, "report_intent": 2, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-218323__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al b/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al\nindex 88068be0..8c5096b2 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al\n@@ -17,6 +17,7 @@ using Microsoft.Finance.VAT.Setup;\n using Microsoft.Foundation.Address;\n using Microsoft.Foundation.AuditCodes;\n using Microsoft.Foundation.Enums;\n+using Microsoft.Foundation.NoSeries;\n using System.Utilities;\n \n report 20 \"Calc. and Post VAT Settlement\"\n@@ -307,6 +308,8 @@ report 20 \"Calc. and Post VAT Settlement\"\n Clear(GenJnlLine);\n GenJnlLine.\"System-Created Entry\" := true;\n GenJnlLine.\"Account Type\" := GenJnlLine.\"Account Type\"::\"G/L Account\";\n+ GenJnlLine.\"Journal Template Name\" := GenJnlLineReq.\"Journal Template Name\";\n+ GenJnlLine.\"Journal Batch Name\" := GenJnlLineReq.\"Journal Batch Name\";\n case VATType of\n VATEntry.Type::Purchase:\n GenJnlLine.Description :=\n@@ -516,6 +519,8 @@ report 20 \"Calc. and Post VAT Settlement\"\n GenJnlLine.Init();\n GenJnlLine.\"System-Created Entry\" := true;\n GenJnlLine.\"Account Type\" := GenJnlLine.\"Account Type\"::\"G/L Account\";\n+ GenJnlLine.\"Journal Template Name\" := GenJnlLineReq.\"Journal Template Name\";\n+ GenJnlLine.\"Journal Batch Name\" := GenJnlLineReq.\"Journal Batch Name\";\n \n GLAccSettle.TestField(\"Gen. Posting Type\", GenJnlLine.\"Gen. Posting Type\"::\" \");\n GLAccSettle.TestField(\"VAT Bus. Posting Group\", '');\n@@ -613,6 +618,48 @@ report 20 \"Calc. and Post VAT Settlement\"\n ApplicationArea = Basic, Suite;\n Caption = 'Document No.';\n ToolTip = 'Specifies a document number. This field must be filled in.';\n+ Visible = not IsJournalTemplNameVisible;\n+ }\n+ field(JnlTemplateName; GenJnlLineReq.\"Journal Template Name\")\n+ {\n+ ApplicationArea = Basic, Suite;\n+ Caption = 'Journal Template Name';\n+ TableRelation = \"Gen. Journal Template\";\n+ ToolTip = 'Specifies the name of the journal template that is used for the posting.';\n+ Visible = IsJournalTemplNameVisible;\n+\n+ trigger OnValidate()\n+ var\n+ GenJnlManagement: Codeunit GenJnlManagement;\n+ begin\n+ GenJnlManagement.SetJnlBatchName(GenJnlLineReq);\n+ if GenJnlLineReq.\"Journal Batch Name\" <> '' then\n+ GenJnlBatch.Get(GenJnlLineReq.\"Journal Template Name\", GenJnlLineReq.\"Journal Batch Name\");\n+ end;\n+ }\n+ field(JnlBatchName; GenJnlLineReq.\"Journal Batch Name\")\n+ {\n+ ApplicationArea = Basic, Suite;\n+ Caption = 'Journal Batch Name';\n+ ToolTip = 'Specifies the name of the journal batch that is used for the posting.';\n+ Visible = IsJournalTemplNameVisible;\n+\n+ trigger OnLookup(var Text: Text): Boolean\n+ var\n+ GenJnlManagement: Codeunit GenJnlManagement;\n+ begin\n+ GenJnlManagement.SetJnlBatchName(GenJnlLineReq);\n+ if GenJnlLineReq.\"Journal Batch Name\" <> '' then\n+ GenJnlBatch.Get(GenJnlLineReq.\"Journal Template Name\", GenJnlLineReq.\"Journal Batch Name\");\n+ end;\n+\n+ trigger OnValidate()\n+ begin\n+ if GenJnlLineReq.\"Journal Batch Name\" <> '' then begin\n+ GenJnlLineReq.TestField(\"Journal Template Name\");\n+ GenJnlBatch.Get(GenJnlLineReq.\"Journal Template Name\", GenJnlLineReq.\"Journal Batch Name\");\n+ end;\n+ end;\n }\n field(SettlementAcc; GLAccSettle.\"No.\")\n {\n@@ -676,6 +723,12 @@ report 20 \"Calc. and Post VAT Settlement\"\n actions\n {\n }\n+\n+ trigger OnOpenPage()\n+ begin\n+ GLSetup.Get();\n+ IsJournalTemplNameVisible := GLSetup.\"Journal Templ. Name Mandatory\";\n+ end;\n }\n \n labels\n@@ -692,6 +745,7 @@ report 20 \"Calc. and Post VAT Settlement\"\n trigger OnPreReport()\n var\n ConfirmManagement: Codeunit \"Confirm Management\";\n+ NoSeries: Codeunit \"No. Series\";\n begin\n OnBeforePreReport(\"VAT Posting Setup\", PostSettlement, GLAccSettle, DocNo);\n \n@@ -704,8 +758,21 @@ report 20 \"Calc. and Post VAT Settlement\"\n else\n VATDate := PostingDate;\n \n- if DocNo = '' then\n- Error(Text001);\n+ GLSetup.Get();\n+ if GLSetup.\"Journal Templ. Name Mandatory\" then begin\n+ if GenJnlLineReq.\"Journal Template Name\" = '' then\n+ Error(PleaseEnterErr, GenJnlLineReq.FieldCaption(\"Journal Template Name\"));\n+ if GenJnlLineReq.\"Journal Batch Name\" = '' then\n+ Error(PleaseEnterErr, GenJnlLineReq.FieldCaption(\"Journal Batch Name\"));\n+\n+ GenJnlBatch.Get(GenJnlLineReq.\"Journal Template Name\", GenJnlLineReq.\"Journal Batch Name\");\n+ GenJnlBatch.TestField(\"No. Series\");\n+ DocNo := NoSeries.GetNextNo(GenJnlBatch.\"No. Series\", PostingDate);\n+ end else begin\n+ if DocNo = '' then\n+ Error(Text001);\n+ end;\n+\n if GLAccSettle.\"No.\" = '' then\n Error(Text002);\n GLAccSettle.Find();\n@@ -732,6 +799,8 @@ report 20 \"Calc. and Post VAT Settlement\"\n SourceCodeSetup: Record \"Source Code Setup\";\n GenJnlLine: Record \"Gen. Journal Line\";\n GenJnlLine2: Record \"Gen. Journal Line\";\n+ GenJnlLineReq: Record \"Gen. Journal Line\";\n+ GenJnlBatch: Record \"Gen. Journal Batch\";\n GLEntry: Record \"G/L Entry\";\n VATEntry: Record \"VAT Entry\";\n TaxJurisdiction: Record \"Tax Jurisdiction\";\n@@ -755,6 +824,7 @@ report 20 \"Calc. and Post VAT Settlement\"\n HeaderText: Text[30];\n CountryRegionFilter: Text;\n IsVATDateEnabled: Boolean;\n+ IsJournalTemplNameVisible: Boolean;\n #pragma warning disable AA0074\n Text000: Label 'Enter the posting date.';\n Text001: Label 'Enter the document no.';\n@@ -783,6 +853,7 @@ report 20 \"Calc. and Post VAT Settlement\"\n TotalCaptionLbl: Label 'Total';\n SettlementCaptionLbl: Label 'Settlement';\n VATDateLbl: Label 'VAT Date';\n+ PleaseEnterErr: Label '%1 must be entered.', Comment = '%1 = field caption';\n \n \n protected var\n@@ -820,6 +891,13 @@ report 20 \"Calc. and Post VAT Settlement\"\n UseAmtsInAddCurr := NewUseAmtsInAddCurr;\n end;\n \n+ procedure SetGenJnlBatch(NewGenJnlBatch: Record \"Gen. Journal Batch\")\n+ begin\n+ GenJnlBatch := NewGenJnlBatch;\n+ GenJnlLineReq.\"Journal Template Name\" := GenJnlBatch.\"Journal Template Name\";\n+ GenJnlLineReq.\"Journal Batch Name\" := GenJnlBatch.Name;\n+ end;\n+\n local procedure CreateVATDateFilter()\n begin\n if EnteredEndDate = 0D then\n@@ -880,6 +958,8 @@ report 20 \"Calc. and Post VAT Settlement\"\n Clear(GenJnlLine2);\n GenJnlLine2.\"System-Created Entry\" := true;\n GenJnlLine2.\"Account Type\" := GenJnlLine2.\"Account Type\"::\"G/L Account\";\n+ GenJnlLine2.\"Journal Template Name\" := GenJnlLineReq.\"Journal Template Name\";\n+ GenJnlLine2.\"Journal Batch Name\" := GenJnlLineReq.\"Journal Batch Name\";\n GenJnlLine2.Description := GenJnlLine.Description;\n GenJnlLine2.\"Posting Date\" := PostingDate;\n GenJnlLine2.\"VAT Reporting Date\" := VATDate;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134992'\nCodeunit 134992 ERM Financial Reports IV\n Testfunction PostVATSettlementWhenJournalTemplateNameMandatoryIsEnabled Failure (10.016 seconds)\n Error:\n Journal Template Name must be entered.\n Call Stack:\n \"Calc. and Post VAT Settlement\"(Report 20).OnPreReport(Trigger) line 19 - Base Application by Microsoft version 27.0.0.0\n \"ERM Financial Reports IV\"(CodeUnit 134992).SaveCalcAndPostVATSettlementReport line 12 - Tests-ERM by Microsoft version 27.0.0.0\n \"ERM Financial Reports IV\"(CodeUnit 134992).PostVATSettlementWhenJournalTemplateNameMandatoryIsEnabled line 35 - Tests-ERM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0", "metrics": {"execution_time": 294.0, "llm_duration": null, "turn_count": 41, "prompt_tokens": 2100000, "completion_tokens": 12100, "tool_usage": {"grep": 14, "view": 25, "report_intent": 1, "edit": 11}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-218786__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al\nindex 0b806569..e597092b 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al\n@@ -3128,7 +3128,7 @@ table 5767 \"Warehouse Activity Line\"\n WhseActivityLine.SetLoadFields(\"Activity Type\", \"No.\", \"Line No.\", \"Item No.\", \"Variant Code\", \"Location Code\", \"Action Type\", Quantity, \"Lot No.\", \"Serial No.\", \"Source No.\", \"Source Line No.\", \"Source Document\");\n WhseActivityLine.SetRange(\"Activity Type\", FromWhseActivityLine.\"Activity Type\");\n WhseActivityLine.SetRange(\"No.\", FromWhseActivityLine.\"No.\");\n- WhseActivityLine.SetFilter(\"Line No.\", '<>%1', FromWhseActivityLine.\"Line No.\");\n+ WhseActivityLine.SetFilter(\"Line No.\", '>%1', FromWhseActivityLine.\"Line No.\");\n WhseActivityLine.SetRange(\"Item No.\", FromWhseActivityLine.\"Item No.\");\n WhseActivityLine.SetRange(\"Variant Code\", FromWhseActivityLine.\"Variant Code\");\n WhseActivityLine.SetRange(\"Location Code\", FromWhseActivityLine.\"Location Code\");\n", "error_message": null, "metrics": {"execution_time": 70.0, "llm_duration": null, "turn_count": 6, "prompt_tokens": 146100, "completion_tokens": 2100, "tool_usage": {"grep": 5, "view": 2, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-220036__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/IssuedReminder.Page.al b/App/Layers/W1/BaseApp/Sales/Reminder/IssuedReminder.Page.al\nindex c15cb6cf..29b989a2 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/IssuedReminder.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/IssuedReminder.Page.al\n@@ -87,7 +87,7 @@ page 438 \"Issued Reminder\"\n ExtendedDatatype = PhoneNo;\n ToolTip = 'Specifies the mobile telephone number of the customer contact person the reminder is for.';\n }\n- field(ContactEmail; PrimaryContact.\"E-Mail\")\n+ field(ContactEmail; ContactEmailAddress)\n {\n Caption = 'Email';\n ApplicationArea = Basic, Suite;\n@@ -435,6 +435,7 @@ page 438 \"Issued Reminder\"\n Customer: Record Customer;\n begin\n Customer.GetPrimaryContact(Rec.\"Customer No.\", PrimaryContact);\n+ UpdateContactEmailAddress();\n end;\n \n var\n@@ -443,6 +444,7 @@ page 438 \"Issued Reminder\"\n CurrExchRate: Record \"Currency Exchange Rate\";\n ChangeExchangeRate: Page \"Change Exchange Rate\";\n VATDateEnabled: Boolean;\n+ ContactEmailAddress: Text[80];\n \n [IntegrationEvent(false, false)]\n local procedure OnBeforePrintRecords(IssuedReminderHeaderRec: Record \"Issued Reminder Header\"; var IssuedReminderHeaderToPrint: Record \"Issued Reminder Header\"; var IsHandled: Boolean)\n@@ -453,5 +455,18 @@ page 438 \"Issued Reminder\"\n local procedure OnBeforeSendRecords(IssuedReminderHeaderRec: Record \"Issued Reminder Header\"; var IssuedReminderHeaderToSend: Record \"Issued Reminder Header\"; var IsHandled: Boolean)\n begin\n end;\n+\n+ local procedure UpdateContactEmailAddress()\n+ var\n+ Customer: Record Customer;\n+ begin\n+ if PrimaryContact.\"E-Mail\" <> '' then\n+ ContactEmailAddress := PrimaryContact.\"E-Mail\"\n+ else\n+ if Customer.Get(Rec.\"Customer No.\") then\n+ ContactEmailAddress := Customer.\"E-Mail\"\n+ else\n+ ContactEmailAddress := '';\n+ end;\n }\n \ndiff --git a/App/Layers/W1/BaseApp/Sales/Reminder/Reminder.Page.al b/App/Layers/W1/BaseApp/Sales/Reminder/Reminder.Page.al\nindex 8810e93d..cc6040a1 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/Reminder.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/Reminder.Page.al\n@@ -51,6 +51,7 @@ page 434 Reminder\n trigger OnValidate()\n begin\n ContactCustomer.GetPrimaryContact(Rec.\"Customer No.\", PrimaryContact);\n+ UpdateContactEmailAddress();\n end;\n }\n field(Name; Rec.Name)\n@@ -106,7 +107,7 @@ page 434 Reminder\n ExtendedDatatype = PhoneNo;\n ToolTip = 'Specifies the mobile telephone number of the customer contact person the reminder is for.';\n }\n- field(ContactEmail; PrimaryContact.\"E-Mail\")\n+ field(ContactEmail; ContactEmailAddress)\n {\n Caption = 'Email';\n ApplicationArea = Basic, Suite;\n@@ -544,6 +545,7 @@ page 434 Reminder\n trigger OnAfterGetRecord()\n begin\n ContactCustomer.GetPrimaryContact(Rec.\"Customer No.\", PrimaryContact);\n+ UpdateContactEmailAddress();\n end;\n \n var\n@@ -555,6 +557,7 @@ page 434 Reminder\n DocNoVisible: Boolean;\n IsOfficeAddin: Boolean;\n VATDateEnabled: Boolean;\n+ ContactEmailAddress: Text[80];\n \n local procedure SetDocNoVisible()\n var\n@@ -563,5 +566,18 @@ page 434 Reminder\n begin\n DocNoVisible := DocumentNoVisibility.SalesDocumentNoIsVisible(DocType::Reminder, Rec.\"No.\");\n end;\n+\n+ local procedure UpdateContactEmailAddress()\n+ var\n+ Customer: Record Customer;\n+ begin\n+ if PrimaryContact.\"E-Mail\" <> '' then\n+ ContactEmailAddress := PrimaryContact.\"E-Mail\"\n+ else\n+ if Customer.Get(Rec.\"Customer No.\") then\n+ ContactEmailAddress := Customer.\"E-Mail\"\n+ else\n+ ContactEmailAddress := '';\n+ end;\n }\n \n", "error_message": null, "metrics": {"execution_time": 156.0, "llm_duration": null, "turn_count": 20, "prompt_tokens": 477000, "completion_tokens": 6300, "tool_usage": {"grep": 13, "glob": 1, "view": 10, "report_intent": 1, "edit": 9}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-220314__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al b/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\nindex fb9253b7..dc52ff0a 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\n@@ -168,6 +168,8 @@ table 83 \"Item Journal Line\"\n \"Unit of Measure Code\" := Item.\"Purch. Unit of Measure\";\n \"Entry Type\"::Sale:\n \"Unit of Measure Code\" := Item.\"Sales Unit of Measure\";\n+ else\n+ \"Unit of Measure Code\" := Item.\"Base Unit of Measure\";\n end;\n OnValidateItemNoOnAfterValidateUnitofMeasureCode(Rec, xRec, Item, CurrFieldNo);\n \n", "error_message": null, "metrics": {"execution_time": 50.0, "llm_duration": null, "turn_count": 6, "prompt_tokens": 99000, "completion_tokens": 2100, "tool_usage": {"grep": 2, "glob": 1, "view": 2, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-220984__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al\nindex 83bf3f09..fc62ac19 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al\n@@ -157,7 +157,7 @@ report 99001043 \"Exchange Production BOM Item\"\n CopyPositionFields(ProductionBOMLine2, ProductionBOMLine3);\n ShouldModifyProductionBOMLine := true;\n OnIntegerOnPostDataItemOnBeforeModifyProductionBOMLine(ProductionBOMLine, ShouldModifyProductionBOMLine);\n- if not ShouldModifyProductionBOMLine then begin\n+ if ShouldModifyProductionBOMLine then begin\n ProductionBOMLine.\"Ending Date\" := StartingDate - 1;\n ProductionBOMLine.Modify();\n end;\n", "error_message": null, "metrics": {"execution_time": 64.0, "llm_duration": null, "turn_count": 6, "prompt_tokens": 109700, "completion_tokens": 1700, "tool_usage": {"grep": 2, "view": 4, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-221877__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al b/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al\nindex 1c8fcc9e..552ccdff 100644\n--- a/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al\n@@ -427,47 +427,7 @@ table 5901 \"Service Item Line\"\n until ServOrderAlloc.Next() = 0;\n end;\n \n- RepairStatusPriority := RepairStatus.Priority;\n- UseLineNo := \"Line No.\";\n- ServItemLine.Reset();\n- ServItemLine.SetRange(\"Document Type\", \"Document Type\");\n- ServItemLine.SetRange(\"Document No.\", \"Document No.\");\n- ServItemLine.SetFilter(\"Line No.\", '<>%1', \"Line No.\");\n- ServItemLine.SetFilter(\"Repair Status Code\", '<>%1', '');\n- if ServItemLine.Find('-') then\n- repeat\n- RepairStatus2.Get(ServItemLine.\"Repair Status Code\");\n- if RepairStatus2.Priority < RepairStatusPriority then begin\n- RepairStatusPriority := RepairStatus2.Priority;\n- UseLineNo := ServItemLine.\"Line No.\";\n- end;\n- until ServItemLine.Next() = 0;\n- if \"Line No.\" <> UseLineNo then begin\n- ServItemLine.Get(\"Document Type\", \"Document No.\", UseLineNo);\n- RepairStatus.Get(ServItemLine.\"Repair Status Code\");\n- end else\n- RepairStatus.Get(\"Repair Status Code\");\n- ServHeader2.Get(Rec.\"Document Type\", Rec.\"Document No.\");\n- ServHeader3 := ServHeader2;\n- if ServHeader2.Status <> RepairStatus.\"Service Order Status\" then begin\n- ServHeader2.SetValidatingFromLines(true);\n- if ServHeader2.\"Finishing Date\" = 0D then\n- ServHeader2.Validate(\"Finishing Date\", \"Finishing Date\");\n-\n- OnValidateRepairStatusCodeOnBeforeValidateStatus(Rec, ServHeader2);\n-\n- ServHeader2.Validate(Status, RepairStatus.\"Service Order Status\");\n- if not (ServHeader2.Status = ServHeader2.Status::Finished) then begin\n- ServHeader2.\"Finishing Date\" := 0D;\n- ServHeader2.\"Finishing Time\" := 0T;\n- ServHeader2.\"Service Time (Hours)\" := 0;\n- end;\n- ServHeader2.UpdateServiceOrderChangeLog(ServHeader3);\n- ServHeader2.Modify();\n- if ServHeader2.Status = ServHeader2.Status::Finished then\n- UpdateStartFinishDateTime(\"Document Type\", \"Document No.\", \"Line No.\", \"Starting Date\", \"Starting Time\",\n- \"Finishing Date\", \"Finishing Time\", false);\n- end;\n+ UpdateServiceHeaderStatus();\n end;\n end;\n }\n@@ -1598,6 +1558,8 @@ table 5901 \"Service Item Line\"\n 9, \"Document No.\", 0, 0, Database::Customer, ServHeader.\"Bill-to Customer No.\",\n ServHeader.\"Salesperson Code\", '', ServHeader.Description, '');\n end;\n+\n+ UpdateServiceHeaderStatus();\n end;\n \n trigger OnModify()\n@@ -1777,6 +1739,55 @@ table 5901 \"Service Item Line\"\n OnAfterSetUpNewLine(Rec);\n end;\n \n+ local procedure UpdateServiceHeaderStatus()\n+ begin\n+ if \"Repair Status Code\" = '' then\n+ exit;\n+\n+ RepairStatus.Get(\"Repair Status Code\");\n+ RepairStatusPriority := RepairStatus.Priority;\n+ UseLineNo := \"Line No.\";\n+ ServItemLine.Reset();\n+ ServItemLine.SetRange(\"Document Type\", \"Document Type\");\n+ ServItemLine.SetRange(\"Document No.\", \"Document No.\");\n+ ServItemLine.SetFilter(\"Line No.\", '<>%1', \"Line No.\");\n+ ServItemLine.SetFilter(\"Repair Status Code\", '<>%1', '');\n+ if ServItemLine.Find('-') then\n+ repeat\n+ RepairStatus2.Get(ServItemLine.\"Repair Status Code\");\n+ if RepairStatus2.Priority < RepairStatusPriority then begin\n+ RepairStatusPriority := RepairStatus2.Priority;\n+ UseLineNo := ServItemLine.\"Line No.\";\n+ end;\n+ until ServItemLine.Next() = 0;\n+ if \"Line No.\" <> UseLineNo then begin\n+ ServItemLine.Get(\"Document Type\", \"Document No.\", UseLineNo);\n+ RepairStatus.Get(ServItemLine.\"Repair Status Code\");\n+ end else\n+ RepairStatus.Get(\"Repair Status Code\");\n+ ServHeader2.Get(Rec.\"Document Type\", Rec.\"Document No.\");\n+ ServHeader3 := ServHeader2;\n+ if ServHeader2.Status <> RepairStatus.\"Service Order Status\" then begin\n+ ServHeader2.SetValidatingFromLines(true);\n+ if ServHeader2.\"Finishing Date\" = 0D then\n+ ServHeader2.Validate(\"Finishing Date\", \"Finishing Date\");\n+\n+ OnValidateRepairStatusCodeOnBeforeValidateStatus(Rec, ServHeader2);\n+\n+ ServHeader2.Validate(Status, RepairStatus.\"Service Order Status\");\n+ if not (ServHeader2.Status = ServHeader2.Status::Finished) then begin\n+ ServHeader2.\"Finishing Date\" := 0D;\n+ ServHeader2.\"Finishing Time\" := 0T;\n+ ServHeader2.\"Service Time (Hours)\" := 0;\n+ end;\n+ ServHeader2.UpdateServiceOrderChangeLog(ServHeader3);\n+ ServHeader2.Modify();\n+ if ServHeader2.Status = ServHeader2.Status::Finished then\n+ UpdateStartFinishDateTime(\"Document Type\", \"Document No.\", \"Line No.\", \"Starting Date\", \"Starting Time\",\n+ \"Finishing Date\", \"Finishing Time\", false);\n+ end;\n+ end;\n+\n local procedure ShowUpdateExistingServiceLinesMessage()\n var\n IsHandled: Boolean;\n", "error_message": null, "metrics": {"execution_time": 229.0, "llm_duration": null, "turn_count": 20, "prompt_tokens": 613000, "completion_tokens": 9600, "tool_usage": {"grep": 8, "view": 13, "report_intent": 2, "edit": 3}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-222092__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\nindex 825eb23c..9ff59101 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n@@ -270,8 +270,8 @@ codeunit 393 \"Reminder-Issue\"\n begin\n GenJnlLine2.\"Shortcut Dimension 1 Code\" := GlobalReminderHeader.\"Shortcut Dimension 1 Code\";\n GenJnlLine2.\"Shortcut Dimension 2 Code\" := GlobalReminderHeader.\"Shortcut Dimension 2 Code\";\n- DimSetIDArr[1] := GlobalReminderHeader.\"Dimension Set ID\";\n- DimSetIDArr[2] := TempGenJnlLine.\"Dimension Set ID\";\n+ DimSetIDArr[1] := TempGenJnlLine.\"Dimension Set ID\";\n+ DimSetIDArr[2] := GlobalReminderHeader.\"Dimension Set ID\";\n GenJnlLine2.\"Dimension Set ID\" :=\n DimMgt.GetCombinedDimensionSetID(\n DimSetIDArr, GenJnlLine2.\"Shortcut Dimension 1 Code\", GenJnlLine2.\"Shortcut Dimension 2 Code\");\n", "error_message": null, "metrics": {"execution_time": 165.0, "llm_duration": null, "turn_count": 15, "prompt_tokens": 614800, "completion_tokens": 6100, "tool_usage": {"grep": 10, "view": 7, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-222092__cf-2", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\nindex 825eb23c..478836cc 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n@@ -266,15 +266,21 @@ codeunit 393 \"Reminder-Issue\"\n \n local procedure SetGenJnlLine2Dim()\n var\n- DimSetIDArr: array[10] of Integer;\n+ DefaultDimension: Record \"Default Dimension\";\n+ DefaultDimSource: List of [Dictionary of [Integer, Code[20]]];\n begin\n GenJnlLine2.\"Shortcut Dimension 1 Code\" := GlobalReminderHeader.\"Shortcut Dimension 1 Code\";\n GenJnlLine2.\"Shortcut Dimension 2 Code\" := GlobalReminderHeader.\"Shortcut Dimension 2 Code\";\n- DimSetIDArr[1] := GlobalReminderHeader.\"Dimension Set ID\";\n- DimSetIDArr[2] := TempGenJnlLine.\"Dimension Set ID\";\n- GenJnlLine2.\"Dimension Set ID\" :=\n- DimMgt.GetCombinedDimensionSetID(\n- DimSetIDArr, GenJnlLine2.\"Shortcut Dimension 1 Code\", GenJnlLine2.\"Shortcut Dimension 2 Code\");\n+ GenJnlLine2.\"Dimension Set ID\" := GlobalReminderHeader.\"Dimension Set ID\";\n+ if GenJnlLine2.\"Account Type\" = GenJnlLine2.\"Account Type\"::\"G/L Account\" then begin\n+ DimMgt.AddDimSource(DefaultDimSource, Database::\"G/L Account\", GenJnlLine2.\"Account No.\");\n+ DefaultDimension.SetRange(\"Table ID\", Database::\"G/L Account\");\n+ DefaultDimension.SetRange(\"No.\", GenJnlLine2.\"Account No.\");\n+ if not DefaultDimension.IsEmpty() then\n+ GenJnlLine2.\"Dimension Set ID\" :=\n+ DimMgt.GetRecDefaultDimID(\n+ GenJnlLine2, 0, DefaultDimSource, SrcCode, GenJnlLine2.\"Shortcut Dimension 1 Code\", GenJnlLine2.\"Shortcut Dimension 2 Code\", GenJnlLine2.\"Dimension Set ID\", 0);\n+ end;\n \n OnAfterSetGenJnlLine2Dim(GlobalReminderHeader, GenJnlLine2);\n end;\n", "error_message": "Build or publish failed for App\\Layers\\W1\\BaseApp:\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Sales\\Reminder\\ReminderIssue.Codeunit.al(276,61): error AL0118: The name '\"G/L Account\"' does not exist in the current context.\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Sales\\Reminder\\ReminderIssue.Codeunit.al(277,61): error AL0118: The name '\"G/L Account\"' does not exist in the current context.", "metrics": {"execution_time": 545.0, "llm_duration": null, "turn_count": 28, "prompt_tokens": 1200000, "completion_tokens": 31500, "tool_usage": {"grep": 16, "view": 11, "glob": 3, "report_intent": 2, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": false} +{"instance_id": "microsoftInternal__NAV-222484__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/QtyReservedFromItemLedger.Query.al b/App/Layers/W1/BaseApp/Inventory/Tracking/QtyReservedFromItemLedger.Query.al\nindex 9eee9466..13192172 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/QtyReservedFromItemLedger.Query.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/QtyReservedFromItemLedger.Query.al\n@@ -42,6 +42,10 @@ query 522 \"Qty. Reserved From Item Ledger\"\n DataItemTableFilter = Positive = const(true),\n \"Source Type\" = const(Database::\"Item Ledger Entry\"),\n \"Reservation Status\" = const(Reservation);\n+\n+ filter(Supply_Serial_No_; \"Serial No.\") { }\n+ filter(Supply_Lot_No_; \"Lot No.\") { }\n+ filter(Supply_Package_No_; \"Package No.\") { }\n }\n }\n }\n@@ -71,4 +75,11 @@ query 522 \"Qty. Reserved From Item Ledger\"\n SetRange(Lot_No_, ItemTrackingSetup.\"Lot No.\");\n SetRange(Package_No_, ItemTrackingSetup.\"Package No.\");\n end;\n+\n+ procedure SetSupplyTrackingFilters(ItemTrackingSetup: Record \"Item Tracking Setup\")\n+ begin\n+ SetRange(Supply_Serial_No_, ItemTrackingSetup.\"Serial No.\");\n+ SetRange(Supply_Lot_No_, ItemTrackingSetup.\"Lot No.\");\n+ SetRange(Supply_Package_No_, ItemTrackingSetup.\"Package No.\");\n+ end;\n }\ndiff --git a/App/Layers/W1/BaseApp/Warehouse/Tracking/WhseItemTrackingFEFO.Codeunit.al b/App/Layers/W1/BaseApp/Warehouse/Tracking/WhseItemTrackingFEFO.Codeunit.al\nindex 9568f0f6..422e76a9 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Tracking/WhseItemTrackingFEFO.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Tracking/WhseItemTrackingFEFO.Codeunit.al\n@@ -85,7 +85,7 @@ codeunit 7326 \"Whse. Item Tracking FEFO\"\n NonReservedQtyLotSN := SummarizedStockByItemTrkg.Remaining_Quantity;\n \n QtyReservedFromItemLedger.SetSKUFilters(ItemNo, VariantCode, Location.Code);\n- QtyReservedFromItemLedger.SetTrackingFilters(ItemTrackingSetup);\n+ QtyReservedFromItemLedger.SetSupplyTrackingFilters(ItemTrackingSetup);\n QtyReservedFromItemLedger.Open();\n if QtyReservedFromItemLedger.Read() then\n NonReservedQtyLotSN -= QtyReservedFromItemLedger.Quantity__Base_;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137260'\nCodeunit 137260 SCM Inventory Item Tracking\n Testfunction RegisterPickWithNoErrorForFEFOLocation Failure (17.837 seconds)\n Error:\n Lot No. must have a value in Warehouse Activity Line: Activity Type=Pick, No.=PI000001, Line No.=10000. It cannot be zero or empty.\n Call Stack:\n \"Warehouse Activity Line\"(Table 5767).TestTrackingIfRequired line 12 - Base Application by Microsoft version 27.0.0.0\n \"Whse.-Activity-Register\"(CodeUnit 7307).CheckWhseItemTrkgLine line 36 - Base Application by Microsoft version 27.0.0.0\n \"Whse.-Activity-Register\"(CodeUnit 7307).Code line 18 - Base Application by Microsoft version 27.0.0.0\n \"Whse.-Activity-Register\"(CodeUnit 7307).OnRun(Trigger) line 4 - Base Application by Microsoft version 27.0.0.0\n \"Library - Warehouse\"(CodeUnit 132204).RegisterWhseActivity line 10 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"SCM Inventory Item Tracking\"(CodeUnit 137260).RegisterPickWithNoErrorForFEFOLocation line 56 - Tests-SCM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0", "metrics": {"execution_time": 555.0, "llm_duration": null, "turn_count": 60, "prompt_tokens": 2900000, "completion_tokens": 28900, "tool_usage": {"task": 1, "grep": 13, "view": 19, "read_agent": 1, "glob": 2, "report_intent": 2, "edit": 4, "powershell": 4}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-222488__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseMovementSubform.Page.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseMovementSubform.Page.al\nindex d0836460..eff77b30 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseMovementSubform.Page.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseMovementSubform.Page.al\n@@ -318,6 +318,8 @@ page 7316 \"Warehouse Movement Subform\"\n WhseActivLine: Record \"Warehouse Activity Line\";\n begin\n WhseActivLine.Copy(Rec);\n+ WhseActivLine.FilterGroup(4);\n+ WhseActivLine.SetRange(Breakbulk);\n WhseActivLine.FilterGroup(3);\n WhseActivLine.SetRange(Breakbulk);\n WhseActivLine.FilterGroup(0);\ndiff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePickSubform.Page.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePickSubform.Page.al\nindex 12c3ac91..0e07335e 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePickSubform.Page.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePickSubform.Page.al\n@@ -560,6 +560,8 @@ page 5780 \"Whse. Pick Subform\"\n exit;\n \n WhseActivLine.Copy(Rec);\n+ WhseActivLine.FilterGroup(4);\n+ WhseActivLine.SetRange(Breakbulk);\n WhseActivLine.FilterGroup(3);\n WhseActivLine.SetRange(Breakbulk);\n WhseActivLine.FilterGroup(0);\ndiff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al\nindex 07db37f9..a70aef62 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al\n@@ -485,6 +485,8 @@ page 5771 \"Whse. Put-away Subform\"\n WhseActivLine: Record \"Warehouse Activity Line\";\n begin\n WhseActivLine.Copy(Rec);\n+ WhseActivLine.FilterGroup(4);\n+ WhseActivLine.SetRange(Breakbulk);\n WhseActivLine.FilterGroup(3);\n WhseActivLine.SetRange(Breakbulk);\n WhseActivLine.FilterGroup(0);\n", "error_message": null, "metrics": {"execution_time": 169.0, "llm_duration": null, "turn_count": 19, "prompt_tokens": 441200, "completion_tokens": 6300, "tool_usage": {"grep": 16, "view": 6, "report_intent": 1, "edit": 3}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-223202__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al\nindex 84769ae0..fb30fe52 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al\n@@ -257,7 +257,15 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ExpSubDirCostRtng: Decimal;\n ExpCapOvhdCostRtng: Decimal;\n ExpOvhdCost: Decimal;\n+ InitExpMatCost: Decimal;\n+ InitExpCapDirCost: Decimal;\n+ InitExpSubDirCost: Decimal;\n+ InitExpCapOvhdCost: Decimal;\n begin\n+ InitExpMatCost := ExpMatCost;\n+ InitExpCapDirCost := ExpCapDirCost;\n+ InitExpSubDirCost := ExpSubDirCost;\n+ InitExpCapOvhdCost := ExpCapOvhdCost;\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\");\n ProdOrderComp.SetRange(Status, ProdOrderLine.Status);\n ProdOrderComp.SetRange(\"Prod. Order No.\", ProdOrderLine.\"Prod. Order No.\");\n@@ -304,7 +312,7 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ExpCapDirCost := ExpCapDirCost + Round(ExpCapDirCostRtng * ShareOfTotalCapCost);\n ExpSubDirCost := ExpSubDirCost + Round(ExpSubDirCostRtng * ShareOfTotalCapCost);\n ExpCapOvhdCost := ExpCapOvhdCost + Round(ExpCapOvhdCostRtng * ShareOfTotalCapCost);\n- ExpMfgDirCost := ExpMatCost + ExpCapDirCost + ExpSubDirCost + ExpCapOvhdCost;\n+ ExpMfgDirCost := (ExpMatCost - InitExpMatCost) + (ExpCapDirCost - InitExpCapDirCost) + (ExpSubDirCost - InitExpSubDirCost) + (ExpCapOvhdCost - InitExpCapOvhdCost);\n ExpOvhdCost := ExpMfgOvhdCost + ProdOrderLine.\"Overhead Rate\" * ProdOrderLine.\"Quantity (Base)\";\n ExpMfgOvhdCost := ExpOvhdCost +\n Round(CostCalculationMgt.CalcOvhdCost(ExpMfgDirCost, ProdOrderLine.\"Indirect Cost %\", 0, 0));\n@@ -327,7 +335,17 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ExpSubDirCostRtng: Decimal;\n ExpCapOvhdCostRtng: Decimal;\n ExpOvhdCost: Decimal;\n+ InitExpMatCost: Decimal;\n+ InitExpNonInvMatCost: Decimal;\n+ InitExpCapDirCost: Decimal;\n+ InitExpSubDirCost: Decimal;\n+ InitExpCapOvhdCost: Decimal;\n begin\n+ InitExpMatCost := ExpMatCost;\n+ InitExpNonInvMatCost := ExpNonInvMatCost;\n+ InitExpCapDirCost := ExpCapDirCost;\n+ InitExpSubDirCost := ExpSubDirCost;\n+ InitExpCapOvhdCost := ExpCapOvhdCost;\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\");\n ProdOrderComp.SetRange(Status, ProdOrderLine.Status);\n ProdOrderComp.SetRange(\"Prod. Order No.\", ProdOrderLine.\"Prod. Order No.\");\n@@ -366,7 +384,7 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ExpCapDirCost := ExpCapDirCost + Round(ExpCapDirCostRtng * ShareOfTotalCapCost);\n ExpSubDirCost := ExpSubDirCost + Round(ExpSubDirCostRtng * ShareOfTotalCapCost);\n ExpCapOvhdCost := ExpCapOvhdCost + Round(ExpCapOvhdCostRtng * ShareOfTotalCapCost);\n- ExpMfgDirCost := ExpMatCost + ExpNonInvMatCost + ExpCapDirCost + ExpSubDirCost + ExpCapOvhdCost;\n+ ExpMfgDirCost := (ExpMatCost - InitExpMatCost) + (ExpNonInvMatCost - InitExpNonInvMatCost) + (ExpCapDirCost - InitExpCapDirCost) + (ExpSubDirCost - InitExpSubDirCost) + (ExpCapOvhdCost - InitExpCapOvhdCost);\n ExpOvhdCost := ExpMfgOvhdCost + ProdOrderLine.\"Overhead Rate\" * ProdOrderLine.\"Quantity (Base)\";\n ExpMfgOvhdCost := ExpOvhdCost +\n Round(CostCalculationMgt.CalcOvhdCost(ExpMfgDirCost, ProdOrderLine.\"Indirect Cost %\", 0, 0));\n", "error_message": null, "metrics": {"execution_time": 147.0, "llm_duration": null, "turn_count": 12, "prompt_tokens": 339600, "completion_tokens": 6800, "tool_usage": {"grep": 5, "view": 6, "report_intent": 1, "edit": 4}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-223493__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al b/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al\nindex 6a5f0a88..95da578b 100644\n--- a/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al\n@@ -56,6 +56,8 @@ codeunit 1409 \"Sales Inv. Header - Edit\"\n CustLedgerEntry.Description := SalesInvoiceHeader.\"Posting Description\";\n CustLedgerEntry.\"Promised Pay Date\" := SalesInvoiceHeader.\"Promised Pay Date\";\n CustLedgerEntry.\"Due Date\" := SalesInvoiceHeader.\"Due Date\";\n+ if CustLedgerEntry.\"On Hold\" = '' then\n+ CustLedgerEntry.\"Your Reference\" := SalesInvoiceHeader.\"Your Reference\";\n if CustLedgerEntry.\"Dispute Status\" <> '' then begin\n if DisputeStatus.get(CustLedgerEntry.\"Dispute Status\") then\n if (DisputeStatus.\"Overwrite on hold\") and ClearOnHold(SalesInvoiceHeader) then\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134658'\nCodeunit 134658 Edit Posted Documents\n Testfunction VerifyYourReferenceUpdatedInCustLedgerEntry Failure (23.674 seconds)\n Error:\n Assert.AreEqual failed. Expected:<566f2280cd554a5f996f19696d5356bc914> (Text). Actual:<> (Text). Customer Ledger Entry Your Reference not updated.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"Edit Posted Documents\"(CodeUnit 134658).VerifyYourReferenceUpdatedInCustLedgerEntry line 34 - Tests-ERM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0", "metrics": {"execution_time": 56.0, "llm_duration": null, "turn_count": 7, "prompt_tokens": 132400, "completion_tokens": 1700, "tool_usage": {"grep": 4, "view": 3, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-223790__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Location/MfgStockkeepingUnit.TableExt.al b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Location/MfgStockkeepingUnit.TableExt.al\nindex e6df0fd1..e7b5e869 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Location/MfgStockkeepingUnit.TableExt.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Location/MfgStockkeepingUnit.TableExt.al\n@@ -62,6 +62,22 @@ tableextension 99000759 \"Mfg. Stockkeeping Unit\" extends \"Stockkeeping Unit\"\n Caption = 'Production BOM No.';\n DataClassification = CustomerContent;\n TableRelation = \"Production BOM Header\";\n+\n+ trigger OnValidate()\n+ var\n+ MfgSetup: Record Microsoft.Manufacturing.Setup.\"Manufacturing Setup\";\n+ ProdBOMHeader: Record \"Production BOM Header\";\n+ Item: Record Item;\n+ begin\n+ if (\"Production BOM No.\" <> '') and (\"Production BOM No.\" <> xRec.\"Production BOM No.\") then\n+ if ProdBOMHeader.Get(\"Production BOM No.\") then\n+ if ProdBOMHeader.Status = ProdBOMHeader.Status::Certified then begin\n+ MfgSetup.Get();\n+ if MfgSetup.\"Dynamic Low-Level Code\" then\n+ if Item.Get(\"Item No.\") then\n+ Codeunit.Run(Codeunit::\"Calculate Low-Level Code\", Item);\n+ end;\n+ end;\n }\n field(99000765; \"Planned Order Receipt (Qty.)\"; Decimal)\n {\ndiff --git a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/LowLevelCodeCalculator.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/LowLevelCodeCalculator.Codeunit.al\nindex fcabc2e0..66286bbd 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/LowLevelCodeCalculator.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/LowLevelCodeCalculator.Codeunit.al\n@@ -6,6 +6,7 @@ namespace Microsoft.Inventory.BOM.Tree;\n \n using Microsoft.Inventory.BOM;\n using Microsoft.Inventory.Item;\n+using Microsoft.Inventory.Location;\n using Microsoft.Manufacturing.ProductionBOM;\n using System.Threading;\n using System.Utilities;\n@@ -88,6 +89,7 @@ codeunit 3687 \"Low-Level Code Calculator\"\n begin\n // Set nodes on the tree\n PopulateFromItemAndRelatedBOMs(BOMStructure);\n+ PopulateFromSKUAndRelatedBOMs(BOMStructure);\n PopulateFromProductionBOMAndLines(BOMStructure);\n PopulateFromBOMComponents(BOMStructure);\n end;\n@@ -99,12 +101,14 @@ codeunit 3687 \"Low-Level Code Calculator\"\n ProductionBOMLine: Record \"Production BOM Line\";\n ProductionBOMVersion: Record \"Production BOM Version\";\n BOMComponent: Record \"BOM Component\";\n+ SKU: Record \"Stockkeeping Unit\";\n begin\n Item.LockTable();\n ProductionBOMHeader.LockTable();\n ProductionBOMLine.LockTable();\n ProductionBOMVersion.LockTable();\n BOMComponent.LockTable();\n+ SKU.LockTable();\n end;\n \n local procedure ResetLowLevelCodesForEntitiesNotPartOfBOM()\n@@ -192,6 +196,35 @@ codeunit 3687 \"Low-Level Code Calculator\"\n ItemProductionBOMs.Close();\n end;\n \n+ local procedure PopulateFromSKUAndRelatedBOMs(BOMStructure: Codeunit \"BOM Tree\")\n+ var\n+ SKU: Record \"Stockkeeping Unit\";\n+ Item: Record Item;\n+ ProductionBOMHeader: Record \"Production BOM Header\";\n+ VersionManagement: Codeunit VersionManagement;\n+ Parent: Codeunit \"BOM Node\";\n+ Child: Codeunit \"BOM Node\";\n+ begin\n+ SKU.SetFilter(\"Production BOM No.\", '<> %1', '');\n+ SKU.SetLoadFields(\"Item No.\", \"Production BOM No.\");\n+ if SKU.FindSet() then\n+ repeat\n+ if ProductionBOMHeader.Get(SKU.\"Production BOM No.\") then\n+ if (ProductionBOMHeader.Status = ProductionBOMHeader.Status::Certified) or\n+ (VersionManagement.GetBOMVersion(SKU.\"Production BOM No.\", WorkDate(), true) <> '')\n+ then\n+ if Item.Get(SKU.\"Item No.\") then begin\n+ Parent.CreateForItem(Item.\"No.\", Item.\"Low-Level Code\", LowLevelCodeParam);\n+ Child.CreateForProdBOM(ProductionBOMHeader.\"No.\", ProductionBOMHeader.\"Low-Level Code\", LowLevelCodeParam);\n+\n+ AddChildToParent(BOMStructure, Parent, Child);\n+\n+ Clear(Parent);\n+ Clear(Child);\n+ end;\n+ until SKU.Next() = 0;\n+ end;\n+\n local procedure PopulateFromProductionBOMAndLines(BOMStructure: Codeunit \"BOM Tree\")\n var\n ProductionBOMHeader: Record \"Production BOM Header\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137035'\nCodeunit 137035 SCM PS Bugs-I\n Testfunction CheckPlanningWorksheetPlanComponentwhenStockkeepingUnitsSetup Failure (17.88 seconds)\n Error:\n Assert.AreEqual failed. Expected:<1> (Integer). Actual:<0> (Integer). New planning worksheet line not created for component item.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"SCM PS Bugs-I\"(CodeUnit 137035).CheckPlanningWorksheetPlanComponentwhenStockkeepingUnitsSetup line 85 - Tests-SCM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0", "metrics": {"execution_time": 342.0, "llm_duration": null, "turn_count": 36, "prompt_tokens": 1900000, "completion_tokens": 12200, "tool_usage": {"grep": 17, "view": 23, "report_intent": 1, "glob": 3, "edit": 5, "powershell": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-224447__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Foundation/Reporting/ReportSelections.Table.al b/App/Layers/W1/BaseApp/Foundation/Reporting/ReportSelections.Table.al\nindex 7a71bebb..937f0cd6 100644\n--- a/App/Layers/W1/BaseApp/Foundation/Reporting/ReportSelections.Table.al\n+++ b/App/Layers/W1/BaseApp/Foundation/Reporting/ReportSelections.Table.al\n@@ -1269,7 +1269,8 @@ table 77 \"Report Selections\"\n Database::\"Sales Invoice Header\",\n Database::\"Sales Cr.Memo Header\",\n Database::\"Sales Shipment Header\",\n- Database::\"Return Receipt Header\"];\n+ Database::\"Return Receipt Header\",\n+ Database::\"Issued Reminder Header\"];\n \n OnAfterIsCustomerAccount(DocumentTableId, IsCustomer);\n end;\ndiff --git a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderCommunication.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderCommunication.Codeunit.al\nindex 4aa9c5dc..7cd1f07a 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderCommunication.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderCommunication.Codeunit.al\n@@ -998,6 +998,13 @@ codeunit 1890 \"Reminder Communication\"\n exit;\n end;\n \n+ [EventSubscriber(ObjectType::Table, Database::\"Report Selections\", 'OnSendEmailDirectlyOnAfterSetFieldName', '', false, false)]\n+ local procedure OnSendEmailDirectlyOnAfterSetFieldName(DocumentTableId: Integer; var FieldName: Text)\n+ begin\n+ if DocumentTableId = Database::\"Issued Reminder Header\" then\n+ FieldName := 'Customer No.';\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnBeforeExitReportIDOnReplaceHTMLText(ReportID: Integer; var RecordVariant: Variant; var ReportIDExit: Boolean)\n begin\n", "error_message": null, "metrics": {"execution_time": 212.0, "llm_duration": null, "turn_count": 26, "prompt_tokens": 794500, "completion_tokens": 7700, "tool_usage": {"grep": 14, "view": 16, "report_intent": 1, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-224668__cf-1", "project": "EssentialBusinessHeadlines", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\nindex 831aa80e..10436a09 100644\n--- a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n+++ b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n@@ -677,7 +677,7 @@ codeunit 1437 \"Essential Bus. Headline Mgt.\"\n var\n EssentialBusinessHeadline: Record \"Ess. Business Headline Per Usr\";\n begin\n- if EssentialBusinessHeadline.Get(HeadlineName) then begin\n+ if EssentialBusinessHeadline.Get(HeadlineName, UserSecurityId()) then begin\n EssentialBusinessHeadline.Validate(\"Headline Visible\", false);\n EssentialBusinessHeadline.Modify();\n end;\n", "error_message": null, "metrics": {"execution_time": 28.0, "llm_duration": null, "turn_count": 4, "prompt_tokens": 64900, "completion_tokens": 653, "tool_usage": {"grep": 1, "view": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-224668__cf-2", "project": "EssentialBusinessHeadlines", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\nindex 831aa80e..36cf212f 100644\n--- a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n+++ b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n@@ -677,10 +677,11 @@ codeunit 1437 \"Essential Bus. Headline Mgt.\"\n var\n EssentialBusinessHeadline: Record \"Ess. Business Headline Per Usr\";\n begin\n- if EssentialBusinessHeadline.Get(HeadlineName) then begin\n- EssentialBusinessHeadline.Validate(\"Headline Visible\", false);\n- EssentialBusinessHeadline.Modify();\n- end;\n+ if EssentialBusinessHeadline.Get(HeadlineName, UserSecurityId()) then\n+ if EssentialBusinessHeadline.\"Headline Visible\" then begin\n+ EssentialBusinessHeadline.Validate(\"Headline Visible\", false);\n+ EssentialBusinessHeadline.Modify();\n+ end;\n end;\n \n procedure FormatCurrency(AmountToFormat: Decimal; CurrencyCode: Code[10]): Text\n", "error_message": null, "metrics": {"execution_time": 28.0, "llm_duration": null, "turn_count": 3, "prompt_tokens": 44400, "completion_tokens": 620, "tool_usage": {"grep": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-224668__cf-3", "project": "EssentialBusinessHeadlines", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\nindex 831aa80e..86352921 100644\n--- a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n+++ b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n@@ -677,7 +677,14 @@ codeunit 1437 \"Essential Bus. Headline Mgt.\"\n var\n EssentialBusinessHeadline: Record \"Ess. Business Headline Per Usr\";\n begin\n- if EssentialBusinessHeadline.Get(HeadlineName) then begin\n+ if not EssentialBusinessHeadline.Get(HeadlineName, UserSecurityId()) then begin\n+ EssentialBusinessHeadline.Init();\n+ EssentialBusinessHeadline.Validate(\"Headline Name\", HeadlineName);\n+ EssentialBusinessHeadline.Validate(\"User Id\", UserSecurityId());\n+ EssentialBusinessHeadline.Validate(\"Headline Visible\", false);\n+ if not EssentialBusinessHeadline.Insert() then\n+ exit;\n+ end else begin\n EssentialBusinessHeadline.Validate(\"Headline Visible\", false);\n EssentialBusinessHeadline.Modify();\n end;\n", "error_message": null, "metrics": {"execution_time": 34.0, "llm_duration": null, "turn_count": 4, "prompt_tokens": 66300, "completion_tokens": 898, "tool_usage": {"grep": 1, "view": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-226875__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\nindex fa043e01..e94d945b 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n@@ -154,6 +154,7 @@ page 254 \"Purchase Journal\"\n trigger OnValidate()\n begin\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ SetVendorName();\n EnableApplyEntriesAction();\n CurrPage.SaveRecord();\n end;\n@@ -166,11 +167,12 @@ page 254 \"Purchase Journal\"\n trigger OnValidate()\n begin\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ SetVendorName();\n Rec.ShowShortcutDimCode(ShortcutDimCode);\n CurrPage.SaveRecord();\n end;\n }\n- field(\"\"; AccName)\n+ field(\"\"; VendorName)\n {\n ApplicationArea = Basic, Suite;\n Caption = 'Vendor Name';\n@@ -390,6 +392,7 @@ page 254 \"Purchase Journal\"\n trigger OnValidate()\n begin\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ SetVendorName();\n Rec.ShowShortcutDimCode(ShortcutDimCode);\n CurrPage.SaveRecord();\n end;\n@@ -1494,6 +1497,7 @@ page 254 \"Purchase Journal\"\n begin\n HasIncomingDocument := Rec.\"Incoming Document Entry No.\" <> 0;\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ SetVendorName();\n UpdateBalance();\n EnableApplyEntriesAction();\n SetControlAppearance();\n@@ -1508,6 +1512,7 @@ page 254 \"Purchase Journal\"\n Rec.ShowShortcutDimCode(ShortcutDimCode);\n DocumentAmount := Abs(Rec.Amount);\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ SetVendorName();\n CurrPage.IncomingDocAttachFactBox.PAGE.SetCurrentRecordID(Rec.RecordId());\n ApprovalMgmt.GetGenJnlLineApprovalStatus(Rec, GenJnlLineApprovalStatus, EnabledGenJnlLineWorkflowsExist);\n end;\n@@ -1639,6 +1644,7 @@ page 254 \"Purchase Journal\"\n ShortcutDimCode: array[8] of Code[20];\n AccName: Text[100];\n BalAccName: Text[100];\n+ VendorName: Text[100];\n DimVisible1: Boolean;\n DimVisible2: Boolean;\n DimVisible3: Boolean;\n@@ -1661,6 +1667,14 @@ page 254 \"Purchase Journal\"\n NumberOfRecords := Rec.Count();\n end;\n \n+ local procedure SetVendorName()\n+ begin\n+ if Rec.\"Account Type\" = Rec.\"Account Type\"::Vendor then\n+ VendorName := AccName\n+ else\n+ VendorName := '';\n+ end;\n+\n local procedure EnableApplyEntriesAction()\n begin\n ApplyEntriesActionEnabled :=\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134920'\nCodeunit 134920 ERM General Journal UT\n Testfunction VendorNameFieldPopulatesOnlyForVendorAccountType Failure (5.536 seconds)\n Error:\n AssertEquals for Field: Expected = '', Actual = '7a5e2a6fc2f34f089da2'\n Call Stack:\n \"ERM General Journal UT\"(CodeUnit 134920).VendorNameFieldPopulatesOnlyForVendorAccountType line 38 - Tests-General Journal by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0", "metrics": {"execution_time": 142.0, "llm_duration": null, "turn_count": 20, "prompt_tokens": 453900, "completion_tokens": 6200, "tool_usage": {"grep": 7, "view": 10, "edit": 7}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-227153__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\nindex e033f91e..fa9ce2f0 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\n@@ -483,6 +483,7 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n repeat\n DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\");\n DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", PostingGr);\n \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n DtldCustLedgEntry.CalcSums(\"Amount (LCY)\");\n CustAccAmount := CustAccAmount + DtldCustLedgEntry.\"Amount (LCY)\";\n@@ -505,6 +506,7 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\", \"Entry Type\");\n DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", PostingGr);\n \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n DtldCustLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n CustCreditAmount := CustCreditAmount + DtldCustLedgEntry.\"Credit Amount (LCY)\";\n@@ -527,6 +529,7 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\", \"Entry Type\");\n DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", PostingGr);\n \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n DtldCustLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n CustDebitAmount := CustDebitAmount + DtldCustLedgEntry.\"Debit Amount (LCY)\";\n@@ -548,6 +551,7 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n repeat\n DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\");\n DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n+ DtldVendLedgEntry.SetRange(\"Posting Group\", PostingGr);\n \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n DtldVendLedgEntry.CalcSums(\"Amount (LCY)\");\n VendAccAmount := VendAccAmount + DtldVendLedgEntry.\"Amount (LCY)\";\n@@ -570,6 +574,7 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\", \"Entry Type\");\n DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ DtldVendLedgEntry.SetRange(\"Posting Group\", PostingGr);\n \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n DtldVendLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n VendCreditAmount := VendCreditAmount + DtldVendLedgEntry.\"Credit Amount (LCY)\";\n@@ -592,6 +597,7 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\", \"Entry Type\");\n DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ DtldVendLedgEntry.SetRange(\"Posting Group\", PostingGr);\n \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n DtldVendLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n VendDebitAmount := VendDebitAmount + DtldVendLedgEntry.\"Debit Amount (LCY)\";\n", "error_message": null, "metrics": {"execution_time": 134.0, "llm_duration": null, "turn_count": 12, "prompt_tokens": 331200, "completion_tokens": 7300, "tool_usage": {"grep": 5, "view": 8, "report_intent": 1, "edit": 6}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-227153__cf-2", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\nindex e033f91e..05a265d5 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\n@@ -472,21 +472,23 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n \n local procedure CalcCustAccAmount(PostingGr: Code[20]): Decimal\n var\n- Cust: Record Customer;\n+ CustLedgEntry: Record \"Cust. Ledger Entry\";\n DtldCustLedgEntry: Record \"Detailed Cust. Ledg. Entry\";\n CustAccAmount: Decimal;\n begin\n- Cust.SetCurrentKey(\"Customer Posting Group\");\n- Cust.SetRange(\"Customer Posting Group\", PostingGr);\n+ CustLedgEntry.SetCurrentKey(\"Customer Posting Group\");\n+ CustLedgEntry.SetRange(\"Customer Posting Group\", PostingGr);\n+ CustLedgEntry.SetRange(\"Document Type\", CustLedgEntry.\"Document Type\"::Payment);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", CustLedgEntry.\"Posting Date\");\n \n- if Cust.Find('-') then\n+ if CustLedgEntry.FindSet() then\n repeat\n- DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\");\n- DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n+ DtldCustLedgEntry.SetCurrentKey(\"Cust. Ledger Entry No.\", \"Posting Date\");\n+ DtldCustLedgEntry.SetRange(\"Cust. Ledger Entry No.\", CustLedgEntry.\"Entry No.\");\n \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n DtldCustLedgEntry.CalcSums(\"Amount (LCY)\");\n CustAccAmount := CustAccAmount + DtldCustLedgEntry.\"Amount (LCY)\";\n- until Cust.Next() = 0;\n+ until CustLedgEntry.Next() = 0;\n \n exit(CustAccAmount);\n end;\n@@ -537,21 +539,23 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n \n local procedure CalcVendAccAmount(PostingGr: Code[20]): Decimal\n var\n- Vend: Record Vendor;\n+ VendLedgEntry: Record \"Vendor Ledger Entry\";\n DtldVendLedgEntry: Record \"Detailed Vendor Ledg. Entry\";\n VendAccAmount: Decimal;\n begin\n- Vend.SetCurrentKey(\"Vendor Posting Group\");\n- Vend.SetRange(\"Vendor Posting Group\", PostingGr);\n+ VendLedgEntry.SetCurrentKey(\"Vendor Posting Group\");\n+ VendLedgEntry.SetRange(\"Vendor Posting Group\", PostingGr);\n+ VendLedgEntry.SetRange(\"Document Type\", VendLedgEntry.\"Document Type\"::Payment);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", VendLedgEntry.\"Posting Date\");\n \n- if Vend.Find('-') then\n+ if VendLedgEntry.FindSet() then\n repeat\n- DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\");\n- DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n+ DtldVendLedgEntry.SetCurrentKey(\"Vendor Ledger Entry No.\", \"Posting Date\");\n+ DtldVendLedgEntry.SetRange(\"Vendor Ledger Entry No.\", VendLedgEntry.\"Entry No.\");\n \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n DtldVendLedgEntry.CalcSums(\"Amount (LCY)\");\n VendAccAmount := VendAccAmount + DtldVendLedgEntry.\"Amount (LCY)\";\n- until Vend.Next() = 0;\n+ until VendLedgEntry.Next() = 0;\n \n exit(VendAccAmount);\n end;\n", "error_message": null, "metrics": {"execution_time": 127.0, "llm_duration": null, "turn_count": 11, "prompt_tokens": 280000, "completion_tokens": 5900, "tool_usage": {"grep": 4, "view": 7, "report_intent": 2, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-227219__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al\nindex 979cdb45..1254b0d5 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al\n@@ -119,7 +119,7 @@ codeunit 5708 \"Release Transfer Document\"\n if IsHandled then\n exit;\n \n- TransLine.SetLoadFields(\"Document No.\", Quantity, \"Item No.\");\n+ TransLine.SetLoadFields(\"Document No.\", Quantity, \"Item No.\", \"Variant Code\");\n TransLine.SetRange(\"Document No.\", TransHeader.\"No.\");\n TransLine.SetFilter(Quantity, '<>0');\n if TransLine.IsEmpty() then\n@@ -131,6 +131,8 @@ codeunit 5708 \"Release Transfer Document\"\n Item.Get(TransLine.\"Item No.\");\n if Item.IsInventoriableType() then\n TransLine.TestField(\"Unit of Measure Code\");\n+ if Item.IsVariantMandatory() then\n+ TransLine.TestField(\"Variant Code\");\n until TransLine.Next() = 0;\n TransLine.SetFilter(\"Item No.\", '');\n end;\n", "error_message": null, "metrics": {"execution_time": 87.0, "llm_duration": null, "turn_count": 9, "prompt_tokens": 202600, "completion_tokens": 2600, "tool_usage": {"grep": 8, "view": 5, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-227358__cf-1", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\nindex 61aff663..4db85595 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\n@@ -1006,6 +1006,9 @@ codeunit 13 \"Gen. Jnl.-Post Batch\"\n exit;\n if not CurrGenJnlTemplate.\"Unlink Inc. Doc On Posting\" then\n exit;\n+ if GenJnlLine.\"Incoming Document Entry No.\" = 0 then\n+ exit;\n+ GenJnlLine.Find();\n GenJnlLine.\"Incoming Document Entry No.\" := 0;\n GenJnlLine.Modify();\n end;\n", "error_message": null, "metrics": {"execution_time": 39.0, "llm_duration": null, "turn_count": 4, "prompt_tokens": 63200, "completion_tokens": 1100, "tool_usage": {"grep": 1, "view": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-227358__cf-2", "project": "BaseApp", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\nindex 61aff663..44ac79f8 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\n@@ -1006,6 +1006,7 @@ codeunit 13 \"Gen. Jnl.-Post Batch\"\n exit;\n if not CurrGenJnlTemplate.\"Unlink Inc. Doc On Posting\" then\n exit;\n+ GenJnlLine.Get(GenJnlLine.\"Journal Template Name\", GenJnlLine.\"Journal Batch Name\", GenJnlLine.\"Line No.\");\n GenJnlLine.\"Incoming Document Entry No.\" := 0;\n GenJnlLine.Modify();\n end;\n", "error_message": null, "metrics": {"execution_time": 61.0, "llm_duration": null, "turn_count": 5, "prompt_tokens": 87300, "completion_tokens": 1600, "tool_usage": {"grep": 2, "view": 2, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoft__BCApps-4699__cf-1", "project": "Shopify", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al b/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al\nindex 4e6ffd2..72a07aa 100644\n--- a/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al\n@@ -8,6 +8,7 @@ namespace Microsoft.Integration.Shopify;\n using Microsoft.Inventory.Item;\n using Microsoft.Foundation.UOM;\n using Microsoft.Purchases.Vendor;\n+using Microsoft.Finance.Currency;\n using Microsoft.Inventory.Item.Catalog;\n \n /// \n@@ -258,10 +259,10 @@ codeunit 30171 \"Shpfy Create Item\"\n CreateItemUnitOfMeasure(ShopifyVariant, Item);\n \n if ShopifyVariant.\"Unit Cost\" <> 0 then\n- Item.Validate(\"Unit Cost\", ShopifyVariant.\"Unit Cost\");\n+ Item.Validate(\"Unit Cost\", ConvertToLCY(ShopifyVariant.\"Unit Cost\"));\n \n if ShopifyVariant.Price <> 0 then\n- Item.Validate(\"Unit Price\", ShopifyVariant.Price);\n+ Item.Validate(\"Unit Price\", ConvertToLCY(ShopifyVariant.Price));\n \n if ShopifyProduct.\"Product Type\" <> '' then begin\n ItemCategory.SetFilter(Description, FilterMgt.CleanFilterValue(ShopifyProduct.\"Product Type\", MaxStrLen(ItemCategory.Description)));\n@@ -501,4 +502,16 @@ codeunit 30171 \"Shpfy Create Item\"\n begin\n TemplateCode := Code;\n end;\n+\n+ local procedure ConvertToLCY(Amount: Decimal): Decimal\n+ var\n+ CurrencyExchangeRate: Record \"Currency Exchange Rate\";\n+ begin\n+ if Shop.\"Currency Code\" = '' then\n+ exit(Amount);\n+\n+ exit(CurrencyExchangeRate.ExchangeAmtFCYToLCY(\n+ WorkDate(), Shop.\"Currency Code\", Amount,\n+ CurrencyExchangeRate.ExchangeRate(WorkDate(), Shop.\"Currency Code\")));\n+ end;\n }\n\\ No newline at end of file\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139567'\nCodeunit 139567 Shpfy Create Item Test\n Testfunction UnitTestCreateItemFCYToLCYConversion Failure (5.703 seconds)\n Error:\n Assert.AreNearlyEqual failed. Expected a difference no greater than <0.1> between expected value <6> and actual value <3>. Unit Cost\n Call Stack:\n \"Library Assert\"(CodeUnit 130002).AreNearlyEqual line 3 - Library Assert by Microsoft version 27.0.0.0\n \"Shpfy Create Item Test\"(CodeUnit 139567).UnitTestCreateItemFCYToLCYConversion line 28 - Shopify Connector Test by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0", "metrics": {"execution_time": 118.0, "llm_duration": null, "turn_count": 22, "prompt_tokens": 537300, "completion_tokens": 4600, "tool_usage": {"grep": 11, "glob": 3, "view": 11, "edit": 3}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoft__BCApps-4822__cf-1", "project": "Shopify", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\nindex 2d20144..cf83a44 100644\n--- a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\n@@ -523,7 +523,7 @@ codeunit 30286 \"Shpfy Company API\"\n JResponse := CommunicationMgt.ExecuteGraphQL(GraphQuery.ToText());\n if JResponse.SelectToken('$.data.companyLocationCreate.companyLocation', JCompanyLocation) then\n if not JsonHelper.IsTokenNull(JCompanyLocation) then begin\n- LocationId := CreateCustomerLocation(JCompanyLocation.AsObject(), ShopifyCompany, Customer.SystemId);\n+ LocationId := CreateCustomerLocation(JCompanyLocation.AsObject(), ShopifyCompany, Customer);\n if JsonHelper.GetJsonArray(JCompanyLocation, JContactRoles, 'company.contactRoles.edges') then begin\n foreach JItem in JContactRoles do\n CompanyContactRoles.Add(JsonHelper.GetValueAsText(JItem, 'node.name'), CommunicationMgt.GetIdOfGId(JsonHelper.GetValueAsText(JItem, 'node.id')));\n@@ -540,7 +540,7 @@ codeunit 30286 \"Shpfy Company API\"\n /// \n /// JSON object containing the company location data from Shopify API response.\n /// The parent Shopify company record.\n- /// The GUID of the Business Central customer that was exported.\n+ /// The Business Central customer record that was exported.\n /// \n /// This procedure:\n /// - Extracts the Shopify-generated ID and creates the initial record\n@@ -552,7 +552,7 @@ codeunit 30286 \"Shpfy Company API\"\n /// The procedure assumes the JSON structure matches Shopify's companyLocationCreate response format.\n /// All text fields are properly truncated to match the field lengths in the table definition.\n /// \n- local procedure CreateCustomerLocation(JCompanyLocation: JsonObject; ShopifyCompany: Record \"Shpfy Company\"; CustomerId: Guid): BigInteger\n+ local procedure CreateCustomerLocation(JCompanyLocation: JsonObject; ShopifyCompany: Record \"Shpfy Company\"; Customer: Record Customer): BigInteger\n var\n CompanyLocation: Record \"Shpfy Company Location\";\n CompanyLocationId: BigInteger;\n@@ -580,7 +580,9 @@ codeunit 30286 \"Shpfy Company API\"\n #pragma warning restore AA0139\n CompanyLocation.Recipient := CopyStr(JsonHelper.GetValueAsText(JCompanyLocation, 'billingAddress.recipient', MaxStrLen(CompanyLocation.Recipient)), 1, MaxStrLen(CompanyLocation.Recipient));\n CompanyLocation.\"Shpfy Payment Terms Id\" := CommunicationMgt.GetIdOfGId(JsonHelper.GetValueAsText(JCompanyLocation, 'buyerExperienceConfiguration.paymentTermsTemplate.id'));\n- CompanyLocation.\"Customer Id\" := CustomerId;\n+ CompanyLocation.\"Customer Id\" := Customer.SystemId;\n+ CompanyLocation.\"Sell-to Customer No.\" := Customer.\"No.\";\n+ CompanyLocation.\"Bill-to Customer No.\" := Customer.\"Bill-to Customer No.\";\n CompanyLocation.Modify(true);\n exit(CompanyLocationId);\n end;\n", "error_message": null, "metrics": {"execution_time": 117.0, "llm_duration": null, "turn_count": 18, "prompt_tokens": 461600, "completion_tokens": 6100, "tool_usage": {"grep": 8, "view": 8, "report_intent": 1, "edit": 3}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoft__BCApps-4822__cf-2", "project": "Shopify", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\nindex 2d20144..50aedd9 100644\n--- a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\n@@ -554,6 +554,7 @@ codeunit 30286 \"Shpfy Company API\"\n /// \n local procedure CreateCustomerLocation(JCompanyLocation: JsonObject; ShopifyCompany: Record \"Shpfy Company\"; CustomerId: Guid): BigInteger\n var\n+ Customer: Record Customer;\n CompanyLocation: Record \"Shpfy Company Location\";\n CompanyLocationId: BigInteger;\n PhoneNo: Text;\n@@ -581,6 +582,12 @@ codeunit 30286 \"Shpfy Company API\"\n CompanyLocation.Recipient := CopyStr(JsonHelper.GetValueAsText(JCompanyLocation, 'billingAddress.recipient', MaxStrLen(CompanyLocation.Recipient)), 1, MaxStrLen(CompanyLocation.Recipient));\n CompanyLocation.\"Shpfy Payment Terms Id\" := CommunicationMgt.GetIdOfGId(JsonHelper.GetValueAsText(JCompanyLocation, 'buyerExperienceConfiguration.paymentTermsTemplate.id'));\n CompanyLocation.\"Customer Id\" := CustomerId;\n+ if Customer.GetBySystemId(CustomerId) then begin\n+ if Customer.\"No.\" <> '' then\n+ CompanyLocation.\"Sell-to Customer No.\" := Customer.\"No.\";\n+ if Customer.\"Bill-to Customer No.\" <> '' then\n+ CompanyLocation.\"Bill-to Customer No.\" := Customer.\"Bill-to Customer No.\";\n+ end;\n CompanyLocation.Modify(true);\n exit(CompanyLocationId);\n end;\n", "error_message": null, "metrics": {"execution_time": 98.0, "llm_duration": null, "turn_count": 15, "prompt_tokens": 397000, "completion_tokens": 3700, "tool_usage": {"grep": 6, "view": 9, "report_intent": 1, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoft__BCApps-5633__cf-1", "project": "Shopify", "model": "claude-opus-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al b/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al\nindex 1f790f9..51154e1 100644\n--- a/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al\n@@ -107,22 +107,23 @@ codeunit 30190 \"Shpfy Export Shipments\"\n repeat\n if OrderLine.Get(SalesShipmentHeader.\"Shpfy Order Id\", SalesShipmentLine.\"Shpfy Order Line Id\") then\n if (OrderLine.\"Location Id\" = LocationId) and (OrderLine.\"Delivery Method Type\" = DeliveryMethodType) then\n- if FindFulfillmentOrderLine(SalesShipmentHeader, SalesShipmentLine, FulfillmentOrderLine) then begin\n- FulfillmentOrderLine.\"Quantity to Fulfill\" += Round(SalesShipmentLine.Quantity, 1, '=');\n- FulfillmentOrderLine.\"Remaining Quantity\" := FulfillmentOrderLine.\"Remaining Quantity\" - Round(SalesShipmentLine.Quantity, 1, '=');\n- FulfillmentOrderLine.Modify();\n-\n- if TempFulfillmentOrderLine.Get(FulfillmentOrderLine.\"Shopify Fulfillment Order Id\", FulfillmentOrderLine.\"Shopify Fulfillm. Ord. Line Id\") then begin\n- TempFulfillmentOrderLine.\"Quantity to Fulfill\" += Round(SalesShipmentLine.Quantity, 1, '=');\n- TempFulfillmentOrderLine.Modify();\n- end else begin\n- TempFulfillmentOrderLine := FulfillmentOrderLine;\n- TempFulfillmentOrderLine.\"Quantity to Fulfill\" := Round(SalesShipmentLine.Quantity, 1, '=');\n- TempFulfillmentOrderLine.Insert();\n+ if FindFulfillmentOrderLine(SalesShipmentHeader, SalesShipmentLine, FulfillmentOrderLine) then\n+ if not IsThirdPartyFulfillmentOrder(FulfillmentOrderLine.\"Shopify Fulfillment Order Id\", Shop.Code) then begin\n+ FulfillmentOrderLine.\"Quantity to Fulfill\" += Round(SalesShipmentLine.Quantity, 1, '=');\n+ FulfillmentOrderLine.\"Remaining Quantity\" := FulfillmentOrderLine.\"Remaining Quantity\" - Round(SalesShipmentLine.Quantity, 1, '=');\n+ FulfillmentOrderLine.Modify();\n+\n+ if TempFulfillmentOrderLine.Get(FulfillmentOrderLine.\"Shopify Fulfillment Order Id\", FulfillmentOrderLine.\"Shopify Fulfillm. Ord. Line Id\") then begin\n+ TempFulfillmentOrderLine.\"Quantity to Fulfill\" += Round(SalesShipmentLine.Quantity, 1, '=');\n+ TempFulfillmentOrderLine.Modify();\n+ end else begin\n+ TempFulfillmentOrderLine := FulfillmentOrderLine;\n+ TempFulfillmentOrderLine.\"Quantity to Fulfill\" := Round(SalesShipmentLine.Quantity, 1, '=');\n+ TempFulfillmentOrderLine.Insert();\n+ end;\n+ // Accept pending fulfillment request before creating fulfillment\n+ AcceptPendingFulfillmentRequests(Shop, FulfillmentOrderLine.\"Shopify Fulfillment Order Id\", AssignedFulfillmentOrderIds);\n end;\n- // Accept pending fulfillment request before creating fulfillment\n- AcceptPendingFulfillmentRequests(Shop, FulfillmentOrderLine.\"Shopify Fulfillment Order Id\", AssignedFulfillmentOrderIds);\n- end;\n until SalesShipmentLine.Next() = 0;\n \n TempFulfillmentOrderLine.Reset();\n@@ -237,6 +238,19 @@ codeunit 30190 \"Shpfy Export Shipments\"\n exit(Shop.\"Send Shipping Confirmation\");\n end;\n \n+ local procedure IsThirdPartyFulfillmentOrder(FulfillmentOrderId: BigInteger; ShopCode: Code[20]): Boolean\n+ var\n+ FulfillmentOrderHeader: Record \"Shpfy FulFillment Order Header\";\n+ ShopLocation: Record \"Shpfy Shop Location\";\n+ SyncShopLocations: Codeunit \"Shpfy Sync Shop Locations\";\n+ begin\n+ if FulfillmentOrderHeader.Get(FulfillmentOrderId) then\n+ if ShopLocation.Get(ShopCode, FulfillmentOrderHeader.\"Shopify Location Id\") then\n+ if ShopLocation.\"Is Fulfillment Service\" then\n+ exit(ShopLocation.Name <> SyncShopLocations.GetFulfillmentServiceName());\n+ exit(false);\n+ end;\n+\n local procedure AcceptPendingFulfillmentRequests(Shop: Record \"Shpfy Shop\"; FulfillmentOrderId: BigInteger; var AssignedFulfillmentOrderIds: Dictionary of [BigInteger, Code[20]])\n var\n FulfillmentOrderHeader: Record \"Shpfy FulFillment Order Header\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139606'\nCodeunit 139606 Shpfy Shipping Test\n Testfunction UnitTestExportShipmentThirdParty Failure (6.797 seconds)\n Error:\n Assert.AreEqual failed. Expected:<0> (Integer). Actual:<1> (Integer). FulfillmentRequest count check.\n Call Stack:\n \"Library Assert\"(CodeUnit 130002).AreEqual line 3 - Library Assert by Microsoft version 27.2.0.0\n \"Shpfy Shipping Test\"(CodeUnit 139606).UnitTestExportShipmentThirdParty line 26 - Shopify Connector Test by Microsoft version 27.2.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.2.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.2.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.2.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.2.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.2.0.0", "metrics": {"execution_time": 150.0, "llm_duration": null, "turn_count": 11, "prompt_tokens": 388200, "completion_tokens": 7600, "tool_usage": {"view": 9, "grep": 7, "report_intent": 1, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} diff --git a/notebooks/result/bug-fix/copilot-cf-sonnet-4-6/base-out-run-27870241171.jsonl b/notebooks/result/bug-fix/copilot-cf-sonnet-4-6/base-out-run-27870241171.jsonl new file mode 100644 index 000000000..703954265 --- /dev/null +++ b/notebooks/result/bug-fix/copilot-cf-sonnet-4-6/base-out-run-27870241171.jsonl @@ -0,0 +1,101 @@ +{"instance_id": "microsoftInternal__NAV-210528", "project": "Sustainability", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al b/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al\nindex 335c0099..72aae3d6 100644\n--- a/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al\n+++ b/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al\n@@ -148,9 +148,18 @@ table 6217 \"Sustainability Setup\"\n \n trigger OnValidate()\n begin\n- if Rec.\"Enable Value Chain Tracking\" then\n+ if Rec.\"Enable Value Chain Tracking\" then begin\n if not ConfirmManagement.GetResponseOrDefault(ConfirmEnableValueChainTrackingQst, false) then\n Error('');\n+ if not Rec.\"Use Emissions In Purch. Doc.\" then\n+ Rec.Validate(\"Use Emissions In Purch. Doc.\", true);\n+ if not Rec.\"Item Emissions\" then\n+ Rec.Validate(\"Item Emissions\", true);\n+ if not Rec.\"Resource Emissions\" then\n+ Rec.Validate(\"Resource Emissions\", true);\n+ if not Rec.\"Work/Machine Center Emissions\" then\n+ Rec.Validate(\"Work/Machine Center Emissions\", true);\n+ end;\n end;\n }\n }\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-224009", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/CreateReservEntry.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Tracking/CreateReservEntry.Codeunit.al\nindex 00e35ec7..856e21fa 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/CreateReservEntry.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/CreateReservEntry.Codeunit.al\n@@ -86,8 +86,13 @@ codeunit 99000830 \"Create Reserv. Entry\"\n ReservEntry.Positive := (ReservEntry.\"Quantity (Base)\" > 0);\n if (ReservEntry.\"Quantity (Base)\" <> 0) and\n ((ReservEntry.Quantity = 0) or (ReservEntry.\"Qty. per Unit of Measure\" <> InsertReservEntry2.\"Qty. per Unit of Measure\"))\n- then\n- ReservEntry.Quantity := Round(ReservEntry.\"Quantity (Base)\" / ReservEntry.\"Qty. per Unit of Measure\", UOMMgt.QtyRndPrecision());\n+ then begin\n+ ReservEntry.Validate(\"Quantity (Base)\", ReservEntry.\"Quantity (Base)\");\n+ if QtyToHandleAndInvoiceIsSet then begin\n+ ReservEntry.\"Qty. to Handle (Base)\" := InsertReservEntry.\"Qty. to Handle (Base)\";\n+ ReservEntry.\"Qty. to Invoice (Base)\" := InsertReservEntry.\"Qty. to Invoice (Base)\";\n+ end;\n+ end;\n if not QtyToHandleAndInvoiceIsSet then begin\n ReservEntry.\"Qty. to Handle (Base)\" := ReservEntry.\"Quantity (Base)\";\n ReservEntry.\"Qty. to Invoice (Base)\" := ReservEntry.\"Quantity (Base)\";\ndiff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/ReservationEntry.Table.al b/App/Layers/W1/BaseApp/Inventory/Tracking/ReservationEntry.Table.al\nindex c1b41b15..a37726d6 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/ReservationEntry.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/ReservationEntry.Table.al\n@@ -914,7 +914,7 @@ table 337 \"Reservation Entry\"\n ReservEntry.SetFilter(\"Entry No.\", '<>%1', \"Entry No.\");\n ReservEntry.SetSourceFilter(\"Source Type\", \"Source Subtype\", \"Source ID\", \"Source Ref. No.\", false);\n ReservEntry.SetSourceFilter(\"Source Batch Name\", \"Source Prod. Order Line\");\n- ReservEntry.SetRange(\"Reservation Status\", \"Reservation Status\"::Reservation);\n+ ReservEntry.SetFilter(\"Reservation Status\", '%1|%2', \"Reservation Status\"::Reservation, \"Reservation Status\"::Tracking);\n ReservEntry.CalcSums(\"Quantity (Base)\", Quantity);\n exit(\n Round((ReservEntry.\"Quantity (Base)\" + \"Quantity (Base)\") / \"Qty. per Unit of Measure\", UOMMgt.QtyRndPrecision()) -\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-211710", "project": "Shopify", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al b/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al\nindex 773ba116..52bfd17f 100644\n--- a/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al\n+++ b/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al\n@@ -17,7 +17,7 @@ report 30118 \"Shpfy Suggest Payments\"\n dataitem(OrderTransaction; \"Shpfy Order Transaction\")\n {\n RequestFilterFields = \"Created At\";\n- DataItemTableView = sorting(Type) where(Type = filter(Capture | Sale | Refund));\n+ DataItemTableView = sorting(Type) where(Type = filter(Capture | Sale | Refund), Status = const(Success));\n \n trigger OnAfterGetRecord()\n begin\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-220984", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al\nindex 83bf3f09..fc62ac19 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al\n@@ -157,7 +157,7 @@ report 99001043 \"Exchange Production BOM Item\"\n CopyPositionFields(ProductionBOMLine2, ProductionBOMLine3);\n ShouldModifyProductionBOMLine := true;\n OnIntegerOnPostDataItemOnBeforeModifyProductionBOMLine(ProductionBOMLine, ShouldModifyProductionBOMLine);\n- if not ShouldModifyProductionBOMLine then begin\n+ if ShouldModifyProductionBOMLine then begin\n ProductionBOMLine.\"Ending Date\" := StartingDate - 1;\n ProductionBOMLine.Modify();\n end;\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-224668", "project": "EssentialBusinessHeadlines", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\nindex 831aa80e..10436a09 100644\n--- a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n+++ b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n@@ -677,7 +677,7 @@ codeunit 1437 \"Essential Bus. Headline Mgt.\"\n var\n EssentialBusinessHeadline: Record \"Ess. Business Headline Per Usr\";\n begin\n- if EssentialBusinessHeadline.Get(HeadlineName) then begin\n+ if EssentialBusinessHeadline.Get(HeadlineName, UserSecurityId()) then begin\n EssentialBusinessHeadline.Validate(\"Headline Visible\", false);\n EssentialBusinessHeadline.Modify();\n end;\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-218323", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al b/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al\nindex 88068be0..2b6ef143 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al\n@@ -641,6 +641,51 @@ report 20 \"Calc. and Post VAT Settlement\"\n Caption = 'Post';\n ToolTip = 'Specifies if you want the program to post the transfer to the VAT settlement account automatically. If you do not choose to post the transfer, the batch job only prints a test report, and Test Report (not Posted) appears on the report.';\n }\n+ field(JnlTemplateName; GenJnlBatch.\"Journal Template Name\")\n+ {\n+ ApplicationArea = Basic, Suite;\n+ Caption = 'Journal Template Name';\n+ TableRelation = \"Gen. Journal Template\";\n+ ToolTip = 'Specifies the name of the journal template that is used for the posting.';\n+ Visible = IsJournalTemplNameVisible;\n+\n+ trigger OnValidate()\n+ begin\n+ GenJnlBatch.Name := '';\n+ end;\n+ }\n+ field(JnlBatchName; GenJnlBatch.Name)\n+ {\n+ ApplicationArea = Basic, Suite;\n+ Caption = 'Journal Batch Name';\n+ Lookup = true;\n+ ToolTip = 'Specifies the name of the journal batch that is used for the posting.';\n+ Visible = IsJournalTemplNameVisible;\n+\n+ trigger OnLookup(var Text: Text): Boolean\n+ var\n+ GenJnlBatchLocal: Record \"Gen. Journal Batch\";\n+ begin\n+ GenJnlBatch.TestField(\"Journal Template Name\");\n+ GenJnlBatchLocal.FilterGroup(2);\n+ GenJnlBatchLocal.SetRange(\"Journal Template Name\", GenJnlBatch.\"Journal Template Name\");\n+ GenJnlBatchLocal.FilterGroup(0);\n+ GenJnlBatchLocal.\"Journal Template Name\" := GenJnlBatch.\"Journal Template Name\";\n+ GenJnlBatchLocal.Name := GenJnlBatch.Name;\n+ if PAGE.RunModal(0, GenJnlBatchLocal) = ACTION::LookupOK then begin\n+ Text := GenJnlBatchLocal.Name;\n+ exit(true);\n+ end;\n+ end;\n+\n+ trigger OnValidate()\n+ begin\n+ if GenJnlBatch.Name <> '' then begin\n+ GenJnlBatch.TestField(\"Journal Template Name\");\n+ GenJnlBatch.Get(GenJnlBatch.\"Journal Template Name\", GenJnlBatch.Name);\n+ end;\n+ end;\n+ }\n field(AmtsinAddReportingCurr; UseAmtsInAddCurr)\n {\n ApplicationArea = Basic, Suite;\n@@ -676,6 +721,11 @@ report 20 \"Calc. and Post VAT Settlement\"\n actions\n {\n }\n+\n+ trigger OnOpenPage()\n+ begin\n+ IsJournalTemplNameVisible := GLSetup.\"Journal Templ. Name Mandatory\";\n+ end;\n }\n \n labels\n@@ -714,6 +764,14 @@ report 20 \"Calc. and Post VAT Settlement\"\n if not ConfirmManagement.GetResponseOrDefault(Text003, true) then\n CurrReport.Quit();\n \n+ if GLSetup.\"Journal Templ. Name Mandatory\" then begin\n+ if GenJnlBatch.\"Journal Template Name\" = '' then\n+ Error(EnterJournalTemplateNameLbl, GenJnlBatch.FieldCaption(\"Journal Template Name\"));\n+ if GenJnlBatch.Name = '' then\n+ Error(EnterJournalTemplateNameLbl, GenJnlBatch.FieldCaption(Name));\n+ GenJnlBatch.Get(GenJnlBatch.\"Journal Template Name\", GenJnlBatch.Name);\n+ end;\n+\n VATPostingSetupFilter := \"VAT Posting Setup\".GetFilters();\n CreateVATDateFilter();\n Clear(GenJnlPostLine);\n@@ -725,13 +783,16 @@ report 20 \"Calc. and Post VAT Settlement\"\n var\n VATReportingDateMgt: Codeunit \"VAT Reporting Date Mgt\";\n begin\n+ GLSetup.Get();\n IsVATDateEnabled := VATReportingDateMgt.IsVATDateEnabled();\n+ IsJournalTemplNameVisible := GLSetup.\"Journal Templ. Name Mandatory\";\n end;\n \n var\n SourceCodeSetup: Record \"Source Code Setup\";\n GenJnlLine: Record \"Gen. Journal Line\";\n GenJnlLine2: Record \"Gen. Journal Line\";\n+ GenJnlBatch: Record \"Gen. Journal Batch\";\n GLEntry: Record \"G/L Entry\";\n VATEntry: Record \"VAT Entry\";\n TaxJurisdiction: Record \"Tax Jurisdiction\";\n@@ -755,6 +816,7 @@ report 20 \"Calc. and Post VAT Settlement\"\n HeaderText: Text[30];\n CountryRegionFilter: Text;\n IsVATDateEnabled: Boolean;\n+ IsJournalTemplNameVisible: Boolean;\n #pragma warning disable AA0074\n Text000: Label 'Enter the posting date.';\n Text001: Label 'Enter the document no.';\n@@ -773,6 +835,7 @@ report 20 \"Calc. and Post VAT Settlement\"\n #pragma warning restore AA0470\n #pragma warning restore AA0074\n EnterVATDateLbl: Label 'Enter the VAT Date';\n+ EnterJournalTemplateNameLbl: Label 'Enter the %1.', Comment = '%1 = Field Caption';\n CalcandPostVATSettlementCaptionLbl: Label 'Calc. and Post VAT Settlement';\n PageCaptionLbl: Label 'Page';\n TestReportnotpostedCaptionLbl: Label 'Test Report (Not Posted)';\n@@ -842,6 +905,10 @@ report 20 \"Calc. and Post VAT Settlement\"\n DimMgt: Codeunit DimensionManagement;\n DefaultDimSource: List of [Dictionary of [Integer, Code[20]]];\n begin\n+ if GenJnlBatch.\"Journal Template Name\" <> '' then begin\n+ GenJnlLine.\"Journal Template Name\" := GenJnlBatch.\"Journal Template Name\";\n+ GenJnlLine.\"Journal Batch Name\" := GenJnlBatch.Name;\n+ end;\n DimMgt.AddDimSource(DefaultDimSource, Database::\"G/L Account\", GenJnlLine.\"Account No.\");\n DimMgt.AddDimSource(DefaultDimSource, Database::\"G/L Account\", GenJnlLine.\"Bal. Account No.\");\n GenJnlLine.\"Dimension Set ID\" :=\n@@ -857,6 +924,12 @@ report 20 \"Calc. and Post VAT Settlement\"\n Initialized := NewInitialized;\n end;\n \n+ procedure SetGenJnlBatch(NewJournalTemplateName: Code[10]; NewJournalBatchName: Code[10])\n+ begin\n+ GenJnlBatch.\"Journal Template Name\" := NewJournalTemplateName;\n+ GenJnlBatch.Name := NewJournalBatchName;\n+ end;\n+\n local procedure CopyAmounts(var GenJournalLine: Record \"Gen. Journal Line\"; VATEntry: Record \"VAT Entry\")\n begin\n GenJournalLine.Amount := -VATEntry.Amount;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134992'\nCodeunit 134992 ERM Financial Reports IV\n Testfunction PostVATSettlementWhenJournalTemplateNameMandatoryIsEnabled Failure (10.923 seconds)\n Error:\n Enter the Journal Template Name.\n Call Stack:\n \"Calc. and Post VAT Settlement\"(Report 20).OnPreReport(Trigger) line 27 - Base Application by Microsoft version 27.0.0.0\n \"ERM Financial Reports IV\"(CodeUnit 134992).SaveCalcAndPostVATSettlementReport line 12 - Tests-ERM by Microsoft version 27.0.0.0\n \"ERM Financial Reports IV\"(CodeUnit 134992).PostVATSettlementWhenJournalTemplateNameMandatoryIsEnabled line 35 - Tests-ERM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"instance_id": "microsoftInternal__NAV-193853", "project": "EnforcedDigitalVouchers", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al b/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\nindex 72dc980e..9d38e511 100644\n--- a/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\n+++ b/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\n@@ -264,16 +264,40 @@ codeunit 5579 \"Digital Voucher Impl.\"\n end;\n \n local procedure FilterIncomingDocumentRecordFromRecordRef(var IncomingDocumentAttachment: Record \"Incoming Document Attachment\"; var IncomingDocument: Record \"Incoming Document\"; MainRecordRef: RecordRef): Boolean\n+ var\n+ GenJournalLine: Record \"Gen. Journal Line\";\n begin\n Clear(IncomingDocument);\n if not IncomingDocument.FindFromIncomingDocumentEntryNo(MainRecordRef, IncomingDocument) then\n IncomingDocument.FindByDocumentNoAndPostingDate(MainRecordRef, IncomingDocument);\n- if IncomingDocument.\"Entry No.\" = 0 then\n- exit(false);\n+ if IncomingDocument.\"Entry No.\" = 0 then begin\n+ if MainRecordRef.Number() = Database::\"Gen. Journal Line\" then begin\n+ MainRecordRef.SetTable(GenJournalLine);\n+ if not FindIncomingDocumentFromRelatedGenJnlLines(IncomingDocument, GenJournalLine) then\n+ exit(false);\n+ end else\n+ exit(false);\n+ end;\n IncomingDocumentAttachment.SetRange(\"Incoming Document Entry No.\", IncomingDocument.\"Entry No.\");\n exit(true);\n end;\n \n+ local procedure FindIncomingDocumentFromRelatedGenJnlLines(var IncomingDocument: Record \"Incoming Document\"; GenJournalLine: Record \"Gen. Journal Line\"): Boolean\n+ var\n+ RelatedGenJournalLine: Record \"Gen. Journal Line\";\n+ begin\n+ if (GenJournalLine.\"Document No.\" = '') or (GenJournalLine.\"Posting Date\" = 0D) then\n+ exit(false);\n+ RelatedGenJournalLine.SetRange(\"Journal Template Name\", GenJournalLine.\"Journal Template Name\");\n+ RelatedGenJournalLine.SetRange(\"Journal Batch Name\", GenJournalLine.\"Journal Batch Name\");\n+ RelatedGenJournalLine.SetRange(\"Document No.\", GenJournalLine.\"Document No.\");\n+ RelatedGenJournalLine.SetRange(\"Posting Date\", GenJournalLine.\"Posting Date\");\n+ RelatedGenJournalLine.SetFilter(\"Incoming Document Entry No.\", '<>%1', 0);\n+ if not RelatedGenJournalLine.FindFirst() then\n+ exit(false);\n+ exit(IncomingDocument.Get(RelatedGenJournalLine.\"Incoming Document Entry No.\"));\n+ end;\n+\n local procedure AttachGenJnlLinePDFToIncomingDocument(RecRef: RecordRef)\n var\n GenJournalLine: Record \"Gen. Journal Line\";\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-223493", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al b/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al\nindex 6a5f0a88..626b7429 100644\n--- a/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al\n@@ -56,6 +56,7 @@ codeunit 1409 \"Sales Inv. Header - Edit\"\n CustLedgerEntry.Description := SalesInvoiceHeader.\"Posting Description\";\n CustLedgerEntry.\"Promised Pay Date\" := SalesInvoiceHeader.\"Promised Pay Date\";\n CustLedgerEntry.\"Due Date\" := SalesInvoiceHeader.\"Due Date\";\n+ CustLedgerEntry.\"Your Reference\" := SalesInvoiceHeader.\"Your Reference\";\n if CustLedgerEntry.\"Dispute Status\" <> '' then begin\n if DisputeStatus.get(CustLedgerEntry.\"Dispute Status\") then\n if (DisputeStatus.\"Overwrite on hold\") and ClearOnHold(SalesInvoiceHeader) then\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134658'\nCodeunit 134658 Edit Posted Documents\n Testfunction VerifyYourReferenceUpdatedInCustLedgerEntry Failure (24.257 seconds)\n Error:\n Assert.AreEqual failed. Expected:<8ae89fa103364ae9a1041488ebdc3412436> (Text). Actual:<> (Text). Customer Ledger Entry Your Reference not updated.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"Edit Posted Documents\"(CodeUnit 134658).VerifyYourReferenceUpdatedInCustLedgerEntry line 32 - Tests-ERM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"instance_id": "microsoftInternal__NAV-193649", "project": "Shopify", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": false, "output": "diff --git a/App/Apps/W1/Shopify/app/src/Invoicing/Codeunits/ShpfyCopyDocumentMgt.Codeunit.al b/App/Apps/W1/Shopify/app/src/Invoicing/Codeunits/ShpfyCopyDocumentMgt.Codeunit.al\nnew file mode 100644\nindex 00000000..11eaa40a\n--- /dev/null\n+++ b/App/Apps/W1/Shopify/app/src/Invoicing/Codeunits/ShpfyCopyDocumentMgt.Codeunit.al\n@@ -0,0 +1,21 @@\n+namespace Microsoft.Integration.Shopify;\n+\n+using Microsoft.Sales.Document;\n+using Microsoft.Sales.History;\n+\n+/// \n+/// Codeunit Shpfy Copy Document Mgt. (ID 30366).\n+/// Clears Shopify Order fields when copying sales documents to prevent\n+/// copied invoices from being excluded from the Sync Posted Invoices process.\n+/// \n+codeunit 30366 \"Shpfy Copy Document Mgt.\"\n+{\n+ Access = Internal;\n+\n+ [EventSubscriber(ObjectType::Codeunit, Codeunit::\"Copy Document Mgt.\", 'OnCopySalesDocOnAfterTransferPostedInvoiceFields', '', false, false)]\n+ local procedure ClearShopifyOrderInfoOnCopyFromPostedInvoice(var ToSalesHeader: Record \"Sales Header\"; SalesInvoiceHeader: Record \"Sales Invoice Header\"; OldSalesHeader: Record \"Sales Header\")\n+ begin\n+ ToSalesHeader.\"Shpfy Order Id\" := 0;\n+ ToSalesHeader.\"Shpfy Order No.\" := '';\n+ end;\n+}\n", "error_message": "Build or publish failed for App\\Apps\\W1\\Shopify\\app:\nC:\\Source\\App\\Apps\\W1\\Shopify\\app\\src\\Invoicing\\Codeunits\\ShpfyCopyDocumentMgt.Codeunit.al(15,54): error AL0118: The name '\"Copy Document Mgt.\"' does not exist in the current context."} +{"instance_id": "microsoftInternal__NAV-220036", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/Reminder.Page.al b/App/Layers/W1/BaseApp/Sales/Reminder/Reminder.Page.al\nindex 8810e93d..00981393 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/Reminder.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/Reminder.Page.al\n@@ -51,6 +51,9 @@ page 434 Reminder\n trigger OnValidate()\n begin\n ContactCustomer.GetPrimaryContact(Rec.\"Customer No.\", PrimaryContact);\n+ if PrimaryContact.\"E-Mail\" = '' then\n+ if ContactCustomer.Get(Rec.\"Customer No.\") then\n+ PrimaryContact.\"E-Mail\" := ContactCustomer.\"E-Mail\";\n end;\n }\n field(Name; Rec.Name)\n@@ -544,6 +547,9 @@ page 434 Reminder\n trigger OnAfterGetRecord()\n begin\n ContactCustomer.GetPrimaryContact(Rec.\"Customer No.\", PrimaryContact);\n+ if PrimaryContact.\"E-Mail\" = '' then\n+ if ContactCustomer.Get(Rec.\"Customer No.\") then\n+ PrimaryContact.\"E-Mail\" := ContactCustomer.\"E-Mail\";\n end;\n \n var\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134905'\nCodeunit 134905 ERM Issued Reminder Addnl Fee\n Testfunction VerifyEmailOnReminderPageWhenCustomerHasNoContacts Success (20.414 seconds)\n\u001b[32m[12:57:31] Tests passed for Codeunit 134905\u001b[0m\nSetting test codeunit range '134825'\nCodeunit 134825 UT Customer Table\n Testfunction GetPrimaryConactCustomerWithoutContact Failure (2.39 seconds)\n Error:\n Assert.IsTrue failed. Contact No. should not be empty\n Call Stack:\n Assert(CodeUnit 130000).IsTrue line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"UT Customer Table\"(CodeUnit 134825).GetPrimaryConactCustomerWithoutContact line 15 - Tests-Misc by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"instance_id": "microsoftInternal__NAV-188438", "project": "Sustainability", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al b/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al\nindex 4644c873..e3cd8fe4 100644\n--- a/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al\n+++ b/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al\n@@ -88,7 +88,7 @@ codeunit 6218 \"Sustainability Calc. Mgt.\"\n CollectAmountFromGLEntry.LookupMode(true);\n if CollectAmountFromGLEntry.RunModal() = Action::LookupOK then begin\n CollectAmountFromGLEntry.GetDates(FromDate, ToDate);\n- SustainabilityJnlLine.Validate(\"Custom Amount\", GetCollectableGLAmount(SustainAccountCategory, FromDate, ToDate));\n+ SustainabilityJnlLine.Validate(\"Custom Amount\", Abs(GetCollectableGLAmount(SustainAccountCategory, FromDate, ToDate)));\n end;\n end;\n \n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '148181'\nCodeunit 148181 Sustainability Journal Test\n Testfunction TestCustomAmountIsPositiveForNegativeTotalOfGL Failure (4.844 seconds)\n Error:\n Assert.AreEqual failed. Expected:<248.67> (Decimal). Actual:<-248.67> (Decimal). The custom amount must be positive.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"Sustainability Journal Test\"(CodeUnit 148181).TestCustomAmountIsPositiveForNegativeTotalOfGL line 31 - Sustainability Tests by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"instance_id": "microsoftInternal__NAV-224447", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/SendReminder.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Reminder/SendReminder.Codeunit.al\nindex 94cce9d1..bc477439 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/SendReminder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/SendReminder.Codeunit.al\n@@ -106,6 +106,20 @@ codeunit 545 \"Send Reminder\"\n IssuedReminderHeader.Modify();\n end;\n \n+ [EventSubscriber(ObjectType::Table, Database::\"Report Selections\", 'OnAfterIsCustomerAccount', '', false, false)]\n+ local procedure HandleOnAfterIsCustomerAccount(DocumentTableId: Integer; var IsCustomer: Boolean)\n+ begin\n+ if DocumentTableId = Database::\"Issued Reminder Header\" then\n+ IsCustomer := true;\n+ end;\n+\n+ [EventSubscriber(ObjectType::Table, Database::\"Report Selections\", 'OnSendEmailDirectlyOnAfterSetFieldName', '', false, false)]\n+ local procedure HandleOnSendEmailDirectlyOnAfterSetFieldName(DocumentTableId: Integer; var FieldName: Text)\n+ begin\n+ if DocumentTableId = Database::\"Issued Reminder Header\" then\n+ FieldName := 'Customer No.';\n+ end;\n+\n var\n ReminderSentByEmailTxt: Label 'Yes,No';\n MarkAsSentQst: Label 'Was reminder sent by email?';\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-226875", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\nindex fa043e01..5e8c6d67 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n@@ -154,6 +154,7 @@ page 254 \"Purchase Journal\"\n trigger OnValidate()\n begin\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ SetVendorName();\n EnableApplyEntriesAction();\n CurrPage.SaveRecord();\n end;\n@@ -166,11 +167,12 @@ page 254 \"Purchase Journal\"\n trigger OnValidate()\n begin\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ SetVendorName();\n Rec.ShowShortcutDimCode(ShortcutDimCode);\n CurrPage.SaveRecord();\n end;\n }\n- field(\"\"; AccName)\n+ field(\"\"; VendorName)\n {\n ApplicationArea = Basic, Suite;\n Caption = 'Vendor Name';\n@@ -390,6 +392,7 @@ page 254 \"Purchase Journal\"\n trigger OnValidate()\n begin\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ SetVendorName();\n Rec.ShowShortcutDimCode(ShortcutDimCode);\n CurrPage.SaveRecord();\n end;\n@@ -1494,6 +1497,7 @@ page 254 \"Purchase Journal\"\n begin\n HasIncomingDocument := Rec.\"Incoming Document Entry No.\" <> 0;\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ SetVendorName();\n UpdateBalance();\n EnableApplyEntriesAction();\n SetControlAppearance();\n@@ -1508,6 +1512,7 @@ page 254 \"Purchase Journal\"\n Rec.ShowShortcutDimCode(ShortcutDimCode);\n DocumentAmount := Abs(Rec.Amount);\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ SetVendorName();\n CurrPage.IncomingDocAttachFactBox.PAGE.SetCurrentRecordID(Rec.RecordId());\n ApprovalMgmt.GetGenJnlLineApprovalStatus(Rec, GenJnlLineApprovalStatus, EnabledGenJnlLineWorkflowsExist);\n end;\n@@ -1639,6 +1644,7 @@ page 254 \"Purchase Journal\"\n ShortcutDimCode: array[8] of Code[20];\n AccName: Text[100];\n BalAccName: Text[100];\n+ VendorName: Text[100];\n DimVisible1: Boolean;\n DimVisible2: Boolean;\n DimVisible3: Boolean;\n@@ -1668,6 +1674,17 @@ page 254 \"Purchase Journal\"\n (Rec.\"Bal. Account Type\" in [Rec.\"Bal. Account Type\"::Customer, Rec.\"Bal. Account Type\"::Vendor]);\n end;\n \n+ local procedure SetVendorName()\n+ begin\n+ if Rec.\"Account Type\" = Rec.\"Account Type\"::Vendor then\n+ VendorName := AccName\n+ else\n+ if Rec.\"Bal. Account Type\" = Rec.\"Bal. Account Type\"::Vendor then\n+ VendorName := BalAccName\n+ else\n+ VendorName := '';\n+ end;\n+\n local procedure CurrentJnlBatchNameOnAfterVali()\n begin\n CurrPage.SaveRecord();\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-226223", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/Currency/ExchRateAdjmtProcess.Codeunit.al b/App/Layers/W1/BaseApp/Finance/Currency/ExchRateAdjmtProcess.Codeunit.al\nindex 467c235c..bdb56817 100644\n--- a/App/Layers/W1/BaseApp/Finance/Currency/ExchRateAdjmtProcess.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/Currency/ExchRateAdjmtProcess.Codeunit.al\n@@ -308,6 +308,8 @@ codeunit 699 \"Exch. Rate Adjmt. Process\"\n Window.Open(AdjustingVATEntriesTxt + VATEntryProgressBarTxt);\n \n VATEntryNoTotal := VATEntry.Count();\n+ if VATEntryNoTotal = 0 then\n+ exit;\n SetVATEntryFilters(VATEntry, ExchRateAdjmtParameters.\"Start Date\", ExchRateAdjmtParameters.\"End Date\");\n if VATPostingSetup.FindSet() then\n repeat\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-221877", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al b/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al\nindex 1c8fcc9e..c8add8bb 100644\n--- a/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al\n@@ -1580,6 +1580,8 @@ table 5901 \"Service Item Line\"\n if not IsHandled then\n ServOrderMgt.UpdatePriority(Rec, false);\n \n+ UpdateServiceOrderHeaderStatus();\n+\n if \"Line No.\" = 0 then\n LendLoanerWithConfirmation(false);\n \n@@ -2849,6 +2851,53 @@ table 5901 \"Service Item Line\"\n begin\n end;\n \n+ local procedure UpdateServiceOrderHeaderStatus()\n+ begin\n+ if \"Repair Status Code\" = '' then\n+ exit;\n+\n+ RepairStatus.Get(\"Repair Status Code\");\n+ RepairStatusPriority := RepairStatus.Priority;\n+ UseLineNo := \"Line No.\";\n+ ServItemLine.Reset();\n+ ServItemLine.SetRange(\"Document Type\", \"Document Type\");\n+ ServItemLine.SetRange(\"Document No.\", \"Document No.\");\n+ ServItemLine.SetFilter(\"Line No.\", '<>%1', \"Line No.\");\n+ ServItemLine.SetFilter(\"Repair Status Code\", '<>%1', '');\n+ if ServItemLine.Find('-') then\n+ repeat\n+ RepairStatus2.Get(ServItemLine.\"Repair Status Code\");\n+ if RepairStatus2.Priority < RepairStatusPriority then begin\n+ RepairStatusPriority := RepairStatus2.Priority;\n+ UseLineNo := ServItemLine.\"Line No.\";\n+ end;\n+ until ServItemLine.Next() = 0;\n+ if \"Line No.\" <> UseLineNo then begin\n+ ServItemLine.Get(\"Document Type\", \"Document No.\", UseLineNo);\n+ RepairStatus.Get(ServItemLine.\"Repair Status Code\");\n+ end else\n+ RepairStatus.Get(\"Repair Status Code\");\n+ ServHeader2.Get(Rec.\"Document Type\", Rec.\"Document No.\");\n+ ServHeader3 := ServHeader2;\n+ if ServHeader2.Status <> RepairStatus.\"Service Order Status\" then begin\n+ ServHeader2.SetValidatingFromLines(true);\n+ if ServHeader2.\"Finishing Date\" = 0D then\n+ ServHeader2.Validate(\"Finishing Date\", \"Finishing Date\");\n+ OnValidateRepairStatusCodeOnBeforeValidateStatus(Rec, ServHeader2);\n+ ServHeader2.Validate(Status, RepairStatus.\"Service Order Status\");\n+ if not (ServHeader2.Status = ServHeader2.Status::Finished) then begin\n+ ServHeader2.\"Finishing Date\" := 0D;\n+ ServHeader2.\"Finishing Time\" := 0T;\n+ ServHeader2.\"Service Time (Hours)\" := 0;\n+ end;\n+ ServHeader2.UpdateServiceOrderChangeLog(ServHeader3);\n+ ServHeader2.Modify();\n+ if ServHeader2.Status = ServHeader2.Status::Finished then\n+ UpdateStartFinishDateTime(\"Document Type\", \"Document No.\", \"Line No.\", \"Starting Date\", \"Starting Time\",\n+ \"Finishing Date\", \"Finishing Time\", false);\n+ end;\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnAfterSetUpNewLine(var ServiceItemLine: Record \"Service Item Line\")\n begin\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-219082", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Service/Document/ServiceOrder.Page.al b/App/Layers/W1/BaseApp/Service/Document/ServiceOrder.Page.al\nindex 130ccae8..075f5ac1 100644\n--- a/App/Layers/W1/BaseApp/Service/Document/ServiceOrder.Page.al\n+++ b/App/Layers/W1/BaseApp/Service/Document/ServiceOrder.Page.al\n@@ -1356,6 +1356,7 @@ page 5900 \"Service Order\"\n ServDocumentPrint: Codeunit \"Serv. Document Print\";\n begin\n CurrPage.Update(true);\n+ Commit();\n ServDocumentPrint.PrintServiceHeader(Rec);\n end;\n }\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-216918", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\nindex d541dd08..36caba61 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\n@@ -451,6 +451,7 @@ codeunit 1004 \"Job Transfer Line\"\n Job: Record Job;\n JobTask: Record \"Job Task\";\n NonDeductibleVAT: Codeunit \"Non-Deductible VAT\";\n+ NonDeductibleVATAmtInJobCurrency: Decimal;\n begin\n OnBeforeFromGenJnlLineToJnlLine(JobJnlLine, GenJnlLine);\n \n@@ -498,18 +499,21 @@ codeunit 1004 \"Job Transfer Line\"\n JobJnlLine.\"Total Cost (LCY)\" := GenJnlLine.\"Job Total Cost (LCY)\";\n JobJnlLine.\"Total Cost\" := GenJnlLine.\"Job Total Cost\";\n \n- if NonDeductibleVAT.UseNonDeductibleVATAmountForJobCost() then\n+ if NonDeductibleVAT.UseNonDeductibleVATAmountForJobCost() then begin\n+ GetCurrencyRounding(JobJnlLine.\"Currency Code\");\n+ NonDeductibleVATAmtInJobCurrency := GetNonDeductibleVATAmtInJobCurrency(GenJnlLine, JobJnlLine);\n if JobJnlLine.\"Unit Cost\" > 0 then begin\n JobJnlLine.\"Unit Cost (LCY)\" += Abs(Round(GenJnlLine.\"Non-Deductible VAT Amount LCY\" / JobJnlLine.Quantity));\n- JobJnlLine.\"Unit Cost\" += Abs(Round(GenJnlLine.\"Non-Deductible VAT Amount\" / JobJnlLine.Quantity));\n+ JobJnlLine.\"Unit Cost\" += Abs(Round(NonDeductibleVATAmtInJobCurrency / JobJnlLine.Quantity));\n JobJnlLine.\"Total Cost (LCY)\" += Abs(GenJnlLine.\"Non-Deductible VAT Amount LCY\");\n- JobJnlLine.\"Total Cost\" += Abs(GenJnlLine.\"Non-Deductible VAT Amount\");\n+ JobJnlLine.\"Total Cost\" += Abs(NonDeductibleVATAmtInJobCurrency);\n end else begin\n JobJnlLine.\"Unit Cost (LCY)\" += Round(GenJnlLine.\"Non-Deductible VAT Amount LCY\" / JobJnlLine.Quantity);\n- JobJnlLine.\"Unit Cost\" += Round(GenJnlLine.\"Non-Deductible VAT Amount\" / JobJnlLine.Quantity);\n+ JobJnlLine.\"Unit Cost\" += Round(NonDeductibleVATAmtInJobCurrency / JobJnlLine.Quantity);\n JobJnlLine.\"Total Cost (LCY)\" += GenJnlLine.\"Non-Deductible VAT Amount LCY\";\n- JobJnlLine.\"Total Cost\" += GenJnlLine.\"Non-Deductible VAT Amount\";\n+ JobJnlLine.\"Total Cost\" += NonDeductibleVATAmtInJobCurrency;\n end;\n+ end;\n \n JobJnlLine.\"Unit Price (LCY)\" := GenJnlLine.\"Job Unit Price (LCY)\";\n JobJnlLine.\"Unit Price\" := GenJnlLine.\"Job Unit Price\";\n@@ -886,6 +890,21 @@ codeunit 1004 \"Job Transfer Line\"\n end;\n end;\n \n+ local procedure GetNonDeductibleVATAmtInJobCurrency(GenJnlLine: Record \"Gen. Journal Line\"; JobJnlLine: Record \"Job Journal Line\"): Decimal\n+ begin\n+ if JobJnlLine.\"Currency Code\" = '' then\n+ exit(GenJnlLine.\"Non-Deductible VAT Amount LCY\");\n+ if JobJnlLine.\"Currency Code\" = GenJnlLine.\"Currency Code\" then\n+ exit(GenJnlLine.\"Non-Deductible VAT Amount\");\n+ exit(Round(\n+ CurrencyExchRate.ExchangeAmtLCYToFCY(\n+ GenJnlLine.\"Posting Date\",\n+ JobJnlLine.\"Currency Code\",\n+ GenJnlLine.\"Non-Deductible VAT Amount LCY\",\n+ JobJnlLine.\"Currency Factor\"),\n+ Currency.\"Amount Rounding Precision\"));\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnAfterIsCreatedFromJob(var SalesLine: Record \"Sales Line\"; var Result: Boolean)\n begin\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134284'\nCodeunit 134284 Non Ded. VAT Misc.\n Testfunction JobJnlLineWithNonDeductNormalVATInFCYFromGenJnlLine Failure (5.114 seconds)\n Error:\n Assert.AreEqual failed. Expected:<10.76> (Decimal). Actual:<10.31> (Decimal). Unit Cost (LCY) with Non-Deductible VAT amount is not correct in Job Journal Line.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"Non Ded. VAT Misc.\"(CodeUnit 134284).JobJnlLineWithNonDeductNormalVATInFCYFromGenJnlLine line 32 - Tests-VAT by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"instance_id": "microsoftInternal__NAV-218856", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Service/Contract/ServiceContractHeader.Table.al b/App/Layers/W1/BaseApp/Service/Contract/ServiceContractHeader.Table.al\nindex 4f315c8f..01b1370e 100644\n--- a/App/Layers/W1/BaseApp/Service/Contract/ServiceContractHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Service/Contract/ServiceContractHeader.Table.al\n@@ -2241,6 +2241,7 @@ table 5965 \"Service Contract Header\"\n Cust: Record Customer;\n Cont: Record Contact;\n IsHandled: Boolean;\n+ ContactBusinessRelationFound: Boolean;\n begin\n IsHandled := false;\n OnBeforeUpdateCust(Rec, ContactNo, IsHandled);\n@@ -2265,7 +2266,11 @@ table 5965 \"Service Contract Header\"\n exit;\n end;\n \n- if ContBusinessRelation.FindByContact(ContBusinessRelation.\"Link to Table\"::Customer, Cont.\"Company No.\") then begin\n+ if Cont.Type = Cont.Type::Person then\n+ ContactBusinessRelationFound := ContBusinessRelation.FindByContact(ContBusinessRelation.\"Link to Table\"::Customer, Cont.\"No.\");\n+ if not ContactBusinessRelationFound then\n+ ContactBusinessRelationFound := ContBusinessRelation.FindByContact(ContBusinessRelation.\"Link to Table\"::Customer, Cont.\"Company No.\");\n+ if ContactBusinessRelationFound then begin\n if (\"Customer No.\" <> '') and\n (\"Customer No.\" <> ContBusinessRelation.\"No.\")\n then\n@@ -2289,6 +2294,7 @@ table 5965 \"Service Contract Header\"\n ContBusinessRelation: Record \"Contact Business Relation\";\n Cust: Record Customer;\n Cont: Record Contact;\n+ ContactBusinessRelationFound: Boolean;\n begin\n if Cont.Get(ContactNo) then begin\n \"Bill-to Contact No.\" := Cont.\"No.\";\n@@ -2305,7 +2311,11 @@ table 5965 \"Service Contract Header\"\n end;\n \n OnUpdateBillToCustOnBeforeContBusinessRelationFindByContact(Rec, Cust, Cont);\n- if ContBusinessRelation.FindByContact(ContBusinessRelation.\"Link to Table\"::Customer, Cont.\"Company No.\") then begin\n+ if Cont.Type = Cont.Type::Person then\n+ ContactBusinessRelationFound := ContBusinessRelation.FindByContact(ContBusinessRelation.\"Link to Table\"::Customer, Cont.\"No.\");\n+ if not ContactBusinessRelationFound then\n+ ContactBusinessRelationFound := ContBusinessRelation.FindByContact(ContBusinessRelation.\"Link to Table\"::Customer, Cont.\"Company No.\");\n+ if ContactBusinessRelationFound then begin\n if \"Bill-to Customer No.\" = '' then begin\n SkipBillToContact := true;\n Validate(\"Bill-to Customer No.\", ContBusinessRelation.\"No.\");\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136102'\nCodeunit 136102 Service Contracts\n Testfunction ChangeCustomerOfTypePeronInServiceContract Failure (6.283 seconds)\n Error:\n Contact CT000024 CT000024 is related to a different company than customer C00010.\n Call Stack:\n \"Service Contract Header\"(Table 5965).\"Bill-to Contact No. - OnValidate\"(Trigger) line 21 - Base Application by Microsoft version 27.0.0.0\n \"Service Contract Header\"(Table 5965).UpdateCust line 51 - Base Application by Microsoft version 27.0.0.0\n ServContractManagement(CodeUnit 5940).ChangeCustNoOnServContract line 46 - Base Application by Microsoft version 27.0.0.0\n \"Service Contracts\"(CodeUnit 136102).ChangeCustomerOfTypePeronInServiceContract line 34 - Tests-SCM-Service by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"instance_id": "microsoftInternal__NAV-215225", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobJournalLine.Table.al b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobJournalLine.Table.al\nindex fb253f0b..52528c14 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobJournalLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobJournalLine.Table.al\n@@ -1662,13 +1662,12 @@ table 210 \"Job Journal Line\"\n begin\n Quantity := 0;\n \"Quantity (Base)\" := 0;\n- \"Direct Unit Cost (LCY)\" := 0;\n- \"Unit Cost (LCY)\" := 0;\n- \"Unit Cost\" := 0;\n+ // Unit cost and price fields are intentionally preserved so that when a new\n+ // quantity is entered (e.g. on a Variable recurring journal line after posting),\n+ // the total cost and price are recalculated correctly without requiring the user\n+ // to re-validate the resource or item. Only derived total and line amounts are cleared.\n \"Total Cost (LCY)\" := 0;\n \"Total Cost\" := 0;\n- \"Unit Price (LCY)\" := 0;\n- \"Unit Price\" := 0;\n \"Total Price (LCY)\" := 0;\n \"Total Price\" := 0;\n \"Line Amount (LCY)\" := 0;\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-213629", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al\nindex 162d6cc5..544c740a 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al\n@@ -192,6 +192,7 @@ codeunit 1006 \"Copy Job\"\n TargetJobPlanningLine.\"Completely Picked\" := false;\n TargetJobPlanningLine.\"Ledger Entry No.\" := 0;\n TargetJobPlanningLine.\"Ledger Entry Type\" := TargetJobPlanningLine.\"Ledger Entry Type\"::\" \";\n+ TargetJobPlanningLine.\"System-Created Entry\" := false;\n OnCopyJobPlanningLinesOnBeforeTargetJobPlanningLineInsert(TargetJobPlanningLine, SourceJobPlanningLine);\n TargetJobPlanningLine.Insert(true);\n OnCopyJobPlanningLinesOnAfterTargetJobPlanningLineInsert(TargetJobPlanningLine, SourceJobPlanningLine);\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-213524", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/Intercompany/ICNavigation.Codeunit.al b/App/Layers/W1/BaseApp/Finance/Intercompany/ICNavigation.Codeunit.al\nindex 92bf43b1..ae0e6318 100644\n--- a/App/Layers/W1/BaseApp/Finance/Intercompany/ICNavigation.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/Intercompany/ICNavigation.Codeunit.al\n@@ -111,6 +111,18 @@ codeunit 437 \"IC Navigation\"\n exit(NavigateToSalesInvoice(DocumentNo, ICPartnerCode));\n end;\n \n+ local procedure NavigateToSalesCreditMemo(DocumentNo: Code[20]): Boolean\n+ var\n+ SalesCrMemoHeader: Record \"Sales Cr. Memo Header\";\n+ PostedSalesCreditMemo: Page \"Posted Sales Credit Memo\";\n+ begin\n+ if not SalesCrMemoHeader.Get(DocumentNo) then\n+ exit(false);\n+ PostedSalesCreditMemo.SetRecord(SalesCrMemoHeader);\n+ PostedSalesCreditMemo.Run();\n+ exit(true);\n+ end;\n+\n local procedure NavigateToSalesDocument(DocumentNo: Code[20]; ICDirectionType: Enum \"IC Direction Type\"; ICPartnerCode: Code[20]; DocumentType: Enum \"IC Transaction Document Type\"): Boolean\n var\n ShouldNavigateToDoc: Boolean;\n@@ -120,6 +132,8 @@ codeunit 437 \"IC Navigation\"\n exit(NavigateToSalesOrderDocument(DocumentNo, ICDirectionType, ICPartnerCode));\n DocumentType::Invoice:\n exit(NavigateToSalesInvoice(DocumentNo));\n+ DocumentType::\"Credit Memo\":\n+ exit(NavigateToSalesCreditMemo(DocumentNo));\n else begin\n ShouldNavigateToDoc := false;\n OnNavigateToSalesDocumentOnAfterCheckDocumentType(DocumentNo, ICDirectionType, ICPartnerCode, DocumentType, ShouldNavigateToDoc);\n@@ -223,6 +237,28 @@ codeunit 437 \"IC Navigation\"\n exit(NavigateToPurchaseInvoice(DocumentNo, ICPartnerCode));\n end;\n \n+ local procedure NavigateToPurchaseCreditMemo(DocumentNo: Code[20]; ICPartnerCode: Code[20]): Boolean\n+ var\n+ Vendor: Record Vendor;\n+ PurchCrMemoHdr: Record \"Purch. Cr. Memo Hdr.\";\n+ PostedPurchaseCreditMemo: Page \"Posted Purchase Credit Memo\";\n+ begin\n+ Vendor.SetRange(\"IC Partner Code\", ICPartnerCode);\n+ if not Vendor.FindSet() then\n+ exit(false);\n+ repeat\n+ PurchCrMemoHdr.Reset();\n+ PurchCrMemoHdr.SetRange(\"Buy-from Vendor No.\", Vendor.\"No.\");\n+ PurchCrMemoHdr.SetRange(\"Vendor Cr. Memo No.\", DocumentNo);\n+ if PurchCrMemoHdr.FindFirst() then begin\n+ PostedPurchaseCreditMemo.SetRecord(PurchCrMemoHdr);\n+ PostedPurchaseCreditMemo.Run();\n+ exit(true);\n+ end;\n+ until Vendor.Next() = 0;\n+ exit(false);\n+ end;\n+\n local procedure NavigateToPurchaseDocument(DocumentNo: Code[20]; ICDirectionType: Enum \"IC Direction Type\"; ICPartnerCode: Code[20]; DocumentType: Enum \"IC Transaction Document Type\"): Boolean\n var\n OpenDoc: Boolean;\n@@ -232,6 +268,8 @@ codeunit 437 \"IC Navigation\"\n exit(NavigateToPurchaseOrderDocument(DocumentNo, ICDirectionType, ICPartnerCode));\n DocumentType::Invoice:\n exit(NavigateToPurchaseInvoiceDocument(DocumentNo, ICPartnerCode));\n+ DocumentType::\"Credit Memo\":\n+ exit(NavigateToPurchaseCreditMemo(DocumentNo, ICPartnerCode));\n else begin\n OnNavigateToPurchaseDocumentOnDocumentTypeCaseElse(DocumentNo, ICDirectionType, ICPartnerCode, DocumentType, OpenDoc);\n exit(OpenDoc);\n", "error_message": "Build or publish failed for App\\Layers\\W1\\BaseApp:\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Finance\\Intercompany\\ICNavigation.Codeunit.al(116,28): error AL0185: Table 'Sales Cr. Memo Header' is missing"} +{"instance_id": "microsoftInternal__NAV-213741", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Costing/InventoryPostingToGL.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Costing/InventoryPostingToGL.Codeunit.al\nindex 9b9c14ed..76b82cea 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Costing/InventoryPostingToGL.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Costing/InventoryPostingToGL.Codeunit.al\n@@ -564,6 +564,14 @@ codeunit 5802 \"Inventory Posting To G/L\"\n TempGlobalInvtPostingBuffer.\"Account Type\"::Inventory,\n TempGlobalInvtPostingBuffer.\"Account Type\"::\"Inventory Adjmt.\",\n CostToPost, CostToPostACY, false);\n+ ValueEntry.\"Entry Type\"::\"Direct Cost - Non Inventory\":\n+ if (CostToPost <> 0) or (CostToPostACY <> 0) then\n+ if MfgCostCalcMgt.CanIncNonInvCostIntoProductionItem() then\n+ InitInvtPostBuf(\n+ ValueEntry,\n+ TempGlobalInvtPostingBuffer.\"Account Type\"::Inventory,\n+ TempGlobalInvtPostingBuffer.\"Account Type\"::\"Direct Cost Non-Inventory Applied\",\n+ CostToPost, CostToPostACY, false);\n ValueEntry.\"Entry Type\"::\"Indirect Cost\":\n InitInvtPostBuf(\n ValueEntry,\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137911'\nCodeunit 137911 SCM Calculate Assembly Cost\n Testfunction VerifyAdjustCostItemEntriesMustBeExecutedForAssemblyItem Failure (8.777 seconds)\n Error:\n Assert.RecordCount failed. Expected number of Value Entry entries: 0. Actual: 1. Filters: Item No.: GL00000000, Item Ledger Entry Type: Assembly Output, Entry Type: Direct Cost - Non Inventory. Records: 678, GL00000000, 06/03/26, Assembly Output, GL00000000, A00001, , , FINISHED, , 676, 1, 0, 0, 233, 0, 430, 0, , 0, ADMIN, INVTADJMT, 0, , , Item, 233, 0, , No, , DOMESTIC, RETAIL, 06/03/26, , 0, 0, 0, Posted Assembly, 0, 06/03/26, Assembly, A00001, 0, No, , No, No, Yes, 06/03/26, Direct Cost - Non Inventory, , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , 0, , Yes, No, 0, , , , , , , , , , , ; \n Call Stack:\n Assert(CodeUnit 130000).RecordCount line 18 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"SCM Calculate Assembly Cost\"(CodeUnit 137911).VerifyAdjustCostItemEntriesMustBeExecutedForAssemblyItem line 43 - Tests-SCM-Assembly by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"instance_id": "microsoftInternal__NAV-206527", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Foundation/UOM/UnitofMeasureManagement.Codeunit.al b/App/Layers/W1/BaseApp/Foundation/UOM/UnitofMeasureManagement.Codeunit.al\nindex 55263dbc..fcd5386e 100644\n--- a/App/Layers/W1/BaseApp/Foundation/UOM/UnitofMeasureManagement.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Foundation/UOM/UnitofMeasureManagement.Codeunit.al\n@@ -93,15 +93,13 @@ codeunit 5402 \"Unit of Measure Management\"\n end;\n \n procedure CalcBaseQty(ItemNo: Code[20]; VariantCode: Code[10]; UOMCode: Code[10]; QtyBase: Decimal; QtyPerUOM: Decimal; QtyRndingPrecision: Decimal; BasedOnField: Text; FromFieldName: Text; ToFieldName: Text) QtyRounded: Decimal\n- var\n- DummyItem: Record Item;\n begin\n QtyRounded := 0;\n if QtyPerUOM <> 0 then begin\n QtyRounded := RoundQty(QtyBase * QtyPerUOM, QtyRndingPrecision);\n \n if (QtyRounded = 0) and (QtyBase <> 0) then\n- Error(QuantityImbalanceErr, BasedOnField, DummyItem.TableCaption(), ItemNo, FromFieldName, ToFieldName);\n+ QtyRounded := RoundQty(QtyBase * QtyPerUOM);\n end;\n OnAfterCalcBaseQtyPerUnitOfMeasure(ItemNo, VariantCode, UOMCode, QtyBase, QtyPerUOM, QtyRounded);\n end;\ndiff --git a/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al b/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\nindex e3280001..fb6d7303 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\n@@ -197,13 +197,12 @@ table 99000829 \"Planning Component\"\n ItemPrecRoundedExpectedQuantity := \"Expected Quantity\";\n BaseUOMPrecRoundedExpectedQuantity := UOMMgt.RoundQty(\"Expected Quantity\", \"Qty. Rounding Precision\");\n \n- if (\"Qty. Rounding Precision\" > 0) and (BaseUOMPrecRoundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity) then\n+ if (\"Qty. Rounding Precision\" > 0) and (BaseUOMPrecRoundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity) then begin\n if UnroundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity then\n- Error(WrongPrecisionItemAndUOMExpectedQtyErr, Item.FieldCaption(\"Rounding Precision\"), Item.TableCaption(), ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"))\n- else\n- Error(WrongPrecOnUOMExpectedQtyErr, ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"));\n-\n- \"Expected Quantity\" := BaseUOMPrecRoundedExpectedQuantity;\n+ Error(WrongPrecisionItemAndUOMExpectedQtyErr, Item.FieldCaption(\"Rounding Precision\"), Item.TableCaption(), ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"));\n+ // else: only Qty. Rounding Precision conflicts - do not error, keep ItemPrecRoundedExpectedQuantity\n+ end else\n+ \"Expected Quantity\" := BaseUOMPrecRoundedExpectedQuantity;\n \"Expected Quantity (Base)\" := CalcBaseQty(\"Expected Quantity\", FieldCaption(\"Expected Quantity\"), FieldCaption(\"Expected Quantity (Base)\"));\n \n \"Net Quantity (Base)\" := \"Expected Quantity (Base)\" - \"Original Expected Qty. (Base)\";\ndiff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\nindex 36930a9e..058f96b4 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n@@ -263,7 +263,6 @@ codeunit 99000773 \"Calculate Prod. Order\"\n Item2: Record Item;\n ComponentSKU: Record \"Stockkeeping Unit\";\n IsHandled: Boolean;\n- QtyRoundPrecision: Decimal;\n begin\n ProdOrderComp.Reset();\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\", \"Item No.\");\n@@ -295,12 +294,7 @@ codeunit 99000773 \"Calculate Prod. Order\"\n ProdOrderComp.\"Bin Code\" := GetDefaultBin();\n ProdOrderComp.Description := ProdBOMLine[Level].Description;\n ProdOrderComp.Validate(\"Unit of Measure Code\", ProdBOMLine[Level].\"Unit of Measure Code\");\n- if (ProdOrderComp.\"Item No.\" <> '') and Item2.Get(ProdOrderComp.\"Item No.\") then\n- QtyRoundPrecision := UOMMgt.GetQtyRoundingPrecision(Item2, ProdBOMLine[Level].\"Unit of Measure Code\");\n- if QtyRoundPrecision <> 0 then\n- ProdOrderComp.\"Quantity per\" := Round(ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM, QtyRoundPrecision)\n- else\n- ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n+ ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n ProdOrderComp.Length := ProdBOMLine[Level].Length;\n ProdOrderComp.Width := ProdBOMLine[Level].Width;\n ProdOrderComp.Weight := ProdBOMLine[Level].Weight;\ndiff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al b/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\nindex c532e014..c574721a 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\n@@ -269,17 +269,16 @@ table 5407 \"Prod. Order Component\"\n \n BaseUOMPrecRoundedExpectedQuantity := UOMMgt.RoundQty(\"Expected Quantity\", \"Qty. Rounding Precision\");\n \n- if (\"Qty. Rounding Precision\" > 0) and (BaseUOMPrecRoundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity) then\n+ if (\"Qty. Rounding Precision\" > 0) and (BaseUOMPrecRoundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity) then begin\n if UnroundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity then\n- Error(WrongPrecisionItemAndUOMExpectedQtyErr, Item.FieldCaption(\"Rounding Precision\"), Item.TableCaption(), ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"))\n- else\n- Error(WrongPrecOnUOMExpectedQtyErr, ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"));\n-\n- \"Expected Quantity\" := BaseUOMPrecRoundedExpectedQuantity;\n+ Error(WrongPrecisionItemAndUOMExpectedQtyErr, Item.FieldCaption(\"Rounding Precision\"), Item.TableCaption(), ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"));\n+ // else: only Qty. Rounding Precision conflicts - do not error, keep ItemPrecRoundedExpectedQuantity\n+ end else\n+ \"Expected Quantity\" := BaseUOMPrecRoundedExpectedQuantity;\n \"Expected Qty. (Base)\" := CalcBaseQty(\"Expected Quantity\", FieldCaption(\"Expected Quantity\"), FieldCaption(\"Expected Qty. (Base)\"));\n \n // Recalculate 'Expected Quantity' based on the base value to make sure values are consistent\n- \"Expected Quantity\" := UOMMgt.RoundQty(\"Expected Qty. (Base)\" / \"Qty. per Unit of Measure\", \"Qty. Rounding Precision\");\n+ \"Expected Quantity\" := UOMMgt.RoundQty(\"Expected Qty. (Base)\" / \"Qty. per Unit of Measure\");\n \n if (Status in [Status::Released, Status::Finished]) and\n (xRec.\"Item No.\" <> '') and\n@@ -289,7 +288,7 @@ table 5407 \"Prod. Order Component\"\n \n OnValidateExpectedQuantityOnAfterCalcActConsumptionQty(Rec, xRec);\n \"Remaining Quantity\" := \"Expected Quantity\" - \"Act. Consumption (Qty)\" / \"Qty. per Unit of Measure\";\n- \"Remaining Quantity\" := UOMMgt.RoundQty(\"Remaining Quantity\", \"Qty. Rounding Precision\");\n+ \"Remaining Quantity\" := UOMMgt.RoundQty(\"Remaining Quantity\");\n \n if (\"Remaining Quantity\" * \"Expected Quantity\") <= 0 then\n \"Remaining Quantity\" := 0;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137088'\nCodeunit 137088 SCM Order Planning - III\n Testfunction ReleasedProdOrderQuantityPerandExpectedQtyRoundingPrecisionChecking Failure (7.68 seconds)\n Error:\n The value 0.11 in field Quantity is of lower precision than expected. \\\\Note: Default rounding precision of 0.00001 is used if a rounding precision is not defined.\n Call Stack:\n \"Unit of Measure Management\"(CodeUnit 5402).RoundAndValidateQty line 4 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).\"Calculation Formula - OnValidate\"(Trigger) line 10 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).\"Scrap % - OnValidate\"(Trigger) line 2 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).TransferBOMProcessItem line 46 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).TransferBOM line 70 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).Calculate line 105 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order Lines\"(CodeUnit 99000787).ProcessProdOrderLines line 13 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order Lines\"(CodeUnit 99000787).Copy line 23 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order from Sale\"(CodeUnit 99000792).CreateProductionOrder line 54 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateOrder line 11 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateOrders line 35 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateProdOrder line 24 - Base Application by Microsoft version 26.0.0.0\n \"Library - Planning\"(CodeUnit 132203).CreateProdOrderUsingPlanning line 6 - Tests-TestLibraries by Microsoft version 26.0.0.0\n \"SCM Order Planning - III\"(CodeUnit 137088).ReleasedProdOrderQuantityPerandExpectedQtyRoundingPrecisionChecking line 50 - Tests-SCM by Microsoft version 26.0.0.0"} +{"instance_id": "microsoftInternal__NAV-208851", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al b/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al\nindex fb6adbb6..558ccf5c 100644\n--- a/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al\n@@ -563,8 +563,10 @@ table 7000 \"Price List Header\"\n xAmountType: Enum \"Price Amount Type\";\n begin\n xAmountType := \"Amount Type\";\n- if \"Source Type\" in [\"Source Type\"::\"Customer Disc. Group\", \"Source Type\"::\"Customer Price Group\"] then\n+ if \"Source Type\" in [\"Source Type\"::\"Customer Disc. Group\", \"Source Type\"::\"Customer Price Group\"] then begin\n+ CopyTo(PriceSource);\n \"Amount Type\" := PriceSource.GetDefaultAmountType()\n+ end\n else\n \"Amount Type\" := CalcAmountType();\n if \"Amount Type\" <> xAmountType then\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-208320", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesInvoice.Page.al b/App/Layers/W1/BaseApp/Sales/Document/SalesInvoice.Page.al\nindex ee0d93e0..ffc20ce9 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesInvoice.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesInvoice.Page.al\n@@ -777,6 +777,7 @@ page 43 \"Sales Invoice\"\n end;\n \n Rec.CopySellToAddressToBillToAddress();\n+ BillToContact.GetOrClear(Rec.\"Bill-to Contact No.\");\n end;\n }\n group(Control205)\n@@ -802,6 +803,7 @@ page 43 \"Sales Invoice\"\n \n CurrPage.Update();\n end;\n+ BillToContact.GetOrClear(Rec.\"Bill-to Contact No.\");\n end;\n }\n field(\"Bill-to Address\"; Rec.\"Bill-to Address\")\n@@ -882,6 +884,11 @@ page 43 \"Sales Invoice\"\n Enabled = (BillToOptions = BillToOptions::\"Custom Address\") or (Rec.\"Bill-to Customer No.\" <> Rec.\"Sell-to Customer No.\");\n Importance = Additional;\n ToolTip = 'Specifies the number of the contact the invoice will be sent to.';\n+\n+ trigger OnAfterValidate()\n+ begin\n+ BillToContact.GetOrClear(Rec.\"Bill-to Contact No.\");\n+ end;\n }\n field(\"Bill-to Contact\"; Rec.\"Bill-to Contact\")\n {\n", "error_message": "Build or publish failed for App\\Layers\\W1\\BaseApp:\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Sales\\Document\\SalesInvoice.Page.al(888,37): error AL0162: 'OnAfterValidate' is not a valid trigger"} +{"instance_id": "microsoftInternal__NAV-227219", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al\nindex 979cdb45..1254b0d5 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al\n@@ -119,7 +119,7 @@ codeunit 5708 \"Release Transfer Document\"\n if IsHandled then\n exit;\n \n- TransLine.SetLoadFields(\"Document No.\", Quantity, \"Item No.\");\n+ TransLine.SetLoadFields(\"Document No.\", Quantity, \"Item No.\", \"Variant Code\");\n TransLine.SetRange(\"Document No.\", TransHeader.\"No.\");\n TransLine.SetFilter(Quantity, '<>0');\n if TransLine.IsEmpty() then\n@@ -131,6 +131,8 @@ codeunit 5708 \"Release Transfer Document\"\n Item.Get(TransLine.\"Item No.\");\n if Item.IsInventoriableType() then\n TransLine.TestField(\"Unit of Measure Code\");\n+ if Item.IsVariantMandatory() then\n+ TransLine.TestField(\"Variant Code\");\n until TransLine.Next() = 0;\n TransLine.SetFilter(\"Item No.\", '');\n end;\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-227358", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\nindex 61aff663..ed0f94ac 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\n@@ -1006,6 +1006,7 @@ codeunit 13 \"Gen. Jnl.-Post Batch\"\n exit;\n if not CurrGenJnlTemplate.\"Unlink Inc. Doc On Posting\" then\n exit;\n+ GenJnlLine.Find();\n GenJnlLine.\"Incoming Document Entry No.\" := 0;\n GenJnlLine.Modify();\n end;\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-226004", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al b/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al\nindex d086521b..80cfadc7 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al\n@@ -74,6 +74,7 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n HasExpiredItems: Boolean;\n SuppressCommit: Boolean;\n HideDialogForTracking: Boolean;\n+ RemQtyToPick: Decimal;\n NothingToHandleMsg: Label 'There is nothing to handle.';\n QtyNotSufficientOnSalesErr: Label 'Quantity available to pick is not sufficient to fulfill shipping advise %1 for sales line with Document Type %2, Document No. %3, Line No. %4.', Comment = '%1=Shipping advise no., %2=Document Type, %3=Document No., %4=Line No.';\n QtyNotSufficientOnTransferErr: Label 'Quantity available to pick is not sufficient to fulfill shipping advise %1 for transfer line with Document No. %2, Line No. %3.', Comment = '%1=Shipping advise no., %2=Document No., %3=Line No.';\n@@ -783,6 +784,7 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n end;\n \n if RemQtyToPickBase > 0 then begin\n+ RemQtyToPick := 0;\n if ItemTrackingManagement.GetWhseItemTrkgSetup(NewWarehouseActivityLine.\"Item No.\", WhseItemTrackingSetup) then begin\n OnCreatePickOrMoveLineOnAfterGetWhseItemTrkgSetup(NewWarehouseActivityLine, WhseItemTrackingSetup);\n if IsBlankInvtMovement then\n@@ -811,6 +813,7 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n end;\n \n TempTrackingSpecification.Reset();\n+ RemQtyToPick := NewWarehouseActivityLine.CalcQty(OriginalRemQtyToPickBase);\n if TempTrackingSpecification.Find('-') then\n repeat\n ITQtyToPickBase := Abs(TempTrackingSpecification.\"Qty. to Handle (Base)\");\n@@ -881,6 +884,7 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n until (TempTrackingSpecification.Next() = 0) or (RemQtyToPickBase <= 0);\n \n RemQtyToPickBase := Minimum(RemQtyToPickBase, OriginalRemQtyToPickBase - TotalITQtyToPickBase);\n+ RemQtyToPick := 0;\n end;\n \n if CurrLocation.\"Bin Mandatory\" then begin\n@@ -1927,6 +1931,7 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n /// Provided remaining quantity to pick in base unit.\n procedure MakeWarehouseActivityLine(var NewWarehouseActivityLine: Record \"Warehouse Activity Line\"; TakeBinCode: Code[20]; QtyToPickBase: Decimal; var RemQtyToPickBase: Decimal)\n var\n+ UnitOfMeasureManagement: Codeunit \"Unit of Measure Management\";\n IsHandled: Boolean;\n begin\n IsHandled := false;\n@@ -1935,6 +1940,11 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n exit;\n \n NewWarehouseActivityLine.Quantity := NewWarehouseActivityLine.CalcQty(QtyToPickBase);\n+ if (RemQtyToPick > 0) and (RemQtyToPickBase = QtyToPickBase) then\n+ if Abs(NewWarehouseActivityLine.Quantity - RemQtyToPick) <= UnitOfMeasureManagement.QtyRndPrecision() then\n+ NewWarehouseActivityLine.Quantity := RemQtyToPick;\n+ if RemQtyToPick > 0 then\n+ RemQtyToPick -= NewWarehouseActivityLine.Quantity;\n NewWarehouseActivityLine.\"Qty. (Base)\" := QtyToPickBase;\n NewWarehouseActivityLine.\"Qty. Outstanding\" := NewWarehouseActivityLine.Quantity;\n NewWarehouseActivityLine.\"Qty. Outstanding (Base)\" := NewWarehouseActivityLine.\"Qty. (Base)\";\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-223202", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al\nindex 84769ae0..a5d7fdd9 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al\n@@ -257,7 +257,16 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ExpSubDirCostRtng: Decimal;\n ExpCapOvhdCostRtng: Decimal;\n ExpOvhdCost: Decimal;\n+ ExpMatCostBefore: Decimal;\n+ ExpCapDirCostBefore: Decimal;\n+ ExpSubDirCostBefore: Decimal;\n+ ExpCapOvhdCostBefore: Decimal;\n begin\n+ ExpMatCostBefore := ExpMatCost;\n+ ExpCapDirCostBefore := ExpCapDirCost;\n+ ExpSubDirCostBefore := ExpSubDirCost;\n+ ExpCapOvhdCostBefore := ExpCapOvhdCost;\n+\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\");\n ProdOrderComp.SetRange(Status, ProdOrderLine.Status);\n ProdOrderComp.SetRange(\"Prod. Order No.\", ProdOrderLine.\"Prod. Order No.\");\n@@ -304,7 +313,11 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ExpCapDirCost := ExpCapDirCost + Round(ExpCapDirCostRtng * ShareOfTotalCapCost);\n ExpSubDirCost := ExpSubDirCost + Round(ExpSubDirCostRtng * ShareOfTotalCapCost);\n ExpCapOvhdCost := ExpCapOvhdCost + Round(ExpCapOvhdCostRtng * ShareOfTotalCapCost);\n- ExpMfgDirCost := ExpMatCost + ExpCapDirCost + ExpSubDirCost + ExpCapOvhdCost;\n+ ExpMfgDirCost :=\n+ (ExpMatCost - ExpMatCostBefore) +\n+ (ExpCapDirCost - ExpCapDirCostBefore) +\n+ (ExpSubDirCost - ExpSubDirCostBefore) +\n+ (ExpCapOvhdCost - ExpCapOvhdCostBefore);\n ExpOvhdCost := ExpMfgOvhdCost + ProdOrderLine.\"Overhead Rate\" * ProdOrderLine.\"Quantity (Base)\";\n ExpMfgOvhdCost := ExpOvhdCost +\n Round(CostCalculationMgt.CalcOvhdCost(ExpMfgDirCost, ProdOrderLine.\"Indirect Cost %\", 0, 0));\n@@ -327,7 +340,18 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ExpSubDirCostRtng: Decimal;\n ExpCapOvhdCostRtng: Decimal;\n ExpOvhdCost: Decimal;\n+ ExpMatCostBefore: Decimal;\n+ ExpNonInvMatCostBefore: Decimal;\n+ ExpCapDirCostBefore: Decimal;\n+ ExpSubDirCostBefore: Decimal;\n+ ExpCapOvhdCostBefore: Decimal;\n begin\n+ ExpMatCostBefore := ExpMatCost;\n+ ExpNonInvMatCostBefore := ExpNonInvMatCost;\n+ ExpCapDirCostBefore := ExpCapDirCost;\n+ ExpSubDirCostBefore := ExpSubDirCost;\n+ ExpCapOvhdCostBefore := ExpCapOvhdCost;\n+\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\");\n ProdOrderComp.SetRange(Status, ProdOrderLine.Status);\n ProdOrderComp.SetRange(\"Prod. Order No.\", ProdOrderLine.\"Prod. Order No.\");\n@@ -366,7 +390,12 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ExpCapDirCost := ExpCapDirCost + Round(ExpCapDirCostRtng * ShareOfTotalCapCost);\n ExpSubDirCost := ExpSubDirCost + Round(ExpSubDirCostRtng * ShareOfTotalCapCost);\n ExpCapOvhdCost := ExpCapOvhdCost + Round(ExpCapOvhdCostRtng * ShareOfTotalCapCost);\n- ExpMfgDirCost := ExpMatCost + ExpNonInvMatCost + ExpCapDirCost + ExpSubDirCost + ExpCapOvhdCost;\n+ ExpMfgDirCost :=\n+ (ExpMatCost - ExpMatCostBefore) +\n+ (ExpNonInvMatCost - ExpNonInvMatCostBefore) +\n+ (ExpCapDirCost - ExpCapDirCostBefore) +\n+ (ExpSubDirCost - ExpSubDirCostBefore) +\n+ (ExpCapOvhdCost - ExpCapOvhdCostBefore);\n ExpOvhdCost := ExpMfgOvhdCost + ProdOrderLine.\"Overhead Rate\" * ProdOrderLine.\"Quantity (Base)\";\n ExpMfgOvhdCost := ExpOvhdCost +\n Round(CostCalculationMgt.CalcOvhdCost(ExpMfgDirCost, ProdOrderLine.\"Indirect Cost %\", 0, 0));\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-226448", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/VATAmountLine.Table.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/VATAmountLine.Table.al\nindex 5706c4b1..2552293d 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/VATAmountLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/VATAmountLine.Table.al\n@@ -687,6 +687,7 @@ table 290 \"VAT Amount Line\"\n OnUpdateLinesOnAfterCalcVATAmount(Rec, PrevVATAmountLine, Currency, VATBaseDiscountPerc, PricesIncludingVAT);\n \"Amount Including VAT\" := \"VAT Base\" + \"VAT Amount\";\n OnUpdateLinesOnAfterCalcAmountIncludingVATNormalVAT(Rec, PrevVATAmountLine, Currency, VATBaseDiscountPerc, PricesIncludingVAT);\n+ NonDeductibleVAT.UpdateNonDeductibleAmountsWithDiffInVATAmountLine(Rec, Currency);\n if Positive then\n PrevVATAmountLine.Init()\n else begin\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-227153", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\nindex e033f91e..9c40a492 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\n@@ -472,130 +472,130 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n \n local procedure CalcCustAccAmount(PostingGr: Code[20]): Decimal\n var\n- Cust: Record Customer;\n+ CustLedgEntry: Record \"Cust. Ledger Entry\";\n DtldCustLedgEntry: Record \"Detailed Cust. Ledg. Entry\";\n CustAccAmount: Decimal;\n begin\n- Cust.SetCurrentKey(\"Customer Posting Group\");\n- Cust.SetRange(\"Customer Posting Group\", PostingGr);\n+ CustLedgEntry.SetCurrentKey(\"Customer Posting Group\");\n+ CustLedgEntry.SetRange(\"Customer Posting Group\", PostingGr);\n \n- if Cust.Find('-') then\n+ if CustLedgEntry.Find('-') then\n repeat\n- DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\");\n- DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n+ DtldCustLedgEntry.SetCurrentKey(\"Cust. Ledger Entry No.\", \"Posting Date\");\n+ DtldCustLedgEntry.SetRange(\"Cust. Ledger Entry No.\", CustLedgEntry.\"Entry No.\");\n \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n DtldCustLedgEntry.CalcSums(\"Amount (LCY)\");\n CustAccAmount := CustAccAmount + DtldCustLedgEntry.\"Amount (LCY)\";\n- until Cust.Next() = 0;\n+ until CustLedgEntry.Next() = 0;\n \n exit(CustAccAmount);\n end;\n \n local procedure CalcCustCreditAmount(PostingGr: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n var\n- Cust: Record Customer;\n+ CustLedgEntry: Record \"Cust. Ledger Entry\";\n DtldCustLedgEntry: Record \"Detailed Cust. Ledg. Entry\";\n CustCreditAmount: Decimal;\n begin\n- Cust.SetCurrentKey(\"Customer Posting Group\");\n- Cust.SetRange(\"Customer Posting Group\", PostingGr);\n+ CustLedgEntry.SetCurrentKey(\"Customer Posting Group\");\n+ CustLedgEntry.SetRange(\"Customer Posting Group\", PostingGr);\n \n- if Cust.Find('-') then\n+ if CustLedgEntry.Find('-') then\n repeat\n- DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\", \"Entry Type\");\n- DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n+ DtldCustLedgEntry.SetCurrentKey(\"Cust. Ledger Entry No.\", \"Entry Type\", \"Posting Date\");\n+ DtldCustLedgEntry.SetRange(\"Cust. Ledger Entry No.\", CustLedgEntry.\"Entry No.\");\n DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n DtldCustLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n CustCreditAmount := CustCreditAmount + DtldCustLedgEntry.\"Credit Amount (LCY)\";\n- until Cust.Next() = 0;\n+ until CustLedgEntry.Next() = 0;\n \n exit(CustCreditAmount);\n end;\n \n local procedure CalcCustDebitAmount(PostingGr: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n var\n- Cust: Record Customer;\n+ CustLedgEntry: Record \"Cust. Ledger Entry\";\n DtldCustLedgEntry: Record \"Detailed Cust. Ledg. Entry\";\n CustDebitAmount: Decimal;\n begin\n- Cust.SetCurrentKey(\"Customer Posting Group\");\n- Cust.SetRange(\"Customer Posting Group\", PostingGr);\n+ CustLedgEntry.SetCurrentKey(\"Customer Posting Group\");\n+ CustLedgEntry.SetRange(\"Customer Posting Group\", PostingGr);\n \n- if Cust.Find('-') then\n+ if CustLedgEntry.Find('-') then\n repeat\n- DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\", \"Entry Type\");\n- DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n+ DtldCustLedgEntry.SetCurrentKey(\"Cust. Ledger Entry No.\", \"Entry Type\", \"Posting Date\");\n+ DtldCustLedgEntry.SetRange(\"Cust. Ledger Entry No.\", CustLedgEntry.\"Entry No.\");\n DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n DtldCustLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n CustDebitAmount := CustDebitAmount + DtldCustLedgEntry.\"Debit Amount (LCY)\";\n- until Cust.Next() = 0;\n+ until CustLedgEntry.Next() = 0;\n \n exit(-CustDebitAmount);\n end;\n \n local procedure CalcVendAccAmount(PostingGr: Code[20]): Decimal\n var\n- Vend: Record Vendor;\n+ VendLedgEntry: Record \"Vendor Ledger Entry\";\n DtldVendLedgEntry: Record \"Detailed Vendor Ledg. Entry\";\n VendAccAmount: Decimal;\n begin\n- Vend.SetCurrentKey(\"Vendor Posting Group\");\n- Vend.SetRange(\"Vendor Posting Group\", PostingGr);\n+ VendLedgEntry.SetCurrentKey(\"Vendor Posting Group\");\n+ VendLedgEntry.SetRange(\"Vendor Posting Group\", PostingGr);\n \n- if Vend.Find('-') then\n+ if VendLedgEntry.Find('-') then\n repeat\n- DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\");\n- DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n+ DtldVendLedgEntry.SetCurrentKey(\"Vendor Ledger Entry No.\", \"Posting Date\");\n+ DtldVendLedgEntry.SetRange(\"Vendor Ledger Entry No.\", VendLedgEntry.\"Entry No.\");\n \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n DtldVendLedgEntry.CalcSums(\"Amount (LCY)\");\n VendAccAmount := VendAccAmount + DtldVendLedgEntry.\"Amount (LCY)\";\n- until Vend.Next() = 0;\n+ until VendLedgEntry.Next() = 0;\n \n exit(VendAccAmount);\n end;\n \n local procedure CalcVendCreditAmount(PostingGr: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n var\n- Vend: Record Vendor;\n+ VendLedgEntry: Record \"Vendor Ledger Entry\";\n DtldVendLedgEntry: Record \"Detailed Vendor Ledg. Entry\";\n VendCreditAmount: Decimal;\n begin\n- Vend.SetCurrentKey(\"Vendor Posting Group\");\n- Vend.SetRange(\"Vendor Posting Group\", PostingGr);\n+ VendLedgEntry.SetCurrentKey(\"Vendor Posting Group\");\n+ VendLedgEntry.SetRange(\"Vendor Posting Group\", PostingGr);\n \n- if Vend.Find('-') then\n+ if VendLedgEntry.Find('-') then\n repeat\n- DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\", \"Entry Type\");\n- DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n+ DtldVendLedgEntry.SetCurrentKey(\"Vendor Ledger Entry No.\", \"Entry Type\", \"Posting Date\");\n+ DtldVendLedgEntry.SetRange(\"Vendor Ledger Entry No.\", VendLedgEntry.\"Entry No.\");\n DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n DtldVendLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n VendCreditAmount := VendCreditAmount + DtldVendLedgEntry.\"Credit Amount (LCY)\";\n- until Vend.Next() = 0;\n+ until VendLedgEntry.Next() = 0;\n \n exit(VendCreditAmount);\n end;\n \n local procedure CalcVendDebitAmount(PostingGr: Code[20]; EntryType: Enum \"Detailed CV Ledger Entry Type\"): Decimal\n var\n- Vend: Record Vendor;\n+ VendLedgEntry: Record \"Vendor Ledger Entry\";\n DtldVendLedgEntry: Record \"Detailed Vendor Ledg. Entry\";\n VendDebitAmount: Decimal;\n begin\n- Vend.SetCurrentKey(\"Vendor Posting Group\");\n- Vend.SetRange(\"Vendor Posting Group\", PostingGr);\n+ VendLedgEntry.SetCurrentKey(\"Vendor Posting Group\");\n+ VendLedgEntry.SetRange(\"Vendor Posting Group\", PostingGr);\n \n- if Vend.Find('-') then\n+ if VendLedgEntry.Find('-') then\n repeat\n- DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\", \"Entry Type\");\n- DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n+ DtldVendLedgEntry.SetCurrentKey(\"Vendor Ledger Entry No.\", \"Entry Type\", \"Posting Date\");\n+ DtldVendLedgEntry.SetRange(\"Vendor Ledger Entry No.\", VendLedgEntry.\"Entry No.\");\n DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n DtldVendLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n VendDebitAmount := VendDebitAmount + DtldVendLedgEntry.\"Debit Amount (LCY)\";\n- until Vend.Next() = 0;\n+ until VendLedgEntry.Next() = 0;\n \n exit(-VendDebitAmount);\n end;\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-227240", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\nindex 9ff59101..ff238e73 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n@@ -409,9 +409,6 @@ codeunit 393 \"Reminder-Issue\"\n if IsHandled then\n exit;\n \n- if NewDueDate < ReminderEntry2.\"Due Date\" then\n- exit;\n-\n ReminderEntry2.Validate(\"Due Date\", NewDueDate);\n ReminderEntry2.Modify();\n end;\n", "error_message": null} +{"instance_id": "microsoft__BCApps-5633", "project": "Shopify", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al b/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al\nindex 1f790f9..a78230f 100644\n--- a/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al\n@@ -24,6 +24,7 @@ codeunit 30190 \"Shpfy Export Shipments\"\n ShippingEvents: Codeunit \"Shpfy Shipping Events\";\n NoCorrespondingFulfillmentLinesLbl: Label 'No corresponding fulfillment lines found.';\n NoFulfillmentCreatedInShopifyLbl: Label 'Fulfillment was not created in Shopify.';\n+ ThirdPartyFulfillmentServiceLbl: Label 'Fulfillment order is managed by a third-party fulfillment service.';\n \n /// \n /// Create Shopify Fulfillment.\n@@ -58,6 +59,12 @@ codeunit 30190 \"Shpfy Export Shipments\"\n if ShopifyOrderHeader.Get(SalesShipmentHeader.\"Shpfy Order Id\") then begin\n ShopifyCommunicationMgt.SetShop(ShopifyOrderHeader.\"Shop Code\");\n Shop.Get(ShopifyOrderHeader.\"Shop Code\");\n+ if IsThirdPartyFulfillmentServiceLocation(Shop.Code, LocationId) then begin\n+ SkippedRecord.LogSkippedRecord(SalesShipmentHeader.\"Shpfy Order Id\", SalesShipmentHeader.RecordId, ThirdPartyFulfillmentServiceLbl, Shop);\n+ SalesShipmentHeader.\"Shpfy Fulfillment Id\" := -1;\n+ SalesShipmentHeader.Modify(true);\n+ exit;\n+ end;\n FulfillmentOrderRequests := CreateFulfillmentOrderRequest(SalesShipmentHeader, Shop, LocationId, DeliveryMethodType, AssignedFulfillmentOrderIds);\n if FulfillmentOrderRequests.Count <> 0 then\n foreach FulfillmentOrderRequest in FulfillmentOrderRequests do begin\n@@ -249,4 +256,13 @@ codeunit 30190 \"Shpfy Export Shipments\"\n if FulfillmentOrdersAPI.AcceptFulfillmentRequest(Shop, FulfillmentOrderHeader) then\n AssignedFulfillmentOrderIds.Remove(FulfillmentOrderId);\n end;\n+\n+ local procedure IsThirdPartyFulfillmentServiceLocation(ShopCode: Code[20]; LocationId: BigInteger): Boolean\n+ var\n+ ShopLocation: Record \"Shpfy Shop Location\";\n+ SyncShopLocations: Codeunit \"Shpfy Sync Shop Locations\";\n+ begin\n+ if ShopLocation.Get(ShopCode, LocationId) then\n+ exit(ShopLocation.\"Is Fulfillment Service\" and (ShopLocation.Name <> SyncShopLocations.GetFulfillmentServiceName()));\n+ end;\n }\n\\ No newline at end of file\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139606'\nCodeunit 139606 Shpfy Shipping Test\n Testfunction UnitTestExportShipmentThirdParty Failure (5.42 seconds)\n Error:\n Assert.AreEqual failed. Expected:<0> (Integer). Actual:<1> (Integer). FulfillmentRequest count check.\n Call Stack:\n \"Library Assert\"(CodeUnit 130002).AreEqual line 3 - Library Assert by Microsoft version 27.2.0.0\n \"Shpfy Shipping Test\"(CodeUnit 139606).UnitTestExportShipmentThirdParty line 26 - Shopify Connector Test by Microsoft version 27.2.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.2.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.2.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.2.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.2.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.2.0.0"} +{"instance_id": "microsoft__BCApps-4822", "project": "Shopify", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\nindex 2d20144..cf83a44 100644\n--- a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\n@@ -523,7 +523,7 @@ codeunit 30286 \"Shpfy Company API\"\n JResponse := CommunicationMgt.ExecuteGraphQL(GraphQuery.ToText());\n if JResponse.SelectToken('$.data.companyLocationCreate.companyLocation', JCompanyLocation) then\n if not JsonHelper.IsTokenNull(JCompanyLocation) then begin\n- LocationId := CreateCustomerLocation(JCompanyLocation.AsObject(), ShopifyCompany, Customer.SystemId);\n+ LocationId := CreateCustomerLocation(JCompanyLocation.AsObject(), ShopifyCompany, Customer);\n if JsonHelper.GetJsonArray(JCompanyLocation, JContactRoles, 'company.contactRoles.edges') then begin\n foreach JItem in JContactRoles do\n CompanyContactRoles.Add(JsonHelper.GetValueAsText(JItem, 'node.name'), CommunicationMgt.GetIdOfGId(JsonHelper.GetValueAsText(JItem, 'node.id')));\n@@ -540,7 +540,7 @@ codeunit 30286 \"Shpfy Company API\"\n /// \n /// JSON object containing the company location data from Shopify API response.\n /// The parent Shopify company record.\n- /// The GUID of the Business Central customer that was exported.\n+ /// The Business Central customer record that was exported.\n /// \n /// This procedure:\n /// - Extracts the Shopify-generated ID and creates the initial record\n@@ -552,7 +552,7 @@ codeunit 30286 \"Shpfy Company API\"\n /// The procedure assumes the JSON structure matches Shopify's companyLocationCreate response format.\n /// All text fields are properly truncated to match the field lengths in the table definition.\n /// \n- local procedure CreateCustomerLocation(JCompanyLocation: JsonObject; ShopifyCompany: Record \"Shpfy Company\"; CustomerId: Guid): BigInteger\n+ local procedure CreateCustomerLocation(JCompanyLocation: JsonObject; ShopifyCompany: Record \"Shpfy Company\"; Customer: Record Customer): BigInteger\n var\n CompanyLocation: Record \"Shpfy Company Location\";\n CompanyLocationId: BigInteger;\n@@ -580,7 +580,9 @@ codeunit 30286 \"Shpfy Company API\"\n #pragma warning restore AA0139\n CompanyLocation.Recipient := CopyStr(JsonHelper.GetValueAsText(JCompanyLocation, 'billingAddress.recipient', MaxStrLen(CompanyLocation.Recipient)), 1, MaxStrLen(CompanyLocation.Recipient));\n CompanyLocation.\"Shpfy Payment Terms Id\" := CommunicationMgt.GetIdOfGId(JsonHelper.GetValueAsText(JCompanyLocation, 'buyerExperienceConfiguration.paymentTermsTemplate.id'));\n- CompanyLocation.\"Customer Id\" := CustomerId;\n+ CompanyLocation.\"Customer Id\" := Customer.SystemId;\n+ CompanyLocation.\"Sell-to Customer No.\" := Customer.\"No.\";\n+ CompanyLocation.\"Bill-to Customer No.\" := Customer.\"Bill-to Customer No.\";\n CompanyLocation.Modify(true);\n exit(CompanyLocationId);\n end;\n", "error_message": null} +{"instance_id": "microsoft__BCApps-4699", "project": "Shopify", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al b/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al\nindex 4e6ffd2..1c5a640 100644\n--- a/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al\n@@ -9,6 +9,7 @@ using Microsoft.Inventory.Item;\n using Microsoft.Foundation.UOM;\n using Microsoft.Purchases.Vendor;\n using Microsoft.Inventory.Item.Catalog;\n+using Microsoft.Finance.Currency;\n \n /// \n /// Codeunit Shpfy Create Item (ID 30171).\n@@ -29,6 +30,7 @@ codeunit 30171 \"Shpfy Create Item\"\n \n var\n Shop: Record \"Shpfy Shop\";\n+ CurrExchRate: Record \"Currency Exchange Rate\";\n FilterMgt: Codeunit \"Shpfy Filter Mgt.\";\n ProductEvents: Codeunit \"Shpfy Product Events\";\n TemplateCode: Code[20];\n@@ -258,10 +260,10 @@ codeunit 30171 \"Shpfy Create Item\"\n CreateItemUnitOfMeasure(ShopifyVariant, Item);\n \n if ShopifyVariant.\"Unit Cost\" <> 0 then\n- Item.Validate(\"Unit Cost\", ShopifyVariant.\"Unit Cost\");\n+ Item.Validate(\"Unit Cost\", CurrExchRate.ExchangeAmtFCYToLCY(WorkDate(), Shop.\"Currency Code\", ShopifyVariant.\"Unit Cost\", CurrExchRate.ExchangeRate(WorkDate(), Shop.\"Currency Code\")));\n \n if ShopifyVariant.Price <> 0 then\n- Item.Validate(\"Unit Price\", ShopifyVariant.Price);\n+ Item.Validate(\"Unit Price\", CurrExchRate.ExchangeAmtFCYToLCY(WorkDate(), Shop.\"Currency Code\", ShopifyVariant.Price, CurrExchRate.ExchangeRate(WorkDate(), Shop.\"Currency Code\")));\n \n if ShopifyProduct.\"Product Type\" <> '' then begin\n ItemCategory.SetFilter(Description, FilterMgt.CleanFilterValue(ShopifyProduct.\"Product Type\", MaxStrLen(ItemCategory.Description)));\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-223790", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Planning/MfgPlanningLineManagement.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Planning/MfgPlanningLineManagement.Codeunit.al\nindex 33e0977f..bf7a5e47 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Planning/MfgPlanningLineManagement.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Planning/MfgPlanningLineManagement.Codeunit.al\n@@ -328,6 +328,8 @@ codeunit 99000819 \"Mfg. Planning Line Management\"\n PlanningComponent.Validate(\"Item No.\", ProdBOMLine.\"No.\");\n PlanningComponent.\"Variant Code\" := ProdBOMLine.\"Variant Code\";\n PlanningComponent.\"Location Code\" := SKU.\"Components at Location\";\n+ if PlanningComponent.\"Location Code\" = '' then\n+ PlanningComponent.\"Location Code\" := ReqLine.\"Location Code\";\n PlanningComponent.Description := ProdBOMLine.Description;\n PlanningComponent.\"Planning Line Origin\" := ReqLine.\"Planning Line Origin\";\n PlanningComponent.Validate(\"Unit of Measure Code\", ProdBOMLine.\"Unit of Measure Code\");\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137035'\nCodeunit 137035 SCM PS Bugs-I\n Testfunction CheckPlanningWorksheetPlanComponentwhenStockkeepingUnitsSetup Failure (16.24 seconds)\n Error:\n Assert.AreEqual failed. Expected:<1> (Integer). Actual:<0> (Integer). New planning worksheet line not created for component item.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"SCM PS Bugs-I\"(CodeUnit 137035).CheckPlanningWorksheetPlanComponentwhenStockkeepingUnitsSetup line 85 - Tests-SCM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"instance_id": "microsoftInternal__NAV-223819", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al b/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\nindex 7fc2d985..0c9c397d 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\n@@ -3697,6 +3697,10 @@ table 83 \"Item Journal Line\"\n /// \n /// Initializes the dimensions for the item journal line if default dimensions are defined for the related entry.\n /// \n+ /// \n+ /// For Transfer entry types, this also recomputes the \"New Dimension Set ID\" from the \"New Location Code\"\n+ /// to ensure that dimensions for the destination location are not overwritten by the source location.\n+ /// \n /// The field number for which to initialize the dimensions.\n procedure CreateDimFromDefaultDim(FieldNo: Integer)\n var\n@@ -3706,6 +3710,8 @@ table 83 \"Item Journal Line\"\n exit;\n InitDefaultDimensionSources(DefaultDimSource, FieldNo);\n CreateDim(DefaultDimSource);\n+ if (\"Entry Type\" = \"Entry Type\"::Transfer) and (FieldNo <> Rec.FieldNo(\"New Location Code\")) then\n+ CreateNewDimFromDefaultDim(Rec.FieldNo(\"New Location Code\"));\n end;\n \n local procedure CreateNewDimFromDefaultDim(FieldNo: Integer)\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-222092", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\nindex 825eb23c..9ff59101 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n@@ -270,8 +270,8 @@ codeunit 393 \"Reminder-Issue\"\n begin\n GenJnlLine2.\"Shortcut Dimension 1 Code\" := GlobalReminderHeader.\"Shortcut Dimension 1 Code\";\n GenJnlLine2.\"Shortcut Dimension 2 Code\" := GlobalReminderHeader.\"Shortcut Dimension 2 Code\";\n- DimSetIDArr[1] := GlobalReminderHeader.\"Dimension Set ID\";\n- DimSetIDArr[2] := TempGenJnlLine.\"Dimension Set ID\";\n+ DimSetIDArr[1] := TempGenJnlLine.\"Dimension Set ID\";\n+ DimSetIDArr[2] := GlobalReminderHeader.\"Dimension Set ID\";\n GenJnlLine2.\"Dimension Set ID\" :=\n DimMgt.GetCombinedDimensionSetID(\n DimSetIDArr, GenJnlLine2.\"Shortcut Dimension 1 Code\", GenJnlLine2.\"Shortcut Dimension 2 Code\");\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-218062", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": false, "output": "", "error_message": "Agent timed out"} +{"instance_id": "microsoftInternal__NAV-218253", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesLineReserve.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Document/SalesLineReserve.Codeunit.al\nindex 15a14be1..afcee779 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesLineReserve.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesLineReserve.Codeunit.al\n@@ -1304,6 +1304,12 @@ codeunit 99000832 \"Sales Line-Reserve\"\n if (NewSalesLine.Type <> NewSalesLine.Type::Item) or (NewSalesLine.Quantity = 0) or (NewSalesLine.Reserve <> NewSalesLine.Reserve::Always) then\n exit(false);\n \n+ // Do not delete all reservation entries for invoice lines created from shipment lines,\n+ // as the item tracking (Prospect) entries are linked to specific shipment ledger entries\n+ // and must only be trimmed, not fully cleared, when quantity is reduced.\n+ if NewSalesLine.\"Shipment No.\" <> '' then\n+ exit(false);\n+\n Item.SetLoadFields(\"Costing Method\");\n Item.Get(NewSalesLine.\"No.\");\n \n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-218995", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Posting/JobPostLine.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Posting/JobPostLine.Codeunit.al\nindex a913f1c1..e98e88af 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Posting/JobPostLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Posting/JobPostLine.Codeunit.al\n@@ -478,6 +478,10 @@ codeunit 1001 \"Job Post-Line\"\n if IsHandled then\n exit;\n \n+ if Item.Get(PurchaseLine.\"No.\") then\n+ if Item.Type = Item.Type::\"Non-Inventory\" then\n+ exit;\n+\n Job.Get(PurchaseLine.\"Job No.\");\n if Job.GetQuantityAvailable(PurchaseLine.\"No.\", PurchaseLine.\"Location Code\", PurchaseLine.\"Variant Code\", 0, 2) <\n -PurchaseLine.\"Return Qty. to Ship (Base)\"\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-218786", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al\nindex 0b806569..e597092b 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al\n@@ -3128,7 +3128,7 @@ table 5767 \"Warehouse Activity Line\"\n WhseActivityLine.SetLoadFields(\"Activity Type\", \"No.\", \"Line No.\", \"Item No.\", \"Variant Code\", \"Location Code\", \"Action Type\", Quantity, \"Lot No.\", \"Serial No.\", \"Source No.\", \"Source Line No.\", \"Source Document\");\n WhseActivityLine.SetRange(\"Activity Type\", FromWhseActivityLine.\"Activity Type\");\n WhseActivityLine.SetRange(\"No.\", FromWhseActivityLine.\"No.\");\n- WhseActivityLine.SetFilter(\"Line No.\", '<>%1', FromWhseActivityLine.\"Line No.\");\n+ WhseActivityLine.SetFilter(\"Line No.\", '>%1', FromWhseActivityLine.\"Line No.\");\n WhseActivityLine.SetRange(\"Item No.\", FromWhseActivityLine.\"Item No.\");\n WhseActivityLine.SetRange(\"Variant Code\", FromWhseActivityLine.\"Variant Code\");\n WhseActivityLine.SetRange(\"Location Code\", FromWhseActivityLine.\"Location Code\");\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-217974", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\nindex 780de254..833fb007 100644\n--- a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n@@ -748,6 +748,7 @@ codeunit 6620 \"Copy Document Mgt.\"\n FromSalesHeader.CalcFields(\"Work Description\");\n ToSalesHeader.TransferFields(FromSalesHeader, false);\n UpdateSalesHeaderWhenCopyFromSalesHeader(ToSalesHeader, OldSalesHeader, FromDocType);\n+ UpdateShipToAddress(ToSalesHeader);\n SetReceivedFromCountryCode(FromDocType, ToSalesHeader);\n OnAfterCopySalesHeader(ToSalesHeader, OldSalesHeader, FromSalesHeader, FromDocType);\n end;\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-222488", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseMovementSubform.Page.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseMovementSubform.Page.al\nindex d0836460..376624f0 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseMovementSubform.Page.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseMovementSubform.Page.al\n@@ -320,6 +320,8 @@ page 7316 \"Warehouse Movement Subform\"\n WhseActivLine.Copy(Rec);\n WhseActivLine.FilterGroup(3);\n WhseActivLine.SetRange(Breakbulk);\n+ WhseActivLine.FilterGroup(1);\n+ WhseActivLine.SetRange(Breakbulk);\n WhseActivLine.FilterGroup(0);\n CODEUNIT.Run(CODEUNIT::\"Whse.-Act.-Register (Yes/No)\", WhseActivLine);\n Rec.Reset();\ndiff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePickSubform.Page.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePickSubform.Page.al\nindex 12c3ac91..b9fa02d3 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePickSubform.Page.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePickSubform.Page.al\n@@ -562,6 +562,8 @@ page 5780 \"Whse. Pick Subform\"\n WhseActivLine.Copy(Rec);\n WhseActivLine.FilterGroup(3);\n WhseActivLine.SetRange(Breakbulk);\n+ WhseActivLine.FilterGroup(1);\n+ WhseActivLine.SetRange(Breakbulk);\n WhseActivLine.FilterGroup(0);\n CODEUNIT.Run(CODEUNIT::\"Whse.-Act.-Register (Yes/No)\", WhseActivLine);\n Rec.Reset();\ndiff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al\nindex 07db37f9..f078873c 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al\n@@ -487,6 +487,8 @@ page 5771 \"Whse. Put-away Subform\"\n WhseActivLine.Copy(Rec);\n WhseActivLine.FilterGroup(3);\n WhseActivLine.SetRange(Breakbulk);\n+ WhseActivLine.FilterGroup(1);\n+ WhseActivLine.SetRange(Breakbulk);\n WhseActivLine.FilterGroup(0);\n CODEUNIT.Run(CODEUNIT::\"Whse.-Act.-Register (Yes/No)\", WhseActivLine);\n Rec.Reset();\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137152'\nCodeunit 137152 SCM Warehouse - Receiving\n Testfunction RegisterPutAwayWithBreakBulkFilterShouldRegisterAllLines Failure (19.15 seconds)\n Error:\n Assert.RecordCount failed. Expected number of Warehouse Entry entries: 4. Actual: 2. Filters: Source No.: GU00000000, Source Document: P. Order, Entry Type: Movement. Records: 2, , 0, 06/03/26, GU00000000, RECEIVE, BIN13, , GL00000000, -1.11, -53.28, 2, 0, 39, 1, GU00000000, 10000, 0, P. Order, WHPUTAWAY, , , RECEIVE, 0, 0, , GL00000003, Receipt, 10000, Movement, Put-away, GL00000005, ADMIN, , 48, GU00000257, , , , , , , , No, ; 3, , 0, 06/03/26, GU00000000, PICK, BIN8, , GL00000000, 53.28, 53.28, 2, 0, 39, 1, GU00000000, 10000, 0, P. Order, WHPUTAWAY, , , PUTPICK, 0, 0, , GL00000003, Receipt, 10000, Movement, Put-away, GL00000005, ADMIN, , 1, BAG, , , , , , , , No, ; \n Call Stack:\n Assert(CodeUnit 130000).RecordCount line 18 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"SCM Warehouse - Receiving\"(CodeUnit 137152).RegisterPutAwayWithBreakBulkFilterShouldRegisterAllLines line 52 - Tests-SCM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"instance_id": "microsoftInternal__NAV-222484", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Tracking/WhseItemTrackingFEFO.Codeunit.al b/App/Layers/W1/BaseApp/Warehouse/Tracking/WhseItemTrackingFEFO.Codeunit.al\nindex 9568f0f6..1209dd17 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Tracking/WhseItemTrackingFEFO.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Tracking/WhseItemTrackingFEFO.Codeunit.al\n@@ -4,6 +4,7 @@\n // ------------------------------------------------------------------------------------------------\n namespace Microsoft.Warehouse.Tracking;\n \n+using Microsoft.Inventory.Ledger;\n using Microsoft.Inventory.Location;\n using Microsoft.Inventory.Tracking;\n using Microsoft.Warehouse.Activity;\n@@ -25,6 +26,10 @@ codeunit 7326 \"Whse. Item Tracking FEFO\"\n HasExpiredItems: Boolean;\n ExpiredItemsForPickMsg: Label '\\\\Some items were not included in the pick due to their expiration date.';\n CalledFromMovementWksh: Boolean;\n+ CurrPickSourceType: Integer;\n+ CurrPickSourceSubType: Integer;\n+ CurrPickSourceNo: Code[20];\n+ CurrPickSourceLineNo: Integer;\n \n procedure CreateEntrySummaryFEFO(Location: Record Location; ItemNo: Code[20]; VariantCode: Code[10]; UseExpDates: Boolean)\n begin\n@@ -56,7 +61,6 @@ codeunit 7326 \"Whse. Item Tracking FEFO\"\n var\n ItemTrackingSetup: Record \"Item Tracking Setup\";\n SummarizedStockByItemTrkg: Query \"Summarized Stock By Item Trkg.\";\n- QtyReservedFromItemLedger: Query \"Qty. Reserved From Item Ledger\";\n NonReservedQtyLotSN: Decimal;\n DoInsertEntrySummary: Boolean;\n IsHandled: Boolean;\n@@ -84,11 +88,7 @@ codeunit 7326 \"Whse. Item Tracking FEFO\"\n if not IsItemTrackingBlocked(ItemNo, VariantCode, ItemTrackingSetup) then begin\n NonReservedQtyLotSN := SummarizedStockByItemTrkg.Remaining_Quantity;\n \n- QtyReservedFromItemLedger.SetSKUFilters(ItemNo, VariantCode, Location.Code);\n- QtyReservedFromItemLedger.SetTrackingFilters(ItemTrackingSetup);\n- QtyReservedFromItemLedger.Open();\n- if QtyReservedFromItemLedger.Read() then\n- NonReservedQtyLotSN -= QtyReservedFromItemLedger.Quantity__Base_;\n+ NonReservedQtyLotSN -= CalcQtyReservedByOtherDocs(ItemNo, VariantCode, Location.Code, ItemTrackingSetup);\n \n DoInsertEntrySummary := NonReservedQtyLotSN - CalcNonRegisteredQtyOutstanding(ItemNo, VariantCode, Location.Code, ItemTrackingSetup, HasExpirationDate) > 0;\n OnSummarizeInventoryFEFOOnBeforeInsertEntrySummaryFEFO(Location, ItemNo, VariantCode, HasExpirationDate, NonReservedQtyLotSN, ItemTrackingSetup, SummarizedStockByItemTrkg.Expiration_Date, DoInsertEntrySummary, TempGlobalEntrySummary);\n@@ -98,6 +98,55 @@ codeunit 7326 \"Whse. Item Tracking FEFO\"\n end;\n end;\n \n+ local procedure CalcQtyReservedByOtherDocs(ItemNo: Code[20]; VariantCode: Code[10]; LocationCode: Code[10]; ItemTrackingSetup: Record \"Item Tracking Setup\"): Decimal\n+ var\n+ SupplyReservEntry: Record \"Reservation Entry\";\n+ DemandReservEntry: Record \"Reservation Entry\";\n+ QtyReserved: Decimal;\n+ begin\n+ // Find all supply-side (item ledger entry) reservation entries for this specific lot.\n+ // Filter by the supply-side lot to correctly detect both specific and non-specific reservations.\n+ SupplyReservEntry.SetCurrentKey(\"Item No.\", \"Variant Code\", \"Location Code\", \"Reservation Status\");\n+ SupplyReservEntry.SetRange(\"Item No.\", ItemNo);\n+ SupplyReservEntry.SetRange(\"Variant Code\", VariantCode);\n+ SupplyReservEntry.SetRange(\"Location Code\", LocationCode);\n+ SupplyReservEntry.SetRange(\"Reservation Status\", \"Reservation Status\"::Reservation);\n+ SupplyReservEntry.SetRange(Positive, true);\n+ SupplyReservEntry.SetRange(\"Source Type\", Database::\"Item Ledger Entry\");\n+ if ItemTrackingSetup.\"Lot No.\" <> '' then\n+ SupplyReservEntry.SetRange(\"Lot No.\", ItemTrackingSetup.\"Lot No.\");\n+ if ItemTrackingSetup.\"Serial No.\" <> '' then\n+ SupplyReservEntry.SetRange(\"Serial No.\", ItemTrackingSetup.\"Serial No.\");\n+ if ItemTrackingSetup.\"Package No.\" <> '' then\n+ SupplyReservEntry.SetRange(\"Package No.\", ItemTrackingSetup.\"Package No.\");\n+\n+ if SupplyReservEntry.FindSet() then\n+ repeat\n+ // The paired demand entry has the same Entry No. with Positive = false.\n+ // Only count reservations that belong to OTHER source documents.\n+ if DemandReservEntry.Get(SupplyReservEntry.\"Entry No.\", false) then begin\n+ if not IsCurrentSourceReservEntry(DemandReservEntry) then\n+ QtyReserved += SupplyReservEntry.\"Quantity (Base)\";\n+ end else\n+ QtyReserved += SupplyReservEntry.\"Quantity (Base)\";\n+ until SupplyReservEntry.Next() = 0;\n+\n+ exit(QtyReserved);\n+ end;\n+\n+ local procedure IsCurrentSourceReservEntry(DemandReservEntry: Record \"Reservation Entry\"): Boolean\n+ begin\n+ // If no current source is set, we cannot identify any reservation as belonging to the current source.\n+ if CurrPickSourceNo = '' then\n+ exit(false);\n+\n+ exit(\n+ (DemandReservEntry.\"Source Type\" = CurrPickSourceType) and\n+ (DemandReservEntry.\"Source Subtype\" = CurrPickSourceSubType) and\n+ (DemandReservEntry.\"Source ID\" = CurrPickSourceNo) and\n+ (DemandReservEntry.\"Source Ref. No.\" = CurrPickSourceLineNo));\n+ end;\n+\n local procedure CalcNonRegisteredQtyOutstanding(ItemNo: Code[20]; VariantCode: Code[10]; LocationCode: Code[10]; WhseItemTrackingSetup: Record \"Item Tracking Setup\"; HasExpirationDate: Boolean): Decimal\n var\n WarehouseActivityLine: Record \"Warehouse Activity Line\";\n@@ -250,6 +299,10 @@ codeunit 7326 \"Whse. Item Tracking FEFO\"\n begin\n OnBeforeSetSource(SourceType2, SourceSubType2, SourceNo2, SourceLineNo2, SourceSubLineNo2);\n \n+ CurrPickSourceType := SourceType2;\n+ CurrPickSourceSubType := SourceSubType2;\n+ CurrPickSourceNo := SourceNo2;\n+ CurrPickSourceLineNo := SourceLineNo2;\n SourceReservationEntry.Reset();\n CreatePick.SetFiltersOnReservEntry(\n SourceReservationEntry, SourceType2, SourceSubType2, SourceNo2, SourceLineNo2, SourceSubLineNo2);\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137260'\nCodeunit 137260 SCM Inventory Item Tracking\n Testfunction RegisterPickWithNoErrorForFEFOLocation Failure (20.84 seconds)\n Error:\n Assert.AreEqual failed. Expected: (Text). Actual: (Text). Item Ledger Entry Lot No. GU00000024 should be equal to the first lot with FEFO..\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"SCM Inventory Item Tracking\"(CodeUnit 137260).RegisterPickWithNoErrorForFEFOLocation line 65 - Tests-SCM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0"} +{"instance_id": "microsoftInternal__NAV-220314", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al b/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\nindex fb9253b7..ad41ac36 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\n@@ -76,6 +76,7 @@ table 83 \"Item Journal Line\"\n if \"Item No.\" <> xRec.\"Item No.\" then begin\n \"Variant Code\" := '';\n \"Bin Code\" := '';\n+ \"Unit of Measure Code\" := '';\n if CurrFieldNo <> 0 then begin\n GetItem();\n if Item.IsInventoriableType() then\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-214926", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al b/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\nindex ebeb6ca1..b522f79e 100644\n--- a/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\n@@ -2364,7 +2364,7 @@ table 18 Customer\n RetRcdNotInvAmountLCY := GetReturnRcdNotInvAmountLCY();\n \n TotalAmountLCY :=\n- \"Balance (LCY)\" + \"Outstanding Orders (LCY)\" + \"Shipped Not Invoiced (LCY)\" + \"Outstanding Invoices (LCY)\" +\n+ \"Balance (LCY)\" + \"Outstanding Orders (LCY)\" + \"Shipped Not Invoiced (LCY)\" + \"Outstanding Invoices (LCY)\" -\n SalesOutstandingAmountFromShipment - InvoicedPrepmtAmountLCY - RetRcdNotInvAmountLCY + AdditionalAmountLCY;\n \n OnAfterGetTotalAmountLCYCommon(Rec, TotalAmountLCY);\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-215972", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\nindex 9ab054c5..72f38fac 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\n@@ -1592,6 +1592,8 @@ table 5741 \"Transfer Line\"\n exit;\n \n TestField(\"Item No.\");\n+ GetItem();\n+ Item.TestField(Reserve);\n Clear(Reservation);\n OptionNumber := StrMenu(Text011);\n if OptionNumber > 0 then begin\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-216057", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": false, "output": "", "error_message": "Agent timed out"} +{"instance_id": "microsoftInternal__NAV-216572", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al\nindex 130b3e0f..a89d20ab 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al\n@@ -668,6 +668,8 @@ table 221 \"Gen. Jnl. Allocation\"\n local procedure CopyFieldsFromAllocationAccountDistribution(AllocAccountDistribution: Record \"Alloc. Account Distribution\")\n begin\n Rec.Validate(\"Account No.\", AllocAccountDistribution.\"Destination Account Number\");\n+ Rec.\"Dimension Set ID\" := AllocAccountDistribution.\"Dimension Set ID\";\n+ DimMgt.UpdateGlobalDimFromDimSetID(Rec.\"Dimension Set ID\", Rec.\"Shortcut Dimension 1 Code\", Rec.\"Shortcut Dimension 2 Code\");\n Rec.Validate(\"Allocation %\", AllocAccountDistribution.Percent);\n end;\n \n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-217797", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Availability/CalcItemAvailability.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Availability/CalcItemAvailability.Codeunit.al\nindex 21992d4e..b40017f1 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Availability/CalcItemAvailability.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Availability/CalcItemAvailability.Codeunit.al\n@@ -906,6 +906,10 @@ codeunit 5530 \"Calc. Item Availability\"\n RecRef.SetTable(RequisitionLine);\n ReqWkshTemplate.Get(RequisitionLine.\"Worksheet Template Name\");\n ReqWkshTemplate.TestField(\"Page ID\");\n+ RequisitionLine.FilterGroup := 2;\n+ RequisitionLine.SetRange(\"Worksheet Template Name\", RequisitionLine.\"Worksheet Template Name\");\n+ RequisitionLine.FilterGroup := 0;\n+ RequisitionLine.\"Worksheet Template Name\" := '';\n PAGE.RunModal(ReqWkshTemplate.\"Page ID\", RequisitionLine);\n end;\n Database::\"Planning Component\":\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-214557", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al\nindex 052f4eb6..e397a427 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfile.Table.al\n@@ -659,6 +659,22 @@ table 99000853 \"Inventory Profile\"\n Binding := ReservationEntry.Binding;\n \"Disallow Cancellation\" := ReservationEntry.\"Disallow Cancellation\";\n Found := true;\n+ end else begin\n+ // When multiple OtO reservations point to different primary order lines (e.g., a shared\n+ // supply serving components on different prod. order lines), clear the primary order line\n+ // to indicate the supply is shared and can match any demand with the same primary order no.\n+ if \"Primary Order Line\" <> 0 then begin\n+ if ReservationEntry.Positive then\n+ OppositeReservationEntry.Get(ReservationEntry.\"Entry No.\", false)\n+ else\n+ OppositeReservationEntry := ReservationEntry;\n+ if ((OppositeReservationEntry.\"Source Type\" <> 5407) and\n+ (OppositeReservationEntry.\"Source Ref. No.\" <> \"Primary Order Line\")) or\n+ ((OppositeReservationEntry.\"Source Type\" = 5407) and\n+ (OppositeReservationEntry.\"Source Prod. Order Line\" <> \"Primary Order Line\"))\n+ then\n+ \"Primary Order Line\" := 0;\n+ end;\n end;\n end else\n if (ReservationEntry.\"Reservation Status\" = ReservationEntry.\"Reservation Status\"::Reservation) and\ndiff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al\nindex e3a6cf2f..097cc60b 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al\n@@ -1004,6 +1004,17 @@ codeunit 99000854 \"Inventory Profile Offsetting\"\n \n SupplyInvtProfile.SetTrackingFilter(DemandInvtProfile);\n SupplyExists := SupplyInvtProfile.FindFirst();\n+ // If no supply found with exact primary order line, fall back to a shared supply (primary order line = 0).\n+ // A shared supply (primary order line = 0) is created when an item is consumed by multiple sub-assembly\n+ // lines within the same production order and a single supply line covers all of them.\n+ if not SupplyExists and (DemandInvtProfile.Binding = DemandInvtProfile.Binding::\"Order-to-Order\") and\n+ (DemandInvtProfile.\"Primary Order Line\" <> 0)\n+ then begin\n+ SupplyInvtProfile.SetRange(\"Primary Order Line\", 0);\n+ SupplyExists := SupplyInvtProfile.FindFirst();\n+ if not SupplyExists then\n+ SupplyInvtProfile.SetRange(\"Primary Order Line\", DemandInvtProfile.\"Primary Order Line\");\n+ end;\n SupplyIleInvtProfile.Copy(SupplyInvtProfile);\n OnBeforeMatchAttributesDemandApplicationLoop(SupplyInvtProfile, DemandInvtProfile, SupplyExists);\n while (DemandInvtProfile.\"Untracked Quantity\" > 0) and\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-212355", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Routing/CalculateRoutingLine.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Routing/CalculateRoutingLine.Codeunit.al\nindex c46c8c20..4d40b8b6 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Routing/CalculateRoutingLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Routing/CalculateRoutingLine.Codeunit.al\n@@ -1309,7 +1309,7 @@ codeunit 99000774 \"Calculate Routing Line\"\n end;\n \n MaxLotSize :=\n- ExpectedOperOutput *\n+ ProdOrderQty *\n (1 + ProdOrderRoutingLine.\"Scrap Factor % (Accumulated)\") *\n (1 + TotalScrap / 100) +\n ProdOrderRoutingLine.\"Fixed Scrap Qty. (Accum.)\";\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-214825", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\nindex 604bb915..2da48971 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\n@@ -78,6 +78,7 @@ codeunit 1018 \"Purchase Doc. From Job\"\n JobPlanningLine.SetRange(\"Job Task No.\", JobTask.\"Job Task No.\");\n if JobPlanningLine.IsEmpty() then\n exit;\n+ JobPlanningLine.SetCurrentKey(\"Job Contract Entry No.\");\n JobPlanningLine.FindSet();\n RecRef.GetTable(JobPlanningLine);\n ContractEntryNoFilter := SelectionFilterMgt.GetSelectionFilter(RecRef, JobPlanningLine.FieldNo(\"Job Contract Entry No.\"));\n", "error_message": null} +{"instance_id": "microsoft__BCApps-4766", "project": "Subscription Billing", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/src/Apps/W1/Subscription Billing/App/Customer Contracts/Tables/CustSubContractLine.Table.al b/src/Apps/W1/Subscription Billing/App/Customer Contracts/Tables/CustSubContractLine.Table.al\nindex 91f83b1..19774f7 100644\n--- a/src/Apps/W1/Subscription Billing/App/Customer Contracts/Tables/CustSubContractLine.Table.al\t\n+++ b/src/Apps/W1/Subscription Billing/App/Customer Contracts/Tables/CustSubContractLine.Table.al\t\n@@ -48,6 +48,7 @@ table 8062 \"Cust. Sub. Contract Line\"\n Item: Record Item;\n GLAccount: Record \"G/L Account\";\n TempCustomerContractLine: Record \"Cust. Sub. Contract Line\" temporary;\n+ ServiceCommitment: Record \"Subscription Line\";\n begin\n case \"Contract Line Type\" of\n \"Contract Line Type\"::Item:\n@@ -67,6 +68,7 @@ table 8062 \"Cust. Sub. Contract Line\"\n end;\n \n TempCustomerContractLine := Rec;\n+ ServiceCommitment.DeleteOrDisconnectServiceCommitment(TempCustomerContractLine.\"Subscription Line Entry No.\");\n Init();\n SystemId := TempCustomerContractLine.SystemId;\n \"Contract Line Type\" := TempCustomerContractLine.\"Contract Line Type\";\ndiff --git a/src/Apps/W1/Subscription Billing/App/Vendor Contracts/Tables/VendSubContractLine.Table.al b/src/Apps/W1/Subscription Billing/App/Vendor Contracts/Tables/VendSubContractLine.Table.al\nindex 533581b..41c2de1 100644\n--- a/src/Apps/W1/Subscription Billing/App/Vendor Contracts/Tables/VendSubContractLine.Table.al\t\n+++ b/src/Apps/W1/Subscription Billing/App/Vendor Contracts/Tables/VendSubContractLine.Table.al\t\n@@ -45,6 +45,7 @@ table 8065 \"Vend. Sub. Contract Line\"\n Item: Record Item;\n GLAccount: Record \"G/L Account\";\n TempVendorContractLine: Record \"Vend. Sub. Contract Line\" temporary;\n+ ServiceCommitment: Record \"Subscription Line\";\n begin\n case \"Contract Line Type\" of\n \"Contract Line Type\"::Item:\n@@ -64,6 +65,7 @@ table 8065 \"Vend. Sub. Contract Line\"\n end;\n \n TempVendorContractLine := Rec;\n+ ServiceCommitment.DeleteOrDisconnectServiceCommitment(TempVendorContractLine.\"Subscription Line Entry No.\");\n Init();\n SystemId := TempVendorContractLine.SystemId;\n \"Contract Line Type\" := TempVendorContractLine.\"Contract Line Type\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '148155'\nCodeunit 148155 Contracts Test\n Testfunction ContractLineDisconnectServiceOnNoChange Failure (10.057 seconds)\n Error:\n Item with the No. does not exist.\n Call Stack:\n \"Cust. Sub. Contract Line\"(Table 8062).\"No. - OnValidate\"(Trigger) line 11 - Subscription Billing by Microsoft version 27.0.0.0\n \"Contracts Test\"(CodeUnit 148155).ContractLineDisconnectServiceOnNoChange line 24 - Subscription Billing Test by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0\nSetting test codeunit range '148154'\nCodeunit 148154 Vendor Contracts Test\n Testfunction ContractLineDisconnectServiceOnNoChange Failure (1.423 seconds)\n Error:\n Item with the No. does not exist.\n Call Stack:\n \"Vend. Sub. Contract Line\"(Table 8065).\"No. - OnValidate\"(Trigger) line 11 - Subscription Billing by Microsoft version 27.0.0.0"} +{"instance_id": "microsoftInternal__NAV-210200", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Service/Document/StandardServiceCode.Table.al b/App/Layers/W1/BaseApp/Service/Document/StandardServiceCode.Table.al\nindex 986aeff9..d79bdd55 100644\n--- a/App/Layers/W1/BaseApp/Service/Document/StandardServiceCode.Table.al\n+++ b/App/Layers/W1/BaseApp/Service/Document/StandardServiceCode.Table.al\n@@ -192,6 +192,8 @@ table 5996 \"Standard Service Code\"\n OnBeforeInsertServLine(ServLine);\n ServLine.Insert(true);\n InsertExtendedText(ServLine);\n+ if (ServLine.Type = ServLine.Type::Item) and (ServLine.Reserve = ServLine.Reserve::Always) then\n+ ServLine.AutoReserve(false);\n end;\n until StdServLine.Next() = 0;\n end;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136119'\nCodeunit 136119 Service Standard Codes\n Testfunction ReservationEntryMustBeCreatedWhenReserveIsAlwaysInServiceLine Failure (7.313 seconds)\n Error:\n Assert.AreEqual failed. Expected:<5> (Integer). Actual:<0> (Decimal). Reserved Qty. (Base) must be equal to 5 in Service Line.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 26.0.0.0\n \"Service Standard Codes\"(CodeUnit 136119).ReservationEntryMustBeCreatedWhenReserveIsAlwaysInServiceLine line 61 - Tests-SCM-Service by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0"} +{"instance_id": "microsoftInternal__NAV-208649", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al b/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\nindex e3280001..fc032d23 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\n@@ -199,11 +199,8 @@ table 99000829 \"Planning Component\"\n \n if (\"Qty. Rounding Precision\" > 0) and (BaseUOMPrecRoundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity) then\n if UnroundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity then\n- Error(WrongPrecisionItemAndUOMExpectedQtyErr, Item.FieldCaption(\"Rounding Precision\"), Item.TableCaption(), ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"))\n- else\n- Error(WrongPrecOnUOMExpectedQtyErr, ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"));\n+ Error(WrongPrecisionItemAndUOMExpectedQtyErr, Item.FieldCaption(\"Rounding Precision\"), Item.TableCaption(), ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"));\n \n- \"Expected Quantity\" := BaseUOMPrecRoundedExpectedQuantity;\n \"Expected Quantity (Base)\" := CalcBaseQty(\"Expected Quantity\", FieldCaption(\"Expected Quantity\"), FieldCaption(\"Expected Quantity (Base)\"));\n \n \"Net Quantity (Base)\" := \"Expected Quantity (Base)\" - \"Original Expected Qty. (Base)\";\n@@ -655,7 +652,6 @@ table 99000829 \"Planning Component\"\n CannotChangeErr: Label 'You cannot change %1 when %2 is %3.', Comment = '%1 - FieldCaption(\"Unit Cost\"), %2 - Item.FieldCaption(\"Costing Method\"), %3 - Item.\"Costing Method\"';\n LocationCodeMustBeBlankErr: Label 'The Location Code field must be blank for items of type Non-Inventory.';\n WrongPrecisionItemAndUOMExpectedQtyErr: Label 'The value in the %1 field on the %2 page, and %3 field on the %4 page, are causing the rounding precision for the %5 field to be incorrect.', Comment = '%1 = field caption, %2 = table caption, %3 field caption, %4 = table caption, %5 = field caption';\n- WrongPrecOnUOMExpectedQtyErr: Label 'The value in the %1 field on the %2 page is causing the rounding precision for the %3 field to be incorrect.', Comment = '%1 = field caption, %2 = table caption, %3 field caption';\n \n protected var\n ReqLine: Record \"Requisition Line\";\n@@ -988,7 +984,7 @@ table 99000829 \"Planning Component\"\n local procedure CalcBaseQty(Qty: Decimal; FromFieldName: Text; ToFieldName: Text): Decimal\n begin\n exit(UOMMgt.CalcBaseQty(\n- \"Item No.\", \"Variant Code\", \"Unit of Measure Code\", Qty, \"Qty. per Unit of Measure\", \"Qty. Rounding Precision (Base)\", FieldCaption(\"Qty. Rounding Precision\"), FromFieldName, ToFieldName));\n+ \"Item No.\", \"Variant Code\", \"Unit of Measure Code\", Qty, \"Qty. per Unit of Measure\", 0, FieldCaption(\"Qty. Rounding Precision\"), FromFieldName, ToFieldName));\n end;\n \n procedure CreateDimFromDefaultDim()\ndiff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\nindex 36930a9e..058f96b4 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n@@ -263,7 +263,6 @@ codeunit 99000773 \"Calculate Prod. Order\"\n Item2: Record Item;\n ComponentSKU: Record \"Stockkeeping Unit\";\n IsHandled: Boolean;\n- QtyRoundPrecision: Decimal;\n begin\n ProdOrderComp.Reset();\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\", \"Item No.\");\n@@ -295,12 +294,7 @@ codeunit 99000773 \"Calculate Prod. Order\"\n ProdOrderComp.\"Bin Code\" := GetDefaultBin();\n ProdOrderComp.Description := ProdBOMLine[Level].Description;\n ProdOrderComp.Validate(\"Unit of Measure Code\", ProdBOMLine[Level].\"Unit of Measure Code\");\n- if (ProdOrderComp.\"Item No.\" <> '') and Item2.Get(ProdOrderComp.\"Item No.\") then\n- QtyRoundPrecision := UOMMgt.GetQtyRoundingPrecision(Item2, ProdBOMLine[Level].\"Unit of Measure Code\");\n- if QtyRoundPrecision <> 0 then\n- ProdOrderComp.\"Quantity per\" := Round(ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM, QtyRoundPrecision)\n- else\n- ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n+ ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n ProdOrderComp.Length := ProdBOMLine[Level].Length;\n ProdOrderComp.Width := ProdBOMLine[Level].Width;\n ProdOrderComp.Weight := ProdBOMLine[Level].Weight;\ndiff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al b/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\nindex c532e014..3ea7aa46 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\n@@ -271,15 +271,12 @@ table 5407 \"Prod. Order Component\"\n \n if (\"Qty. Rounding Precision\" > 0) and (BaseUOMPrecRoundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity) then\n if UnroundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity then\n- Error(WrongPrecisionItemAndUOMExpectedQtyErr, Item.FieldCaption(\"Rounding Precision\"), Item.TableCaption(), ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"))\n- else\n- Error(WrongPrecOnUOMExpectedQtyErr, ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"));\n+ Error(WrongPrecisionItemAndUOMExpectedQtyErr, Item.FieldCaption(\"Rounding Precision\"), Item.TableCaption(), ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"));\n \n- \"Expected Quantity\" := BaseUOMPrecRoundedExpectedQuantity;\n \"Expected Qty. (Base)\" := CalcBaseQty(\"Expected Quantity\", FieldCaption(\"Expected Quantity\"), FieldCaption(\"Expected Qty. (Base)\"));\n \n // Recalculate 'Expected Quantity' based on the base value to make sure values are consistent\n- \"Expected Quantity\" := UOMMgt.RoundQty(\"Expected Qty. (Base)\" / \"Qty. per Unit of Measure\", \"Qty. Rounding Precision\");\n+ \"Expected Quantity\" := UOMMgt.RoundQty(\"Expected Qty. (Base)\" / \"Qty. per Unit of Measure\", 0);\n \n if (Status in [Status::Released, Status::Finished]) and\n (xRec.\"Item No.\" <> '') and\n@@ -289,7 +286,7 @@ table 5407 \"Prod. Order Component\"\n \n OnValidateExpectedQuantityOnAfterCalcActConsumptionQty(Rec, xRec);\n \"Remaining Quantity\" := \"Expected Quantity\" - \"Act. Consumption (Qty)\" / \"Qty. per Unit of Measure\";\n- \"Remaining Quantity\" := UOMMgt.RoundQty(\"Remaining Quantity\", \"Qty. Rounding Precision\");\n+ \"Remaining Quantity\" := UOMMgt.RoundQty(\"Remaining Quantity\", 0);\n \n if (\"Remaining Quantity\" * \"Expected Quantity\") <= 0 then\n \"Remaining Quantity\" := 0;\n@@ -562,7 +559,7 @@ table 5407 \"Prod. Order Component\"\n exit;\n \n CalculateQuantity(Quantity);\n- Quantity := UOMMgt.RoundAndValidateQty(Quantity, \"Qty. Rounding Precision\", FieldCaption(Quantity));\n+ Quantity := UOMMgt.RoundQty(Quantity, 0);\n \n OnValidateCalculationFormulaOnAfterSetQuantity(Rec);\n \"Quantity (Base)\" := CalcBaseQty(Quantity, FieldCaption(Quantity), FieldCaption(\"Quantity (Base)\"));\n@@ -1029,7 +1026,6 @@ table 5407 \"Prod. Order Component\"\n #pragma warning restore AA0470\n #pragma warning restore AA0074\n WrongPrecisionItemAndUOMExpectedQtyErr: Label 'The value in the %1 field on the %2 page, and %3 field on the %4 page, are causing the rounding precision for the %5 field to be incorrect.', Comment = '%1 = field caption, %2 = table caption, %3 field caption, %4 = table caption, %5 = field caption';\n- WrongPrecOnUOMExpectedQtyErr: Label 'The value in the %1 field on the %2 page is causing the rounding precision for the %3 field to be incorrect.', Comment = '%1 = field caption, %2 = table caption, %3 field caption';\n Item: Record Item;\n ReservEntry: Record \"Reservation Entry\";\n GLSetup: Record \"General Ledger Setup\";\n@@ -2002,7 +1998,7 @@ table 5407 \"Prod. Order Component\"\n exit;\n \n exit(UOMMgt.CalcBaseQty(\n- \"Item No.\", \"Variant Code\", \"Unit of Measure Code\", Qty, \"Qty. per Unit of Measure\", \"Qty. Rounding Precision (Base)\", FieldCaption(\"Qty. Rounding Precision\"), FromFieldName, ToFieldName));\n+ \"Item No.\", \"Variant Code\", \"Unit of Measure Code\", Qty, \"Qty. per Unit of Measure\", 0, FieldCaption(\"Qty. Rounding Precision\"), FromFieldName, ToFieldName));\n end;\n \n procedure CreateDimFromDefaultDim()\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-209496", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\nindex 10d284cc..768dec3d 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\n@@ -132,8 +132,10 @@ page 835 \"Reminder Level Communication\"\n LocalLanguage.FindFirst();\n \n // Necessary when the user has deleted all languages or has not created any language yet\n- if IsNullGuid(Rec.\"Reminder Attachment Text\") then\n+ if IsNullGuid(Rec.\"Reminder Attachment Text\") then begin\n ReminderCommunication.SetDefaultContentForNewLanguage(CreateGuid(), LocalLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Level\", Rec.SystemId);\n+ Rec.Get(Rec.\"Reminder Terms Code\", Rec.\"No.\");\n+ end;\n \n SelectedNewLanguage := true;\n SelectLanguageAndText(LocalLanguage.Code, true);\ndiff --git a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al\nindex 5cce8ad7..2e1faef8 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al\n@@ -125,8 +125,10 @@ page 1897 \"Reminder Term Communication\"\n LocalLanguage.FindFirst();\n \n // Necessary when the user has deleted all languages or has not created any language yet\n- if IsNullGuid(Rec.\"Reminder Attachment Text\") then\n+ if IsNullGuid(Rec.\"Reminder Attachment Text\") then begin\n ReminderCommunication.SetDefaultContentForNewLanguage(CreateGuid(), LocalLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Term\", Rec.SystemId);\n+ Rec.Get(Rec.Code);\n+ end;\n \n SelectedNewLanguage := true;\n SelectLanguageAndText(LocalLanguage.Code, true);\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-208748", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\nindex 7c1943c5..fc171660 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\n@@ -123,6 +123,7 @@ codeunit 87 \"Blanket Sales Order to Order\"\n ATOLink: Record \"Assemble-to-Order Link\";\n PrepmtMgt: Codeunit \"Prepayment Mgt.\";\n SalesLineReserve: Codeunit \"Sales Line-Reserve\";\n+ BlanketLineToOrderLineMap: Dictionary of [Integer, Integer];\n QuantityOnOrders: Decimal;\n IsHandled: Boolean;\n ProcessLine: Boolean;\n@@ -166,6 +167,11 @@ codeunit 87 \"Blanket Sales Order to Order\"\n SalesLineOrder.\"Line No.\" := NextLineNo;\n SalesLineOrder.\"Blanket Order No.\" := SalesHeaderBlanketOrder.\"No.\";\n SalesLineOrder.\"Blanket Order Line No.\" := SalesLineBlanketOrder.\"Line No.\";\n+ if SalesLineBlanketOrder.IsExtendedText() then begin\n+ if BlanketLineToOrderLineMap.ContainsKey(SalesLineBlanketOrder.\"Attached to Line No.\") then\n+ SalesLineOrder.\"Attached to Line No.\" := BlanketLineToOrderLineMap.Get(SalesLineBlanketOrder.\"Attached to Line No.\");\n+ end else\n+ BlanketLineToOrderLineMap.Add(SalesLineBlanketOrder.\"Line No.\", NextLineNo);\n if (SalesLineOrder.\"No.\" <> '') and (SalesLineOrder.Type <> SalesLineOrder.Type::\" \") then begin\n SalesLineOrder.Amount := 0;\n SalesLineOrder.\"Amount Including VAT\" := 0;\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-209450", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\nindex bb5d38d2..d33e77d9 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\n@@ -1075,6 +1075,8 @@ table 1003 \"Job Planning Line\"\n TestField(Type, Type::Item);\n TestField(\"No.\");\n TestField(\"Usage Link\");\n+ if IsNonInventoriableItem() then\n+ Error(NonInvReserveTypeErr, \"No.\", Reserve);\n end;\n CalcFields(\"Reserved Qty. (Base)\");\n if (Reserve = Reserve::Never) and (\"Reserved Qty. (Base)\" > 0) then\n@@ -1525,6 +1527,7 @@ table 1003 \"Job Planning Line\"\n DifferentQtyToAssembleErr: Label ' must be equal to %1.', Comment = 'Qty. to Assemble must be equal to Quantity, %1 = Quantity';\n CannotBeMoreErr: Label 'cannot be more than %1', Comment = '%1 = Quantity';\n ConfirmDeleteQst: Label '%1 = %2 is greater than %3 = %4. If you delete the %5, the items will remain in the operation area until you put them away.\\Any related item tracking information defined during the pick process will be deleted.\\Do you still want to delete the %5?', Comment = '%1 = FieldCaption(\"Qty. Picked\"), %2 = \"Qty. Picked\", %3 = FieldCaption(\"Qty. Posted\"), %4 = \"Qty. Posted\", %5 = TableCaption';\n+ NonInvReserveTypeErr: Label 'Non-inventory and service items must have the reserve type Never. The current reserve type for item %1 is %2.', Comment = '%1 is Item No., %2 is Reserve';\n \n protected var\n Job: Record Job;\ndiff --git a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLineReserve.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLineReserve.Codeunit.al\nindex 9a2e42ec..2dd31dbd 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLineReserve.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLineReserve.Codeunit.al\n@@ -31,6 +31,7 @@ codeunit 1032 \"Job Planning Line-Reserve\"\n Text004Err: Label 'must not be changed when a quantity is reserved', Comment = 'starts with some field name';\n Text005Err: Label 'Codeunit is not initialized correctly.';\n InvalidLineTypeErr: Label 'must be %1 or %2', Comment = '%1 and %2 are line type options, fx. Budget or Billable';\n+ NonInvItemReserveErr: Label 'Item %1 is not an inventoriable item and cannot be reserved.', Comment = '%1 is Item No.';\n SummaryTypeTxt: Label '%1, %2', Locked = true;\n SourceDoc2Txt: Label '%1 %2', Locked = true;\n \n@@ -44,6 +45,8 @@ codeunit 1032 \"Job Planning Line-Reserve\"\n \n JobPlanningLine.TestField(Type, JobPlanningLine.Type::Item);\n JobPlanningLine.TestField(\"No.\");\n+ if JobPlanningLine.IsNonInventoriableItem() then\n+ Error(NonInvItemReserveErr, JobPlanningLine.\"No.\");\n JobPlanningLine.TestField(\"Planning Date\");\n \n JobPlanningLine.CalcFields(\"Reserved Qty. (Base)\");\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136302'\nCodeunit 136302 Job Consumption Purchase\n Testfunction PurchaseLineNotReservedWhenItemTypeNonInventoryOrService Failure (17.994 seconds)\n Error:\n Non-inventory and service items must have the reserve type Never. The current reserve type for item GL00000001 is Optional.\n Call Stack:\n \"Job Planning Line\"(Table 1003).\"Reserve - OnValidate\"(Trigger) line 7 - Base Application by Microsoft version 26.0.0.0\n \"Job Consumption Purchase\"(CodeUnit 136302).PurchaseLineNotReservedWhenItemTypeNonInventoryOrService line 34 - Tests-Job by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0"} +{"instance_id": "microsoftInternal__NAV-201169", "project": "Shopify", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\nindex 38d77856..8125c150 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n@@ -26,6 +26,7 @@ codeunit 30174 \"Shpfy Create Product\"\n Getlocations: Boolean;\n ProductId: BigInteger;\n ItemVariantIsBlockedLbl: Label 'Item variant is blocked or sales blocked.';\n+ ItemHasNoTitleLbl: Label 'Item has no title (empty description). Item must have a description to be exported to Shopify.';\n \n trigger OnRun()\n var\n@@ -51,13 +52,19 @@ codeunit 30174 \"Shpfy Create Product\"\n TempShopifyProduct: Record \"Shpfy Product\" temporary;\n TempShopifyVariant: Record \"Shpfy Variant\" temporary;\n TempShopifyTag: Record \"Shpfy Tag\" temporary;\n+ SkippedRecord: Codeunit \"Shpfy Skipped Record\";\n begin\n CreateTempProduct(Item, TempShopifyProduct, TempShopifyVariant, TempShopifyTag);\n+ if TempShopifyProduct.Title = '' then begin\n+ SkippedRecord.LogSkippedRecord(Item.RecordId, ItemHasNoTitleLbl, Shop);\n+ exit;\n+ end;\n if not VariantApi.FindShopifyProductVariant(TempShopifyProduct, TempShopifyVariant) then\n ProductId := ProductApi.CreateProduct(TempShopifyProduct, TempShopifyVariant, TempShopifyTag)\n else\n ProductId := TempShopifyProduct.Id;\n- ProductExport.UpdateProductTranslations(ProductId, Item);\n+ if ProductId <> 0 then\n+ ProductExport.UpdateProductTranslations(ProductId, Item);\n end;\n \n internal procedure CreateTempProduct(Item: Record Item; var TempShopifyProduct: Record \"Shpfy Product\" temporary; var TempShopifyVariant: Record \"Shpfy Variant\" temporary; var TempShopifyTag: Record \"Shpfy Tag\" temporary)\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139581'\nCodeunit 139581 Shpfy Skipped Record Log Test\n Testfunction UnitTestLogItemEmptyDescription Failure (7.35 seconds)\n Error:\n The response from Shopify contains no JSON. \\Requested: {\"query\":\"{ locations(first: 20, includeLegacy: true) { pageInfo { hasNextPage endCursor } nodes { legacyResourceId isActive isPrimary name fulfillmentService { serviceName }}}}\"} \\Response: \n Call Stack:\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 21 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 4 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 6 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Sync Shop Locations\"(CodeUnit 30198).SyncLocations line 20 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Sync Shop Locations\"(CodeUnit 30198).OnRun(Trigger) line 4 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Create Product\"(CodeUnit 30174).OnRun(Trigger) line 5 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Add Item to Shopify\"(Report 30106).\"Item - OnAfterGetRecord\"(Trigger) line 12 - Shopify Connector by Microsoft version 26.0.0.0"} +{"instance_id": "microsoftInternal__NAV-209835", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\nindex 78996b41..43c6dbb9 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\n@@ -473,7 +473,8 @@ report 99001020 \"Carry Out Action Msg. - Plan.\"\n if CurrReqWkshTemp <> '' then\n \"Requisition Line\".SetRange(\"Journal Batch Name\", CurrReqWkshName);\n \"Requisition Line\".SetRange(Type, \"Requisition Line\".Type::Item);\n- \"Requisition Line\".SetFilter(\"Action Message\", '<>%1', \"Requisition Line\".\"Action Message\"::\" \");\n+ if \"Requisition Line\".GetFilter(\"Action Message\") = '' then\n+ \"Requisition Line\".SetFilter(\"Action Message\", '<>%1', \"Requisition Line\".\"Action Message\"::\" \");\n OnAfterSetReqLineFilters(\"Requisition Line\");\n end;\n \n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-211548", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/AllocationAccount/GenJournalAllocAccMgt.Codeunit.al b/App/Layers/W1/BaseApp/Finance/AllocationAccount/GenJournalAllocAccMgt.Codeunit.al\nindex fbe1c90d..0dc4e8c1 100644\n--- a/App/Layers/W1/BaseApp/Finance/AllocationAccount/GenJournalAllocAccMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/AllocationAccount/GenJournalAllocAccMgt.Codeunit.al\n@@ -281,7 +281,7 @@ codeunit 2677 \"Gen. Journal Alloc. Acc. Mgt.\"\n LastJournalLineNo := AllocationAccountGenJournalLine.\"Line No.\";\n \n Increment := GetLineIncrement(AllocationAccountGenJournalLine.\"Line No.\", NextJournalLineNo, AllocationLine.Count);\n- if Increment < -1 then begin\n+ if Increment < 0 then begin\n Increment := 10000;\n LastJournalLineNo := GetLastGenJournalLine(AllocationAccountGenJournalLine)\n end;\n@@ -466,7 +466,7 @@ codeunit 2677 \"Gen. Journal Alloc. Acc. Mgt.\"\n Increment: Integer;\n begin\n Increment := Round((NextLineNo - CurrentLineNo) / LinesToInsert, 1);\n- if Increment < LinesToInsert then\n+ if Increment * LinesToInsert >= (NextLineNo - CurrentLineNo) then\n exit(-1);\n \n if Increment >= 1000 then\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-209737", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WhseActivityPost.Codeunit.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WhseActivityPost.Codeunit.al\nindex 191a270e..fe342312 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WhseActivityPost.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WhseActivityPost.Codeunit.al\n@@ -465,6 +465,7 @@ codeunit 7324 \"Whse.-Activity-Post\"\n SalesRelease.Reopen(SalesHeader);\n SalesRelease.SetSkipCheckReleaseRestrictions();\n SalesHeader.SetHideValidationDialog(true);\n+ SalesHeader.SetCalledFromWhseDoc(true);\n SalesHeader.Validate(\"Posting Date\", WhseActivHeader.\"Posting Date\");\n OnReleaseSalesDocumentOnBeforeSalesReleaseRun(SalesHeader, WhseActivHeader);\n SalesRelease.Run(SalesHeader);\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-211521", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al b/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\nindex 401cabee..0883009a 100644\n--- a/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\n+++ b/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\n@@ -566,7 +566,7 @@ table 5050 Contact\n CalcFormula = min(\"To-do\".Date where(\"Contact Company No.\" = field(\"Company No.\"),\n \"Contact No.\" = field(filter(\"Lookup Contact No.\")),\n Closed = const(false),\n- \"System To-do Type\" = const(\"Contact Attendee\")));\n+ \"System To-do Type\" = filter(Organizer | \"Contact Attendee\")));\n Caption = 'Next Task Date';\n Editable = false;\n FieldClass = FlowField;\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-213683", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al\nindex 9735e4b2..23f97241 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al\n@@ -163,6 +163,7 @@ codeunit 99000795 \"Mfg. Item Integration\"\n [EventSubscriber(ObjectType::Table, Database::\"Item Variant\", 'OnBeforeRenameEvent', '', false, false)]\n local procedure OnBeforeRenameItemVariant(var Rec: Record \"Item Variant\"; var xRec: Record \"Item Variant\")\n var\n+ Item: Record Item;\n BOMComponent: Record \"BOM Component\";\n AssemblyHeader: Record \"Assembly Header\";\n AssemblyLine: Record \"Assembly Line\";\n@@ -177,6 +178,12 @@ codeunit 99000795 \"Mfg. Item Integration\"\n ProdOrderLine: Record \"Prod. Order Line\";\n begin\n if xRec.\"Item No.\" <> Rec.\"Item No.\" then begin\n+ // If the original item no longer exists, this rename was cascaded from an Item No. rename.\n+ // In that case, allow the rename without blocking checks.\n+ Item.SetLoadFields(\"No.\");\n+ if not Item.Get(xRec.\"Item No.\") then\n+ exit;\n+\n ProdOrderLine.SetRange(\"Item No.\", xRec.\"Item No.\");\n ProdOrderLine.SetRange(\"Variant Code\", xRec.Code);\n if not ProdOrderLine.IsEmpty() then\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-213671", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al b/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\nindex c70c6c1e..81667180 100644\n--- a/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\n+++ b/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\n@@ -630,7 +630,7 @@ page 5123 \"Opportunity List\"\n if Filter <> '' then begin\n RecRef.GetTable(RecVar);\n IndexFieldRef := RecRef.Field(IndexFieldNo);\n- IndexFieldRef.SetRange(Filter);\n+ IndexFieldRef.SetFilter(Filter);\n if RecRef.FindFirst() then begin\n TextFieldRef := RecRef.Field(TextFieldNo);\n CaptionText := CopyStr(Format(IndexFieldRef.Value) + ' ' + Format(TextFieldRef.Value), 1, MaxStrLen(CaptionText));\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-215645", "project": "SubscriptionBilling", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Apps/W1/SubscriptionBilling/App/Sales Service Commitments/Table Extensions/SalesLine.TableExt.al b/App/Apps/W1/SubscriptionBilling/App/Sales Service Commitments/Table Extensions/SalesLine.TableExt.al\nindex 92df07ef..d0e33572 100644\n--- a/App/Apps/W1/SubscriptionBilling/App/Sales Service Commitments/Table Extensions/SalesLine.TableExt.al\t\n+++ b/App/Apps/W1/SubscriptionBilling/App/Sales Service Commitments/Table Extensions/SalesLine.TableExt.al\t\n@@ -265,8 +265,10 @@ tableextension 8054 \"Sales Line\" extends \"Sales Line\"\n if Rec.IsTypeServiceObject() then\n Rec.Validate(\"Exclude from Doc. Total\", IsContractRenewalLocal);\n end else\n- if (Rec.Type = Rec.Type::Item) and (Rec.\"No.\" <> '') and (not Rec.IsLineAttachedToBillingLine()) then\n- Rec.Validate(\"Exclude from Doc. Total\", ItemManagement.IsServiceCommitmentItem(Rec.\"No.\"));\n+ if (Rec.Type = Rec.Type::Item) and (Rec.\"No.\" <> '') and (not Rec.IsLineAttachedToBillingLine()) and\n+ IsSalesDocumentTypeWithServiceCommitments()\n+ then\n+ Rec.Validate(\"Exclude from Doc. Total\", ItemManagement.IsServiceCommitmentItem(Rec.\"No.\"));\n end;\n \n internal procedure IsLineWithServiceObject(): Boolean\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-220452", "project": "Shopify", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al b/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al\nindex 62d92a55..9d20eb16 100644\n--- a/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al\n+++ b/App/Apps/W1/Shopify/app/src/Transactions/Reports/ShpfySuggestPayments.Report.al\n@@ -213,6 +213,8 @@ report 30118 \"Shpfy Suggest Payments\"\n SalesCreditMemoHeader: Record \"Sales Cr.Memo Header\";\n CustLedgerEntry: Record \"Cust. Ledger Entry\";\n RefundHeader: Record \"Shpfy Refund Header\";\n+ DocLinkToBCDoc: Record \"Shpfy Doc. Link To Doc.\";\n+ ProcessedInvoices: List of [Code[20]];\n AmountToApply: Decimal;\n Applied: Boolean;\n begin\n@@ -224,8 +226,9 @@ report 30118 \"Shpfy Suggest Payments\"\n SalesInvoiceHeader.SetLoadFields(\"No.\", \"Shpfy Order Id\");\n SalesInvoiceHeader.SetRange(\"Shpfy Order Id\", OrderTransaction.\"Shopify Order Id\");\n SalesInvoiceHeader.SetRange(Closed, false);\n- if SalesInvoiceHeader.FindSet() then begin\n+ if SalesInvoiceHeader.FindSet() then\n repeat\n+ ProcessedInvoices.Add(SalesInvoiceHeader.\"No.\");\n CustLedgerEntry.SetAutoCalcFields(\"Remaining Amount\");\n CustLedgerEntry.SetRange(\"Open\", true);\n CustLedgerEntry.SetRange(\"Applies-to ID\", '');\n@@ -239,9 +242,32 @@ report 30118 \"Shpfy Suggest Payments\"\n end;\n until SalesInvoiceHeader.Next() = 0;\n \n- if Applied and (AmountToApply > 0) then\n- CreateSuggestPaymentGLAccount(AmountToApply, true);\n- end;\n+ DocLinkToBCDoc.SetRange(\"Shopify Document Type\", \"Shpfy Shop Document Type\"::\"Shopify Shop Order\");\n+ DocLinkToBCDoc.SetRange(\"Shopify Document Id\", OrderTransaction.\"Shopify Order Id\");\n+ DocLinkToBCDoc.SetRange(\"Document Type\", \"Shpfy Document Type\"::\"Posted Sales Invoice\");\n+ if DocLinkToBCDoc.FindSet() then\n+ repeat\n+ if not ProcessedInvoices.Contains(DocLinkToBCDoc.\"Document No.\") then begin\n+ SalesInvoiceHeader.SetLoadFields(\"No.\", Closed);\n+ if SalesInvoiceHeader.Get(DocLinkToBCDoc.\"Document No.\") then\n+ if not SalesInvoiceHeader.Closed then begin\n+ CustLedgerEntry.SetAutoCalcFields(\"Remaining Amount\");\n+ CustLedgerEntry.SetRange(\"Open\", true);\n+ CustLedgerEntry.SetRange(\"Applies-to ID\", '');\n+ CustLedgerEntry.SetRange(\"Document Type\", CustLedgerEntry.\"Document Type\"::Invoice);\n+ CustLedgerEntry.SetRange(\"Document No.\", SalesInvoiceHeader.\"No.\");\n+ if CustLedgerEntry.FindSet() then begin\n+ Applied := true;\n+ repeat\n+ CreateSuggestPaymentDocument(CustLedgerEntry, AmountToApply, true);\n+ until CustLedgerEntry.Next() = 0;\n+ end;\n+ end;\n+ end;\n+ until DocLinkToBCDoc.Next() = 0;\n+\n+ if Applied and (AmountToApply > 0) then\n+ CreateSuggestPaymentGLAccount(AmountToApply, true);\n end;\n OrderTransaction.Type::Refund:\n begin\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-206135", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostShipment.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostShipment.Codeunit.al\nindex ce405d49..4d90c0ba 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostShipment.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostShipment.Codeunit.al\n@@ -192,10 +192,11 @@ codeunit 5704 \"TransferOrder-Post Shipment\"\n if WhseShip then\n WhseShptLine.LockTable();\n TransHeader.LockTable();\n- if WhseShip then begin\n- WhsePostShpt.PostUpdateWhseDocuments(WhseShptHeader);\n- TempWhseShptHeader.Delete();\n- end;\n+ if WhseShip then\n+ if not PreviewMode then begin\n+ WhsePostShpt.PostUpdateWhseDocuments(WhseShptHeader);\n+ TempWhseShptHeader.Delete();\n+ end;\n \n TransHeader.\"Last Shipment No.\" := TransShptHeader.\"No.\";\n TransHeader.Modify();\ndiff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferWhsePostShipment.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferWhsePostShipment.Codeunit.al\nindex 497b9a81..df69dac3 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferWhsePostShipment.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferWhsePostShipment.Codeunit.al\n@@ -326,6 +326,7 @@ codeunit 5748 \"Transfer Whse. Post Shipment\"\n else begin\n TransferOrderPostShipment.SetWhseShptHeader(WhseShptHeader);\n TransferOrderPostShipment.SetSuppressCommit(WhsePostParameters.\"Suppress Commit\" or WhsePostParameters.\"Preview Posting\");\n+ TransferOrderPostShipment.SetPreviewMode(WhsePostParameters.\"Preview Posting\");\n TransferOrderPostShipment.RunWithCheck(TransHeader);\n CounterSourceDocOK := CounterSourceDocOK + 1;\n end;\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-217104", "project": "AutomaticAccountCodes", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al b/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\nindex 0e4bcfe3..8b4f6880 100644\n--- a/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\n+++ b/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\n@@ -72,6 +72,7 @@ codeunit 4850 \"AA Codes Posting Helper\"\n NoOfAutoAccounts: Decimal;\n TotalAmount: Decimal;\n TotalAltAmount: Decimal;\n+ TotalAmountLCY: Decimal;\n SourceCurrBaseAmount: Decimal;\n AccLine: Integer;\n begin\n@@ -121,6 +122,9 @@ codeunit 4850 \"AA Codes Posting Helper\"\n GenJnlLine2.Validate(Amount, GenJnlLine2.Amount - TotalAmount);\n if (AccLine = NoOfAutoAccounts) and (TotalAltAmount <> 0) then\n GenJnlLine2.Validate(\"Source Currency Amount\", GenJnlLine2.\"Source Currency Amount\" - TotalAltAmount);\n+ TotalAmountLCY := TotalAmountLCY + GenJnlLine2.\"Amount (LCY)\";\n+ if (AccLine = NoOfAutoAccounts) and (GenJnlLine.\"Currency Code\" <> '') and (TotalAmountLCY <> 0) then\n+ GenJnlLine2.\"Amount (LCY)\" := GenJnlLine2.\"Amount (LCY)\" - TotalAmountLCY;\n GenJnlCheckLine.RunCheck(GenJnlLine2);\n \n sender.InitGLEntry(GenJnlLine2, GLEntry,\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-207247", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\nindex bd370429..be4c099e 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n@@ -1539,8 +1539,12 @@ codeunit 99000813 \"Carry Out Action\"\n ActiveVersionCode := VersionManagement.GetBOMVersion(ProductionBOMHeader.\"No.\", WorkDate(), true);\n \n ProductionBOMLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n+ ProductionBOMLine.SetRange(\"Version Code\", ActiveVersionCode);\n ProductionBOMLine.SetRange(Type, ProductionBOMLine.Type::Item);\n ProductionBOMLine.SetRange(\"No.\", ProdOrderComponent.\"Item No.\");\n+ ProductionBOMLine.SetRange(Position, ProdOrderComponent.Position);\n+ ProductionBOMLine.SetRange(\"Position 2\", ProdOrderComponent.\"Position 2\");\n+ ProductionBOMLine.SetRange(\"Position 3\", ProdOrderComponent.\"Position 3\");\n if ProductionBOMLine.FindSet() then\n repeat\n ProductionBOMCommentLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-207177", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\nindex a84b0558..96765d55 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n@@ -42,6 +42,9 @@ page 7504 \"Item Attribute Value List\"\n DeleteItemAttributeValueMapping(ItemAttribute.ID);\n end;\n \n+ if Rec.Value = '' then\n+ exit;\n+\n if not Rec.FindAttributeValue(ItemAttributeValue) then\n Rec.InsertItemAttributeValue(ItemAttributeValue, Rec);\n \n@@ -82,6 +85,15 @@ page 7504 \"Item Attribute Value List\"\n OnBeforeItemAttributeValueMappingModify(ItemAttributeValueMapping, ItemAttributeValue, RelatedRecordCode);\n ItemAttributeValueMapping.Modify();\n OnAfterItemAttributeValueMappingModify(ItemAttributeValueMapping, Rec);\n+ end else begin\n+ ItemAttributeValueMapping.Reset();\n+ ItemAttributeValueMapping.Init();\n+ ItemAttributeValueMapping.\"Table ID\" := Database::Item;\n+ ItemAttributeValueMapping.\"No.\" := RelatedRecordCode;\n+ ItemAttributeValueMapping.\"Item Attribute ID\" := ItemAttributeValue.\"Attribute ID\";\n+ ItemAttributeValueMapping.\"Item Attribute Value ID\" := ItemAttributeValue.ID;\n+ OnBeforeItemAttributeValueMappingInsert(ItemAttributeValueMapping, ItemAttributeValue, Rec);\n+ ItemAttributeValueMapping.Insert();\n end;\n \n ItemAttribute.Get(Rec.\"Attribute ID\");\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-207236", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseHeader.Table.al b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseHeader.Table.al\nindex 18898d3e..6853ea79 100644\n--- a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseHeader.Table.al\n@@ -6420,6 +6420,7 @@ table 38 \"Purchase Header\"\n exit;\n \n if ReplacePostingDate then begin\n+ xRec := Rec;\n \"Posting Date\" := PostingDateReq;\n Validate(\"Currency Code\");\n end;\ndiff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al b/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\nindex fbf39fce..81fb4dbf 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\n@@ -7037,6 +7037,7 @@ table 36 \"Sales Header\"\n if DeferralHeadersExist() then\n exit;\n \n+ xRec := Rec;\n \"Posting Date\" := PostingDateReq;\n Validate(\"Currency Code\");\n \n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-206977", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\nindex 0877c357..49f16acc 100644\n--- a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\n+++ b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\n@@ -161,7 +161,12 @@ page 903 \"Assembly Lines\"\n AssemblyHeader: Record \"Assembly Header\";\n begin\n AssemblyHeader.Get(Rec.\"Document Type\", Rec.\"Document No.\");\n- PAGE.Run(PAGE::\"Assembly Order\", AssemblyHeader);\n+ case Rec.\"Document Type\" of\n+ Rec.\"Document Type\"::\"Blanket Order\":\n+ PAGE.Run(PAGE::\"Blanket Assembly Order\", AssemblyHeader);\n+ else\n+ PAGE.Run(PAGE::\"Assembly Order\", AssemblyHeader);\n+ end;\n end;\n }\n action(\"Reservation Entries\")\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-191624", "project": "ExcelReports", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": false, "output": "diff --git a/App/Apps/W1/ExcelReports/app/src/Financials/EXRFixedAssetAnalysisExcel.Report.al b/App/Apps/W1/ExcelReports/app/src/Financials/EXRFixedAssetAnalysisExcel.Report.al\nindex 686231b5..47442e6b 100644\n--- a/App/Apps/W1/ExcelReports/app/src/Financials/EXRFixedAssetAnalysisExcel.Report.al\n+++ b/App/Apps/W1/ExcelReports/app/src/Financials/EXRFixedAssetAnalysisExcel.Report.al\n@@ -32,6 +32,18 @@ report 4412 \"EXR Fixed Asset Analysis Excel\"\n column(DisposalDateField; DisposalDate) { }\n column(GlobalDimension1Code; \"Global Dimension 1 Code\") { IncludeCaption = true; }\n column(GlobalDimension2Code; \"Global Dimension 2 Code\") { IncludeCaption = true; }\n+ trigger OnAfterGetRecord()\n+ var\n+ FADepreciationBook: Record \"FA Depreciation Book\";\n+ begin\n+ AcquisitionDate := 0D;\n+ DisposalDate := 0D;\n+ if FADepreciationBook.Get(FixedAssetData.\"No.\", DepreciationBookCode) then begin\n+ AcquisitionDate := FADepreciationBook.\"Acquisition Date\";\n+ DisposalDate := FADepreciationBook.\"Disposal Date\";\n+ end;\n+ end;\n+\n dataitem(FAPostingType; \"FA Posting Type\")\n {\n DataItemTableView = where(\"FA Entry\" = const(true));\n@@ -50,8 +62,6 @@ report 4412 \"EXR Fixed Asset Analysis Excel\"\n if ShouldSkipRecord() then\n CurrReport.Skip();\n FADepreciationBook.Get(FixedAssetData.\"No.\", DepreciationBookCode);\n- AcquisitionDate := FADepreciationBook.\"Acquisition Date\";\n- DisposalDate := FADepreciationBook.\"Disposal Date\";\n if BudgetReport then\n BudgetDepreciation.Calculate(FixedAssetData.\"No.\", StartingDate - 1, EndingDate, DepreciationBookCode, BeforeAmount, EndingAmount);\n \n", "error_message": "Build or publish failed for App\\Apps\\W1\\ExcelReports\\app:\nC:\\Source\\App\\Apps\\W1\\ExcelReports\\app\\src\\Financials\\EXRFixedAssetAnalysisExcel.Report.al(47,13): error AL0104: Syntax error, '}' expected\nC:\\Source\\App\\Apps\\W1\\ExcelReports\\app\\src\\Financials\\EXRFixedAssetAnalysisExcel.Report.al(79,5): error AL0198: Expected one of the application object keywords (table, tableextension, page, pageextension, pagecustomization, profile, profileextension, codeunit, report, reportextension, xmlport, query, controladdin, dotnet, enum, enumextension, interface, permissionset, permissionsetextension, entitlement)\nC:\\Source\\App\\Apps\\W1\\ExcelReports\\app\\src\\Financials\\EXRFixedAssetAnalysisExcel.Report.al(225,35): error AL0114: Syntax error, integer literal expected\nC:\\Source\\App\\Apps\\W1\\ExcelReports\\app\\src\\Financials\\EXRFixedAssetAnalysisExcel.Report.al(225,54): error AL0104: Syntax error, '{' expected\nC:\\Source\\App\\Apps\\W1\\ExcelReports\\app\\src\\Financials\\EXRFixedAssetAnalysisExcel.Report.al(225,54): error AL0104: Syntax error, '}' expected\nC:\\Source\\App\\Apps\\W1\\ExcelReports\\app\\src\\Financials\\EXRFixedAssetAnalysisExcel.Report.al(225,54): error AL0198: Expected one of the application object keywords (table, tableextension, page, pageextension, pagecustomization, profile, profileextension, codeunit, report, reportextension, xmlport, query, controladdin, dotnet, enum, enumextension, interface, permissionset, permissionsetextension, entitlement)"} +{"instance_id": "microsoftInternal__NAV-195193", "project": "ExcelReports", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al b/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\nindex 00c238ae..d6f417de 100644\n--- a/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\n+++ b/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\n@@ -156,7 +156,7 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Net Change\" > 0) then\n+ if (\"Net Change (ACY)\" > 0) then\n Validate(\"Net Change (Debit) (ACY)\", \"Net Change (ACY)\")\n else\n Validate(\"Net Change (Credit) (ACY)\", -\"Net Change (ACY)\");\n@@ -176,7 +176,7 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Balance\" > 0) then\n+ if (\"Balance (ACY)\" > 0) then\n Validate(\"Balance (Debit) (ACY)\", \"Balance (ACY)\")\n else\n Validate(\"Balance (Credit) (ACY)\", -\"Balance (ACY)\");\n@@ -196,7 +196,7 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Net\" > 0) then\n+ if (\"Last Period Net (ACY)\" > 0) then\n Validate(\"Last Period Net (Debit) (ACY)\", \"Last Period Net (ACY)\")\n else\n Validate(\"Last Period Net (Credit) (ACY)\", -\"Last Period Net (ACY)\");\n@@ -216,7 +216,7 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Bal.\" > 0) then\n+ if (\"Last Period Bal. (ACY)\" > 0) then\n Validate(\"Last Period Bal. (Debit) (ACY)\", \"Last Period Bal. (ACY)\")\n else\n Validate(\"Last Period Bal. (Cred.) (ACY)\", -\"Last Period Bal. (ACY)\");\ndiff --git a/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al b/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al\nindex 7cf0915e..748561b6 100644\n--- a/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al\n+++ b/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al\n@@ -120,6 +120,7 @@ codeunit 4410 \"Trial Balance\"\n local procedure InsertTrialBalanceDataForGLAccountWithFilters(var GLAccount: Record \"G/L Account\"; Dimension1ValueCode: Code[20]; Dimension2ValueCode: Code[20]; BusinessUnitCode: Code[20]; var TrialBalanceData: Record \"EXR Trial Balance Buffer\"; var Dimension1Values: Record \"Dimension Value\" temporary; var Dimension2Values: Record \"Dimension Value\" temporary)\n begin\n GlAccount.CalcFields(\"Net Change\", \"Balance at Date\", \"Additional-Currency Net Change\", \"Add.-Currency Balance at Date\", \"Budgeted Amount\", \"Budget at Date\");\n+ Clear(TrialBalanceData);\n TrialBalanceData.\"G/L Account No.\" := GlAccount.\"No.\";\n TrialBalanceData.\"Dimension 1 Code\" := Dimension1ValueCode;\n TrialBalanceData.\"Dimension 2 Code\" := Dimension2ValueCode;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139544'\nCodeunit 139544 Trial Balance Excel Reports\n Testfunction TrialBalanceBufferNetChangeSplitsIntoDebitAndCreditWhenCalledSeveralTimes Failure (0.45 seconds)\n Error:\n Assert.AreEqual failed. Expected:<110> (Decimal). Actual:<947> (Decimal). Split in line in credit and debit should be the same as the inserted value..\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"Trial Balance Excel Reports\"(CodeUnit 139544).TrialBalanceBufferNetChangeSplitsIntoDebitAndCreditWhenCalledSeveralTimes line 38 - Dynamics BC Excel Reports Tests by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"instance_id": "microsoftInternal__NAV-207878", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLine.Table.al b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLine.Table.al\nindex 62ba45ed..11ea3f7c 100644\n--- a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLine.Table.al\n@@ -1506,6 +1506,8 @@ table 901 \"Assembly Line\"\n else\n GrossRequirement -= OldAssemblyLine.\"Remaining Quantity (Base)\";\n \n+ AvailableToPromise.SetAsmCompDueDateFilter(\"Due Date\");\n+\n CompanyInfo.Get();\n LookaheadDateFormula := CompanyInfo.\"Check-Avail. Period Calc.\";\n if Format(LookaheadDateFormula) <> '' then begin\ndiff --git a/App/Layers/W1/BaseApp/Inventory/Availability/AvailabletoPromise.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Availability/AvailabletoPromise.Codeunit.al\nindex a486f294..440e304e 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Availability/AvailabletoPromise.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Availability/AvailabletoPromise.Codeunit.al\n@@ -44,6 +44,7 @@ codeunit 5790 \"Available to Promise\"\n ChangedAssemblyLine: Record \"Assembly Line\";\n OldRecordExists: Boolean;\n ReqShipDate: Date;\n+ AsmCompDueDateFilter: Date;\n AllFieldCalculated: Boolean;\n PrevItemNo: Code[20];\n PrevItemFilters: Text;\n@@ -468,6 +469,11 @@ codeunit 5790 \"Available to Promise\"\n ChangedAssemblyLine := AssemblyLine;\n end;\n \n+ procedure SetAsmCompDueDateFilter(DueDateFilter: Date)\n+ begin\n+ AsmCompDueDateFilter := DueDateFilter;\n+ end;\n+\n local procedure CalcReqShipDate(SalesLine: Record \"Sales Line\"): Date\n begin\n if SalesLine.\"Requested Delivery Date\" = 0D then\n@@ -661,10 +667,11 @@ codeunit 5790 \"Available to Promise\"\n \n if AssemblyLine.FindItemToPlanLines(Item, AssemblyLine.\"Document Type\"::Order) then\n repeat\n- if not AreEqualAssemblyLines(ChangedAssemblyLine, AssemblyLine) then begin\n- AssemblyLine.CalcFields(\"Reserved Qty. (Base)\");\n- UpdateGrossRequirement(AvailabilityAtDate, AssemblyLine.\"Due Date\", AssemblyLine.\"Remaining Quantity (Base)\" - AssemblyLine.\"Reserved Qty. (Base)\");\n- end;\n+ if not AreEqualAssemblyLines(ChangedAssemblyLine, AssemblyLine) then\n+ if (AsmCompDueDateFilter = 0D) or (AssemblyLine.\"Due Date\" <= AsmCompDueDateFilter) then begin\n+ AssemblyLine.CalcFields(\"Reserved Qty. (Base)\");\n+ UpdateGrossRequirement(AvailabilityAtDate, AssemblyLine.\"Due Date\", AssemblyLine.\"Remaining Quantity (Base)\" - AssemblyLine.\"Reserved Qty. (Base)\");\n+ end;\n until AssemblyLine.Next() = 0;\n end;\n \ndiff --git a/App/Layers/W1/BaseApp/Inventory/Availability/ItemCheckAvail.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Availability/ItemCheckAvail.Codeunit.al\nindex 26f5dfa5..9eb2bc7e 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Availability/ItemCheckAvail.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Availability/ItemCheckAvail.Codeunit.al\n@@ -481,6 +481,7 @@ codeunit 311 \"Item-Check Avail.\"\n exit(false);\n \n Clear(AvailableToPromise);\n+ AvailableToPromise.SetAsmCompDueDateFilter(AssemblyLine.\"Due Date\");\n \n OldItemNetChange := 0;\n \n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-185792", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\nindex 53e7159a..da7c4360 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\n@@ -598,6 +598,11 @@ table 81 \"Gen. Journal Line\"\n Validate(\"VAT %\");\n Validate(\"Bal. VAT %\");\n UpdateLineBalance();\n+\n+ if JobTaskIsSet() then begin\n+ CreateTempJobJnlLine();\n+ UpdatePricesFromJobJnlLine();\n+ end;\n end;\n end;\n }\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-185488", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al b/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al\nindex bcd82095..bd541d2a 100644\n--- a/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al\n@@ -624,13 +624,24 @@ codeunit 1521 \"Workflow Response Handling\"\n begin\n end;\n \n- local procedure CreateNotificationEntry(WorkflowStepInstance: Record \"Workflow Step Instance\"; ApprovalEntry: Record \"Approval Entry\")\n+ local procedure CreateNotificationEntry(WorkflowStepInstance: Record \"Workflow Step Instance\"; RecVariant: Variant)\n var\n WorkflowStepArgument: Record \"Workflow Step Argument\";\n NotificationEntry: Record \"Notification Entry\";\n+ ApprovalEntry: Record \"Approval Entry\";\n+ RecRef: RecordRef;\n IsHandled: Boolean;\n begin\n IsHandled := false;\n+ RecRef.GetTable(RecVariant);\n+ if RecRef.Number = DATABASE::\"Approval Entry\" then\n+ ApprovalEntry := RecVariant\n+ else begin\n+ ApprovalEntry.SetRange(\"Record ID to Approve\", RecRef.RecordId);\n+ if not ApprovalEntry.FindFirst() then\n+ exit;\n+ end;\n+\n OnBeforeCreateNotificationEntry(WorkflowStepInstance, ApprovalEntry, IsHandled);\n if IsHandled then\n exit;\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-192565", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\nindex fb45dbcf..09b9b67c 100644\n--- a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n@@ -5365,6 +5365,7 @@ table 39 \"Purchase Line\"\n Amount := 0;\n \"VAT Base Amount\" := 0;\n \"Amount Including VAT\" := 0;\n+ NonDeductibleVAT.ClearNonDeductibleVAT(Rec);\n OnUpdateVATAmountsOnBeforePurchLineModify(Rec, PurchLine2);\n if (Quantity = 0) and (xRec.Quantity <> 0) and (xRec.Amount <> 0) then begin\n if \"Line No.\" <> 0 then\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-181900", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/OtherCapabilities/Approvals/ApprovalsMgmt.Codeunit.al b/App/Layers/W1/BaseApp/OtherCapabilities/Approvals/ApprovalsMgmt.Codeunit.al\nindex 266d61e5..9ab5bbaf 100644\n--- a/App/Layers/W1/BaseApp/OtherCapabilities/Approvals/ApprovalsMgmt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/OtherCapabilities/Approvals/ApprovalsMgmt.Codeunit.al\n@@ -2504,6 +2504,8 @@ codeunit 1535 \"Approvals Mgmt.\"\n if ApprovalStatusName = 'Open' then\n exit(CopyStr(PendingApprovalLbl, 1, 20));\n if ApprovalStatusName = 'Approved' then begin\n+ if HasOpenApprovalEntries(GenJournalBatch.RecordId) then\n+ exit(CopyStr(PendingApprovalLbl, 1, 20));\n RestrictedRecord.SetRange(Details, RestrictBatchUsageDetailsLbl);\n if not RestrictedRecord.IsEmpty() then begin\n RestrictedRecord.Reset();\n@@ -2533,6 +2535,8 @@ codeunit 1535 \"Approvals Mgmt.\"\n if ApprovalStatusName = 'Open' then\n exit(CopyStr(PendingApprovalLbl, 1, 20));\n if ApprovalStatusName = 'Approved' then begin\n+ if HasOpenApprovalEntries(GenJournalLine.RecordId) then\n+ exit(CopyStr(PendingApprovalLbl, 1, 20));\n RestrictedRecord.SetRange(\"Record ID\", GenJournalLine.RecordId);\n if not RestrictedRecord.IsEmpty() then\n exit(CopyStr(ImposedRestrictionLbl, 1, 20));\n@@ -2566,11 +2570,13 @@ codeunit 1535 \"Approvals Mgmt.\"\n if GenJournalBatch.Get(GenJournalLine.\"Journal Template Name\", GenJournalLine.\"Journal Batch Name\") then\n if IsGeneralJournalBatchApprovalsWorkflowEnabled(GenJournalBatch) then\n if FindApprovalEntryByRecordId(ApprovalEntry, GenJournalBatch.RecordId) and (ApprovalEntry.Status = ApprovalEntry.Status::Approved) then\n- GenJnlBatchApprovalStatus := CopyStr(ImposedRestrictionLbl, 1, 20);\n+ if not HasOpenApprovalEntries(GenJournalBatch.RecordId) then\n+ GenJnlBatchApprovalStatus := CopyStr(ImposedRestrictionLbl, 1, 20);\n \n if IsGeneralJournalLineApprovalsWorkflowEnabled(GenJournalLine) then\n if FindApprovalEntryByRecordId(ApprovalEntry, GenJournalLine.RecordId) and (ApprovalEntry.Status = ApprovalEntry.Status::Approved) then\n- GenJnlLineApprovalStatus := CopyStr(ImposedRestrictionLbl, 1, 20);\n+ if not HasOpenApprovalEntries(GenJournalLine.RecordId) then\n+ GenJnlLineApprovalStatus := CopyStr(ImposedRestrictionLbl, 1, 20);\n end;\n \n local procedure FindOpenApprovalEntryForSequenceNo(RecRef: RecordRef; WorkflowStepInstance: Record \"Workflow Step Instance\"; SequenceNo: Integer): Boolean\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134321'\nCodeunit 134321 General Journal Batch Approval\n Testfunction ShowImposedRestrictionBatchStatusForWorkflowUserGroupIfFirstApprovalEntryIsApproved Failure (6.574 seconds)\n Error:\n Assert.AreEqual failed. Expected: (Text). Actual: (Text). Imposed restriction is not shown.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"General Journal Batch Approval\"(CodeUnit 134321).ShowImposedRestrictionBatchStatusForWorkflowUserGroupIfFirstApprovalEntryIsApproved line 30 - Tests-General Journal by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"instance_id": "microsoftInternal__NAV-182354", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al b/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al\nindex 737182d0..37eec66b 100644\n--- a/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al\n+++ b/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al\n@@ -28,7 +28,7 @@ page 1318 \"Account Receivables KPIs\"\n begin\n CustLedgerEntry.SetRange(Open, true);\n CustLedgerEntry.SetFilter(\"Remaining Amount\", '>%1', 0);\n- CustLedgerEntry.SetFilter(\"Due Date\", '<=%1', WorkDate());\n+ CustLedgerEntry.SetFilter(\"Due Date\", '<=%1', Today());\n CustomerLedgerEntries.SetTableView(CustLedgerEntry);\n CustomerLedgerEntries.Run();\n end;\n@@ -98,7 +98,7 @@ page 1318 \"Account Receivables KPIs\"\n CuesAndKPIs: Codeunit \"Cues And KPIs\";\n SalesInvoicesDueNextWeekStyle: Enum \"Cues And KPIs Style\";\n begin\n- Rec.SetRange(\"Overdue Date Filter\", 0D, WorkDate());\n+ Rec.SetRange(\"Overdue Date Filter\", 0D, Today());\n if not Rec.Get() then begin\n Clear(Rec);\n Rec.Insert();\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134924'\nCodeunit 134924 ERM Cues\n Testfunction TotalOverdueLCYInFinanceCue Failure (6.54 seconds)\n Error:\n Assert.AreEqual failed. Expected:<> (Text). Actual:<50.17> (Text). The total overdue LCY amount is not calculated correctly..\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"ERM Cues\"(CodeUnit 134924).TotalOverdueLCYInFinanceCue line 37 - Tests-ERM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"instance_id": "microsoftInternal__NAV-205825", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\nindex da15d9ef..193cccc8 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\n@@ -143,6 +143,11 @@ codeunit 205 \"Alt. Cust. VAT Reg. Doc. Impl.\" implements \"Alt. Cust. VAT Reg. Do\n SalesHeader.\"VAT Registration No.\" := BillToCustomer.\"VAT Registration No.\";\n SalesHeader.\"Registration Number\" := BillToCustomer.\"Registration Number\";\n SalesHeader.\"Gen. Bus. Posting Group\" := BillToCustomer.\"Gen. Bus. Posting Group\";\n+\n+ if (SalesHeader.\"Ship-to Country/Region Code\" <> '') and\n+ (SalesHeader.\"Ship-to Country/Region Code\" <> BillToCustomer.\"Country/Region Code\")\n+ then\n+ UpdateSetupOnShipToCountryChangeInSalesHeader(SalesHeader, xSalesHeader);\n end;\n \n local procedure IsAltVATRegUsed(SalesHeader: Record \"Sales Header\"): Boolean\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-185696", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Pricing/Asset/PriceAsset.Table.al b/App/Layers/W1/BaseApp/Pricing/Asset/PriceAsset.Table.al\nindex af29a86d..d76ba6f6 100644\n--- a/App/Layers/W1/BaseApp/Pricing/Asset/PriceAsset.Table.al\n+++ b/App/Layers/W1/BaseApp/Pricing/Asset/PriceAsset.Table.al\n@@ -229,6 +229,7 @@ table 7003 \"Price Asset\"\n begin\n Clear(\"Asset ID\");\n \"Asset No.\" := '';\n+ \"Variant Code\" := '';\n Description := '';\n \"Unit of Measure Code\" := '';\n \"Amount Type\" := \"Amount Type\"::Any;\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-176426", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\nindex d639a562..27a45311 100644\n--- a/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\n@@ -993,7 +993,7 @@ codeunit 5870 \"Calculate BOM Tree\"\n exit(true);\n end;\n Item.\"Replenishment System\"::\"Prod. Order\":\n- if Item.\"Production BOM No.\" <> '' then\n+ if (Item.\"Production BOM No.\" <> '') or (Item.\"Routing No.\" <> '') then\n exit(true);\n end;\n end;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137391'\nCodeunit 137391 SCM - BOM Cost Shares Report\n Testfunction RolledUpMaterialAndCapacityCostWithRoutingAndNoBOM Failure (4.167 seconds)\n Error:\n AssertEquals for Field: Rolled-up Material Cost Expected = '497.28', Actual = ''\n Call Stack:\n \"SCM - BOM Cost Shares Report\"(CodeUnit 137391).VerifyParentItemMaterialAndCapacityCost line 7 - Tests-SCM by Microsoft\n \"SCM - BOM Cost Shares Report\"(CodeUnit 137391).RolledUpMaterialAndCapacityCostWithRoutingAndNoBOM line 34 - Tests-SCM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"instance_id": "microsoftInternal__NAV-180484", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/eServices/EDocument/IncomingDocument.Table.al b/App/Layers/W1/BaseApp/eServices/EDocument/IncomingDocument.Table.al\nindex 2341887c..593f9fb0 100644\n--- a/App/Layers/W1/BaseApp/eServices/EDocument/IncomingDocument.Table.al\n+++ b/App/Layers/W1/BaseApp/eServices/EDocument/IncomingDocument.Table.al\n@@ -508,10 +508,13 @@ table 130 \"Incoming Document\"\n \n procedure CreateDocumentWithDataExchange()\n var\n+ ReleaseIncomingDocument: Codeunit \"Release Incoming Document\";\n RelatedRecord: Variant;\n begin\n- if GetRecord(RelatedRecord) then\n+ if GetRecord(RelatedRecord) then begin\n+ ReleaseIncomingDocument.Create(Rec);\n Error(DocAlreadyCreatedErr);\n+ end;\n \n CreateWithDataExchange(\"Document Type\"::\" \")\n end;\n@@ -611,6 +614,7 @@ table 130 \"Incoming Document\"\n \n procedure CreateManually()\n var\n+ ReleaseIncomingDocument: Codeunit \"Release Incoming Document\";\n RelatedRecord: Variant;\n DocumentTypeOption, DocumentTypeEnum : Integer;\n IsHandled: Boolean;\n@@ -622,8 +626,10 @@ table 130 \"Incoming Document\"\n if IsHandled then\n exit;\n \n- if GetRecord(RelatedRecord) then\n+ if GetRecord(RelatedRecord) then begin\n+ ReleaseIncomingDocument.Create(Rec);\n Error(DocAlreadyCreatedErr);\n+ end;\n \n CreatedDocumentType.Add(1, \"Document Type\"::Journal.AsInteger());\n CreatedDocumentType.Add(2, \"Document Type\"::\"Sales Invoice\".AsInteger());\n@@ -752,11 +758,14 @@ table 130 \"Incoming Document\"\n [Scope('OnPrem')]\n procedure CreateGeneralJournalLineWithDataExchange()\n var\n+ ReleaseIncomingDocument: Codeunit \"Release Incoming Document\";\n ErrorMessage: Record \"Error Message\";\n RelatedRecord: Variant;\n begin\n- if GetRecord(RelatedRecord) then\n+ if GetRecord(RelatedRecord) then begin\n+ ReleaseIncomingDocument.Create(Rec);\n Error(DocAlreadyCreatedErr);\n+ end;\n \n CreateWithDataExchange(\"Document Type\"::Journal);\n \n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139154'\nCodeunit 139154 Incoming Doc. To Data Exch.UT\n Testfunction StatusRemainsCreatedIfHasLinkedDocWhenReopenIncomingDoc Failure (16.467 seconds)\n Error:\n Assert.AreEqual failed. Expected: (Text). Actual: (Text). Status must be Created in Incoming Document.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"Incoming Doc. To Data Exch.UT\"(CodeUnit 139154).StatusRemainsCreatedIfHasLinkedDocWhenReopenIncomingDoc line 53 - Tests-Data Exchange by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"instance_id": "microsoftInternal__NAV-183399", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\nindex 553ae9c0..cec7b1ec 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n@@ -255,6 +255,7 @@ page 254 \"Purchase Journal\"\n {\n ApplicationArea = Basic, Suite;\n AutoFormatExpression = Rec.\"Currency Code\";\n+ AutoFormatType = 1;\n Caption = 'Document Amount';\n ToolTip = 'Specifies the total amount (including VAT) that the journal line consists of.';\n \n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134918'\nCodeunit 134918 ERM Sales/Purchase Application\n Testfunction DocumentAmountInPurchJnlAcceptsMaxThreeDecimalPlacesValue Failure (4.194 seconds)\n Error:\n Assert.AreEqual failed. Expected:<1.747> (Decimal). Actual:<1.75> (Decimal). The document amount is not correct. Expected: 1.747, Actual: 1.75.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"ERM Sales/Purchase Application\"(CodeUnit 134918).DocumentAmountInPurchJnlAcceptsMaxThreeDecimalPlacesValue line 25 - Tests-ERM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"instance_id": "microsoftInternal__NAV-174794", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\nindex b941d50c..b0359488 100644\n--- a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n@@ -285,6 +285,7 @@ codeunit 395 \"FinChrgMemo-Issue\"\n end;\n TempGenJnlLine.Validate(\"Currency Code\", FinChrgMemoHeader.\"Currency Code\");\n if TempGenJnlLine.\"Account Type\" = TempGenJnlLine.\"Account Type\"::Customer then begin\n+ TempGenJnlLine.\"Posting Group\" := FinChrgMemoHeader.\"Customer Posting Group\";\n TempGenJnlLine.Validate(Amount, TotalAmount);\n TempGenJnlLine.Validate(\"Amount (LCY)\", TotalAmountLCY);\n TempGenJnlLine.\"Due Date\" := FinChrgMemoHeader.\"Due Date\";\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-203923", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\nindex 6bb15d7d..9c9227b8 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n@@ -93,7 +93,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetNonDeductibleVATPct(NonDeductibleVATPct, VATPostingSetup, GeneralPostingType, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (VATPostingSetup.\"VAT Calculation Type\" in [VATPostingSetup.\"VAT Calculation Type\"::\"Normal VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (VATPostingSetup.\"VAT Calculation Type\" in [VATPostingSetup.\"VAT Calculation Type\"::\"Normal VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Reverse Charge VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if (VATPostingSetup.\"Allow Non-Deductible VAT\" = VATPostingSetup.\"Allow Non-Deductible VAT\"::\"Do not allow\") or (GeneralPostingType <> GeneralPostingType::Purchase) then\n exit(0);\n@@ -786,7 +786,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeCalcNonDedAmountsInGenJnlLine(GenJournalLine, Currency, IsHandled);\n if IsHandled then\n exit;\n- if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit;\n if not VATPostingSetup.Get(GenJournalLine.\"VAT Bus. Posting Group\", GenJournalLine.\"VAT Prod. Posting Group\") then\n exit;\n@@ -826,7 +826,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeCalcBalNonDedAmountsInGenJnlLine(GenJournalLine, Currency, IsHandled);\n if IsHandled then\n exit;\n- if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Full VAT\"]) then\n exit;\n if not VATPostingSetup.Get(GenJournalLine.\"Bal. VAT Bus. Posting Group\", GenJournalLine.\"Bal. VAT Prod. Posting Group\") then\n exit;\n@@ -1210,7 +1210,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetNonDedVATPctForGenJnlLine(NonDeductibleVATPct, GenJournalLine, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if not VATPostingSetup.Get(GenJournalLine.\"VAT Bus. Posting Group\", GenJournalLine.\"VAT Prod. Posting Group\") then\n exit(0);\n@@ -1227,7 +1227,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetBalNonDedVATPctForGenJnlLine(NonDeductibleVATPct, GenJournalLine, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if not VATPostingSetup.Get(GenJournalLine.\"Bal. VAT Bus. Posting Group\", GenJournalLine.\"Bal. VAT Prod. Posting Group\") then\n exit(0);\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-204450", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\nindex 6bb15d7d..64ef04e1 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n@@ -682,7 +682,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n \n if PurchaseLine.\"Non-Deductible VAT %\" = 100 then begin\n PurchaseLine.\"Non-Deductible VAT Base\" := PurchaseLine.\"VAT Base Amount\";\n- PurchaseLine.\"Non-Deductible VAT Amount\" := PurchaseLine.\"Amount Including VAT\" - PurchaseLine.\"VAT Base Amount\" - PurchaseLine.\"VAT Difference\";\n+ PurchaseLine.\"Non-Deductible VAT Amount\" := PurchaseLine.\"Amount Including VAT\" - PurchaseLine.\"VAT Base Amount\";\n exit;\n end;\n PurchaseLine.\"Non-Deductible VAT Base\" :=\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-175577", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobCreateInvoice.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobCreateInvoice.Codeunit.al\nindex 1e465e16..d7a14a6b 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobCreateInvoice.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobCreateInvoice.Codeunit.al\n@@ -398,7 +398,8 @@ codeunit 1002 \"Job Create-Invoice\"\n if OldJobNo <> '' then begin\n if InvoicePerTask then\n if (OldJobNo <> JobTask.\"Job No.\") or (OldJobTaskNo <> JobTask.\"Job Task No.\") then\n- NewInvoice := true;\n+ if not SameBillingAttributesForMultipleCustomers(JobTask, OldJobNo, OldJobTaskNo) then\n+ NewInvoice := true;\n if not InvoicePerTask then\n if OldJobNo <> JobTask.\"Job No.\" then\n NewInvoice := true;\n@@ -411,6 +412,26 @@ codeunit 1002 \"Job Create-Invoice\"\n exit(NewInvoice);\n end;\n \n+ local procedure SameBillingAttributesForMultipleCustomers(JobTask: Record \"Job Task\"; OldJobNo: Code[20]; OldJobTaskNo: Code[20]): Boolean\n+ var\n+ Job: Record Job;\n+ OldJobTask: Record \"Job Task\";\n+ begin\n+ if OldJobNo <> JobTask.\"Job No.\" then\n+ exit(false);\n+ if not Job.Get(JobTask.\"Job No.\") then\n+ exit(false);\n+ if Job.\"Task Billing Method\" <> Job.\"Task Billing Method\"::\"Multiple customers\" then\n+ exit(false);\n+ if not OldJobTask.Get(OldJobNo, OldJobTaskNo) then\n+ exit(false);\n+ exit(\n+ (OldJobTask.\"Sell-to Customer No.\" = JobTask.\"Sell-to Customer No.\") and\n+ (OldJobTask.\"Bill-to Customer No.\" = JobTask.\"Bill-to Customer No.\") and\n+ (OldJobTask.\"Invoice Currency Code\" = JobTask.\"Invoice Currency Code\")\n+ );\n+ end;\n+\n local procedure CreateSalesHeader(Job: Record Job; PostingDate: Date; DocumentDate: Date; JobPlanningLine: Record \"Job Planning Line\")\n var\n JobTask: Record \"Job Task\";\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-176150", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al b/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\nindex 55d3fbad..b22bf513 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\n@@ -1015,7 +1015,7 @@ page 5510 \"Production Journal\"\n \n protected procedure MarkRelevantRec(var ItemJournalLine: Record \"Item Journal Line\")\n begin\n- ItemJournalLine := Rec;\n+ ItemJournalLine.Copy(Rec);\n if ItemJournalLine.FindSet() then begin\n repeat\n case ItemJournalLine.\"Entry Type\" of\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-175765", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\nindex 7eff4950..fd4fed06 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\n@@ -7105,9 +7105,11 @@ codeunit 22 \"Item Jnl.-Post Line\"\n OldValueEntry2.Copy(OldValueEntry);\n OldValueEntry2.SetFilter(\"Entry No.\", '<>%1', OldValueEntry.\"Entry No.\");\n OnCalcILEExpectedAmountOnBeforeCalcCostAmounts(OldValueEntry2, OldValueEntry, ItemLedgEntryNo);\n- OldValueEntry2.CalcSums(\"Cost Amount (Expected)\", \"Cost Amount (Expected) (ACY)\");\n+ OldValueEntry2.CalcSums(\"Cost Amount (Expected)\", \"Cost Amount (Expected) (ACY)\", \"Cost Amount (Actual)\", \"Cost Amount (Actual) (ACY)\");\n OldValueEntry.\"Cost Amount (Expected)\" += OldValueEntry2.\"Cost Amount (Expected)\";\n OldValueEntry.\"Cost Amount (Expected) (ACY)\" += OldValueEntry2.\"Cost Amount (Expected) (ACY)\";\n+ OldValueEntry.\"Cost Amount (Actual)\" += OldValueEntry2.\"Cost Amount (Actual)\";\n+ OldValueEntry.\"Cost Amount (Actual) (ACY)\" += OldValueEntry2.\"Cost Amount (Actual) (ACY)\";\n end;\n \n local procedure FindOpenOutputEntryNoToApply(ItemJournalLine: Record \"Item Journal Line\"): Integer\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-179733", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Job/JobTask.Table.al b/App/Layers/W1/BaseApp/Projects/Project/Job/JobTask.Table.al\nindex ca6d73fa..c68c3ce3 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Job/JobTask.Table.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Job/JobTask.Table.al\n@@ -1225,6 +1225,8 @@ table 1001 \"Job Task\"\n exit;\n if Job.\"Task Billing Method\" = Job.\"Task Billing Method\"::\"One customer\" then\n exit;\n+ if \"Job Task Type\" <> \"Job Task Type\"::Posting then\n+ exit;\n \n SetHideValidationDialog(true);\n if Job.\"Sell-to Customer No.\" <> '' then\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-176194", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\nindex 6dfc7efe..79f91e7e 100644\n--- a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n@@ -2492,6 +2492,23 @@ codeunit 6620 \"Copy Document Mgt.\"\n ItemChargeAssignmentSales.Modify(true);\n end;\n \n+ local procedure UpdateSalesLineQtyToReceiveForItemCharge(var ToSalesLine: Record \"Sales Line\")\n+ begin\n+ // When Default Quantity to Ship is set to Blank, Return Qty. to Receive is not automatically\n+ // populated for Return Orders, causing Qty. to Invoice to remain zero.\n+ // Item charge assignment requires Qty. to Invoice to be non-zero, so we set the quantities here.\n+ if (ToSalesLine.\"Document Type\" = ToSalesLine.\"Document Type\"::\"Return Order\") and\n+ (ToSalesLine.\"Qty. to Invoice\" = 0) and\n+ (ToSalesLine.Quantity <> 0)\n+ then begin\n+ ToSalesLine.\"Return Qty. to Receive\" := ToSalesLine.Quantity;\n+ ToSalesLine.\"Return Qty. to Receive (Base)\" := ToSalesLine.\"Quantity (Base)\";\n+ ToSalesLine.\"Qty. to Invoice\" := ToSalesLine.Quantity;\n+ ToSalesLine.\"Qty. to Invoice (Base)\" := ToSalesLine.\"Quantity (Base)\";\n+ ToSalesLine.Modify();\n+ end;\n+ end;\n+\n local procedure WarnSalesInvoicePmtDisc(var ToSalesHeader: Record \"Sales Header\"; FromDocType: Enum \"Sales Document Type From\"; FromDocNo: Code[20])\n var\n CustLedgEntry: Record \"Cust. Ledger Entry\";\n@@ -3195,6 +3212,7 @@ codeunit 6620 \"Copy Document Mgt.\"\n if TempSalesLineBuf.Type = TempSalesLineBuf.Type::\"Charge (Item)\" then begin\n FromSalesLine.TransferFields(FromSalesInvLine);\n FromSalesLine.\"Document Type\" := FromSalesLine.\"Document Type\"::Invoice;\n+ UpdateSalesLineQtyToReceiveForItemCharge(ToSalesLine);\n CopyFromSalesLineItemChargeAssign(FromSalesLine, ToSalesLine, FromSalesHeader, ItemChargeAssgntNextLineNo);\n end;\n \n@@ -3357,6 +3375,7 @@ codeunit 6620 \"Copy Document Mgt.\"\n if FromSalesLineBuf.Type = FromSalesLineBuf.Type::\"Charge (Item)\" then begin\n FromSalesLine.TransferFields(FromSalesCrMemoLine);\n FromSalesLine.\"Document Type\" := FromSalesLine.\"Document Type\"::\"Credit Memo\";\n+ UpdateSalesLineQtyToReceiveForItemCharge(ToSalesLine);\n CopyFromSalesLineItemChargeAssign(FromSalesLine, ToSalesLine, FromSalesHeader, ItemChargeAssgntNextLineNo);\n end;\n // copy item tracking\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134329'\nCodeunit 134329 ERM Purchase Return Order\n Testfunction GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToReceiveIsBlankInPurchPayablesSetup Failure (13.976 seconds)\n Error:\n Qty. to Invoice must have a value in Purchase Line: Document Type=Return Order, Document No.=1001, Line No.=20000. It cannot be zero or empty.\n Call Stack:\n \"Item Charge Assignment (Purch)\"(Table 5805).\"Qty. to Assign - OnValidate\"(Trigger) line 4 - Base Application by Microsoft\n \"Item Charge Assgnt. (Purch.)\"(CodeUnit 5805).InsertItemChargeAssignmentWithValuesTo line 20 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyFromPurchLineItemChargeAssign line 47 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyPurchInvLinesToDoc line 144 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyPurchaseLinesToDoc line 15 - Base Application by Microsoft\n \"Posted Purchase Document Lines\"(Page 5855).CopyLineToDoc line 23 - Base Application by Microsoft\n \"Purchase Header\"(Table 38).GetPstdDocLinesToReverse line 9 - Base Application by Microsoft\n \"Purchase Return Order\"(Page 6640).\"GetPostedDocumentLinesToReverse - OnAction\"(Trigger) line 2 - Base Application by Microsoft\nSetting test codeunit range '134387'\nCodeunit 134387 ERM Sales Documents III\n Testfunction GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToShipIsBlankInSalesReceiSetup Failure (4.113 seconds)\n Error:\n Assert.AreEqual failed. Expected:<0> (Integer). Actual:<25> (Decimal). Return Qty. to Receive must be zero..\n Call Stack:"} +{"instance_id": "microsoftInternal__NAV-177493", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\nindex bb47904d..3a8dc6f4 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n@@ -58,6 +58,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if Reserve = Reserve::Never then\n+ CurrReport.Skip();\n+\n if not CheckIfSalesLineMeetsReservedFromStockSetting(Abs(\"Outstanding Qty. (Base)\"), ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -111,6 +114,11 @@ report 302 \"Get Demand To Reserve\"\n then\n CurrReport.Skip();\n \n+ Item.SetLoadFields(Reserve);\n+ if Item.Get(\"Item No.\") then\n+ if Item.Reserve = Item.Reserve::Never then\n+ CurrReport.Skip();\n+\n if ItemFilterFromBatch <> '' then begin\n Item.SetView(ReservationWkshBatch.GetItemFilterBlobAsViewFilters());\n Item.FilterGroup(2);\n@@ -158,6 +166,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if Reserve = Reserve::Never then\n+ CurrReport.Skip();\n+\n if not CheckIfServiceLineMeetsReservedFromStockSetting(Abs(\"Outstanding Qty. (Base)\"), ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -208,6 +219,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if Reserve = Reserve::Never then\n+ CurrReport.Skip();\n+\n if not CheckIfJobPlngLineMeetsReservedFromStockSetting(\"Remaining Qty. (Base)\", ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -259,6 +273,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if Reserve = Reserve::Never then\n+ CurrReport.Skip();\n+\n if not CheckIfAssemblyLineMeetsReservedFromStockSetting(\"Remaining Quantity (Base)\", ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -309,6 +326,11 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ Item.SetLoadFields(Reserve);\n+ if Item.Get(\"Item No.\") then\n+ if Item.Reserve = Item.Reserve::Never then\n+ CurrReport.Skip();\n+\n if not CheckIfProdOrderCompMeetsReservedFromStockSetting(\"Remaining Qty. (Base)\", ReservedFromStock)\n then\n CurrReport.Skip();\n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-177750", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al b/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al\nindex 320720d7..e102327a 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/CreateInventoryPickMovement.Codeunit.al\n@@ -2096,9 +2096,11 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n case CurrLocation.\"Special Equipment\" of\n CurrLocation.\"Special Equipment\"::\"According to Bin\":\n begin\n- GetBin(CurrLocation.Code, BinCode);\n- if CurrBin.\"Special Equipment Code\" <> '' then\n- exit(CurrBin.\"Special Equipment Code\");\n+ if BinCode <> '' then begin\n+ GetBin(CurrLocation.Code, BinCode);\n+ if CurrBin.\"Special Equipment Code\" <> '' then\n+ exit(CurrBin.\"Special Equipment Code\");\n+ end;\n \n GetItemAndSKU(ItemNo, LocationCode, VariantCode);\n if CurrStockKeepingUnit.\"Special Equipment Code\" <> '' then\n@@ -2115,8 +2117,10 @@ codeunit 7322 \"Create Inventory Pick/Movement\"\n if CurrItem.\"Special Equipment Code\" <> '' then\n exit(CurrItem.\"Special Equipment Code\");\n \n- GetBin(CurrLocation.Code, BinCode);\n- exit(CurrBin.\"Special Equipment Code\")\n+ if BinCode <> '' then begin\n+ GetBin(CurrLocation.Code, BinCode);\n+ exit(CurrBin.\"Special Equipment Code\")\n+ end;\n end\n end\n end;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136322'\nCodeunit 136322 Jobs - Assemble-to Order\n Testfunction PostInventoryPickForAssemblyItemRelatedToJobPlanningLineWithBin Failure (7.11 seconds)\n Error:\n There is no Warehouse Activity Header within the filter.\\\\Filters: Location Code: GU00000004, Source No.: ZZZJ001, Source Document: Job Usage\n Call Stack:\n \"Jobs - Assemble-to Order\"(CodeUnit 136322).PostInventoryPickForAssemblyItemRelatedToJobPlanningLineWithBin line 45 - Tests-Job by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft"} +{"instance_id": "microsoftInternal__NAV-178045", "project": "", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": false, "build": false, "output": "", "error_message": "timeout: exceeded time limit (treated as failed)"} +{"instance_id": "microsoftInternal__NAV-176082", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\nindex 5fe44b45..e98d683d 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\n@@ -1301,10 +1301,18 @@ table 5740 \"Transfer Header\"\n procedure GetReceiptLines()\n var\n PurchRcptHeader: Record \"Purch. Rcpt. Header\";\n+ PurchRcptLine: Record \"Purch. Rcpt. Line\";\n TempPurchRcptHeader: Record \"Purch. Rcpt. Header\" temporary;\n PostedPurchaseReceipts: Page \"Posted Purchase Receipts\";\n begin\n- PurchRcptHeader.SetRange(\"Location Code\", \"Transfer-from Code\");\n+ PurchRcptLine.SetRange(Type, PurchRcptLine.Type::Item);\n+ PurchRcptLine.SetRange(\"Location Code\", \"Transfer-from Code\");\n+ if PurchRcptLine.FindSet() then\n+ repeat\n+ if PurchRcptHeader.Get(PurchRcptLine.\"Document No.\") then\n+ PurchRcptHeader.Mark(true);\n+ until PurchRcptLine.Next() = 0;\n+ PurchRcptHeader.MarkedOnly(true);\n PostedPurchaseReceipts.SetTableView(PurchRcptHeader);\n PostedPurchaseReceipts.LookupMode := true;\n if PostedPurchaseReceipts.RunModal() = ACTION::LookupOK then begin\n@@ -1370,6 +1378,10 @@ table 5740 \"Transfer Header\"\n TransferLine.\"Shortcut Dimension 1 Code\" := PurchRcptLine.\"Shortcut Dimension 1 Code\";\n TransferLine.\"Shortcut Dimension 2 Code\" := PurchRcptLine.\"Shortcut Dimension 2 Code\";\n TransferLine.\"Dimension Set ID\" := PurchRcptLine.\"Dimension Set ID\";\n+ if PurchRcptLine.\"Item Rcpt. Entry No.\" <> 0 then\n+ if ItemLedgerEntry.Get(PurchRcptLine.\"Item Rcpt. Entry No.\") then\n+ if (ItemLedgerEntry.\"Lot No.\" = '') and (ItemLedgerEntry.\"Serial No.\" = '') then\n+ TransferLine.\"Appl.-to Item Entry\" := PurchRcptLine.\"Item Rcpt. Entry No.\";\n OnAddTransferLineFromReceiptLineOnBeforeTransferLineInsert(TransferLine, PurchRcptLine, Rec);\n TransferLine.Insert(true);\n \n", "error_message": null} +{"instance_id": "microsoftInternal__NAV-174087", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "bug-fix", "resolved": true, "build": true, "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al b/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\nindex ff43f4ff..4ba0c1de 100644\n--- a/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\n+++ b/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\n@@ -362,6 +362,11 @@ page 5077 \"Create Interaction\"\n Enabled = IsMainInfoSet;\n Importance = Additional;\n ToolTip = 'Specifies the evaluation of the interaction involving the contact in the segment.';\n+\n+ trigger OnValidate()\n+ begin\n+ InteractionLogEntry.Evaluation := Rec.Evaluation;\n+ end;\n }\n field(ShowMoreLess4; GetShowMoreLessLbl(ShowLessStep4))\n {\n", "error_message": null} diff --git a/notebooks/result/bug-fix/copilot-cf-sonnet-4-6/run-26712618911.jsonl b/notebooks/result/bug-fix/copilot-cf-sonnet-4-6/run-26712618911.jsonl new file mode 100644 index 000000000..7f6ea741b --- /dev/null +++ b/notebooks/result/bug-fix/copilot-cf-sonnet-4-6/run-26712618911.jsonl @@ -0,0 +1,121 @@ +{"instance_id": "microsoftInternal__NAV-174087__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al b/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\nindex ff43f4ff..ee42672e 100644\n--- a/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\n+++ b/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\n@@ -694,6 +694,7 @@ page 5077 \"Create Interaction\"\n end;\n Step::\"Step 4\":\n begin\n+ InteractionLogEntry.Evaluation := Rec.Evaluation;\n InteractionLogEntry.Modify();\n CurrPage.Close();\n end;\n", "error_message": null, "metrics": {"execution_time": 79.0, "llm_duration": null, "turn_count": 10, "prompt_tokens": 207300, "completion_tokens": 2000, "tool_usage": {"grep": 4, "glob": 2, "view": 4, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-174087__cf-2", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Interaction/InteractionLogEntry.Table.al b/App/Layers/W1/BaseApp/CRM/Interaction/InteractionLogEntry.Table.al\nindex 9eed442c..be25a4dd 100644\n--- a/App/Layers/W1/BaseApp/CRM/Interaction/InteractionLogEntry.Table.al\n+++ b/App/Layers/W1/BaseApp/CRM/Interaction/InteractionLogEntry.Table.al\n@@ -334,6 +334,12 @@ table 5065 \"Interaction Log Entry\"\n Attachment.RemoveAttachment(false);\n end;\n \n+ trigger OnModify()\n+ begin\n+ if SegmentLineIsSet then\n+ CopyFromSegment(TempSegmentLineForCopy);\n+ end;\n+\n var\n Text000: Label '%1 %2 is marked %3.\\';\n Text001: Label 'Do you wish to remove the checkmark?';\n@@ -348,6 +354,14 @@ table 5065 \"Interaction Log Entry\"\n TitleFromLbl: Label '%1 - from %2', Comment = '%1 - document description, %2 - name';\n TitleByLbl: Label '%1 - by %2', Comment = '%1 - document description, %2 - name';\n OpenMessageQst: Label 'You are about to open an email message in Outlook Online. Email messages might contain harmful content. Use caution when interacting with the message. Do you want to continue?';\n+ TempSegmentLineForCopy: Record \"Segment Line\" temporary;\n+ SegmentLineIsSet: Boolean;\n+\n+ procedure SetSegmentLine(SegLine: Record \"Segment Line\")\n+ begin\n+ TempSegmentLineForCopy := SegLine;\n+ SegmentLineIsSet := true;\n+ end;\n \n procedure InsertRecord()\n var\ndiff --git a/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al b/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\nindex ff43f4ff..eade9647 100644\n--- a/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\n+++ b/App/Layers/W1/BaseApp/CRM/Segment/CreateInteraction.Page.al\n@@ -694,6 +694,7 @@ page 5077 \"Create Interaction\"\n end;\n Step::\"Step 4\":\n begin\n+ InteractionLogEntry.SetSegmentLine(Rec);\n InteractionLogEntry.Modify();\n CurrPage.Close();\n end;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136208'\nCodeunit 136208 Marketing Interaction\n Testfunction PopulateEvaluationFieldInInteractionLogEntry Failure (4.23 seconds)\n Error:\n Assert.AreEqual failed. Expected: (Integer). Actual:< > (Integer). Evaluation must be Positive in Interaction Log Entry.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"Marketing Interaction\"(CodeUnit 136208).PopulateEvaluationFieldInInteractionLogEntry line 31 - Tests-Marketing by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 512.0, "llm_duration": null, "turn_count": 34, "prompt_tokens": 2200000, "completion_tokens": 23500, "tool_usage": {"glob": 1, "grep": 15, "view": 19, "powershell": 3, "report_intent": 1, "edit": 4}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-174794__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\nindex b941d50c..b0359488 100644\n--- a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n@@ -285,6 +285,7 @@ codeunit 395 \"FinChrgMemo-Issue\"\n end;\n TempGenJnlLine.Validate(\"Currency Code\", FinChrgMemoHeader.\"Currency Code\");\n if TempGenJnlLine.\"Account Type\" = TempGenJnlLine.\"Account Type\"::Customer then begin\n+ TempGenJnlLine.\"Posting Group\" := FinChrgMemoHeader.\"Customer Posting Group\";\n TempGenJnlLine.Validate(Amount, TotalAmount);\n TempGenJnlLine.Validate(\"Amount (LCY)\", TotalAmountLCY);\n TempGenJnlLine.\"Due Date\" := FinChrgMemoHeader.\"Due Date\";\n", "error_message": null, "metrics": {"execution_time": 203.0, "llm_duration": null, "turn_count": 30, "prompt_tokens": 1300000, "completion_tokens": 8700, "tool_usage": {"glob": 3, "grep": 15, "view": 11, "powershell": 3, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-174794__cf-2", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\nindex b941d50c..b0359488 100644\n--- a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n@@ -285,6 +285,7 @@ codeunit 395 \"FinChrgMemo-Issue\"\n end;\n TempGenJnlLine.Validate(\"Currency Code\", FinChrgMemoHeader.\"Currency Code\");\n if TempGenJnlLine.\"Account Type\" = TempGenJnlLine.\"Account Type\"::Customer then begin\n+ TempGenJnlLine.\"Posting Group\" := FinChrgMemoHeader.\"Customer Posting Group\";\n TempGenJnlLine.Validate(Amount, TotalAmount);\n TempGenJnlLine.Validate(\"Amount (LCY)\", TotalAmountLCY);\n TempGenJnlLine.\"Due Date\" := FinChrgMemoHeader.\"Due Date\";\n", "error_message": null, "metrics": {"execution_time": 146.0, "llm_duration": null, "turn_count": 18, "prompt_tokens": 601800, "completion_tokens": 6500, "tool_usage": {"powershell": 3, "view": 10, "grep": 6, "glob": 1, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-174794__cf-3", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\nindex b941d50c..7235d135 100644\n--- a/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/FinanceCharge/FinChrgMemoIssue.Codeunit.al\n@@ -151,6 +151,7 @@ codeunit 395 \"FinChrgMemo-Issue\"\n \n if (TotalAmount <> 0) or (TotalAmountLCY <> 0) then begin\n InitGenJnlLine(TempGenJnlLine.\"Account Type\"::Customer, FinChrgMemoHeader.\"Customer No.\", true);\n+ TempGenJnlLine.\"Posting Group\" := FinChrgMemoHeader.\"Customer Posting Group\";\n TempGenJnlLine.Validate(Amount, TotalAmount);\n TempGenJnlLine.Validate(\"Amount (LCY)\", TotalAmountLCY);\n OnRunOnBeforeTotalGenJnlLineInsert(TempGenJnlLine);\n", "error_message": null, "metrics": {"execution_time": 188.0, "llm_duration": null, "turn_count": 28, "prompt_tokens": 973500, "completion_tokens": 7100, "tool_usage": {"view": 10, "grep": 12, "glob": 6, "powershell": 2, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-175765__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\nindex 7eff4950..fd4fed06 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostLine.Codeunit.al\n@@ -7105,9 +7105,11 @@ codeunit 22 \"Item Jnl.-Post Line\"\n OldValueEntry2.Copy(OldValueEntry);\n OldValueEntry2.SetFilter(\"Entry No.\", '<>%1', OldValueEntry.\"Entry No.\");\n OnCalcILEExpectedAmountOnBeforeCalcCostAmounts(OldValueEntry2, OldValueEntry, ItemLedgEntryNo);\n- OldValueEntry2.CalcSums(\"Cost Amount (Expected)\", \"Cost Amount (Expected) (ACY)\");\n+ OldValueEntry2.CalcSums(\"Cost Amount (Expected)\", \"Cost Amount (Expected) (ACY)\", \"Cost Amount (Actual)\", \"Cost Amount (Actual) (ACY)\");\n OldValueEntry.\"Cost Amount (Expected)\" += OldValueEntry2.\"Cost Amount (Expected)\";\n OldValueEntry.\"Cost Amount (Expected) (ACY)\" += OldValueEntry2.\"Cost Amount (Expected) (ACY)\";\n+ OldValueEntry.\"Cost Amount (Actual)\" += OldValueEntry2.\"Cost Amount (Actual)\";\n+ OldValueEntry.\"Cost Amount (Actual) (ACY)\" += OldValueEntry2.\"Cost Amount (Actual) (ACY)\";\n end;\n \n local procedure FindOpenOutputEntryNoToApply(ItemJournalLine: Record \"Item Journal Line\"): Integer\n", "error_message": null, "metrics": {"execution_time": 1124.0, "llm_duration": null, "turn_count": 45, "prompt_tokens": 3200000, "completion_tokens": 58400, "tool_usage": {"glob": 15, "view": 10, "grep": 27, "powershell": 3, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-175765__cf-2", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al\nindex b47fc326..868fe925 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/UndoTransferShipment.Codeunit.al\n@@ -92,6 +92,8 @@ codeunit 9030 \"Undo Transfer Shipment\"\n CheckTransferShptLine(TransShptLine);\n until TransShptLine.Next() = 0;\n \n+ MakeInventoryAdjustment();\n+\n TransShptLine.FindSet();\n repeat\n OnCodeOnBeforeUndoLoop(TransShptLine);\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137038'\nCodeunit 137038 SCM Transfers\n Testfunction AdjustCostOfUndoneTransferShipment Failure (5.047 seconds)\n Error:\n Unit Cost must be equal to '111.96' in Item: No.=GL00000000. Current value is '24.87'.\n Call Stack:\n \"SCM Transfers\"(CodeUnit 137038).AdjustCostOfUndoneTransferShipment line 46 - Tests-SCM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 86.0, "llm_duration": null, "turn_count": 9, "prompt_tokens": 262500, "completion_tokens": 3800, "tool_usage": {"grep": 4, "view": 4, "glob": 1, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-175765__cf-3", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Costing/InventoryAdjustment.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Costing/InventoryAdjustment.Codeunit.al\nindex a12484a4..59094081 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Costing/InventoryAdjustment.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Costing/InventoryAdjustment.Codeunit.al\n@@ -2187,23 +2187,27 @@ codeunit 5895 \"Inventory Adjustment\" implements \"Inventory Adjustment\"\n var\n TransValueEntry: Record \"Value Entry\";\n OrigItemLedgEntry: Record \"Item Ledger Entry\";\n+ OrigValueEntry: Record \"Value Entry\";\n CostElementBuf: Record \"Cost Element Buffer\";\n AdjustedCostElementBuf: Record \"Cost Element Buffer\";\n begin\n if TransValueEntry.NotInvdRevaluationExists(TransItemLedgEntry.\"Entry No.\") then begin\n GetOrigPosItemLedgEntryNo(TransItemApplnEntry);\n OrigItemLedgEntry.Get(TransItemApplnEntry.\"Item Ledger Entry No.\");\n- repeat\n- CalcTransEntryNewRevAmt(OrigItemLedgEntry, TransValueEntry, AdjustedCostElementBuf);\n- CalcTransEntryOldRevAmt(TransValueEntry, CostElementBuf);\n-\n- UpdateAdjmtBuf(\n- TransValueEntry,\n- AdjustedCostElementBuf.\"Actual Cost\" - CostElementBuf.\"Actual Cost\",\n- AdjustedCostElementBuf.\"Actual Cost (ACY)\" - CostElementBuf.\"Actual Cost (ACY)\",\n- TransItemLedgEntry.\"Posting Date\",\n- TransValueEntry.\"Entry Type\");\n- until TransValueEntry.Next() = 0;\n+ OrigValueEntry.SetRange(\"Item Ledger Entry No.\", OrigItemLedgEntry.\"Entry No.\");\n+ OrigValueEntry.SetRange(\"Entry Type\", OrigValueEntry.\"Entry Type\"::Revaluation);\n+ if not OrigValueEntry.IsEmpty() then\n+ repeat\n+ CalcTransEntryNewRevAmt(OrigItemLedgEntry, TransValueEntry, AdjustedCostElementBuf);\n+ CalcTransEntryOldRevAmt(TransValueEntry, CostElementBuf);\n+\n+ UpdateAdjmtBuf(\n+ TransValueEntry,\n+ AdjustedCostElementBuf.\"Actual Cost\" - CostElementBuf.\"Actual Cost\",\n+ AdjustedCostElementBuf.\"Actual Cost (ACY)\" - CostElementBuf.\"Actual Cost (ACY)\",\n+ TransItemLedgEntry.\"Posting Date\",\n+ TransValueEntry.\"Entry Type\");\n+ until TransValueEntry.Next() = 0;\n end;\n end;\n \n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137038'\nCodeunit 137038 SCM Transfers\n Testfunction AdjustCostOfUndoneTransferShipment Failure (5.42 seconds)\n Error:\n Unit Cost must be equal to '111.96' in Item: No.=GL00000000. Current value is '24.87'.\n Call Stack:\n \"SCM Transfers\"(CodeUnit 137038).AdjustCostOfUndoneTransferShipment line 47 - Tests-SCM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 1939.0, "llm_duration": null, "turn_count": 108, "prompt_tokens": 8900000, "completion_tokens": 105400, "tool_usage": {"glob": 7, "grep": 42, "view": 55, "powershell": 16, "report_intent": 2, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-176082__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\nindex 5fe44b45..b60c4b87 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\n@@ -1301,10 +1301,28 @@ table 5740 \"Transfer Header\"\n procedure GetReceiptLines()\n var\n PurchRcptHeader: Record \"Purch. Rcpt. Header\";\n+ PurchRcptLine: Record \"Purch. Rcpt. Line\";\n TempPurchRcptHeader: Record \"Purch. Rcpt. Header\" temporary;\n PostedPurchaseReceipts: Page \"Posted Purchase Receipts\";\n+ SelectionFilterManagement: Codeunit SelectionFilterManagement;\n+ RecRef: RecordRef;\n begin\n- PurchRcptHeader.SetRange(\"Location Code\", \"Transfer-from Code\");\n+ PurchRcptLine.SetRange(Type, PurchRcptLine.Type::Item);\n+ PurchRcptLine.SetRange(\"Location Code\", \"Transfer-from Code\");\n+ if PurchRcptLine.FindSet() then\n+ repeat\n+ if PurchRcptHeader.Get(PurchRcptLine.\"Document No.\") then\n+ if TempPurchRcptHeader.Get(PurchRcptHeader.\"No.\") then\n+ ;\n+ else begin\n+ TempPurchRcptHeader := PurchRcptHeader;\n+ TempPurchRcptHeader.Insert();\n+ end;\n+ until PurchRcptLine.Next() = 0;\n+ RecRef.GetTable(TempPurchRcptHeader);\n+ PurchRcptHeader.SetFilter(\n+ \"No.\",\n+ SelectionFilterManagement.GetSelectionFilter(RecRef, TempPurchRcptHeader.FieldNo(\"No.\")));\n PostedPurchaseReceipts.SetTableView(PurchRcptHeader);\n PostedPurchaseReceipts.LookupMode := true;\n if PostedPurchaseReceipts.RunModal() = ACTION::LookupOK then begin\n", "error_message": "Build or publish failed for App\\Layers\\W1\\BaseApp:\nC:\\Source\\App\\Layers\\W1\\BaseApp\\Inventory\\Transfer\\TransferHeader.Table.al(1317,21): error AL0110: Orphaned ELSE statement. This is most likely because of an unnecessary semicolon placed just before the ELSE keyword", "metrics": {"execution_time": 113.0, "llm_duration": null, "turn_count": 13, "prompt_tokens": 341100, "completion_tokens": 4300, "tool_usage": {"grep": 5, "glob": 3, "view": 4, "powershell": 1, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": false} +{"instance_id": "microsoftInternal__NAV-176082__cf-2", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\nindex 5fe44b45..748d62b8 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferHeader.Table.al\n@@ -1301,10 +1301,21 @@ table 5740 \"Transfer Header\"\n procedure GetReceiptLines()\n var\n PurchRcptHeader: Record \"Purch. Rcpt. Header\";\n+ PurchRcptLine: Record \"Purch. Rcpt. Line\";\n TempPurchRcptHeader: Record \"Purch. Rcpt. Header\" temporary;\n PostedPurchaseReceipts: Page \"Posted Purchase Receipts\";\n+ SelectionFilterManagement: Codeunit SelectionFilterManagement;\n+ RecRef: RecordRef;\n+ DocumentNosFilter: Text;\n begin\n- PurchRcptHeader.SetRange(\"Location Code\", \"Transfer-from Code\");\n+ PurchRcptLine.SetRange(\"Location Code\", \"Transfer-from Code\");\n+ PurchRcptLine.SetRange(Type, PurchRcptLine.Type::Item);\n+ if PurchRcptLine.FindSet() then begin\n+ RecRef.GetTable(PurchRcptLine);\n+ DocumentNosFilter := SelectionFilterManagement.GetSelectionFilter(RecRef, PurchRcptLine.FieldNo(\"Document No.\"));\n+ PurchRcptHeader.SetFilter(\"No.\", DocumentNosFilter);\n+ end else\n+ PurchRcptHeader.SetRange(\"No.\", '');\n PostedPurchaseReceipts.SetTableView(PurchRcptHeader);\n PostedPurchaseReceipts.LookupMode := true;\n if PostedPurchaseReceipts.RunModal() = ACTION::LookupOK then begin\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137038'\nCodeunit 137038 SCM Transfers\n Testfunction GetReceiptLinesShowListOfPostedPurchRcptsHavingTransferFromCodeInLocationCodeOfPurchRcptLines Failure (11.363 seconds)\n Error:\n Assert.AreEqual failed. Expected:<3> (Integer). Actual:<0> (Integer). Appl.-to Item Entry must be 3 in Transfer Line..\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"SCM Transfers\"(CodeUnit 137038).GetReceiptLinesShowListOfPostedPurchRcptsHavingTransferFromCodeInLocationCodeOfPurchRcptLines line 80 - Tests-SCM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 161.0, "llm_duration": null, "turn_count": 13, "prompt_tokens": 276600, "completion_tokens": 7400, "tool_usage": {"grep": 9, "glob": 1, "view": 4, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-176082__cf-3", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/ItemTrackingManagement.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Tracking/ItemTrackingManagement.Codeunit.al\nindex e7b13045..415c14be 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/ItemTrackingManagement.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/ItemTrackingManagement.Codeunit.al\n@@ -3228,9 +3228,17 @@ codeunit 6500 \"Item Tracking Management\"\n \n local procedure InsertReservEntryToOutboundTransferLine(var ReservEntry: Record \"Reservation Entry\"; ItemLedgEntryBuf: Record \"Item Ledger Entry\"; TransferLine: Record \"Transfer Line\"; QtyBase: Decimal; var EntriesExist: Boolean)\n begin\n- if not ItemLedgEntryBuf.TrackingExists() or (QtyBase = 0) then\n+ if QtyBase = 0 then\n exit;\n \n+ if not ItemLedgEntryBuf.TrackingExists() then begin\n+ if ItemLedgEntryBuf.\"Entry No.\" > 0 then begin\n+ TransferLine.Validate(\"Appl.-to Item Entry\", ItemLedgEntryBuf.\"Entry No.\");\n+ TransferLine.Modify(true);\n+ end;\n+ exit;\n+ end;\n+\n Clear(ReservEntry);\n InitReservEntry(ReservEntry, ItemLedgEntryBuf, QtyBase, TransferLine.\"Shipment Date\", EntriesExist);\n ReservEntry.SetSource(Database::\"Transfer Line\", 0, TransferLine.\"Document No.\", TransferLine.\"Line No.\", '', 0);\n", "error_message": null, "metrics": {"execution_time": 627.0, "llm_duration": null, "turn_count": 39, "prompt_tokens": 2200000, "completion_tokens": 33700, "tool_usage": {"grep": 17, "view": 14, "glob": 2, "powershell": 13, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-176150__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al b/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\nindex 55d3fbad..b22bf513 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Journal/ProductionJournal.Page.al\n@@ -1015,7 +1015,7 @@ page 5510 \"Production Journal\"\n \n protected procedure MarkRelevantRec(var ItemJournalLine: Record \"Item Journal Line\")\n begin\n- ItemJournalLine := Rec;\n+ ItemJournalLine.Copy(Rec);\n if ItemJournalLine.FindSet() then begin\n repeat\n case ItemJournalLine.\"Entry Type\" of\n", "error_message": null, "metrics": {"execution_time": 1229.0, "llm_duration": null, "turn_count": 35, "prompt_tokens": 2100000, "completion_tokens": 72300, "tool_usage": {"glob": 5, "grep": 16, "view": 28, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-176150__cf-2", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostBatch.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostBatch.Codeunit.al\nindex f8a3abc3..34e34aaa 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostBatch.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Posting/ItemJnlPostBatch.Codeunit.al\n@@ -872,7 +872,6 @@ codeunit 23 \"Item Jnl.-Post Batch\"\n ReservationEntry.SetRange(\"Location Code\", SKU.\"Location Code\");\n ReservationEntry.SetRange(\"Variant Code\", SKU.\"Variant Code\");\n ReservationEntry.SetRange(\"Source Type\", Database::\"Prod. Order Component\");\n- ReservationEntry.SetRange(\"Source ID\", ItemJnlLine.\"Order No.\");\n if ReservationEntry.IsEmpty() then\n exit;\n ReservationEntry.CalcSums(ReservationEntry.\"Quantity (Base)\");\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137072'\nCodeunit 137072 SCM Production Orders II\n Testfunction PreviewPostingOfProductionJournalPostsCorrectConsumptionILE Failure (6.296 seconds)\n Error:\n Unhandled UI: Page 700\n Call Stack:\n \"Production Journal Mgt\"(CodeUnit 5510).Handling line 30 - Base Application by Microsoft\n \"Released Prod. Order Lines\"(Page 99000832).ShowProductionJournal line 10 - Base Application by Microsoft\n \"Released Prod. Order Lines\"(Page 99000832).\"ProductionJournal - OnAction\"(Trigger) line 2 - Base Application by Microsoft", "metrics": {"execution_time": 1674.0, "llm_duration": null, "turn_count": 42, "prompt_tokens": 2300000, "completion_tokens": 101900, "tool_usage": {"grep": 21, "view": 30, "glob": 2, "powershell": 2, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-176194__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Page.al b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Page.al\nindex 0893904c..09b7d9ce 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Page.al\n@@ -310,8 +310,6 @@ page 5814 \"Item Charge Assignment (Sales)\"\n ItemChargeAssgntSales: Record \"Item Charge Assignment (Sales)\";\n ShipmentLines: Page \"Sales Shipment Lines\";\n begin\n- SalesLine2.TestField(\"Qty. to Invoice\");\n-\n ItemChargeAssgntSales.SetRange(\"Document Type\", Rec.\"Document Type\");\n ItemChargeAssgntSales.SetRange(\"Document No.\", Rec.\"Document No.\");\n ItemChargeAssgntSales.SetRange(\"Document Line No.\", Rec.\"Document Line No.\");\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134329'\nCodeunit 134329 ERM Purchase Return Order\n Testfunction GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToReceiveIsBlankInPurchPayablesSetup Failure (11.997 seconds)\n Error:\n Qty. to Invoice must have a value in Purchase Line: Document Type=Return Order, Document No.=1001, Line No.=20000. It cannot be zero or empty.\n Call Stack:\n \"Item Charge Assignment (Purch)\"(Table 5805).\"Qty. to Assign - OnValidate\"(Trigger) line 4 - Base Application by Microsoft\n \"Item Charge Assgnt. (Purch.)\"(CodeUnit 5805).InsertItemChargeAssignmentWithValuesTo line 20 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyFromPurchLineItemChargeAssign line 47 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyPurchInvLinesToDoc line 144 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyPurchaseLinesToDoc line 15 - Base Application by Microsoft\n \"Posted Purchase Document Lines\"(Page 5855).CopyLineToDoc line 23 - Base Application by Microsoft\n \"Purchase Header\"(Table 38).GetPstdDocLinesToReverse line 9 - Base Application by Microsoft\n \"Purchase Return Order\"(Page 6640).\"GetPostedDocumentLinesToReverse - OnAction\"(Trigger) line 2 - Base Application by Microsoft\nSetting test codeunit range '134387'\nCodeunit 134387 ERM Sales Documents III\n Testfunction GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToShipIsBlankInSalesReceiSetup Failure (3.663 seconds)\n Error:\n Qty. to Invoice must have a value in Sales Line: Document Type=Return Order, Document No.=1001, Line No.=30000. It cannot be zero or empty.\n Call Stack:", "metrics": {"execution_time": 100.0, "llm_duration": null, "turn_count": 18, "prompt_tokens": 442700, "completion_tokens": 3600, "tool_usage": {"grep": 12, "view": 6, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-176194__cf-2", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssgntSales.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssgntSales.Codeunit.al\nindex de917342..ee96595c 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssgntSales.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssgntSales.Codeunit.al\n@@ -7,6 +7,7 @@ namespace Microsoft.Sales.Document;\n using Microsoft.Finance.Currency;\n using Microsoft.Foundation.UOM;\n using Microsoft.Sales.History;\n+using Microsoft.Sales.Setup;\n \n codeunit 5807 \"Item Charge Assgnt. (Sales)\"\n {\n@@ -200,13 +201,16 @@ codeunit 5807 \"Item Charge Assgnt. (Sales)\"\n procedure SuggestAssignment(SalesLine: Record \"Sales Line\"; TotalQtyToAssign: Decimal; TotalAmtToAssign: Decimal; TotalQtyToHandle: Decimal; TotalAmtToHandle: Decimal)\n var\n ItemChargeAssgntSales: Record \"Item Charge Assignment (Sales)\";\n+ SalesReceivablesSetup: Record \"Sales & Receivables Setup\";\n Selection: Integer;\n SelectionTxt: Text;\n SuggestItemChargeMenuTxt: Text;\n SuggestItemChargeMessageTxt: Text;\n IsHandled: Boolean;\n begin\n- SalesLine.TestField(\"Qty. to Invoice\");\n+ SalesReceivablesSetup.Get();\n+ if SalesReceivablesSetup.\"Default Quantity to Ship\" <> SalesReceivablesSetup.\"Default Quantity to Ship\"::Blank then\n+ SalesLine.TestField(\"Qty. to Invoice\");\n ItemChargeAssgntSales.SetRange(\"Document Type\", SalesLine.\"Document Type\");\n ItemChargeAssgntSales.SetRange(\"Document No.\", SalesLine.\"Document No.\");\n ItemChargeAssgntSales.SetRange(\"Document Line No.\", SalesLine.\"Line No.\");\ndiff --git a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Page.al b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Page.al\nindex 0893904c..704da518 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Page.al\n@@ -6,6 +6,7 @@ namespace Microsoft.Sales.Document;\n \n using Microsoft.Inventory.Item;\n using Microsoft.Sales.History;\n+using Microsoft.Sales.Setup;\n \n page 5814 \"Item Charge Assignment (Sales)\"\n {\n@@ -309,8 +310,11 @@ page 5814 \"Item Charge Assignment (Sales)\"\n var\n ItemChargeAssgntSales: Record \"Item Charge Assignment (Sales)\";\n ShipmentLines: Page \"Sales Shipment Lines\";\n+ SalesReceivablesSetup: Record \"Sales & Receivables Setup\";\n begin\n- SalesLine2.TestField(\"Qty. to Invoice\");\n+ SalesReceivablesSetup.Get();\n+ if SalesReceivablesSetup.\"Default Quantity to Ship\" <> SalesReceivablesSetup.\"Default Quantity to Ship\"::Blank then\n+ SalesLine2.TestField(\"Qty. to Invoice\");\n \n ItemChargeAssgntSales.SetRange(\"Document Type\", Rec.\"Document Type\");\n ItemChargeAssgntSales.SetRange(\"Document No.\", Rec.\"Document No.\");\ndiff --git a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al\nindex 7cd86681..16a32d3f 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al\n@@ -7,6 +7,7 @@ namespace Microsoft.Sales.Document;\n using Microsoft.Finance.Currency;\n using Microsoft.Inventory.Item;\n using Microsoft.Sales.History;\n+using Microsoft.Sales.Setup;\n \n table 5809 \"Item Charge Assignment (Sales)\"\n {\n@@ -56,10 +57,15 @@ table 5809 \"Item Charge Assignment (Sales)\"\n DecimalPlaces = 0 : 5;\n \n trigger OnValidate()\n+ var\n+ SalesReceivablesSetup: Record \"Sales & Receivables Setup\";\n begin\n SalesLine.Get(\"Document Type\", \"Document No.\", \"Document Line No.\");\n- if Rec.\"Qty. to Assign\" <> xRec.\"Qty. to Assign\" then\n- SalesLine.TestField(\"Qty. to Invoice\");\n+ if Rec.\"Qty. to Assign\" <> xRec.\"Qty. to Assign\" then begin\n+ SalesReceivablesSetup.Get();\n+ if SalesReceivablesSetup.\"Default Quantity to Ship\" <> SalesReceivablesSetup.\"Default Quantity to Ship\"::Blank then\n+ SalesLine.TestField(\"Qty. to Invoice\");\n+ end;\n TestField(\"Applies-to Doc. Line No.\");\n if (\"Qty. to Assign\" <> 0) and (\"Applies-to Doc. Type\" = \"Document Type\") then\n if SalesLineInvoiced() then\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134329'\nCodeunit 134329 ERM Purchase Return Order\n Testfunction GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToReceiveIsBlankInPurchPayablesSetup Failure (12.453 seconds)\n Error:\n Qty. to Invoice must have a value in Purchase Line: Document Type=Return Order, Document No.=1001, Line No.=20000. It cannot be zero or empty.\n Call Stack:\n \"Item Charge Assignment (Purch)\"(Table 5805).\"Qty. to Assign - OnValidate\"(Trigger) line 4 - Base Application by Microsoft\n \"Item Charge Assgnt. (Purch.)\"(CodeUnit 5805).InsertItemChargeAssignmentWithValuesTo line 20 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyFromPurchLineItemChargeAssign line 47 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyPurchInvLinesToDoc line 144 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyPurchaseLinesToDoc line 15 - Base Application by Microsoft\n \"Posted Purchase Document Lines\"(Page 5855).CopyLineToDoc line 23 - Base Application by Microsoft\n \"Purchase Header\"(Table 38).GetPstdDocLinesToReverse line 9 - Base Application by Microsoft\n \"Purchase Return Order\"(Page 6640).\"GetPostedDocumentLinesToReverse - OnAction\"(Trigger) line 2 - Base Application by Microsoft\nSetting test codeunit range '134387'\nCodeunit 134387 ERM Sales Documents III\n Testfunction GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToShipIsBlankInSalesReceiSetup Success (5.053 seconds)\n\u001b[32m[13:31:23] Tests passed for Codeunit 134387\u001b[0m", "metrics": {"execution_time": 991.0, "llm_duration": null, "turn_count": 79, "prompt_tokens": 5600000, "completion_tokens": 48400, "tool_usage": {"grep": 46, "glob": 9, "view": 32, "powershell": 10, "report_intent": 2, "edit": 6}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-176194__cf-3", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al\nindex 7cd86681..54a3ab82 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/ItemChargeAssignmentSales.Table.al\n@@ -58,8 +58,6 @@ table 5809 \"Item Charge Assignment (Sales)\"\n trigger OnValidate()\n begin\n SalesLine.Get(\"Document Type\", \"Document No.\", \"Document Line No.\");\n- if Rec.\"Qty. to Assign\" <> xRec.\"Qty. to Assign\" then\n- SalesLine.TestField(\"Qty. to Invoice\");\n TestField(\"Applies-to Doc. Line No.\");\n if (\"Qty. to Assign\" <> 0) and (\"Applies-to Doc. Type\" = \"Document Type\") then\n if SalesLineInvoiced() then\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134329'\nCodeunit 134329 ERM Purchase Return Order\n Testfunction GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToReceiveIsBlankInPurchPayablesSetup Failure (12.463 seconds)\n Error:\n Qty. to Invoice must have a value in Purchase Line: Document Type=Return Order, Document No.=1001, Line No.=20000. It cannot be zero or empty.\n Call Stack:\n \"Item Charge Assignment (Purch)\"(Table 5805).\"Qty. to Assign - OnValidate\"(Trigger) line 4 - Base Application by Microsoft\n \"Item Charge Assgnt. (Purch.)\"(CodeUnit 5805).InsertItemChargeAssignmentWithValuesTo line 20 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyFromPurchLineItemChargeAssign line 47 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyPurchInvLinesToDoc line 144 - Base Application by Microsoft\n \"Copy Document Mgt.\"(CodeUnit 6620).CopyPurchaseLinesToDoc line 15 - Base Application by Microsoft\n \"Posted Purchase Document Lines\"(Page 5855).CopyLineToDoc line 23 - Base Application by Microsoft\n \"Purchase Header\"(Table 38).GetPstdDocLinesToReverse line 9 - Base Application by Microsoft\n \"Purchase Return Order\"(Page 6640).\"GetPostedDocumentLinesToReverse - OnAction\"(Trigger) line 2 - Base Application by Microsoft\nSetting test codeunit range '134387'\nCodeunit 134387 ERM Sales Documents III\n Testfunction GetPostedDocumentLinesToReverseCopiesLinesWhenDefaultQtyToShipIsBlankInSalesReceiSetup Success (4.36 seconds)\n\u001b[32m[13:15:17] Tests passed for Codeunit 134387\u001b[0m", "metrics": {"execution_time": 49.0, "llm_duration": null, "turn_count": 6, "prompt_tokens": 114600, "completion_tokens": 1900, "tool_usage": {"glob": 2, "view": 2, "grep": 1, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-176426__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\nindex d639a562..27a45311 100644\n--- a/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\n@@ -993,7 +993,7 @@ codeunit 5870 \"Calculate BOM Tree\"\n exit(true);\n end;\n Item.\"Replenishment System\"::\"Prod. Order\":\n- if Item.\"Production BOM No.\" <> '' then\n+ if (Item.\"Production BOM No.\" <> '') or (Item.\"Routing No.\" <> '') then\n exit(true);\n end;\n end;\n", "error_message": null, "metrics": {"execution_time": 254.0, "llm_duration": null, "turn_count": 19, "prompt_tokens": 813600, "completion_tokens": 13600, "tool_usage": {"glob": 4, "view": 12, "grep": 4, "powershell": 1, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-176426__cf-2", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\nindex d639a562..27a45311 100644\n--- a/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/BOM/Tree/CalculateBOMTree.Codeunit.al\n@@ -993,7 +993,7 @@ codeunit 5870 \"Calculate BOM Tree\"\n exit(true);\n end;\n Item.\"Replenishment System\"::\"Prod. Order\":\n- if Item.\"Production BOM No.\" <> '' then\n+ if (Item.\"Production BOM No.\" <> '') or (Item.\"Routing No.\" <> '') then\n exit(true);\n end;\n end;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137391'\nCodeunit 137391 SCM - BOM Cost Shares Report\n Testfunction RolledUpMaterialAndCapacityCostWithRoutingAndNoBOM Failure (3.63 seconds)\n Error:\n AssertEquals for Field: Rolled-up Material Cost Expected = '497.28', Actual = ''\n Call Stack:\n \"SCM - BOM Cost Shares Report\"(CodeUnit 137391).VerifyParentItemMaterialAndCapacityCost line 7 - Tests-SCM by Microsoft\n \"SCM - BOM Cost Shares Report\"(CodeUnit 137391).RolledUpMaterialAndCapacityCostWithRoutingAndNoBOM line 34 - Tests-SCM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 278.0, "llm_duration": null, "turn_count": 19, "prompt_tokens": 608000, "completion_tokens": 12500, "tool_usage": {"glob": 2, "grep": 7, "view": 12, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-177493__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\nindex bb47904d..fe83058e 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n@@ -58,6 +58,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if IsItemReserveNever(\"No.\") then\n+ CurrReport.Skip();\n+\n if not CheckIfSalesLineMeetsReservedFromStockSetting(Abs(\"Outstanding Qty. (Base)\"), ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -107,6 +110,9 @@ report 302 \"Get Demand To Reserve\"\n var\n Item: Record Item;\n begin\n+ if IsItemReserveNever(\"Item No.\") then\n+ CurrReport.Skip();\n+\n if not CheckIfTransferLineMeetsReservedFromStockSetting(\"Outstanding Qty. (Base)\", ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -158,6 +164,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if IsItemReserveNever(\"No.\") then\n+ CurrReport.Skip();\n+\n if not CheckIfServiceLineMeetsReservedFromStockSetting(Abs(\"Outstanding Qty. (Base)\"), ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -208,6 +217,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if IsItemReserveNever(\"No.\") then\n+ CurrReport.Skip();\n+\n if not CheckIfJobPlngLineMeetsReservedFromStockSetting(\"Remaining Qty. (Base)\", ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -259,6 +271,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if IsItemReserveNever(\"No.\") then\n+ CurrReport.Skip();\n+\n if not CheckIfAssemblyLineMeetsReservedFromStockSetting(\"Remaining Quantity (Base)\", ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -309,6 +324,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if IsItemReserveNever(\"Item No.\") then\n+ CurrReport.Skip();\n+\n if not CheckIfProdOrderCompMeetsReservedFromStockSetting(\"Remaining Qty. (Base)\", ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -548,4 +566,13 @@ report 302 \"Get Demand To Reserve\"\n local procedure OnSalesOrderLineOnAfterGetRecordOnBeforeSetTempSalesLine(var OrderSalesLine: Record \"Sales Line\")\n begin\n end;\n+\n+ local procedure IsItemReserveNever(ItemNo: Code[20]): Boolean\n+ var\n+ Item: Record Item;\n+ begin\n+ if not Item.Get(ItemNo) then\n+ exit(false);\n+ exit(Item.Reserve = Enum::\"Reserve Method\"::Never);\n+ end;\n }\n\\ No newline at end of file\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137023'\nCodeunit 137023 SCM Reservation Worksheet\n Testfunction ItemWithReserveNeverNotInReservationWorksheet Failure (9.177 seconds)\n Error:\n Assert.IsFalse failed. Sales demand with Reserve=Never should appear (filtering deferred to post-processing).\n Call Stack:\n Assert(CodeUnit 130000).IsFalse line 3 - Tests-TestLibraries by Microsoft\n \"SCM Reservation Worksheet\"(CodeUnit 137023).ItemWithReserveNeverNotInReservationWorksheet line 50 - Tests-SCM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 340.0, "llm_duration": null, "turn_count": 37, "prompt_tokens": 1400000, "completion_tokens": 16800, "tool_usage": {"grep": 12, "view": 17, "glob": 2, "powershell": 2, "report_intent": 1, "edit": 7}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-177493__cf-2", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\nindex bb47904d..08a47fb6 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n@@ -58,6 +58,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if Reserve = Reserve::Never then\n+ CurrReport.Skip();\n+\n if not CheckIfSalesLineMeetsReservedFromStockSetting(Abs(\"Outstanding Qty. (Base)\"), ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -158,6 +161,9 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ if Reserve = Reserve::Never then\n+ CurrReport.Skip();\n+\n if not CheckIfServiceLineMeetsReservedFromStockSetting(Abs(\"Outstanding Qty. (Base)\"), ReservedFromStock)\n then\n CurrReport.Skip();\n", "error_message": null, "metrics": {"execution_time": 176.0, "llm_duration": null, "turn_count": 21, "prompt_tokens": 737000, "completion_tokens": 6800, "tool_usage": {"grep": 9, "view": 13, "glob": 1, "report_intent": 1, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-177493__cf-3", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\nindex bb47904d..54df2b6b 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/GetDemandToReserve.Report.al\n@@ -58,6 +58,11 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ Item.SetLoadFields(Reserve);\n+ Item.Get(\"No.\");\n+ if Item.Reserve = Item.Reserve::Never then\n+ CurrReport.Skip();\n+\n if not CheckIfSalesLineMeetsReservedFromStockSetting(Abs(\"Outstanding Qty. (Base)\"), ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -111,6 +116,11 @@ report 302 \"Get Demand To Reserve\"\n then\n CurrReport.Skip();\n \n+ Item.SetLoadFields(Reserve);\n+ if Item.Get(\"Item No.\") then\n+ if Item.Reserve = Item.Reserve::Never then\n+ CurrReport.Skip();\n+\n if ItemFilterFromBatch <> '' then begin\n Item.SetView(ReservationWkshBatch.GetItemFilterBlobAsViewFilters());\n Item.FilterGroup(2);\n@@ -158,6 +168,11 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ Item.SetLoadFields(Reserve);\n+ Item.Get(\"No.\");\n+ if Item.Reserve = Item.Reserve::Never then\n+ CurrReport.Skip();\n+\n if not CheckIfServiceLineMeetsReservedFromStockSetting(Abs(\"Outstanding Qty. (Base)\"), ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -208,6 +223,11 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ Item.SetLoadFields(Reserve);\n+ Item.Get(\"No.\");\n+ if Item.Reserve = Item.Reserve::Never then\n+ CurrReport.Skip();\n+\n if not CheckIfJobPlngLineMeetsReservedFromStockSetting(\"Remaining Qty. (Base)\", ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -259,6 +279,11 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ Item.SetLoadFields(Reserve);\n+ Item.Get(\"No.\");\n+ if Item.Reserve = Item.Reserve::Never then\n+ CurrReport.Skip();\n+\n if not CheckIfAssemblyLineMeetsReservedFromStockSetting(\"Remaining Quantity (Base)\", ReservedFromStock)\n then\n CurrReport.Skip();\n@@ -309,6 +334,11 @@ report 302 \"Get Demand To Reserve\"\n if not IsInventoriableItem() then\n CurrReport.Skip();\n \n+ Item.SetLoadFields(Reserve);\n+ Item.Get(\"Item No.\");\n+ if Item.Reserve = Item.Reserve::Never then\n+ CurrReport.Skip();\n+\n if not CheckIfProdOrderCompMeetsReservedFromStockSetting(\"Remaining Qty. (Base)\", ReservedFromStock)\n then\n CurrReport.Skip();\n", "error_message": null, "metrics": {"execution_time": 581.0, "llm_duration": null, "turn_count": 54, "prompt_tokens": 2700000, "completion_tokens": 27200, "tool_usage": {"grep": 36, "view": 16, "glob": 5, "powershell": 1, "report_intent": 1, "edit": 6}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-178045__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": true, "output": "", "error_message": "Agent timed out", "metrics": {"execution_time": 3600.0, "llm_duration": null, "turn_count": null, "prompt_tokens": null, "completion_tokens": null, "tool_usage": null}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}} +{"instance_id": "microsoftInternal__NAV-179733__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al\nindex efa323e6..3234ab23 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Job/CopyJob.Codeunit.al\n@@ -91,7 +91,9 @@ codeunit 1006 \"Copy Job\"\n TargetJobTask.Validate(\"Job No.\", TargetJob.\"No.\");\n TargetJobTask.Validate(\"Job Task No.\", SourceJobTask.\"Job Task No.\");\n TargetJobTask.TransferFields(SourceJobTask, false);\n- if SourceJob.\"Task Billing Method\" = SourceJob.\"Task Billing Method\"::\"Multiple customers\" then begin\n+ if (SourceJob.\"Task Billing Method\" = SourceJob.\"Task Billing Method\"::\"Multiple customers\") and\n+ (TargetJobTask.\"Job Task Type\" <> TargetJobTask.\"Job Task Type\"::\"Begin-Total\")\n+ then begin\n TargetJobTask.SetHideValidationDialog(true);\n TargetJobTask.Validate(\"Sell-to Customer No.\", '');\n end;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136323'\nCodeunit 136323 Jobs - Multiple Customers\n Testfunction CopyTotalsProjectTasksTypeIntoProjectsWithMultipleCustomerBillingOption Failure (1.643 seconds)\n Error:\n Project Task Type must be equal to 'Posting' in Project Task: Project No.=ZZZJ002, Project Task No.=ZZZJT001. Current value is 'Begin-Total'.\n Call Stack:\n \"Job Task\"(Table 1001).\"Sell-to Customer No. - OnValidate\"(Trigger) line 3 - Base Application by Microsoft\n \"Job Task\"(Table 1001).InitCustomer line 9 - Base Application by Microsoft\n \"Job Task\"(Table 1001).OnInsert(Trigger) line 20 - Base Application by Microsoft\n \"Copy Job\"(CodeUnit 1006).CopyJobTasks line 45 - Base Application by Microsoft\n \"Jobs - Multiple Customers\"(CodeUnit 136323).CopyTotalsProjectTasksTypeIntoProjectsWithMultipleCustomerBillingOption line 34 - Tests-Job by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 85.0, "llm_duration": null, "turn_count": 12, "prompt_tokens": 264600, "completion_tokens": 2500, "tool_usage": {"grep": 7, "view": 4, "glob": 1, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-180484__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/eServices/EDocument/ReleaseIncomingDocument.Codeunit.al b/App/Layers/W1/BaseApp/eServices/EDocument/ReleaseIncomingDocument.Codeunit.al\nindex 4e5ba08c..ef423281 100644\n--- a/App/Layers/W1/BaseApp/eServices/EDocument/ReleaseIncomingDocument.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/eServices/EDocument/ReleaseIncomingDocument.Codeunit.al\n@@ -44,9 +44,13 @@ codeunit 132 \"Release Incoming Document\"\n #pragma warning restore AA0470\n \n procedure Reopen(var IncomingDocument: Record \"Incoming Document\")\n+ var\n+ RelatedRecord: Variant;\n begin\n if IncomingDocument.Status = IncomingDocument.Status::New then\n exit;\n+ if IncomingDocument.GetRecord(RelatedRecord) then\n+ exit;\n ClearReleaseFields(IncomingDocument);\n IncomingDocument.Status := IncomingDocument.Status::New;\n \n", "error_message": null, "metrics": {"execution_time": 768.0, "llm_duration": null, "turn_count": 17, "prompt_tokens": 373300, "completion_tokens": 6300, "tool_usage": {"glob": 1, "view": 8, "grep": 4, "powershell": 7, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-180484__cf-2", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/eServices/EDocument/ReleaseIncomingDocument.Codeunit.al b/App/Layers/W1/BaseApp/eServices/EDocument/ReleaseIncomingDocument.Codeunit.al\nindex 4e5ba08c..ef423281 100644\n--- a/App/Layers/W1/BaseApp/eServices/EDocument/ReleaseIncomingDocument.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/eServices/EDocument/ReleaseIncomingDocument.Codeunit.al\n@@ -44,9 +44,13 @@ codeunit 132 \"Release Incoming Document\"\n #pragma warning restore AA0470\n \n procedure Reopen(var IncomingDocument: Record \"Incoming Document\")\n+ var\n+ RelatedRecord: Variant;\n begin\n if IncomingDocument.Status = IncomingDocument.Status::New then\n exit;\n+ if IncomingDocument.GetRecord(RelatedRecord) then\n+ exit;\n ClearReleaseFields(IncomingDocument);\n IncomingDocument.Status := IncomingDocument.Status::New;\n \n", "error_message": null, "metrics": {"execution_time": 115.0, "llm_duration": null, "turn_count": 10, "prompt_tokens": 313600, "completion_tokens": 6100, "tool_usage": {"glob": 1, "view": 5, "grep": 4, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-182354__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al b/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al\nindex 737182d0..36e53ab0 100644\n--- a/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al\n+++ b/App/Layers/W1/BaseApp/RoleCenters/AccountReceivablesKPIs.Page.al\n@@ -28,7 +28,7 @@ page 1318 \"Account Receivables KPIs\"\n begin\n CustLedgerEntry.SetRange(Open, true);\n CustLedgerEntry.SetFilter(\"Remaining Amount\", '>%1', 0);\n- CustLedgerEntry.SetFilter(\"Due Date\", '<=%1', WorkDate());\n+ CustLedgerEntry.SetFilter(\"Due Date\", '<=%1', GetFilterDate());\n CustomerLedgerEntries.SetTableView(CustLedgerEntry);\n CustomerLedgerEntries.Run();\n end;\n@@ -93,12 +93,19 @@ page 1318 \"Account Receivables KPIs\"\n SalesInvoicesDueNextWeekStyleExpr: Text;\n AverageCollectionDays: Decimal;\n \n+ local procedure GetFilterDate(): Date\n+ begin\n+ if Today() <> 0D then\n+ exit(Today());\n+ exit(WorkDate());\n+ end;\n+\n trigger OnInit()\n var\n CuesAndKPIs: Codeunit \"Cues And KPIs\";\n SalesInvoicesDueNextWeekStyle: Enum \"Cues And KPIs Style\";\n begin\n- Rec.SetRange(\"Overdue Date Filter\", 0D, WorkDate());\n+ Rec.SetRange(\"Overdue Date Filter\", 0D, GetFilterDate());\n if not Rec.Get() then begin\n Clear(Rec);\n Rec.Insert();\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134924'\nCodeunit 134924 ERM Cues\n Testfunction TotalOverdueLCYInFinanceCue Failure (6.553 seconds)\n Error:\n Assert.AreEqual failed. Expected:<> (Text). Actual:<50.17> (Text). The total overdue LCY amount is not calculated correctly..\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"ERM Cues\"(CodeUnit 134924).TotalOverdueLCYInFinanceCue line 38 - Tests-ERM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 65.0, "llm_duration": null, "turn_count": 7, "prompt_tokens": 153000, "completion_tokens": 2200, "tool_usage": {"glob": 3, "grep": 2, "view": 2, "report_intent": 1, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-183399__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\nindex 553ae9c0..cec7b1ec 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n@@ -255,6 +255,7 @@ page 254 \"Purchase Journal\"\n {\n ApplicationArea = Basic, Suite;\n AutoFormatExpression = Rec.\"Currency Code\";\n+ AutoFormatType = 1;\n Caption = 'Document Amount';\n ToolTip = 'Specifies the total amount (including VAT) that the journal line consists of.';\n \ndiff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/SalesJournal.Page.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/SalesJournal.Page.al\nindex d63650ad..4dfc2fdf 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/SalesJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/SalesJournal.Page.al\n@@ -247,6 +247,7 @@ page 253 \"Sales Journal\"\n {\n ApplicationArea = Basic, Suite;\n AutoFormatExpression = Rec.\"Currency Code\";\n+ AutoFormatType = 1;\n Caption = 'Document Amount';\n ToolTip = 'Specifies the total amount (including VAT) that the journal line consists of.';\n \n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134918'\nCodeunit 134918 ERM Sales/Purchase Application\n Testfunction DocumentAmountInPurchJnlAcceptsMaxThreeDecimalPlacesValue Failure (4.587 seconds)\n Error:\n Assert.AreEqual failed. Expected:<1.7461> (Decimal). Actual:<1.75> (Decimal). The document amount is not correct. Expected: 1.7461, Actual: 1.75.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"ERM Sales/Purchase Application\"(CodeUnit 134918).DocumentAmountInPurchJnlAcceptsMaxThreeDecimalPlacesValue line 25 - Tests-ERM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 81.0, "llm_duration": null, "turn_count": 10, "prompt_tokens": 260600, "completion_tokens": 3200, "tool_usage": {"view": 5, "grep": 6, "report_intent": 1, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-183399__cf-2", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\nindex 553ae9c0..cec7b1ec 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n@@ -255,6 +255,7 @@ page 254 \"Purchase Journal\"\n {\n ApplicationArea = Basic, Suite;\n AutoFormatExpression = Rec.\"Currency Code\";\n+ AutoFormatType = 1;\n Caption = 'Document Amount';\n ToolTip = 'Specifies the total amount (including VAT) that the journal line consists of.';\n \n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134918'\nCodeunit 134918 ERM Sales/Purchase Application\n Testfunction DocumentAmountInPurchJnlAcceptsMaxThreeDecimalPlacesValue Failure (4.85 seconds)\n Error:\n Assert.AreEqual failed. Expected:<1.747> (Decimal). Actual:<1.75> (Decimal). The document amount is not correct. Expected: 1.747, Actual: 1.75.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"ERM Sales/Purchase Application\"(CodeUnit 134918).DocumentAmountInPurchJnlAcceptsMaxThreeDecimalPlacesValue line 25 - Tests-ERM by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 108.0, "llm_duration": null, "turn_count": 10, "prompt_tokens": 245300, "completion_tokens": 4800, "tool_usage": {"grep": 6, "view": 3, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-185488__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al b/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al\nindex bcd82095..c5fbf72f 100644\n--- a/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/System/Workflow/WorkflowResponseHandling.Codeunit.al\n@@ -624,12 +624,19 @@ codeunit 1521 \"Workflow Response Handling\"\n begin\n end;\n \n- local procedure CreateNotificationEntry(WorkflowStepInstance: Record \"Workflow Step Instance\"; ApprovalEntry: Record \"Approval Entry\")\n+ local procedure CreateNotificationEntry(WorkflowStepInstance: Record \"Workflow Step Instance\"; RecVariant: Variant)\n var\n+ ApprovalEntry: Record \"Approval Entry\";\n WorkflowStepArgument: Record \"Workflow Step Argument\";\n NotificationEntry: Record \"Notification Entry\";\n+ RecRef: RecordRef;\n IsHandled: Boolean;\n begin\n+ RecRef.GetTable(RecVariant);\n+ if RecRef.Number <> Database::\"Approval Entry\" then\n+ exit;\n+ ApprovalEntry := RecVariant;\n+\n IsHandled := false;\n OnBeforeCreateNotificationEntry(WorkflowStepInstance, ApprovalEntry, IsHandled);\n if IsHandled then\n", "error_message": null, "metrics": {"execution_time": 135.0, "llm_duration": null, "turn_count": 13, "prompt_tokens": 386100, "completion_tokens": 6200, "tool_usage": {"grep": 10, "view": 4, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-185792__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\nindex 53e7159a..dfedc162 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\n@@ -598,6 +598,10 @@ table 81 \"Gen. Journal Line\"\n Validate(\"VAT %\");\n Validate(\"Bal. VAT %\");\n UpdateLineBalance();\n+ if JobTaskIsSet() then begin\n+ CreateTempJobJnlLine();\n+ UpdatePricesFromJobJnlLine();\n+ end;\n end;\n end;\n }\n", "error_message": null, "metrics": {"execution_time": 160.0, "llm_duration": null, "turn_count": 19, "prompt_tokens": 522200, "completion_tokens": 6800, "tool_usage": {"grep": 11, "glob": 3, "view": 6, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-188438__cf-1", "project": "Sustainability", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al b/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al\nindex 4644c873..42dcd6f8 100644\n--- a/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al\n+++ b/App/Apps/W1/Sustainability/app/src/Calculation/SustainabilityCalcMgt.Codeunit.al\n@@ -2,6 +2,7 @@ namespace Microsoft.Sustainability.Calculation;\n \n using Microsoft.Sustainability.Journal;\n using Microsoft.Sustainability.Account;\n+using Microsoft.Finance.GeneralLedger.Account;\n using Microsoft.Finance.GeneralLedger.Ledger;\n \n codeunit 6218 \"Sustainability Calc. Mgt.\"\n@@ -88,14 +89,32 @@ codeunit 6218 \"Sustainability Calc. Mgt.\"\n CollectAmountFromGLEntry.LookupMode(true);\n if CollectAmountFromGLEntry.RunModal() = Action::LookupOK then begin\n CollectAmountFromGLEntry.GetDates(FromDate, ToDate);\n- SustainabilityJnlLine.Validate(\"Custom Amount\", GetCollectableGLAmount(SustainAccountCategory, FromDate, ToDate));\n+ SustainabilityJnlLine.Validate(\"Custom Amount\", Abs(GetCollectableGLAmount(SustainAccountCategory, FromDate, ToDate)));\n end;\n end;\n \n internal procedure FilterGLEntry(SustainAccountCategory: Record \"Sustain. Account Category\"; FromDate: Date; ToDate: Date; var GLEntry: Record \"G/L Entry\");\n+ var\n+ GLAccount: Record \"G/L Account\";\n+ DirectPostingAccFilter: Text;\n begin\n GLEntry.Reset();\n- GLEntry.SetFilter(\"G/L Account No.\", SustainAccountCategory.\"G/L Account Filter\");\n+\n+ GLAccount.SetRange(\"Direct Posting\", true);\n+ if SustainAccountCategory.\"G/L Account Filter\" <> '' then\n+ GLAccount.SetFilter(\"No.\", SustainAccountCategory.\"G/L Account Filter\");\n+ if GLAccount.FindSet() then\n+ repeat\n+ if DirectPostingAccFilter <> '' then\n+ DirectPostingAccFilter += '|';\n+ DirectPostingAccFilter += GLAccount.\"No.\";\n+ until GLAccount.Next() = 0;\n+\n+ if DirectPostingAccFilter = '' then\n+ GLEntry.SetRange(\"G/L Account No.\", '')\n+ else\n+ GLEntry.SetFilter(\"G/L Account No.\", DirectPostingAccFilter);\n+\n GLEntry.SetFilter(\"Global Dimension 1 Code\", SustainAccountCategory.\"Global Dimension 1 Filter\");\n GLEntry.SetFilter(\"Global Dimension 2 Code\", SustainAccountCategory.\"Global Dimension 2 Filter\");\n if (FromDate <> 0D) or (ToDate <> 0D) then\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '148181'\nCodeunit 148181 Sustainability Journal Test\n Testfunction TestCustomAmountIsPositiveForNegativeTotalOfGL Failure (4.113 seconds)\n Error:\n Assert.AreEqual failed. Expected:<248.67> (Decimal). Actual:<-248.67> (Decimal). The custom amount must be positive.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"Sustainability Journal Test\"(CodeUnit 148181).TestCustomAmountIsPositiveForNegativeTotalOfGL line 36 - Sustainability Tests by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 21 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 113.0, "llm_duration": null, "turn_count": 10, "prompt_tokens": 242300, "completion_tokens": 6600, "tool_usage": {"grep": 4, "view": 4, "report_intent": 1, "edit": 3}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-192565__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\nindex fb45dbcf..b59c9d7a 100644\n--- a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n@@ -5365,6 +5365,7 @@ table 39 \"Purchase Line\"\n Amount := 0;\n \"VAT Base Amount\" := 0;\n \"Amount Including VAT\" := 0;\n+ NonDeductibleVAT.Update(Rec, Currency);\n OnUpdateVATAmountsOnBeforePurchLineModify(Rec, PurchLine2);\n if (Quantity = 0) and (xRec.Quantity <> 0) and (xRec.Amount <> 0) then begin\n if \"Line No.\" <> 0 then\n", "error_message": null, "metrics": {"execution_time": 167.0, "llm_duration": null, "turn_count": 19, "prompt_tokens": 760000, "completion_tokens": 7500, "tool_usage": {"glob": 3, "grep": 10, "view": 14, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-192565__cf-2", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\nindex fb45dbcf..09b9b67c 100644\n--- a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n@@ -5365,6 +5365,7 @@ table 39 \"Purchase Line\"\n Amount := 0;\n \"VAT Base Amount\" := 0;\n \"Amount Including VAT\" := 0;\n+ NonDeductibleVAT.ClearNonDeductibleVAT(Rec);\n OnUpdateVATAmountsOnBeforePurchLineModify(Rec, PurchLine2);\n if (Quantity = 0) and (xRec.Quantity <> 0) and (xRec.Amount <> 0) then begin\n if \"Line No.\" <> 0 then\n", "error_message": null, "metrics": {"execution_time": 107.0, "llm_duration": null, "turn_count": 13, "prompt_tokens": 351300, "completion_tokens": 3900, "tool_usage": {"glob": 1, "grep": 8, "view": 8, "powershell": 1, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-192565__cf-3", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\nindex fb45dbcf..09b9b67c 100644\n--- a/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Purchases/Document/PurchaseLine.Table.al\n@@ -5365,6 +5365,7 @@ table 39 \"Purchase Line\"\n Amount := 0;\n \"VAT Base Amount\" := 0;\n \"Amount Including VAT\" := 0;\n+ NonDeductibleVAT.ClearNonDeductibleVAT(Rec);\n OnUpdateVATAmountsOnBeforePurchLineModify(Rec, PurchLine2);\n if (Quantity = 0) and (xRec.Quantity <> 0) and (xRec.Amount <> 0) then begin\n if \"Line No.\" <> 0 then\n", "error_message": null, "metrics": {"execution_time": 165.0, "llm_duration": null, "turn_count": 18, "prompt_tokens": 525400, "completion_tokens": 6100, "tool_usage": {"glob": 1, "grep": 8, "view": 14, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-193853__cf-1", "project": "EnforcedDigitalVouchers", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al b/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\nindex 72dc980e..43699f8d 100644\n--- a/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\n+++ b/App/Apps/W1/EnforcedDigitalVouchers/app/src/Implementation/DigitalVoucherImpl.Codeunit.al\n@@ -482,9 +482,25 @@ codeunit 5579 \"Digital Voucher Impl.\"\n exit;\n if not GetDigitalVoucherEntrySetup(DigitalVoucherEntrySetup, DigitalVoucherEntry.GetVoucherEntryTypeFromGenJnlLine(GenJournalLine)) then\n exit;\n+ if IsIncomingDocumentAttachedToDocumentInBatch(GenJournalLine) then\n+ exit;\n HandleDigitalVoucherForEntryTypeAndDoc(ErrorMessageMgt, DigitalVoucherEntrySetup, GenJournalLine);\n end;\n \n+ local procedure IsIncomingDocumentAttachedToDocumentInBatch(GenJournalLine: Record \"Gen. Journal Line\"): Boolean\n+ var\n+ RelatedGenJournalLine: Record \"Gen. Journal Line\";\n+ begin\n+ if GenJournalLine.\"Incoming Document Entry No.\" <> 0 then\n+ exit(false);\n+ RelatedGenJournalLine.SetRange(\"Journal Template Name\", GenJournalLine.\"Journal Template Name\");\n+ RelatedGenJournalLine.SetRange(\"Journal Batch Name\", GenJournalLine.\"Journal Batch Name\");\n+ RelatedGenJournalLine.SetRange(\"Document No.\", GenJournalLine.\"Document No.\");\n+ RelatedGenJournalLine.SetRange(\"Posting Date\", GenJournalLine.\"Posting Date\");\n+ RelatedGenJournalLine.SetFilter(\"Incoming Document Entry No.\", '<>0');\n+ exit(not RelatedGenJournalLine.IsEmpty());\n+ end;\n+\n [EventSubscriber(ObjectType::Codeunit, Codeunit::\"Sales-Post\", 'OnAfterFinalizePostingOnBeforeCommit', '', true, true)]\n local procedure CheckSalesVoucherOnAfterFinalizePostingOnBeforeCommit(var SalesHeader: Record \"Sales Header\"; var SalesShipmentHeader: Record \"Sales Shipment Header\"; var SalesInvoiceHeader: Record \"Sales Invoice Header\"; var SalesCrMemoHeader: Record \"Sales Cr.Memo Header\"; var ReturnReceiptHeader: Record \"Return Receipt Header\"; var GenJnlPostLine: Codeunit \"Gen. Jnl.-Post Line\"; CommitIsSuppressed: Boolean; PreviewMode: Boolean; WhseShip: Boolean; WhseReceive: Boolean; var EverythingInvoiced: Boolean)\n begin\n", "error_message": null, "metrics": {"execution_time": 457.0, "llm_duration": null, "turn_count": 64, "prompt_tokens": 3200000, "completion_tokens": 21400, "tool_usage": {"view": 30, "grep": 34, "glob": 6, "powershell": 3, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-193853__cf-2", "project": "EnforcedDigitalVouchers", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\nindex 14a6f981..7c5cb851 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJournalLine.Table.al\n@@ -2120,6 +2120,7 @@ table 81 \"Gen. Journal Line\"\n IncomingDocument.RemoveReferenceToWorkingDocument(xRec.\"Incoming Document Entry No.\")\n else\n IncomingDocument.SetGenJournalLine(Rec);\n+ SyncIncomingDocumentWithSiblingLines(xRec.\"Incoming Document Entry No.\", \"Incoming Document Entry No.\");\n end;\n }\n field(170; \"Creditor No.\"; Code[20])\n@@ -5382,6 +5383,28 @@ table 81 \"Gen. Journal Line\"\n exit(IncomingDocument.GetURL());\n end;\n \n+ local procedure SyncIncomingDocumentWithSiblingLines(OldEntryNo: Integer; NewEntryNo: Integer)\n+ var\n+ GenJnlLine: Record \"Gen. Journal Line\";\n+ begin\n+ if (\"Document No.\" = '') or (\"Posting Date\" = 0D) then\n+ exit;\n+ GenJnlLine.SetRange(\"Journal Template Name\", \"Journal Template Name\");\n+ GenJnlLine.SetRange(\"Journal Batch Name\", \"Journal Batch Name\");\n+ GenJnlLine.SetRange(\"Document No.\", \"Document No.\");\n+ GenJnlLine.SetRange(\"Posting Date\", \"Posting Date\");\n+ GenJnlLine.SetFilter(\"Line No.\", '<>%1', \"Line No.\");\n+ if NewEntryNo = 0 then\n+ GenJnlLine.SetRange(\"Incoming Document Entry No.\", OldEntryNo);\n+ if GenJnlLine.FindSet(true) then\n+ repeat\n+ if GenJnlLine.\"Incoming Document Entry No.\" <> NewEntryNo then begin\n+ GenJnlLine.\"Incoming Document Entry No.\" := NewEntryNo;\n+ GenJnlLine.Modify();\n+ end;\n+ until GenJnlLine.Next() = 0;\n+ end;\n+\n procedure InsertPaymentFileError(Text: Text)\n var\n PaymentJnlExportErrorText: Record \"Payment Jnl. Export Error Text\";\ndiff --git a/App/Layers/W1/BaseApp/eServices/EDocument/IncomingDocument.Table.al b/App/Layers/W1/BaseApp/eServices/EDocument/IncomingDocument.Table.al\nindex adc2fc8e..5c4d9fe8 100644\n--- a/App/Layers/W1/BaseApp/eServices/EDocument/IncomingDocument.Table.al\n+++ b/App/Layers/W1/BaseApp/eServices/EDocument/IncomingDocument.Table.al\n@@ -1153,12 +1153,23 @@ table 130 \"Incoming Document\"\n end;\n \n procedure SetGenJournalLine(var GenJnlLine: Record \"Gen. Journal Line\")\n+ var\n+ ExistingGenJnlLine: Record \"Gen. Journal Line\";\n begin\n if GenJnlLine.\"Incoming Document Entry No.\" = 0 then\n exit;\n Get(GenJnlLine.\"Incoming Document Entry No.\");\n TestReadyForProcessing();\n- TestIfAlreadyExists();\n+ if \"Document Type\" = \"Document Type\"::Journal then begin\n+ ExistingGenJnlLine.SetRange(\"Incoming Document Entry No.\", \"Entry No.\");\n+ ExistingGenJnlLine.SetFilter(\"Line No.\", '<>%1', GenJnlLine.\"Line No.\");\n+ if ExistingGenJnlLine.FindFirst() then\n+ if (ExistingGenJnlLine.\"Document No.\" <> GenJnlLine.\"Document No.\") or\n+ (ExistingGenJnlLine.\"Posting Date\" <> GenJnlLine.\"Posting Date\")\n+ then\n+ Error(AlreadyUsedInJnlErr, ExistingGenJnlLine.\"Journal Batch Name\", ExistingGenJnlLine.\"Line No.\");\n+ end else\n+ TestIfAlreadyExists();\n \"Document Type\" := \"Document Type\"::Journal;\n Modify(true);\n if not DocLinkExists(GenJnlLine) then\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139515'\nCodeunit 139515 Digital Vouchers Tests\n Testfunction PostMultipleGeneralJournalLinesSamePostingDateDocNoOnlyFirstHasIncDoc Failure (3.68 seconds)\n Error:\n Not possible to post without attaching the digital voucher.\n Call Stack:\n \"Voucher Attachment Check\"(CodeUnit 5580).CheckVoucherIsAttachedToDocument line 7 - Enforced Digital Vouchers by Microsoft\n \"Digital Voucher Impl.\"(CodeUnit 5579).HandleDigitalVoucherForEntryTypeAndDoc line 9 - Enforced Digital Vouchers by Microsoft\n \"Digital Voucher Impl.\"(CodeUnit 5579).OnAfterCheckGenJnlLine line 12 - Enforced Digital Vouchers by Microsoft\n \"Gen. Jnl.-Check Line\"(CodeUnit 11).OnAfterCheckGenJnlLine(Event) line 2 - Base Application by Microsoft\n \"Gen. Jnl.-Check Line\"(CodeUnit 11).RunCheck line 118 - Base Application by Microsoft\n \"Gen. Jnl.-Post Batch\"(CodeUnit 13).CheckLine line 26 - Base Application by Microsoft\n \"Gen. Jnl.-Post Batch\"(CodeUnit 13).ProcessLines line 51 - Base Application by Microsoft\n \"Gen. Jnl.-Post Batch\"(CodeUnit 13).Code line 30 - Base Application by Microsoft\n \"Gen. Jnl.-Post Batch\"(CodeUnit 13).OnRun(Trigger) line 9 - Base Application by Microsoft\n \"Digital Vouchers Tests\"(CodeUnit 139515).PostMultipleGeneralJournalLinesSamePostingDateDocNoOnlyFirstHasIncDoc line 42 - Enforced Digital Vouchers Tests by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft", "metrics": {"execution_time": 363.0, "llm_duration": null, "turn_count": 29, "prompt_tokens": 1300000, "completion_tokens": 22000, "tool_usage": {"glob": 2, "grep": 10, "view": 18, "report_intent": 1, "edit": 3}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-195193__cf-1", "project": "ExcelReports", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al b/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\nindex 00c238ae..d6f417de 100644\n--- a/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\n+++ b/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\n@@ -156,7 +156,7 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Net Change\" > 0) then\n+ if (\"Net Change (ACY)\" > 0) then\n Validate(\"Net Change (Debit) (ACY)\", \"Net Change (ACY)\")\n else\n Validate(\"Net Change (Credit) (ACY)\", -\"Net Change (ACY)\");\n@@ -176,7 +176,7 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Balance\" > 0) then\n+ if (\"Balance (ACY)\" > 0) then\n Validate(\"Balance (Debit) (ACY)\", \"Balance (ACY)\")\n else\n Validate(\"Balance (Credit) (ACY)\", -\"Balance (ACY)\");\n@@ -196,7 +196,7 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Net\" > 0) then\n+ if (\"Last Period Net (ACY)\" > 0) then\n Validate(\"Last Period Net (Debit) (ACY)\", \"Last Period Net (ACY)\")\n else\n Validate(\"Last Period Net (Credit) (ACY)\", -\"Last Period Net (ACY)\");\n@@ -216,7 +216,7 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Bal.\" > 0) then\n+ if (\"Last Period Bal. (ACY)\" > 0) then\n Validate(\"Last Period Bal. (Debit) (ACY)\", \"Last Period Bal. (ACY)\")\n else\n Validate(\"Last Period Bal. (Cred.) (ACY)\", -\"Last Period Bal. (ACY)\");\ndiff --git a/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al b/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al\nindex 7cf0915e..748561b6 100644\n--- a/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al\n+++ b/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al\n@@ -120,6 +120,7 @@ codeunit 4410 \"Trial Balance\"\n local procedure InsertTrialBalanceDataForGLAccountWithFilters(var GLAccount: Record \"G/L Account\"; Dimension1ValueCode: Code[20]; Dimension2ValueCode: Code[20]; BusinessUnitCode: Code[20]; var TrialBalanceData: Record \"EXR Trial Balance Buffer\"; var Dimension1Values: Record \"Dimension Value\" temporary; var Dimension2Values: Record \"Dimension Value\" temporary)\n begin\n GlAccount.CalcFields(\"Net Change\", \"Balance at Date\", \"Additional-Currency Net Change\", \"Add.-Currency Balance at Date\", \"Budgeted Amount\", \"Budget at Date\");\n+ Clear(TrialBalanceData);\n TrialBalanceData.\"G/L Account No.\" := GlAccount.\"No.\";\n TrialBalanceData.\"Dimension 1 Code\" := Dimension1ValueCode;\n TrialBalanceData.\"Dimension 2 Code\" := Dimension2ValueCode;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139544'\nCodeunit 139544 Trial Balance Excel Reports\n Testfunction TrialBalanceBufferNetChangeSplitsIntoDebitAndCreditWhenCalledSeveralTimes Failure (0.33 seconds)\n Error:\n Assert.AreEqual failed. Expected:<998> (Decimal). Actual:<1,108> (Decimal). Split in line in credit and debit should be the same as the inserted value..\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"Trial Balance Excel Reports\"(CodeUnit 139544).TrialBalanceBufferNetChangeSplitsIntoDebitAndCreditWhenCalledSeveralTimes line 43 - Dynamics BC Excel Reports Tests by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 226.0, "llm_duration": null, "turn_count": 8, "prompt_tokens": 318200, "completion_tokens": 15200, "tool_usage": {"glob": 3, "view": 7, "report_intent": 1, "edit": 5}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-195193__cf-2", "project": "ExcelReports", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al b/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\nindex 00c238ae..d6f417de 100644\n--- a/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\n+++ b/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\n@@ -156,7 +156,7 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Net Change\" > 0) then\n+ if (\"Net Change (ACY)\" > 0) then\n Validate(\"Net Change (Debit) (ACY)\", \"Net Change (ACY)\")\n else\n Validate(\"Net Change (Credit) (ACY)\", -\"Net Change (ACY)\");\n@@ -176,7 +176,7 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Balance\" > 0) then\n+ if (\"Balance (ACY)\" > 0) then\n Validate(\"Balance (Debit) (ACY)\", \"Balance (ACY)\")\n else\n Validate(\"Balance (Credit) (ACY)\", -\"Balance (ACY)\");\n@@ -196,7 +196,7 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Net\" > 0) then\n+ if (\"Last Period Net (ACY)\" > 0) then\n Validate(\"Last Period Net (Debit) (ACY)\", \"Last Period Net (ACY)\")\n else\n Validate(\"Last Period Net (Credit) (ACY)\", -\"Last Period Net (ACY)\");\n@@ -216,7 +216,7 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Bal.\" > 0) then\n+ if (\"Last Period Bal. (ACY)\" > 0) then\n Validate(\"Last Period Bal. (Debit) (ACY)\", \"Last Period Bal. (ACY)\")\n else\n Validate(\"Last Period Bal. (Cred.) (ACY)\", -\"Last Period Bal. (ACY)\");\ndiff --git a/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al b/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al\nindex 7cf0915e..88035c63 100644\n--- a/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al\n+++ b/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al\n@@ -120,6 +120,7 @@ codeunit 4410 \"Trial Balance\"\n local procedure InsertTrialBalanceDataForGLAccountWithFilters(var GLAccount: Record \"G/L Account\"; Dimension1ValueCode: Code[20]; Dimension2ValueCode: Code[20]; BusinessUnitCode: Code[20]; var TrialBalanceData: Record \"EXR Trial Balance Buffer\"; var Dimension1Values: Record \"Dimension Value\" temporary; var Dimension2Values: Record \"Dimension Value\" temporary)\n begin\n GlAccount.CalcFields(\"Net Change\", \"Balance at Date\", \"Additional-Currency Net Change\", \"Add.-Currency Balance at Date\", \"Budgeted Amount\", \"Budget at Date\");\n+ TrialBalanceData.Init();\n TrialBalanceData.\"G/L Account No.\" := GlAccount.\"No.\";\n TrialBalanceData.\"Dimension 1 Code\" := Dimension1ValueCode;\n TrialBalanceData.\"Dimension 2 Code\" := Dimension2ValueCode;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139544'\nCodeunit 139544 Trial Balance Excel Reports\n Testfunction TrialBalanceBufferNetChangeSplitsIntoDebitAndCreditWhenCalledSeveralTimes Failure (0.473 seconds)\n Error:\n Assert.AreEqual failed. Expected:<110> (Decimal). Actual:<947> (Decimal). Split in line in credit and debit should be the same as the inserted value..\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"Trial Balance Excel Reports\"(CodeUnit 139544).TrialBalanceBufferNetChangeSplitsIntoDebitAndCreditWhenCalledSeveralTimes line 38 - Dynamics BC Excel Reports Tests by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 219.0, "llm_duration": null, "turn_count": 7, "prompt_tokens": 265700, "completion_tokens": 13100, "tool_usage": {"powershell": 1, "glob": 2, "view": 7, "report_intent": 1, "edit": 5}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-195193__cf-3", "project": "ExcelReports", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al b/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\nindex 00c238ae..d6f417de 100644\n--- a/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\n+++ b/App/Apps/W1/ExcelReports/app/src/Financials/EXRTrialBalanceBuffer.Table.al\n@@ -156,7 +156,7 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Net Change\" > 0) then\n+ if (\"Net Change (ACY)\" > 0) then\n Validate(\"Net Change (Debit) (ACY)\", \"Net Change (ACY)\")\n else\n Validate(\"Net Change (Credit) (ACY)\", -\"Net Change (ACY)\");\n@@ -176,7 +176,7 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Balance\" > 0) then\n+ if (\"Balance (ACY)\" > 0) then\n Validate(\"Balance (Debit) (ACY)\", \"Balance (ACY)\")\n else\n Validate(\"Balance (Credit) (ACY)\", -\"Balance (ACY)\");\n@@ -196,7 +196,7 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Net\" > 0) then\n+ if (\"Last Period Net (ACY)\" > 0) then\n Validate(\"Last Period Net (Debit) (ACY)\", \"Last Period Net (ACY)\")\n else\n Validate(\"Last Period Net (Credit) (ACY)\", -\"Last Period Net (ACY)\");\n@@ -216,7 +216,7 @@ table 4402 \"EXR Trial Balance Buffer\"\n \n trigger OnValidate()\n begin\n- if (\"Last Period Bal.\" > 0) then\n+ if (\"Last Period Bal. (ACY)\" > 0) then\n Validate(\"Last Period Bal. (Debit) (ACY)\", \"Last Period Bal. (ACY)\")\n else\n Validate(\"Last Period Bal. (Cred.) (ACY)\", -\"Last Period Bal. (ACY)\");\ndiff --git a/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al b/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al\nindex 7cf0915e..38138c4c 100644\n--- a/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al\n+++ b/App/Apps/W1/ExcelReports/app/src/Financials/TrialBalance.Codeunit.al\n@@ -120,6 +120,7 @@ codeunit 4410 \"Trial Balance\"\n local procedure InsertTrialBalanceDataForGLAccountWithFilters(var GLAccount: Record \"G/L Account\"; Dimension1ValueCode: Code[20]; Dimension2ValueCode: Code[20]; BusinessUnitCode: Code[20]; var TrialBalanceData: Record \"EXR Trial Balance Buffer\"; var Dimension1Values: Record \"Dimension Value\" temporary; var Dimension2Values: Record \"Dimension Value\" temporary)\n begin\n GlAccount.CalcFields(\"Net Change\", \"Balance at Date\", \"Additional-Currency Net Change\", \"Add.-Currency Balance at Date\", \"Budgeted Amount\", \"Budget at Date\");\n+ TrialBalanceData.Init();\n TrialBalanceData.\"G/L Account No.\" := GlAccount.\"No.\";\n TrialBalanceData.\"Dimension 1 Code\" := Dimension1ValueCode;\n TrialBalanceData.\"Dimension 2 Code\" := Dimension2ValueCode;\n@@ -145,7 +146,7 @@ codeunit 4410 \"Trial Balance\"\n var\n DimensionValue: Record \"Dimension Value\";\n begin\n- Clear(InsertedDimensionValues);\n+ InsertedDimensionValues.Reset();\n if DimensionCode <> '' then\n InsertedDimensionValues.SetRange(\"Global Dimension No.\", GlobalDimensionNo);\n InsertedDimensionValues.SetRange(Code, DimensionCode);\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139544'\nCodeunit 139544 Trial Balance Excel Reports\n Testfunction TrialBalanceBufferNetChangeSplitsIntoDebitAndCreditWhenCalledSeveralTimes Failure (0.33 seconds)\n Error:\n Assert.AreEqual failed. Expected:<0> (Integer). Actual:<500> (Decimal). Net Change (Debit) should be zero for zero Net Change..\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"Trial Balance Excel Reports\"(CodeUnit 139544).TrialBalanceBufferNetChangeSplitsIntoDebitAndCreditWhenCalledSeveralTimes line 23 - Dynamics BC Excel Reports Tests by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 214.0, "llm_duration": null, "turn_count": 14, "prompt_tokens": 565500, "completion_tokens": 13000, "tool_usage": {"view": 8, "glob": 2, "report_intent": 1, "edit": 6}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-201169__cf-1", "project": "Shopify", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\nindex 38d77856..218ba0f8 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n@@ -23,9 +23,11 @@ codeunit 30174 \"Shpfy Create Product\"\n ProductPriceCalc: Codeunit \"Shpfy Product Price Calc.\";\n VariantApi: Codeunit \"Shpfy Variant API\";\n Events: Codeunit \"Shpfy Product Events\";\n+ SkippedRecord: Codeunit \"Shpfy Skipped Record\";\n Getlocations: Boolean;\n ProductId: BigInteger;\n ItemVariantIsBlockedLbl: Label 'Item variant is blocked or sales blocked.';\n+ ItemTitleIsEmptyLbl: Label 'Item description is empty.';\n \n trigger OnRun()\n var\n@@ -53,10 +55,16 @@ codeunit 30174 \"Shpfy Create Product\"\n TempShopifyTag: Record \"Shpfy Tag\" temporary;\n begin\n CreateTempProduct(Item, TempShopifyProduct, TempShopifyVariant, TempShopifyTag);\n+ if TempShopifyProduct.Title.Trim() = '' then begin\n+ SkippedRecord.LogSkippedRecord(Item.RecordId, ItemTitleIsEmptyLbl, Shop);\n+ exit;\n+ end;\n if not VariantApi.FindShopifyProductVariant(TempShopifyProduct, TempShopifyVariant) then\n ProductId := ProductApi.CreateProduct(TempShopifyProduct, TempShopifyVariant, TempShopifyTag)\n else\n ProductId := TempShopifyProduct.Id;\n+ if ProductId = 0 then\n+ exit;\n ProductExport.UpdateProductTranslations(ProductId, Item);\n end;\n \n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139581'\nCodeunit 139581 Shpfy Skipped Record Log Test\n Testfunction UnitTestLogItemEmptyDescription Failure (6.43 seconds)\n Error:\n The response from Shopify contains no JSON. \\Requested: {\"query\":\"{ locations(first: 20, includeLegacy: true) { pageInfo { hasNextPage endCursor } nodes { legacyResourceId isActive isPrimary name fulfillmentService { serviceName }}}}\"} \\Response: \n Call Stack:\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 21 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 4 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 6 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Sync Shop Locations\"(CodeUnit 30198).SyncLocations line 20 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Sync Shop Locations\"(CodeUnit 30198).OnRun(Trigger) line 4 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Create Product\"(CodeUnit 30174).OnRun(Trigger) line 5 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Add Item to Shopify\"(Report 30106).\"Item - OnAfterGetRecord\"(Trigger) line 12 - Shopify Connector by Microsoft version 26.0.0.0", "metrics": {"execution_time": 170.0, "llm_duration": null, "turn_count": 21, "prompt_tokens": 719700, "completion_tokens": 7800, "tool_usage": {"glob": 3, "view": 15, "powershell": 2, "grep": 3, "report_intent": 1, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-201169__cf-2", "project": "Shopify", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\nindex 38d77856..3c97e433 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n@@ -26,6 +26,7 @@ codeunit 30174 \"Shpfy Create Product\"\n Getlocations: Boolean;\n ProductId: BigInteger;\n ItemVariantIsBlockedLbl: Label 'Item variant is blocked or sales blocked.';\n+ ItemTitleIsEmptyLbl: Label 'Item title is empty.';\n \n trigger OnRun()\n var\n@@ -51,13 +52,19 @@ codeunit 30174 \"Shpfy Create Product\"\n TempShopifyProduct: Record \"Shpfy Product\" temporary;\n TempShopifyVariant: Record \"Shpfy Variant\" temporary;\n TempShopifyTag: Record \"Shpfy Tag\" temporary;\n+ SkippedRecord: Codeunit \"Shpfy Skipped Record\";\n begin\n CreateTempProduct(Item, TempShopifyProduct, TempShopifyVariant, TempShopifyTag);\n+ if TempShopifyProduct.Title = '' then begin\n+ SkippedRecord.LogSkippedRecord(Item.RecordId, ItemTitleIsEmptyLbl, Shop);\n+ exit;\n+ end;\n if not VariantApi.FindShopifyProductVariant(TempShopifyProduct, TempShopifyVariant) then\n ProductId := ProductApi.CreateProduct(TempShopifyProduct, TempShopifyVariant, TempShopifyTag)\n else\n ProductId := TempShopifyProduct.Id;\n- ProductExport.UpdateProductTranslations(ProductId, Item);\n+ if ProductId <> 0 then\n+ ProductExport.UpdateProductTranslations(ProductId, Item);\n end;\n \n internal procedure CreateTempProduct(Item: Record Item; var TempShopifyProduct: Record \"Shpfy Product\" temporary; var TempShopifyVariant: Record \"Shpfy Variant\" temporary; var TempShopifyTag: Record \"Shpfy Tag\" temporary)\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139581'\nCodeunit 139581 Shpfy Skipped Record Log Test\n Testfunction UnitTestLogItemEmptyDescription Failure (6.947 seconds)\n Error:\n The response from Shopify contains no JSON. \\Requested: {\"query\":\"{ locations(first: 20, includeLegacy: true) { pageInfo { hasNextPage endCursor } nodes { legacyResourceId isActive isPrimary name fulfillmentService { serviceName }}}}\"} \\Response: \n Call Stack:\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 21 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 4 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 6 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Sync Shop Locations\"(CodeUnit 30198).SyncLocations line 20 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Sync Shop Locations\"(CodeUnit 30198).OnRun(Trigger) line 4 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Create Product\"(CodeUnit 30174).OnRun(Trigger) line 5 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Add Item to Shopify\"(Report 30106).\"Item - OnAfterGetRecord\"(Trigger) line 12 - Shopify Connector by Microsoft version 26.0.0.0", "metrics": {"execution_time": 111.0, "llm_duration": null, "turn_count": 14, "prompt_tokens": 489100, "completion_tokens": 5300, "tool_usage": {"glob": 2, "view": 11, "grep": 4, "report_intent": 1, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-201169__cf-3", "project": "Shopify", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\nindex 38d77856..ddb0af2b 100644\n--- a/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n+++ b/App/Apps/W1/Shopify/app/src/Products/Codeunits/ShpfyCreateProduct.Codeunit.al\n@@ -26,6 +26,7 @@ codeunit 30174 \"Shpfy Create Product\"\n Getlocations: Boolean;\n ProductId: BigInteger;\n ItemVariantIsBlockedLbl: Label 'Item variant is blocked or sales blocked.';\n+ ItemHasNoDescriptionLbl: Label 'Item has no description.';\n \n trigger OnRun()\n var\n@@ -51,13 +52,19 @@ codeunit 30174 \"Shpfy Create Product\"\n TempShopifyProduct: Record \"Shpfy Product\" temporary;\n TempShopifyVariant: Record \"Shpfy Variant\" temporary;\n TempShopifyTag: Record \"Shpfy Tag\" temporary;\n+ SkippedRecord: Codeunit \"Shpfy Skipped Record\";\n begin\n CreateTempProduct(Item, TempShopifyProduct, TempShopifyVariant, TempShopifyTag);\n+ if TempShopifyProduct.Title = '' then begin\n+ SkippedRecord.LogSkippedRecord(Item.RecordId, ItemHasNoDescriptionLbl, Shop);\n+ exit;\n+ end;\n if not VariantApi.FindShopifyProductVariant(TempShopifyProduct, TempShopifyVariant) then\n ProductId := ProductApi.CreateProduct(TempShopifyProduct, TempShopifyVariant, TempShopifyTag)\n else\n ProductId := TempShopifyProduct.Id;\n- ProductExport.UpdateProductTranslations(ProductId, Item);\n+ if ProductId <> 0 then\n+ ProductExport.UpdateProductTranslations(ProductId, Item);\n end;\n \n internal procedure CreateTempProduct(Item: Record Item; var TempShopifyProduct: Record \"Shpfy Product\" temporary; var TempShopifyVariant: Record \"Shpfy Variant\" temporary; var TempShopifyTag: Record \"Shpfy Tag\" temporary)\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139581'\nCodeunit 139581 Shpfy Skipped Record Log Test\n Testfunction UnitTestLogItemEmptyDescription Failure (6.404 seconds)\n Error:\n The response from Shopify contains no JSON. \\Requested: {\"query\":\"{ locations(first: 20, includeLegacy: true) { pageInfo { hasNextPage endCursor } nodes { legacyResourceId isActive isPrimary name fulfillmentService { serviceName }}}}\"} \\Response: \n Call Stack:\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 21 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 4 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Communication Mgt.\"(CodeUnit 30103).ExecuteGraphQL line 6 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Sync Shop Locations\"(CodeUnit 30198).SyncLocations line 20 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Sync Shop Locations\"(CodeUnit 30198).OnRun(Trigger) line 4 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Create Product\"(CodeUnit 30174).OnRun(Trigger) line 5 - Shopify Connector by Microsoft version 26.0.0.0\n \"Shpfy Add Item to Shopify\"(Report 30106).\"Item - OnAfterGetRecord\"(Trigger) line 12 - Shopify Connector by Microsoft version 26.0.0.0", "metrics": {"execution_time": 184.0, "llm_duration": null, "turn_count": 26, "prompt_tokens": 942700, "completion_tokens": 7900, "tool_usage": {"glob": 6, "view": 15, "grep": 10, "report_intent": 1, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-203923__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\nindex 6bb15d7d..9c9227b8 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n@@ -93,7 +93,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetNonDeductibleVATPct(NonDeductibleVATPct, VATPostingSetup, GeneralPostingType, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (VATPostingSetup.\"VAT Calculation Type\" in [VATPostingSetup.\"VAT Calculation Type\"::\"Normal VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (VATPostingSetup.\"VAT Calculation Type\" in [VATPostingSetup.\"VAT Calculation Type\"::\"Normal VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Reverse Charge VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if (VATPostingSetup.\"Allow Non-Deductible VAT\" = VATPostingSetup.\"Allow Non-Deductible VAT\"::\"Do not allow\") or (GeneralPostingType <> GeneralPostingType::Purchase) then\n exit(0);\n@@ -786,7 +786,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeCalcNonDedAmountsInGenJnlLine(GenJournalLine, Currency, IsHandled);\n if IsHandled then\n exit;\n- if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit;\n if not VATPostingSetup.Get(GenJournalLine.\"VAT Bus. Posting Group\", GenJournalLine.\"VAT Prod. Posting Group\") then\n exit;\n@@ -826,7 +826,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeCalcBalNonDedAmountsInGenJnlLine(GenJournalLine, Currency, IsHandled);\n if IsHandled then\n exit;\n- if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Full VAT\"]) then\n exit;\n if not VATPostingSetup.Get(GenJournalLine.\"Bal. VAT Bus. Posting Group\", GenJournalLine.\"Bal. VAT Prod. Posting Group\") then\n exit;\n@@ -1210,7 +1210,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetNonDedVATPctForGenJnlLine(NonDeductibleVATPct, GenJournalLine, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if not VATPostingSetup.Get(GenJournalLine.\"VAT Bus. Posting Group\", GenJournalLine.\"VAT Prod. Posting Group\") then\n exit(0);\n@@ -1227,7 +1227,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetBalNonDedVATPctForGenJnlLine(NonDeductibleVATPct, GenJournalLine, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if not VATPostingSetup.Get(GenJournalLine.\"Bal. VAT Bus. Posting Group\", GenJournalLine.\"Bal. VAT Prod. Posting Group\") then\n exit(0);\n", "error_message": null, "metrics": {"execution_time": 190.0, "llm_duration": null, "turn_count": 18, "prompt_tokens": 695100, "completion_tokens": 10200, "tool_usage": {"grep": 9, "view": 10, "powershell": 1, "report_intent": 1, "edit": 5}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-203923__cf-2", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\nindex 6bb15d7d..fed07e61 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n@@ -786,7 +786,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeCalcNonDedAmountsInGenJnlLine(GenJournalLine, Currency, IsHandled);\n if IsHandled then\n exit;\n- if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit;\n if not VATPostingSetup.Get(GenJournalLine.\"VAT Bus. Posting Group\", GenJournalLine.\"VAT Prod. Posting Group\") then\n exit;\n@@ -826,7 +826,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeCalcBalNonDedAmountsInGenJnlLine(GenJournalLine, Currency, IsHandled);\n if IsHandled then\n exit;\n- if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Full VAT\"]) then\n exit;\n if not VATPostingSetup.Get(GenJournalLine.\"Bal. VAT Bus. Posting Group\", GenJournalLine.\"Bal. VAT Prod. Posting Group\") then\n exit;\n@@ -1210,7 +1210,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetNonDedVATPctForGenJnlLine(NonDeductibleVATPct, GenJournalLine, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if not VATPostingSetup.Get(GenJournalLine.\"VAT Bus. Posting Group\", GenJournalLine.\"VAT Prod. Posting Group\") then\n exit(0);\n@@ -1227,7 +1227,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetBalNonDedVATPctForGenJnlLine(NonDeductibleVATPct, GenJournalLine, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if not VATPostingSetup.Get(GenJournalLine.\"Bal. VAT Bus. Posting Group\", GenJournalLine.\"Bal. VAT Prod. Posting Group\") then\n exit(0);\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134288'\nCodeunit 134288 Non-Deductible VAT Journal\n Testfunction NonDeductibleVATShouldShowAsNonDeductibleOnDoingFullVAT Failure (4.166 seconds)\n Error:\n Assert.AreEqual failed. Expected:<12.44> (Decimal). Actual:<0> (Decimal). Non-Deductable VAT Amount must be 12.44 in VAT Entries.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft\n \"Non-Deductible VAT Journal\"(CodeUnit 134288).NonDeductibleVATShouldShowAsNonDeductibleOnDoingFullVAT line 34 - Tests-VAT by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 160.0, "llm_duration": null, "turn_count": 18, "prompt_tokens": 550500, "completion_tokens": 9200, "tool_usage": {"grep": 8, "glob": 2, "view": 11, "report_intent": 1, "edit": 4}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-203923__cf-3", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\nindex 6bb15d7d..9c9227b8 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n@@ -93,7 +93,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetNonDeductibleVATPct(NonDeductibleVATPct, VATPostingSetup, GeneralPostingType, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (VATPostingSetup.\"VAT Calculation Type\" in [VATPostingSetup.\"VAT Calculation Type\"::\"Normal VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (VATPostingSetup.\"VAT Calculation Type\" in [VATPostingSetup.\"VAT Calculation Type\"::\"Normal VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Reverse Charge VAT\", VATPostingSetup.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if (VATPostingSetup.\"Allow Non-Deductible VAT\" = VATPostingSetup.\"Allow Non-Deductible VAT\"::\"Do not allow\") or (GeneralPostingType <> GeneralPostingType::Purchase) then\n exit(0);\n@@ -786,7 +786,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeCalcNonDedAmountsInGenJnlLine(GenJournalLine, Currency, IsHandled);\n if IsHandled then\n exit;\n- if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit;\n if not VATPostingSetup.Get(GenJournalLine.\"VAT Bus. Posting Group\", GenJournalLine.\"VAT Prod. Posting Group\") then\n exit;\n@@ -826,7 +826,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeCalcBalNonDedAmountsInGenJnlLine(GenJournalLine, Currency, IsHandled);\n if IsHandled then\n exit;\n- if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Full VAT\"]) then\n exit;\n if not VATPostingSetup.Get(GenJournalLine.\"Bal. VAT Bus. Posting Group\", GenJournalLine.\"Bal. VAT Prod. Posting Group\") then\n exit;\n@@ -1210,7 +1210,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetNonDedVATPctForGenJnlLine(NonDeductibleVATPct, GenJournalLine, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"VAT Calculation Type\" in [GenJournalLine.\"VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if not VATPostingSetup.Get(GenJournalLine.\"VAT Bus. Posting Group\", GenJournalLine.\"VAT Prod. Posting Group\") then\n exit(0);\n@@ -1227,7 +1227,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n NonDeductibleVAT.OnBeforeGetBalNonDedVATPctForGenJnlLine(NonDeductibleVATPct, GenJournalLine, IsHandled);\n if IsHandled then\n exit(NonDeductibleVATPct);\n- if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\"]) then\n+ if not (GenJournalLine.\"Bal. VAT Calculation Type\" in [GenJournalLine.\"Bal. VAT Calculation Type\"::\"Normal VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Reverse Charge VAT\", GenJournalLine.\"Bal. VAT Calculation Type\"::\"Full VAT\"]) then\n exit(0);\n if not VATPostingSetup.Get(GenJournalLine.\"Bal. VAT Bus. Posting Group\", GenJournalLine.\"Bal. VAT Prod. Posting Group\") then\n exit(0);\n", "error_message": null, "metrics": {"execution_time": 229.0, "llm_duration": null, "turn_count": 27, "prompt_tokens": 1100000, "completion_tokens": 11100, "tool_usage": {"powershell": 4, "grep": 13, "view": 12, "report_intent": 1, "edit": 5}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-204450__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\nindex 6bb15d7d..64ef04e1 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Calculation/NonDedVATImpl.Codeunit.al\n@@ -682,7 +682,7 @@ codeunit 6201 \"Non-Ded. VAT Impl.\"\n \n if PurchaseLine.\"Non-Deductible VAT %\" = 100 then begin\n PurchaseLine.\"Non-Deductible VAT Base\" := PurchaseLine.\"VAT Base Amount\";\n- PurchaseLine.\"Non-Deductible VAT Amount\" := PurchaseLine.\"Amount Including VAT\" - PurchaseLine.\"VAT Base Amount\" - PurchaseLine.\"VAT Difference\";\n+ PurchaseLine.\"Non-Deductible VAT Amount\" := PurchaseLine.\"Amount Including VAT\" - PurchaseLine.\"VAT Base Amount\";\n exit;\n end;\n PurchaseLine.\"Non-Deductible VAT Base\" :=\n", "error_message": null, "metrics": {"execution_time": 1461.0, "llm_duration": null, "turn_count": 109, "prompt_tokens": 9400000, "completion_tokens": 74700, "tool_usage": {"view": 52, "glob": 13, "grep": 54, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-205825__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\nindex da15d9ef..cbf994d6 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\n@@ -132,8 +132,13 @@ codeunit 205 \"Alt. Cust. VAT Reg. Doc. Impl.\" implements \"Alt. Cust. VAT Reg. Do\n if IsAltVATRegUsed(SalesHeader) then begin\n if SalesHeader.\"Bill-to Customer No.\" = SalesHeader.\"Sell-to Customer No.\" then\n exit;\n- CopyFromCustomer(SalesHeader, xSalesHeader, BillToCustomer);\n- exit;\n+ if SalesHeader.\"Ship-to Country/Region Code\" <> '' then begin\n+ CopyFromCustomer(SalesHeader, xSalesHeader, BillToCustomer);\n+ exit;\n+ end;\n+ SalesHeader.Validate(\"Alt. VAT Registration No.\", false);\n+ SalesHeader.Validate(\"Alt. Gen. Bus Posting Group\", false);\n+ SalesHeader.Validate(\"Alt. VAT Bus Posting Group\", false);\n end;\n if (SalesHeader.\"VAT Bus. Posting Group\" <> '') and (SalesHeader.\"VAT Bus. Posting Group\" <> BillToCustomer.\"VAT Bus. Posting Group\") then\n SalesHeader.Validate(\"VAT Bus. Posting Group\", BillToCustomer.\"VAT Bus. Posting Group\")\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134237'\nCodeunit 134237 Alt. Cust. VAT. Doc. Tests\n Testfunction ShipToCodeConnectionAltCustVATSetupOfBillToCustomer Failure (5 seconds)\n Error:\n VAT Country/Region Code must be equal to 'GU00000009' in Sales Header: Document Type=Order, No.=101005. Current value is 'GU00000006'.\n Call Stack:\n \"Alt. Cust. VAT. Doc. Tests\"(CodeUnit 134237).VerifyVATRegDataInSalesHeader line 2 - Tests-VAT by Microsoft\n \"Alt. Cust. VAT. Doc. Tests\"(CodeUnit 134237).ShipToCodeConnectionAltCustVATSetupOfBillToCustomer line 27 - Tests-VAT by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 2821.0, "llm_duration": null, "turn_count": 96, "prompt_tokens": 7200000, "completion_tokens": 176100, "tool_usage": {"view": 55, "grep": 44, "powershell": 2, "report_intent": 2, "glob": 3, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-205825__cf-2", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al b/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\nindex da15d9ef..5b47a363 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Registration/AltCustVATRegDocImpl.Codeunit.al\n@@ -94,6 +94,10 @@ codeunit 205 \"Alt. Cust. VAT Reg. Doc. Impl.\" implements \"Alt. Cust. VAT Reg. Do\n AltCustVATReg: Record \"Alt. Cust. VAT Reg.\";\n VATCustomer: Record Customer;\n begin\n+ if SalesHeader.\"Ship-to Country/Region Code\" = '' then begin\n+ RevertAltVATRegOnEmptyShipToCountry(SalesHeader);\n+ exit;\n+ end;\n GetCustVATCalc(VATCustomer, SalesHeader);\n if AltCustVATRegFacade.GetAlternativeCustVATReg(AltCustVATReg, VATCustomer.\"No.\", SalesHeader.\"Ship-to Country/Region Code\") then\n SalesHeader.Validate(\"VAT Country/Region Code\", AltCustVATReg.\"VAT Country/Region Code\")\n@@ -101,6 +105,29 @@ codeunit 205 \"Alt. Cust. VAT Reg. Doc. Impl.\" implements \"Alt. Cust. VAT Reg. Do\n CopyFromCustomer(SalesHeader, xSalesHeader);\n end;\n \n+ local procedure RevertAltVATRegOnEmptyShipToCountry(var SalesHeader: Record \"Sales Header\")\n+ var\n+ Customer: Record Customer;\n+ begin\n+ if not IsAltVATRegUsed(SalesHeader) then\n+ exit;\n+ if not GetCustVATCalc(Customer, SalesHeader) then\n+ exit;\n+ SalesHeader.\"VAT Country/Region Code\" := Customer.\"Country/Region Code\";\n+ if SalesHeader.\"Alt. VAT Registration No.\" then begin\n+ SalesHeader.Validate(\"Alt. VAT Registration No.\", false);\n+ SalesHeader.Validate(\"VAT Registration No.\", Customer.\"VAT Registration No.\");\n+ end;\n+ if SalesHeader.\"Alt. Gen. Bus Posting Group\" then begin\n+ SalesHeader.Validate(\"Alt. Gen. Bus Posting Group\", false);\n+ SalesHeader.Validate(\"Gen. Bus. Posting Group\", Customer.\"Gen. Bus. Posting Group\");\n+ end;\n+ if SalesHeader.\"Alt. VAT Bus Posting Group\" then begin\n+ SalesHeader.Validate(\"Alt. VAT Bus Posting Group\", false);\n+ SalesHeader.Validate(\"VAT Bus. Posting Group\", Customer.\"VAT Bus. Posting Group\");\n+ end;\n+ end;\n+\n procedure UpdateSetupOnVATCountryChangeInSalesHeader(var SalesHeader: Record \"Sales Header\"; xSalesHeader: Record \"Sales Header\")\n var\n Customer: Record Customer;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134237'\nCodeunit 134237 Alt. Cust. VAT. Doc. Tests\n Testfunction ShipToCodeConnectionAltCustVATSetupOfBillToCustomer Failure (4.824 seconds)\n Error:\n VAT Country/Region Code must be equal to 'GU00000009' in Sales Header: Document Type=Order, No.=101005. Current value is 'GU00000006'.\n Call Stack:\n \"Alt. Cust. VAT. Doc. Tests\"(CodeUnit 134237).VerifyVATRegDataInSalesHeader line 2 - Tests-VAT by Microsoft\n \"Alt. Cust. VAT. Doc. Tests\"(CodeUnit 134237).ShipToCodeConnectionAltCustVATSetupOfBillToCustomer line 27 - Tests-VAT by Microsoft\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft", "metrics": {"execution_time": 1628.0, "llm_duration": null, "turn_count": 37, "prompt_tokens": 2300000, "completion_tokens": 100100, "tool_usage": {"powershell": 1, "grep": 16, "view": 31, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-206527__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al b/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\nindex e3280001..f7a61299 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\n@@ -182,28 +182,11 @@ table 99000829 \"Planning Component\"\n Editable = false;\n \n trigger OnValidate()\n- var\n- ItemUnitOfMeasure: Record \"Item Unit of Measure\";\n- UnroundedExpectedQuantity: Decimal;\n- ItemPrecRoundedExpectedQuantity: Decimal;\n- BaseUOMPrecRoundedExpectedQuantity: Decimal;\n begin\n- UnroundedExpectedQuantity := \"Expected Quantity\";\n-\n if Item.Get(\"Item No.\") and (\"Ref. Order Type\" <> \"Ref. Order Type\"::Assembly) then\n if Item.\"Rounding Precision\" > 0 then\n \"Expected Quantity\" := UOMMgt.RoundToItemRndPrecision(\"Expected Quantity\", Item.\"Rounding Precision\");\n \n- ItemPrecRoundedExpectedQuantity := \"Expected Quantity\";\n- BaseUOMPrecRoundedExpectedQuantity := UOMMgt.RoundQty(\"Expected Quantity\", \"Qty. Rounding Precision\");\n-\n- if (\"Qty. Rounding Precision\" > 0) and (BaseUOMPrecRoundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity) then\n- if UnroundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity then\n- Error(WrongPrecisionItemAndUOMExpectedQtyErr, Item.FieldCaption(\"Rounding Precision\"), Item.TableCaption(), ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"))\n- else\n- Error(WrongPrecOnUOMExpectedQtyErr, ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"));\n-\n- \"Expected Quantity\" := BaseUOMPrecRoundedExpectedQuantity;\n \"Expected Quantity (Base)\" := CalcBaseQty(\"Expected Quantity\", FieldCaption(\"Expected Quantity\"), FieldCaption(\"Expected Quantity (Base)\"));\n \n \"Net Quantity (Base)\" := \"Expected Quantity (Base)\" - \"Original Expected Qty. (Base)\";\n@@ -654,8 +637,6 @@ table 99000829 \"Planning Component\"\n CannotRenameErr: Label 'You cannot rename a %1.', Comment = '%1 - Planning Component';\n CannotChangeErr: Label 'You cannot change %1 when %2 is %3.', Comment = '%1 - FieldCaption(\"Unit Cost\"), %2 - Item.FieldCaption(\"Costing Method\"), %3 - Item.\"Costing Method\"';\n LocationCodeMustBeBlankErr: Label 'The Location Code field must be blank for items of type Non-Inventory.';\n- WrongPrecisionItemAndUOMExpectedQtyErr: Label 'The value in the %1 field on the %2 page, and %3 field on the %4 page, are causing the rounding precision for the %5 field to be incorrect.', Comment = '%1 = field caption, %2 = table caption, %3 field caption, %4 = table caption, %5 = field caption';\n- WrongPrecOnUOMExpectedQtyErr: Label 'The value in the %1 field on the %2 page is causing the rounding precision for the %3 field to be incorrect.', Comment = '%1 = field caption, %2 = table caption, %3 field caption';\n \n protected var\n ReqLine: Record \"Requisition Line\";\ndiff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\nindex 36930a9e..058f96b4 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n@@ -263,7 +263,6 @@ codeunit 99000773 \"Calculate Prod. Order\"\n Item2: Record Item;\n ComponentSKU: Record \"Stockkeeping Unit\";\n IsHandled: Boolean;\n- QtyRoundPrecision: Decimal;\n begin\n ProdOrderComp.Reset();\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\", \"Item No.\");\n@@ -295,12 +294,7 @@ codeunit 99000773 \"Calculate Prod. Order\"\n ProdOrderComp.\"Bin Code\" := GetDefaultBin();\n ProdOrderComp.Description := ProdBOMLine[Level].Description;\n ProdOrderComp.Validate(\"Unit of Measure Code\", ProdBOMLine[Level].\"Unit of Measure Code\");\n- if (ProdOrderComp.\"Item No.\" <> '') and Item2.Get(ProdOrderComp.\"Item No.\") then\n- QtyRoundPrecision := UOMMgt.GetQtyRoundingPrecision(Item2, ProdBOMLine[Level].\"Unit of Measure Code\");\n- if QtyRoundPrecision <> 0 then\n- ProdOrderComp.\"Quantity per\" := Round(ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM, QtyRoundPrecision)\n- else\n- ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n+ ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n ProdOrderComp.Length := ProdBOMLine[Level].Length;\n ProdOrderComp.Width := ProdBOMLine[Level].Width;\n ProdOrderComp.Weight := ProdBOMLine[Level].Weight;\ndiff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al b/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\nindex c532e014..a4901fd3 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\n@@ -249,10 +249,6 @@ table 5407 \"Prod. Order Component\"\n \n trigger OnValidate()\n var\n- ItemUnitOfMeasure: Record \"Item Unit of Measure\";\n- UnroundedExpectedQuantity: Decimal;\n- ItemPrecRoundedExpectedQuantity: Decimal;\n- BaseUOMPrecRoundedExpectedQuantity: Decimal;\n IsHandled: Boolean;\n begin\n IsHandled := false;\n@@ -260,26 +256,14 @@ table 5407 \"Prod. Order Component\"\n if IsHandled then\n exit;\n \n- UnroundedExpectedQuantity := \"Expected Quantity\";\n if Item.Get(\"Item No.\") then\n if Item.\"Rounding Precision\" > 0 then\n RoundExpectedQuantity();\n \n- ItemPrecRoundedExpectedQuantity := \"Expected Quantity\";\n-\n- BaseUOMPrecRoundedExpectedQuantity := UOMMgt.RoundQty(\"Expected Quantity\", \"Qty. Rounding Precision\");\n-\n- if (\"Qty. Rounding Precision\" > 0) and (BaseUOMPrecRoundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity) then\n- if UnroundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity then\n- Error(WrongPrecisionItemAndUOMExpectedQtyErr, Item.FieldCaption(\"Rounding Precision\"), Item.TableCaption(), ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"))\n- else\n- Error(WrongPrecOnUOMExpectedQtyErr, ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"));\n-\n- \"Expected Quantity\" := BaseUOMPrecRoundedExpectedQuantity;\n \"Expected Qty. (Base)\" := CalcBaseQty(\"Expected Quantity\", FieldCaption(\"Expected Quantity\"), FieldCaption(\"Expected Qty. (Base)\"));\n \n // Recalculate 'Expected Quantity' based on the base value to make sure values are consistent\n- \"Expected Quantity\" := UOMMgt.RoundQty(\"Expected Qty. (Base)\" / \"Qty. per Unit of Measure\", \"Qty. Rounding Precision\");\n+ \"Expected Quantity\" := UOMMgt.RoundQty(\"Expected Qty. (Base)\" / \"Qty. per Unit of Measure\");\n \n if (Status in [Status::Released, Status::Finished]) and\n (xRec.\"Item No.\" <> '') and\n@@ -289,7 +273,7 @@ table 5407 \"Prod. Order Component\"\n \n OnValidateExpectedQuantityOnAfterCalcActConsumptionQty(Rec, xRec);\n \"Remaining Quantity\" := \"Expected Quantity\" - \"Act. Consumption (Qty)\" / \"Qty. per Unit of Measure\";\n- \"Remaining Quantity\" := UOMMgt.RoundQty(\"Remaining Quantity\", \"Qty. Rounding Precision\");\n+ \"Remaining Quantity\" := UOMMgt.RoundQty(\"Remaining Quantity\");\n \n if (\"Remaining Quantity\" * \"Expected Quantity\") <= 0 then\n \"Remaining Quantity\" := 0;\n@@ -562,7 +546,6 @@ table 5407 \"Prod. Order Component\"\n exit;\n \n CalculateQuantity(Quantity);\n- Quantity := UOMMgt.RoundAndValidateQty(Quantity, \"Qty. Rounding Precision\", FieldCaption(Quantity));\n \n OnValidateCalculationFormulaOnAfterSetQuantity(Rec);\n \"Quantity (Base)\" := CalcBaseQty(Quantity, FieldCaption(Quantity), FieldCaption(\"Quantity (Base)\"));\n@@ -1028,8 +1011,6 @@ table 5407 \"Prod. Order Component\"\n Text99000003: Label 'You cannot change %1 when %2 is %3.';\n #pragma warning restore AA0470\n #pragma warning restore AA0074\n- WrongPrecisionItemAndUOMExpectedQtyErr: Label 'The value in the %1 field on the %2 page, and %3 field on the %4 page, are causing the rounding precision for the %5 field to be incorrect.', Comment = '%1 = field caption, %2 = table caption, %3 field caption, %4 = table caption, %5 = field caption';\n- WrongPrecOnUOMExpectedQtyErr: Label 'The value in the %1 field on the %2 page is causing the rounding precision for the %3 field to be incorrect.', Comment = '%1 = field caption, %2 = table caption, %3 field caption';\n Item: Record Item;\n ReservEntry: Record \"Reservation Entry\";\n GLSetup: Record \"General Ledger Setup\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137088'\nCodeunit 137088 SCM Order Planning - III\n Testfunction ReleasedProdOrderQuantityPerandExpectedQtyRoundingPrecisionChecking Failure (7.396 seconds)\n Error:\n Qty. Rounding Precision on Item-GL00000000 causes the Expected Quantity and Expected Qty. (Base) to be out of balance. Rounding of the field Expected Qty. (Base) results to 0.\n Call Stack:\n \"Unit of Measure Management\"(CodeUnit 5402).CalcBaseQty line 9 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).CalcBaseQty line 9 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).\"Expected Quantity - OnValidate\"(Trigger) line 13 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).UpdateExpectedQuantity line 14 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).\"Routing Link Code - OnValidate\"(Trigger) line 5 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).TransferBOMProcessItem line 45 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).TransferBOM line 70 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).Calculate line 105 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order Lines\"(CodeUnit 99000787).ProcessProdOrderLines line 13 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order Lines\"(CodeUnit 99000787).Copy line 23 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order from Sale\"(CodeUnit 99000792).CreateProductionOrder line 54 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateOrder line 11 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateOrders line 35 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateProdOrder line 24 - Base Application by Microsoft version 26.0.0.0", "metrics": {"execution_time": 587.0, "llm_duration": null, "turn_count": 31, "prompt_tokens": 2100000, "completion_tokens": 38000, "tool_usage": {"powershell": 1, "grep": 16, "view": 24, "report_intent": 1, "edit": 8}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-206977__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\nindex 0877c357..dbb3e2af 100644\n--- a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\n+++ b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\n@@ -161,7 +161,14 @@ page 903 \"Assembly Lines\"\n AssemblyHeader: Record \"Assembly Header\";\n begin\n AssemblyHeader.Get(Rec.\"Document Type\", Rec.\"Document No.\");\n- PAGE.Run(PAGE::\"Assembly Order\", AssemblyHeader);\n+ case Rec.\"Document Type\" of\n+ Rec.\"Document Type\"::Quote:\n+ PAGE.Run(PAGE::\"Assembly Quote\", AssemblyHeader);\n+ Rec.\"Document Type\"::Order:\n+ PAGE.Run(PAGE::\"Assembly Order\", AssemblyHeader);\n+ Rec.\"Document Type\"::\"Blanket Order\":\n+ PAGE.Run(PAGE::\"Blanket Assembly Order\", AssemblyHeader);\n+ end;\n end;\n }\n action(\"Reservation Entries\")\n", "error_message": null, "metrics": {"execution_time": 104.0, "llm_duration": null, "turn_count": 11, "prompt_tokens": 246300, "completion_tokens": 3400, "tool_usage": {"grep": 9, "glob": 2, "view": 6, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-206977__cf-2", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\nindex 0877c357..b088a094 100644\n--- a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\n+++ b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\n@@ -161,7 +161,14 @@ page 903 \"Assembly Lines\"\n AssemblyHeader: Record \"Assembly Header\";\n begin\n AssemblyHeader.Get(Rec.\"Document Type\", Rec.\"Document No.\");\n- PAGE.Run(PAGE::\"Assembly Order\", AssemblyHeader);\n+ case Rec.\"Document Type\" of\n+ Rec.\"Document Type\"::Quote:\n+ PAGE.Run(PAGE::\"Assembly Quote\", AssemblyHeader);\n+ Rec.\"Document Type\"::\"Blanket Order\":\n+ PAGE.Run(PAGE::\"Blanket Assembly Order\", AssemblyHeader);\n+ else\n+ PAGE.Run(PAGE::\"Assembly Order\", AssemblyHeader);\n+ end;\n end;\n }\n action(\"Reservation Entries\")\n", "error_message": null, "metrics": {"execution_time": 80.0, "llm_duration": null, "turn_count": 9, "prompt_tokens": 211700, "completion_tokens": 2500, "tool_usage": {"grep": 6, "glob": 3, "view": 3, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-206977__cf-3", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\nindex 0877c357..880fc6e9 100644\n--- a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\n+++ b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLines.Page.al\n@@ -161,7 +161,10 @@ page 903 \"Assembly Lines\"\n AssemblyHeader: Record \"Assembly Header\";\n begin\n AssemblyHeader.Get(Rec.\"Document Type\", Rec.\"Document No.\");\n- PAGE.Run(PAGE::\"Assembly Order\", AssemblyHeader);\n+ if Rec.\"Document Type\" = Rec.\"Document Type\"::\"Blanket Order\" then\n+ PAGE.Run(PAGE::\"Blanket Assembly Order\", AssemblyHeader)\n+ else\n+ PAGE.Run(PAGE::\"Assembly Order\", AssemblyHeader);\n end;\n }\n action(\"Reservation Entries\")\n", "error_message": null, "metrics": {"execution_time": 65.0, "llm_duration": null, "turn_count": 9, "prompt_tokens": 186000, "completion_tokens": 1800, "tool_usage": {"glob": 3, "grep": 6, "view": 2, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-207177__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\nindex a84b0558..6617cb09 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n@@ -42,6 +42,9 @@ page 7504 \"Item Attribute Value List\"\n DeleteItemAttributeValueMapping(ItemAttribute.ID);\n end;\n \n+ if Rec.Value = '' then\n+ exit;\n+\n if not Rec.FindAttributeValue(ItemAttributeValue) then\n Rec.InsertItemAttributeValue(ItemAttributeValue, Rec);\n \n@@ -82,7 +85,17 @@ page 7504 \"Item Attribute Value List\"\n OnBeforeItemAttributeValueMappingModify(ItemAttributeValueMapping, ItemAttributeValue, RelatedRecordCode);\n ItemAttributeValueMapping.Modify();\n OnAfterItemAttributeValueMappingModify(ItemAttributeValueMapping, Rec);\n- end;\n+ end else\n+ if Rec.Value <> '' then begin\n+ ItemAttributeValueMapping.Reset();\n+ ItemAttributeValueMapping.Init();\n+ ItemAttributeValueMapping.\"Table ID\" := Database::Item;\n+ ItemAttributeValueMapping.\"No.\" := RelatedRecordCode;\n+ ItemAttributeValueMapping.\"Item Attribute ID\" := ItemAttributeValue.\"Attribute ID\";\n+ ItemAttributeValueMapping.\"Item Attribute Value ID\" := ItemAttributeValue.ID;\n+ OnBeforeItemAttributeValueMappingInsert(ItemAttributeValueMapping, ItemAttributeValue, Rec);\n+ ItemAttributeValueMapping.Insert();\n+ end;\n \n ItemAttribute.Get(Rec.\"Attribute ID\");\n if ItemAttribute.Type <> ItemAttribute.Type::Option then\n", "error_message": null, "metrics": {"execution_time": 449.0, "llm_duration": null, "turn_count": 19, "prompt_tokens": 699900, "completion_tokens": 27400, "tool_usage": {"glob": 1, "view": 14, "grep": 4, "report_intent": 1, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-207177__cf-2", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\nindex a84b0558..96765d55 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n@@ -42,6 +42,9 @@ page 7504 \"Item Attribute Value List\"\n DeleteItemAttributeValueMapping(ItemAttribute.ID);\n end;\n \n+ if Rec.Value = '' then\n+ exit;\n+\n if not Rec.FindAttributeValue(ItemAttributeValue) then\n Rec.InsertItemAttributeValue(ItemAttributeValue, Rec);\n \n@@ -82,6 +85,15 @@ page 7504 \"Item Attribute Value List\"\n OnBeforeItemAttributeValueMappingModify(ItemAttributeValueMapping, ItemAttributeValue, RelatedRecordCode);\n ItemAttributeValueMapping.Modify();\n OnAfterItemAttributeValueMappingModify(ItemAttributeValueMapping, Rec);\n+ end else begin\n+ ItemAttributeValueMapping.Reset();\n+ ItemAttributeValueMapping.Init();\n+ ItemAttributeValueMapping.\"Table ID\" := Database::Item;\n+ ItemAttributeValueMapping.\"No.\" := RelatedRecordCode;\n+ ItemAttributeValueMapping.\"Item Attribute ID\" := ItemAttributeValue.\"Attribute ID\";\n+ ItemAttributeValueMapping.\"Item Attribute Value ID\" := ItemAttributeValue.ID;\n+ OnBeforeItemAttributeValueMappingInsert(ItemAttributeValueMapping, ItemAttributeValue, Rec);\n+ ItemAttributeValueMapping.Insert();\n end;\n \n ItemAttribute.Get(Rec.\"Attribute ID\");\n", "error_message": null, "metrics": {"execution_time": 221.0, "llm_duration": null, "turn_count": 20, "prompt_tokens": 592800, "completion_tokens": 11200, "tool_usage": {"glob": 1, "view": 12, "grep": 5, "powershell": 1, "report_intent": 1, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-207177__cf-3", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\nindex a84b0558..0d644812 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Item/Attribute/ItemAttributeValueList.Page.al\n@@ -42,6 +42,9 @@ page 7504 \"Item Attribute Value List\"\n DeleteItemAttributeValueMapping(ItemAttribute.ID);\n end;\n \n+ if Rec.Value = '' then\n+ exit;\n+\n if not Rec.FindAttributeValue(ItemAttributeValue) then\n Rec.InsertItemAttributeValue(ItemAttributeValue, Rec);\n \n@@ -82,6 +85,14 @@ page 7504 \"Item Attribute Value List\"\n OnBeforeItemAttributeValueMappingModify(ItemAttributeValueMapping, ItemAttributeValue, RelatedRecordCode);\n ItemAttributeValueMapping.Modify();\n OnAfterItemAttributeValueMappingModify(ItemAttributeValueMapping, Rec);\n+ end else begin\n+ ItemAttributeValueMapping.Init();\n+ ItemAttributeValueMapping.\"Table ID\" := Database::Item;\n+ ItemAttributeValueMapping.\"No.\" := RelatedRecordCode;\n+ ItemAttributeValueMapping.\"Item Attribute ID\" := ItemAttributeValue.\"Attribute ID\";\n+ ItemAttributeValueMapping.\"Item Attribute Value ID\" := ItemAttributeValue.ID;\n+ OnBeforeItemAttributeValueMappingInsert(ItemAttributeValueMapping, ItemAttributeValue, Rec);\n+ ItemAttributeValueMapping.Insert();\n end;\n \n ItemAttribute.Get(Rec.\"Attribute ID\");\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137413'\nCodeunit 137413 SCM Item Attributes\n Testfunction VerifyNoBlankEntryInsertedInItemAttributeValue Failure (9.377 seconds)\n Error:\n Microsoft.Dynamics.Nav.Types.Exceptions.NavNCLAssertErrorException: An error was expected inside an ASSERTERROR statement.\\ at Microsoft.Dynamics.Nav.Runtime.NavMethodScope.AssertErrorAsync(Func`1 body)\\ at Microsoft.Dynamics.Nav.BusinessApplication.Codeunit137413.VerifyNoBlankEntryInsertedInItemAttributeValue()\\ at System.Dynamic.UpdateDelegates.UpdateAndExecuteVoid1[T0](CallSite site, T0 arg0)\\ at Microsoft.Dynamics.Nav.Runtime.NavTestCodeunit.ExecuteTestMethodAsync(MethodInfo method, TestTransactionModel transactionModel, Boolean isAsync)\n Call Stack:\n \"SCM Item Attributes\"(CodeUnit 137413).VerifyNoBlankEntryInsertedInItemAttributeValue line 26 - Tests-SCM by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0", "metrics": {"execution_time": 189.0, "llm_duration": null, "turn_count": 12, "prompt_tokens": 346900, "completion_tokens": 11200, "tool_usage": {"glob": 1, "view": 10, "report_intent": 1, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-207236__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al b/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\nindex fbf39fce..901b4209 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/SalesHeader.Table.al\n@@ -7038,6 +7038,7 @@ table 36 \"Sales Header\"\n exit;\n \n \"Posting Date\" := PostingDateReq;\n+ xRec := Rec;\n Validate(\"Currency Code\");\n \n if ReplaceVATDate then\n", "error_message": null, "metrics": {"execution_time": 157.0, "llm_duration": null, "turn_count": 12, "prompt_tokens": 311700, "completion_tokens": 7500, "tool_usage": {"grep": 5, "view": 6, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-207247__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\nindex bd370429..d84df0de 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n@@ -1541,6 +1541,9 @@ codeunit 99000813 \"Carry Out Action\"\n ProductionBOMLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n ProductionBOMLine.SetRange(Type, ProductionBOMLine.Type::Item);\n ProductionBOMLine.SetRange(\"No.\", ProdOrderComponent.\"Item No.\");\n+ ProductionBOMLine.SetRange(Position, ProdOrderComponent.Position);\n+ ProductionBOMLine.SetRange(\"Position 2\", ProdOrderComponent.\"Position 2\");\n+ ProductionBOMLine.SetRange(\"Position 3\", ProdOrderComponent.\"Position 3\");\n if ProductionBOMLine.FindSet() then\n repeat\n ProductionBOMCommentLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n", "error_message": null, "metrics": {"execution_time": 144.0, "llm_duration": null, "turn_count": 13, "prompt_tokens": 391800, "completion_tokens": 6400, "tool_usage": {"powershell": 1, "grep": 9, "view": 4, "glob": 2, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-207247__cf-2", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\nindex bd370429..a42aae92 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n@@ -1539,8 +1539,13 @@ codeunit 99000813 \"Carry Out Action\"\n ActiveVersionCode := VersionManagement.GetBOMVersion(ProductionBOMHeader.\"No.\", WorkDate(), true);\n \n ProductionBOMLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n+ ProductionBOMLine.SetRange(\"Version Code\", ActiveVersionCode);\n ProductionBOMLine.SetRange(Type, ProductionBOMLine.Type::Item);\n ProductionBOMLine.SetRange(\"No.\", ProdOrderComponent.\"Item No.\");\n+ ProductionBOMLine.SetRange(\"Variant Code\", ProdOrderComponent.\"Variant Code\");\n+ ProductionBOMLine.SetRange(Position, ProdOrderComponent.Position);\n+ ProductionBOMLine.SetRange(\"Position 2\", ProdOrderComponent.\"Position 2\");\n+ ProductionBOMLine.SetRange(\"Position 3\", ProdOrderComponent.\"Position 3\");\n if ProductionBOMLine.FindSet() then\n repeat\n ProductionBOMCommentLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n", "error_message": null, "metrics": {"execution_time": 236.0, "llm_duration": null, "turn_count": 18, "prompt_tokens": 719000, "completion_tokens": 10900, "tool_usage": {"grep": 14, "view": 8, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-207247__cf-3", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\nindex bd370429..421b89c7 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutAction.Codeunit.al\n@@ -1541,6 +1541,10 @@ codeunit 99000813 \"Carry Out Action\"\n ProductionBOMLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n ProductionBOMLine.SetRange(Type, ProductionBOMLine.Type::Item);\n ProductionBOMLine.SetRange(\"No.\", ProdOrderComponent.\"Item No.\");\n+ ProductionBOMLine.SetRange(\"Variant Code\", ProdOrderComponent.\"Variant Code\");\n+ ProductionBOMLine.SetRange(Position, ProdOrderComponent.Position);\n+ ProductionBOMLine.SetRange(\"Position 2\", ProdOrderComponent.\"Position 2\");\n+ ProductionBOMLine.SetRange(\"Position 3\", ProdOrderComponent.\"Position 3\");\n if ProductionBOMLine.FindSet() then\n repeat\n ProductionBOMCommentLine.SetRange(\"Production BOM No.\", ProductionBOMHeader.\"No.\");\n", "error_message": null, "metrics": {"execution_time": 186.0, "llm_duration": null, "turn_count": 16, "prompt_tokens": 674700, "completion_tokens": 8400, "tool_usage": {"powershell": 1, "glob": 2, "grep": 9, "view": 8, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-207878__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLine.Table.al b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLine.Table.al\nindex 62ba45ed..7a167a98 100644\n--- a/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Assembly/Document/AssemblyLine.Table.al\n@@ -1510,14 +1510,19 @@ table 901 \"Assembly Line\"\n LookaheadDateFormula := CompanyInfo.\"Check-Avail. Period Calc.\";\n if Format(LookaheadDateFormula) <> '' then begin\n AvailabilityDate := Item.GetRangeMax(\"Date Filter\");\n- PeriodType := CompanyInfo.\"Check-Avail. Time Bucket\";\n-\n- GrossRequirement :=\n- GrossRequirement +\n- AvailableToPromise.CalculateForward(\n- Item, PeriodType,\n- AvailabilityDate + 1,\n- AvailableToPromise.GetPeriodEndingDate(CalcDate(LookaheadDateFormula, AvailabilityDate), PeriodType));\n+ // Skip the forward look-ahead when the due date is before the work date.\n+ // Starting the forward period from a past date would sweep through current\n+ // demand belonging to other assembly orders and produce a false warning.\n+ if AvailabilityDate >= WorkDate() then begin\n+ PeriodType := CompanyInfo.\"Check-Avail. Time Bucket\";\n+\n+ GrossRequirement :=\n+ GrossRequirement +\n+ AvailableToPromise.CalculateForward(\n+ Item, PeriodType,\n+ AvailabilityDate + 1,\n+ AvailableToPromise.GetPeriodEndingDate(CalcDate(LookaheadDateFormula, AvailabilityDate), PeriodType));\n+ end;\n end;\n \n EarliestDate :=\ndiff --git a/App/Layers/W1/BaseApp/Inventory/Availability/ItemCheckAvail.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Availability/ItemCheckAvail.Codeunit.al\nindex 26f5dfa5..19ee12cf 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Availability/ItemCheckAvail.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Availability/ItemCheckAvail.Codeunit.al\n@@ -325,14 +325,23 @@ codeunit 311 \"Item-Check Avail.\"\n local procedure QtyAvailToPromise(var Item: Record Item; CompanyInfo: Record \"Company Information\")\n var\n IsHandled: Boolean;\n+ EffectiveAvailabilityDate: Date;\n begin\n IsHandled := false;\n OnBeforeQtyAvailToPromise(Item, CompanyInfo, InventoryQty, GrossReq, ReservedReq, OldItemNetResChange, SchedRcpt, ReservedRcpt, IsHandled);\n if IsHandled then\n exit;\n \n+ // When the due/shipment date is before the work date the forward look-ahead\n+ // period would start in the past and could pick up demand from unrelated future\n+ // orders, producing a false availability warning. Suppress the look-ahead for\n+ // past-due dates by passing 0D so CalcQtyAvailabletoPromise skips it.\n+ EffectiveAvailabilityDate := Item.GetRangeMax(\"Date Filter\");\n+ if (EffectiveAvailabilityDate <> 0D) and (EffectiveAvailabilityDate < WorkDate()) then\n+ EffectiveAvailabilityDate := 0D;\n+\n AvailableToPromise.CalcQtyAvailabletoPromise(\n- Item, GrossReq, SchedRcpt, Item.GetRangeMax(\"Date Filter\"),\n+ Item, GrossReq, SchedRcpt, EffectiveAvailabilityDate,\n CompanyInfo.\"Check-Avail. Time Bucket\", CompanyInfo.\"Check-Avail. Period Calc.\");\n InventoryQty := ConvertQty(AvailableToPromise.CalcAvailableInventory(Item) - OldItemNetResChange);\n GrossReq := ConvertQty(GrossReq);\n", "error_message": null, "metrics": {"execution_time": 794.0, "llm_duration": null, "turn_count": 33, "prompt_tokens": 2000000, "completion_tokens": 46900, "tool_usage": {"glob": 5, "view": 22, "grep": 9, "report_intent": 1, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-208649__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al b/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\nindex e3280001..f7a61299 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\n@@ -182,28 +182,11 @@ table 99000829 \"Planning Component\"\n Editable = false;\n \n trigger OnValidate()\n- var\n- ItemUnitOfMeasure: Record \"Item Unit of Measure\";\n- UnroundedExpectedQuantity: Decimal;\n- ItemPrecRoundedExpectedQuantity: Decimal;\n- BaseUOMPrecRoundedExpectedQuantity: Decimal;\n begin\n- UnroundedExpectedQuantity := \"Expected Quantity\";\n-\n if Item.Get(\"Item No.\") and (\"Ref. Order Type\" <> \"Ref. Order Type\"::Assembly) then\n if Item.\"Rounding Precision\" > 0 then\n \"Expected Quantity\" := UOMMgt.RoundToItemRndPrecision(\"Expected Quantity\", Item.\"Rounding Precision\");\n \n- ItemPrecRoundedExpectedQuantity := \"Expected Quantity\";\n- BaseUOMPrecRoundedExpectedQuantity := UOMMgt.RoundQty(\"Expected Quantity\", \"Qty. Rounding Precision\");\n-\n- if (\"Qty. Rounding Precision\" > 0) and (BaseUOMPrecRoundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity) then\n- if UnroundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity then\n- Error(WrongPrecisionItemAndUOMExpectedQtyErr, Item.FieldCaption(\"Rounding Precision\"), Item.TableCaption(), ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"))\n- else\n- Error(WrongPrecOnUOMExpectedQtyErr, ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"));\n-\n- \"Expected Quantity\" := BaseUOMPrecRoundedExpectedQuantity;\n \"Expected Quantity (Base)\" := CalcBaseQty(\"Expected Quantity\", FieldCaption(\"Expected Quantity\"), FieldCaption(\"Expected Quantity (Base)\"));\n \n \"Net Quantity (Base)\" := \"Expected Quantity (Base)\" - \"Original Expected Qty. (Base)\";\n@@ -654,8 +637,6 @@ table 99000829 \"Planning Component\"\n CannotRenameErr: Label 'You cannot rename a %1.', Comment = '%1 - Planning Component';\n CannotChangeErr: Label 'You cannot change %1 when %2 is %3.', Comment = '%1 - FieldCaption(\"Unit Cost\"), %2 - Item.FieldCaption(\"Costing Method\"), %3 - Item.\"Costing Method\"';\n LocationCodeMustBeBlankErr: Label 'The Location Code field must be blank for items of type Non-Inventory.';\n- WrongPrecisionItemAndUOMExpectedQtyErr: Label 'The value in the %1 field on the %2 page, and %3 field on the %4 page, are causing the rounding precision for the %5 field to be incorrect.', Comment = '%1 = field caption, %2 = table caption, %3 field caption, %4 = table caption, %5 = field caption';\n- WrongPrecOnUOMExpectedQtyErr: Label 'The value in the %1 field on the %2 page is causing the rounding precision for the %3 field to be incorrect.', Comment = '%1 = field caption, %2 = table caption, %3 field caption';\n \n protected var\n ReqLine: Record \"Requisition Line\";\ndiff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\nindex 36930a9e..058f96b4 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n@@ -263,7 +263,6 @@ codeunit 99000773 \"Calculate Prod. Order\"\n Item2: Record Item;\n ComponentSKU: Record \"Stockkeeping Unit\";\n IsHandled: Boolean;\n- QtyRoundPrecision: Decimal;\n begin\n ProdOrderComp.Reset();\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\", \"Item No.\");\n@@ -295,12 +294,7 @@ codeunit 99000773 \"Calculate Prod. Order\"\n ProdOrderComp.\"Bin Code\" := GetDefaultBin();\n ProdOrderComp.Description := ProdBOMLine[Level].Description;\n ProdOrderComp.Validate(\"Unit of Measure Code\", ProdBOMLine[Level].\"Unit of Measure Code\");\n- if (ProdOrderComp.\"Item No.\" <> '') and Item2.Get(ProdOrderComp.\"Item No.\") then\n- QtyRoundPrecision := UOMMgt.GetQtyRoundingPrecision(Item2, ProdBOMLine[Level].\"Unit of Measure Code\");\n- if QtyRoundPrecision <> 0 then\n- ProdOrderComp.\"Quantity per\" := Round(ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM, QtyRoundPrecision)\n- else\n- ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n+ ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n ProdOrderComp.Length := ProdBOMLine[Level].Length;\n ProdOrderComp.Width := ProdBOMLine[Level].Width;\n ProdOrderComp.Weight := ProdBOMLine[Level].Weight;\ndiff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al b/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\nindex c532e014..0499c788 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\n@@ -249,10 +249,6 @@ table 5407 \"Prod. Order Component\"\n \n trigger OnValidate()\n var\n- ItemUnitOfMeasure: Record \"Item Unit of Measure\";\n- UnroundedExpectedQuantity: Decimal;\n- ItemPrecRoundedExpectedQuantity: Decimal;\n- BaseUOMPrecRoundedExpectedQuantity: Decimal;\n IsHandled: Boolean;\n begin\n IsHandled := false;\n@@ -260,26 +256,14 @@ table 5407 \"Prod. Order Component\"\n if IsHandled then\n exit;\n \n- UnroundedExpectedQuantity := \"Expected Quantity\";\n if Item.Get(\"Item No.\") then\n if Item.\"Rounding Precision\" > 0 then\n RoundExpectedQuantity();\n \n- ItemPrecRoundedExpectedQuantity := \"Expected Quantity\";\n-\n- BaseUOMPrecRoundedExpectedQuantity := UOMMgt.RoundQty(\"Expected Quantity\", \"Qty. Rounding Precision\");\n-\n- if (\"Qty. Rounding Precision\" > 0) and (BaseUOMPrecRoundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity) then\n- if UnroundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity then\n- Error(WrongPrecisionItemAndUOMExpectedQtyErr, Item.FieldCaption(\"Rounding Precision\"), Item.TableCaption(), ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"))\n- else\n- Error(WrongPrecOnUOMExpectedQtyErr, ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"));\n-\n- \"Expected Quantity\" := BaseUOMPrecRoundedExpectedQuantity;\n \"Expected Qty. (Base)\" := CalcBaseQty(\"Expected Quantity\", FieldCaption(\"Expected Quantity\"), FieldCaption(\"Expected Qty. (Base)\"));\n \n // Recalculate 'Expected Quantity' based on the base value to make sure values are consistent\n- \"Expected Quantity\" := UOMMgt.RoundQty(\"Expected Qty. (Base)\" / \"Qty. per Unit of Measure\", \"Qty. Rounding Precision\");\n+ \"Expected Quantity\" := UOMMgt.RoundQty(\"Expected Qty. (Base)\" / \"Qty. per Unit of Measure\");\n \n if (Status in [Status::Released, Status::Finished]) and\n (xRec.\"Item No.\" <> '') and\n@@ -289,7 +273,7 @@ table 5407 \"Prod. Order Component\"\n \n OnValidateExpectedQuantityOnAfterCalcActConsumptionQty(Rec, xRec);\n \"Remaining Quantity\" := \"Expected Quantity\" - \"Act. Consumption (Qty)\" / \"Qty. per Unit of Measure\";\n- \"Remaining Quantity\" := UOMMgt.RoundQty(\"Remaining Quantity\", \"Qty. Rounding Precision\");\n+ \"Remaining Quantity\" := UOMMgt.RoundQty(\"Remaining Quantity\");\n \n if (\"Remaining Quantity\" * \"Expected Quantity\") <= 0 then\n \"Remaining Quantity\" := 0;\n@@ -562,7 +546,7 @@ table 5407 \"Prod. Order Component\"\n exit;\n \n CalculateQuantity(Quantity);\n- Quantity := UOMMgt.RoundAndValidateQty(Quantity, \"Qty. Rounding Precision\", FieldCaption(Quantity));\n+ Quantity := UOMMgt.RoundQty(Quantity);\n \n OnValidateCalculationFormulaOnAfterSetQuantity(Rec);\n \"Quantity (Base)\" := CalcBaseQty(Quantity, FieldCaption(Quantity), FieldCaption(\"Quantity (Base)\"));\n@@ -1028,8 +1012,6 @@ table 5407 \"Prod. Order Component\"\n Text99000003: Label 'You cannot change %1 when %2 is %3.';\n #pragma warning restore AA0470\n #pragma warning restore AA0074\n- WrongPrecisionItemAndUOMExpectedQtyErr: Label 'The value in the %1 field on the %2 page, and %3 field on the %4 page, are causing the rounding precision for the %5 field to be incorrect.', Comment = '%1 = field caption, %2 = table caption, %3 field caption, %4 = table caption, %5 = field caption';\n- WrongPrecOnUOMExpectedQtyErr: Label 'The value in the %1 field on the %2 page is causing the rounding precision for the %3 field to be incorrect.', Comment = '%1 = field caption, %2 = table caption, %3 field caption';\n Item: Record Item;\n ReservEntry: Record \"Reservation Entry\";\n GLSetup: Record \"General Ledger Setup\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137088'\nCodeunit 137088 SCM Order Planning - III\n Testfunction ReleasedProdOrderQuantityPerandExpectedQtyRoundingPrecisionChecking Failure (7.43 seconds)\n Error:\n Qty. Rounding Precision on Item-GL00000000 causes the Expected Quantity and Expected Qty. (Base) to be out of balance. Rounding of the field Expected Qty. (Base) results to 0.\n Call Stack:\n \"Unit of Measure Management\"(CodeUnit 5402).CalcBaseQty line 9 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).CalcBaseQty line 9 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).\"Expected Quantity - OnValidate\"(Trigger) line 13 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).UpdateExpectedQuantity line 14 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).\"Routing Link Code - OnValidate\"(Trigger) line 5 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).TransferBOMProcessItem line 45 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).TransferBOM line 70 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).Calculate line 105 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order Lines\"(CodeUnit 99000787).ProcessProdOrderLines line 13 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order Lines\"(CodeUnit 99000787).Copy line 23 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order from Sale\"(CodeUnit 99000792).CreateProductionOrder line 54 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateOrder line 11 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateOrders line 35 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateProdOrder line 24 - Base Application by Microsoft version 26.0.0.0", "metrics": {"execution_time": 507.0, "llm_duration": null, "turn_count": 41, "prompt_tokens": 3000000, "completion_tokens": 29200, "tool_usage": {"grep": 15, "report_intent": 2, "view": 30, "edit": 7, "powershell": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-208649__cf-2", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al b/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\nindex e3280001..f7a61299 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Planning/PlanningComponent.Table.al\n@@ -182,28 +182,11 @@ table 99000829 \"Planning Component\"\n Editable = false;\n \n trigger OnValidate()\n- var\n- ItemUnitOfMeasure: Record \"Item Unit of Measure\";\n- UnroundedExpectedQuantity: Decimal;\n- ItemPrecRoundedExpectedQuantity: Decimal;\n- BaseUOMPrecRoundedExpectedQuantity: Decimal;\n begin\n- UnroundedExpectedQuantity := \"Expected Quantity\";\n-\n if Item.Get(\"Item No.\") and (\"Ref. Order Type\" <> \"Ref. Order Type\"::Assembly) then\n if Item.\"Rounding Precision\" > 0 then\n \"Expected Quantity\" := UOMMgt.RoundToItemRndPrecision(\"Expected Quantity\", Item.\"Rounding Precision\");\n \n- ItemPrecRoundedExpectedQuantity := \"Expected Quantity\";\n- BaseUOMPrecRoundedExpectedQuantity := UOMMgt.RoundQty(\"Expected Quantity\", \"Qty. Rounding Precision\");\n-\n- if (\"Qty. Rounding Precision\" > 0) and (BaseUOMPrecRoundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity) then\n- if UnroundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity then\n- Error(WrongPrecisionItemAndUOMExpectedQtyErr, Item.FieldCaption(\"Rounding Precision\"), Item.TableCaption(), ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"))\n- else\n- Error(WrongPrecOnUOMExpectedQtyErr, ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"));\n-\n- \"Expected Quantity\" := BaseUOMPrecRoundedExpectedQuantity;\n \"Expected Quantity (Base)\" := CalcBaseQty(\"Expected Quantity\", FieldCaption(\"Expected Quantity\"), FieldCaption(\"Expected Quantity (Base)\"));\n \n \"Net Quantity (Base)\" := \"Expected Quantity (Base)\" - \"Original Expected Qty. (Base)\";\n@@ -654,8 +637,6 @@ table 99000829 \"Planning Component\"\n CannotRenameErr: Label 'You cannot rename a %1.', Comment = '%1 - Planning Component';\n CannotChangeErr: Label 'You cannot change %1 when %2 is %3.', Comment = '%1 - FieldCaption(\"Unit Cost\"), %2 - Item.FieldCaption(\"Costing Method\"), %3 - Item.\"Costing Method\"';\n LocationCodeMustBeBlankErr: Label 'The Location Code field must be blank for items of type Non-Inventory.';\n- WrongPrecisionItemAndUOMExpectedQtyErr: Label 'The value in the %1 field on the %2 page, and %3 field on the %4 page, are causing the rounding precision for the %5 field to be incorrect.', Comment = '%1 = field caption, %2 = table caption, %3 field caption, %4 = table caption, %5 = field caption';\n- WrongPrecOnUOMExpectedQtyErr: Label 'The value in the %1 field on the %2 page is causing the rounding precision for the %3 field to be incorrect.', Comment = '%1 = field caption, %2 = table caption, %3 field caption';\n \n protected var\n ReqLine: Record \"Requisition Line\";\ndiff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\nindex 36930a9e..058f96b4 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/CalculateProdOrder.Codeunit.al\n@@ -263,7 +263,6 @@ codeunit 99000773 \"Calculate Prod. Order\"\n Item2: Record Item;\n ComponentSKU: Record \"Stockkeeping Unit\";\n IsHandled: Boolean;\n- QtyRoundPrecision: Decimal;\n begin\n ProdOrderComp.Reset();\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\", \"Item No.\");\n@@ -295,12 +294,7 @@ codeunit 99000773 \"Calculate Prod. Order\"\n ProdOrderComp.\"Bin Code\" := GetDefaultBin();\n ProdOrderComp.Description := ProdBOMLine[Level].Description;\n ProdOrderComp.Validate(\"Unit of Measure Code\", ProdBOMLine[Level].\"Unit of Measure Code\");\n- if (ProdOrderComp.\"Item No.\" <> '') and Item2.Get(ProdOrderComp.\"Item No.\") then\n- QtyRoundPrecision := UOMMgt.GetQtyRoundingPrecision(Item2, ProdBOMLine[Level].\"Unit of Measure Code\");\n- if QtyRoundPrecision <> 0 then\n- ProdOrderComp.\"Quantity per\" := Round(ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM, QtyRoundPrecision)\n- else\n- ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n+ ProdOrderComp.\"Quantity per\" := ProdBOMLine[Level].\"Quantity per\" * LineQtyPerUOM / ItemQtyPerUOM;\n ProdOrderComp.Length := ProdBOMLine[Level].Length;\n ProdOrderComp.Width := ProdBOMLine[Level].Width;\n ProdOrderComp.Weight := ProdBOMLine[Level].Weight;\ndiff --git a/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al b/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\nindex c532e014..ec42a888 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Document/ProdOrderComponent.Table.al\n@@ -249,10 +249,6 @@ table 5407 \"Prod. Order Component\"\n \n trigger OnValidate()\n var\n- ItemUnitOfMeasure: Record \"Item Unit of Measure\";\n- UnroundedExpectedQuantity: Decimal;\n- ItemPrecRoundedExpectedQuantity: Decimal;\n- BaseUOMPrecRoundedExpectedQuantity: Decimal;\n IsHandled: Boolean;\n begin\n IsHandled := false;\n@@ -260,26 +256,14 @@ table 5407 \"Prod. Order Component\"\n if IsHandled then\n exit;\n \n- UnroundedExpectedQuantity := \"Expected Quantity\";\n if Item.Get(\"Item No.\") then\n if Item.\"Rounding Precision\" > 0 then\n RoundExpectedQuantity();\n \n- ItemPrecRoundedExpectedQuantity := \"Expected Quantity\";\n-\n- BaseUOMPrecRoundedExpectedQuantity := UOMMgt.RoundQty(\"Expected Quantity\", \"Qty. Rounding Precision\");\n-\n- if (\"Qty. Rounding Precision\" > 0) and (BaseUOMPrecRoundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity) then\n- if UnroundedExpectedQuantity <> ItemPrecRoundedExpectedQuantity then\n- Error(WrongPrecisionItemAndUOMExpectedQtyErr, Item.FieldCaption(\"Rounding Precision\"), Item.TableCaption(), ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"))\n- else\n- Error(WrongPrecOnUOMExpectedQtyErr, ItemUnitOfMeasure.FieldCaption(\"Qty. Rounding Precision\"), ItemUnitOfMeasure.TableCaption(), Rec.FieldCaption(\"Expected Quantity\"));\n-\n- \"Expected Quantity\" := BaseUOMPrecRoundedExpectedQuantity;\n \"Expected Qty. (Base)\" := CalcBaseQty(\"Expected Quantity\", FieldCaption(\"Expected Quantity\"), FieldCaption(\"Expected Qty. (Base)\"));\n \n // Recalculate 'Expected Quantity' based on the base value to make sure values are consistent\n- \"Expected Quantity\" := UOMMgt.RoundQty(\"Expected Qty. (Base)\" / \"Qty. per Unit of Measure\", \"Qty. Rounding Precision\");\n+ \"Expected Quantity\" := UOMMgt.RoundQty(\"Expected Qty. (Base)\" / \"Qty. per Unit of Measure\", UOMMgt.QtyRndPrecision());\n \n if (Status in [Status::Released, Status::Finished]) and\n (xRec.\"Item No.\" <> '') and\n@@ -289,7 +273,7 @@ table 5407 \"Prod. Order Component\"\n \n OnValidateExpectedQuantityOnAfterCalcActConsumptionQty(Rec, xRec);\n \"Remaining Quantity\" := \"Expected Quantity\" - \"Act. Consumption (Qty)\" / \"Qty. per Unit of Measure\";\n- \"Remaining Quantity\" := UOMMgt.RoundQty(\"Remaining Quantity\", \"Qty. Rounding Precision\");\n+ \"Remaining Quantity\" := UOMMgt.RoundQty(\"Remaining Quantity\", UOMMgt.QtyRndPrecision());\n \n if (\"Remaining Quantity\" * \"Expected Quantity\") <= 0 then\n \"Remaining Quantity\" := 0;\n@@ -1028,8 +1012,6 @@ table 5407 \"Prod. Order Component\"\n Text99000003: Label 'You cannot change %1 when %2 is %3.';\n #pragma warning restore AA0470\n #pragma warning restore AA0074\n- WrongPrecisionItemAndUOMExpectedQtyErr: Label 'The value in the %1 field on the %2 page, and %3 field on the %4 page, are causing the rounding precision for the %5 field to be incorrect.', Comment = '%1 = field caption, %2 = table caption, %3 field caption, %4 = table caption, %5 = field caption';\n- WrongPrecOnUOMExpectedQtyErr: Label 'The value in the %1 field on the %2 page is causing the rounding precision for the %3 field to be incorrect.', Comment = '%1 = field caption, %2 = table caption, %3 field caption';\n Item: Record Item;\n ReservEntry: Record \"Reservation Entry\";\n GLSetup: Record \"General Ledger Setup\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137088'\nCodeunit 137088 SCM Order Planning - III\n Testfunction ReleasedProdOrderQuantityPerandExpectedQtyRoundingPrecisionChecking Failure (7.317 seconds)\n Error:\n Qty. Rounding Precision on Item-GL00000000 causes the Expected Quantity and Expected Qty. (Base) to be out of balance. Rounding of the field Expected Qty. (Base) results to 0.\n Call Stack:\n \"Unit of Measure Management\"(CodeUnit 5402).CalcBaseQty line 9 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).CalcBaseQty line 9 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).\"Expected Quantity - OnValidate\"(Trigger) line 13 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).UpdateExpectedQuantity line 14 - Base Application by Microsoft version 26.0.0.0\n \"Prod. Order Component\"(Table 5407).\"Routing Link Code - OnValidate\"(Trigger) line 5 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).TransferBOMProcessItem line 45 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).TransferBOM line 70 - Base Application by Microsoft version 26.0.0.0\n \"Calculate Prod. Order\"(CodeUnit 99000773).Calculate line 105 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order Lines\"(CodeUnit 99000787).ProcessProdOrderLines line 13 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order Lines\"(CodeUnit 99000787).Copy line 23 - Base Application by Microsoft version 26.0.0.0\n \"Create Prod. Order from Sale\"(CodeUnit 99000792).CreateProductionOrder line 54 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateOrder line 11 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateOrders line 35 - Base Application by Microsoft version 26.0.0.0\n \"Mfg. Sales Order Planning\"(PageExtension 99000883).CreateProdOrder line 24 - Base Application by Microsoft version 26.0.0.0", "metrics": {"execution_time": 689.0, "llm_duration": null, "turn_count": 53, "prompt_tokens": 2800000, "completion_tokens": 42400, "tool_usage": {"task": 1, "grep": 19, "view": 23, "read_agent": 1, "report_intent": 1, "edit": 10, "glob": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-208748__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\nindex 7c1943c5..64753737 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\n@@ -123,6 +123,7 @@ codeunit 87 \"Blanket Sales Order to Order\"\n ATOLink: Record \"Assemble-to-Order Link\";\n PrepmtMgt: Codeunit \"Prepayment Mgt.\";\n SalesLineReserve: Codeunit \"Sales Line-Reserve\";\n+ BlanketLineNoToOrderLineNo: Dictionary of [Integer, Integer];\n QuantityOnOrders: Decimal;\n IsHandled: Boolean;\n ProcessLine: Boolean;\n@@ -166,6 +167,11 @@ codeunit 87 \"Blanket Sales Order to Order\"\n SalesLineOrder.\"Line No.\" := NextLineNo;\n SalesLineOrder.\"Blanket Order No.\" := SalesHeaderBlanketOrder.\"No.\";\n SalesLineOrder.\"Blanket Order Line No.\" := SalesLineBlanketOrder.\"Line No.\";\n+ if SalesLineOrder.IsExtendedText() then begin\n+ if BlanketLineNoToOrderLineNo.ContainsKey(SalesLineOrder.\"Attached to Line No.\") then\n+ SalesLineOrder.\"Attached to Line No.\" := BlanketLineNoToOrderLineNo.Get(SalesLineOrder.\"Attached to Line No.\");\n+ end else\n+ BlanketLineNoToOrderLineNo.Add(SalesLineBlanketOrder.\"Line No.\", NextLineNo);\n if (SalesLineOrder.\"No.\" <> '') and (SalesLineOrder.Type <> SalesLineOrder.Type::\" \") then begin\n SalesLineOrder.Amount := 0;\n SalesLineOrder.\"Amount Including VAT\" := 0;\n", "error_message": null, "metrics": {"execution_time": 370.0, "llm_duration": null, "turn_count": 16, "prompt_tokens": 603400, "completion_tokens": 23400, "tool_usage": {"glob": 2, "grep": 5, "view": 10, "report_intent": 1, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-208748__cf-2", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\nindex 7c1943c5..81f91258 100644\n--- a/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Document/BlanketSalesOrdertoOrder.Codeunit.al\n@@ -123,6 +123,7 @@ codeunit 87 \"Blanket Sales Order to Order\"\n ATOLink: Record \"Assemble-to-Order Link\";\n PrepmtMgt: Codeunit \"Prepayment Mgt.\";\n SalesLineReserve: Codeunit \"Sales Line-Reserve\";\n+ BlanketToOrderLineNoMap: Dictionary of [Integer, Integer];\n QuantityOnOrders: Decimal;\n IsHandled: Boolean;\n ProcessLine: Boolean;\n@@ -164,6 +165,8 @@ codeunit 87 \"Blanket Sales Order to Order\"\n SalesLineOrder.\"Document No.\" := SalesHeaderOrder.\"No.\";\n NextLineNo += 10000;\n SalesLineOrder.\"Line No.\" := NextLineNo;\n+ if not SalesLineOrder.IsExtendedText() then\n+ BlanketToOrderLineNoMap.Add(SalesLineBlanketOrder.\"Line No.\", NextLineNo);\n SalesLineOrder.\"Blanket Order No.\" := SalesHeaderBlanketOrder.\"No.\";\n SalesLineOrder.\"Blanket Order Line No.\" := SalesLineBlanketOrder.\"Line No.\";\n if (SalesLineOrder.\"No.\" <> '') and (SalesLineOrder.Type <> SalesLineOrder.Type::\" \") then begin\n@@ -199,6 +202,9 @@ codeunit 87 \"Blanket Sales Order to Order\"\n SalesLineOrder.\"Qty. to Asm. to Order (Base)\" := SalesLineOrder.\"Quantity (Base)\";\n end;\n SalesLineOrder.DefaultDeferralCode();\n+ if SalesLineOrder.IsExtendedText() then\n+ if BlanketToOrderLineNoMap.ContainsKey(SalesLineOrder.\"Attached to Line No.\") then\n+ SalesLineOrder.\"Attached to Line No.\" := BlanketToOrderLineNoMap.Get(SalesLineOrder.\"Attached to Line No.\");\n if IsSalesOrderLineToBeInserted(SalesLineOrder) then begin\n OnBeforeInsertSalesOrderLine(SalesLineOrder, SalesHeaderOrder, SalesLineBlanketOrder, SalesHeaderBlanketOrder);\n SalesLineOrder.Insert();\n", "error_message": null, "metrics": {"execution_time": 429.0, "llm_duration": null, "turn_count": 15, "prompt_tokens": 573700, "completion_tokens": 27300, "tool_usage": {"powershell": 1, "grep": 4, "glob": 2, "view": 8, "report_intent": 1, "edit": 3}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-208851__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al b/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al\nindex fb6adbb6..4ccb92e6 100644\n--- a/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al\n+++ b/App/Layers/W1/BaseApp/Pricing/PriceList/PriceListHeader.Table.al\n@@ -563,9 +563,10 @@ table 7000 \"Price List Header\"\n xAmountType: Enum \"Price Amount Type\";\n begin\n xAmountType := \"Amount Type\";\n- if \"Source Type\" in [\"Source Type\"::\"Customer Disc. Group\", \"Source Type\"::\"Customer Price Group\"] then\n+ if \"Source Type\" in [\"Source Type\"::\"Customer Disc. Group\", \"Source Type\"::\"Customer Price Group\"] then begin\n+ PriceSource.\"Source Type\" := \"Source Type\";\n \"Amount Type\" := PriceSource.GetDefaultAmountType()\n- else\n+ end else\n \"Amount Type\" := CalcAmountType();\n if \"Amount Type\" <> xAmountType then\n Modify()\n", "error_message": null, "metrics": {"execution_time": 117.0, "llm_duration": null, "turn_count": 12, "prompt_tokens": 350000, "completion_tokens": 5500, "tool_usage": {"glob": 3, "grep": 8, "view": 4, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-209450__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\nindex bb5d38d2..7da721a3 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\n@@ -1074,6 +1074,8 @@ table 1003 \"Job Planning Line\"\n if Reserve <> Reserve::Never then begin\n TestField(Type, Type::Item);\n TestField(\"No.\");\n+ if IsNonInventoriableItem() then\n+ Error(NonInvReserveTypeErr, \"No.\", Reserve);\n TestField(\"Usage Link\");\n end;\n CalcFields(\"Reserved Qty. (Base)\");\n@@ -1525,6 +1527,7 @@ table 1003 \"Job Planning Line\"\n DifferentQtyToAssembleErr: Label ' must be equal to %1.', Comment = 'Qty. to Assemble must be equal to Quantity, %1 = Quantity';\n CannotBeMoreErr: Label 'cannot be more than %1', Comment = '%1 = Quantity';\n ConfirmDeleteQst: Label '%1 = %2 is greater than %3 = %4. If you delete the %5, the items will remain in the operation area until you put them away.\\Any related item tracking information defined during the pick process will be deleted.\\Do you still want to delete the %5?', Comment = '%1 = FieldCaption(\"Qty. Picked\"), %2 = \"Qty. Picked\", %3 = FieldCaption(\"Qty. Posted\"), %4 = \"Qty. Posted\", %5 = TableCaption';\n+ NonInvReserveTypeErr: Label 'Non-inventory and service items must have the reserve type Never. The current reserve type for item %1 is %2.', Comment = '%1 is Item No., %2 is Reserve';\n \n protected var\n Job: Record Job;\ndiff --git a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLineReserve.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLineReserve.Codeunit.al\nindex 9a2e42ec..ef2fca7d 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLineReserve.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLineReserve.Codeunit.al\n@@ -33,6 +33,7 @@ codeunit 1032 \"Job Planning Line-Reserve\"\n InvalidLineTypeErr: Label 'must be %1 or %2', Comment = '%1 and %2 are line type options, fx. Budget or Billable';\n SummaryTypeTxt: Label '%1, %2', Locked = true;\n SourceDoc2Txt: Label '%1 %2', Locked = true;\n+ NonInventoryItemReserveErr: Label 'Non-inventory and service items cannot be reserved for a project planning line. Item %1 is not an inventory item.', Comment = '%1 is Item No.';\n \n procedure CreateReservation(JobPlanningLine: Record \"Job Planning Line\"; Description: Text[100]; ExpectedReceiptDate: Date; Quantity: Decimal; QuantityBase: Decimal; ForReservEntry: Record \"Reservation Entry\")\n var\n@@ -44,6 +45,8 @@ codeunit 1032 \"Job Planning Line-Reserve\"\n \n JobPlanningLine.TestField(Type, JobPlanningLine.Type::Item);\n JobPlanningLine.TestField(\"No.\");\n+ if not JobPlanningLine.IsInventoriableItem() then\n+ Error(NonInventoryItemReserveErr, JobPlanningLine.\"No.\");\n JobPlanningLine.TestField(\"Planning Date\");\n \n JobPlanningLine.CalcFields(\"Reserved Qty. (Base)\");\n@@ -973,6 +976,8 @@ codeunit 1032 \"Job Planning Line-Reserve\"\n if SourceRecRef.Number = Database::\"Job Planning Line\" then begin\n SourceRecRef.SetTable(JobPlanningLine);\n JobPlanningLine.TestField(Type, JobPlanningLine.Type::Item);\n+ if not JobPlanningLine.IsInventoriableItem() then\n+ Error(NonInventoryItemReserveErr, JobPlanningLine.\"No.\");\n end;\n end;\n \n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136302'\nCodeunit 136302 Job Consumption Purchase\n Testfunction PurchaseLineNotReservedWhenItemTypeNonInventory Failure (16.2 seconds)\n Error:\n Non-inventory and service items must have the reserve type Never. The current reserve type for item GL00000001 is Optional.\n Call Stack:\n \"Job Planning Line\"(Table 1003).\"Reserve - OnValidate\"(Trigger) line 6 - Base Application by Microsoft version 26.0.0.0\n \"Job Consumption Purchase\"(CodeUnit 136302).PurchaseLineNotReservedWhenItemTypeNonInventory line 33 - Tests-Job by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0", "metrics": {"execution_time": 339.0, "llm_duration": null, "turn_count": 43, "prompt_tokens": 1800000, "completion_tokens": 14400, "tool_usage": {"powershell": 1, "grep": 22, "glob": 2, "view": 22, "report_intent": 1, "edit": 5}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-209450__cf-2", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\nindex bb5d38d2..539559cc 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Planning/JobPlanningLine.Table.al\n@@ -1074,6 +1074,9 @@ table 1003 \"Job Planning Line\"\n if Reserve <> Reserve::Never then begin\n TestField(Type, Type::Item);\n TestField(\"No.\");\n+ GetItem();\n+ if IsNonInventoriableItem() then\n+ Error(NonInvReserveTypeErr, Item.\"No.\", Reserve);\n TestField(\"Usage Link\");\n end;\n CalcFields(\"Reserved Qty. (Base)\");\n@@ -1513,6 +1516,7 @@ table 1003 \"Job Planning Line\"\n #pragma warning restore AA0470\n QtyToTransferToInvoiceErr: Label '%1 may not be lower than %2 and may not exceed %3.', Comment = '%1 = Qty. to Transfer to Invoice field name; %2 = First value in comparison; %3 = Second value in comparison';\n AutoReserveQst: Label 'Automatic reservation is not possible.\\Do you want to reserve items manually?';\n+ NonInvReserveTypeErr: Label 'Non-inventory and service items must have the reserve type Never. The current reserve type for item %1 is %2.', Comment = '%1 is Item No., %2 is Reserve';\n NoContractLineErr: Label '%1 cannot be set on a %2 of type %3.', Comment = '%1 = Qty. to Transfer to Invoice field name; %2 = Project Planning Line table name; %3 = The project''s line type';\n QtyAlreadyTransferredErr: Label 'The %1 has already been completely transferred.', Comment = '%1 = Project Planning Line table name';\n #pragma warning disable AA0470\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136302'\nCodeunit 136302 Job Consumption Purchase\n Testfunction PurchaseLineNotReservedWhenItemTypeService Failure (19.016 seconds)\n Error:\n Non-inventory and service items must have the reserve type Never. The current reserve type for item GL00000001 is Optional.\n Call Stack:\n \"Job Planning Line\"(Table 1003).\"Reserve - OnValidate\"(Trigger) line 7 - Base Application by Microsoft version 26.0.0.0\n \"Job Consumption Purchase\"(CodeUnit 136302).PurchaseLineNotReservedWhenItemTypeService line 33 - Tests-Job by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0", "metrics": {"execution_time": 199.0, "llm_duration": null, "turn_count": 32, "prompt_tokens": 1100000, "completion_tokens": 7500, "tool_usage": {"grep": 12, "glob": 2, "view": 14, "powershell": 9, "report_intent": 1, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-209496__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\nindex 10d284cc..cd6e03c8 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\n@@ -132,8 +132,10 @@ page 835 \"Reminder Level Communication\"\n LocalLanguage.FindFirst();\n \n // Necessary when the user has deleted all languages or has not created any language yet\n- if IsNullGuid(Rec.\"Reminder Attachment Text\") then\n+ if IsNullGuid(Rec.\"Reminder Attachment Text\") then begin\n ReminderCommunication.SetDefaultContentForNewLanguage(CreateGuid(), LocalLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Level\", Rec.SystemId);\n+ Rec.Find();\n+ end;\n \n SelectedNewLanguage := true;\n SelectLanguageAndText(LocalLanguage.Code, true);\ndiff --git a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al\nindex 5cce8ad7..13ea492c 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderTermCommunication.Page.al\n@@ -125,8 +125,10 @@ page 1897 \"Reminder Term Communication\"\n LocalLanguage.FindFirst();\n \n // Necessary when the user has deleted all languages or has not created any language yet\n- if IsNullGuid(Rec.\"Reminder Attachment Text\") then\n+ if IsNullGuid(Rec.\"Reminder Attachment Text\") then begin\n ReminderCommunication.SetDefaultContentForNewLanguage(CreateGuid(), LocalLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Term\", Rec.SystemId);\n+ Rec.Find();\n+ end;\n \n SelectedNewLanguage := true;\n SelectLanguageAndText(LocalLanguage.Code, true);\n", "error_message": null, "metrics": {"execution_time": 142.0, "llm_duration": null, "turn_count": 10, "prompt_tokens": 274300, "completion_tokens": 7100, "tool_usage": {"grep": 6, "view": 4, "report_intent": 1, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-209496__cf-2", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\nindex 10d284cc..768dec3d 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/TermsAndLevels/ReminderLevelCommunication.Page.al\n@@ -132,8 +132,10 @@ page 835 \"Reminder Level Communication\"\n LocalLanguage.FindFirst();\n \n // Necessary when the user has deleted all languages or has not created any language yet\n- if IsNullGuid(Rec.\"Reminder Attachment Text\") then\n+ if IsNullGuid(Rec.\"Reminder Attachment Text\") then begin\n ReminderCommunication.SetDefaultContentForNewLanguage(CreateGuid(), LocalLanguage.Code, Enum::\"Reminder Text Source Type\"::\"Reminder Level\", Rec.SystemId);\n+ Rec.Get(Rec.\"Reminder Terms Code\", Rec.\"No.\");\n+ end;\n \n SelectedNewLanguage := true;\n SelectLanguageAndText(LocalLanguage.Code, true);\n", "error_message": null, "metrics": {"execution_time": 182.0, "llm_duration": null, "turn_count": 13, "prompt_tokens": 390000, "completion_tokens": 10600, "tool_usage": {"grep": 6, "glob": 4, "view": 5, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-209835__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\nindex 78996b41..2d354e99 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\n@@ -473,7 +473,8 @@ report 99001020 \"Carry Out Action Msg. - Plan.\"\n if CurrReqWkshTemp <> '' then\n \"Requisition Line\".SetRange(\"Journal Batch Name\", CurrReqWkshName);\n \"Requisition Line\".SetRange(Type, \"Requisition Line\".Type::Item);\n- \"Requisition Line\".SetFilter(\"Action Message\", '<>%1', \"Requisition Line\".\"Action Message\"::\" \");\n+ if ReqLineFilters.GetFilter(\"Action Message\") = '' then\n+ \"Requisition Line\".SetFilter(\"Action Message\", '<>%1', \"Requisition Line\".\"Action Message\"::\" \");\n OnAfterSetReqLineFilters(\"Requisition Line\");\n end;\n \n", "error_message": null, "metrics": {"execution_time": 140.0, "llm_duration": null, "turn_count": 14, "prompt_tokens": 342000, "completion_tokens": 6800, "tool_usage": {"glob": 2, "view": 11, "grep": 4, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-209835__cf-2", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\nindex 78996b41..43c6dbb9 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Requisition/CarryOutActionMsgPlan.Report.al\n@@ -473,7 +473,8 @@ report 99001020 \"Carry Out Action Msg. - Plan.\"\n if CurrReqWkshTemp <> '' then\n \"Requisition Line\".SetRange(\"Journal Batch Name\", CurrReqWkshName);\n \"Requisition Line\".SetRange(Type, \"Requisition Line\".Type::Item);\n- \"Requisition Line\".SetFilter(\"Action Message\", '<>%1', \"Requisition Line\".\"Action Message\"::\" \");\n+ if \"Requisition Line\".GetFilter(\"Action Message\") = '' then\n+ \"Requisition Line\".SetFilter(\"Action Message\", '<>%1', \"Requisition Line\".\"Action Message\"::\" \");\n OnAfterSetReqLineFilters(\"Requisition Line\");\n end;\n \n", "error_message": null, "metrics": {"execution_time": 243.0, "llm_duration": null, "turn_count": 18, "prompt_tokens": 635900, "completion_tokens": 13500, "tool_usage": {"glob": 3, "view": 14, "powershell": 1, "grep": 1, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-210200__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Service/Item/StandardServiceItemGrCode.Table.al b/App/Layers/W1/BaseApp/Service/Item/StandardServiceItemGrCode.Table.al\nindex 33f69be4..df07fe18 100644\n--- a/App/Layers/W1/BaseApp/Service/Item/StandardServiceItemGrCode.Table.al\n+++ b/App/Layers/W1/BaseApp/Service/Item/StandardServiceItemGrCode.Table.al\n@@ -160,6 +160,8 @@ table 5998 \"Standard Service Item Gr. Code\"\n OnBeforeInsertServLine(ServLine);\n ServLine.Insert(true);\n InsertExtendedText(ServLine);\n+ if (ServLine.Reserve = ServLine.Reserve::Always) and (ServLine.\"Outstanding Qty. (Base)\" <> 0) then\n+ ServLine.AutoReserve(false);\n end;\n until StdServLine.Next() = 0;\n end;\n", "error_message": null, "metrics": {"execution_time": 285.0, "llm_duration": null, "turn_count": 39, "prompt_tokens": 2000000, "completion_tokens": 10600, "tool_usage": {"grep": 26, "view": 15, "glob": 1, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-210200__cf-2", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Service/Document/StandardServiceCode.Table.al b/App/Layers/W1/BaseApp/Service/Document/StandardServiceCode.Table.al\nindex 986aeff9..d51a53ae 100644\n--- a/App/Layers/W1/BaseApp/Service/Document/StandardServiceCode.Table.al\n+++ b/App/Layers/W1/BaseApp/Service/Document/StandardServiceCode.Table.al\n@@ -192,6 +192,11 @@ table 5996 \"Standard Service Code\"\n OnBeforeInsertServLine(ServLine);\n ServLine.Insert(true);\n InsertExtendedText(ServLine);\n+ if (ServLine.Type = ServLine.Type::Item) and\n+ (ServLine.Reserve = ServLine.Reserve::Always) and\n+ (ServLine.\"Outstanding Qty. (Base)\" <> 0)\n+ then\n+ ServLine.AutoReserve();\n end;\n until StdServLine.Next() = 0;\n end;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136119'\nCodeunit 136119 Service Standard Codes\n Testfunction ReservationEntryMustBeCreatedWhenReserveIsAlwaysInServiceLine Failure (9.254 seconds)\n Error:\n Assert.AreEqual failed. Expected:<5> (Integer). Actual:<0> (Decimal). Reserved Qty. (Base) must be equal to 5 in Service Line.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 26.0.0.0\n \"Service Standard Codes\"(CodeUnit 136119).ReservationEntryMustBeCreatedWhenReserveIsAlwaysInServiceLine line 66 - Tests-SCM-Service by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0", "metrics": {"execution_time": 279.0, "llm_duration": null, "turn_count": 45, "prompt_tokens": 1500000, "completion_tokens": 11700, "tool_usage": {"glob": 6, "view": 15, "grep": 20, "powershell": 8, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-210528__cf-1", "project": "Sustainability", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al b/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al\nindex 335c0099..99bccfb5 100644\n--- a/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al\n+++ b/App/Apps/W1/Sustainability/app/src/Setup/SustainabilitySetup.Table.al\n@@ -148,9 +148,16 @@ table 6217 \"Sustainability Setup\"\n \n trigger OnValidate()\n begin\n- if Rec.\"Enable Value Chain Tracking\" then\n+ if Rec.\"Enable Value Chain Tracking\" then begin\n if not ConfirmManagement.GetResponseOrDefault(ConfirmEnableValueChainTrackingQst, false) then\n Error('');\n+ if not Rec.\"Use Emissions In Purch. Doc.\" then\n+ Rec.Validate(\"Use Emissions In Purch. Doc.\", true);\n+ if not Rec.\"Item Emissions\" then\n+ Rec.Validate(\"Item Emissions\", true);\n+ if not Rec.\"Resource Emissions\" then\n+ Rec.Validate(\"Resource Emissions\", true);\n+ end;\n end;\n }\n }\n", "error_message": null, "metrics": {"execution_time": 48.0, "llm_duration": null, "turn_count": 7, "prompt_tokens": 131500, "completion_tokens": 1600, "tool_usage": {"grep": 3, "view": 3, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-211521__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al b/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\nindex 401cabee..0883009a 100644\n--- a/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\n+++ b/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\n@@ -566,7 +566,7 @@ table 5050 Contact\n CalcFormula = min(\"To-do\".Date where(\"Contact Company No.\" = field(\"Company No.\"),\n \"Contact No.\" = field(filter(\"Lookup Contact No.\")),\n Closed = const(false),\n- \"System To-do Type\" = const(\"Contact Attendee\")));\n+ \"System To-do Type\" = filter(Organizer | \"Contact Attendee\")));\n Caption = 'Next Task Date';\n Editable = false;\n FieldClass = FlowField;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '136201'\nCodeunit 136201 Marketing Contacts\n Testfunction TaskListPageHasFixedSystemTaskTypeFilterAsOrganiserOrContactAttendee Failure (5.46 seconds)\n Error:\n Assert.AreEqual failed. Expected:<> (Text). Actual: (Text). Filter should not be set.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 26.0.0.0\n \"Marketing Contacts\"(CodeUnit 136201).TaskListPageHasFixedSystemTaskTypeFilterAsOrganiserOrContactAttendee line 26 - Tests-Marketing by Microsoft version 26.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 26.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 26.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 26.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 26.0.0.0", "metrics": {"execution_time": 75.0, "llm_duration": null, "turn_count": 8, "prompt_tokens": 177600, "completion_tokens": 2300, "tool_usage": {"grep": 6, "view": 3, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-211521__cf-2", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al b/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\nindex 401cabee..42569b9b 100644\n--- a/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\n+++ b/App/Layers/W1/BaseApp/CRM/Contact/Contact.Table.al\n@@ -565,8 +565,7 @@ table 5050 Contact\n {\n CalcFormula = min(\"To-do\".Date where(\"Contact Company No.\" = field(\"Company No.\"),\n \"Contact No.\" = field(filter(\"Lookup Contact No.\")),\n- Closed = const(false),\n- \"System To-do Type\" = const(\"Contact Attendee\")));\n+ Closed = const(false)));\n Caption = 'Next Task Date';\n Editable = false;\n FieldClass = FlowField;\n", "error_message": null, "metrics": {"execution_time": 136.0, "llm_duration": null, "turn_count": 14, "prompt_tokens": 328600, "completion_tokens": 5400, "tool_usage": {"grep": 10, "view": 3, "glob": 4, "powershell": 1, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-213671__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al b/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\nindex c70c6c1e..81667180 100644\n--- a/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\n+++ b/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\n@@ -630,7 +630,7 @@ page 5123 \"Opportunity List\"\n if Filter <> '' then begin\n RecRef.GetTable(RecVar);\n IndexFieldRef := RecRef.Field(IndexFieldNo);\n- IndexFieldRef.SetRange(Filter);\n+ IndexFieldRef.SetFilter(Filter);\n if RecRef.FindFirst() then begin\n TextFieldRef := RecRef.Field(TextFieldNo);\n CaptionText := CopyStr(Format(IndexFieldRef.Value) + ' ' + Format(TextFieldRef.Value), 1, MaxStrLen(CaptionText));\n", "error_message": null, "metrics": {"execution_time": 101.0, "llm_duration": null, "turn_count": 7, "prompt_tokens": 152400, "completion_tokens": 5200, "tool_usage": {"glob": 1, "view": 3, "grep": 1, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-213671__cf-2", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al b/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\nindex c70c6c1e..81667180 100644\n--- a/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\n+++ b/App/Layers/W1/BaseApp/CRM/Opportunity/OpportunityList.Page.al\n@@ -630,7 +630,7 @@ page 5123 \"Opportunity List\"\n if Filter <> '' then begin\n RecRef.GetTable(RecVar);\n IndexFieldRef := RecRef.Field(IndexFieldNo);\n- IndexFieldRef.SetRange(Filter);\n+ IndexFieldRef.SetFilter(Filter);\n if RecRef.FindFirst() then begin\n TextFieldRef := RecRef.Field(TextFieldNo);\n CaptionText := CopyStr(Format(IndexFieldRef.Value) + ' ' + Format(TextFieldRef.Value), 1, MaxStrLen(CaptionText));\n", "error_message": null, "metrics": {"execution_time": 102.0, "llm_duration": null, "turn_count": 10, "prompt_tokens": 199300, "completion_tokens": 4100, "tool_usage": {"glob": 1, "view": 3, "grep": 2, "report_intent": 1, "edit": 1, "powershell": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-213683__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al\nindex 9735e4b2..246b6a64 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Item/MfgItemIntegration.Codeunit.al\n@@ -172,8 +172,6 @@ codeunit 99000795 \"Mfg. Item Integration\"\n RequisitionLine: Record \"Requisition Line\";\n TransferLine: Record \"Transfer Line\";\n ItemJournalLine: Record \"Item Journal Line\";\n- ValueEntry: Record \"Value Entry\";\n- ItemLedgerEntry: Record \"Item Ledger Entry\";\n ProdOrderLine: Record \"Prod. Order Line\";\n begin\n if xRec.\"Item No.\" <> Rec.\"Item No.\" then begin\n@@ -229,16 +227,6 @@ codeunit 99000795 \"Mfg. Item Integration\"\n ItemJournalLine.SetRange(\"Variant Code\", xRec.Code);\n if not ItemJournalLine.IsEmpty() then\n Error(CannotRenameItemErr, Rec.FieldCaption(\"Item No.\"), Rec.TableCaption(), ItemJournalLine.TableCaption());\n-\n- ItemLedgerEntry.SetRange(\"Item No.\", xRec.\"Item No.\");\n- ItemLedgerEntry.SetRange(\"Variant Code\", xRec.Code);\n- if not ItemLedgerEntry.IsEmpty() then\n- Error(CannotRenameItemErr, Rec.FieldCaption(\"Item No.\"), Rec.TableCaption(), ItemLedgerEntry.TableCaption());\n-\n- ValueEntry.SetRange(\"Item No.\", xRec.\"Item No.\");\n- ValueEntry.SetRange(\"Variant Code\", xRec.Code);\n- if not ValueEntry.IsEmpty() then\n- Error(CannotRenameItemErr, Rec.FieldCaption(\"Item No.\"), Rec.TableCaption(), ValueEntry.TableCaption());\n end;\n end;\n \n", "error_message": null, "metrics": {"execution_time": 217.0, "llm_duration": null, "turn_count": 19, "prompt_tokens": 692900, "completion_tokens": 8800, "tool_usage": {"powershell": 1, "grep": 10, "view": 8, "glob": 2, "report_intent": 1, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-214557__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al\nindex e3a6cf2f..7b0063cc 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Tracking/InventoryProfileOffsetting.Codeunit.al\n@@ -972,6 +972,41 @@ codeunit 99000854 \"Inventory Profile Offsetting\"\n OnAfterUnfoldItemTracking(ParentInvProfile, ChildInvProfile);\n end;\n \n+ local procedure FindSupplyByReservationForOTODemand(var SupplyInvtProfile: Record \"Inventory Profile\"; DemandInvtProfile: Record \"Inventory Profile\"; xSupplyInvtProfile: Record \"Inventory Profile\"): Boolean\n+ var\n+ DemandReservEntry: Record \"Reservation Entry\";\n+ SupplyReservEntry: Record \"Reservation Entry\";\n+ begin\n+ // For an OTO demand that has no direct supply match by Primary Order No.,\n+ // check if an existing OTO supply covers this demand through its reservation entries.\n+ // This handles the make-to-order multi-subassembly scenario where one production order\n+ // supplies multiple subassembly components, but only the first component's Primary Order No.\n+ // is stored on the supply inventory profile (see TransferBindings).\n+ DemandReservEntry.SetRange(\"Source Type\", DemandInvtProfile.\"Source Type\");\n+ DemandReservEntry.SetRange(\"Source Subtype\", DemandInvtProfile.\"Source Order Status\");\n+ DemandReservEntry.SetRange(\"Source ID\", DemandInvtProfile.\"Source ID\");\n+ DemandReservEntry.SetRange(\"Source Batch Name\", DemandInvtProfile.\"Source Batch Name\");\n+ DemandReservEntry.SetRange(\"Source Ref. No.\", DemandInvtProfile.\"Source Ref. No.\");\n+ DemandReservEntry.SetRange(\"Source Prod. Order Line\", DemandInvtProfile.\"Source Prod. Order Line\");\n+ DemandReservEntry.SetRange(Positive, false);\n+ DemandReservEntry.SetRange(\"Reservation Status\", DemandReservEntry.\"Reservation Status\"::Reservation);\n+ DemandReservEntry.SetRange(Binding, DemandReservEntry.Binding::\"Order-to-Order\");\n+ if DemandReservEntry.FindFirst() then\n+ if SupplyReservEntry.Get(DemandReservEntry.\"Entry No.\", true) then begin\n+ SupplyInvtProfile.CopyFilters(xSupplyInvtProfile);\n+ SupplyInvtProfile.SetRange(Binding, SupplyInvtProfile.Binding::\"Order-to-Order\");\n+ SupplyInvtProfile.SetRange(\"Source Type\", SupplyReservEntry.\"Source Type\");\n+ SupplyInvtProfile.SetRange(\"Source Order Status\", SupplyReservEntry.\"Source Subtype\");\n+ SupplyInvtProfile.SetRange(\"Source ID\", SupplyReservEntry.\"Source ID\");\n+ SupplyInvtProfile.SetRange(\"Source Batch Name\", SupplyReservEntry.\"Source Batch Name\");\n+ SupplyInvtProfile.SetRange(\"Source Prod. Order Line\", SupplyReservEntry.\"Source Prod. Order Line\");\n+ SupplyInvtProfile.SetFilter(\"Untracked Quantity\", '>0');\n+ if SupplyInvtProfile.FindFirst() then\n+ exit(true);\n+ end;\n+ exit(false);\n+ end;\n+\n local procedure MatchAttributes(var SupplyInvtProfile: Record \"Inventory Profile\"; var DemandInvtProfile: Record \"Inventory Profile\"; RespectPlanningParm: Boolean; DemandForAdditionalProfile: Boolean)\n var\n xDemandInvtProfile: Record \"Inventory Profile\";\n@@ -1004,6 +1039,8 @@ codeunit 99000854 \"Inventory Profile Offsetting\"\n \n SupplyInvtProfile.SetTrackingFilter(DemandInvtProfile);\n SupplyExists := SupplyInvtProfile.FindFirst();\n+ if not SupplyExists and (DemandInvtProfile.Binding = DemandInvtProfile.Binding::\"Order-to-Order\") then\n+ SupplyExists := FindSupplyByReservationForOTODemand(SupplyInvtProfile, DemandInvtProfile, xSupplyInvtProfile);\n SupplyIleInvtProfile.Copy(SupplyInvtProfile);\n OnBeforeMatchAttributesDemandApplicationLoop(SupplyInvtProfile, DemandInvtProfile, SupplyExists);\n while (DemandInvtProfile.\"Untracked Quantity\" > 0) and\n", "error_message": null, "metrics": {"execution_time": 1654.0, "llm_duration": null, "turn_count": 103, "prompt_tokens": 7200000, "completion_tokens": 93300, "tool_usage": {"view": 60, "grep": 27, "glob": 7, "powershell": 14, "report_intent": 1, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-214825__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\nindex 604bb915..f5c91bae 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\n@@ -70,17 +70,32 @@ codeunit 1018 \"Purchase Doc. From Job\"\n procedure CreateContractEntryNoFilter(JobTask: Record \"Job Task\")\n var\n JobPlanningLine: Record \"Job Planning Line\";\n- SelectionFilterMgt: Codeunit System.Text.SelectionFilterManagement;\n- RecRef: RecordRef;\n+ FirstEntryNo: Integer;\n+ LastEntryNo: Integer;\n begin\n JobPlanningLine.SetLoadFields(\"Job Contract Entry No.\");\n JobPlanningLine.SetRange(\"Job No.\", JobTask.\"Job No.\");\n JobPlanningLine.SetRange(\"Job Task No.\", JobTask.\"Job Task No.\");\n if JobPlanningLine.IsEmpty() then\n exit;\n+ // Sort by Job Contract Entry No. so ranges are always built in ascending order.\n+ // Using GetSelectionFilter (which iterates by primary key/Line No.) would produce\n+ // inverted ranges like \"16..15\" when lines are inserted before existing ones,\n+ // because new lines get higher Contract Entry Nos. despite lower Line Nos.\n+ JobPlanningLine.SetCurrentKey(\"Job Contract Entry No.\");\n JobPlanningLine.FindSet();\n- RecRef.GetTable(JobPlanningLine);\n- ContractEntryNoFilter := SelectionFilterMgt.GetSelectionFilter(RecRef, JobPlanningLine.FieldNo(\"Job Contract Entry No.\"));\n+ FirstEntryNo := JobPlanningLine.\"Job Contract Entry No.\";\n+ LastEntryNo := FirstEntryNo;\n+ while JobPlanningLine.Next() <> 0 do begin\n+ if JobPlanningLine.\"Job Contract Entry No.\" = LastEntryNo + 1 then\n+ LastEntryNo := JobPlanningLine.\"Job Contract Entry No.\"\n+ else begin\n+ AppendEntryNoRange(ContractEntryNoFilter, FirstEntryNo, LastEntryNo);\n+ FirstEntryNo := JobPlanningLine.\"Job Contract Entry No.\";\n+ LastEntryNo := FirstEntryNo;\n+ end;\n+ end;\n+ AppendEntryNoRange(ContractEntryNoFilter, FirstEntryNo, LastEntryNo);\n end;\n \n local procedure SetRequisitionLineFilters(var RequisitionLine: Record \"Requisition Line\"; Job: Record Job)\n@@ -126,4 +141,17 @@ codeunit 1018 \"Purchase Doc. From Job\"\n TempManufacturingUserTemplate.\"Create Assembly Order\" := TempManufacturingUserTemplate.\"Create Assembly Order\"::\" \";\n TempManufacturingUserTemplate.Insert();\n end;\n+\n+ local procedure AppendEntryNoRange(var Filter: Text; FirstNo: Integer; LastNo: Integer)\n+ var\n+ RangeText: Text;\n+ begin\n+ if FirstNo = LastNo then\n+ RangeText := Format(FirstNo)\n+ else\n+ RangeText := Format(FirstNo) + '..' + Format(LastNo);\n+ if Filter <> '' then\n+ Filter += '|';\n+ Filter += RangeText;\n+ end;\n }\n", "error_message": null, "metrics": {"execution_time": 178.0, "llm_duration": null, "turn_count": 13, "prompt_tokens": 482900, "completion_tokens": 8800, "tool_usage": {"grep": 6, "view": 5, "report_intent": 1, "edit": 3}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-214825__cf-2", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\nindex 604bb915..63d8eb88 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Job/PurchaseDocFromJob.Codeunit.al\n@@ -70,17 +70,14 @@ codeunit 1018 \"Purchase Doc. From Job\"\n procedure CreateContractEntryNoFilter(JobTask: Record \"Job Task\")\n var\n JobPlanningLine: Record \"Job Planning Line\";\n- SelectionFilterMgt: Codeunit System.Text.SelectionFilterManagement;\n- RecRef: RecordRef;\n begin\n JobPlanningLine.SetLoadFields(\"Job Contract Entry No.\");\n JobPlanningLine.SetRange(\"Job No.\", JobTask.\"Job No.\");\n JobPlanningLine.SetRange(\"Job Task No.\", JobTask.\"Job Task No.\");\n- if JobPlanningLine.IsEmpty() then\n- exit;\n- JobPlanningLine.FindSet();\n- RecRef.GetTable(JobPlanningLine);\n- ContractEntryNoFilter := SelectionFilterMgt.GetSelectionFilter(RecRef, JobPlanningLine.FieldNo(\"Job Contract Entry No.\"));\n+ if JobPlanningLine.FindSet() then\n+ repeat\n+ BuildFilter(ContractEntryNoFilter, Format(JobPlanningLine.\"Job Contract Entry No.\"));\n+ until JobPlanningLine.Next() = 0;\n end;\n \n local procedure SetRequisitionLineFilters(var RequisitionLine: Record \"Requisition Line\"; Job: Record Job)\n", "error_message": null, "metrics": {"execution_time": 245.0, "llm_duration": null, "turn_count": 18, "prompt_tokens": 602300, "completion_tokens": 9600, "tool_usage": {"grep": 9, "view": 8, "powershell": 1, "glob": 1, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-214926__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al b/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\nindex ebeb6ca1..14adf39e 100644\n--- a/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\n+++ b/App/Layers/W1/BaseApp/Sales/Customer/Customer.Table.al\n@@ -2345,9 +2345,6 @@ table 18 Customer\n \n local procedure GetTotalAmountLCYCommon(): Decimal\n var\n- [SecurityFiltering(SecurityFilter::Filtered)]\n- SalesLine: Record \"Sales Line\";\n- SalesOutstandingAmountFromShipment: Decimal;\n InvoicedPrepmtAmountLCY: Decimal;\n RetRcdNotInvAmountLCY: Decimal;\n AdditionalAmountLCY: Decimal;\n@@ -2359,18 +2356,25 @@ table 18 Customer\n if IsHandled then\n exit(AdditionalAmountLCY);\n \n- SalesOutstandingAmountFromShipment := SalesLine.OutstandingInvoiceAmountFromShipment(\"No.\");\n InvoicedPrepmtAmountLCY := GetInvoicedPrepmtAmountLCY();\n RetRcdNotInvAmountLCY := GetReturnRcdNotInvAmountLCY();\n \n TotalAmountLCY :=\n- \"Balance (LCY)\" + \"Outstanding Orders (LCY)\" + \"Shipped Not Invoiced (LCY)\" + \"Outstanding Invoices (LCY)\" +\n- SalesOutstandingAmountFromShipment - InvoicedPrepmtAmountLCY - RetRcdNotInvAmountLCY + AdditionalAmountLCY;\n+ \"Balance (LCY)\" + \"Outstanding Orders (LCY)\" + \"Shipped Not Invoiced (LCY)\" + \"Outstanding Invoices (LCY)\" -\n+ GetShippedOutstandingInvoicesLCY() - InvoicedPrepmtAmountLCY - RetRcdNotInvAmountLCY + AdditionalAmountLCY;\n \n OnAfterGetTotalAmountLCYCommon(Rec, TotalAmountLCY);\n exit(TotalAmountLCY);\n end;\n \n+ procedure GetShippedOutstandingInvoicesLCY(): Decimal\n+ var\n+ [SecurityFiltering(SecurityFilter::Filtered)]\n+ SalesLine: Record \"Sales Line\";\n+ begin\n+ exit(SalesLine.OutstandingInvoiceAmountFromShipment(\"No.\"));\n+ end;\n+\n procedure GetSalesLCY() SalesLCY: Decimal\n var\n CustomerSalesYTD: Record Customer;\n", "error_message": null, "metrics": {"execution_time": 144.0, "llm_duration": null, "turn_count": 11, "prompt_tokens": 270300, "completion_tokens": 6500, "tool_usage": {"powershell": 1, "stop_powershell": 1, "grep": 4, "view": 5, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-215972__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\nindex 9ab054c5..5280b27e 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\n@@ -1595,6 +1595,10 @@ table 5741 \"Transfer Line\"\n Clear(Reservation);\n OptionNumber := StrMenu(Text011);\n if OptionNumber > 0 then begin\n+ if Enum::\"Transfer Direction\".FromInteger(OptionNumber - 1) = Enum::\"Transfer Direction\"::Outbound then begin\n+ GetItem();\n+ Item.TestField(Reserve);\n+ end;\n Reservation.SetReservSource(Rec, Enum::\"Transfer Direction\".FromInteger(OptionNumber - 1));\n Reservation.RunModal();\n end;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137140'\nCodeunit 137140 SCM Inventory Documents\n Testfunction ReservationShouldNotPossibleOnTransferOrderIfItemReserveSetAsNever Failure (5.497 seconds)\n Error:\n Assert.ExpectedErrorCode failed. Expected: TestField. Actual: MissingUIHandler. Actual error message: Unhandled UI: StrMenu Outbound,Inbound.\n Call Stack:\n Assert(CodeUnit 130000).ExpectedErrorCode line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"SCM Inventory Documents\"(CodeUnit 137140).ReservationShouldNotPossibleOnTransferOrderIfItemReserveSetAsNever line 33 - Tests-SCM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0", "metrics": {"execution_time": 470.0, "llm_duration": null, "turn_count": 55, "prompt_tokens": 2400000, "completion_tokens": 18900, "tool_usage": {"grep": 19, "glob": 7, "view": 26, "powershell": 20, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-215972__cf-2", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\nindex 9ab054c5..399c7345 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/TransferLine.Table.al\n@@ -1595,6 +1595,10 @@ table 5741 \"Transfer Line\"\n Clear(Reservation);\n OptionNumber := StrMenu(Text011);\n if OptionNumber > 0 then begin\n+ if OptionNumber = 1 then begin\n+ GetItem();\n+ Item.TestField(Reserve);\n+ end;\n Reservation.SetReservSource(Rec, Enum::\"Transfer Direction\".FromInteger(OptionNumber - 1));\n Reservation.RunModal();\n end;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '137140'\nCodeunit 137140 SCM Inventory Documents\n Testfunction ReservationShouldNotPossibleOnTransferOrderIfItemReserveSetAsNever Failure (7.08 seconds)\n Error:\n Assert.ExpectedErrorCode failed. Expected: TestField. Actual: MissingUIHandler. Actual error message: Unhandled UI: StrMenu Outbound,Inbound.\n Call Stack:\n Assert(CodeUnit 130000).ExpectedErrorCode line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"SCM Inventory Documents\"(CodeUnit 137140).ReservationShouldNotPossibleOnTransferOrderIfItemReserveSetAsNever line 33 - Tests-SCM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0", "metrics": {"execution_time": 357.0, "llm_duration": null, "turn_count": 37, "prompt_tokens": 2600000, "completion_tokens": 15300, "tool_usage": {"grep": 29, "view": 15, "powershell": 3, "glob": 1, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-216572__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al\nindex 130b3e0f..5fa8ef5d 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/GenJnlAllocation.Table.al\n@@ -669,6 +669,7 @@ table 221 \"Gen. Jnl. Allocation\"\n begin\n Rec.Validate(\"Account No.\", AllocAccountDistribution.\"Destination Account Number\");\n Rec.Validate(\"Allocation %\", AllocAccountDistribution.Percent);\n+ Rec.Validate(\"Dimension Set ID\", AllocAccountDistribution.\"Dimension Set ID\");\n end;\n \n local procedure CheckGLAccount(var GLAccount: Record \"G/L Account\")\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134227'\nCodeunit 134227 ERM PostRecurringJournal\n Testfunction CheckDimensionOfRecurringJournalImportAllocationFromAllocationAccount Failure (4.896 seconds)\n Error:\n Assert.AreEqual failed. Expected:<0> (Integer). Actual:<19> (Integer). Allocation dimension is not correct.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"ERM PostRecurringJournal\"(CodeUnit 134227).VerifyGenJnlAllocationDimension line 7 - Tests-ERM by Microsoft version 27.0.0.0\n \"ERM PostRecurringJournal\"(CodeUnit 134227).CheckDimensionOfRecurringJournalImportAllocationFromAllocationAccount line 36 - Tests-ERM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0", "metrics": {"execution_time": 386.0, "llm_duration": null, "turn_count": 30, "prompt_tokens": 1300000, "completion_tokens": 16900, "tool_usage": {"grep": 11, "view": 16, "powershell": 2, "glob": 2, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-216918__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\nindex d541dd08..62358133 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\n@@ -451,6 +451,7 @@ codeunit 1004 \"Job Transfer Line\"\n Job: Record Job;\n JobTask: Record \"Job Task\";\n NonDeductibleVAT: Codeunit \"Non-Deductible VAT\";\n+ NonDeductibleVATAmtJobCurr: Decimal;\n begin\n OnBeforeFromGenJnlLineToJnlLine(JobJnlLine, GenJnlLine);\n \n@@ -498,18 +499,32 @@ codeunit 1004 \"Job Transfer Line\"\n JobJnlLine.\"Total Cost (LCY)\" := GenJnlLine.\"Job Total Cost (LCY)\";\n JobJnlLine.\"Total Cost\" := GenJnlLine.\"Job Total Cost\";\n \n- if NonDeductibleVAT.UseNonDeductibleVATAmountForJobCost() then\n+ if NonDeductibleVAT.UseNonDeductibleVATAmountForJobCost() then begin\n+ if JobJnlLine.\"Currency Code\" = '' then\n+ NonDeductibleVATAmtJobCurr := GenJnlLine.\"Non-Deductible VAT Amount LCY\"\n+ else begin\n+ GetCurrencyRounding(JobJnlLine.\"Currency Code\");\n+ NonDeductibleVATAmtJobCurr :=\n+ Round(\n+ CurrencyExchRate.ExchangeAmtLCYToFCY(\n+ GenJnlLine.\"Posting Date\",\n+ JobJnlLine.\"Currency Code\",\n+ GenJnlLine.\"Non-Deductible VAT Amount LCY\",\n+ JobJnlLine.\"Currency Factor\"),\n+ Currency.\"Amount Rounding Precision\");\n+ end;\n if JobJnlLine.\"Unit Cost\" > 0 then begin\n JobJnlLine.\"Unit Cost (LCY)\" += Abs(Round(GenJnlLine.\"Non-Deductible VAT Amount LCY\" / JobJnlLine.Quantity));\n- JobJnlLine.\"Unit Cost\" += Abs(Round(GenJnlLine.\"Non-Deductible VAT Amount\" / JobJnlLine.Quantity));\n+ JobJnlLine.\"Unit Cost\" += Abs(Round(NonDeductibleVATAmtJobCurr / JobJnlLine.Quantity));\n JobJnlLine.\"Total Cost (LCY)\" += Abs(GenJnlLine.\"Non-Deductible VAT Amount LCY\");\n- JobJnlLine.\"Total Cost\" += Abs(GenJnlLine.\"Non-Deductible VAT Amount\");\n+ JobJnlLine.\"Total Cost\" += Abs(NonDeductibleVATAmtJobCurr);\n end else begin\n JobJnlLine.\"Unit Cost (LCY)\" += Round(GenJnlLine.\"Non-Deductible VAT Amount LCY\" / JobJnlLine.Quantity);\n- JobJnlLine.\"Unit Cost\" += Round(GenJnlLine.\"Non-Deductible VAT Amount\" / JobJnlLine.Quantity);\n+ JobJnlLine.\"Unit Cost\" += Round(NonDeductibleVATAmtJobCurr / JobJnlLine.Quantity);\n JobJnlLine.\"Total Cost (LCY)\" += GenJnlLine.\"Non-Deductible VAT Amount LCY\";\n- JobJnlLine.\"Total Cost\" += GenJnlLine.\"Non-Deductible VAT Amount\";\n+ JobJnlLine.\"Total Cost\" += NonDeductibleVATAmtJobCurr;\n end;\n+ end;\n \n JobJnlLine.\"Unit Price (LCY)\" := GenJnlLine.\"Job Unit Price (LCY)\";\n JobJnlLine.\"Unit Price\" := GenJnlLine.\"Job Unit Price\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134284'\nCodeunit 134284 Non Ded. VAT Misc.\n Testfunction JobJnlLineWithNonDeductNormalVATInFCYFromGenJnlLine Failure (4.193 seconds)\n Error:\n Assert.AreEqual failed. Expected:<5.7> (Decimal). Actual:<5.23> (Decimal). Unit Cost (LCY) should not include Non-Deductible VAT when Job has no currency.\n Call Stack:\n Assert(CodeUnit 130000).AreEqual line 3 - Tests-TestLibraries by Microsoft version 27.0.0.0\n \"Non Ded. VAT Misc.\"(CodeUnit 134284).JobJnlLineWithNonDeductNormalVATInFCYFromGenJnlLine line 32 - Tests-VAT by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0", "metrics": {"execution_time": 302.0, "llm_duration": null, "turn_count": 16, "prompt_tokens": 572200, "completion_tokens": 20500, "tool_usage": {"view": 13, "glob": 1, "grep": 8, "report_intent": 1, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-216918__cf-2", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\nindex d541dd08..88354aca 100644\n--- a/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Projects/Project/Journal/JobTransferLine.Codeunit.al\n@@ -451,6 +451,7 @@ codeunit 1004 \"Job Transfer Line\"\n Job: Record Job;\n JobTask: Record \"Job Task\";\n NonDeductibleVAT: Codeunit \"Non-Deductible VAT\";\n+ NonDeductibleVATAmtInJobCurrency: Decimal;\n begin\n OnBeforeFromGenJnlLineToJnlLine(JobJnlLine, GenJnlLine);\n \n@@ -499,16 +500,25 @@ codeunit 1004 \"Job Transfer Line\"\n JobJnlLine.\"Total Cost\" := GenJnlLine.\"Job Total Cost\";\n \n if NonDeductibleVAT.UseNonDeductibleVATAmountForJobCost() then\n- if JobJnlLine.\"Unit Cost\" > 0 then begin\n- JobJnlLine.\"Unit Cost (LCY)\" += Abs(Round(GenJnlLine.\"Non-Deductible VAT Amount LCY\" / JobJnlLine.Quantity));\n- JobJnlLine.\"Unit Cost\" += Abs(Round(GenJnlLine.\"Non-Deductible VAT Amount\" / JobJnlLine.Quantity));\n- JobJnlLine.\"Total Cost (LCY)\" += Abs(GenJnlLine.\"Non-Deductible VAT Amount LCY\");\n- JobJnlLine.\"Total Cost\" += Abs(GenJnlLine.\"Non-Deductible VAT Amount\");\n- end else begin\n- JobJnlLine.\"Unit Cost (LCY)\" += Round(GenJnlLine.\"Non-Deductible VAT Amount LCY\" / JobJnlLine.Quantity);\n- JobJnlLine.\"Unit Cost\" += Round(GenJnlLine.\"Non-Deductible VAT Amount\" / JobJnlLine.Quantity);\n- JobJnlLine.\"Total Cost (LCY)\" += GenJnlLine.\"Non-Deductible VAT Amount LCY\";\n- JobJnlLine.\"Total Cost\" += GenJnlLine.\"Non-Deductible VAT Amount\";\n+ if JobJnlLine.Quantity <> 0 then begin\n+ if JobJnlLine.\"Currency Code\" = '' then\n+ NonDeductibleVATAmtInJobCurrency := GenJnlLine.\"Non-Deductible VAT Amount LCY\"\n+ else\n+ NonDeductibleVATAmtInJobCurrency :=\n+ CurrencyExchRate.ExchangeAmtLCYToFCY(\n+ JobJnlLine.\"Posting Date\", JobJnlLine.\"Currency Code\",\n+ GenJnlLine.\"Non-Deductible VAT Amount LCY\", JobJnlLine.\"Currency Factor\");\n+ if JobJnlLine.\"Unit Cost\" > 0 then begin\n+ JobJnlLine.\"Unit Cost (LCY)\" += Abs(Round(GenJnlLine.\"Non-Deductible VAT Amount LCY\" / JobJnlLine.Quantity));\n+ JobJnlLine.\"Unit Cost\" += Abs(Round(NonDeductibleVATAmtInJobCurrency / JobJnlLine.Quantity));\n+ JobJnlLine.\"Total Cost (LCY)\" += Abs(GenJnlLine.\"Non-Deductible VAT Amount LCY\");\n+ JobJnlLine.\"Total Cost\" += Abs(NonDeductibleVATAmtInJobCurrency);\n+ end else begin\n+ JobJnlLine.\"Unit Cost (LCY)\" += Round(GenJnlLine.\"Non-Deductible VAT Amount LCY\" / JobJnlLine.Quantity);\n+ JobJnlLine.\"Unit Cost\" += Round(NonDeductibleVATAmtInJobCurrency / JobJnlLine.Quantity);\n+ JobJnlLine.\"Total Cost (LCY)\" += GenJnlLine.\"Non-Deductible VAT Amount LCY\";\n+ JobJnlLine.\"Total Cost\" += NonDeductibleVATAmtInJobCurrency;\n+ end;\n end;\n \n JobJnlLine.\"Unit Price (LCY)\" := GenJnlLine.\"Job Unit Price (LCY)\";\n", "error_message": null, "metrics": {"execution_time": 270.0, "llm_duration": null, "turn_count": 24, "prompt_tokens": 818000, "completion_tokens": 16600, "tool_usage": {"view": 16, "grep": 13, "report_intent": 1, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-217104__cf-1", "project": "AutomaticAccountCodes", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al b/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\nindex 0e4bcfe3..169e8c64 100644\n--- a/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\n+++ b/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\n@@ -72,6 +72,7 @@ codeunit 4850 \"AA Codes Posting Helper\"\n NoOfAutoAccounts: Decimal;\n TotalAmount: Decimal;\n TotalAltAmount: Decimal;\n+ TotalAmountLCY: Decimal;\n SourceCurrBaseAmount: Decimal;\n AccLine: Integer;\n begin\n@@ -117,10 +118,13 @@ codeunit 4850 \"AA Codes Posting Helper\"\n AccLine := AccLine + 1;\n TotalAmount := TotalAmount + GenJnlLine2.Amount;\n TotalAltAmount := TotalAltAmount + GenJnlLine2.\"Source Currency Amount\";\n+ TotalAmountLCY := TotalAmountLCY + GenJnlLine2.\"Amount (LCY)\";\n if (AccLine = NoOfAutoAccounts) and (TotalAmount <> 0) then\n GenJnlLine2.Validate(Amount, GenJnlLine2.Amount - TotalAmount);\n if (AccLine = NoOfAutoAccounts) and (TotalAltAmount <> 0) then\n GenJnlLine2.Validate(\"Source Currency Amount\", GenJnlLine2.\"Source Currency Amount\" - TotalAltAmount);\n+ if (AccLine = NoOfAutoAccounts) and (TotalAmountLCY <> 0) then\n+ GenJnlLine2.\"Amount (LCY)\" := GenJnlLine2.\"Amount (LCY)\" - TotalAmountLCY;\n GenJnlCheckLine.RunCheck(GenJnlLine2);\n \n sender.InitGLEntry(GenJnlLine2, GLEntry,\n", "error_message": null, "metrics": {"execution_time": 153.0, "llm_duration": null, "turn_count": 10, "prompt_tokens": 269200, "completion_tokens": 10200, "tool_usage": {"view": 5, "glob": 2, "report_intent": 1, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-217104__cf-2", "project": "AutomaticAccountCodes", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al b/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\nindex 0e4bcfe3..021fba3b 100644\n--- a/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\n+++ b/App/Apps/W1/AutomaticAccountCodes/app/src/Codeunits/AACodesPostingHelper.Codeunit.al\n@@ -72,6 +72,7 @@ codeunit 4850 \"AA Codes Posting Helper\"\n NoOfAutoAccounts: Decimal;\n TotalAmount: Decimal;\n TotalAltAmount: Decimal;\n+ TotalAmountLCY: Decimal;\n SourceCurrBaseAmount: Decimal;\n AccLine: Integer;\n begin\n@@ -121,6 +122,9 @@ codeunit 4850 \"AA Codes Posting Helper\"\n GenJnlLine2.Validate(Amount, GenJnlLine2.Amount - TotalAmount);\n if (AccLine = NoOfAutoAccounts) and (TotalAltAmount <> 0) then\n GenJnlLine2.Validate(\"Source Currency Amount\", GenJnlLine2.\"Source Currency Amount\" - TotalAltAmount);\n+ TotalAmountLCY := TotalAmountLCY + GenJnlLine2.\"Amount (LCY)\";\n+ if (AccLine = NoOfAutoAccounts) and (TotalAmountLCY <> 0) then\n+ GenJnlLine2.\"Amount (LCY)\" := GenJnlLine2.\"Amount (LCY)\" - TotalAmountLCY;\n GenJnlCheckLine.RunCheck(GenJnlLine2);\n \n sender.InitGLEntry(GenJnlLine2, GLEntry,\n", "error_message": null, "metrics": {"execution_time": 196.0, "llm_duration": null, "turn_count": 8, "prompt_tokens": 202300, "completion_tokens": 11300, "tool_usage": {"glob": 4, "view": 3, "report_intent": 1, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-217797__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Availability/CalcItemAvailability.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Availability/CalcItemAvailability.Codeunit.al\nindex 21992d4e..3d24b5d5 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Availability/CalcItemAvailability.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Availability/CalcItemAvailability.Codeunit.al\n@@ -906,6 +906,10 @@ codeunit 5530 \"Calc. Item Availability\"\n RecRef.SetTable(RequisitionLine);\n ReqWkshTemplate.Get(RequisitionLine.\"Worksheet Template Name\");\n ReqWkshTemplate.TestField(\"Page ID\");\n+ RequisitionLine.FilterGroup := 2;\n+ RequisitionLine.SetRange(\"Worksheet Template Name\", ReqWkshTemplate.Name);\n+ RequisitionLine.FilterGroup := 0;\n+ RequisitionLine.\"Worksheet Template Name\" := '';\n PAGE.RunModal(ReqWkshTemplate.\"Page ID\", RequisitionLine);\n end;\n Database::\"Planning Component\":\n", "error_message": null, "metrics": {"execution_time": 218.0, "llm_duration": null, "turn_count": 18, "prompt_tokens": 748700, "completion_tokens": 11200, "tool_usage": {"grep": 9, "view": 8, "powershell": 1, "glob": 1, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-217974__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\nindex 780de254..452e8278 100644\n--- a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n@@ -747,6 +747,7 @@ codeunit 6620 \"Copy Document Mgt.\"\n begin\n FromSalesHeader.CalcFields(\"Work Description\");\n ToSalesHeader.TransferFields(FromSalesHeader, false);\n+ UpdateShipToAddress(ToSalesHeader);\n UpdateSalesHeaderWhenCopyFromSalesHeader(ToSalesHeader, OldSalesHeader, FromDocType);\n SetReceivedFromCountryCode(FromDocType, ToSalesHeader);\n OnAfterCopySalesHeader(ToSalesHeader, OldSalesHeader, FromSalesHeader, FromDocType);\n", "error_message": null, "metrics": {"execution_time": 114.0, "llm_duration": null, "turn_count": 18, "prompt_tokens": 418700, "completion_tokens": 3900, "tool_usage": {"glob": 2, "grep": 9, "view": 6, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-217974__cf-2", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\nindex 780de254..833fb007 100644\n--- a/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Utilities/CopyDocumentMgt.Codeunit.al\n@@ -748,6 +748,7 @@ codeunit 6620 \"Copy Document Mgt.\"\n FromSalesHeader.CalcFields(\"Work Description\");\n ToSalesHeader.TransferFields(FromSalesHeader, false);\n UpdateSalesHeaderWhenCopyFromSalesHeader(ToSalesHeader, OldSalesHeader, FromDocType);\n+ UpdateShipToAddress(ToSalesHeader);\n SetReceivedFromCountryCode(FromDocType, ToSalesHeader);\n OnAfterCopySalesHeader(ToSalesHeader, OldSalesHeader, FromSalesHeader, FromDocType);\n end;\n", "error_message": null, "metrics": {"execution_time": 111.0, "llm_duration": null, "turn_count": 10, "prompt_tokens": 259500, "completion_tokens": 3900, "tool_usage": {"glob": 1, "grep": 5, "view": 6, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-218062__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Availability/WarehouseAvailabilityMgt.Codeunit.al b/App/Layers/W1/BaseApp/Warehouse/Availability/WarehouseAvailabilityMgt.Codeunit.al\nindex 0b63877a..4baa2128 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Availability/WarehouseAvailabilityMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Availability/WarehouseAvailabilityMgt.Codeunit.al\n@@ -840,9 +840,7 @@ codeunit 7314 \"Warehouse Availability Mgt.\"\n var\n Location: Record Location;\n Item: Record Item;\n- BinContent: Record \"Bin Content\";\n TempWhseActivLine: Record \"Warehouse Activity Line\" temporary;\n- TypeHelper: Codeunit \"Type Helper\";\n QtyReservedOnPickShip: Decimal;\n QtyReservedForCurrLine: Decimal;\n begin\n@@ -854,21 +852,7 @@ codeunit 7314 \"Warehouse Availability Mgt.\"\n \n if Item.Get(WhseWorksheetLine.\"Item No.\") then;\n \n- if Location.\"Bin Mandatory\" then begin\n- BinContent.SetRange(\"Location Code\", WhseWorksheetLine.\"Location Code\");\n- BinContent.SetRange(\"Item No.\", WhseWorksheetLine.\"Item No.\");\n- BinContent.SetRange(\"Variant Code\", WhseWorksheetLine.\"Variant Code\");\n- if BinContent.FindSet() then\n- repeat\n- AvailQtyBase += TypeHelper.Maximum(0, BinContent.CalcQtyAvailToPick(0));\n- until BinContent.Next() = 0;\n-\n- Item.SetRange(\"Location Filter\", WhseWorksheetLine.\"Location Code\");\n- Item.SetRange(\"Variant Filter\", WhseWorksheetLine.\"Variant Code\");\n- Item.CalcFields(\"Reserved Qty. on Inventory\");\n- AvailQtyBase := AvailQtyBase - Item.\"Reserved Qty. on Inventory\" - CalcQtyBasePickedNotShippedOnWarehouseShipmentLine(WhseWorksheetLine, Item);\n- end else\n- AvailQtyBase := CalcInvtAvailQty(Item, Location, WhseWorksheetLine.\"Variant Code\", TempWhseActivLine);\n+ AvailQtyBase := CalcInvtAvailQty(Item, Location, WhseWorksheetLine.\"Variant Code\", TempWhseActivLine);\n \n if Location.\"Require Pick\" then\n QtyReservedOnPickShip := CalcReservQtyOnPicksShips(WhseWorksheetLine.\"Location Code\", WhseWorksheetLine.\"Item No.\", WhseWorksheetLine.\"Variant Code\", TempWhseActivLine);\n@@ -881,18 +865,6 @@ codeunit 7314 \"Warehouse Availability Mgt.\"\n AvailQtyBase := AvailQtyBase + QtyReservedOnPickShip + QtyReservedForCurrLine;\n end;\n \n- local procedure CalcQtyBasePickedNotShippedOnWarehouseShipmentLine(WhseWorksheetLine: Record \"Whse. Worksheet Line\"; Item: Record Item): Decimal\n- var\n- WarehouseShipmentLine: Record \"Warehouse Shipment Line\";\n- begin\n- WarehouseShipmentLine.SetRange(\"Item No.\", Item.\"No.\");\n- WarehouseShipmentLine.SetRange(\"Location Code\", WhseWorksheetLine.\"Location Code\");\n- if WhseWorksheetLine.\"Variant Code\" <> '' then\n- WarehouseShipmentLine.SetRange(\"Variant Code\", WhseWorksheetLine.\"Variant Code\");\n- WarehouseShipmentLine.CalcSums(\"Qty. Picked (Base)\", \"Qty. Shipped (Base)\");\n- exit(WarehouseShipmentLine.\"Qty. Picked (Base)\" - WarehouseShipmentLine.\"Qty. Shipped (Base)\")\n- end;\n-\n [IntegrationEvent(false, false)]\n local procedure OnAfterCalcQtyPicked(var Item: Record Item; var QtyPicked: Decimal; Location: Record Location)\n begin\n", "error_message": null, "metrics": {"execution_time": 2987.0, "llm_duration": null, "turn_count": 116, "prompt_tokens": 8100000, "completion_tokens": 158000, "tool_usage": {"glob": 9, "view": 61, "grep": 60, "powershell": 7, "report_intent": 2, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-218323__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al b/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al\nindex 88068be0..e2970141 100644\n--- a/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al\n+++ b/App/Layers/W1/BaseApp/Finance/VAT/Reporting/CalcandPostVATSettlement.Report.al\n@@ -648,6 +648,44 @@ report 20 \"Calc. and Post VAT Settlement\"\n MultiLine = true;\n ToolTip = 'Specifies if the reported amounts are shown in the additional reporting currency.';\n }\n+ field(JnlTemplateName; GenJnlLineReq.\"Journal Template Name\")\n+ {\n+ ApplicationArea = Basic, Suite;\n+ Caption = 'Journal Template Name';\n+ TableRelation = \"Gen. Journal Template\";\n+ ToolTip = 'Specifies the name of the journal template that is used for the posting.';\n+ Visible = IsJournalTemplNameVisible;\n+\n+ trigger OnValidate()\n+ begin\n+ GenJnlLineReq.\"Journal Batch Name\" := '';\n+ end;\n+ }\n+ field(JnlBatchName; GenJnlLineReq.\"Journal Batch Name\")\n+ {\n+ ApplicationArea = Basic, Suite;\n+ Caption = 'Journal Batch Name';\n+ Lookup = true;\n+ ToolTip = 'Specifies the name of the journal batch that is used for the posting.';\n+ Visible = IsJournalTemplNameVisible;\n+\n+ trigger OnLookup(var Text: Text): Boolean\n+ var\n+ GenJnlManagement: Codeunit GenJnlManagement;\n+ begin\n+ GenJnlManagement.SetJnlBatchName(GenJnlLineReq);\n+ if GenJnlLineReq.\"Journal Batch Name\" <> '' then\n+ GenJnlBatch.Get(GenJnlLineReq.\"Journal Template Name\", GenJnlLineReq.\"Journal Batch Name\");\n+ end;\n+\n+ trigger OnValidate()\n+ begin\n+ if GenJnlLineReq.\"Journal Batch Name\" <> '' then begin\n+ GenJnlLineReq.TestField(\"Journal Template Name\");\n+ GenJnlBatch.Get(GenJnlLineReq.\"Journal Template Name\", GenJnlLineReq.\"Journal Batch Name\");\n+ end;\n+ end;\n+ }\n field(\"Country/Region Filter\"; CountryRegionFilter)\n {\n ApplicationArea = Basic, Suite;\n@@ -676,6 +714,12 @@ report 20 \"Calc. and Post VAT Settlement\"\n actions\n {\n }\n+\n+ trigger OnOpenPage()\n+ begin\n+ GLSetup.Get();\n+ IsJournalTemplNameVisible := GLSetup.\"Journal Templ. Name Mandatory\";\n+ end;\n }\n \n labels\n@@ -714,6 +758,15 @@ report 20 \"Calc. and Post VAT Settlement\"\n if not ConfirmManagement.GetResponseOrDefault(Text003, true) then\n CurrReport.Quit();\n \n+ GLSetup.Get();\n+ if GLSetup.\"Journal Templ. Name Mandatory\" then begin\n+ if GenJnlLineReq.\"Journal Template Name\" = '' then\n+ Error(JnlTemplNameMandatoryErr, GenJnlLineReq.FieldCaption(\"Journal Template Name\"));\n+ if GenJnlLineReq.\"Journal Batch Name\" = '' then\n+ Error(JnlTemplNameMandatoryErr, GenJnlLineReq.FieldCaption(\"Journal Batch Name\"));\n+ GenJnlBatch.Get(GenJnlLineReq.\"Journal Template Name\", GenJnlLineReq.\"Journal Batch Name\");\n+ end;\n+\n VATPostingSetupFilter := \"VAT Posting Setup\".GetFilters();\n CreateVATDateFilter();\n Clear(GenJnlPostLine);\n@@ -755,6 +808,9 @@ report 20 \"Calc. and Post VAT Settlement\"\n HeaderText: Text[30];\n CountryRegionFilter: Text;\n IsVATDateEnabled: Boolean;\n+ GenJnlLineReq: Record \"Gen. Journal Line\";\n+ GenJnlBatch: Record \"Gen. Journal Batch\";\n+ IsJournalTemplNameVisible: Boolean;\n #pragma warning disable AA0074\n Text000: Label 'Enter the posting date.';\n Text001: Label 'Enter the document no.';\n@@ -783,6 +839,7 @@ report 20 \"Calc. and Post VAT Settlement\"\n TotalCaptionLbl: Label 'Total';\n SettlementCaptionLbl: Label 'Settlement';\n VATDateLbl: Label 'VAT Date';\n+ JnlTemplNameMandatoryErr: Label '%1 must be entered.', Comment = '%1 = field caption';\n \n \n protected var\n@@ -820,6 +877,13 @@ report 20 \"Calc. and Post VAT Settlement\"\n UseAmtsInAddCurr := NewUseAmtsInAddCurr;\n end;\n \n+ procedure SetGenJnlBatch(NewGenJnlBatch: Record \"Gen. Journal Batch\")\n+ begin\n+ GenJnlBatch := NewGenJnlBatch;\n+ GenJnlLineReq.\"Journal Template Name\" := GenJnlBatch.\"Journal Template Name\";\n+ GenJnlLineReq.\"Journal Batch Name\" := GenJnlBatch.Name;\n+ end;\n+\n local procedure CreateVATDateFilter()\n begin\n if EnteredEndDate = 0D then\n@@ -848,6 +912,8 @@ report 20 \"Calc. and Post VAT Settlement\"\n DimMgt.GetRecDefaultDimID(\n GenJnlLine, 0, DefaultDimSource, GenJnlLine.\"Source Code\",\n GenJnlLine.\"Shortcut Dimension 1 Code\", GenJnlLine.\"Shortcut Dimension 2 Code\", 0, 0);\n+ GenJnlLine.\"Journal Template Name\" := GenJnlLineReq.\"Journal Template Name\";\n+ GenJnlLine.\"Journal Batch Name\" := GenJnlLineReq.\"Journal Batch Name\";\n OnPostGenJnlLineOnBeforeGenJnlPostLineRun(GenJnlLine);\n GenJnlPostLine.Run(GenJnlLine);\n end;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134992'\nCodeunit 134992 ERM Financial Reports IV\n Testfunction PostVATSettlementWhenJournalTemplateNameMandatoryIsEnabled Failure (9.824 seconds)\n Error:\n Journal Template Name must be entered.\n Call Stack:\n \"Calc. and Post VAT Settlement\"(Report 20).OnPreReport(Trigger) line 28 - Base Application by Microsoft version 27.0.0.0\n \"ERM Financial Reports IV\"(CodeUnit 134992).SaveCalcAndPostVATSettlementReport line 12 - Tests-ERM by Microsoft version 27.0.0.0\n \"ERM Financial Reports IV\"(CodeUnit 134992).PostVATSettlementWhenJournalTemplateNameMandatoryIsEnabled line 35 - Tests-ERM by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0", "metrics": {"execution_time": 382.0, "llm_duration": null, "turn_count": 39, "prompt_tokens": 2500000, "completion_tokens": 16200, "tool_usage": {"grep": 13, "view": 17, "powershell": 4, "report_intent": 1, "edit": 7}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-218786__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al\nindex 0b806569..e597092b 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WarehouseActivityLine.Table.al\n@@ -3128,7 +3128,7 @@ table 5767 \"Warehouse Activity Line\"\n WhseActivityLine.SetLoadFields(\"Activity Type\", \"No.\", \"Line No.\", \"Item No.\", \"Variant Code\", \"Location Code\", \"Action Type\", Quantity, \"Lot No.\", \"Serial No.\", \"Source No.\", \"Source Line No.\", \"Source Document\");\n WhseActivityLine.SetRange(\"Activity Type\", FromWhseActivityLine.\"Activity Type\");\n WhseActivityLine.SetRange(\"No.\", FromWhseActivityLine.\"No.\");\n- WhseActivityLine.SetFilter(\"Line No.\", '<>%1', FromWhseActivityLine.\"Line No.\");\n+ WhseActivityLine.SetFilter(\"Line No.\", '>%1', FromWhseActivityLine.\"Line No.\");\n WhseActivityLine.SetRange(\"Item No.\", FromWhseActivityLine.\"Item No.\");\n WhseActivityLine.SetRange(\"Variant Code\", FromWhseActivityLine.\"Variant Code\");\n WhseActivityLine.SetRange(\"Location Code\", FromWhseActivityLine.\"Location Code\");\n", "error_message": null, "metrics": {"execution_time": 108.0, "llm_duration": null, "turn_count": 12, "prompt_tokens": 249300, "completion_tokens": 4400, "tool_usage": {"grep": 4, "glob": 3, "view": 5, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-220036__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/IssuedReminder.Page.al b/App/Layers/W1/BaseApp/Sales/Reminder/IssuedReminder.Page.al\nindex c15cb6cf..9aa285e8 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/IssuedReminder.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/IssuedReminder.Page.al\n@@ -435,6 +435,9 @@ page 438 \"Issued Reminder\"\n Customer: Record Customer;\n begin\n Customer.GetPrimaryContact(Rec.\"Customer No.\", PrimaryContact);\n+ if PrimaryContact.\"E-Mail\" = '' then\n+ if Customer.Get(Rec.\"Customer No.\") then\n+ PrimaryContact.\"E-Mail\" := Customer.\"E-Mail\";\n end;\n \n var\ndiff --git a/App/Layers/W1/BaseApp/Sales/Reminder/Reminder.Page.al b/App/Layers/W1/BaseApp/Sales/Reminder/Reminder.Page.al\nindex 8810e93d..321f46b7 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/Reminder.Page.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/Reminder.Page.al\n@@ -544,6 +544,9 @@ page 434 Reminder\n trigger OnAfterGetRecord()\n begin\n ContactCustomer.GetPrimaryContact(Rec.\"Customer No.\", PrimaryContact);\n+ if PrimaryContact.\"E-Mail\" = '' then\n+ if ContactCustomer.Get(Rec.\"Customer No.\") then\n+ PrimaryContact.\"E-Mail\" := ContactCustomer.\"E-Mail\";\n end;\n \n var\n", "error_message": null, "metrics": {"execution_time": 183.0, "llm_duration": null, "turn_count": 21, "prompt_tokens": 718700, "completion_tokens": 7600, "tool_usage": {"grep": 15, "glob": 1, "view": 13, "report_intent": 1, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-220314__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al b/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\nindex fb9253b7..ad41ac36 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Journal/ItemJournalLine.Table.al\n@@ -76,6 +76,7 @@ table 83 \"Item Journal Line\"\n if \"Item No.\" <> xRec.\"Item No.\" then begin\n \"Variant Code\" := '';\n \"Bin Code\" := '';\n+ \"Unit of Measure Code\" := '';\n if CurrFieldNo <> 0 then begin\n GetItem();\n if Item.IsInventoriableType() then\n", "error_message": null, "metrics": {"execution_time": 91.0, "llm_duration": null, "turn_count": 8, "prompt_tokens": 170400, "completion_tokens": 4300, "tool_usage": {"glob": 1, "grep": 2, "view": 5, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-220984__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al\nindex 83bf3f09..fc62ac19 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/ProductionBOM/ExchangeProductionBOMItem.Report.al\n@@ -157,7 +157,7 @@ report 99001043 \"Exchange Production BOM Item\"\n CopyPositionFields(ProductionBOMLine2, ProductionBOMLine3);\n ShouldModifyProductionBOMLine := true;\n OnIntegerOnPostDataItemOnBeforeModifyProductionBOMLine(ProductionBOMLine, ShouldModifyProductionBOMLine);\n- if not ShouldModifyProductionBOMLine then begin\n+ if ShouldModifyProductionBOMLine then begin\n ProductionBOMLine.\"Ending Date\" := StartingDate - 1;\n ProductionBOMLine.Modify();\n end;\n", "error_message": null, "metrics": {"execution_time": 55.0, "llm_duration": null, "turn_count": 6, "prompt_tokens": 114900, "completion_tokens": 2000, "tool_usage": {"grep": 1, "view": 3, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-221877__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al b/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al\nindex 1c8fcc9e..958b8151 100644\n--- a/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al\n+++ b/App/Layers/W1/BaseApp/Service/Document/ServiceItemLine.Table.al\n@@ -1580,6 +1580,13 @@ table 5901 \"Service Item Line\"\n if not IsHandled then\n ServOrderMgt.UpdatePriority(Rec, false);\n \n+ if \"Repair Status Code\" <> '' then begin\n+ IsHandled := false;\n+ OnInsertOnBeforeValidateRepairStatusCode(Rec, IsHandled);\n+ if not IsHandled then\n+ Validate(\"Repair Status Code\");\n+ end;\n+\n if \"Line No.\" = 0 then\n LendLoanerWithConfirmation(false);\n \n@@ -3164,6 +3171,11 @@ table 5901 \"Service Item Line\"\n begin\n end;\n \n+ [IntegrationEvent(false, false)]\n+ local procedure OnInsertOnBeforeValidateRepairStatusCode(var ServiceItemLine: Record \"Service Item Line\"; var IsHandled: Boolean)\n+ begin\n+ end;\n+\n [IntegrationEvent(false, false)]\n local procedure OnValidateServiceItemNoOnAfterValidateWarrantyPartsLaborDates(var ServiceItemLine: Record \"Service Item Line\")\n begin\n", "error_message": null, "metrics": {"execution_time": 1138.0, "llm_duration": null, "turn_count": 53, "prompt_tokens": 4000000, "completion_tokens": 61200, "tool_usage": {"glob": 1, "grep": 25, "view": 14, "powershell": 18, "report_intent": 1, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-222092__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\nindex 825eb23c..9ff59101 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n@@ -270,8 +270,8 @@ codeunit 393 \"Reminder-Issue\"\n begin\n GenJnlLine2.\"Shortcut Dimension 1 Code\" := GlobalReminderHeader.\"Shortcut Dimension 1 Code\";\n GenJnlLine2.\"Shortcut Dimension 2 Code\" := GlobalReminderHeader.\"Shortcut Dimension 2 Code\";\n- DimSetIDArr[1] := GlobalReminderHeader.\"Dimension Set ID\";\n- DimSetIDArr[2] := TempGenJnlLine.\"Dimension Set ID\";\n+ DimSetIDArr[1] := TempGenJnlLine.\"Dimension Set ID\";\n+ DimSetIDArr[2] := GlobalReminderHeader.\"Dimension Set ID\";\n GenJnlLine2.\"Dimension Set ID\" :=\n DimMgt.GetCombinedDimensionSetID(\n DimSetIDArr, GenJnlLine2.\"Shortcut Dimension 1 Code\", GenJnlLine2.\"Shortcut Dimension 2 Code\");\n", "error_message": null, "metrics": {"execution_time": 173.0, "llm_duration": null, "turn_count": 17, "prompt_tokens": 568100, "completion_tokens": 7200, "tool_usage": {"powershell": 1, "grep": 5, "view": 7, "glob": 3, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-222092__cf-2", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\nindex 825eb23c..9ff59101 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/ReminderIssue.Codeunit.al\n@@ -270,8 +270,8 @@ codeunit 393 \"Reminder-Issue\"\n begin\n GenJnlLine2.\"Shortcut Dimension 1 Code\" := GlobalReminderHeader.\"Shortcut Dimension 1 Code\";\n GenJnlLine2.\"Shortcut Dimension 2 Code\" := GlobalReminderHeader.\"Shortcut Dimension 2 Code\";\n- DimSetIDArr[1] := GlobalReminderHeader.\"Dimension Set ID\";\n- DimSetIDArr[2] := TempGenJnlLine.\"Dimension Set ID\";\n+ DimSetIDArr[1] := TempGenJnlLine.\"Dimension Set ID\";\n+ DimSetIDArr[2] := GlobalReminderHeader.\"Dimension Set ID\";\n GenJnlLine2.\"Dimension Set ID\" :=\n DimMgt.GetCombinedDimensionSetID(\n DimSetIDArr, GenJnlLine2.\"Shortcut Dimension 1 Code\", GenJnlLine2.\"Shortcut Dimension 2 Code\");\n", "error_message": null, "metrics": {"execution_time": 149.0, "llm_duration": null, "turn_count": 13, "prompt_tokens": 352200, "completion_tokens": 6200, "tool_usage": {"glob": 4, "view": 6, "grep": 3, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-222484__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WhseActivityRegister.Codeunit.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WhseActivityRegister.Codeunit.al\nindex 06bc6408..ea7474c3 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WhseActivityRegister.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WhseActivityRegister.Codeunit.al\n@@ -1491,6 +1491,7 @@ codeunit 7307 \"Whse.-Activity-Register\"\n TempWhseActivLine2: Record \"Warehouse Activity Line\" temporary;\n WarehouseActivityLine: Record \"Warehouse Activity Line\";\n WhseActivLineItemTrackingSetup: Record \"Item Tracking Setup\";\n+ FEFOLineReservedItemTrackingSetup: Record \"Item Tracking Setup\";\n CreatePick: Codeunit \"Create Pick\";\n WhseAvailMgt: Codeunit \"Warehouse Availability Mgt.\";\n BinTypeFilter: Text;\n@@ -1585,9 +1586,17 @@ codeunit 7307 \"Whse.-Activity-Register\"\n \n QtyPickedNotShipped := CalcQtyPickedNotShipped(WhseActivLine, WhseItemTrackingSetup);\n \n- LineReservedQtyBase :=\n- WhseAvailMgt.CalcLineReservedQtyOnInvt(\n- WhseActivLine.\"Source Type\", WhseActivLine.\"Source Subtype\", WhseActivLine.\"Source No.\", WhseActivLine.\"Source Line No.\", WhseActivLine.\"Source Subline No.\", false, WhseItemTrackingSetup, WhseActivLine);\n+ // When FEFO is active, the lot assigned to the pick may differ from the lot that was matched\n+ // at reservation time. To correctly account for the demand line's reservation regardless of\n+ // which lot was matched, we omit the lot/serial filter when retrieving the line reserved qty.\n+ if Location.\"Pick According to FEFO\" and WhseItemTrackingSetup.TrackingRequired() then\n+ LineReservedQtyBase :=\n+ WhseAvailMgt.CalcLineReservedQtyOnInvt(\n+ WhseActivLine.\"Source Type\", WhseActivLine.\"Source Subtype\", WhseActivLine.\"Source No.\", WhseActivLine.\"Source Line No.\", WhseActivLine.\"Source Subline No.\", false, FEFOLineReservedItemTrackingSetup, WhseActivLine)\n+ else\n+ LineReservedQtyBase :=\n+ WhseAvailMgt.CalcLineReservedQtyOnInvt(\n+ WhseActivLine.\"Source Type\", WhseActivLine.\"Source Subtype\", WhseActivLine.\"Source No.\", WhseActivLine.\"Source Line No.\", WhseActivLine.\"Source Subline No.\", false, WhseItemTrackingSetup, WhseActivLine);\n \n TotalAvailQtyBase :=\n QtyInWhseBase -\n", "error_message": null, "metrics": {"execution_time": 422.0, "llm_duration": null, "turn_count": 40, "prompt_tokens": 1800000, "completion_tokens": 21300, "tool_usage": {"powershell": 3, "glob": 3, "grep": 19, "view": 15, "report_intent": 1, "edit": 3}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-222488__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al b/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al\nindex 07db37f9..db8efffa 100644\n--- a/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al\n+++ b/App/Layers/W1/BaseApp/Warehouse/Activity/WhsePutawaySubform.Page.al\n@@ -484,10 +484,9 @@ page 5771 \"Whse. Put-away Subform\"\n var\n WhseActivLine: Record \"Warehouse Activity Line\";\n begin\n- WhseActivLine.Copy(Rec);\n- WhseActivLine.FilterGroup(3);\n- WhseActivLine.SetRange(Breakbulk);\n- WhseActivLine.FilterGroup(0);\n+ WhseActivLine := Rec;\n+ WhseActivLine.SetRange(\"Activity Type\", Rec.\"Activity Type\");\n+ WhseActivLine.SetRange(\"No.\", Rec.\"No.\");\n CODEUNIT.Run(CODEUNIT::\"Whse.-Act.-Register (Yes/No)\", WhseActivLine);\n Rec.Reset();\n Rec.SetCurrentKey(\"Activity Type\", \"No.\", \"Sorting Sequence No.\");\n", "error_message": null, "metrics": {"execution_time": 591.0, "llm_duration": null, "turn_count": 26, "prompt_tokens": 1200000, "completion_tokens": 36100, "tool_usage": {"grep": 12, "view": 15, "glob": 3, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-223202__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al\nindex 84769ae0..b4dea14e 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Costing/MfgCostCalculationMgt.Codeunit.al\n@@ -257,7 +257,15 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ExpSubDirCostRtng: Decimal;\n ExpCapOvhdCostRtng: Decimal;\n ExpOvhdCost: Decimal;\n+ PrevExpMatCost: Decimal;\n+ PrevExpCapDirCost: Decimal;\n+ PrevExpSubDirCost: Decimal;\n+ PrevExpCapOvhdCost: Decimal;\n begin\n+ PrevExpMatCost := ExpMatCost;\n+ PrevExpCapDirCost := ExpCapDirCost;\n+ PrevExpSubDirCost := ExpSubDirCost;\n+ PrevExpCapOvhdCost := ExpCapOvhdCost;\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\");\n ProdOrderComp.SetRange(Status, ProdOrderLine.Status);\n ProdOrderComp.SetRange(\"Prod. Order No.\", ProdOrderLine.\"Prod. Order No.\");\n@@ -304,7 +312,7 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ExpCapDirCost := ExpCapDirCost + Round(ExpCapDirCostRtng * ShareOfTotalCapCost);\n ExpSubDirCost := ExpSubDirCost + Round(ExpSubDirCostRtng * ShareOfTotalCapCost);\n ExpCapOvhdCost := ExpCapOvhdCost + Round(ExpCapOvhdCostRtng * ShareOfTotalCapCost);\n- ExpMfgDirCost := ExpMatCost + ExpCapDirCost + ExpSubDirCost + ExpCapOvhdCost;\n+ ExpMfgDirCost := (ExpMatCost - PrevExpMatCost) + (ExpCapDirCost - PrevExpCapDirCost) + (ExpSubDirCost - PrevExpSubDirCost) + (ExpCapOvhdCost - PrevExpCapOvhdCost);\n ExpOvhdCost := ExpMfgOvhdCost + ProdOrderLine.\"Overhead Rate\" * ProdOrderLine.\"Quantity (Base)\";\n ExpMfgOvhdCost := ExpOvhdCost +\n Round(CostCalculationMgt.CalcOvhdCost(ExpMfgDirCost, ProdOrderLine.\"Indirect Cost %\", 0, 0));\n@@ -327,7 +335,17 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ExpSubDirCostRtng: Decimal;\n ExpCapOvhdCostRtng: Decimal;\n ExpOvhdCost: Decimal;\n+ PrevExpMatCost: Decimal;\n+ PrevExpNonInvMatCost: Decimal;\n+ PrevExpCapDirCost: Decimal;\n+ PrevExpSubDirCost: Decimal;\n+ PrevExpCapOvhdCost: Decimal;\n begin\n+ PrevExpMatCost := ExpMatCost;\n+ PrevExpNonInvMatCost := ExpNonInvMatCost;\n+ PrevExpCapDirCost := ExpCapDirCost;\n+ PrevExpSubDirCost := ExpSubDirCost;\n+ PrevExpCapOvhdCost := ExpCapOvhdCost;\n ProdOrderComp.SetCurrentKey(Status, \"Prod. Order No.\", \"Prod. Order Line No.\");\n ProdOrderComp.SetRange(Status, ProdOrderLine.Status);\n ProdOrderComp.SetRange(\"Prod. Order No.\", ProdOrderLine.\"Prod. Order No.\");\n@@ -366,7 +384,7 @@ codeunit 99000758 \"Mfg. Cost Calculation Mgt.\"\n ExpCapDirCost := ExpCapDirCost + Round(ExpCapDirCostRtng * ShareOfTotalCapCost);\n ExpSubDirCost := ExpSubDirCost + Round(ExpSubDirCostRtng * ShareOfTotalCapCost);\n ExpCapOvhdCost := ExpCapOvhdCost + Round(ExpCapOvhdCostRtng * ShareOfTotalCapCost);\n- ExpMfgDirCost := ExpMatCost + ExpNonInvMatCost + ExpCapDirCost + ExpSubDirCost + ExpCapOvhdCost;\n+ ExpMfgDirCost := (ExpMatCost - PrevExpMatCost) + (ExpNonInvMatCost - PrevExpNonInvMatCost) + (ExpCapDirCost - PrevExpCapDirCost) + (ExpSubDirCost - PrevExpSubDirCost) + (ExpCapOvhdCost - PrevExpCapOvhdCost);\n ExpOvhdCost := ExpMfgOvhdCost + ProdOrderLine.\"Overhead Rate\" * ProdOrderLine.\"Quantity (Base)\";\n ExpMfgOvhdCost := ExpOvhdCost +\n Round(CostCalculationMgt.CalcOvhdCost(ExpMfgDirCost, ProdOrderLine.\"Indirect Cost %\", 0, 0));\n", "error_message": null, "metrics": {"execution_time": 200.0, "llm_duration": null, "turn_count": 19, "prompt_tokens": 668500, "completion_tokens": 11700, "tool_usage": {"glob": 1, "grep": 5, "view": 10, "report_intent": 1, "edit": 4}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-223493__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al b/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al\nindex 6a5f0a88..95da578b 100644\n--- a/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/History/SalesInvHeaderEdit.Codeunit.al\n@@ -56,6 +56,8 @@ codeunit 1409 \"Sales Inv. Header - Edit\"\n CustLedgerEntry.Description := SalesInvoiceHeader.\"Posting Description\";\n CustLedgerEntry.\"Promised Pay Date\" := SalesInvoiceHeader.\"Promised Pay Date\";\n CustLedgerEntry.\"Due Date\" := SalesInvoiceHeader.\"Due Date\";\n+ if CustLedgerEntry.\"On Hold\" = '' then\n+ CustLedgerEntry.\"Your Reference\" := SalesInvoiceHeader.\"Your Reference\";\n if CustLedgerEntry.\"Dispute Status\" <> '' then begin\n if DisputeStatus.get(CustLedgerEntry.\"Dispute Status\") then\n if (DisputeStatus.\"Overwrite on hold\") and ClearOnHold(SalesInvoiceHeader) then\ndiff --git a/App/Layers/W1/BaseApp/Sales/Receivables/CustEntryEdit.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Receivables/CustEntryEdit.Codeunit.al\nindex c64fa944..37b99e91 100644\n--- a/App/Layers/W1/BaseApp/Sales/Receivables/CustEntryEdit.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Receivables/CustEntryEdit.Codeunit.al\n@@ -57,6 +57,7 @@ codeunit 103 \"Cust. Entry-Edit\"\n CustLedgEntry.\"Direct Debit Mandate ID\" := Rec.\"Direct Debit Mandate ID\";\n end;\n CustLedgEntry.Description := Rec.Description;\n+ CustLedgEntry.\"Your Reference\" := Rec.\"Your Reference\";\n CustLedgEntry.Validate(\"Exported to Payment File\", Rec.\"Exported to Payment File\");\n CustLedgEntry.Validate(\"Promised Pay Date\", Rec.\"Promised Pay Date\");\n CustLedgEntry.Validate(\"Dispute Status\", Rec.\"Dispute Status\");\n", "error_message": null, "metrics": {"execution_time": 166.0, "llm_duration": null, "turn_count": 15, "prompt_tokens": 321900, "completion_tokens": 7100, "tool_usage": {"powershell": 1, "grep": 5, "glob": 6, "view": 7, "report_intent": 1, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-223790__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Location/MfgStockkeepingUnit.TableExt.al b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Location/MfgStockkeepingUnit.TableExt.al\nindex e6df0fd1..b02ec985 100644\n--- a/App/Layers/W1/BaseApp/Manufacturing/Inventory/Location/MfgStockkeepingUnit.TableExt.al\n+++ b/App/Layers/W1/BaseApp/Manufacturing/Inventory/Location/MfgStockkeepingUnit.TableExt.al\n@@ -8,6 +8,7 @@ using Microsoft.Inventory.Item;\n using Microsoft.Manufacturing.Document;\n using Microsoft.Manufacturing.ProductionBOM;\n using Microsoft.Manufacturing.Routing;\n+using Microsoft.Manufacturing.Setup;\n \n tableextension 99000759 \"Mfg. Stockkeeping Unit\" extends \"Stockkeeping Unit\"\n {\n@@ -62,6 +63,24 @@ tableextension 99000759 \"Mfg. Stockkeeping Unit\" extends \"Stockkeeping Unit\"\n Caption = 'Production BOM No.';\n DataClassification = CustomerContent;\n TableRelation = \"Production BOM Header\";\n+\n+ trigger OnValidate()\n+ var\n+ MfgSetup: Record \"Manufacturing Setup\";\n+ ProdBOMHeader: Record \"Production BOM Header\";\n+ Item: Record Item;\n+ CalculateLowLevelCode: Codeunit \"Calculate Low-Level Code\";\n+ begin\n+ if (\"Production BOM No.\" <> '') and (\"Production BOM No.\" <> xRec.\"Production BOM No.\") then begin\n+ MfgSetup.Get();\n+ if MfgSetup.\"Dynamic Low-Level Code\" then\n+ if ProdBOMHeader.Get(\"Production BOM No.\") then\n+ if ProdBOMHeader.Status = ProdBOMHeader.Status::Certified then begin\n+ Item.Get(\"Item No.\");\n+ CalculateLowLevelCode.SetRecursiveLevelsOnBOM(ProdBOMHeader, Item.\"Low-Level Code\" + 1, false);\n+ end;\n+ end;\n+ end;\n }\n field(99000765; \"Planned Order Receipt (Qty.)\"; Decimal)\n {\n", "error_message": null, "metrics": {"execution_time": 746.0, "llm_duration": null, "turn_count": 81, "prompt_tokens": 7600000, "completion_tokens": 32000, "tool_usage": {"glob": 9, "view": 32, "grep": 44, "powershell": 5, "report_intent": 1, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-224447__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Sales/Reminder/SendReminder.Codeunit.al b/App/Layers/W1/BaseApp/Sales/Reminder/SendReminder.Codeunit.al\nindex 94cce9d1..71ab7d64 100644\n--- a/App/Layers/W1/BaseApp/Sales/Reminder/SendReminder.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Sales/Reminder/SendReminder.Codeunit.al\n@@ -12,6 +12,20 @@ codeunit 545 \"Send Reminder\"\n Permissions = tabledata \"Issued Reminder Header\" = rmid,\n tabledata \"Email Outbox\" = rmid;\n \n+ [EventSubscriber(ObjectType::Table, Database::\"Report Selections\", 'OnAfterIsCustomerAccount', '', false, false)]\n+ local procedure OnAfterIsCustomerAccount(DocumentTableId: Integer; var IsCustomer: Boolean)\n+ begin\n+ if DocumentTableId = Database::\"Issued Reminder Header\" then\n+ IsCustomer := true;\n+ end;\n+\n+ [EventSubscriber(ObjectType::Table, Database::\"Report Selections\", 'OnSendEmailDirectlyOnAfterSetFieldName', '', false, false)]\n+ local procedure OnSendEmailDirectlyOnAfterSetFieldName(DocumentTableId: Integer; var FieldName: Text)\n+ begin\n+ if DocumentTableId = Database::\"Issued Reminder Header\" then\n+ FieldName := 'Customer No.';\n+ end;\n+\n [EventSubscriber(ObjectType::Codeunit, Codeunit::\"Document-Mailing\", 'OnAfterEmailSent', '', false, false)]\n local procedure HandleEmailSent(var TempEmailItem: Record \"Email Item\" temporary; PostedDocNo: Code[20]; ReportUsage: Integer; EmailSentSuccesfully: Boolean)\n var\n", "error_message": null, "metrics": {"execution_time": 353.0, "llm_duration": null, "turn_count": 48, "prompt_tokens": 2100000, "completion_tokens": 12200, "tool_usage": {"glob": 6, "powershell": 15, "view": 18, "grep": 21, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-224668__cf-1", "project": "EssentialBusinessHeadlines", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\nindex 831aa80e..10436a09 100644\n--- a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n+++ b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n@@ -677,7 +677,7 @@ codeunit 1437 \"Essential Bus. Headline Mgt.\"\n var\n EssentialBusinessHeadline: Record \"Ess. Business Headline Per Usr\";\n begin\n- if EssentialBusinessHeadline.Get(HeadlineName) then begin\n+ if EssentialBusinessHeadline.Get(HeadlineName, UserSecurityId()) then begin\n EssentialBusinessHeadline.Validate(\"Headline Visible\", false);\n EssentialBusinessHeadline.Modify();\n end;\n", "error_message": null, "metrics": {"execution_time": 34.0, "llm_duration": null, "turn_count": 4, "prompt_tokens": 69600, "completion_tokens": 793, "tool_usage": {"grep": 1, "view": 1, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-224668__cf-2", "project": "EssentialBusinessHeadlines", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\nindex 831aa80e..36cf212f 100644\n--- a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n+++ b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n@@ -677,10 +677,11 @@ codeunit 1437 \"Essential Bus. Headline Mgt.\"\n var\n EssentialBusinessHeadline: Record \"Ess. Business Headline Per Usr\";\n begin\n- if EssentialBusinessHeadline.Get(HeadlineName) then begin\n- EssentialBusinessHeadline.Validate(\"Headline Visible\", false);\n- EssentialBusinessHeadline.Modify();\n- end;\n+ if EssentialBusinessHeadline.Get(HeadlineName, UserSecurityId()) then\n+ if EssentialBusinessHeadline.\"Headline Visible\" then begin\n+ EssentialBusinessHeadline.Validate(\"Headline Visible\", false);\n+ EssentialBusinessHeadline.Modify();\n+ end;\n end;\n \n procedure FormatCurrency(AmountToFormat: Decimal; CurrencyCode: Code[10]): Text\n", "error_message": null, "metrics": {"execution_time": 31.0, "llm_duration": null, "turn_count": 4, "prompt_tokens": 58000, "completion_tokens": 816, "tool_usage": {"grep": 1, "view": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-224668__cf-3", "project": "EssentialBusinessHeadlines", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\nindex 831aa80e..6e66728c 100644\n--- a/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n+++ b/App/Apps/W1/EssentialBusinessHeadlines/app/src/codeunits/EssentialBusHeadlineMgt.Codeunit.al\n@@ -677,10 +677,9 @@ codeunit 1437 \"Essential Bus. Headline Mgt.\"\n var\n EssentialBusinessHeadline: Record \"Ess. Business Headline Per Usr\";\n begin\n- if EssentialBusinessHeadline.Get(HeadlineName) then begin\n- EssentialBusinessHeadline.Validate(\"Headline Visible\", false);\n- EssentialBusinessHeadline.Modify();\n- end;\n+ EssentialBusinessHeadline.GetOrCreateHeadline(HeadlineName);\n+ EssentialBusinessHeadline.Validate(\"Headline Visible\", false);\n+ EssentialBusinessHeadline.Modify();\n end;\n \n procedure FormatCurrency(AmountToFormat: Decimal; CurrencyCode: Code[10]): Text\n", "error_message": null, "metrics": {"execution_time": 56.0, "llm_duration": null, "turn_count": 8, "prompt_tokens": 155700, "completion_tokens": 1700, "tool_usage": {"grep": 6, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-226875__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\nindex fa043e01..a47ad910 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al\n@@ -154,6 +154,7 @@ page 254 \"Purchase Journal\"\n trigger OnValidate()\n begin\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ UpdateVendorName();\n EnableApplyEntriesAction();\n CurrPage.SaveRecord();\n end;\n@@ -166,11 +167,12 @@ page 254 \"Purchase Journal\"\n trigger OnValidate()\n begin\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ UpdateVendorName();\n Rec.ShowShortcutDimCode(ShortcutDimCode);\n CurrPage.SaveRecord();\n end;\n }\n- field(\"\"; AccName)\n+ field(\"\"; VendorName)\n {\n ApplicationArea = Basic, Suite;\n Caption = 'Vendor Name';\n@@ -379,6 +381,8 @@ page 254 \"Purchase Journal\"\n \n trigger OnValidate()\n begin\n+ GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ UpdateVendorName();\n EnableApplyEntriesAction();\n end;\n }\n@@ -390,6 +394,7 @@ page 254 \"Purchase Journal\"\n trigger OnValidate()\n begin\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ UpdateVendorName();\n Rec.ShowShortcutDimCode(ShortcutDimCode);\n CurrPage.SaveRecord();\n end;\n@@ -1494,6 +1499,7 @@ page 254 \"Purchase Journal\"\n begin\n HasIncomingDocument := Rec.\"Incoming Document Entry No.\" <> 0;\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ UpdateVendorName();\n UpdateBalance();\n EnableApplyEntriesAction();\n SetControlAppearance();\n@@ -1508,6 +1514,7 @@ page 254 \"Purchase Journal\"\n Rec.ShowShortcutDimCode(ShortcutDimCode);\n DocumentAmount := Abs(Rec.Amount);\n GenJnlManagement.GetAccounts(Rec, AccName, BalAccName);\n+ UpdateVendorName();\n CurrPage.IncomingDocAttachFactBox.PAGE.SetCurrentRecordID(Rec.RecordId());\n ApprovalMgmt.GetGenJnlLineApprovalStatus(Rec, GenJnlLineApprovalStatus, EnabledGenJnlLineWorkflowsExist);\n end;\n@@ -1639,6 +1646,7 @@ page 254 \"Purchase Journal\"\n ShortcutDimCode: array[8] of Code[20];\n AccName: Text[100];\n BalAccName: Text[100];\n+ VendorName: Text[100];\n DimVisible1: Boolean;\n DimVisible2: Boolean;\n DimVisible3: Boolean;\n@@ -1661,6 +1669,17 @@ page 254 \"Purchase Journal\"\n NumberOfRecords := Rec.Count();\n end;\n \n+ local procedure UpdateVendorName()\n+ begin\n+ if Rec.\"Account Type\" = Rec.\"Account Type\"::Vendor then\n+ VendorName := AccName\n+ else\n+ if Rec.\"Bal. Account Type\" = Rec.\"Bal. Account Type\"::Vendor then\n+ VendorName := BalAccName\n+ else\n+ VendorName := '';\n+ end;\n+\n local procedure EnableApplyEntriesAction()\n begin\n ApplyEntriesActionEnabled :=\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '134920'\nCodeunit 134920 ERM General Journal UT\n Testfunction VendorNameFieldPopulatesOnlyForVendorAccountType Failure (5.603 seconds)\n Error:\n AssertEquals for Field: Expected = '', Actual = 'd5f0c7e8ed1243ae92bd'\n Call Stack:\n \"ERM General Journal UT\"(CodeUnit 134920).VendorNameFieldPopulatesOnlyForVendorAccountType line 38 - Tests-General Journal by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0", "metrics": {"execution_time": 251.0, "llm_duration": null, "turn_count": 38, "prompt_tokens": 1100000, "completion_tokens": 12900, "tool_usage": {"view": 19, "grep": 10, "glob": 3, "report_intent": 1, "edit": 9}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoftInternal__NAV-227153__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\nindex e033f91e..fa9ce2f0 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\n@@ -483,6 +483,7 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n repeat\n DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\");\n DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", PostingGr);\n \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n DtldCustLedgEntry.CalcSums(\"Amount (LCY)\");\n CustAccAmount := CustAccAmount + DtldCustLedgEntry.\"Amount (LCY)\";\n@@ -505,6 +506,7 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\", \"Entry Type\");\n DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", PostingGr);\n \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n DtldCustLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n CustCreditAmount := CustCreditAmount + DtldCustLedgEntry.\"Credit Amount (LCY)\";\n@@ -527,6 +529,7 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\", \"Entry Type\");\n DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n DtldCustLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ DtldCustLedgEntry.SetRange(\"Posting Group\", PostingGr);\n \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n DtldCustLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n CustDebitAmount := CustDebitAmount + DtldCustLedgEntry.\"Debit Amount (LCY)\";\n@@ -548,6 +551,7 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n repeat\n DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\");\n DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n+ DtldVendLedgEntry.SetRange(\"Posting Group\", PostingGr);\n \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n DtldVendLedgEntry.CalcSums(\"Amount (LCY)\");\n VendAccAmount := VendAccAmount + DtldVendLedgEntry.\"Amount (LCY)\";\n@@ -570,6 +574,7 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\", \"Entry Type\");\n DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ DtldVendLedgEntry.SetRange(\"Posting Group\", PostingGr);\n \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n DtldVendLedgEntry.CalcSums(\"Credit Amount (LCY)\");\n VendCreditAmount := VendCreditAmount + DtldVendLedgEntry.\"Credit Amount (LCY)\";\n@@ -592,6 +597,7 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\", \"Entry Type\");\n DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n DtldVendLedgEntry.SetRange(\"Entry Type\", EntryType);\n+ DtldVendLedgEntry.SetRange(\"Posting Group\", PostingGr);\n \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n DtldVendLedgEntry.CalcSums(\"Debit Amount (LCY)\");\n VendDebitAmount := VendDebitAmount + DtldVendLedgEntry.\"Debit Amount (LCY)\";\n", "error_message": null, "metrics": {"execution_time": 192.0, "llm_duration": null, "turn_count": 19, "prompt_tokens": 603200, "completion_tokens": 10500, "tool_usage": {"powershell": 2, "glob": 2, "view": 7, "report_intent": 2, "grep": 4, "edit": 6}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-227153__cf-2", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\nindex e033f91e..cb3e017e 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Reports/ReconcileCustandVendAccs.Report.al\n@@ -472,21 +472,22 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n \n local procedure CalcCustAccAmount(PostingGr: Code[20]): Decimal\n var\n- Cust: Record Customer;\n+ CustLedgEntry: Record \"Cust. Ledger Entry\";\n DtldCustLedgEntry: Record \"Detailed Cust. Ledg. Entry\";\n CustAccAmount: Decimal;\n begin\n- Cust.SetCurrentKey(\"Customer Posting Group\");\n- Cust.SetRange(\"Customer Posting Group\", PostingGr);\n+ CustLedgEntry.SetCurrentKey(\"Customer Posting Group\");\n+ CustLedgEntry.SetRange(\"Customer Posting Group\", PostingGr);\n+ CustLedgEntry.SetRange(\"Document Type\", CustLedgEntry.\"Document Type\"::Payment);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", CustLedgEntry.\"Posting Date\");\n \n- if Cust.Find('-') then\n+ if CustLedgEntry.Find('-') then\n repeat\n- DtldCustLedgEntry.SetCurrentKey(\"Customer No.\", \"Posting Date\");\n- DtldCustLedgEntry.SetRange(\"Customer No.\", Cust.\"No.\");\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldCustLedgEntry.\"Posting Date\");\n+ DtldCustLedgEntry.SetCurrentKey(\"Cust. Ledger Entry No.\", \"Posting Date\");\n+ DtldCustLedgEntry.SetRange(\"Cust. Ledger Entry No.\", CustLedgEntry.\"Entry No.\");\n DtldCustLedgEntry.CalcSums(\"Amount (LCY)\");\n CustAccAmount := CustAccAmount + DtldCustLedgEntry.\"Amount (LCY)\";\n- until Cust.Next() = 0;\n+ until CustLedgEntry.Next() = 0;\n \n exit(CustAccAmount);\n end;\n@@ -537,21 +538,22 @@ report 33 \"Reconcile Cust. and Vend. Accs\"\n \n local procedure CalcVendAccAmount(PostingGr: Code[20]): Decimal\n var\n- Vend: Record Vendor;\n+ VendLedgEntry: Record \"Vendor Ledger Entry\";\n DtldVendLedgEntry: Record \"Detailed Vendor Ledg. Entry\";\n VendAccAmount: Decimal;\n begin\n- Vend.SetCurrentKey(\"Vendor Posting Group\");\n- Vend.SetRange(\"Vendor Posting Group\", PostingGr);\n+ VendLedgEntry.SetCurrentKey(\"Vendor Posting Group\");\n+ VendLedgEntry.SetRange(\"Vendor Posting Group\", PostingGr);\n+ VendLedgEntry.SetRange(\"Document Type\", VendLedgEntry.\"Document Type\"::Payment);\n+ \"G/L Account\".CopyFilter(\"Date Filter\", VendLedgEntry.\"Posting Date\");\n \n- if Vend.Find('-') then\n+ if VendLedgEntry.Find('-') then\n repeat\n- DtldVendLedgEntry.SetCurrentKey(\"Vendor No.\", \"Posting Date\");\n- DtldVendLedgEntry.SetRange(\"Vendor No.\", Vend.\"No.\");\n- \"G/L Account\".CopyFilter(\"Date Filter\", DtldVendLedgEntry.\"Posting Date\");\n+ DtldVendLedgEntry.SetCurrentKey(\"Vendor Ledger Entry No.\", \"Posting Date\");\n+ DtldVendLedgEntry.SetRange(\"Vendor Ledger Entry No.\", VendLedgEntry.\"Entry No.\");\n DtldVendLedgEntry.CalcSums(\"Amount (LCY)\");\n VendAccAmount := VendAccAmount + DtldVendLedgEntry.\"Amount (LCY)\";\n- until Vend.Next() = 0;\n+ until VendLedgEntry.Next() = 0;\n \n exit(VendAccAmount);\n end;\n", "error_message": null, "metrics": {"execution_time": 211.0, "llm_duration": null, "turn_count": 15, "prompt_tokens": 516900, "completion_tokens": 10300, "tool_usage": {"glob": 1, "grep": 8, "view": 7, "report_intent": 1, "edit": 2}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-227219__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al b/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al\nindex 979cdb45..f915acd8 100644\n--- a/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Inventory/Transfer/ReleaseTransferDocument.Codeunit.al\n@@ -119,7 +119,7 @@ codeunit 5708 \"Release Transfer Document\"\n if IsHandled then\n exit;\n \n- TransLine.SetLoadFields(\"Document No.\", Quantity, \"Item No.\");\n+ TransLine.SetLoadFields(\"Document No.\", Quantity, \"Item No.\", \"Unit of Measure Code\", \"Variant Code\");\n TransLine.SetRange(\"Document No.\", TransHeader.\"No.\");\n TransLine.SetFilter(Quantity, '<>0');\n if TransLine.IsEmpty() then\n@@ -129,8 +129,11 @@ codeunit 5708 \"Release Transfer Document\"\n if TransLine.FindSet() then\n repeat\n Item.Get(TransLine.\"Item No.\");\n- if Item.IsInventoriableType() then\n+ if Item.IsInventoriableType() then begin\n TransLine.TestField(\"Unit of Measure Code\");\n+ if Item.IsVariantMandatory() then\n+ TransLine.TestField(\"Variant Code\");\n+ end;\n until TransLine.Next() = 0;\n TransLine.SetFilter(\"Item No.\", '');\n end;\n", "error_message": null, "metrics": {"execution_time": 94.0, "llm_duration": null, "turn_count": 11, "prompt_tokens": 336500, "completion_tokens": 3100, "tool_usage": {"view": 4, "grep": 7, "glob": 1, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-227358__cf-1", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\nindex 61aff663..a819e8bb 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\n@@ -999,6 +999,7 @@ codeunit 13 \"Gen. Jnl.-Post Batch\"\n local procedure UnlinkIncDocFromGenJnlLine(var GenJnlLine: Record \"Gen. Journal Line\")\n var\n CurrGenJnlTemplate: Record \"Gen. Journal Template\";\n+ CurrentGenJnlLine: Record \"Gen. Journal Line\";\n begin\n if GenJnlLine.\"Journal Template Name\" = '' then\n exit;\n@@ -1006,8 +1007,12 @@ codeunit 13 \"Gen. Jnl.-Post Batch\"\n exit;\n if not CurrGenJnlTemplate.\"Unlink Inc. Doc On Posting\" then\n exit;\n+ if GenJnlLine.\"Incoming Document Entry No.\" = 0 then\n+ exit;\n+ CurrentGenJnlLine.Get(GenJnlLine.\"Journal Template Name\", GenJnlLine.\"Journal Batch Name\", GenJnlLine.\"Line No.\");\n+ CurrentGenJnlLine.\"Incoming Document Entry No.\" := 0;\n+ CurrentGenJnlLine.Modify();\n GenJnlLine.\"Incoming Document Entry No.\" := 0;\n- GenJnlLine.Modify();\n end;\n \n local procedure CopyGenJnlLineBalancingData(var GenJnlLineTo: Record \"Gen. Journal Line\"; var GenJnlLineFrom: Record \"Gen. Journal Line\")\n", "error_message": null, "metrics": {"execution_time": 60.0, "llm_duration": null, "turn_count": 6, "prompt_tokens": 104500, "completion_tokens": 2100, "tool_usage": {"grep": 1, "view": 4, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoftInternal__NAV-227358__cf-2", "project": "BaseApp", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\nindex 61aff663..ea3da6f2 100644\n--- a/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\n+++ b/App/Layers/W1/BaseApp/Finance/GeneralLedger/Posting/GenJnlPostBatch.Codeunit.al\n@@ -1006,6 +1006,9 @@ codeunit 13 \"Gen. Jnl.-Post Batch\"\n exit;\n if not CurrGenJnlTemplate.\"Unlink Inc. Doc On Posting\" then\n exit;\n+ if GenJnlLine.\"Incoming Document Entry No.\" = 0 then\n+ exit;\n+ GenJnlLine.Get(GenJnlLine.\"Journal Template Name\", GenJnlLine.\"Journal Batch Name\", GenJnlLine.\"Line No.\");\n GenJnlLine.\"Incoming Document Entry No.\" := 0;\n GenJnlLine.Modify();\n end;\n", "error_message": null, "metrics": {"execution_time": 65.0, "llm_duration": null, "turn_count": 6, "prompt_tokens": 122200, "completion_tokens": 2700, "tool_usage": {"grep": 2, "view": 3, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoft__BCApps-4699__cf-1", "project": "Shopify", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al b/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al\nindex 4e6ffd2..76d7dfe 100644\n--- a/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Products/Codeunits/ShpfyCreateItem.Codeunit.al\n@@ -9,6 +9,7 @@ using Microsoft.Inventory.Item;\n using Microsoft.Foundation.UOM;\n using Microsoft.Purchases.Vendor;\n using Microsoft.Inventory.Item.Catalog;\n+using Microsoft.Finance.Currency;\n \n /// \n /// Codeunit Shpfy Create Item (ID 30171).\n@@ -258,10 +259,10 @@ codeunit 30171 \"Shpfy Create Item\"\n CreateItemUnitOfMeasure(ShopifyVariant, Item);\n \n if ShopifyVariant.\"Unit Cost\" <> 0 then\n- Item.Validate(\"Unit Cost\", ShopifyVariant.\"Unit Cost\");\n+ Item.Validate(\"Unit Cost\", ConvertFromShopifyCurrency(ShopifyVariant.\"Unit Cost\"));\n \n if ShopifyVariant.Price <> 0 then\n- Item.Validate(\"Unit Price\", ShopifyVariant.Price);\n+ Item.Validate(\"Unit Price\", ConvertFromShopifyCurrency(ShopifyVariant.Price));\n \n if ShopifyProduct.\"Product Type\" <> '' then begin\n ItemCategory.SetFilter(Description, FilterMgt.CleanFilterValue(ShopifyProduct.\"Product Type\", MaxStrLen(ItemCategory.Description)));\n@@ -288,6 +289,19 @@ codeunit 30171 \"Shpfy Create Item\"\n CreateReferences(ShopifyProduct, ShopifyVariant, Item, ItemVariant);\n end;\n \n+ local procedure ConvertFromShopifyCurrency(Amount: Decimal): Decimal\n+ var\n+ CurrExchRate: Record \"Currency Exchange Rate\";\n+ begin\n+ if Shop.\"Currency Code\" = '' then\n+ exit(Amount);\n+ exit(\n+ Round(\n+ CurrExchRate.ExchangeAmtFCYToLCY(\n+ WorkDate(), Shop.\"Currency Code\", Amount,\n+ CurrExchRate.ExchangeRate(WorkDate(), Shop.\"Currency Code\"))));\n+ end;\n+\n local procedure CreateItemUnitOfMeasure(ShopifyVariant: Record \"Shpfy Variant\"; Item: Record Item)\n var\n ItemUnitofMeasure: Record \"Item Unit of Measure\";\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139567'\nCodeunit 139567 Shpfy Create Item Test\n Testfunction UnitTestCreateItemFCYToLCYConversion Failure (5.293 seconds)\n Error:\n Assert.AreNearlyEqual failed. Expected a difference no greater than <0.1> between expected value <6> and actual value <3>. Unit Cost\n Call Stack:\n \"Library Assert\"(CodeUnit 130002).AreNearlyEqual line 3 - Library Assert by Microsoft version 27.0.0.0\n \"Shpfy Create Item Test\"(CodeUnit 139567).UnitTestCreateItemFCYToLCYConversion line 28 - Shopify Connector Test by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0", "metrics": {"execution_time": 73.0, "llm_duration": null, "turn_count": 12, "prompt_tokens": 234700, "completion_tokens": 3000, "tool_usage": {"view": 8, "glob": 1, "grep": 2, "edit": 3}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoft__BCApps-4822__cf-1", "project": "Shopify", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\nindex 2d20144..ce82a2d 100644\n--- a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\n@@ -465,12 +465,15 @@ codeunit 30286 \"Shpfy Company API\"\n /// - Processes the response and handles any user errors\n /// - If successful, calls CreateCustomerLocation to update the local record with Shopify data\n /// \n- /// The procedure supports both billing and shipping addresses, with billing address used for both when billingSameAsShipping is true.\n+ /// When the customer has a different Bill-to Customer No., the shipping address is taken from the sell-to customer and the\n+ /// billing address from the bill-to customer (billingSameAsShipping: false). Otherwise billingSameAsShipping is true.\n /// Error handling includes field-specific error messages from Shopify API.\n /// \n internal procedure CreateCustomerAsCompanyLocation(Customer: Record Customer; ShopifyCompany: Record \"Shpfy Company\"; ShopifyCustomer: Record \"Shpfy Customer\")\n var\n+ BillToCustomer: Record Customer;\n CompanyLocation: Record \"Shpfy Company Location\";\n+ BillToCompanyLocation: Record \"Shpfy Company Location\";\n CompanyExport: Codeunit \"Shpfy Company Export\";\n CatalogAPI: Codeunit \"Shpfy Catalog API\";\n GraphQuery: TextBuilder;\n@@ -480,12 +483,18 @@ codeunit 30286 \"Shpfy Company API\"\n JItem: JsonToken;\n LocationId: BigInteger;\n CompanyContactRoles: Dictionary of [Text, BigInteger];\n+ HasSeparateBillToAddress: Boolean;\n CompanyIdTxt: Label 'gid://shopify/Company/%1', Comment = '%1 = Company Id', Locked = true;\n PaymentTermsTemplateIdTxt: Label 'gid://shopify/PaymentTermsTemplate/%1', Comment = '%1 = Payment Terms Template Id', Locked = true;\n begin\n CompanyExport.SetShop(this.Shop);\n CompanyExport.FillInShopifyCompanyLocation(Customer, CompanyLocation);\n \n+ HasSeparateBillToAddress := (Customer.\"Bill-to Customer No.\" <> '') and (Customer.\"Bill-to Customer No.\" <> Customer.\"No.\");\n+ if HasSeparateBillToAddress then\n+ if BillToCustomer.Get(Customer.\"Bill-to Customer No.\") then\n+ CompanyExport.FillInShopifyCompanyLocation(BillToCustomer, BillToCompanyLocation);\n+\n GraphQuery.Append('{\"query\": \"mutation { companyLocationCreate( companyId: \\\"' + StrSubstNo(CompanyIdTxt, ShopifyCompany.Id) + '\\\", input: {');\n \n if CompanyLocation.Name <> '' then\n@@ -494,7 +503,10 @@ codeunit 30286 \"Shpfy Company API\"\n AddFieldToGraphQuery(GraphQuery, 'phone', CompanyLocation.\"Phone No.\");\n if CompanyLocation.\"Tax Registration Id\" <> '' then\n AddFieldToGraphQuery(GraphQuery, 'taxRegistrationId', CompanyLocation.\"Tax Registration Id\");\n- GraphQuery.Append('taxExempt: false, billingSameAsShipping: true, shippingAddress: {');\n+ if HasSeparateBillToAddress then\n+ GraphQuery.Append('taxExempt: false, billingSameAsShipping: false, shippingAddress: {')\n+ else\n+ GraphQuery.Append('taxExempt: false, billingSameAsShipping: true, shippingAddress: {');\n if CompanyLocation.Address <> '' then\n AddFieldToGraphQuery(GraphQuery, 'address1', CompanyLocation.Address);\n if CompanyLocation.\"Address 2\" <> '' then\n@@ -511,6 +523,25 @@ codeunit 30286 \"Shpfy Company API\"\n AddFieldToGraphQuery(GraphQuery, 'zip', CompanyLocation.Zip);\n if CompanyLocation.Recipient <> '' then\n AddFieldToGraphQuery(GraphQuery, 'recipient', CompanyLocation.Recipient);\n+ if HasSeparateBillToAddress then begin\n+ GraphQuery.Append('}, billingAddress: {');\n+ if BillToCompanyLocation.Address <> '' then\n+ AddFieldToGraphQuery(GraphQuery, 'address1', BillToCompanyLocation.Address);\n+ if BillToCompanyLocation.\"Address 2\" <> '' then\n+ AddFieldToGraphQuery(GraphQuery, 'address2', BillToCompanyLocation.\"Address 2\");\n+ if BillToCompanyLocation.City <> '' then\n+ AddFieldToGraphQuery(GraphQuery, 'city', BillToCompanyLocation.City);\n+ if BillToCompanyLocation.\"Country/Region Code\" <> '' then\n+ AddFieldToGraphQuery(GraphQuery, 'countryCode', BillToCompanyLocation.\"Country/Region Code\", false);\n+ if BillToCompanyLocation.\"Phone No.\" <> '' then\n+ AddFieldToGraphQuery(GraphQuery, 'phone', BillToCompanyLocation.\"Phone No.\");\n+ if BillToCompanyLocation.\"Province Code\" <> '' then\n+ AddFieldToGraphQuery(GraphQuery, 'zoneCode', BillToCompanyLocation.\"Province Code\");\n+ if BillToCompanyLocation.Zip <> '' then\n+ AddFieldToGraphQuery(GraphQuery, 'zip', BillToCompanyLocation.Zip);\n+ if BillToCompanyLocation.Recipient <> '' then\n+ AddFieldToGraphQuery(GraphQuery, 'recipient', BillToCompanyLocation.Recipient);\n+ end;\n GraphQuery.Append('}, buyerExperienceConfiguration: { checkoutToDraft: false, editableShippingAddress: false, ');\n if CompanyLocation.\"Shpfy Payment Terms Id\" <> 0 then\n AddFieldToGraphQuery(GraphQuery, 'paymentTermsTemplateId', StrSubstNo(PaymentTermsTemplateIdTxt, CompanyLocation.\"Shpfy Payment Terms Id\"));\n@@ -523,7 +554,7 @@ codeunit 30286 \"Shpfy Company API\"\n JResponse := CommunicationMgt.ExecuteGraphQL(GraphQuery.ToText());\n if JResponse.SelectToken('$.data.companyLocationCreate.companyLocation', JCompanyLocation) then\n if not JsonHelper.IsTokenNull(JCompanyLocation) then begin\n- LocationId := CreateCustomerLocation(JCompanyLocation.AsObject(), ShopifyCompany, Customer.SystemId);\n+ LocationId := CreateCustomerLocation(JCompanyLocation.AsObject(), ShopifyCompany, Customer);\n if JsonHelper.GetJsonArray(JCompanyLocation, JContactRoles, 'company.contactRoles.edges') then begin\n foreach JItem in JContactRoles do\n CompanyContactRoles.Add(JsonHelper.GetValueAsText(JItem, 'node.name'), CommunicationMgt.GetIdOfGId(JsonHelper.GetValueAsText(JItem, 'node.id')));\n@@ -540,19 +571,19 @@ codeunit 30286 \"Shpfy Company API\"\n /// \n /// JSON object containing the company location data from Shopify API response.\n /// The parent Shopify company record.\n- /// The GUID of the Business Central customer that was exported.\n+ /// The Business Central customer record that was exported as a location.\n /// \n /// This procedure:\n /// - Extracts the Shopify-generated ID and creates the initial record\n /// - Populates all address fields from the billingAddress node in the JSON\n /// - Processes phone numbers by removing non-numeric characters except specific symbols\n /// - Updates tax registration ID and payment terms information\n- /// - Links the location to both the parent company and the original customer\n+ /// - Links the location to the parent company, the original customer, and sets Sell-to/Bill-to customer numbers\n /// \n /// The procedure assumes the JSON structure matches Shopify's companyLocationCreate response format.\n /// All text fields are properly truncated to match the field lengths in the table definition.\n /// \n- local procedure CreateCustomerLocation(JCompanyLocation: JsonObject; ShopifyCompany: Record \"Shpfy Company\"; CustomerId: Guid): BigInteger\n+ local procedure CreateCustomerLocation(JCompanyLocation: JsonObject; ShopifyCompany: Record \"Shpfy Company\"; Customer: Record Customer): BigInteger\n var\n CompanyLocation: Record \"Shpfy Company Location\";\n CompanyLocationId: BigInteger;\n@@ -580,7 +611,12 @@ codeunit 30286 \"Shpfy Company API\"\n #pragma warning restore AA0139\n CompanyLocation.Recipient := CopyStr(JsonHelper.GetValueAsText(JCompanyLocation, 'billingAddress.recipient', MaxStrLen(CompanyLocation.Recipient)), 1, MaxStrLen(CompanyLocation.Recipient));\n CompanyLocation.\"Shpfy Payment Terms Id\" := CommunicationMgt.GetIdOfGId(JsonHelper.GetValueAsText(JCompanyLocation, 'buyerExperienceConfiguration.paymentTermsTemplate.id'));\n- CompanyLocation.\"Customer Id\" := CustomerId;\n+ CompanyLocation.\"Customer Id\" := Customer.SystemId;\n+ CompanyLocation.\"Sell-to Customer No.\" := Customer.\"No.\";\n+ if Customer.\"Bill-to Customer No.\" <> '' then\n+ CompanyLocation.\"Bill-to Customer No.\" := Customer.\"Bill-to Customer No.\"\n+ else\n+ CompanyLocation.\"Bill-to Customer No.\" := Customer.\"No.\";\n CompanyLocation.Modify(true);\n exit(CompanyLocationId);\n end;\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139539'\nCodeunit 139539 Shpfy Company Locations Test\n Testfunction TestCreateCompanyLocationSellToBillTo Failure (6.417 seconds)\n Error:\n Assert.AreEqual failed. Expected:<> (Text). Actual: (Text). Bill-to Customer No. mismatch.\n Call Stack:\n \"Library Assert\"(CodeUnit 130002).AreEqual line 3 - Library Assert by Microsoft version 27.0.0.0\n \"Shpfy Company Locations Test\"(CodeUnit 139539).TestCreateCompanyLocationSellToBillTo line 23 - Shopify Connector Test by Microsoft version 27.0.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.0.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.0.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.0.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.0.0.0", "metrics": {"execution_time": 332.0, "llm_duration": null, "turn_count": 26, "prompt_tokens": 1000000, "completion_tokens": 21600, "tool_usage": {"view": 23, "glob": 4, "grep": 3, "report_intent": 1, "edit": 4}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} +{"instance_id": "microsoft__BCApps-4822__cf-2", "project": "Shopify", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\nindex 2d20144..95ce8b7 100644\n--- a/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Companies/Codeunits/ShpfyCompanyAPI.Codeunit.al\n@@ -554,6 +554,7 @@ codeunit 30286 \"Shpfy Company API\"\n /// \n local procedure CreateCustomerLocation(JCompanyLocation: JsonObject; ShopifyCompany: Record \"Shpfy Company\"; CustomerId: Guid): BigInteger\n var\n+ Customer: Record Customer;\n CompanyLocation: Record \"Shpfy Company Location\";\n CompanyLocationId: BigInteger;\n PhoneNo: Text;\n@@ -581,6 +582,12 @@ codeunit 30286 \"Shpfy Company API\"\n CompanyLocation.Recipient := CopyStr(JsonHelper.GetValueAsText(JCompanyLocation, 'billingAddress.recipient', MaxStrLen(CompanyLocation.Recipient)), 1, MaxStrLen(CompanyLocation.Recipient));\n CompanyLocation.\"Shpfy Payment Terms Id\" := CommunicationMgt.GetIdOfGId(JsonHelper.GetValueAsText(JCompanyLocation, 'buyerExperienceConfiguration.paymentTermsTemplate.id'));\n CompanyLocation.\"Customer Id\" := CustomerId;\n+ if Customer.GetBySystemId(CustomerId) then\n+ if Customer.\"No.\" <> '' then begin\n+ CompanyLocation.\"Sell-to Customer No.\" := Customer.\"No.\";\n+ if Customer.\"Bill-to Customer No.\" <> '' then\n+ CompanyLocation.\"Bill-to Customer No.\" := Customer.\"Bill-to Customer No.\";\n+ end;\n CompanyLocation.Modify(true);\n exit(CompanyLocationId);\n end;\n", "error_message": null, "metrics": {"execution_time": 161.0, "llm_duration": null, "turn_count": 17, "prompt_tokens": 496600, "completion_tokens": 9300, "tool_usage": {"glob": 3, "view": 11, "grep": 5, "powershell": 1, "report_intent": 1, "edit": 1}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": true, "build": true} +{"instance_id": "microsoft__BCApps-5633__cf-1", "project": "Shopify", "model": "claude-sonnet-4-6", "agent_name": "GitHub Copilot", "category": "cf", "timeout": false, "output": "diff --git a/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al b/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al\nindex 1f790f9..37f2c3a 100644\n--- a/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al\n+++ b/src/Apps/W1/Shopify/App/src/Shipping/Codeunits/ShpfyExportShipments.Codeunit.al\n@@ -24,6 +24,7 @@ codeunit 30190 \"Shpfy Export Shipments\"\n ShippingEvents: Codeunit \"Shpfy Shipping Events\";\n NoCorrespondingFulfillmentLinesLbl: Label 'No corresponding fulfillment lines found.';\n NoFulfillmentCreatedInShopifyLbl: Label 'Fulfillment was not created in Shopify.';\n+ ThirdPartyLineSkipped: Boolean;\n \n /// \n /// Create Shopify Fulfillment.\n@@ -73,7 +74,8 @@ codeunit 30190 \"Shpfy Export Shipments\"\n end;\n end\n else begin\n- SkippedRecord.LogSkippedRecord(SalesShipmentHeader.\"Shpfy Order Id\", SalesShipmentHeader.RecordId, NoCorrespondingFulfillmentLinesLbl, Shop);\n+ if not ThirdPartyLineSkipped then\n+ SkippedRecord.LogSkippedRecord(SalesShipmentHeader.\"Shpfy Order Id\", SalesShipmentHeader.RecordId, NoCorrespondingFulfillmentLinesLbl, Shop);\n SalesShipmentHeader.\"Shpfy Fulfillment Id\" := -1;\n end;\n SalesShipmentHeader.Modify(true);\n@@ -97,6 +99,7 @@ codeunit 30190 \"Shpfy Export Shipments\"\n GraphQueries: List of [Text];\n begin\n Clear(PrevFulfillmentOrderId);\n+ ThirdPartyLineSkipped := false;\n \n SalesShipmentLine.Reset();\n SalesShipmentLine.SetRange(\"Document No.\", SalesShipmentHeader.\"No.\");\n@@ -170,6 +173,12 @@ codeunit 30190 \"Shpfy Export Shipments\"\n if AssignedFulfillmentOrderIds.ContainsKey(TempFulfillmentOrderLine.\"Shopify Fulfillment Order Id\") then\n continue;\n \n+ // Skip fulfillment orders assigned to third-party fulfillment services\n+ if IsThirdPartyFulfillmentOrderLocation(Shop.Code, TempFulfillmentOrderLine.\"Shopify Location Id\") then begin\n+ ThirdPartyLineSkipped := true;\n+ continue;\n+ end;\n+\n if PrevFulfillmentOrderId <> TempFulfillmentOrderLine.\"Shopify Fulfillment Order Id\" then begin\n if PrevFulfillmentOrderId <> 0 then\n GraphQuery.Append(']},');\n@@ -200,9 +209,11 @@ codeunit 30190 \"Shpfy Export Shipments\"\n Clear(PrevFulfillmentOrderId);\n end;\n until TempFulfillmentOrderLine.Next() = 0;\n- GraphQuery.Append(']}]})');\n- GraphQuery.Append('{fulfillment { legacyResourceId name createdAt updatedAt deliveredAt displayStatus estimatedDeliveryAt status totalQuantity location { legacyResourceId } trackingInfo { number url company } service { serviceName type } fulfillmentLineItems(first: 10) { pageInfo { endCursor hasNextPage } nodes { id quantity originalTotalSet { presentmentMoney { amount } shopMoney { amount }} lineItem { id isGiftCard }}}}, userErrors {field,message}}}\"}');\n- GraphQueries.Add(GraphQuery.ToText());\n+ if PrevFulfillmentOrderId <> 0 then begin\n+ GraphQuery.Append(']}]})');\n+ GraphQuery.Append('{fulfillment { legacyResourceId name createdAt updatedAt deliveredAt displayStatus estimatedDeliveryAt status totalQuantity location { legacyResourceId } trackingInfo { number url company } service { serviceName type } fulfillmentLineItems(first: 10) { pageInfo { endCursor hasNextPage } nodes { id quantity originalTotalSet { presentmentMoney { amount } shopMoney { amount }} lineItem { id isGiftCard }}}}, userErrors {field,message}}}\"}');\n+ GraphQueries.Add(GraphQuery.ToText());\n+ end;\n end;\n exit(GraphQueries);\n end;\n@@ -249,4 +260,15 @@ codeunit 30190 \"Shpfy Export Shipments\"\n if FulfillmentOrdersAPI.AcceptFulfillmentRequest(Shop, FulfillmentOrderHeader) then\n AssignedFulfillmentOrderIds.Remove(FulfillmentOrderId);\n end;\n+\n+ local procedure IsThirdPartyFulfillmentOrderLocation(ShopCode: Code[20]; LocationId: BigInteger): Boolean\n+ var\n+ ShopLocation: Record \"Shpfy Shop Location\";\n+ SyncShopLocations: Codeunit \"Shpfy Sync Shop Locations\";\n+ begin\n+ if ShopLocation.Get(ShopCode, LocationId) then\n+ if ShopLocation.\"Is Fulfillment Service\" then\n+ exit(ShopLocation.Name <> CopyStr(SyncShopLocations.GetFulfillmentServiceName(), 1, MaxStrLen(ShopLocation.Name)));\n+ exit(false);\n+ end;\n }\n\\ No newline at end of file\n", "error_message": "Test failed\nTest result did not meet expectation (expected: Pass)\nSetting test codeunit range '139606'\nCodeunit 139606 Shpfy Shipping Test\n Testfunction UnitTestExportShipmentThirdParty Failure (5.45 seconds)\n Error:\n Assert.AreEqual failed. Expected:<0> (Integer). Actual:<1> (Integer). FulfillmentRequest count check.\n Call Stack:\n \"Library Assert\"(CodeUnit 130002).AreEqual line 3 - Library Assert by Microsoft version 27.2.0.0\n \"Shpfy Shipping Test\"(CodeUnit 139606).UnitTestExportShipmentThirdParty line 26 - Shopify Connector Test by Microsoft version 27.2.0.0\n \"Test Runner - Mgt\"(CodeUnit 130454).RunTests line 26 - Test Runner by Microsoft version 27.2.0.0\n \"Test Runner - Isol. Codeunit\"(CodeUnit 130450).OnRun(Trigger) line 4 - Test Runner by Microsoft version 27.2.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunTests line 2 - Test Runner by Microsoft version 27.2.0.0\n \"Test Suite Mgt.\"(CodeUnit 130456).RunSelectedTests line 35 - Test Runner by Microsoft version 27.2.0.0\n \"Command Line Test Tool\"(Page 130455).\"RunSelectedTests - OnAction\"(Trigger) line 7 - Test Runner by Microsoft version 27.2.0.0", "metrics": {"execution_time": 551.0, "llm_duration": null, "turn_count": 39, "prompt_tokens": 2100000, "completion_tokens": 31900, "tool_usage": {"glob": 17, "view": 22, "grep": 7, "report_intent": 1, "edit": 6}}, "experiment": {"mcp_servers": null, "custom_instructions": false, "skills_enabled": false, "custom_agent": null}, "resolved": false, "build": true} diff --git a/scripts/BCBenchUtils.psm1 b/scripts/BCBenchUtils.psm1 index 3448e1acc..a1859c112 100644 --- a/scripts/BCBenchUtils.psm1 +++ b/scripts/BCBenchUtils.psm1 @@ -342,13 +342,16 @@ function Invoke-GitApplyPatch { # Create temporary patch file [string]$patchPath = Join-Path -Path $env:TEMP -ChildPath "patch_$PatchId.diff" Write-Log "Saving patch to temporary file: $patchPath" -Level Debug - $PatchContent | Out-File -FilePath $patchPath -Encoding utf8 -Force + # Write raw bytes preserving LF line endings — git apply context matching is sensitive + # to BOM and CRLF, both of which Out-File -Encoding utf8 introduces on Windows. + [string]$normalizedContent = $PatchContent -replace "`r`n", "`n" + [System.IO.File]::WriteAllBytes($patchPath, [System.Text.UTF8Encoding]::new($false).GetBytes($normalizedContent)) if ($RepositoryPath) { - $applyResult = git -C $RepositoryPath apply --whitespace=nowarn $patchPath 2>&1 + $applyResult = git -C $RepositoryPath apply --whitespace=nowarn --ignore-whitespace $patchPath 2>&1 } else { - $applyResult = git apply --whitespace=nowarn $patchPath 2>&1 + $applyResult = git apply --whitespace=nowarn --ignore-whitespace $patchPath 2>&1 } if ($LASTEXITCODE -ne 0) { @@ -485,19 +488,26 @@ function Get-RepoCloneInfo { String representing the dataset path #> function Get-BCBenchDatasetPath { - [CmdletBinding()] + [CmdletBinding(DefaultParameterSetName = "Category")] [OutputType([string])] param( - [Parameter(Mandatory = $true)] + [Parameter(Mandatory = $true, ParameterSetName = "Category")] # Category validation lives only here: every caller resolves the dataset path through this function, so there's no need to duplicate ValidateSet on each caller. [ValidateSet("bug-fix", "test-generation", "nl2al")] - [string] $Category + [string] $Category, + + # Instance-aware callers (e.g. counterfactual runs whose matrix mixes base and CF instances) resolve the dataset file directly. + [Parameter(Mandatory = $true, ParameterSetName = "DatasetName")] + [ValidateSet("bcbench.jsonl", "counterfactual.jsonl", "nl2al.jsonl")] + [string] $DatasetName ) - switch ($Category) { - "bug-fix" { $DatasetName = "bcbench.jsonl" } - "test-generation" { $DatasetName = "bcbench.jsonl" } - "nl2al" { $DatasetName = "nl2al.jsonl" } + if ($PSCmdlet.ParameterSetName -eq "Category") { + switch ($Category) { + "bug-fix" { $DatasetName = "bcbench.jsonl" } + "test-generation" { $DatasetName = "bcbench.jsonl" } + "nl2al" { $DatasetName = "nl2al.jsonl" } + } } [string] $projectRoot = Split-Path $PSScriptRoot -Parent diff --git a/scripts/DatasetEntry.psm1 b/scripts/DatasetEntry.psm1 index 0159855e0..cba83fffa 100644 --- a/scripts/DatasetEntry.psm1 +++ b/scripts/DatasetEntry.psm1 @@ -27,6 +27,7 @@ class DatasetEntry { # Properties based on the dataset schema [string]$repo [string]$instance_id + [string]$base_instance_id [string]$patch [string]$base_commit [string]$hints_text @@ -42,6 +43,7 @@ class DatasetEntry { DatasetEntry([PSObject]$jsonObject) { $this.repo = $jsonObject.repo $this.instance_id = $jsonObject.instance_id + $this.base_instance_id = $jsonObject.base_instance_id $this.patch = $jsonObject.patch $this.base_commit = $jsonObject.base_commit $this.hints_text = $jsonObject.hints_text @@ -107,6 +109,40 @@ function Get-DatasetEntries { } } + # Merge base-entry fields into counterfactual entries (which only carry CF-specific overrides). + $needsBaseMerge = $entries | Where-Object { $_.base_instance_id -and -not $_.repo } + if ($needsBaseMerge) { + $baseDatasetPath = Join-Path -Path (Split-Path -Parent $DatasetPath) -ChildPath "bcbench.jsonl" + if (-not (Test-Path $baseDatasetPath)) { + throw "Base dataset file not found at: $baseDatasetPath (required to resolve counterfactual entries)" + } + Write-Verbose "Loading base entries from $baseDatasetPath to resolve $($needsBaseMerge.Count) CF entries" + $baseEntriesById = @{} + $baseContent = Get-Content $baseDatasetPath -Raw + $baseObjects = $baseContent -split '(?<=})\s*\n(?=\{)' | Where-Object { $_.Trim().Length -gt 0 } + foreach ($baseJson in $baseObjects) { + try { + $baseObj = $baseJson.Trim() | ConvertFrom-Json + $baseEntriesById[$baseObj.instance_id] = [DatasetEntry]::new($baseObj) + } + catch { + Write-Warning "Failed to parse base entry: $_" + } + } + foreach ($cf in $needsBaseMerge) { + $base = $baseEntriesById[$cf.base_instance_id] + if (-not $base) { + throw "Base entry '$($cf.base_instance_id)' not found in $baseDatasetPath for CF entry '$($cf.instance_id)'" + } + if (-not $cf.repo) { $cf.repo = $base.repo } + if (-not $cf.base_commit) { $cf.base_commit = $base.base_commit } + if (-not $cf.environment_setup_version) { $cf.environment_setup_version = $base.environment_setup_version } + if (-not $cf.created_at) { $cf.created_at = $base.created_at } + if (-not $cf.hints_text) { $cf.hints_text = $base.hints_text } + if (-not $cf.project_paths -or $cf.project_paths.Count -eq 0) { $cf.project_paths = $base.project_paths } + } + } + if ($Version) { $entries = $entries | Where-Object { $_.environment_setup_version -eq $Version } } diff --git a/scripts/Setup-ContainerAndRepository.ps1 b/scripts/Setup-ContainerAndRepository.ps1 index 751655ac5..31dd359fe 100644 --- a/scripts/Setup-ContainerAndRepository.ps1 +++ b/scripts/Setup-ContainerAndRepository.ps1 @@ -20,7 +20,7 @@ param( [string]$Category, [Parameter(Mandatory = $false)] - [string]$DatasetPath = (Get-BCBenchDatasetPath -Category $Category), + [string]$DatasetPath, [Parameter(Mandatory = $false)] [string]$Country = "w1", @@ -41,6 +41,11 @@ param( [switch]$SkipContainer ) +if (-not $DatasetPath) { + $datasetName = if ($InstanceId -match '__cf-\d+$') { "counterfactual.jsonl" } else { "bcbench.jsonl" } + $DatasetPath = Get-BCBenchDatasetPath -DatasetName $datasetName +} + [DatasetEntry[]] $entries = Get-DatasetEntries -DatasetPath $DatasetPath -Version $Version -InstanceId $InstanceId if ($InstanceId) { $Version = $entries[0].environment_setup_version diff --git a/scripts/Verify-BuildAndTests.ps1 b/scripts/Verify-BuildAndTests.ps1 index 644371a28..8a4872ac7 100644 --- a/scripts/Verify-BuildAndTests.ps1 +++ b/scripts/Verify-BuildAndTests.ps1 @@ -20,7 +20,7 @@ param( [string]$InstanceId, [Parameter(Mandatory = $false)] - [string]$DatasetPath = (Get-BCBenchDatasetPath -Category "bug-fix"), + [string]$DatasetPath, [Parameter(Mandatory = $true)] [string]$RepoPath, @@ -35,6 +35,11 @@ param( [SecureString]$Password ) +if (-not $DatasetPath) { + $datasetName = if ($InstanceId -match '__cf-\d+$') { "counterfactual.jsonl" } else { "bcbench.jsonl" } + $DatasetPath = Get-BCBenchDatasetPath -DatasetName $datasetName +} + [DatasetEntry[]] $entries = Get-DatasetEntries -DatasetPath $DatasetPath -Version $Version -InstanceId $InstanceId if ($InstanceId) { $Version = $entries[0].environment_setup_version diff --git a/src/bcbench/agent/shared/config.yaml b/src/bcbench/agent/shared/config.yaml index 32e31a833..f2cf44e26 100644 --- a/src/bcbench/agent/shared/config.yaml +++ b/src/bcbench/agent/shared/config.yaml @@ -24,6 +24,25 @@ prompt: Issue details: {{task}} + counterfactual-template: | + You are working with a Business Central (AL) code repository at {{repo_path}}. + + Task: Fix the issue described below {% if include_project_paths %}in the following projects: {{project_paths}}{% endif %} + + Important constraints: + - Do NOT modify any testing logic or test files + - Focus solely on fixing the reported issue + {% if al_mcp %} + - Do NOT try to run tests + {% else %} + - Do NOT try to build or run tests, just provide the code changes needed + {% endif %} + - Do NOT commit any changes to the repository + - Focus on W1 localization, do NOT worry about other localiations (e.g. DK, APAC) + + Issue details: + {{task}} + test-generation-template: | You are working with a Business Central (AL) code repository at {{repo_path}}. {% if is_gold_patch and is_problem_statement %} @@ -66,7 +85,7 @@ instructions: # - Copilot: copies to repo/.github/skills/ # - Claude: copies to repo/.claude/skills/ skills: - enabled: false + enabled: true # controls: # 1. whether to copy custom agents from `src/bcbench/agent/shared/instructions//agents/` diff --git a/src/bcbench/agent/shared/instructions/microsoft-BCApps/skills/al-bugfix-structured/SKILL.md b/src/bcbench/agent/shared/instructions/microsoft-BCApps/skills/al-bugfix-structured/SKILL.md new file mode 100644 index 000000000..2db342d61 --- /dev/null +++ b/src/bcbench/agent/shared/instructions/microsoft-BCApps/skills/al-bugfix-structured/SKILL.md @@ -0,0 +1,54 @@ +--- +name: al-bugfix-structured +description: Structural best-practice guidance for fixing bugs in Microsoft Dynamics 365 Business Central (AL) code. Use this when fixing an AL issue or implementing an AL code change in Business Central, to avoid common cross-layer failure modes (validation semantics, event/trigger placement, workflow completeness, object availability, syntax). +--- + +When fixing an AL bug in Business Central, apply the guidance for every layer that +is relevant to the change. The bullets are ordered from most fundamental to most +ecosystem-dependent; a fix that respects all applicable layers is far more likely +to be correct. + +## L1 - Syntax / Representation + +- Produce valid AL: correct `trigger` declarations and procedure signatures, + balanced `begin`/`end` blocks, and object identifiers of at most 30 characters. +- Match member names, types, and parameter lists exactly to the declarations. + +## L2 - Execution / Validation Semantics + +- When a field change must run its validation logic, set it with + `Rec.Validate("Field", Value)` rather than a direct `Rec."Field" := Value` + assignment. +- Respect the validation and modification order; call `TestField` before a state + transition that requires the field to be set. +- Check the return value of `Get`/`Find*` before using the record. + +## L3 - Event-Driven Paradigm + +- Put the logic in the CORRECT trigger or event, and keep it there: e.g. field + validation belongs in `OnValidate`, not relocated into a later processing flow. +- Prefer subscribing to a published event (`[EventSubscriber]`) over directly + modifying a core/base object when extending behaviour. +- Respect trigger responsibility: do not persist or compute state from a trigger + (e.g. `OnModify`) when the intended owner is a page/workflow step, or vice versa. + +## L4 - Workflow / Business-Logic Composition + +- Implement the COMPLETE business process: include every required + validation / posting / approval step, take the correct conditional branch, and + apply the correct record scope and filters. +- Do not drop a required step, leave a branch unhandled, or widen/narrow a filter + beyond what the requirement specifies. + +## L5 - Toolchain / Ecosystem Constraints + +- Only reference objects, fields, methods, and events that actually exist and are + accessible to the extension. +- Do not assume a record exposes a field or method it does not have, and do not + call inaccessible or `Internal` members or non-existent events. + +## How to use + +1. Read the issue and the code under change; identify which layers the fix touches. +2. Apply the bullets for those layers as you write the change. +3. Re-check the change against each applicable layer before finishing. diff --git a/src/bcbench/agent/shared/instructions/microsoftInternal-NAV/skills/al-bugfix-structured/SKILL.md b/src/bcbench/agent/shared/instructions/microsoftInternal-NAV/skills/al-bugfix-structured/SKILL.md new file mode 100644 index 000000000..2db342d61 --- /dev/null +++ b/src/bcbench/agent/shared/instructions/microsoftInternal-NAV/skills/al-bugfix-structured/SKILL.md @@ -0,0 +1,54 @@ +--- +name: al-bugfix-structured +description: Structural best-practice guidance for fixing bugs in Microsoft Dynamics 365 Business Central (AL) code. Use this when fixing an AL issue or implementing an AL code change in Business Central, to avoid common cross-layer failure modes (validation semantics, event/trigger placement, workflow completeness, object availability, syntax). +--- + +When fixing an AL bug in Business Central, apply the guidance for every layer that +is relevant to the change. The bullets are ordered from most fundamental to most +ecosystem-dependent; a fix that respects all applicable layers is far more likely +to be correct. + +## L1 - Syntax / Representation + +- Produce valid AL: correct `trigger` declarations and procedure signatures, + balanced `begin`/`end` blocks, and object identifiers of at most 30 characters. +- Match member names, types, and parameter lists exactly to the declarations. + +## L2 - Execution / Validation Semantics + +- When a field change must run its validation logic, set it with + `Rec.Validate("Field", Value)` rather than a direct `Rec."Field" := Value` + assignment. +- Respect the validation and modification order; call `TestField` before a state + transition that requires the field to be set. +- Check the return value of `Get`/`Find*` before using the record. + +## L3 - Event-Driven Paradigm + +- Put the logic in the CORRECT trigger or event, and keep it there: e.g. field + validation belongs in `OnValidate`, not relocated into a later processing flow. +- Prefer subscribing to a published event (`[EventSubscriber]`) over directly + modifying a core/base object when extending behaviour. +- Respect trigger responsibility: do not persist or compute state from a trigger + (e.g. `OnModify`) when the intended owner is a page/workflow step, or vice versa. + +## L4 - Workflow / Business-Logic Composition + +- Implement the COMPLETE business process: include every required + validation / posting / approval step, take the correct conditional branch, and + apply the correct record scope and filters. +- Do not drop a required step, leave a branch unhandled, or widen/narrow a filter + beyond what the requirement specifies. + +## L5 - Toolchain / Ecosystem Constraints + +- Only reference objects, fields, methods, and events that actually exist and are + accessible to the extension. +- Do not assume a record exposes a field or method it does not have, and do not + call inaccessible or `Internal` members or non-existent events. + +## How to use + +1. Read the issue and the code under change; identify which layers the fix touches. +2. Apply the bullets for those layers as you write the change. +3. Re-check the change against each applicable layer before finishing. diff --git a/src/bcbench/agent/shared/prompt.py b/src/bcbench/agent/shared/prompt.py index 1dd36d360..f5a246e03 100644 --- a/src/bcbench/agent/shared/prompt.py +++ b/src/bcbench/agent/shared/prompt.py @@ -17,7 +17,7 @@ def _transform_image_paths(content: str) -> str: def build_prompt(entry: BaseDatasetEntry, repo_path: Path, config: dict, category: EvaluationCategory, al_mcp: bool = False) -> str: prompt_config = config.get("prompt", {}) - template_str = prompt_config.get(f"{category.value}-template") + template_str = prompt_config.get(f"{category.prompt_template_key}-template") include_project_paths = prompt_config.get("include_project_paths") test_gen_input: str = prompt_config.get("test-generation-input", "problem-statement") diff --git a/src/bcbench/analysis/__init__.py b/src/bcbench/analysis/__init__.py new file mode 100644 index 000000000..3cdd5d2ce --- /dev/null +++ b/src/bcbench/analysis/__init__.py @@ -0,0 +1,55 @@ +"""Analysis module for family-level counterfactual evaluation.""" + +from bcbench.analysis.aggregator import build_families +from bcbench.analysis.family import FamilyOutcome, FamilyType, InstanceResult +from bcbench.analysis.metrics import ( + Consistency, + cf_exposed_failure_count, + classify_consistency, + consistency_distribution, + correctness_drop, + failure_layer_distribution, + family_type_distribution, + fragility_rate, + layer_conditioned_fragility, + mean_severity, +) +from bcbench.analysis.sensitivity import ( + CounterfactualPatchPair, + PatchDistance, + Reaction, + build_patch_pairs, + mean_sensitivity, + median_sensitivity, + patch_distance, + reaction_distribution, + sensitivity_score, + structural_distance, +) + +__all__ = [ + "Consistency", + "CounterfactualPatchPair", + "FamilyOutcome", + "FamilyType", + "InstanceResult", + "PatchDistance", + "Reaction", + "build_families", + "build_patch_pairs", + "cf_exposed_failure_count", + "classify_consistency", + "consistency_distribution", + "correctness_drop", + "failure_layer_distribution", + "family_type_distribution", + "fragility_rate", + "layer_conditioned_fragility", + "mean_sensitivity", + "mean_severity", + "median_sensitivity", + "patch_distance", + "reaction_distribution", + "sensitivity_score", + "structural_distance", +] diff --git a/src/bcbench/analysis/aggregator.py b/src/bcbench/analysis/aggregator.py new file mode 100644 index 000000000..d2303576d --- /dev/null +++ b/src/bcbench/analysis/aggregator.py @@ -0,0 +1,75 @@ +"""Aggregate instance-level results into family-level outcomes.""" + +from __future__ import annotations + +import re +from collections import defaultdict + +from bcbench.analysis.family import FamilyOutcome, InstanceResult +from bcbench.results.base import ExecutionBasedEvaluationResult +from bcbench.types import FailureLayer + +_CF_PATTERN = re.compile(r"^(.+)__cf-\d+$") + + +def _extract_base_id(instance_id: str) -> str | None: + m = _CF_PATTERN.match(instance_id) + return m.group(1) if m else None + + +def build_families( + results: list[ExecutionBasedEvaluationResult], + failure_layers: dict[str, FailureLayer] | None = None, +) -> list[FamilyOutcome]: + """Group results into families and compute family-level outcomes. + + Args: + results: All instance-level results (base + CF) for a single model run. + failure_layers: Optional map of base_instance_id -> FailureLayer. + """ + if failure_layers is None: + failure_layers = {} + + base_results: dict[str, ExecutionBasedEvaluationResult] = {} + cf_results: dict[str, list[ExecutionBasedEvaluationResult]] = defaultdict(list) + + for result in results: + base_id = _extract_base_id(result.instance_id) + if base_id is not None: + cf_results[base_id].append(result) + else: + base_results[result.instance_id] = result + + families: list[FamilyOutcome] = [] + for base_id, base_result in base_results.items(): + cfs = cf_results.get(base_id, []) + if not cfs: + continue + + base_inst = InstanceResult( + instance_id=base_result.instance_id, + is_base=True, + compiled=base_result.build, + passed=base_result.resolved, + ) + + cf_insts = tuple( + InstanceResult( + instance_id=cf.instance_id, + is_base=False, + compiled=cf.build, + passed=cf.resolved, + ) + for cf in sorted(cfs, key=lambda c: c.instance_id) + ) + + families.append( + FamilyOutcome( + family_id=base_id, + failure_layer=failure_layers.get(base_id), + base=base_inst, + cfs=cf_insts, + ) + ) + + return sorted(families, key=lambda f: f.family_id) diff --git a/src/bcbench/analysis/annotation.py b/src/bcbench/analysis/annotation.py new file mode 100644 index 000000000..86ee4ffc9 --- /dev/null +++ b/src/bcbench/analysis/annotation.py @@ -0,0 +1,149 @@ +"""Sample failed instances for manual failure-layer annotation. + +Also provides inter-annotator agreement (IAA) helpers for the double-annotated +subset required by the annotation protocol: a raw agreement rate and Cohen's +kappa over two annotators' primary-failure-layer labels. +""" + +from __future__ import annotations + +import csv +from dataclasses import dataclass +from pathlib import Path + +from bcbench.analysis.family import FamilyOutcome, FamilyType, InstanceResult +from bcbench.logger import get_logger + +logger = get_logger(__name__) + +ANNOTATION_COLUMNS = [ + "family_id", + "instance_id", + "family_type", + "pattern", + "failure_layer", + "base_passed", + "cf_passed", + "primary_failure_layer", + "error_evidence", + "annotator_notes", +] + + +def sample_failures( + families: list[FamilyOutcome], + max_samples: int | None = None, +) -> list[dict[str, str]]: + priority = [FamilyType.FRAGILE, FamilyType.UNSOLVED, FamilyType.INCONSISTENT] + sorted_families = sorted(families, key=lambda f: priority.index(f.family_type) if f.family_type in priority else 99) + + rows: list[dict[str, str]] = [] + for family in sorted_families: + if family.family_type == FamilyType.STABLE_CORRECT: + continue + + if not family.base.passed: + rows.append(_make_row(family, family.base)) + + for cf in family.cfs: + if not cf.passed: + rows.append(_make_row(family, cf)) + + if max_samples and len(rows) >= max_samples: + rows = rows[:max_samples] + break + + return rows + + +def _make_row(family: FamilyOutcome, instance: InstanceResult) -> dict[str, str]: + return { + "family_id": family.family_id, + "instance_id": instance.instance_id, + "family_type": family.family_type.value, + "pattern": str(family.pattern), + "failure_layer": family.failure_layer.value if family.failure_layer else "", + "base_passed": str(int(family.base.passed)), + "cf_passed": ",".join(str(int(cf.passed)) for cf in family.cfs), + "primary_failure_layer": "", + "error_evidence": "", + "annotator_notes": "", + } + + +def write_annotation_csv(rows: list[dict[str, str]], output_path: Path) -> None: + output_path.parent.mkdir(parents=True, exist_ok=True) + with open(output_path, "w", newline="", encoding="utf-8") as f: + writer = csv.DictWriter(f, fieldnames=ANNOTATION_COLUMNS) + writer.writeheader() + writer.writerows(rows) + logger.info(f"Wrote {len(rows)} annotation rows to {output_path}") + + +@dataclass(frozen=True) +class AgreementResult: + """Inter-annotator agreement over a double-annotated subset.""" + + n: int + agreement_rate: float + cohen_kappa: float | None + + +def agreement_rate(labels_a: list[str], labels_b: list[str]) -> float: + """Raw proportion of items on which the two annotators chose the same label.""" + if len(labels_a) != len(labels_b): + raise ValueError("Label lists must have equal length") + if not labels_a: + return 0.0 + matches = sum(1 for a, b in zip(labels_a, labels_b, strict=True) if a == b) + return matches / len(labels_a) + + +def cohen_kappa(labels_a: list[str], labels_b: list[str]) -> float | None: + """Cohen's kappa for two annotators over the same items. + + Returns None when kappa is undefined (no items, or perfect-chance-agreement + where the expected agreement is 1.0, e.g. both annotators used a single label). + """ + if len(labels_a) != len(labels_b): + raise ValueError("Label lists must have equal length") + n = len(labels_a) + if n == 0: + return None + + observed = agreement_rate(labels_a, labels_b) + + categories = set(labels_a) | set(labels_b) + expected = 0.0 + for cat in categories: + p_a = sum(1 for x in labels_a if x == cat) / n + p_b = sum(1 for x in labels_b if x == cat) / n + expected += p_a * p_b + + if expected >= 1.0: + return None + return (observed - expected) / (1.0 - expected) + + +def inter_annotator_agreement(annotations_a: dict[str, str], annotations_b: dict[str, str]) -> AgreementResult: + """Compute IAA over instances annotated by both annotators. + + Args: + annotations_a: instance_id -> primary failure layer (annotator A). + annotations_b: instance_id -> primary failure layer (annotator B). + + Only instances present in both maps (and with non-empty labels in both) are + used; the order is fixed by sorted instance_id for determinism. + """ + shared = sorted( + iid + for iid in set(annotations_a) & set(annotations_b) + if annotations_a[iid] and annotations_b[iid] + ) + labels_a = [annotations_a[iid] for iid in shared] + labels_b = [annotations_b[iid] for iid in shared] + return AgreementResult( + n=len(shared), + agreement_rate=agreement_rate(labels_a, labels_b), + cohen_kappa=cohen_kappa(labels_a, labels_b), + ) diff --git a/src/bcbench/analysis/family.py b/src/bcbench/analysis/family.py new file mode 100644 index 000000000..3b123563d --- /dev/null +++ b/src/bcbench/analysis/family.py @@ -0,0 +1,70 @@ +"""Family-level evaluation data models. + +The primary analysis unit is the family, not the individual instance. +Family members (base + CFs) are correlated samples sharing the same task +skeleton — they are NOT independent IID samples. +""" + +from __future__ import annotations + +from dataclasses import dataclass +from enum import StrEnum + +from bcbench.types import FailureLayer + + +class FamilyType(StrEnum): + STABLE_CORRECT = "stable-correct" + FRAGILE = "fragile" + UNSOLVED = "unsolved" + INCONSISTENT = "inconsistent" + + +@dataclass(frozen=True) +class InstanceResult: + instance_id: str + is_base: bool + compiled: bool + passed: bool + + +@dataclass(frozen=True) +class FamilyOutcome: + family_id: str + failure_layer: FailureLayer | None + base: InstanceResult + cfs: tuple[InstanceResult, ...] + + @property + def pattern(self) -> tuple[int, ...]: + return (int(self.base.passed), *(int(cf.passed) for cf in self.cfs)) + + @property + def family_type(self) -> FamilyType: + if self.base.passed and all(cf.passed for cf in self.cfs): + return FamilyType.STABLE_CORRECT + if self.base.passed and any(not cf.passed for cf in self.cfs): + return FamilyType.FRAGILE + if not self.base.passed and any(cf.passed for cf in self.cfs): + return FamilyType.INCONSISTENT + return FamilyType.UNSOLVED + + @property + def is_fragile(self) -> bool: + return self.family_type == FamilyType.FRAGILE + + @property + def cf_fail_count(self) -> int: + return sum(1 for cf in self.cfs if not cf.passed) + + @property + def cf_total(self) -> int: + return len(self.cfs) + + @property + def severity(self) -> float | None: + if self.family_type not in (FamilyType.FRAGILE, FamilyType.STABLE_CORRECT): + return None + if not self.cfs: + return None + return self.cf_fail_count / self.cf_total diff --git a/src/bcbench/analysis/metrics.py b/src/bcbench/analysis/metrics.py new file mode 100644 index 000000000..cbe545477 --- /dev/null +++ b/src/bcbench/analysis/metrics.py @@ -0,0 +1,103 @@ +"""Aggregate diagnostic metrics computed across families.""" + +from __future__ import annotations + +from collections import Counter +from enum import StrEnum + +from bcbench.analysis.family import FamilyOutcome, FamilyType + + +class Consistency(StrEnum): + """Four-way counterfactual consistency outcome for a single (base, CF) pair. + + Unlike FamilyType (which summarizes a base + all its CFs), this classifies + one base instance against one CF instance, so a family with N CFs yields N + consistency outcomes. + """ + + BOTH_CORRECT = "both-correct" + BASE_CORRECT_CF_INCORRECT = "base-correct-cf-incorrect" + BOTH_INCORRECT = "both-incorrect" + BASE_INCORRECT_CF_CORRECT = "base-incorrect-cf-correct" + + +def classify_consistency(base_passed: bool, cf_passed: bool) -> Consistency: + if base_passed and cf_passed: + return Consistency.BOTH_CORRECT + if base_passed and not cf_passed: + return Consistency.BASE_CORRECT_CF_INCORRECT + if not base_passed and cf_passed: + return Consistency.BASE_INCORRECT_CF_CORRECT + return Consistency.BOTH_INCORRECT + + +def consistency_distribution(families: list[FamilyOutcome]) -> dict[str, int]: + """Four-way consistency table counted over every (base, CF) pair. + + The four buckets are mutually exclusive and exhaustive: + both-correct, base-correct-cf-incorrect, both-incorrect, base-incorrect-cf-correct. + """ + counts: Counter[str] = Counter() + for family in families: + for cf in family.cfs: + counts[classify_consistency(family.base.passed, cf.passed).value] += 1 + return {c.value: counts.get(c.value, 0) for c in Consistency} + + +def correctness_drop(families: list[FamilyOutcome]) -> float: + """Pair-level P(CF incorrect | base correct). + + Among all (base, CF) pairs whose base instance passed, the fraction whose CF + instance failed. This differs from `fragility_rate`: fragility is family-level + (a family counts once if *any* CF fails), whereas correctness drop is computed + over individual CF instances. + """ + eligible = 0 + dropped = 0 + for family in families: + if not family.base.passed: + continue + for cf in family.cfs: + eligible += 1 + if not cf.passed: + dropped += 1 + if eligible == 0: + return 0.0 + return dropped / eligible + + +def family_type_distribution(families: list[FamilyOutcome]) -> dict[str, int]: + return dict(Counter(f.family_type.value for f in families)) + + +def fragility_rate(families: list[FamilyOutcome]) -> float: + eligible = [f for f in families if f.base.passed] + if not eligible: + return 0.0 + return sum(1 for f in eligible if f.is_fragile) / len(eligible) + + +def mean_severity(families: list[FamilyOutcome]) -> float | None: + severities = [f.severity for f in families if f.severity is not None] + if not severities: + return None + return sum(severities) / len(severities) + + +def layer_conditioned_fragility(families: list[FamilyOutcome]) -> dict[str, float]: + by_layer: dict[str, list[FamilyOutcome]] = {} + for f in families: + if f.failure_layer is None: + continue + by_layer.setdefault(f.failure_layer.value, []).append(f) + return {layer: fragility_rate(fams) for layer, fams in sorted(by_layer.items())} + + +def failure_layer_distribution(families: list[FamilyOutcome]) -> dict[str, int]: + counts = Counter(f.failure_layer.value for f in families if f.failure_layer is not None) + return dict(sorted(counts.items())) + + +def cf_exposed_failure_count(families: list[FamilyOutcome]) -> int: + return sum(1 for f in families if f.family_type == FamilyType.FRAGILE and f.cf_fail_count == f.cf_total) diff --git a/src/bcbench/analysis/sensitivity.py b/src/bcbench/analysis/sensitivity.py new file mode 100644 index 000000000..43be894cf --- /dev/null +++ b/src/bcbench/analysis/sensitivity.py @@ -0,0 +1,201 @@ +"""Structural-change metrics for counterfactual sensitivity analysis. + +These metrics compare, for each base->CF pair, how much the *specification* changed +against how much the *model's generated patch* changed. They answer Exp 2 questions +that pass/fail metrics cannot: did the model react to the requirement shift, and did +it react by the right amount? + +- Sensitivity Score: ``S = output_delta / spec_delta``. S~1 means the model adjusted + its solution in proportion to the spec change; S<<1 is under-reaction (ignored the + shift); S>>1 is over-reaction (rewrote far more than the shift demanded). +- Patch Distance: exposes the raw component distances plus a direction label and an + ``unrelated_rewrite`` flag, so a notebook can judge under/over-reaction directly. + +Structural distance is line-based (patches are line-oriented) and uses only the +standard library, so no edit-distance dependency is required. +""" + +from __future__ import annotations + +import difflib +import re +from dataclasses import dataclass +from enum import StrEnum +from statistics import median + +__all__ = [ + "CounterfactualPatchPair", + "PatchDistance", + "Reaction", + "build_patch_pairs", + "mean_sensitivity", + "median_sensitivity", + "patch_distance", + "reaction_distribution", + "sensitivity_score", + "structural_distance", +] + +_CF_PATTERN = re.compile(r"^(.+)__cf-\d+$") + +#: Half-width of the multiplicative band (around S=1) treated as "appropriate". +#: With 0.5, S in [0.5, 1.5] is appropriate, below is under-, above is over-reaction. +DEFAULT_TOLERANCE = 0.5 + + +class Reaction(StrEnum): + UNDER = "under-reaction" + APPROPRIATE = "appropriate" + OVER = "over-reaction" + + +def structural_distance(a: str, b: str) -> float: + """Normalized line-level distance in [0, 1] (0 = identical, 1 = disjoint).""" + a_lines = a.splitlines() + b_lines = b.splitlines() + if not a_lines and not b_lines: + return 0.0 + ratio = difflib.SequenceMatcher(None, a_lines, b_lines).ratio() + return 1.0 - ratio + + +@dataclass(frozen=True) +class CounterfactualPatchPair: + """A base->CF pair carrying both gold (spec) and model-generated patches.""" + + family_id: str + cf_instance_id: str + base_passed: bool + cf_passed: bool + base_gold_test_patch: str + cf_gold_test_patch: str + base_output_patch: str + cf_output_patch: str + + @property + def spec_delta(self) -> float: + """How much the requirement moved, from the gold CF test patches.""" + return structural_distance(self.base_gold_test_patch, self.cf_gold_test_patch) + + @property + def output_delta(self) -> float: + """How much the model moved its own solution between base and CF.""" + return structural_distance(self.base_output_patch, self.cf_output_patch) + + +@dataclass(frozen=True) +class PatchDistance: + """Diagnostic breakdown of a pair's reaction to the spec change.""" + + spec_delta: float + output_delta: float + ratio: float | None + reaction: Reaction | None + unrelated_rewrite: bool + + +def sensitivity_score(pair: CounterfactualPatchPair) -> float | None: + """``output_delta / spec_delta``; None when the spec did not change.""" + spec = pair.spec_delta + if spec <= 0.0: + return None + return pair.output_delta / spec + + +def patch_distance(pair: CounterfactualPatchPair, tolerance: float = DEFAULT_TOLERANCE) -> PatchDistance: + """Component distances plus reaction direction and unrelated-rewrite flag. + + ``unrelated_rewrite`` flags over-reactions that broke the CF: the model rewrote + far more than the shift demanded *and* the CF still failed, a signature of edits + unrelated to the requirement change. + """ + spec = pair.spec_delta + output = pair.output_delta + ratio = sensitivity_score(pair) + + reaction: Reaction | None + if ratio is None: + reaction = None + elif ratio < 1.0 - tolerance: + reaction = Reaction.UNDER + elif ratio > 1.0 + tolerance: + reaction = Reaction.OVER + else: + reaction = Reaction.APPROPRIATE + + unrelated_rewrite = reaction == Reaction.OVER and not pair.cf_passed + return PatchDistance( + spec_delta=spec, + output_delta=output, + ratio=ratio, + reaction=reaction, + unrelated_rewrite=unrelated_rewrite, + ) + + +def mean_sensitivity(pairs: list[CounterfactualPatchPair]) -> float | None: + """Mean sensitivity score over pairs whose spec actually changed. + + The mean is sensitive to outliers: when the spec barely moves (small + ``spec_delta``) the ratio explodes, so prefer `median_sensitivity` or + `reaction_distribution` as the robust headline. + """ + scores = [s for p in pairs if (s := sensitivity_score(p)) is not None] + if not scores: + return None + return sum(scores) / len(scores) + + +def median_sensitivity(pairs: list[CounterfactualPatchPair]) -> float | None: + """Median sensitivity score; robust to the heavy right skew of the ratio.""" + scores = [s for p in pairs if (s := sensitivity_score(p)) is not None] + if not scores: + return None + return median(scores) + + +def reaction_distribution(pairs: list[CounterfactualPatchPair], tolerance: float = DEFAULT_TOLERANCE) -> dict[str, int]: + """Count of under-/appropriate/over-reaction pairs (spec-unchanged pairs skipped).""" + counts = {r.value: 0 for r in Reaction} + for pair in pairs: + reaction = patch_distance(pair, tolerance).reaction + if reaction is not None: + counts[reaction.value] += 1 + return counts + + +def build_patch_pairs( + generated_patches: dict[str, str], + gold_test_patches: dict[str, str], + passed: dict[str, bool], +) -> list[CounterfactualPatchPair]: + """Assemble base->CF pairs from per-instance lookups. + + Args: + generated_patches: instance_id -> model output patch (the result ``output``). + gold_test_patches: instance_id -> gold ``test_patch`` from the dataset. + passed: instance_id -> whether the instance resolved. + + Only CF instances whose base instance is present in all three lookups are paired. + """ + pairs: list[CounterfactualPatchPair] = [] + for cf_id in sorted(generated_patches): + m = _CF_PATTERN.match(cf_id) + if m is None: + continue + base_id = m.group(1) + if base_id not in generated_patches or base_id not in gold_test_patches or cf_id not in gold_test_patches: + continue + pairs.append( + CounterfactualPatchPair( + family_id=base_id, + cf_instance_id=cf_id, + base_passed=passed.get(base_id, False), + cf_passed=passed.get(cf_id, False), + base_gold_test_patch=gold_test_patches[base_id], + cf_gold_test_patch=gold_test_patches[cf_id], + base_output_patch=generated_patches[base_id], + cf_output_patch=generated_patches[cf_id], + ) + ) + return pairs diff --git a/src/bcbench/commands/dataset.py b/src/bcbench/commands/dataset.py index 1b84109ed..7f5f1af0d 100644 --- a/src/bcbench/commands/dataset.py +++ b/src/bcbench/commands/dataset.py @@ -51,7 +51,11 @@ def list_entries( diff_output: str = result.stdout entry_ids: list[str] = _modified_instance_ids_from_diff(diff_output) else: - entries: list[BaseDatasetEntry] = entry_cls.load(resolved_path, random=4 if test_run else None) + entries: list[BaseDatasetEntry] = entry_cls.load(resolved_path) + if test_run: + import random as random_module + + entries = random_module.sample(entries, min(4, len(entries))) entry_ids: list[str] = [e.instance_id for e in entries] print(f"Found {len(entry_ids)} entry(ies){' (modified only)' if modified_only else ''}:") diff --git a/src/bcbench/dataset/__init__.py b/src/bcbench/dataset/__init__.py index 35f0bc367..a71836ec0 100644 --- a/src/bcbench/dataset/__init__.py +++ b/src/bcbench/dataset/__init__.py @@ -1,10 +1,12 @@ """Dataset module for querying, validating and analyze dataset entries.""" +from bcbench.dataset.counterfactual_entry import CounterfactualEntry from bcbench.dataset.dataset_entry import BaseDatasetEntry, BugFixEntry, NL2ALEntry, TestEntry, TestGenEntry __all__ = [ "BaseDatasetEntry", "BugFixEntry", + "CounterfactualEntry", "NL2ALEntry", "TestEntry", "TestGenEntry", diff --git a/src/bcbench/dataset/counterfactual_entry.py b/src/bcbench/dataset/counterfactual_entry.py new file mode 100644 index 000000000..d7b48b08d --- /dev/null +++ b/src/bcbench/dataset/counterfactual_entry.py @@ -0,0 +1,109 @@ +"""Counterfactual dataset entry model. + +CF entries are lightweight variants of base bug-fix entries. They share the same +repo state (repo, base_commit, project_paths) but provide a different fix and test pair. +At load time, base entry fields are resolved from bcbench.jsonl. +""" + +from __future__ import annotations + +from pathlib import Path +from typing import Self + +from pydantic import Field + +from bcbench.config import get_config +from bcbench.dataset.dataset_entry import _BugFixTestGenBase + +_config = get_config() + +_CF_INSTANCE_PATTERN = r"^[a-zA-Z0-9_-]+__[a-zA-Z0-9_-]+-[0-9]+__cf-[0-9]+$" + +__all__ = ["CounterfactualEntry"] + + +class CounterfactualEntry(_BugFixTestGenBase): + """Dataset entry for the counterfactual evaluation category. + + Inherits all execution fields from _BugFixTestGenBase (patch, test_patch, + FAIL_TO_PASS, PASS_TO_PASS) and adds CF-specific metadata. + + At load time, missing fields (repo, base_commit, project_paths, etc.) + are resolved from the base entry in bcbench.jsonl. + """ + + instance_id: str = Field(pattern=_CF_INSTANCE_PATTERN) + + base_instance_id: str + variant_description: str = "" + failure_layer: str | None = None + problem_statement_override: str | None = None + + @property + def problem_statement_dir(self) -> Path: + if self.problem_statement_override: + return _config.paths.bc_bench_root / self.problem_statement_override + return _config.paths.problem_statement_dir / self.instance_id + + def get_expected_output(self) -> str: + return self.patch + + @classmethod + def load(cls, dataset_path: Path, entry_id: str | None = None, random: int | None = None) -> list[Self]: # ty: ignore[invalid-method-override] + from bcbench.dataset.dataset_entry import BugFixEntry + + base_dataset_path = _config.paths.dataset_dir / "bcbench.jsonl" + base_entries = {e.instance_id: e for e in BugFixEntry.load(base_dataset_path)} + + raw_entries = _load_raw_entries(dataset_path, entry_id) + + resolved: list[Self] = [] + for raw in raw_entries: + base = base_entries.get(raw["base_instance_id"]) + if base is None: + raise ValueError(f"Base entry '{raw['base_instance_id']}' not found for CF entry '{raw['instance_id']}'") + + merged = { + "repo": base.repo, + "base_commit": base.base_commit, + "created_at": base.created_at, + "environment_setup_version": base.environment_setup_version, + "project_paths": list(base.project_paths), + "metadata": base.metadata.model_dump(), + **raw, + } + resolved.append(cls.model_validate(merged)) + + if random is not None and random > 0: + import random as random_module + + return random_module.sample(resolved, min(random, len(resolved))) + + return resolved + + +def _load_raw_entries(dataset_path: Path, entry_id: str | None) -> list[dict]: + import json + + if not dataset_path.exists(): + raise FileNotFoundError(f"Dataset file not found: {dataset_path}") + + entries: list[dict] = [] + with open(dataset_path, encoding="utf-8") as f: + for line in f: + stripped = line.strip() + if not stripped: + continue + data = json.loads(stripped) + if entry_id: + if data["instance_id"] == entry_id: + return [data] + continue + entries.append(data) + + if entry_id: + from bcbench.exceptions import EntryNotFoundError + + raise EntryNotFoundError(entry_id) + + return entries diff --git a/src/bcbench/types.py b/src/bcbench/types.py index 02347bddb..d9f0e7ccb 100644 --- a/src/bcbench/types.py +++ b/src/bcbench/types.py @@ -28,6 +28,7 @@ "EvaluationContext", "ExpectedOutput", "ExperimentConfiguration", + "FailureLayer", ] @@ -131,11 +132,25 @@ class EvaluationCategory(StrEnum): BUG_FIX = "bug-fix" TEST_GENERATION = "test-generation" NL2AL = "nl2al" + CF = "cf" + + @property + def is_counterfactual(self) -> bool: + return self == EvaluationCategory.CF + + @property + def prompt_template_key(self) -> str: + if self.is_counterfactual: + return "counterfactual" + return self.value @property def dataset_path(self) -> Path: from bcbench.config import get_config + if self.is_counterfactual: + return get_config().paths.dataset_dir / "counterfactual.jsonl" + match self: case EvaluationCategory.BUG_FIX: return get_config().paths.dataset_dir / "bcbench.jsonl" @@ -149,6 +164,10 @@ def dataset_path(self) -> Path: @property def entry_class(self) -> type[BaseDatasetEntry]: from bcbench.dataset import BugFixEntry, NL2ALEntry, TestGenEntry + from bcbench.dataset.counterfactual_entry import CounterfactualEntry + + if self.is_counterfactual: + return CounterfactualEntry match self: case EvaluationCategory.BUG_FIX: @@ -166,6 +185,9 @@ def result_class(self) -> type[BaseEvaluationResult]: from bcbench.results.bugfix import BugFixResult from bcbench.results.testgeneration import TestGenerationResult + if self.is_counterfactual: + return BugFixResult + match self: case EvaluationCategory.BUG_FIX: return BugFixResult @@ -181,6 +203,9 @@ def summary_class(self) -> type[EvaluationResultSummary]: """Returns the EvaluationResultSummary subclass for this category.""" from bcbench.results.summary import ExecutionBasedEvaluationResultSummary, JudgeBasedEvaluationResultSummary + if self.is_counterfactual: + return ExecutionBasedEvaluationResultSummary + match self: case EvaluationCategory.BUG_FIX: return ExecutionBasedEvaluationResultSummary @@ -196,6 +221,9 @@ def aggregate_class(self) -> type[LeaderboardAggregate]: """Returns the LeaderboardAggregate subclass for this category, used for aggregating multiple runs on the same benchmark/model/agent combination.""" from bcbench.results.leaderboard import ExecutionBasedLeaderboardAggregate, JudgeBasedLeaderboardAggregate + if self.is_counterfactual: + return ExecutionBasedLeaderboardAggregate + match self: case EvaluationCategory.BUG_FIX: return ExecutionBasedLeaderboardAggregate @@ -210,6 +238,9 @@ def aggregate_class(self) -> type[LeaderboardAggregate]: def pipeline(self) -> EvaluationPipeline: from bcbench.evaluate import BugFixPipeline, NL2ALPipeline, TestGenerationPipeline + if self.is_counterfactual: + return BugFixPipeline() + match self: case EvaluationCategory.BUG_FIX: return BugFixPipeline() @@ -227,6 +258,9 @@ def evaluators(self) -> list[str]: Used for uploading evaluation results to long term storage. """ + if self.is_counterfactual: + return ["resolution_rate", "build_rate"] + match self: case EvaluationCategory.BUG_FIX: return ["resolution_rate", "build_rate"] @@ -240,6 +274,9 @@ def evaluators(self) -> list[str]: @property def core_score(self) -> str: """Name of the evaluator whose value is considered as CoreScore, required by bc-eval.""" + if self.is_counterfactual: + return "ResolutionRate" + match self: case EvaluationCategory.BUG_FIX | EvaluationCategory.TEST_GENERATION: return "ResolutionRate" @@ -251,6 +288,9 @@ def core_score(self) -> str: @property def requires_container(self) -> bool: """Whether evaluating this category builds/runs AL code and therefore needs a BC container.""" + if self.is_counterfactual: + return True + match self: case EvaluationCategory.BUG_FIX | EvaluationCategory.TEST_GENERATION: return True @@ -265,6 +305,9 @@ def runner(self) -> str: Only categories that require building BaseApp needs self-hosted runners. """ + if self.is_counterfactual: + return "GitHub-BCBench" + match self: case EvaluationCategory.BUG_FIX | EvaluationCategory.TEST_GENERATION: return "GitHub-BCBench" @@ -274,6 +317,14 @@ def runner(self) -> str: raise ValueError(f"Unknown evaluation category: {self}") +class FailureLayer(StrEnum): + L1_SYNTAX = "L1-syntax-representation" + L2_EXECUTION = "L2-execution-validation" + L3_EVENT = "L3-event-driven-paradigm" + L4_WORKFLOW = "L4-workflow-business-logic" + L5_TOOLCHAIN = "L5-toolchain-ecosystem" + + @dataclass(frozen=True) class ContainerConfig: name: str diff --git a/tests/test_counterfactual.py b/tests/test_counterfactual.py new file mode 100644 index 000000000..3f00b62f8 --- /dev/null +++ b/tests/test_counterfactual.py @@ -0,0 +1,195 @@ +"""Tests for counterfactual dataset entry loading and resolution.""" + +import json +from pathlib import Path +from unittest.mock import patch + +import pytest + +from bcbench.dataset import CounterfactualEntry +from bcbench.exceptions import EntryNotFoundError +from bcbench.types import EvaluationCategory +from tests.conftest import ( + VALID_BASE_COMMIT, + VALID_CREATED_AT, + VALID_ENVIRONMENT_VERSION, + VALID_PATCH, + VALID_PROJECT_PATHS, + VALID_REPO, + VALID_TEST_PATCH, +) + +BASE_INSTANCE_ID = "microsoftInternal__NAV-123456" +CF_INSTANCE_ID = "microsoftInternal__NAV-123456__cf-1" + + +def _create_base_jsonl(path: Path) -> Path: + base_entry = { + "instance_id": BASE_INSTANCE_ID, + "repo": VALID_REPO, + "base_commit": VALID_BASE_COMMIT, + "environment_setup_version": VALID_ENVIRONMENT_VERSION, + "project_paths": VALID_PROJECT_PATHS, + "patch": VALID_PATCH, + "test_patch": VALID_TEST_PATCH, + "created_at": VALID_CREATED_AT, + "FAIL_TO_PASS": [{"codeunitID": 100, "functionName": ["TestFunction"]}], + "PASS_TO_PASS": [], + } + file = path / "bcbench.jsonl" + file.write_text(json.dumps(base_entry) + "\n", encoding="utf-8") + return file + + +def _create_cf_jsonl(path: Path, instance_id: str = CF_INSTANCE_ID) -> Path: + cf_entry = { + "instance_id": instance_id, + "base_instance_id": BASE_INSTANCE_ID, + "variant_description": "Test variant", + "failure_layer": None, + "problem_statement_override": None, + "FAIL_TO_PASS": [{"codeunitID": 100, "functionName": ["TestFunction"]}], + "PASS_TO_PASS": [], + "test_patch": VALID_TEST_PATCH, + "patch": VALID_PATCH, + } + file = path / "counterfactual.jsonl" + file.write_text(json.dumps(cf_entry) + "\n", encoding="utf-8") + return file + + +class TestCounterfactualEntryLoading: + def test_load_resolves_base_fields(self, tmp_path): + _create_base_jsonl(tmp_path) + cf_file = _create_cf_jsonl(tmp_path) + + with patch("bcbench.dataset.counterfactual_entry._config") as mock_config: + mock_config.paths.dataset_dir = tmp_path + mock_config.paths.bc_bench_root = tmp_path + mock_config.paths.problem_statement_dir = tmp_path / "problemstatement" + mock_config.file_patterns.instance_pattern = r"^[a-zA-Z0-9_-]+__[a-zA-Z0-9_-]+-[0-9]+$" + mock_config.file_patterns.problem_statement_readme = "README.md" + + entries = CounterfactualEntry.load(cf_file) + + assert len(entries) == 1 + entry = entries[0] + assert entry.instance_id == CF_INSTANCE_ID + assert entry.base_instance_id == BASE_INSTANCE_ID + assert entry.repo == VALID_REPO + assert entry.base_commit == VALID_BASE_COMMIT + assert entry.environment_setup_version == VALID_ENVIRONMENT_VERSION + assert list(entry.project_paths) == VALID_PROJECT_PATHS + + def test_load_by_entry_id(self, tmp_path): + _create_base_jsonl(tmp_path) + cf_file = _create_cf_jsonl(tmp_path) + + with patch("bcbench.dataset.counterfactual_entry._config") as mock_config: + mock_config.paths.dataset_dir = tmp_path + mock_config.paths.bc_bench_root = tmp_path + mock_config.paths.problem_statement_dir = tmp_path / "problemstatement" + mock_config.file_patterns.instance_pattern = r"^[a-zA-Z0-9_-]+__[a-zA-Z0-9_-]+-[0-9]+$" + mock_config.file_patterns.problem_statement_readme = "README.md" + + entries = CounterfactualEntry.load(cf_file, entry_id=CF_INSTANCE_ID) + + assert len(entries) == 1 + assert entries[0].instance_id == CF_INSTANCE_ID + + def test_load_missing_base_raises(self, tmp_path): + cf_file = _create_cf_jsonl(tmp_path) + empty_base = tmp_path / "bcbench.jsonl" + empty_base.write_text("", encoding="utf-8") + + with patch("bcbench.dataset.counterfactual_entry._config") as mock_config: + mock_config.paths.dataset_dir = tmp_path + mock_config.paths.bc_bench_root = tmp_path + mock_config.paths.problem_statement_dir = tmp_path / "problemstatement" + mock_config.file_patterns.instance_pattern = r"^[a-zA-Z0-9_-]+__[a-zA-Z0-9_-]+-[0-9]+$" + mock_config.file_patterns.problem_statement_readme = "README.md" + + with pytest.raises(ValueError, match="Base entry"): + CounterfactualEntry.load(cf_file) + + def test_load_entry_not_found_raises(self, tmp_path): + _create_base_jsonl(tmp_path) + cf_file = _create_cf_jsonl(tmp_path) + + with patch("bcbench.dataset.counterfactual_entry._config") as mock_config: + mock_config.paths.dataset_dir = tmp_path + mock_config.paths.bc_bench_root = tmp_path + mock_config.paths.problem_statement_dir = tmp_path / "problemstatement" + mock_config.file_patterns.instance_pattern = r"^[a-zA-Z0-9_-]+__[a-zA-Z0-9_-]+-[0-9]+$" + mock_config.file_patterns.problem_statement_readme = "README.md" + + with pytest.raises(EntryNotFoundError): + CounterfactualEntry.load(cf_file, entry_id="nonexistent__NAV-999__cf-1") + + +class TestCounterfactualEntrySchema: + def test_get_expected_output_returns_patch(self, tmp_path): + _create_base_jsonl(tmp_path) + cf_file = _create_cf_jsonl(tmp_path) + + with patch("bcbench.dataset.counterfactual_entry._config") as mock_config: + mock_config.paths.dataset_dir = tmp_path + mock_config.paths.bc_bench_root = tmp_path + mock_config.paths.problem_statement_dir = tmp_path / "problemstatement" + mock_config.file_patterns.instance_pattern = r"^[a-zA-Z0-9_-]+__[a-zA-Z0-9_-]+-[0-9]+$" + mock_config.file_patterns.problem_statement_readme = "README.md" + + entry = CounterfactualEntry.load(cf_file)[0] + + assert entry.get_expected_output() == VALID_PATCH + + def test_problem_statement_override_used(self, tmp_path): + _create_base_jsonl(tmp_path) + + cf_entry = { + "instance_id": CF_INSTANCE_ID, + "base_instance_id": BASE_INSTANCE_ID, + "variant_description": "Test variant", + "failure_layer": None, + "problem_statement_override": "dataset/problemstatement/microsoftInternal__NAV-123456__cf-1", + "FAIL_TO_PASS": [{"codeunitID": 100, "functionName": ["TestFunction"]}], + "PASS_TO_PASS": [], + "test_patch": VALID_TEST_PATCH, + "patch": VALID_PATCH, + } + cf_file = tmp_path / "counterfactual.jsonl" + cf_file.write_text(json.dumps(cf_entry) + "\n", encoding="utf-8") + + with patch("bcbench.dataset.counterfactual_entry._config") as mock_config: + mock_config.paths.dataset_dir = tmp_path + mock_config.paths.bc_bench_root = tmp_path + mock_config.paths.problem_statement_dir = tmp_path / "problemstatement" + mock_config.file_patterns.instance_pattern = r"^[a-zA-Z0-9_-]+__[a-zA-Z0-9_-]+-[0-9]+$" + mock_config.file_patterns.problem_statement_readme = "README.md" + + entry = CounterfactualEntry.load(cf_file)[0] + + assert "cf-1" in str(entry.problem_statement_dir) + + +class TestCounterfactualCategory: + def test_category_properties(self): + cat = EvaluationCategory.CF + assert cat.value == "cf" + assert cat.is_counterfactual + assert cat.prompt_template_key == "counterfactual" + assert cat.dataset_path.name == "counterfactual.jsonl" + assert cat.entry_class is CounterfactualEntry + assert cat.pipeline is not None + assert cat.summary_class is not None + assert cat.result_class is not None + + def test_non_cf_categories_are_not_counterfactual(self): + assert not EvaluationCategory.BUG_FIX.is_counterfactual + assert not EvaluationCategory.TEST_GENERATION.is_counterfactual + + def test_reuses_bugfix_pipeline(self): + from bcbench.evaluate import BugFixPipeline + + pipeline = EvaluationCategory.CF.pipeline + assert isinstance(pipeline, BugFixPipeline) diff --git a/tests/test_family_analysis.py b/tests/test_family_analysis.py new file mode 100644 index 000000000..55137d88a --- /dev/null +++ b/tests/test_family_analysis.py @@ -0,0 +1,241 @@ +"""Tests for family-level evaluation models, aggregation, and metrics.""" + +import pytest + +from bcbench.analysis.aggregator import build_families +from bcbench.analysis.family import FamilyOutcome, FamilyType, InstanceResult +from bcbench.analysis.metrics import ( + cf_exposed_failure_count, + failure_layer_distribution, + family_type_distribution, + fragility_rate, + layer_conditioned_fragility, + mean_severity, +) +from bcbench.results.base import ExecutionBasedEvaluationResult +from bcbench.types import EvaluationCategory, FailureLayer + + +def _inst(instance_id: str, *, is_base: bool, compiled: bool, passed: bool) -> InstanceResult: + return InstanceResult(instance_id=instance_id, is_base=is_base, compiled=compiled, passed=passed) + + +def _family( + family_id: str, + base_passed: bool, + cf_passed: list[bool], + layer: FailureLayer | None = None, +) -> FamilyOutcome: + base = _inst(family_id, is_base=True, compiled=True, passed=base_passed) + cfs = tuple(_inst(f"{family_id}__cf-{i + 1}", is_base=False, compiled=True, passed=p) for i, p in enumerate(cf_passed)) + return FamilyOutcome(family_id=family_id, failure_layer=layer, base=base, cfs=cfs) + + +class TestFamilyOutcome: + def test_stable_correct_pattern(self): + f = _family("F1", True, [True, True]) + assert f.pattern == (1, 1, 1) + assert f.family_type == FamilyType.STABLE_CORRECT + assert not f.is_fragile + assert f.severity == 0.0 + + def test_fragile_all_cf_fail(self): + f = _family("F2", True, [False, False]) + assert f.family_type == FamilyType.FRAGILE + assert f.is_fragile + assert f.severity == 1.0 + + def test_fragile_partial_cf_fail(self): + f = _family("F3", True, [True, False]) + assert f.family_type == FamilyType.FRAGILE + assert f.severity == 0.5 + + def test_unsolved(self): + f = _family("F4", False, [False, False]) + assert f.family_type == FamilyType.UNSOLVED + assert f.severity is None + + def test_inconsistent(self): + f = _family("F5", False, [True, False]) + assert f.family_type == FamilyType.INCONSISTENT + assert f.severity is None + + def test_cf_fail_count(self): + f = _family("F6", True, [True, False, False]) + assert f.cf_fail_count == 2 + assert f.cf_total == 3 + + +class TestBuildFamilies: + def _result(self, instance_id: str, resolved: bool) -> ExecutionBasedEvaluationResult: + return ExecutionBasedEvaluationResult( + instance_id=instance_id, + project="Test", + model="test-model", + agent_name="test", + category=EvaluationCategory.BUG_FIX, + resolved=resolved, + build=True, + ) + + def test_builds_single_family(self): + results = [ + self._result("NAV-100", True), + self._result("NAV-100__cf-1", False), + self._result("NAV-100__cf-2", True), + ] + families = build_families(results) + assert len(families) == 1 + assert families[0].pattern == (1, 0, 1) + assert families[0].family_type == FamilyType.FRAGILE + + def test_skips_base_without_cfs(self): + results = [self._result("NAV-200", True)] + assert len(build_families(results)) == 0 + + def test_multiple_families(self): + results = [ + self._result("NAV-100", True), + self._result("NAV-100__cf-1", True), + self._result("NAV-200", False), + self._result("NAV-200__cf-1", False), + ] + families = build_families(results) + assert len(families) == 2 + assert families[0].family_type == FamilyType.STABLE_CORRECT + assert families[1].family_type == FamilyType.UNSOLVED + + def test_failure_layers_applied(self): + results = [ + self._result("NAV-100", True), + self._result("NAV-100__cf-1", False), + ] + families = build_families(results, failure_layers={"NAV-100": FailureLayer.L3_EVENT}) + assert families[0].failure_layer == FailureLayer.L3_EVENT + + +class TestMetrics: + @pytest.fixture + def sample_families(self) -> list[FamilyOutcome]: + return [ + _family("F1", True, [True, True], FailureLayer.L2_EXECUTION), + _family("F2", True, [False, False], FailureLayer.L3_EVENT), + _family("F3", True, [True, False], FailureLayer.L3_EVENT), + _family("F4", False, [False, False], FailureLayer.L4_WORKFLOW), + _family("F5", False, [True, False], FailureLayer.L5_TOOLCHAIN), + ] + + def test_family_type_distribution(self, sample_families): + dist = family_type_distribution(sample_families) + assert dist["stable-correct"] == 1 + assert dist["fragile"] == 2 + assert dist["unsolved"] == 1 + assert dist["inconsistent"] == 1 + + def test_fragility_rate(self, sample_families): + assert fragility_rate(sample_families) == pytest.approx(2 / 3) + + def test_fragility_rate_no_eligible(self): + assert fragility_rate([_family("F1", False, [False])]) == 0.0 + + def test_mean_severity(self, sample_families): + assert mean_severity(sample_families) == pytest.approx(0.5) + + def test_layer_conditioned_fragility(self, sample_families): + lcf = layer_conditioned_fragility(sample_families) + assert lcf[FailureLayer.L2_EXECUTION.value] == 0.0 + assert lcf[FailureLayer.L3_EVENT.value] == 1.0 + + def test_failure_layer_distribution(self, sample_families): + dist = failure_layer_distribution(sample_families) + assert dist[FailureLayer.L3_EVENT.value] == 2 + + def test_cf_exposed_failure_count(self, sample_families): + assert cf_exposed_failure_count(sample_families) == 1 + + +class TestAnnotation: + def test_samples_fragile_instances(self): + from bcbench.analysis.annotation import sample_failures + + families = [ + _family("F1", True, [True, True]), + _family("F2", True, [False, False], FailureLayer.L3_EVENT), + _family("F3", False, [False], FailureLayer.L4_WORKFLOW), + ] + rows = sample_failures(families) + assert len(rows) == 4 + assert rows[0]["family_type"] == "fragile" + + def test_max_samples_limit(self): + from bcbench.analysis.annotation import sample_failures + + rows = sample_failures([_family("F1", True, [False, False, False])], max_samples=2) + assert len(rows) == 2 + + def test_writes_csv(self, tmp_path): + from bcbench.analysis.annotation import sample_failures, write_annotation_csv + + rows = sample_failures([_family("F1", True, [False], FailureLayer.L2_EXECUTION)]) + write_annotation_csv(rows, tmp_path / "annotations.csv") + assert (tmp_path / "annotations.csv").exists() + + +class TestInterAnnotatorAgreement: + def test_agreement_rate_perfect(self): + from bcbench.analysis.annotation import agreement_rate + + assert agreement_rate(["a", "b", "c"], ["a", "b", "c"]) == 1.0 + + def test_agreement_rate_partial(self): + from bcbench.analysis.annotation import agreement_rate + + assert agreement_rate(["a", "b", "c", "d"], ["a", "b", "x", "y"]) == pytest.approx(0.5) + + def test_agreement_rate_empty(self): + from bcbench.analysis.annotation import agreement_rate + + assert agreement_rate([], []) == 0.0 + + def test_agreement_rate_length_mismatch_raises(self): + from bcbench.analysis.annotation import agreement_rate + + with pytest.raises(ValueError, match="equal length"): + agreement_rate(["a"], ["a", "b"]) + + def test_cohen_kappa_perfect_is_one(self): + from bcbench.analysis.annotation import cohen_kappa + + kappa = cohen_kappa(["a", "b", "a", "b"], ["a", "b", "a", "b"]) + assert kappa == pytest.approx(1.0) + + def test_cohen_kappa_chance_is_zero(self): + from bcbench.analysis.annotation import cohen_kappa + + # Observed agreement equals expected -> kappa 0. + a = ["a", "a", "b", "b"] + b = ["a", "b", "a", "b"] + kappa = cohen_kappa(a, b) + assert kappa == pytest.approx(0.0, abs=1e-9) + + def test_cohen_kappa_single_label_undefined(self): + from bcbench.analysis.annotation import cohen_kappa + + # Both annotators always pick the same single label -> expected agreement 1.0. + assert cohen_kappa(["a", "a"], ["a", "a"]) is None + + def test_cohen_kappa_empty_is_none(self): + from bcbench.analysis.annotation import cohen_kappa + + assert cohen_kappa([], []) is None + + def test_inter_annotator_agreement_uses_shared_instances(self): + from bcbench.analysis.annotation import inter_annotator_agreement + + a = {"i1": "L1", "i2": "L2", "i3": "L3", "i4": ""} + b = {"i1": "L1", "i2": "L3", "i3": "L3", "i5": "L1"} + result = inter_annotator_agreement(a, b) + # Shared with non-empty labels: i1, i2, i3 (i4 empty, i5 not in a) + assert result.n == 3 + assert result.agreement_rate == pytest.approx(2 / 3) + assert result.cohen_kappa is not None diff --git a/tests/test_sensitivity.py b/tests/test_sensitivity.py new file mode 100644 index 000000000..a17d32006 --- /dev/null +++ b/tests/test_sensitivity.py @@ -0,0 +1,250 @@ +"""Tests for counterfactual consistency, correctness drop, and structural metrics.""" + +import pytest + +from bcbench.analysis.family import FamilyOutcome, InstanceResult +from bcbench.analysis.metrics import ( + Consistency, + classify_consistency, + consistency_distribution, + correctness_drop, +) +from bcbench.analysis.sensitivity import ( + CounterfactualPatchPair, + Reaction, + build_patch_pairs, + mean_sensitivity, + median_sensitivity, + patch_distance, + reaction_distribution, + sensitivity_score, + structural_distance, +) + + +def _inst(instance_id: str, *, is_base: bool, passed: bool) -> InstanceResult: + return InstanceResult(instance_id=instance_id, is_base=is_base, compiled=True, passed=passed) + + +def _family(family_id: str, base_passed: bool, cf_passed: list[bool]) -> FamilyOutcome: + base = _inst(family_id, is_base=True, passed=base_passed) + cfs = tuple(_inst(f"{family_id}__cf-{i + 1}", is_base=False, passed=p) for i, p in enumerate(cf_passed)) + return FamilyOutcome(family_id=family_id, failure_layer=None, base=base, cfs=cfs) + + +class TestClassifyConsistency: + def test_both_correct(self): + assert classify_consistency(True, True) == Consistency.BOTH_CORRECT + + def test_base_correct_cf_incorrect(self): + assert classify_consistency(True, False) == Consistency.BASE_CORRECT_CF_INCORRECT + + def test_both_incorrect(self): + assert classify_consistency(False, False) == Consistency.BOTH_INCORRECT + + def test_base_incorrect_cf_correct(self): + assert classify_consistency(False, True) == Consistency.BASE_INCORRECT_CF_CORRECT + + +class TestConsistencyDistribution: + def test_counts_over_pairs(self): + families = [ + _family("F1", True, [True, False]), # both-correct + base-correct-cf-incorrect + _family("F2", False, [True, False]), # base-incorrect-cf-correct + both-incorrect + ] + dist = consistency_distribution(families) + assert dist[Consistency.BOTH_CORRECT.value] == 1 + assert dist[Consistency.BASE_CORRECT_CF_INCORRECT.value] == 1 + assert dist[Consistency.BASE_INCORRECT_CF_CORRECT.value] == 1 + assert dist[Consistency.BOTH_INCORRECT.value] == 1 + + def test_all_buckets_present_even_when_zero(self): + dist = consistency_distribution([_family("F1", True, [True])]) + assert set(dist) == {c.value for c in Consistency} + assert dist[Consistency.BOTH_INCORRECT.value] == 0 + + def test_sum_equals_pair_count(self): + families = [_family("F1", True, [True, False, False]), _family("F2", False, [True])] + dist = consistency_distribution(families) + assert sum(dist.values()) == 4 + + +class TestCorrectnessDrop: + def test_pair_level_fraction(self): + # base-correct CF pairs: F1 has 2 (1 fail), F2 has 1 (0 fail). 1/3. + families = [_family("F1", True, [True, False]), _family("F2", True, [True])] + assert correctness_drop(families) == pytest.approx(1 / 3) + + def test_ignores_base_failures(self): + families = [_family("F1", False, [False, True])] + assert correctness_drop(families) == 0.0 + + def test_all_cf_fail(self): + assert correctness_drop([_family("F1", True, [False, False])]) == 1.0 + + def test_differs_from_family_level(self): + # One family, base passes, 1 of 3 CFs fail: correctness_drop is 1/3 (pair-level), + # not 1.0 that family-level fragility would give for this fragile family. + assert correctness_drop([_family("F1", True, [True, True, False])]) == pytest.approx(1 / 3) + + +class TestStructuralDistance: + def test_identical_is_zero(self): + assert structural_distance("a\nb\nc", "a\nb\nc") == 0.0 + + def test_both_empty_is_zero(self): + assert structural_distance("", "") == 0.0 + + def test_disjoint_is_one(self): + assert structural_distance("a\nb", "x\ny") == 1.0 + + def test_partial_change_in_range(self): + d = structural_distance("a\nb\nc\nd", "a\nb\nc\nX") + assert 0.0 < d < 1.0 + + def test_symmetric(self): + a, b = "a\nb\nc", "a\nX\nc" + assert structural_distance(a, b) == structural_distance(b, a) + + +def _pair( + *, + base_gold: str, + cf_gold: str, + base_out: str, + cf_out: str, + base_passed: bool = True, + cf_passed: bool = True, +) -> CounterfactualPatchPair: + return CounterfactualPatchPair( + family_id="F1", + cf_instance_id="F1__cf-1", + base_passed=base_passed, + cf_passed=cf_passed, + base_gold_test_patch=base_gold, + cf_gold_test_patch=cf_gold, + base_output_patch=base_out, + cf_output_patch=cf_out, + ) + + +class TestSensitivityScore: + def test_none_when_spec_unchanged(self): + pair = _pair(base_gold="a\nb", cf_gold="a\nb", base_out="a\nb", cf_out="x\ny") + assert sensitivity_score(pair) is None + + def test_proportional_reaction_near_one(self): + # Spec and output change by the same one-line edit -> ratio ~1. + pair = _pair(base_gold="a\nb\nc\nd", cf_gold="a\nb\nc\nX", base_out="a\nb\nc\nd", cf_out="a\nb\nc\nX") + assert sensitivity_score(pair) == pytest.approx(1.0) + + def test_under_reaction_below_one(self): + # Spec changes a lot, model output barely moves -> S < 1. + pair = _pair(base_gold="a\nb\nc\nd", cf_gold="w\nx\ny\nz", base_out="a\nb\nc\nd", cf_out="a\nb\nc\nd") + assert sensitivity_score(pair) == pytest.approx(0.0) + + def test_over_reaction_above_one(self): + # Spec barely changes, model rewrites everything -> S > 1. + pair = _pair(base_gold="a\nb\nc\nd", cf_gold="a\nb\nc\nX", base_out="a\nb\nc\nd", cf_out="w\nx\ny\nz") + assert sensitivity_score(pair) > 1.0 + + +class TestPatchDistance: + def test_reaction_none_when_spec_unchanged(self): + pair = _pair(base_gold="a\nb", cf_gold="a\nb", base_out="a\nb", cf_out="x\ny") + pd = patch_distance(pair) + assert pd.ratio is None + assert pd.reaction is None + assert pd.unrelated_rewrite is False + + def test_under_reaction_label(self): + pair = _pair(base_gold="a\nb\nc\nd", cf_gold="w\nx\ny\nz", base_out="a\nb\nc\nd", cf_out="a\nb\nc\nd") + assert patch_distance(pair).reaction == Reaction.UNDER + + def test_appropriate_label(self): + pair = _pair(base_gold="a\nb\nc\nd", cf_gold="a\nb\nc\nX", base_out="a\nb\nc\nd", cf_out="a\nb\nc\nX") + assert patch_distance(pair).reaction == Reaction.APPROPRIATE + + def test_over_reaction_label(self): + pair = _pair(base_gold="a\nb\nc\nd", cf_gold="a\nb\nc\nX", base_out="a\nb\nc\nd", cf_out="w\nx\ny\nz") + assert patch_distance(pair).reaction == Reaction.OVER + + def test_unrelated_rewrite_flag(self): + # Over-reaction AND the CF failed -> flagged as unrelated rewrite. + pair = _pair( + base_gold="a\nb\nc\nd", + cf_gold="a\nb\nc\nX", + base_out="a\nb\nc\nd", + cf_out="w\nx\ny\nz", + cf_passed=False, + ) + assert patch_distance(pair).unrelated_rewrite is True + + def test_over_reaction_but_passed_not_flagged(self): + pair = _pair(base_gold="a\nb\nc\nd", cf_gold="a\nb\nc\nX", base_out="a\nb\nc\nd", cf_out="w\nx\ny\nz", cf_passed=True) + assert patch_distance(pair).unrelated_rewrite is False + + +class TestAggregates: + def test_mean_sensitivity_skips_unchanged_spec(self): + pairs = [ + _pair(base_gold="a\nb\nc\nd", cf_gold="a\nb\nc\nX", base_out="a\nb\nc\nd", cf_out="a\nb\nc\nX"), # ~1 + _pair(base_gold="a\nb", cf_gold="a\nb", base_out="a\nb", cf_out="z"), # None, skipped + ] + assert mean_sensitivity(pairs) == pytest.approx(1.0) + + def test_mean_sensitivity_none_when_all_skipped(self): + pairs = [_pair(base_gold="a", cf_gold="a", base_out="a", cf_out="b")] + assert mean_sensitivity(pairs) is None + + def test_median_sensitivity_robust_to_outlier(self): + # Three appropriate (~1) pairs plus one extreme over-reaction: median stays ~1 + # while the mean is dragged far above 1. + appropriate = _pair(base_gold="a\nb\nc\nd", cf_gold="a\nb\nc\nX", base_out="a\nb\nc\nd", cf_out="a\nb\nc\nX") + outlier = _pair(base_gold="a\nb\nc\nd", cf_gold="a\nb\nc\nX", base_out="a\nb\nc\nd", cf_out="w\nx\ny\nz") + pairs = [appropriate, appropriate, appropriate, outlier] + med = median_sensitivity(pairs) + mean = mean_sensitivity(pairs) + assert med == pytest.approx(1.0) + assert mean > med + + def test_median_sensitivity_none_when_all_skipped(self): + pairs = [_pair(base_gold="a", cf_gold="a", base_out="a", cf_out="b")] + assert median_sensitivity(pairs) is None + + def test_reaction_distribution(self): + pairs = [ + _pair(base_gold="a\nb\nc\nd", cf_gold="w\nx\ny\nz", base_out="a\nb\nc\nd", cf_out="a\nb\nc\nd"), # under + _pair(base_gold="a\nb\nc\nd", cf_gold="a\nb\nc\nX", base_out="a\nb\nc\nd", cf_out="a\nb\nc\nX"), # appropriate + _pair(base_gold="a\nb", cf_gold="a\nb", base_out="a\nb", cf_out="z"), # skipped + ] + dist = reaction_distribution(pairs) + assert dist[Reaction.UNDER.value] == 1 + assert dist[Reaction.APPROPRIATE.value] == 1 + assert dist[Reaction.OVER.value] == 0 + + +class TestBuildPatchPairs: + def test_pairs_cf_with_base(self): + generated = {"NAV-1": "base out", "NAV-1__cf-1": "cf out"} + gold = {"NAV-1": "base gold", "NAV-1__cf-1": "cf gold"} + passed = {"NAV-1": True, "NAV-1__cf-1": False} + pairs = build_patch_pairs(generated, gold, passed) + assert len(pairs) == 1 + p = pairs[0] + assert p.family_id == "NAV-1" + assert p.cf_instance_id == "NAV-1__cf-1" + assert p.base_passed is True + assert p.cf_passed is False + assert p.base_output_patch == "base out" + assert p.cf_gold_test_patch == "cf gold" + + def test_skips_cf_without_base(self): + generated = {"NAV-1__cf-1": "cf out"} + gold = {"NAV-1__cf-1": "cf gold"} + pairs = build_patch_pairs(generated, gold, {}) + assert pairs == [] + + def test_ignores_base_only_entries(self): + pairs = build_patch_pairs({"NAV-1": "x"}, {"NAV-1": "y"}, {"NAV-1": True}) + assert pairs == [] diff --git a/tests/test_type_exhaustiveness.py b/tests/test_type_exhaustiveness.py index 3bbfbb106..9c7790dec 100644 --- a/tests/test_type_exhaustiveness.py +++ b/tests/test_type_exhaustiveness.py @@ -41,6 +41,8 @@ def test_all_categories_have_aggregate_classes(): def test_all_categories_handled_in_get_expected_output(sample_dataset_entry_with_problem_statement: BugFixEntry, sample_nl2al_entry: NL2ALEntry): for category in EvaluationCategory: + if category.is_counterfactual: + continue # CF entries are loaded via resolution from base; tested separately in test_counterfactual.py entry_cls = category.entry_class entry = sample_nl2al_entry if entry_cls is NL2ALEntry else entry_cls.model_validate(sample_dataset_entry_with_problem_statement.model_dump(by_alias=True)) diff --git a/tools/cf_fixer/validator.py b/tools/cf_fixer/validator.py new file mode 100644 index 000000000..7b711716f --- /dev/null +++ b/tools/cf_fixer/validator.py @@ -0,0 +1,63 @@ +"""Validator — runs dataset validation checks. + +Levels: + 1. Fast: JSONL schema/load check (pytest test_counterfactual.py) + 2. Load: Verify entry loads via bcbench CLI +""" + +from __future__ import annotations + +import subprocess +from dataclasses import dataclass +from pathlib import Path + +_BCBENCH_ROOT = Path(__file__).parent.parent.parent + + +@dataclass(frozen=True) +class ValidationResult: + status: str # "success" | "fail" | "skip" + message: str = "" + + +def validate_schema(instance_id: str | None = None) -> ValidationResult: + """Run pytest schema validation for counterfactual entries.""" + cmd = ["uv", "run", "pytest", "tests/test_counterfactual.py", "-v", "--tb=short"] + if instance_id: + cmd.extend(["-k", instance_id.replace("__", "_")]) + + result = subprocess.run( + cmd, + check=False, + capture_output=True, + text=True, + encoding="utf-8", + cwd=_BCBENCH_ROOT, + ) + + status = "success" if result.returncode == 0 else "fail" + output = result.stdout[-2000:] if result.stdout else "" + if result.returncode != 0 and result.stderr: + output += f"\n--- stderr ---\n{result.stderr[-1000:]}" + + return ValidationResult(status=status, message=output) + + +def validate_dataset_load(instance_id: str) -> ValidationResult: + """Verify the entry can be loaded via bcbench CLI.""" + cf_num = instance_id.rsplit("__cf-", 1)[-1] if "__cf-" in instance_id else "1" + cat = f"cf-{cf_num}" + + cmd = ["uv", "run", "bcbench", "dataset", "view", instance_id, "--category", cat] + result = subprocess.run( + cmd, + check=False, + capture_output=True, + text=True, + encoding="utf-8", + cwd=_BCBENCH_ROOT, + ) + + status = "success" if result.returncode == 0 else "fail" + msg = result.stdout[-1000:] if status == "success" else result.stderr[-1000:] + return ValidationResult(status=status, message=msg)