import { FetchStateAndError, ID } from '../../commonStateTypes/common'; import { RecommendationWithCOT } from '../../commonStateTypes/recommendationBase'; import { AccountBase, RecommendedAccountBase } from '../../entity/account/accountState'; import { ClassBase, RecommendedClassBase } from '../../entity/class/classState'; import { CustomerBase } from '../../entity/customer/customerState'; import { Entity } from '../../entity/genericEntity/entity'; import { ProjectBase } from '../../entity/project/projectState'; import { TransactionID } from '../../entity/transaction/stateTypes/transactionID'; import { BillableStatus, PlatformLineDetailType, ProductOrService, TransactionLineBase } from '../../entity/transaction/stateTypes/transactionLine'; import { TransactionCategory, TransactionType } from '../../entity/transaction/stateTypes/transactionType'; import { VendorBase } from '../../entity/vendor/vendorState'; export interface TransactionDetailLineItemData extends TransactionLineBase { isCategoryMiscategorized: boolean; isClassMiscategorized: boolean; account?: AccountBase; billable?: BillableStatus; categoryClassRecommendationsFetchState?: FetchStateAndError; class?: ClassBase; customer?: CustomerBase; isCategoryUpdateSelected?: boolean; isClassUpdateSelected?: boolean; isRecommendedCategorySelected?: boolean; isRecommendedClassSelected?: boolean; isRetainedCategorySelected?: boolean; isRetainedClassSelected?: boolean; isUpdateAllChecked?: boolean; item?: ProductOrService; lineDetailType?: PlatformLineDetailType; lineEntity?: Entity; lineTransactionType?: TransactionType; linkedTransactions?: TransactionID[]; postingType?: TransactionCategory; postingTypeName?: string; project?: ProjectBase; recommendationsWithCOT?: RecommendationWithCOT[]; recommendedAccount?: RecommendedAccountBase; recommendedClass?: RecommendedClassBase; retainedAccount?: AccountBase; retainedClass?: ClassBase; selectedEntityLine?: Entity; vendor?: VendorBase; } export interface TransactionDetailLocalData { isVendorUpdateAllChecked: boolean; lineItemById: Record; vendorBulkUpdateCategoryClassRecommendationsFetchStatus: FetchStateAndError; customerDetails?: { id: ID; name: string; qboId: ID; }; customerUpdates?: TransactionVendorUpdates; deletedLineIds?: ID[]; documentId?: string; editMode?: boolean; latestSelectedEntityOnLineItem?: Entity; latestUpdatedLineWithEntity?: ID; memo?: string; project?: ProjectBase; selectedEntity?: Entity; updatePreviousTransactionsWithUpdatedVendor?: boolean; vendorDetails?: { id: ID; name: string; qboId: ID; }; vendorUpdates?: TransactionVendorUpdates; } export interface TransactionVendorUpdates { name: string; id?: ID; qboId?: ID; }