import { Amount } from '../../../commonStateTypes/amount'; import { FetchStateAndError, ID } from '../../../commonStateTypes/common'; import { SortOrder } from '../../../commonStateTypes/selectorTypes/sortOrderTypes'; import { ScheduleDaysOfMonth } from '../../../commonStateTypes/timePeriod'; import { JEScheduleTransactionKey, ScheduleJournalEntryStatusCodeType, ScheduleTypes } from '../../../entity/jeSchedules/jeSchedulesTypes'; import { TransactionID } from '../../../entity/transaction/stateTypes/transactionID'; import { VendorBase } from '../../../entity/vendor/vendorState'; import { ZeniDate } from '../../../zeniDayJS'; import { ScheduleDetailSortKey } from './scheduleDetailTypes'; export type JELinkType = 'recommended' | 'linked' | 'unknown' | 'qbourl'; export interface JETransactionLink { type: JELinkType; recommendedTransactionID?: TransactionID; reversalTransactionDetails?: TransactionID; thirdPartyTransactionId?: ID; transactionDetailID?: TransactionID; } export interface ScheduleDetailUIState { scrollPosition: number; sortKey: ScheduleDetailSortKey; sortOrder: SortOrder; } export interface JEScheduleDetailsLocalData { amount: Amount; jeLink: JETransactionLink; memo: string; postingDate: ZeniDate; postingStatus: ScheduleJournalEntryStatusCodeType; runningBalance: Amount; } export interface ScheduleDetailsLocalData { jeScheduleDetails: JEScheduleDetailsLocalData[]; scheduleType: ScheduleTypes; lastDayOfMonth?: boolean; selectedAccount?: ID; selectedClass?: ID; selectedDate?: ZeniDate; selectedDayOfMonth?: ScheduleDaysOfMonth; selectedMonths?: number; selectedVendor?: VendorBase; } export interface ScheduleDetailsLocalDataFixedAssets extends ScheduleDetailsLocalData { assetId?: string; selectedAccumulatedDepreciationCategory?: ID; } export interface ScheduleDetailViewState extends FetchStateAndError { deleteStatus: FetchStateAndError; editScheduleStateByDetailId: { accrued_expenses: Record; deferred_revenue: Record; fixed_assets: Record; prepaid_expenses: Record; }; markAsCompleteStatus: FetchStateAndError; newScheduleState: { accrued_expenses: ScheduleDetailsLocalData; deferred_revenue: ScheduleDetailsLocalData; fixed_assets: ScheduleDetailsLocalDataFixedAssets; prepaid_expenses: ScheduleDetailsLocalData; }; uiState: ScheduleDetailUIState; updateStatus: FetchStateAndError; selectedDetailScheduleType?: ScheduleTypes; selectedJELinkRowIndex?: number; selectedJEScheduleKey?: JEScheduleTransactionKey; }