code
code
{
PurchRFQSendTmp headerTableBuffer;
PurchRFQSendContract reportContract;
boolean amendmentLineAdded, questionnaireLineAdded;
VendRFQJour journal;
RecId journalRecId;
DocTableFieldsMetadata extensionFieldsMetadata_PurchRFQSendTmp =
DocTableFieldsMetadata::construct(tableStr(PurchRFQSendTmp));
#define.RFQSendHeader('RFQSendHeader')
#define.RFQSendLines_Questionnaire('RFQSendLines_Questionnaire')
#define.RFQSendLines_Amendment('RFQSendLines_Amendment')
#define.RFQSendLines('RFQSendLines')
// This overridden method adds additional custom labels to the DDSP to use them
in template designer.
// Learn more: https://ax.docentric.com/d365-how-to-manuals/d365-
miscellaneous/d365-how-to-add-missing-labels-to-multilingual-reports/
protected void addCustomLabels(Map _labelMap)
{
super(_labelMap);
// Pagination
_labelMap.insert(literalStr("@SYS5250"), 'Page');
_labelMap.insert(literalStr("@SYS26401"), 'of');
// Document header.
_labelMap.insert(literalStr("@SYS13864"), 'Number');
_labelMap.insert(literalStr("@SYS54367"), 'Expiration date'); // Used in
lines as well.
_labelMap.insert(literalStr("@SYS106366"), 'Your reference');
_labelMap.insert(literalStr("@SYS130195"), 'Purchase agreement order');
_labelMap.insert(literalStr("@SYS2168"), 'Start date');
_labelMap.insert(literalStr("@SYS22882"), 'End date');
_labelMap.insert(literalStr("@SYS2499"), 'Registration');
// Address information.
_labelMap.insert(literalStr("@SYS80377"), 'Delivery address');
// Document lines.
_labelMap.insert(literalStr("@SYS139028"), 'Category');
_labelMap.insert(literalStr("@SYS7576"), 'Description');
_labelMap.insert(literalStr("@SYS59970"), 'Quantity'); // Used in reply
lines as well.
_labelMap.insert(literalStr("@SYS11959"), 'Unit');
_labelMap.insert(literalStr("@SYS98362"), 'Amount');
// Amendment information.
_labelMap.insert(literalStr("@SYP4950122"), 'Amendment');
_labelMap.insert(literalStr("@SYS40182"), 'Notes');
_labelMap.insert(literalStr("@SYS181568"), 'Yes');
_labelMap.insert(literalStr("@SYS2048"), 'No');
// Questionnaire
_labelMap.insert(literalStr("@SYS300846"), 'Questionnaire');
_labelMap.insert(literalStr("@EPR4460063"), 'Description');
}
_addingRecord.addField(fieldStr(PurchRFQSendTmp, RFQId));
_addingRecord.addField(fieldStr(PurchRFQSendTmp, AmendmentDescription));
_addingRecord.addField(fieldStr(PurchRFQSendTmp, AmendmentDocument));
_addingRecord.addField(fieldStr(PurchRFQSendTmp, AmendmentName));
_addingRecord.addField(fieldStr(PurchRFQSendTmp, AmendmentRecId));
_addingRecord.addField(fieldStr(PurchRFQSendTmp, AmendmentNotes));
}
_addingRecord.addField(fieldStr(PurchRFQSendTmp, RFQId));
_addingRecord.addField(fieldStr(PurchRFQSendTmp,
QuestionnaireDescription));
_addingRecord.addField(fieldStr(PurchRFQSendTmp, QuestionnaireId));
}
// Add all 'line' fields from the PurchRFQSendTmp table related to the
transaction data.
_addingRecord.addField(fieldStr(PurchRFQSendTmp, ItemId));
_addingRecord.addField(fieldStr(PurchRFQSendTmp, ItemName));
_addingRecord.addField(fieldStr(PurchRFQSendTmp, LineAmount));
_addingRecord.addField(fieldStr(PurchRFQSendTmp, PurchUnit));
_addingRecord.addField(fieldStr(PurchRFQSendTmp, PurchPrice));
_addingRecord.addField(fieldStr(PurchRFQSendTmp, PurchQty));
_addingRecord.addField(fieldStr(PurchRFQSendTmp, DiscPercent));
_addingRecord.addField(fieldStr(PurchRFQSendTmp, DiscAmount));
_addingRecord.addField(fieldStr(PurchRFQSendTmp, CategoryName));
_addingRecord.addField(fieldStr(PurchRFQSendTmp, DeliveryDate));
_addingRecord.addField(fieldStr(PurchRFQSendTmp, ExpiryDateTime));
_addingRecord.addField(fieldStr(PurchRFQSendTmp, InventDimPrint));
_addingRecord.addField(fieldStr(PurchRFQSendTmp, Notes));
_addingRecord.addField(fieldStr(PurchRFQSendTmp, pdsCWQty));
_addingRecord.addField(fieldStr(PurchRFQSendTmp, pdsCWUnitId));
_addingRecord.addField(fieldStr(PurchRFQSendTmp, RFQCaseLineLineNumber));
DocExtensionFieldsHelper::tryAddAllExtensionFieldsToDataRecord(_currentLine,
_addingRecord, true, extensionFieldsMetadata_PurchRFQSendTmp);
// TODO: Add here additional fields from the related VendRFQTrans table (or
some other tables).
//VendRFQTrans vendRFQTrans =
this.vendRFQTrans(_currentLine.RFQCaseLineLineNumber);
//_addingRecord.addCalculatedField('ExternalItemId',
vendRFQTrans.ExternalItemId);
}
void addHeaderFields()
{
// We will skip adding the company related fields since we already have
them
// in the GeneralData data section at our disposal.
//headerDataRecord.addField(fieldStr(PurchRFQSendTmp,
CompanyAddressLogo));
//headerDataRecord.addField(fieldStr(PurchRFQSendTmp, CompanyLogo));
//headerDataRecord.addField(fieldStr(PurchRFQSendTmp,
CompanyNameLogo));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp, RFQId));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp, DeliveryName));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp, RFQDate));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp, RFQBalance));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp, SumMarkup));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp, RoundOff));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp, SumTax));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp, EndDisc));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp, CurrencyCode));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp, Amount));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp, PurchId));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp, PrintPriceAmount));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp, VendRef));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp, VendAccount));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp, RFQTxt));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp, RFQComment));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp, DlvTerm));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp, RFQUpdateType));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp, PrintReplySheet));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp, ValidityDateEnd));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp,
ValidityDateStart));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp, RFQType));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp, CompanyAddress));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp, CompanyVATNum));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp, Phone));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp, EnterpriseNumber));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp, Giro));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp, CoRegNum));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp, CompanyName));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp, Address));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp, DeliveryAddress));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp, TeleFax));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp, HeaderNotes));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp, PdsEnabled));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp,
RFQReplyHeaderCurrencyCode));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp,
RFQReplyHeaderDeliveryDate));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp,
RFQReplyHeaderDlvTerm));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp,
RFQReplyHeaderDocumentation));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp,
RFQReplyHeaderEndDiscPct));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp,
RFQReplyHeaderMarkup));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp,
RFQReplyHeaderPayment));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp,
RFQReplyHeaderValidFromDate));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp,
RFQReplyHeaderValidToDate));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp,
RFQReplyHeaderVendRef));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp,
RFQReplyLineDeliveryDate));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp,
RFQReplyLineDocumentation));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp,
RFQReplyLineExternalItemFreeTxt));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp,
RFQReplyLineExternalItemId));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp,
RFQReplyLineLeadTime));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp,
RFQReplyLineLineDisc));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp,
RFQReplyLineMarkup));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp,
RFQReplyLineMultiLnDisc));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp,
RFQReplyLineMultiLnPercent));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp,
RFQReplyLinePercent));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp,
RFQReplyLinePriceUnit));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp,
RFQReplyLineQuantity));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp, RFQReplyLineUnit));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp,
RFQReplyLineValidFromDate));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp,
RFQReplyLineValidToDate));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp,
RFQReplyLineWorkingdays));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp,
ShowCompanyVATNum));
headerDataRecord.addField(fieldStr(PurchRFQSendTmp, FormLetterTxt));
}
// (2) Add all fields that belong to the header only once.
headerDataRecord =
_recordBuilder.addRecord(headerTableBuffer).setSingleRecord(true);
// Rename the record from 'PurchRFQSendTmp' to 'RFQSendHeader'.
headerDataRecord.setRecordName(#RFQSendHeader);
// Change the label of the record.
headerDataRecord.setRecordLabel('RFQ header'); // NOTE: use
literalStr("@LabelID") instead.
// Add all 'header' fields.
addHeaderFields();
DocExtensionFieldsHelper::tryAddAllExtensionFieldsToDataRecord(headerTableBuffer,
headerDataRecord, true, extensionFieldsMetadata_PurchRFQSendTmp);
// TODO: Add here additional fields (or records) to the single header
record (headerDataRecord)
// by using the related data to headerTableBuffer (PurchRFQSendTmp) or
reportContract.
// For example, get the related VendRFQJour record and add additional data
you need:
//VendRFQJour vendRFQJour = this.vendRFQJour();
//DocXmlRecord jourDataRecord =
headerDataRecord.addChildRecord(vendRFQJour);
//jourDataRecord.addField(fieldStr(VendRFQJour, VATNum)); // Vendor VAT
Number.
//jourDataRecord.addField(fieldStr(VendRFQJour, DefaultDimension));
// Or, add the vendor enterprise number:
//headerDataRecord.addCalculatedField('VendEnterpriseNumber',
//
VendTable::find(headerTableBuffer.VendAccount).getPrimaryRegistrationNumber(TaxRegi
strationTypesList::UID, vendRFQJour.DeliveryDate));
// If this is design time, add main or tax lines if they haven't been
already added.
_recordBuilder.goToTopRecord();
if (!this.isRuntime())
{
emptyLine.clear();
// Amendment lines.
if (!amendmentLineAdded)
{
emptyLineDataRecord = _recordBuilder.addRecord(emptyLine);
this.addDataFieldsForLine_Amendment(emptyLineDataRecord,
emptyLine);
_recordBuilder.goToTopRecord();
}
// Questionnaire lines.
if (!questionnaireLineAdded)
{
emptyLineDataRecord = _recordBuilder.addRecord(emptyLine);
this.addDataFieldsForLine_Questionnaire(emptyLineDataRecord,
emptyLine);
_recordBuilder.goToTopRecord();
}
}
super(_rdpTableRecord, _rdpTableName);
if (_rdpTableName != tableStr(PurchRFQSendTmp))
{
return;
}
currentRecord = _rdpTableRecord;
if (headerTableBuffer.RecId == 0)
{
// Copy all fields from the first selected record since the majority of
them
// belong to the report header. We will add them as a separate node in
the
// generateXmlDataSource method.
buf2Buf(currentRecord, headerTableBuffer);
headerTableBuffer.RecId = currentRecord.RecId;
amendmentLineAdded = false;
questionnaireLineAdded = false;
}
return journal;
}
return vendRFQTrans;
}
// -- Placeholder @RfqDate@
placeholderMng.replacePlaceholderInCurrentPrintDest(#RfqDate,
placeholder_rfqDate);
// -- Placeholder @RfqExpiryDate@
placeholderMng.replacePlaceholderInCurrentPrintDest(#RfqExpiryDate,
placeholder_rfqExpiryDate);
// -- Placeholder @RfqStartDate@
placeholderMng.replacePlaceholderInCurrentPrintDest(#RfqStartDate,
placeholder_rfqStartDate);
// -- Placeholder @RfqEndDate@
placeholderMng.replacePlaceholderInCurrentPrintDest(#RfqEndDate,
placeholder_rfqEndDate);
// -- Placeholder @VendAccount@
placeholderMng.replacePlaceholderInCurrentPrintDest(#VendAccount,
placeholder_vendAccount);
// -- Placeholder @VendName@
placeholderMng.replacePlaceholderInCurrentPrintDest(#VendName,
placeholder_vendName);
// -- Placeholder @RfqCaseId@
PurchRFQCaseTable rfqCaseTable =
PurchRFQTable::findByRFQId(placeholder_rfqId);
placeholderMng.replacePlaceholderInCurrentPrintDest(#RfqCaseId,
rfqCaseTable.RFQCaseId);
// -- Placeholder @RfqCaseName@
placeholderMng.replacePlaceholderInCurrentPrintDest(#RfqCaseName,
rfqCaseTable.Name);
// -- Placeholder @VendContactName@
PurchRFQTable rfqTable = PurchRFQTable::find(placeholder_rfqId);
placeholderMng.replacePlaceholderInCurrentPrintDest(#VendContactName,
DocDspHelper::contactPersonName(rfqTable.ContactPerson));
_reportRunContext.archiveContract().setVendAccount(placeholder_vendAccount);
_reportRunContext.archiveContract().setRFQCaseId(rfqCaseTable.RFQCaseId);
_reportRunContext.archiveContract().setDocument(placeholder_rfqId,
placeholder_rfqDate);
_reportRunContext.archiveContract().setJournal(this.vendRFQJour().RecId,
DocJournalType::VendRFQJour);
return placeholderMng;
}
}