|
|
@@ -1,195 +0,0 @@
|
|
|
-// import { Adjustment, AdjustmentType, TaxLine } from '@vendure/common/lib/generated-types';
|
|
|
-// import { DeepPartial, ID } from '@vendure/common/lib/shared-types';
|
|
|
-// import { summate } from '@vendure/common/lib/shared-utils';
|
|
|
-// import { Column, Entity, Index, JoinTable, ManyToMany, ManyToOne, OneToOne } from 'typeorm';
|
|
|
-//
|
|
|
-// import { Calculated } from '../../common/calculated-decorator';
|
|
|
-// import { grossPriceOf, netPriceOf } from '../../common/tax-utils';
|
|
|
-// import { VendureEntity } from '../base/base.entity';
|
|
|
-// import { EntityId } from '../entity-id.decorator';
|
|
|
-// import { Fulfillment } from '../fulfillment/fulfillment.entity';
|
|
|
-// import { OrderLine } from '../order-line/order-line.entity';
|
|
|
-// import { Refund } from '../refund/refund.entity';
|
|
|
-// import { Cancellation } from '../stock-movement/cancellation.entity';
|
|
|
-//
|
|
|
-// /**
|
|
|
-// * @description
|
|
|
-// * An individual item of an {@link OrderLine}.
|
|
|
-// *
|
|
|
-// * @docsCategory entities
|
|
|
-// */
|
|
|
-// @Entity()
|
|
|
-// export class OrderItem extends VendureEntity {
|
|
|
-// constructor(input?: DeepPartial<OrderItem>) {
|
|
|
-// super(input);
|
|
|
-// }
|
|
|
-//
|
|
|
-// @Index()
|
|
|
-// @ManyToOne(type => OrderLine)
|
|
|
-// line: OrderLine;
|
|
|
-//
|
|
|
-// @EntityId()
|
|
|
-// lineId: ID; // TypeORM requires this ID field on the entity explicitly in order to save the foreign key via `.insert`
|
|
|
-//
|
|
|
-// /**
|
|
|
-// * @description
|
|
|
-// * The price as calculated when the OrderItem was first added to the Order. Usually will be identical to the
|
|
|
-// * `listPrice`, except when the ProductVariant price has changed in the mean time and a re-calculation of
|
|
|
-// * the Order has been performed.
|
|
|
-// */
|
|
|
-// @Column({ nullable: true })
|
|
|
-// initialListPrice: number;
|
|
|
-//
|
|
|
-// /**
|
|
|
-// * @description
|
|
|
-// * This is the price as listed by the ProductVariant (and possibly modified by the {@link OrderItemPriceCalculationStrategy}),
|
|
|
-// * which, depending on the current Channel, may or may not include tax.
|
|
|
-// */
|
|
|
-// @Column()
|
|
|
-// listPrice: number;
|
|
|
-//
|
|
|
-// /**
|
|
|
-// * @description
|
|
|
-// * Whether or not the listPrice includes tax, which depends on the settings
|
|
|
-// * of the current Channel.
|
|
|
-// */
|
|
|
-// @Column()
|
|
|
-// listPriceIncludesTax: boolean;
|
|
|
-//
|
|
|
-// @Column('simple-json')
|
|
|
-// adjustments: Adjustment[];
|
|
|
-//
|
|
|
-// @Column('simple-json')
|
|
|
-// taxLines: TaxLine[];
|
|
|
-//
|
|
|
-// @ManyToMany(type => Fulfillment, fulfillment => fulfillment.orderItems)
|
|
|
-// @JoinTable()
|
|
|
-// fulfillments: Fulfillment[];
|
|
|
-//
|
|
|
-// @Index()
|
|
|
-// @ManyToOne(type => Refund)
|
|
|
-// refund: Refund;
|
|
|
-//
|
|
|
-// @EntityId({ nullable: true })
|
|
|
-// refundId: ID | null;
|
|
|
-//
|
|
|
-// @OneToOne(type => Cancellation, cancellation => cancellation.orderItem)
|
|
|
-// cancellation: Cancellation;
|
|
|
-//
|
|
|
-// @Column({ default: false })
|
|
|
-// cancelled: boolean;
|
|
|
-//
|
|
|
-// get fulfillment(): Fulfillment | undefined {
|
|
|
-// return this.fulfillments?.find(f => f.state !== 'Cancelled');
|
|
|
-// }
|
|
|
-//
|
|
|
-// /**
|
|
|
-// * @description
|
|
|
-// * The price of a single unit, excluding tax and discounts.
|
|
|
-// */
|
|
|
-// @Calculated()
|
|
|
-// get unitPrice(): number {
|
|
|
-// return this.listPriceIncludesTax ? netPriceOf(this.listPrice, this.taxRate) : this.listPrice;
|
|
|
-// }
|
|
|
-//
|
|
|
-// /**
|
|
|
-// * @description
|
|
|
-// * The price of a single unit, including tax but excluding discounts.
|
|
|
-// */
|
|
|
-// @Calculated()
|
|
|
-// get unitPriceWithTax(): number {
|
|
|
-// return this.listPriceIncludesTax ? this.listPrice : grossPriceOf(this.listPrice, this.taxRate);
|
|
|
-// }
|
|
|
-//
|
|
|
-// /**
|
|
|
-// * @description
|
|
|
-// * The total applicable tax rate, which is the sum of all taxLines on this
|
|
|
-// * OrderItem.
|
|
|
-// */
|
|
|
-// @Calculated()
|
|
|
-// get taxRate(): number {
|
|
|
-// return summate(this.taxLines, 'taxRate');
|
|
|
-// }
|
|
|
-//
|
|
|
-// @Calculated()
|
|
|
-// get unitTax(): number {
|
|
|
-// return this.unitPriceWithTax - this.unitPrice;
|
|
|
-// }
|
|
|
-//
|
|
|
-// /**
|
|
|
-// * @description
|
|
|
-// * The price of a single unit including discounts, excluding tax.
|
|
|
-// *
|
|
|
-// * If Order-level discounts have been applied, this will not be the
|
|
|
-// * actual taxable unit price (see `proratedUnitPrice`), but is generally the
|
|
|
-// * correct price to display to customers to avoid confusion
|
|
|
-// * about the internal handling of distributed Order-level discounts.
|
|
|
-// */
|
|
|
-// @Calculated()
|
|
|
-// get discountedUnitPrice(): number {
|
|
|
-// const result = this.listPrice + this.getAdjustmentsTotal(AdjustmentType.PROMOTION);
|
|
|
-// return this.listPriceIncludesTax ? netPriceOf(result, this.taxRate) : result;
|
|
|
-// }
|
|
|
-//
|
|
|
-// /**
|
|
|
-// * @description
|
|
|
-// * The price of a single unit including discounts and tax.
|
|
|
-// */
|
|
|
-// @Calculated()
|
|
|
-// get discountedUnitPriceWithTax(): number {
|
|
|
-// const result = this.listPrice + this.getAdjustmentsTotal(AdjustmentType.PROMOTION);
|
|
|
-// return this.listPriceIncludesTax ? result : grossPriceOf(result, this.taxRate);
|
|
|
-// }
|
|
|
-//
|
|
|
-// /**
|
|
|
-// * @description
|
|
|
-// * The actual unit price, taking into account both item discounts _and_ prorated (proportionally-distributed)
|
|
|
-// * Order-level discounts. This value is the true economic value of the OrderItem, and is used in tax
|
|
|
-// * and refund calculations.
|
|
|
-// */
|
|
|
-// @Calculated()
|
|
|
-// get proratedUnitPrice(): number {
|
|
|
-// const result = this.listPrice + this.getAdjustmentsTotal();
|
|
|
-// return this.listPriceIncludesTax ? netPriceOf(result, this.taxRate) : result;
|
|
|
-// }
|
|
|
-//
|
|
|
-// /**
|
|
|
-// * @description
|
|
|
-// * The `proratedUnitPrice` including tax.
|
|
|
-// */
|
|
|
-// @Calculated()
|
|
|
-// get proratedUnitPriceWithTax(): number {
|
|
|
-// const result = this.listPrice + this.getAdjustmentsTotal();
|
|
|
-// return this.listPriceIncludesTax ? result : grossPriceOf(result, this.taxRate);
|
|
|
-// }
|
|
|
-//
|
|
|
-// @Calculated()
|
|
|
-// get proratedUnitTax(): number {
|
|
|
-// return this.proratedUnitPriceWithTax - this.proratedUnitPrice;
|
|
|
-// }
|
|
|
-//
|
|
|
-// /**
|
|
|
-// * @description
|
|
|
-// * The total of all price adjustments. Will typically be a negative number due to discounts.
|
|
|
-// */
|
|
|
-// private getAdjustmentsTotal(type?: AdjustmentType): number {
|
|
|
-// if (!this.adjustments) {
|
|
|
-// return 0;
|
|
|
-// }
|
|
|
-// return this.adjustments
|
|
|
-// .filter(adjustment => (type ? adjustment.type === type : true))
|
|
|
-// .reduce((total, a) => total + a.amount, 0);
|
|
|
-// }
|
|
|
-//
|
|
|
-// addAdjustment(adjustment: Adjustment) {
|
|
|
-// this.adjustments = this.adjustments.concat(adjustment);
|
|
|
-// }
|
|
|
-//
|
|
|
-// clearAdjustments(type?: AdjustmentType) {
|
|
|
-// if (!type) {
|
|
|
-// this.adjustments = [];
|
|
|
-// } else {
|
|
|
-// this.adjustments = this.adjustments ? this.adjustments.filter(a => a.type !== type) : [];
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|