Files
psp_panel/src/app/shared/components/invoices/sale-invoice-full-response.model.ts
T

148 lines
2.7 KiB
TypeScript

import { Maybe } from '@/core';
import ISummary from '@/core/models/summary';
import { InvoiceTypes, TspProviderResponseStatus } from '@/shared/catalog';
import { IEnumTranslate } from '@/shared/models/enum_translate.type';
export interface ISaleInvoiceFullRawResponse {
id: string;
code: string;
total_amount: string;
discount_amount: string;
tax_amount: string;
invoice_date: string;
consumer_account: ConsumerAccount;
pos: Pos;
payments: Payment[];
items: Item[];
invoice_number: number;
type: IEnumTranslate<InvoiceTypes>;
created_at: string;
customer?: Customer;
unknown_customer?: UnknownCustomer;
status: IEnumTranslate<TspProviderResponseStatus>;
main_id: Maybe<string>;
tax_id: Maybe<string>;
reference_invoice: Maybe<string>;
notes: Maybe<string>;
}
export interface ISaleInvoiceFullResponse extends ISaleInvoiceFullRawResponse {}
interface Item {
id: string;
good_id: string;
service_id: null;
quantity: string;
measure_unit_code: string;
measure_unit_text: string;
sku_code: string;
unit_price: string;
discount: string;
total_amount: string;
notes?: string;
payload: Payload;
good_snapshot: Goodsnapshot;
good: GoodSummary;
}
interface GoodSummary {
name: string;
barcode?: string;
image_url?: string;
category: Category;
}
interface Category {
id: string;
name: string;
description?: string;
image_url?: string;
is_default_guild_good: boolean;
guild_id: string;
created_at: string;
updated_at: string;
}
interface Goodsnapshot {
good: Good;
}
interface Good {
id: string;
sku: Sku;
name: string;
barcode?: string;
category: ISummary;
image_url: string;
local_sku?: string;
measure_unit: MeasureUnit;
pricing_model: string;
base_sale_price: string;
}
interface MeasureUnit {
id: string;
code: string;
name: string;
}
interface Sku {
id: string;
VAT: string;
code: string;
name: string;
}
interface Payload {
karat: string;
wages: number;
profit: number;
commission: number;
}
interface Payment {
amount: string;
payment_method: string;
}
interface Customer {
id: string;
type: string;
legal?: CustomerLegal;
individual?: CustomerIndividual;
}
interface CustomerIndividual {
first_name: string;
last_name: string;
national_id: string;
postal_code: string;
economic_code: string;
}
interface CustomerLegal {
company_name: string;
registration_number: string;
postal_code: string;
economic_code: string;
}
interface Pos extends ISummary {
complex: Complex;
}
interface Complex extends ISummary {
business_activity: ISummary;
}
interface ConsumerAccount {
role: string;
account: {
username: string;
};
}
interface UnknownCustomer {
name?: string;
national_code?: string;
}