using Microsoft.Dynamics.Platform.Integration.Office;
public class Tech_GLJournalExcelTemplate extends DocuTemplateRegistrationBase implements LedgerIJournalExcelTemplate
{
private const DocuTemplateName ExcelTemplateName = resourceStr(TechGLJournalLineEntityTemplate);
private const DataEntityName LineEntityName = tableStr(Tech_GLLinesEntity);
private const FieldName LineEntityJournalNum = fieldStr(Tech_GLLinesEntity, JournalBatchNumber);
private const FieldName LineEntityDataAreaId = fieldStr(Tech_GLLinesEntity, dataAreaId);
private const DataEntityName HeaderEntityName = tableStr(Tech_GLHeaderEntity);
private const FieldName HeaderEntityJournalNum = fieldStr(Tech_GLHeaderEntity, JournalBatchNumber);
private const FieldName HeaderEntityDataAreaId = fieldStr(Tech_GLHeaderEntity, dataAreaId);
public boolean isJournalTypeSupported(LedgerJournalType _ledgerJournalType)
{
return _ledgerJournalType == LedgerJournalType::Cost;
}
public void applyCustomTrimming(Excel.IWorkbookManager _templateManager, Excel.WorkbookSettingsManager _settingsManager, LedgerJournalTable _ledgerJournalTable)
{
}
public DocuTemplateName documentTemplateName()
{
return ExcelTemplateName;
}
public Set supportedAccountTypes()
{
Set accountTypeSet = new Set(Types::Integer);
accountTypeSet.add(LedgerJournalACType::Project);
return accountTypeSet;
}
public Set supportedOffsetAccountTypes()
{
Set offsetAccountTypeSet = new Set(Types::Integer);
offsetAccountTypeSet.add(LedgerJournalACType::Ledger);
offsetAccountTypeSet.add(LedgerJournalACType::Cust);
offsetAccountTypeSet.add(LedgerJournalACType::Vend);
offsetAccountTypeSet.add(LedgerJournalACType::Bank);
return offsetAccountTypeSet;
}
public boolean validateJournalForTemplate(LedgerJournalTable _ledgerJournalTable)
{
return LedgerJournalExcelTemplate::validateJournalForTemplate(_ledgerJournalTable, this);
}
public void registerTemplates()
{
this.addTemplate(
OfficeAppApplicationType::Excel,
ExcelTemplateName,
ExcelTemplateName,
literalStr("Journal lines for general journal excel template "),
literalStr("Journal lines for general journal"),
NoYes::No,
NoYes::No);
}
public DataEntityName headerEntityName()
{
return HeaderEntityName;
}
public DataEntityName lineEntityName()
{
return LineEntityName;
}
public FieldName headerJournalBatchNumberFieldName()
{
return HeaderEntityJournalNum;
}
public FieldName headerDataAreaFieldName()
{
return HeaderEntityDataAreaId;
}
public FieldName lineJournalBatchNumberFieldName()
{
return LineEntityJournalNum;
}
public FieldName lineDataAreaFieldName()
{
return LineEntityDataAreaId;
}
public Microsoft.Dynamics.Platform.Integration.Office.FilterCollectionNode appendHeaderEntityFilters(Microsoft.Dynamics.Platform.Integration.Office.FilterCollectionNode _headerFilter, ExportToExcelFilterTreeBuilder _headerFilterBuilder)
{
return _headerFilter;
}
public Microsoft.Dynamics.Platform.Integration.Office.FilterCollectionNode appendLineEntityFilters(Microsoft.Dynamics.Platform.Integration.Office.FilterCollectionNode _lineFilter, ExportToExcelFilterTreeBuilder _lineFilterBuilder)
{
Microsoft.Dynamics.Platform.Integration.Office.FilterCollectionNode ledgerVend = _lineFilterBuilder.or(
_lineFilterBuilder.areEqual(fieldStr(Tech_GLLinesEntity, OffsetAccountType), LedgerJournalACType::Ledger),
_lineFilterBuilder.areEqual(fieldStr(Tech_GLLinesEntity, OffsetAccountType), LedgerJournalACType::Vend));
Microsoft.Dynamics.Platform.Integration.Office.FilterCollectionNode custBank = _lineFilterBuilder.or(
_lineFilterBuilder.areEqual(fieldStr(Tech_GLLinesEntity, OffsetAccountType), LedgerJournalACType::Cust),
_lineFilterBuilder.areEqual(fieldStr(Tech_GLLinesEntity, OffsetAccountType), LedgerJournalACType::Bank));
Microsoft.Dynamics.Platform.Integration.Office.FilterCollectionNode offsetFilters = _lineFilterBuilder.or(ledgerVend,custBank);
Microsoft.Dynamics.Platform.Integration.Office.FilterCollectionNode ledgerFilter = _lineFilterBuilder.and(
_lineFilterBuilder.areEqual(fieldStr(Tech_GLLinesEntity, AccountType), LedgerJournalACType::Project),
offsetFilters);
return _lineFilterBuilder.and(_lineFilter, ledgerFilter);
}
}