Архитектура: централизовать organization carryover precedence в continuity policy и transition glue
This commit is contained in:
@@ -413,6 +413,29 @@ export function applyTemporalCarryoverFilters(
|
||||
return nextFilters;
|
||||
}
|
||||
|
||||
export function applyOrganizationCarryoverFilters(
|
||||
previousFilters: Record<string, unknown> | null,
|
||||
historicalOrganization: unknown,
|
||||
authorityActiveOrganization: unknown,
|
||||
continuityActiveOrganization: unknown,
|
||||
navigationOrganization: unknown,
|
||||
organizationClarificationSelection: unknown,
|
||||
toNonEmptyString: (value: unknown) => string | null = fallbackToNonEmptyString
|
||||
): Record<string, unknown> {
|
||||
const nextFilters =
|
||||
previousFilters && typeof previousFilters === "object" ? { ...previousFilters } : {};
|
||||
if (!toNonEmptyString(nextFilters.organization)) {
|
||||
nextFilters.organization =
|
||||
toNonEmptyString(historicalOrganization) ??
|
||||
toNonEmptyString(authorityActiveOrganization) ??
|
||||
toNonEmptyString(continuityActiveOrganization) ??
|
||||
toNonEmptyString(navigationOrganization) ??
|
||||
toNonEmptyString(organizationClarificationSelection) ??
|
||||
undefined;
|
||||
}
|
||||
return nextFilters;
|
||||
}
|
||||
|
||||
export function buildInventoryRootFrameFromAddressDebug(
|
||||
debug: Record<string, unknown> | null,
|
||||
toNonEmptyString: (value: unknown) => string | null = fallbackToNonEmptyString
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
// @ts-nocheck
|
||||
import {
|
||||
applyOrganizationCarryoverFilters,
|
||||
applyTemporalCarryoverFilters,
|
||||
buildRootScopedCarryoverFilters,
|
||||
buildInventoryRootFrameFromAddressDebug,
|
||||
@@ -770,27 +771,19 @@ export function createAssistantTransitionPolicy(deps) {
|
||||
previousFilters.counterparty = historicalCounterparty;
|
||||
}
|
||||
}
|
||||
if (!deps.toNonEmptyString(previousFilters.organization)) {
|
||||
const historicalOrganization = deps.findRecentAddressFilterValue(items, "organization");
|
||||
if (historicalOrganization) {
|
||||
previousFilters.organization = historicalOrganization;
|
||||
}
|
||||
}
|
||||
const historicalOrganization = deps.findRecentAddressFilterValue(items, "organization");
|
||||
const authorityActiveOrganization =
|
||||
deps.normalizeOrganizationScopeValue(organizationAuthority.activeOrganization) ??
|
||||
deps.normalizeOrganizationScopeValue(organizationAuthority.continuityActiveOrganization);
|
||||
if (!deps.toNonEmptyString(previousFilters.organization) && authorityActiveOrganization) {
|
||||
previousFilters.organization = authorityActiveOrganization;
|
||||
}
|
||||
if (!deps.toNonEmptyString(previousFilters.organization) && continuitySnapshot.activeOrganization) {
|
||||
previousFilters.organization = continuitySnapshot.activeOrganization;
|
||||
}
|
||||
if (!deps.toNonEmptyString(previousFilters.organization) && navigationOrganization) {
|
||||
previousFilters.organization = navigationOrganization;
|
||||
}
|
||||
if (!deps.toNonEmptyString(previousFilters.organization) && organizationClarificationSelection) {
|
||||
previousFilters.organization = organizationClarificationSelection;
|
||||
}
|
||||
previousFilters = applyOrganizationCarryoverFilters(
|
||||
previousFilters,
|
||||
historicalOrganization,
|
||||
authorityActiveOrganization,
|
||||
continuitySnapshot.activeOrganization,
|
||||
navigationOrganization,
|
||||
organizationClarificationSelection,
|
||||
deps.toNonEmptyString
|
||||
);
|
||||
if (inventoryPurchaseDateVatBridge) {
|
||||
const purchaseBridgeItem =
|
||||
previousAddressItem &&
|
||||
|
||||
Reference in New Issue
Block a user