Sana Assistant (online)
Table of Contents

SalesDocumentsFieldFilterExtension reference

This article provides reference material about SalesDocumentsFieldFilterExtension class. All sales document field filter extensions have to be inherited from the SalesDocumentsFieldFilterExtension which, in turn, inherits from the core Sana Commerce Cloud Extension class.

SalesDocumentsFieldFilterExtension inheritance

This extension should be used to filter sales documents list.

Note

Multiple SalesDocumentsFieldFilterExtension extensions can be created in case sales documents should be filtered by multiple fields.

Properties

SalesDocumentsFieldFilterExtension

FieldName

The name of the ERP document entity field to filter sales documents by.

Note

Sales document entity fields should contain the field with provided name.

public override string FieldName => "AddressId";

Methods

SalesDocumentsFieldFilterExtension

Note

All code examples may contain nonexistent methods or properties. They are used as declarations only and should be created if they fit the designed extension or deleted if they do not.

GetFieldValues

Gets the field values to filter sales documents by.

public override ErpFieldValue[] GetFieldValues(in SalesDocumentsFieldFilterContext context)
{
    if (context.DocumentType == SalesDocumentType.Order || context.DocumentType == SalesDocumentType.Quote)
    {
        var value = GetCustomerAddressErpValue();
        if (value is null)
            return [];

        return [value];
    }

    return [];
}

ErpFieldValue? GetCustomerAddressErpValue()
{
    var addressId = Api.CurrentUserData.Get<UserData>()?.SelectedAddressId;
    if (string.IsNullOrEmpty(addressId))
        return null;

    return ErpFieldValue.FromString(addressId);
}

sealed class UserData
{
    public string? SelectedAddressId { get; set; }
}

See also