@accounter/server
Version:
Accounter GraphQL server
1,020 lines (948 loc) • 534 kB
text/typescript
import { ChargeSortByField } from '../shared/enums.js';
import { Currency } from '../shared/enums.js';
import { DocumentType } from '../shared/enums.js';
import { MissingChargeInfo } from '../shared/enums.js';
import { TransactionDirection } from '../shared/enums.js';
import { CountryCode as CountryCodeEnum } from '../shared/enums.js';
import { TimelessDateString } from '../shared/types';
import { GraphQLResolveInfo, GraphQLScalarType, GraphQLScalarTypeConfig } from 'graphql';
import { IGetAllAdminBusinessesResult, IGetBusinessesByIdsResult, IGetAllClientsResult, IGetFinancialEntitiesByIdsResult, IGetAllTaxCategoriesResult } from '../modules/financial-entities/types.js';
import { AdminContext } from '../modules/admin-context/types.js';
import { IGetNormalizedBalanceTransactionsResult, IGetTemplateResult, ProfitAndLossReportYearProto, CommentaryRecordProto, CommentarySubRecordProto, Shaam6111ReportProto, TaxReportYearProto } from '../modules/reports/types.js';
import { IGetAllBankDepositsResult, BankDepositMetadataProto } from '../modules/bank-deposits/types.js';
import { IGetChargesByIdsResult } from '../modules/charges/types.js';
import { IGetFinancialAccountsByOwnerIdsResult } from '../modules/financial-accounts/types.js';
import { BusinessTransactionProto, RawBusinessTransactionsSum, CorporateTaxRulingComplianceReportProto, DocumentSuggestionsProto, LedgerBalanceUnbalancedEntityProto, LedgerRecordsProto } from '../shared/types';
import { BusinessTripProto, IGetBusinessTripsAccommodationsExpensesByIdsResult, IGetBusinessTripsAttendeesByBusinessTripIdsResult, IGetBusinessTripsFlightsExpensesByIdsResult, IGetBusinessTripsOtherExpensesByIdsResult, IGetBusinessTripsTravelAndSubsistenceExpensesByIdsResult, IGetBusinessTripsCarRentalExpensesByIdsResult } from '../modules/business-trips/types.js';
import { ChargeMatchProto } from '../modules/charges-matcher/types.js';
import { IGetCorporateTaxesByCorporateIdsResult } from '../modules/corporate-taxes/types.js';
import { IGetAllOpenContractsResult } from '../modules/contracts/types.js';
import { IGetAllDocumentsResult, IssuedDocumentInfoProto } from '../modules/documents/types.js';
import { IGetAllDepreciationCategoriesResult, IGetDepreciationRecordsByIdsResult } from '../modules/depreciation/types.js';
import { MonthDataProto } from '../modules/charts/types.js';
import { IGetLedgerRecordsByChargesIdsResult } from '../modules/ledger/types.js';
import { IGetExpensesByChargeIdsResult } from '../modules/misc-expenses/types.js';
import { IGetAllSalaryRecordsResult } from '../modules/salaries/types.js';
import { IGetSortCodesByIdsResult } from '../modules/sort-codes/types.js';
import { IGetAllTagsResult } from '../modules/tags/types.js';
import { RawVatReportRecord } from '../modules/reports/helpers/vat-report.helper.js';
export type Maybe<T> = T | null;
export type InputMaybe<T> = Maybe<T>;
export type Exact<T extends { [key: string]: unknown }> = { [K in keyof T]: T[K] };
export type MakeOptional<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]?: Maybe<T[SubKey]> };
export type MakeMaybe<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]: Maybe<T[SubKey]> };
export type MakeEmpty<T extends { [key: string]: unknown }, K extends keyof T> = { [_ in K]?: never };
export type Incremental<T> = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never };
export type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
export type RequireFields<T, K extends keyof T> = Omit<T, K> & { [P in K]-?: NonNullable<T[P]> };
export type EnumResolverSignature<T, AllowedValues = any> = { [key in keyof T]?: AllowedValues };
/** All built-in and custom scalars, mapped to their actual values */
export type Scalars = {
ID: { input: string; output: string; }
String: { input: string; output: string; }
Boolean: { input: boolean; output: boolean; }
Int: { input: number; output: number; }
Float: { input: number; output: number; }
/** BigInt */
BigInt: { input: bigint; output: bigint; }
/** Country Code */
CountryCode: { input: string; output: CountryCodeEnum; }
/** Date */
DateTime: { input: Date; output: Date; }
/** mock */
DividendMock: { input: any; output: any; }
/** File */
FileScalar: { input: File | Blob; output: string; }
/** Rate */
Rate: { input: any; output: any; }
/** Date with no time of day */
TimelessDate: { input: TimelessDateString; output: TimelessDateString; }
/** URL */
URL: { input: URL | string; output: URL | string; }
/** UUID */
UUID: { input: string; output: string; }
/** mock */
VatMock: { input: any; output: any; }
};
/** Result payload returned after accepting an invitation */
export type AcceptInvitationPayload = {
readonly __typename?: 'AcceptInvitationPayload';
readonly businessId: Scalars['ID']['output'];
readonly roleId: Scalars['String']['output'];
readonly success: Scalars['Boolean']['output'];
};
/** represents accountant approval status for a charge */
export type AccountantApprovalStatus = {
readonly __typename?: 'AccountantApprovalStatus';
readonly approvedCount: Scalars['Int']['output'];
readonly pendingCount: Scalars['Int']['output'];
readonly totalCharges: Scalars['Int']['output'];
readonly unapprovedCount: Scalars['Int']['output'];
};
/** represents accountant approval status */
export type AccountantStatus =
| 'APPROVED'
| 'PENDING'
| 'UNAPPROVED';
/** Accounting method enum (שיטת חשבונאות) */
export type AccountingMethod =
/** Double-entry (כפולה) */
| 'DOUBLE_ENTRY'
/** Single-entry (חד צידית) */
| 'SINGLE_ENTRY';
/** Business accounting system enum (הנח''ש של העסק) */
export type AccountingSystem =
/** Computerized (ממוחשב) */
| 'COMPUTERIZED'
/** Manual (ידני) */
| 'MANUAL';
/** the input for adding a new business trip accommodation expense */
export type AddBusinessTripAccommodationsExpenseInput = {
readonly amount?: InputMaybe<Scalars['Float']['input']>;
readonly attendeesStay?: InputMaybe<ReadonlyArray<BusinessTripAttendeeStayInput>>;
readonly businessTripId: Scalars['UUID']['input'];
readonly country?: InputMaybe<Scalars['CountryCode']['input']>;
readonly currency?: InputMaybe<Currency>;
readonly date?: InputMaybe<Scalars['TimelessDate']['input']>;
readonly employeeBusinessId?: InputMaybe<Scalars['UUID']['input']>;
readonly nightsCount?: InputMaybe<Scalars['Int']['input']>;
readonly valueDate?: InputMaybe<Scalars['TimelessDate']['input']>;
};
/** the input for adding a new business trip T&S expense */
export type AddBusinessTripCarRentalExpenseInput = {
readonly amount?: InputMaybe<Scalars['Float']['input']>;
readonly businessTripId: Scalars['UUID']['input'];
readonly currency?: InputMaybe<Currency>;
readonly date?: InputMaybe<Scalars['TimelessDate']['input']>;
readonly days?: InputMaybe<Scalars['Int']['input']>;
readonly employeeBusinessId?: InputMaybe<Scalars['UUID']['input']>;
readonly isFuelExpense?: InputMaybe<Scalars['Boolean']['input']>;
readonly valueDate?: InputMaybe<Scalars['TimelessDate']['input']>;
};
/** the input for adding a new business trip flights expense */
export type AddBusinessTripFlightsExpenseInput = {
readonly amount?: InputMaybe<Scalars['Float']['input']>;
readonly attendeeIds?: InputMaybe<ReadonlyArray<Scalars['UUID']['input']>>;
readonly businessTripId: Scalars['UUID']['input'];
readonly currency?: InputMaybe<Currency>;
readonly date?: InputMaybe<Scalars['TimelessDate']['input']>;
readonly employeeBusinessId?: InputMaybe<Scalars['UUID']['input']>;
readonly flightClass?: InputMaybe<FlightClass>;
readonly path?: InputMaybe<ReadonlyArray<Scalars['String']['input']>>;
readonly valueDate?: InputMaybe<Scalars['TimelessDate']['input']>;
};
/** the input for adding a new business trip other expense */
export type AddBusinessTripOtherExpenseInput = {
readonly amount?: InputMaybe<Scalars['Float']['input']>;
readonly businessTripId: Scalars['UUID']['input'];
readonly currency?: InputMaybe<Currency>;
readonly date?: InputMaybe<Scalars['TimelessDate']['input']>;
readonly deductibleExpense?: InputMaybe<Scalars['Boolean']['input']>;
readonly description?: InputMaybe<Scalars['String']['input']>;
readonly employeeBusinessId?: InputMaybe<Scalars['UUID']['input']>;
readonly valueDate?: InputMaybe<Scalars['TimelessDate']['input']>;
};
/** the input for adding a new business trip T&S expense */
export type AddBusinessTripTravelAndSubsistenceExpenseInput = {
readonly amount?: InputMaybe<Scalars['Float']['input']>;
readonly businessTripId: Scalars['UUID']['input'];
readonly currency?: InputMaybe<Currency>;
readonly date?: InputMaybe<Scalars['TimelessDate']['input']>;
readonly employeeBusinessId?: InputMaybe<Scalars['UUID']['input']>;
readonly expenseType?: InputMaybe<Scalars['String']['input']>;
readonly valueDate?: InputMaybe<Scalars['TimelessDate']['input']>;
};
/** Represents a business entity managed by an accountant in the system. */
export type AdminBusiness = {
readonly __typename?: 'AdminBusiness';
readonly business: LtdFinancialEntity;
readonly governmentId: Scalars['String']['output'];
readonly id: Scalars['UUID']['output'];
readonly name: Scalars['String']['output'];
readonly registrationDate: Scalars['TimelessDate']['output'];
/** Social Security Info */
readonly socialSecurityDeductionsId?: Maybe<Scalars['String']['output']>;
readonly socialSecurityEmployerIds: ReadonlyArray<AnnualId>;
/** Tax Advances Info */
readonly taxAdvancesAnnualIds: ReadonlyArray<AnnualId>;
readonly taxAdvancesRates: ReadonlyArray<TaxAdvancesRate>;
readonly withholdingTaxAnnualIds: ReadonlyArray<AnnualId>;
/** Withholding Tax Info */
readonly withholdingTaxCompanyId?: Maybe<Scalars['String']['output']>;
};
/** defines a tag / category for charge arrangement */
export type AdminContextInfo = {
readonly __typename?: 'AdminContextInfo';
readonly accumulatedDepreciationTaxCategory?: Maybe<TaxCategory>;
readonly amexBusiness?: Maybe<Business>;
readonly balanceCancellationTaxCategory: TaxCategory;
readonly bankDepositBusiness?: Maybe<Business>;
readonly bankDepositInterestIncomeTaxCategory?: Maybe<TaxCategory>;
readonly batchedEmployeesBusiness?: Maybe<Business>;
readonly batchedFundsBusiness?: Maybe<Business>;
readonly businessTripTag?: Maybe<Tag>;
readonly businessTripTaxCategory?: Maybe<TaxCategory>;
readonly calBusiness?: Maybe<Business>;
readonly compensationFundExpensesTaxCategory?: Maybe<TaxCategory>;
readonly dateEstablished?: Maybe<Scalars['TimelessDate']['output']>;
readonly defaultForeignCurrency: Currency;
readonly defaultLocalCurrency: Currency;
readonly defaultTaxCategory: TaxCategory;
readonly developmentForeignTaxCategory: TaxCategory;
readonly developmentLocalTaxCategory: TaxCategory;
readonly discountBusiness?: Maybe<Business>;
readonly dividendTaxCategory?: Maybe<TaxCategory>;
readonly dividendWithholdingTaxBusiness?: Maybe<Business>;
readonly etanaBusiness?: Maybe<Business>;
readonly etherscanBusiness?: Maybe<Business>;
readonly exchangeRateRevaluationTaxCategory: TaxCategory;
readonly exchangeRateTaxCategory: TaxCategory;
readonly expensesInAdvanceTaxCategory: TaxCategory;
readonly expensesToPayTaxCategory: TaxCategory;
readonly feeTaxCategory: TaxCategory;
readonly fineTaxCategory: TaxCategory;
readonly foreignSecuritiesBusiness?: Maybe<Business>;
readonly foreignSecuritiesFeesCategory?: Maybe<TaxCategory>;
readonly generalFeeTaxCategory: TaxCategory;
readonly gnmDepreciationExpensesTaxCategory?: Maybe<TaxCategory>;
readonly id: Scalars['ID']['output'];
readonly incomeExchangeRateTaxCategory: TaxCategory;
readonly incomeInAdvanceTaxCategory?: Maybe<TaxCategory>;
readonly incomeToCollectTaxCategory: TaxCategory;
readonly initialAccounterYear?: Maybe<Scalars['Int']['output']>;
readonly inputVatTaxCategory: TaxCategory;
readonly isracardBusiness?: Maybe<Business>;
readonly krakenBusiness?: Maybe<Business>;
readonly ledgerLock?: Maybe<Scalars['TimelessDate']['output']>;
readonly locality: Scalars['String']['output'];
readonly marketingDepreciationExpensesTaxCategory?: Maybe<TaxCategory>;
readonly outputVatTaxCategory: TaxCategory;
readonly ownerId: Scalars['UUID']['output'];
readonly pensionFundExpensesTaxCategory?: Maybe<TaxCategory>;
readonly poalimBusiness?: Maybe<Business>;
readonly propertyOutputVatTaxCategory?: Maybe<TaxCategory>;
readonly recoveryReserveExpensesTaxCategory?: Maybe<TaxCategory>;
readonly recoveryReserveTaxCategory?: Maybe<TaxCategory>;
readonly rndDepreciationExpensesTaxCategory?: Maybe<TaxCategory>;
readonly salaryExcessExpensesTaxCategory: TaxCategory;
readonly salaryExpensesTaxCategory?: Maybe<TaxCategory>;
readonly socialSecurityBusiness: Business;
readonly socialSecurityExpensesTaxCategory?: Maybe<TaxCategory>;
readonly swiftBusiness?: Maybe<Business>;
readonly taxBusiness: Business;
readonly taxDeductionsBusiness?: Maybe<Business>;
readonly taxExpensesTaxCategory: TaxCategory;
readonly trainingFundExpensesTaxCategory?: Maybe<TaxCategory>;
readonly untaxableGiftsTaxCategory: TaxCategory;
readonly vacationReserveExpensesTaxCategory?: Maybe<TaxCategory>;
readonly vacationReserveTaxCategory?: Maybe<TaxCategory>;
readonly vatBusiness: Business;
readonly zkufotExpensesTaxCategory?: Maybe<TaxCategory>;
readonly zkufotIncomeTaxCategory?: Maybe<TaxCategory>;
};
/** input variables for updateAdminContext */
export type AdminContextInput = {
readonly accumulatedDepreciationTaxCategoryId?: InputMaybe<Scalars['UUID']['input']>;
readonly amexBusinessId?: InputMaybe<Scalars['UUID']['input']>;
readonly balanceCancellationTaxCategoryId?: InputMaybe<Scalars['UUID']['input']>;
readonly bankDepositBusinessId?: InputMaybe<Scalars['UUID']['input']>;
readonly bankDepositInterestIncomeTaxCategoryId?: InputMaybe<Scalars['UUID']['input']>;
readonly batchedEmployeesBusinessId?: InputMaybe<Scalars['UUID']['input']>;
readonly batchedFundsBusinessId?: InputMaybe<Scalars['UUID']['input']>;
readonly businessTripTagId?: InputMaybe<Scalars['UUID']['input']>;
readonly businessTripTaxCategoryId?: InputMaybe<Scalars['UUID']['input']>;
readonly calBusinessId?: InputMaybe<Scalars['UUID']['input']>;
readonly compensationFundExpensesTaxCategoryId?: InputMaybe<Scalars['UUID']['input']>;
readonly dateEstablished?: InputMaybe<Scalars['TimelessDate']['input']>;
readonly defaultForeignCurrency?: InputMaybe<Currency>;
readonly defaultLocalCurrency?: InputMaybe<Currency>;
readonly defaultTaxCategoryId?: InputMaybe<Scalars['UUID']['input']>;
readonly developmentForeignTaxCategoryId?: InputMaybe<Scalars['UUID']['input']>;
readonly developmentLocalTaxCategoryId?: InputMaybe<Scalars['UUID']['input']>;
readonly discountBusinessId?: InputMaybe<Scalars['UUID']['input']>;
readonly dividendTaxCategoryId?: InputMaybe<Scalars['UUID']['input']>;
readonly dividendWithholdingTaxBusinessId?: InputMaybe<Scalars['UUID']['input']>;
readonly etanaBusinessId?: InputMaybe<Scalars['UUID']['input']>;
readonly etherscanBusinessId?: InputMaybe<Scalars['UUID']['input']>;
readonly exchangeRateRevaluationTaxCategoryId?: InputMaybe<Scalars['UUID']['input']>;
readonly exchangeRateTaxCategoryId?: InputMaybe<Scalars['UUID']['input']>;
readonly expensesInAdvanceTaxCategoryId?: InputMaybe<Scalars['UUID']['input']>;
readonly expensesToPayTaxCategoryId?: InputMaybe<Scalars['UUID']['input']>;
readonly feeTaxCategoryId?: InputMaybe<Scalars['UUID']['input']>;
readonly fineTaxCategoryId?: InputMaybe<Scalars['UUID']['input']>;
readonly foreignSecuritiesBusinessId?: InputMaybe<Scalars['UUID']['input']>;
readonly foreignSecuritiesFeesCategoryId?: InputMaybe<Scalars['UUID']['input']>;
readonly generalFeeTaxCategoryId?: InputMaybe<Scalars['UUID']['input']>;
readonly gnmDepreciationExpensesTaxCategoryId?: InputMaybe<Scalars['UUID']['input']>;
readonly incomeExchangeRateTaxCategoryId?: InputMaybe<Scalars['UUID']['input']>;
readonly incomeInAdvanceTaxCategoryId?: InputMaybe<Scalars['UUID']['input']>;
readonly incomeToCollectTaxCategoryId?: InputMaybe<Scalars['UUID']['input']>;
readonly initialAccounterYear?: InputMaybe<Scalars['Int']['input']>;
readonly inputVatTaxCategoryId?: InputMaybe<Scalars['UUID']['input']>;
readonly isracardBusinessId?: InputMaybe<Scalars['UUID']['input']>;
readonly krakenBusinessId?: InputMaybe<Scalars['UUID']['input']>;
readonly ledgerLock?: InputMaybe<Scalars['TimelessDate']['input']>;
readonly locality?: InputMaybe<Scalars['String']['input']>;
readonly marketingDepreciationExpensesTaxCategoryId?: InputMaybe<Scalars['UUID']['input']>;
readonly outputVatTaxCategoryId?: InputMaybe<Scalars['UUID']['input']>;
readonly ownerId: Scalars['UUID']['input'];
readonly pensionFundExpensesTaxCategoryId?: InputMaybe<Scalars['UUID']['input']>;
readonly poalimBusinessId?: InputMaybe<Scalars['UUID']['input']>;
readonly propertyOutputVatTaxCategoryId?: InputMaybe<Scalars['UUID']['input']>;
readonly recoveryReserveExpensesTaxCategoryId?: InputMaybe<Scalars['UUID']['input']>;
readonly recoveryReserveTaxCategoryId?: InputMaybe<Scalars['UUID']['input']>;
readonly rndDepreciationExpensesTaxCategoryId?: InputMaybe<Scalars['UUID']['input']>;
readonly salaryExcessExpensesTaxCategoryId?: InputMaybe<Scalars['UUID']['input']>;
readonly salaryExpensesTaxCategoryId?: InputMaybe<Scalars['UUID']['input']>;
readonly socialSecurityBusinessId?: InputMaybe<Scalars['UUID']['input']>;
readonly socialSecurityExpensesTaxCategoryId?: InputMaybe<Scalars['UUID']['input']>;
readonly swiftBusinessId?: InputMaybe<Scalars['UUID']['input']>;
readonly taxBusinessId?: InputMaybe<Scalars['UUID']['input']>;
readonly taxDeductionsBusinessId?: InputMaybe<Scalars['UUID']['input']>;
readonly taxExpensesTaxCategoryId?: InputMaybe<Scalars['UUID']['input']>;
readonly trainingFundExpensesTaxCategoryId?: InputMaybe<Scalars['UUID']['input']>;
readonly untaxableGiftsTaxCategoryId?: InputMaybe<Scalars['UUID']['input']>;
readonly vacationReserveExpensesTaxCategoryId?: InputMaybe<Scalars['UUID']['input']>;
readonly vacationReserveTaxCategoryId?: InputMaybe<Scalars['UUID']['input']>;
readonly vatBusinessId?: InputMaybe<Scalars['UUID']['input']>;
readonly zkufotExpensesTaxCategoryId?: InputMaybe<Scalars['UUID']['input']>;
readonly zkufotIncomeTaxCategoryId?: InputMaybe<Scalars['UUID']['input']>;
};
/** Input for an American Express credit card transaction */
export type AmexTransactionInput = {
readonly adendum?: InputMaybe<Scalars['String']['input']>;
readonly card: Scalars['String']['input'];
readonly cardIndex: Scalars['Int']['input'];
readonly chargingDate?: InputMaybe<Scalars['String']['input']>;
readonly city?: InputMaybe<Scalars['String']['input']>;
readonly clientIpAddress?: InputMaybe<Scalars['String']['input']>;
readonly currencyId?: InputMaybe<Scalars['String']['input']>;
readonly currentPaymentCurrency?: InputMaybe<Scalars['String']['input']>;
readonly dealSum?: InputMaybe<Scalars['String']['input']>;
readonly dealSumOutbound?: InputMaybe<Scalars['String']['input']>;
readonly dealSumType?: InputMaybe<Scalars['String']['input']>;
readonly dealsInbound?: InputMaybe<Scalars['String']['input']>;
readonly displayProperties?: InputMaybe<Scalars['String']['input']>;
readonly esbServicesCall?: InputMaybe<Scalars['String']['input']>;
readonly fullPaymentDate?: InputMaybe<Scalars['String']['input']>;
readonly fullPurchaseDate?: InputMaybe<Scalars['String']['input']>;
readonly fullPurchaseDateOutbound?: InputMaybe<Scalars['String']['input']>;
readonly fullSupplierNameHeb?: InputMaybe<Scalars['String']['input']>;
readonly fullSupplierNameOutbound?: InputMaybe<Scalars['String']['input']>;
readonly horaatKeva?: InputMaybe<Scalars['String']['input']>;
readonly isButton: Scalars['String']['input'];
readonly isCaptcha: Scalars['String']['input'];
readonly isError: Scalars['String']['input'];
readonly isHoraatKeva: Scalars['String']['input'];
readonly isShowDealsOutbound?: InputMaybe<Scalars['String']['input']>;
readonly isShowLinkForSupplierDetails?: InputMaybe<Scalars['String']['input']>;
readonly kodMatbeaMekori?: InputMaybe<Scalars['String']['input']>;
readonly message?: InputMaybe<Scalars['String']['input']>;
readonly moreInfo?: InputMaybe<Scalars['String']['input']>;
readonly paymentDate?: InputMaybe<Scalars['String']['input']>;
readonly paymentSum?: InputMaybe<Scalars['String']['input']>;
readonly paymentSumOutbound?: InputMaybe<Scalars['String']['input']>;
readonly paymentSumSign?: InputMaybe<Scalars['String']['input']>;
readonly purchaseDate?: InputMaybe<Scalars['String']['input']>;
readonly purchaseDateOutbound?: InputMaybe<Scalars['String']['input']>;
readonly returnCode?: InputMaybe<Scalars['String']['input']>;
readonly returnMessage?: InputMaybe<Scalars['String']['input']>;
readonly siteName?: InputMaybe<Scalars['String']['input']>;
readonly solek?: InputMaybe<Scalars['String']['input']>;
readonly specificDate?: InputMaybe<Scalars['String']['input']>;
readonly stage?: InputMaybe<Scalars['String']['input']>;
readonly supplierId?: InputMaybe<Scalars['Int']['input']>;
readonly supplierName?: InputMaybe<Scalars['String']['input']>;
readonly supplierNameOutbound?: InputMaybe<Scalars['String']['input']>;
readonly tablePageNum: Scalars['Boolean']['input'];
readonly voucherNumber?: InputMaybe<Scalars['Int']['input']>;
readonly voucherNumberRatz?: InputMaybe<Scalars['Int']['input']>;
readonly voucherNumberRatzOutbound?: InputMaybe<Scalars['Int']['input']>;
};
/** Result type for annualAuditOpeningBalanceStatus query */
export type AnnualAuditOpeningBalanceStatusInfo = {
readonly __typename?: 'AnnualAuditOpeningBalanceStatusInfo';
/** Only relevant for MIGRATING users */
readonly balanceChargeId?: Maybe<Scalars['UUID']['output']>;
readonly derivedStatus: AnnualAuditStepStatus;
readonly errorMessage?: Maybe<Scalars['String']['output']>;
readonly id: Scalars['ID']['output'];
readonly userType: AnnualAuditOpeningBalanceUserType;
};
/** User type classification for annual audit opening balance step */
export type AnnualAuditOpeningBalanceUserType =
| 'CONTINUING'
| 'ERROR'
| 'MIGRATING'
| 'NEW';
/** Status values for annual audit steps */
export type AnnualAuditStepStatus =
| 'BLOCKED'
| 'COMPLETED'
| 'IN_PROGRESS'
| 'PENDING';
/** Persisted manual status for a single annual audit step */
export type AnnualAuditStepStatusInfo = {
readonly __typename?: 'AnnualAuditStepStatusInfo';
readonly completedAt?: Maybe<Scalars['DateTime']['output']>;
/** JSON-encoded evidence metadata (step-specific structure) */
readonly evidence?: Maybe<Scalars['String']['output']>;
readonly id: Scalars['ID']['output'];
readonly notes?: Maybe<Scalars['String']['output']>;
readonly ownerId: Scalars['UUID']['output'];
readonly status: AnnualAuditStepStatus;
readonly stepId: Scalars['String']['output'];
readonly updatedAt: Scalars['DateTime']['output'];
readonly year: Scalars['Int']['output'];
};
/** Represents an annual identifier for tax purposes. */
export type AnnualId = {
readonly __typename?: 'AnnualId';
readonly id: Scalars['String']['output'];
readonly year: Scalars['Int']['output'];
};
/** Input type representing an annual identifier for tax purposes. */
export type AnnualIdInput = {
readonly id: Scalars['String']['input'];
readonly year: Scalars['Int']['input'];
};
/** annual revenue report */
export type AnnualRevenueReport = {
readonly __typename?: 'AnnualRevenueReport';
readonly countries: ReadonlyArray<AnnualRevenueReportCountry>;
readonly id: Scalars['ID']['output'];
readonly year: Scalars['Int']['output'];
};
/** annual revenue report country client record */
export type AnnualRevenueReportClientRecord = {
readonly __typename?: 'AnnualRevenueReportClientRecord';
readonly chargeId: Scalars['UUID']['output'];
readonly date: Scalars['TimelessDate']['output'];
readonly description?: Maybe<Scalars['String']['output']>;
readonly id: Scalars['ID']['output'];
readonly reference?: Maybe<Scalars['String']['output']>;
readonly revenueDefaultForeign: FinancialAmount;
readonly revenueLocal: FinancialAmount;
readonly revenueOriginal: FinancialAmount;
};
/** annual revenue report country */
export type AnnualRevenueReportCountry = {
readonly __typename?: 'AnnualRevenueReportCountry';
readonly clients: ReadonlyArray<AnnualRevenueReportCountryClient>;
readonly code: Scalars['String']['output'];
readonly id: Scalars['ID']['output'];
readonly name: Scalars['String']['output'];
readonly revenueDefaultForeign: FinancialAmount;
readonly revenueLocal: FinancialAmount;
};
/** annual revenue report country client */
export type AnnualRevenueReportCountryClient = {
readonly __typename?: 'AnnualRevenueReportCountryClient';
readonly id: Scalars['ID']['output'];
readonly name: Scalars['String']['output'];
readonly records: ReadonlyArray<AnnualRevenueReportClientRecord>;
readonly revenueDefaultForeign: FinancialAmount;
readonly revenueLocal: FinancialAmount;
};
/** annual revenue report filter */
export type AnnualRevenueReportFilter = {
readonly adminBusinessId?: InputMaybe<Scalars['UUID']['input']>;
readonly year: Scalars['Int']['input'];
};
/** API key metadata (plaintext key is never stored) */
export type ApiKey = {
readonly __typename?: 'ApiKey';
readonly createdAt: Scalars['DateTime']['output'];
readonly id: Scalars['ID']['output'];
readonly lastUsedAt?: Maybe<Scalars['DateTime']['output']>;
readonly name: Scalars['String']['output'];
readonly roleId: Scalars['String']['output'];
};
/** Audit opinion type enum (חוות דעת) */
export type AuditOpinionType =
/** Adverse opinion (שלילית) */
| 'ADVERSE'
/** Disclaimer of opinion (המנעות) */
| 'DISCLAIMER'
/** No audit opinion (אין חוות דעת) */
| 'NONE'
/** Qualified opinion (הסתייגות) */
| 'QUALIFIED'
/** Unqualified opinion (נוסח אחיד (בלתי מסוייג)) */
| 'UNQUALIFIED'
/** Unqualified opinion with emphasis on going concern (בנוסח אחיד עם הפניית תשומת לב להערת עסק חי) */
| 'UNQUALIFIED_WITH_GOING_CONCERN'
/** Unqualified opinion with other emphases (בנוסח אחיד עם הפניות תשומת לב אחרת) */
| 'UNQUALIFIED_WITH_OTHER_EMPHASES';
/** Result of the auto-match operation */
export type AutoMatchChargesResult = {
readonly __typename?: 'AutoMatchChargesResult';
/** Array of error messages encountered during the operation */
readonly errors: ReadonlyArray<Scalars['String']['output']>;
/** Array of charges that were merged, with their confidence scores */
readonly mergedCharges: ReadonlyArray<MergedCharge>;
/** Array of charge UUIDs that had multiple high-confidence matches and were skipped */
readonly skippedCharges: ReadonlyArray<Scalars['UUID']['output']>;
/** Total number of charges that were successfully matched and merged */
readonly totalMatches: Scalars['Int']['output'];
};
/** transactions for balance report */
export type BalanceTransactions = {
readonly __typename?: 'BalanceTransactions';
readonly account: FinancialAccount;
readonly amount: FinancialAmount;
readonly amountUsd: FinancialAmount;
readonly charge: Charge;
readonly chargeId: Scalars['UUID']['output'];
readonly counterparty?: Maybe<FinancialEntity>;
readonly date: Scalars['TimelessDate']['output'];
readonly description?: Maybe<Scalars['String']['output']>;
readonly id: Scalars['UUID']['output'];
readonly isFee: Scalars['Boolean']['output'];
readonly month: Scalars['Int']['output'];
readonly year: Scalars['Int']['output'];
};
/** input type for creating a bank account */
export type BankAccountInsertInput = {
readonly accountAgreementOpeningDate?: InputMaybe<Scalars['Int']['input']>;
readonly accountClosingReasonCode?: InputMaybe<Scalars['Int']['input']>;
readonly accountDealDate?: InputMaybe<Scalars['Int']['input']>;
readonly accountUpdateDate?: InputMaybe<Scalars['Int']['input']>;
readonly bankNumber: Scalars['Int']['input'];
readonly branchNumber: Scalars['Int']['input'];
readonly branchTypeCode?: InputMaybe<Scalars['Int']['input']>;
readonly extendedBankNumber?: InputMaybe<Scalars['Int']['input']>;
readonly iban?: InputMaybe<Scalars['String']['input']>;
readonly kodHarshaatPeilut?: InputMaybe<Scalars['Int']['input']>;
readonly metegDoarNet?: InputMaybe<Scalars['Int']['input']>;
readonly mymailEntitlementSwitch?: InputMaybe<Scalars['Int']['input']>;
readonly partyAccountInvolvementCode?: InputMaybe<Scalars['Int']['input']>;
readonly partyPreferredIndication?: InputMaybe<Scalars['Int']['input']>;
readonly productLabel?: InputMaybe<Scalars['String']['input']>;
readonly serviceAuthorizationDesc?: InputMaybe<Scalars['String']['input']>;
readonly swiftCode?: InputMaybe<Scalars['String']['input']>;
};
/** input type for updating a bank account */
export type BankAccountUpdateInput = {
readonly accountAgreementOpeningDate?: InputMaybe<Scalars['Int']['input']>;
readonly accountClosingReasonCode?: InputMaybe<Scalars['Int']['input']>;
readonly accountDealDate?: InputMaybe<Scalars['Int']['input']>;
readonly accountUpdateDate?: InputMaybe<Scalars['Int']['input']>;
readonly bankNumber?: InputMaybe<Scalars['Int']['input']>;
readonly branchNumber?: InputMaybe<Scalars['Int']['input']>;
readonly branchTypeCode?: InputMaybe<Scalars['Int']['input']>;
readonly extendedBankNumber?: InputMaybe<Scalars['Int']['input']>;
readonly iban?: InputMaybe<Scalars['String']['input']>;
readonly kodHarshaatPeilut?: InputMaybe<Scalars['Int']['input']>;
readonly metegDoarNet?: InputMaybe<Scalars['Int']['input']>;
readonly mymailEntitlementSwitch?: InputMaybe<Scalars['Int']['input']>;
readonly partyAccountInvolvementCode?: InputMaybe<Scalars['Int']['input']>;
readonly partyPreferredIndication?: InputMaybe<Scalars['Int']['input']>;
readonly productLabel?: InputMaybe<Scalars['String']['input']>;
readonly serviceAuthorizationDesc?: InputMaybe<Scalars['String']['input']>;
readonly swiftCode?: InputMaybe<Scalars['String']['input']>;
};
/** Bank Deposit */
export type BankDeposit = {
readonly __typename?: 'BankDeposit';
readonly account?: Maybe<FinancialAccount>;
readonly closeDate?: Maybe<Scalars['TimelessDate']['output']>;
readonly currency?: Maybe<Currency>;
readonly id: Scalars['ID']['output'];
readonly isOpen: Scalars['Boolean']['output'];
readonly metadata: BankDepositMetadata;
readonly name: Scalars['String']['output'];
readonly openDate?: Maybe<Scalars['TimelessDate']['output']>;
};
/** charge of bank deposits */
export type BankDepositCharge = Charge & {
readonly __typename?: 'BankDepositCharge';
readonly accountantApproval: AccountantStatus;
readonly additionalDocuments: ReadonlyArray<Document>;
readonly counterparty?: Maybe<FinancialEntity>;
readonly decreasedVAT?: Maybe<Scalars['Boolean']['output']>;
readonly id: Scalars['UUID']['output'];
readonly isInvoicePaymentDifferentCurrency?: Maybe<Scalars['Boolean']['output']>;
readonly ledger: Ledger;
readonly metadata?: Maybe<ChargeMetadata>;
readonly minDebitDate?: Maybe<Scalars['DateTime']['output']>;
readonly minDocumentsDate?: Maybe<Scalars['DateTime']['output']>;
readonly minEventDate?: Maybe<Scalars['DateTime']['output']>;
readonly miscExpenses: ReadonlyArray<MiscExpense>;
readonly missingInfoSuggestions?: Maybe<ChargeSuggestions>;
readonly optionalDocuments?: Maybe<Scalars['Boolean']['output']>;
readonly optionalVAT?: Maybe<Scalars['Boolean']['output']>;
readonly owner: Business;
readonly property?: Maybe<Scalars['Boolean']['output']>;
readonly tags: ReadonlyArray<Tag>;
readonly taxCategory?: Maybe<TaxCategory>;
readonly totalAmount?: Maybe<FinancialAmount>;
readonly transactions: ReadonlyArray<Transaction>;
readonly userDescription?: Maybe<Scalars['String']['output']>;
readonly validationData?: Maybe<ValidationData>;
readonly vat?: Maybe<FinancialAmount>;
readonly withholdingTax?: Maybe<FinancialAmount>;
readonly yearsOfRelevance?: Maybe<ReadonlyArray<YearOfRelevance>>;
};
/** represent a bank deposit account */
export type BankDepositFinancialAccount = FinancialAccount & {
readonly __typename?: 'BankDepositFinancialAccount';
readonly accountTaxCategories: ReadonlyArray<CurrencyTaxCategory>;
readonly charges: ReadonlyArray<Charge>;
readonly id: Scalars['UUID']['output'];
readonly name: Scalars['String']['output'];
readonly number: Scalars['String']['output'];
readonly privateOrBusiness: PrivateOrBusinessType;
readonly type: FinancialAccountType;
};
/** represent a bank deposit account */
export type BankDepositFinancialAccountChargesArgs = {
filter?: InputMaybe<ChargeFilter>;
};
/** Metadata for Bank Deposit, including current balance, total interest, total deposit amount, and associated transactions. */
export type BankDepositMetadata = {
readonly __typename?: 'BankDepositMetadata';
readonly currentBalance: FinancialAmount;
readonly id: Scalars['ID']['output'];
readonly potentialCloseDate?: Maybe<Scalars['TimelessDate']['output']>;
readonly totalDeposit: FinancialAmount;
readonly totalInterest: FinancialAmount;
readonly transactions: ReadonlyArray<Transaction>;
};
/** represent a single bank account */
export type BankFinancialAccount = FinancialAccount & {
readonly __typename?: 'BankFinancialAccount';
readonly accountAgreementOpeningDate?: Maybe<Scalars['Int']['output']>;
readonly accountClosingReasonCode?: Maybe<Scalars['Int']['output']>;
readonly accountDealDate?: Maybe<Scalars['Int']['output']>;
/** the external identifier of the bank account */
readonly accountNumber: Scalars['String']['output'];
readonly accountTaxCategories: ReadonlyArray<CurrencyTaxCategory>;
readonly accountUpdateDate?: Maybe<Scalars['Int']['output']>;
readonly bankNumber: Scalars['Int']['output'];
readonly branchNumber: Scalars['Int']['output'];
readonly branchTypeCode?: Maybe<Scalars['Int']['output']>;
readonly charges: ReadonlyArray<Charge>;
readonly extendedBankNumber?: Maybe<Scalars['Int']['output']>;
readonly iban?: Maybe<Scalars['String']['output']>;
readonly id: Scalars['UUID']['output'];
readonly kodHarshaatPeilut?: Maybe<Scalars['Int']['output']>;
readonly metegDoarNet?: Maybe<Scalars['Int']['output']>;
readonly mymailEntitlementSwitch?: Maybe<Scalars['Int']['output']>;
readonly name: Scalars['String']['output'];
readonly number: Scalars['String']['output'];
readonly partyAccountInvolvementCode?: Maybe<Scalars['Int']['output']>;
readonly partyPreferredIndication?: Maybe<Scalars['Int']['output']>;
readonly privateOrBusiness: PrivateOrBusinessType;
readonly productLabel?: Maybe<Scalars['String']['output']>;
readonly serviceAuthorizationDesc?: Maybe<Scalars['String']['output']>;
readonly swiftCode?: Maybe<Scalars['String']['output']>;
readonly type: FinancialAccountType;
};
/** represent a single bank account */
export type BankFinancialAccountChargesArgs = {
filter?: InputMaybe<ChargeFilter>;
};
/** result type for batchUpdateCharges */
export type BatchUpdateChargesResult = BatchUpdateChargesSuccessfulResult | CommonError;
/** successful result type for batchUpdateCharges */
export type BatchUpdateChargesSuccessfulResult = {
readonly __typename?: 'BatchUpdateChargesSuccessfulResult';
readonly charges: ReadonlyArray<Charge>;
};
/** contract billing cycle */
export type BillingCycle =
| 'ANNUAL'
| 'MONTHLY';
/** input required to bootstrap a new client business and its initial owner */
export type BootstrapClientInput = {
readonly businessName: Scalars['String']['input'];
readonly countryCode: Scalars['String']['input'];
readonly dateEstablished?: InputMaybe<Scalars['TimelessDate']['input']>;
readonly initialAccounterYear?: InputMaybe<Scalars['Int']['input']>;
readonly locality?: InputMaybe<Scalars['String']['input']>;
readonly ownerEmail: Scalars['String']['input'];
readonly ownerRole: Scalars['String']['input'];
};
/** Result returned after bootstrapping, including business, invitation token, and admin context. */
export type BootstrapClientResult = {
readonly __typename?: 'BootstrapClientResult';
readonly adminContext: AdminContextInfo;
readonly business: Business;
readonly id: Scalars['ID']['output'];
readonly invitationToken: Scalars['String']['output'];
};
/** represent a financial entity of any type that may hold financial accounts (company, business, individual) */
export type Business = {
readonly accounts: ReadonlyArray<FinancialAccount>;
readonly charges: PaginatedCharges;
readonly createdAt: Scalars['DateTime']['output'];
readonly id: Scalars['UUID']['output'];
readonly irsCode?: Maybe<Scalars['Int']['output']>;
readonly isActive: Scalars['Boolean']['output'];
readonly name: Scalars['String']['output'];
readonly pcn874RecordType?: Maybe<Pcn874RecordType>;
readonly sortCode?: Maybe<SortCode>;
readonly updatedAt: Scalars['DateTime']['output'];
};
/** represent a financial entity of any type that may hold financial accounts (company, business, individual) */
export type BusinessChargesArgs = {
filter?: InputMaybe<ChargeFilter>;
limit?: InputMaybe<Scalars['Int']['input']>;
page?: InputMaybe<Scalars['Int']['input']>;
};
/** configuration for business email processing */
export type BusinessEmailConfig = {
readonly __typename?: 'BusinessEmailConfig';
readonly attachments?: Maybe<ReadonlyArray<EmailAttachmentType>>;
readonly businessId: Scalars['UUID']['output'];
readonly emailBody?: Maybe<Scalars['Boolean']['output']>;
readonly internalEmailLinks?: Maybe<ReadonlyArray<Scalars['String']['output']>>;
};
/** single business transaction info */
export type BusinessTransaction = {
readonly __typename?: 'BusinessTransaction';
readonly amount: FinancialAmount;
readonly business: FinancialEntity;
readonly chargeId: Scalars['UUID']['output'];
readonly counterAccount?: Maybe<FinancialEntity>;
readonly details?: Maybe<Scalars['String']['output']>;
readonly foreignAmount?: Maybe<FinancialAmount>;
readonly invoiceDate: Scalars['TimelessDate']['output'];
readonly reference?: Maybe<Scalars['String']['output']>;
};
/** single business transaction summery */
export type BusinessTransactionSum = {
readonly __typename?: 'BusinessTransactionSum';
readonly business: FinancialEntity;
readonly credit: FinancialAmount;
readonly debit: FinancialAmount;
readonly foreignCurrenciesSum: ReadonlyArray<ForeignCurrencySum>;
readonly total: FinancialAmount;
};
/** input variables for businessTransactions */
export type BusinessTransactionsFilter = {
readonly businessIDs?: InputMaybe<ReadonlyArray<Scalars['UUID']['input']>>;
readonly fromDate?: InputMaybe<Scalars['TimelessDate']['input']>;
readonly includeRevaluation?: InputMaybe<Scalars['Boolean']['input']>;
readonly ownerIds?: InputMaybe<ReadonlyArray<Scalars['UUID']['input']>>;
readonly toDate?: InputMaybe<Scalars['TimelessDate']['input']>;
readonly type?: InputMaybe<FinancialEntityType>;
};
/** result type for businessTransactionsFromLedgerRecords */
export type BusinessTransactionsFromLedgerRecordsResult = BusinessTransactionsFromLedgerRecordsSuccessfulResult | CommonError;
/** result type for businessTransactionsFromLedgerRecords */
export type BusinessTransactionsFromLedgerRecordsSuccessfulResult = {
readonly __typename?: 'BusinessTransactionsFromLedgerRecordsSuccessfulResult';
readonly businessTransactions: ReadonlyArray<BusinessTransaction>;
};
/** result type for businessTransactionsSumFromLedgerRecords */
export type BusinessTransactionsSumFromLedgerRecordsResult = BusinessTransactionsSumFromLedgerRecordsSuccessfulResult | CommonError;
/** result type for businessTransactionsSumFromLedgerRecords */
export type BusinessTransactionsSumFromLedgerRecordsSuccessfulResult = {
readonly __typename?: 'BusinessTransactionsSumFromLedgerRecordsSuccessfulResult';
readonly businessTransactionsSum: ReadonlyArray<BusinessTransactionSum>;
};
/** represent a business trip */
export type BusinessTrip = {
readonly __typename?: 'BusinessTrip';
readonly accommodationExpenses: ReadonlyArray<BusinessTripAccommodationExpense>;
readonly accountantApproval: AccountantStatus;
readonly attendees: ReadonlyArray<BusinessTripAttendee>;
readonly carRentalExpenses: ReadonlyArray<BusinessTripCarRentalExpense>;
readonly dates?: Maybe<DateRange>;
readonly destination?: Maybe<Country>;
readonly flightExpenses: ReadonlyArray<BusinessTripFlightExpense>;
readonly id: Scalars['UUID']['output'];
readonly name: Scalars['String']['output'];
readonly otherExpenses: ReadonlyArray<BusinessTripOtherExpense>;
readonly purpose?: Maybe<Scalars['String']['output']>;
readonly summary: BusinessTripSummary;
readonly travelAndSubsistenceExpenses: ReadonlyArray<BusinessTripTravelAndSubsistenceExpense>;
readonly uncategorizedTransactions: ReadonlyArray<Maybe<UncategorizedTransaction>>;
};
/** represent a business trip accommodation expense */
export type BusinessTripAccommodationExpense = BusinessTripExpense & {
readonly __typename?: 'BusinessTripAccommodationExpense';
readonly amount?: Maybe<FinancialAmount>;
readonly attendeesStay: ReadonlyArray<BusinessTripAttendeeStay>;
readonly businessTrip: BusinessTrip;
readonly charges?: Maybe<ReadonlyArray<Charge>>;
readonly country?: Maybe<Country>;
readonly date?: Maybe<Scalars['TimelessDate']['output']>;
readonly employee?: Maybe<FinancialEntity>;
readonly id: Scalars['UUID']['output'];
readonly nightsCount?: Maybe<Scalars['Int']['output']>;
readonly payedByEmployee?: Maybe<Scalars['Boolean']['output']>;
readonly transactions?: Maybe<ReadonlyArray<Transaction>>;
readonly valueDate?: Maybe<Scalars['TimelessDate']['output']>;
};
/** represent business trip attendee */
export type BusinessTripAttendee = {
readonly __typename?: 'BusinessTripAttendee';
readonly accommodations: ReadonlyArray<BusinessTripAccommodationExpense>;
readonly arrivalDate?: Maybe<Scalars['TimelessDate']['output']>;
readonly business?: Maybe<Business>;
readonly departureDate?: Maybe<Scalars['TimelessDate']['output']>;
readonly flights: ReadonlyArray<BusinessTripFlightExpense>;
readonly id: Scalars['UUID']['output'];
readonly name: Scalars['String']['output'];
};
/** represent a business trip attendee accommodation stay info */
export type BusinessTripAttendeeStay = {
readonly __typename?: 'BusinessTripAttendeeStay';
readonly attendee: BusinessTripAttendee;
readonly id: Scalars['UUID']['output'];
readonly nightsCount: Scalars['Int']['output'];
};
/** the input for attendee accommodation stay info */
export type BusinessTripAttendeeStayInput = {
readonly attendeeId: Scalars['UUID']['input'];
readonly nightsCount: Scalars['Int']['input'];
};
/** the input for updating a business trip attendee */
export type BusinessTripAttendeeUpdateInput = {
readonly arrivalDate?: InputMaybe<Scalars['TimelessDate']['input']>;
readonly attendeeId: Scalars['UUID']['input'];
readonly businessTripId: Scalars['UUID']['input'];
readonly departureDate?: InputMaybe<Scalars['TimelessDate']['input']>;
};
/** represent a business trip car rental expense */
export type BusinessTripCarRentalExpense = BusinessTripExpense & {
readonly __typename?: 'BusinessTripCarRentalExpense';
readonly amount?: Maybe<FinancialAmount>;
readonly businessTrip: BusinessTrip;
readonly charges?: Maybe<ReadonlyArray<Charge>>;
readonly date?: Maybe<Scalars['TimelessDate']['output']>;
/** הוצאה מוכרת */
readonly days: Scalars['Int']['output'];
readonly employee?: Maybe<FinancialEntity>;
readonly id: Scalars['UUID']['output'];
/** פירוט */
readonly isFuelExpense: Scalars['Boolean']['output'];
readonly payedByEmployee?: Maybe<Scalars['Boolean']['output']>;
readonly transactions?: Maybe<ReadonlyArray<Transaction>>;
readonly valueDate?: Maybe<Scalars['TimelessDate']['output']>;
};
/** charge of dividends */
export type BusinessTripCharge = Charge & {
readonly __typename?: 'BusinessTripCharge';
readonly accountantApproval: AccountantStatus;
readonly additionalDocuments: ReadonlyArray<Document>;
readonly businessTrip?: Maybe<BusinessTrip>;
readonly counterparty?: Maybe<FinancialEntity>;
readonly decreasedVAT?: Maybe<Scalars['Boolean']['output']>;
readonly id: Scalars['UUID']['output'];
readonly isInvoicePaymentDifferentCurrency?: Maybe<Scalars['Boolean']['output']>;
readonly ledger: Ledger;
readonly metadata?: Maybe<ChargeMetadata>;
readonly minDebitDate?: Maybe<Scalars['DateTime']['output']>;
readonly minDocumentsDate?: Maybe<Scalars['DateTime']['output']>;
readonly minEventDate?: Maybe<Scalars['DateTime']['output']>;
readonly miscExpenses: ReadonlyArray<MiscExpense>;
readonly missingInfoSuggestions?: Maybe<ChargeSuggestions>;
readonly optionalDocuments?: Maybe<Scalars['Boolean']['output']>;
readonly optionalVAT?: Maybe<Scalars['Boolean']['output']>;
readonly owner: Business;
readonly property?: Maybe<Scalars['Boolean']['output']>;
readonly tags: ReadonlyArray<Tag>;
readonly taxCategory?: Maybe<TaxCategory>;
readonly totalAmount?: Maybe<FinancialAmount>;
readonly transactions: ReadonlyArray<Transaction>;
readonly userDescription?: Maybe<Scalars['String']['output']>;
readonly validationData?: Maybe<ValidationData>;
readonly vat?: Maybe<FinancialAmount>;
readonly withholdingTax?: Maybe<FinancialAmount>;
readonly yearsOfRelevance?: Maybe<ReadonlyArray<YearOfRelevance>>;
};
/** business trip expense prototype */
export type BusinessTripExpense = {
readonly amount?: Maybe<FinancialAmount>;
readonly businessTrip: BusinessTrip;
readonly charges?: Maybe<ReadonlyArray<Charge>>;
readonly date?: Maybe<Scalars['TimelessDate']['output']>;
readonly employee?: Maybe<FinancialEntity>;
readonly id: Scalars['UUID']['output'];
/** שולם על ידי העובד */
readonly payedByEmployee?: Maybe<Scalars['Boolean']['output']>;
readonly transactions?: Maybe<ReadonlyArray<Transaction>>;
readonly valueDate?: Maybe<Scalars['TimelessDate']['output']>;
};
/** represent category type of business trip summary */
export type BusinessTripExpenseCategories =
| 'ACCOMMODATION'
| 'CAR_RENTAL'
| 'FLIGHT'
| 'OTHER'
| 'TRAVEL_AND_SUBSISTENCE';
/** represent a business trip flight expense */
export type BusinessTripFlightExpense = BusinessTripExpense & {
readonly __typename?: 'BusinessTripFlightExpense';
readonly amount?: Maybe<FinancialAmount>;
readonly attendees: ReadonlyArray<BusinessTripAttendee>;
readonly businessTrip: BusinessTrip;
readonly charges?: Maybe<ReadonlyArray<Charge>>;
readonly class?: Maybe<Scalars['String']['output']>;
readonly date?: Maybe<Scalars['TimelessDate']['output']>;
readonly employee?: Maybe<FinancialEntity>;
readonly id: Scalars['UUID']['output'];
readonly path?: Maybe<ReadonlyArray<Scalars['String']['output']>>;
readonly payedByEmployee?: Maybe<Scalars['Boolean']['output']>;
readonly transactions?: Maybe<ReadonlyArray<Transaction>>;
readonly valueDate?: Maybe<Scalars['TimelessDate']['output']>;
};
/** represent a business trip other expense */
export type BusinessTripOtherExpense = BusinessTripExpense & {
readonly __typename?: 'BusinessTripOtherExpense';
readonly amount?: Maybe<FinancialAmount>;
readonly businessTrip: BusinessTrip;
readonly charges?: Maybe<ReadonlyArray<Charge>>;
readonly date?: Maybe<Scalars['TimelessDate']['output']>;
/** הוצאה מוכרת */
readonly deductibleExpense?: Maybe<Scalars['Boolean']['output']>;
/** פירוט */
readonly description?: Maybe<Scalars['String']['output']>;
readonly employee?: Maybe<FinancialEntity>;
readonly id: Scalars['UUID']['output'];
readonly payedByEmployee?: Maybe<Scalars['Boolean']['output']>;
readonly transactions?: Maybe<ReadonlyArray<Transaction>>;
readonly valueDate?: Maybe<Scalars['TimelessDate']['output']>;
};
/** represent business trip summary data */
export type BusinessTripSummary = {
readonly __typename?: 'BusinessTripSummary';
readonly errors?: Maybe<ReadonlyArray<Scalars['String']['output']>>;
readonly excessExpenditure?: Maybe<FinancialAmount>;
readonly excessTax?: Maybe<Scalars['Float']['output']>;
readonly rows: ReadonlyArray<BusinessTripSummaryRow>;
};
/** represent category type of business trip summary */
export type BusinessTripSummaryCategories =
| 'ACCOMMODATION'
| 'CAR_RENTAL'
| 'FLIGHT'
| 'OTHER'
| 'TOTAL'
| 'TRAVEL_AND_SUBSISTENCE';
/** represent business trip summary data row */
export type BusinessTripSummaryRow = {
readonly __typename?: 'BusinessTripSummaryRow';
readonly excessExpenditure?: Maybe<FinancialAmount>;
readonly maxTaxableForeignCurrency: FinancialAmount;
readonly maxTaxableLocalCurrency?: Maybe<FinancialAmount>;
readonly taxableForeignCurrency: FinancialAmount;
readonly taxableLocalCurrency?: Maybe<FinancialAmount>;
readonly totalForeignCurrency: FinancialAmount;
readonly totalLocalCurrency?: Maybe<FinancialAmount>;
readonly type: BusinessTripSummaryCategories;
};
/** represent a business trip travel and subsistence expense */
export type BusinessTripTravelAndSubsistenceExpense = BusinessTripExpense & {
readonly __typename?: 'BusinessTripTravelAndSubsistenceExpense';
readonly amount?: Maybe<FinancialAmount>;
readonly businessTrip: BusinessTrip;
readonly charges?: Maybe<ReadonlyArray<Charge>>;
readonly date?: Maybe<Scalars['TimelessDate']['output']>;
readonly employee?: Maybe<FinancialEntity>;
/** סוג ההוצאה */
readonly expense