﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<data-set>
  <relations format-version="4" relations-version="20160101" main-table="LLMPrompt" stable-sharing="True">
    <link from="LLMPrompt (PromptID)" to="LLMPrompt (PromptID)" type="FromMaster" updateable="False" />
  </relations>
  <layout>
    <table name="LLMPrompt" recursion="(PromptID) = (PromptID)" />
  </layout>
  <data>
    <LLMPrompt>
      <row PromptID="PROFORMA_NARR" IsActive="1" Name="Pro-Forma Billing Narrative" ConnectionID="MYOB-MANAGED" ScreenID="PM307000" ActionName="Generate Billing Narrative" OutputExamples="## Output Format Example:&#xA;{&#xA;  &quot;((Document.Description))&quot;: &quot;Billing for the period ending 30 June 2026. This pro-forma totals $128,500, comprising $110,000 of progress billing against completed works and $18,500 of time and material charges. Retainage of $6,425 (5%) has been withheld in line with the contract. Please contact us with any queries.&quot;&#xA;}&#xA;&#xA;## Important Note:&#xA;  Return only valid JSON containing exactly the one output key from the Instructions tab&#xA;  (&quot;((Document.Description))&quot;) and no other keys. Do not wrap the JSON in markdown fences and do&#xA;  not add any commentary before or after it. The value must be plain text with no markdown,&#xA;  respecting every formatting rule on the Instructions tab (≤255 single-paragraph chars).">
        <column name="PromptInstruction"><![CDATA[<html><head><style type="text/css">/* RTE style begin */
body.rich {
    margin: 0px;
    padding: 0px;
    font-family: Arial;
    font-size: 14px;
}

.rich ol, .rich ul { margin-top: 0px; margin-bottom: 0px;}
.rich .imgbrdr {
    border: solid 1px;
}
.richIcon {
    display: inline-block;
    background-image: url(Images/sprite_main5.png);
    background-repeat: no-repeat;
    width: 15px;
}
.richAttach {
    background-position: -2px -122px;
}
.richImg {
    background-position: -2px -1120px;
}
.richScreen {
    background-position: -24px -1032px;
}
.richArticle {
    background-position: -24px -1054px;
}

/* Correct box */
.rich .GrayBox {
    border: solid 1px #CCCCCC;
    background-color: #F9F9F9;
    padding: 4px;
    /*margin: 4px;*/
    width: 98%;
}
.rich .hintcell
{
    height: 36px;
    width: 32px;
    vertical-align: middle;
}

.rich .warncell
{
    height: 36px;
    width: 32px;
    vertical-align: middle;
}

.rich .boxcontent{ width: 100% }
.rich pre { font-size:1.3em }

.rich iframe{
    border: none;
}
.rich iframe.iframeBorder, .rich img.iframeBorder {
    border: solid black 1px;
}

.rtetable > tbody > tr > td, .rtetable > tr > td { white-space: nowrap }
.rtetable:not(.header-no-style) > tbody > tr:first-child > td, .rtetable:not(.header-no-style) > tr:first-child > td { background-color: #f4f5f7 }


.rich pre.source-highlighted {background-color: #F0F0FF;}
.rich pre.source-highlighted .nu, .rich .sourcetable .nu { color: brown; }
.rich pre.source-highlighted .kw, .rich .sourcetable .kw { color: blue; }
.rich pre.source-highlighted .cmt, .rich .sourcetable .cmt { color: green; }
.rich pre.source-highlighted .sl, .rich .sourcetable .sl { color: brown; }
.rich pre.source-highlighted .br, .rich .sourcetable .br {color: darkgreen; }

.rich pre.source-highlighted .add, .rich .sourcetable .add { background: palegreen; }
.rich pre.source-highlighted .del, .rich .sourcetable .del { background: pink; }

.rich table, .rich tr, .rich td, .rich img, .rich iframe {
    cursor: default;
}
.layout .rtecell {
    vertical-align: top;
    font-size: small;
}
.rtetable > tbody > tr > td, .rtetable > tr > td { vertical-align: top; }

.rich p{
    margin:0px 5px 0px 0px;
}
.rich .align-center{
    text-align: center;
}
.rich .align-right{
    text-align: right;
}
.rich .align-left{
    text-align: left;
}
.rich li[style*='text-align: center'], .rich li[style*='text-align: right'] {
list-style-position: inside;
}

.rtetable { empty-cells: show; border: solid 1px black; border-collapse:collapse; }
.rtetable > tbody > tr > td, .rtetable > tr > td {
    border: solid 1px black;
    height: calc(1.5em + 14px);
    min-width: 20px;
    padding: 0px 5px;
    line-height: 1.428em;
}

.rich table.rtetable {
    font-family: arial;
    font-size: small;
    margin: 10px 0;
}

.rich .rtetable > tbody > tr > td, .rich tbody > tr > th {
    border-width: 1px;
    border-style: solid;
    border-color: #c1c7d0;
    padding: 7px 10px;
    vertical-align: top;
    text-align: left;
    min-width: 8px;
}

.rich .rtetable > tbody > tr > th {
    background-color: #f4f5f7;
}

.rich blockquote.shift {
    margin-right: 0px;margin-top: 0px; margin-bottom: 0px;
}
.rich img[data-expand] {
    display: block;
}
.rich p, .rich p.richp  {font-family: arial; font-size: small}
.rich blockquote.shift h1, .rich blockquote.shift h2, .rich blockquote.shift h3, .rich blockquote.shift h4, .rich blockquote.shift h5, .rich blockquote.shift h6 {
    margin-top: 0px;
}
.rich, .rich * {
    word-wrap: break-word;
}
.sourcetable {background-color: #F0F0FF; font-family: monospace; width: 100%}
.sourcetable tr {
    margin: 0px;
    padding: 0px;
}
.sourcetable td {
    margin: 0px;
    padding: 0px;
    white-space: nowrap;
}
.sourcetable > tbody > tr > td:first-child, .sourcetable > tr > td:first-child
{
    width:1px;
}

.filelist {
    /*display:inline-block;*/ padding: 5px;
}

.rich .toc {
    /*display:inline-block;*/ padding: 5px;
}
.rich .toc .header,.rich  .wikilist .header,.rich  .filelist .header {
    font-size: 1.7em;
}
.rich .toc li,.rich  .filelist li {
    margin: 5px 0px;
}
.rich .wikilist div {
    margin: 10px;
}

.rich .layout {min-height: 2.5em; display:table; width:100%; border-spacing:5px; table-layout:fixed; empty-cells: show;}
.rich .layout .rtecell {display:table-cell; height: 2.5em}
.rich .layout .rteside {width: 25%}

/*
.rtetable {
    border-collapse:collapse;
}
.rtetable > tbody > tr > td, .rtetable > tr > td {
    border: 1px solid #ddd;
    padding: 7px 10px;
    vertical-align: top;
    text-align: left;
}*/
.rich blockquote.realbq {
    border-left-color: lightblue;
    border-left-width: 1px;
    border-left-style: solid;
    margin-top: 0px;
    margin-bottom: 0px;
    padding-left: 5px;
}
.rich body {font-family: arial; font-size: small}

.rich .GrayBox {
    margin-left: 8px;
}

.rich .sourcetable { font-size:1.3em;}
/* RTE style end */</style></head><body class="rich"><p><span style="font-family: Arial; font-size: 14px;">## Context Instructions</span></p><p><span style="font-family: Arial; font-size: 14px;">You are an AI assistant working in Acumatica ERP. Act as a project billing coordinator writing a short cover note that will accompany a pro-forma invoice sent to a client. Write in professional, courteous Australian English. State only what the supplied amounts and period show; never invent line items, milestones, percentages, or commitments. Quote currency figures as supplied, formatted to whole dollars where practical, and make clear which portion is progress billing and which is time and material.</span></p><p><span style="font-family: Arial; font-size: 14px;"><br></span></p><p><span style="font-family: Arial; font-size: 14px;">## Task Description</span></p><p><span style="font-family: Arial; font-size: 14px;">Produce a concise, client-ready narrative for a single pro-forma invoice that explains what is being billed this period and the make-up of the total, ready to accompany the invoice.</span></p><p><span style="font-family: Arial; font-size: 14px;"><br></span></p><p><span style="font-family: Arial; font-size: 14px;">## Instructions with Input Data</span></p><p><span style="font-family: Arial; font-size: 14px;">Write the narrative using only the data below.</span></p><p><span style="font-family: Arial; font-size: 14px;"><br></span></p><p><span style="font-family: Arial; font-size: 14px;">- Pro-forma reference: ((Document.RefNbr))</span></p><p><span style="font-family: Arial; font-size: 14px;">- Customer: ((Document.CustomerID.AcctName))</span></p><p><span style="font-family: Arial; font-size: 14px;">- Invoice date: ((Document.InvoiceDate))</span></p><p><span style="font-family: Arial; font-size: 14px;">- Post period: ((Document.FinPeriodID))</span></p><p><span style="font-family: Arial; font-size: 14px;">- Currency: ((Document.CuryID))</span></p><p><span style="font-family: Arial; font-size: 14px;">- Progress billing total: ((Document.CuryProgressiveTotal))</span></p><p><span style="font-family: Arial; font-size: 14px;">- Time and material total: ((Document.CuryTransactionalTotal))</span></p><p><span style="font-family: Arial; font-size: 14px;">- Retainage held this document: ((Document.CuryRetainageDetailTotal))</span></p><p><span style="font-family: Arial; font-size: 14px;">- Retainage percentage: ((Document.RetainagePct))</span></p><p><span style="font-family: Arial; font-size: 14px;">- Invoice total: ((Document.CuryDocTotal))</span></p><p><span style="font-family: Arial; font-size: 14px;"><br></span></p><p><span style="font-family: Arial; font-size: 14px;">Write a short narrative that: (1) opens by addressing the billing for the invoice date / post period; (2) states the invoice total and breaks it into the progress-billing portion and the time-and-material portion, naming each; (3) if retainage is greater than zero, states the retainage amount and percentage held; (4) closes with a brief, courteous line. Keep it to roughly 60–90 words. Do not exceed 255 characters of final text — be concise; this field is short. Plain sentences only, no markdown, no bullets. If a figure is zero or missing, omit that point rather than mentioning it.</span></p><p><span style="font-family: Arial; font-size: 14px;"><br></span></p><p><span style="font-family: Arial; font-size: 14px;">## Output Data Field</span></p><p><span style="font-family: Arial; font-size: 14px;">Generate the following and return it in the output field:</span></p><p><span style="font-family: Arial; font-size: 14px;">1. @((Document.Description))(string): The finished billing narrative as plain text, 255 characters maximum, no markdown, no line breaks beyond single spaces between sentences.</span></p></body></html>]]></column>
      </row>
    </LLMPrompt>
  </data>
</data-set>