var documents = [];
var currentDocument = null;
var currentInvoiceNumber = "";
for (let i = 0; i < Context.Pages.length; i++)
{
const page = Context.Pages[i];
let invoiceNumberField = page.GetField("InvoiceNumber");
let invoiceNumberNormalized = invoiceNumberField.Text.replace(/[. -]/g, '');
let firstPageMarker = page.GetField("FirstPageMarker");
var hasInvoiceNumber = invoiceNumberField !== null && invoiceNumberNormalized !== "";
var hasNewInvoiceNumber = hasInvoiceNumber && invoiceNumberNormalized !== currentInvoiceNumber;
var hasFirstPageMarker = firstPageMarker !== null && firstPageMarker.Text;
if (!currentDocument || hasNewInvoiceNumber || (!hasInvoiceNumber && hasFirstPageMarker))
{
currentDocument = new Document('invoice');
documents.push(currentDocument);
}
if (hasInvoiceNumber)
{
currentInvoiceNumber = invoiceNumberNormalized;
}
currentDocument.Pages.push(page);
}
return documents;