Skip to content

Instantly share code, notes, and snippets.

@lomeat
Last active December 17, 2021 00:53
Show Gist options
  • Save lomeat/ce6b9a62194598c1ec6ba60805c75ce4 to your computer and use it in GitHub Desktop.
Save lomeat/ce6b9a62194598c1ec6ba60805c75ce4 to your computer and use it in GitHub Desktop.
Flat prev passport
export type Passport = {
id: number;
title: string;
children: PassportCategory[] | PassportNomenclature[] | null;
};
export type PassportCategory = {
id: number | null;
children: PassportCategory[] | PassportNomenclature[] | null;
title: string;
unit?: string;
nomenclature_amount?: number;
nomenclature_price_sum?: number;
contract_agent_count?: number;
contract_price_sum?: number;
payment_count?: number;
payment_price_sum_to?: number;
payment_price_sum_now?: number;
payment_percent_to?: number;
payment_percent_now?: number;
ttn_count?: number;
ttn_percent?: number;
invoice_price_sum?: number;
};
export type PassportNomenclature = {
id: number;
base_title: string;
base_unit?: string;
approve_status?: string;
approve_comment?: string;
nomenclature_amount?: number;
nomenclature_price_unit?: number;
nomenclature_price_sum?: number;
agreement_date?: string | Date;
agreement_status?: string;
responsible_uuid?: string;
responsible_name?: string;
contract_agent_name?: string;
contract_agent_count?: number;
contract_amount?: number;
contract_price_unit?: number;
contract_price_sum?: number;
payment_count?: number;
payment_date?: string | Date;
payment_amount_to?: number;
payment_amount_now?: number;
payment_price_unit?: number;
payment_price_sum_to?: number;
payment_price_sum_now?: number;
payment_status?: string;
payment_percent_to?: number;
payment_percent_now?: number;
ttn_amount?: number;
ttn_date?: string | Date;
ttn_count?: number;
ttn_percent?: number;
invoice_amount?: number;
invoice_price_unit?: number;
invoice_price_sum?: number;
agents: Agents[];
payments: Payment[];
};
type Agents = {
id: number;
type: 'ts' | 'account' | 'internal';
title: string;
amount: number;
price_unit: number;
price_sum: number;
contracts?: Contract[];
payments?: Payment[];
};
type Contract = {
uuid: string;
title: string;
amount: number;
price_unit: number;
price_sum: number;
payments?: Payment[];
ttns?: TTN[];
invoices?: Invoice[];
};
type Payment = {
uuid: string;
date: 'YYYY-MM-DD';
amount_to: number;
amount_now: number;
price_unit: number;
price_sum_to: number;
price_sum_now: number;
status: 'at_work' | 'agreed' | 'for_payment' | 'is_paid';
file_uuid: string;
file_name: string;
percent_to: number;
percent_now: number;
ttns?: TTN[];
invoices?: Invoice[];
};
type TTN = {
uuid: string;
amount: number;
date: 'YYYY-MM-DD';
file_uuid: string;
file_name: string;
percent: number;
};
type Invoice = {
uuid: string;
amount: number;
price_unit: number;
price_sum: number;
ttns: TTN[];
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment