moysklad-api-model
Version:
Объектная модель API МойСклад для TypeScript проектов
36 lines (35 loc) • 1.81 kB
TypeScript
import type { OptionalNullablePartial } from '../tools';
import type { Entity } from './Entity';
import type { EntityPatchRef, EntityRef } from './EntityRef';
export type PositionMetaType = 'commissionreportinposition' | 'commissionreportoutposition' | 'customerorderposition' | 'demandposition' | 'enterposition' | 'internalorderposition' | 'inventoryposition' | 'invoiceposition' | 'lossposition' | 'moveposition' | 'processingorderposition' | 'purchaseorderposition' | 'purchasereturnposition' | 'salesreturnposition' | 'supplyposition';
export type DocumentPositionType = {
commissionreportin: 'commissionreportinposition';
commissionreportout: 'commissionreportoutposition';
customerorder: 'customerorderposition';
demand: 'demandposition';
enter: 'enterposition';
internalorder: 'internalorderposition';
inventory: 'inventoryposition';
invoicein: 'invoiceposition';
invoiceout: 'invoiceposition';
loss: 'lossposition';
move: 'moveposition';
processingorder: 'processingorderposition';
purchaseorder: 'purchaseorderposition';
purchasereturn: 'purchasereturnposition';
retaildemand: 'demandposition';
salesreturn: 'salesreturnposition';
retailsalesreturn: 'salesreturnposition';
supply: 'supplyposition';
};
export interface Position<T extends PositionMetaType> extends Entity<T> {
/** Кол-во */
quantity: number;
/** Цена */
price: number;
/** Скидка */
discount: number;
/** Ассортимент */
assortment: EntityRef<'product' | 'service' | 'bundle' | 'consignment' | 'variant'>;
}
export type PositionPatch<T extends PositionMetaType> = Partial<EntityPatchRef<T> & Pick<Position<T>, 'quantity' | 'price'>> & OptionalNullablePartial<Pick<Position<T>, 'assortment' | 'discount'>>;