Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x | import { DiscountGroup } from './discount_group.js';
import { Entity } from '../entity.js';
import { MerchiFile } from './file.js';
import { InventoryUnitVariation } from './inventory_unit_variation.js';
import { Variation } from './variation.js';
import { VariationField } from './variation_field.js';
export class VariationFieldsOption extends Entity {
protected static resourceName = 'variation_fields_options';
protected static singularName = 'variationFieldsOption';
protected static pluralName = 'variationFieldsOptions';
@VariationFieldsOption.property({type: Date})
public archived?: Date | null;
@VariationFieldsOption.property()
public id?: number;
@VariationFieldsOption.property({type: String})
public value?: string | null;
@VariationFieldsOption.property({type: String})
public colour?: string | null;
@VariationFieldsOption.property()
public currency?: string;
@VariationFieldsOption.property()
public default?: boolean;
@VariationFieldsOption.property()
public include?: boolean;
@VariationFieldsOption.property()
public noInventory?: boolean;
@VariationFieldsOption.property()
public position?: number;
@VariationFieldsOption.property()
public deliveryDays?: number;
@VariationFieldsOption.property()
public variationCost?: number;
@VariationFieldsOption.property({type: 'DiscountGroup'})
public variationCostDiscountGroup?: DiscountGroup | null;
@VariationFieldsOption.property()
public variationUnitCost?: number;
@VariationFieldsOption.property({embeddedByDefault: false})
public buyUnitCost?: number;
@VariationFieldsOption.property({embeddedByDefault: false})
public buyCost?: number;
@VariationFieldsOption.property({type: 'DiscountGroup'})
public variationUnitCostDiscountGroup?: DiscountGroup | null;
@VariationFieldsOption.property({type: VariationField})
public variationField?: VariationField | null;
@VariationFieldsOption.property({type: MerchiFile})
public linkedFile?: MerchiFile | null;
@VariationFieldsOption.property({arrayType: 'Variation'})
public selectedByVariations?: Variation[];
@VariationFieldsOption.property({arrayType: 'InventoryUnitVariation'})
public inventoryUnitVariations?: InventoryUnitVariation[];
@VariationFieldsOption.property({arrayType: 'VariationFieldsOption'})
public selectedBy?: VariationFieldsOption[];
public totalCost = (quantity: number) => {
Iif (this.variationCost === undefined) {
throw new Error('variationCost is unknown');
}
Iif (this.variationUnitCost === undefined) {
throw new Error('variationUnitCost is unknown');
}
return this.variationCost + this.variationUnitCost * quantity;
};
public buildVariationOption = () => {
const result = new this.merchi.VariationOption(this.merchi);
result.optionId = this.id;
result.include = this.include;
result.value = this.value;
result.position = this.position;
result.default = this.default;
result.colour = this.colour;
result.linkedFile = this.linkedFile;
result.quantity = 0;
result.currency = this.currency;
result.unitCost = this.variationUnitCost;
result.unitCostTotal = 0;
result.onceOffCost = this.variationCost;
result.totalCost = this.variationCost;
return result;
};
}
|