File manager - Edit - /home/c14075/dragmet-ural.ru/www/bitrix/js/catalog/product-calculator/dist/product.calculator.bundle.js.map
Back
{"version":3,"file":"product.calculator.bundle.js","sources":["../src/js/discount-type.js","../src/js/field-storage.js","../src/js/strategy/tax-for-price-strategy.js","../src/js/product-calculator.js","../src/js/strategy/tax-for-sum-strategy.js"],"sourcesContent":["export type DiscountTypes = DiscountType.UNDEFINED | DiscountType.MONETARY | DiscountType.PERCENTAGE;\n\nexport class DiscountType\n{\n\tstatic UNDEFINED = 0;\n\tstatic MONETARY = 1;\n\tstatic PERCENTAGE = 2;\n}","import {Runtime, Type} from 'main.core';\nimport type {FieldScheme} from './field-scheme';\nimport type {DiscountTypes} from './discount-type';\nimport {DiscountType} from './discount-type';\nimport {ProductCalculator} from \"catalog.product-calculator\";\n\nconst initialFields = {\n\tQUANTITY: 1,\n\tPRICE: 0,\n\tPRICE_EXCLUSIVE: 0,\n\tPRICE_NETTO: 0,\n\tPRICE_BRUTTO: 0,\n\tCUSTOMIZED: 'N',\n\tDISCOUNT_TYPE_ID: DiscountType.UNDEFINED,\n\tDISCOUNT_RATE: 0,\n\tDISCOUNT_SUM: 0,\n\tDISCOUNT_ROW: 0,\n\tTAX_INCLUDED: 'N',\n\tTAX_RATE: 0,\n\tTAX_SUM: 0,\n\tSUM: 0\n};\n\nexport class FieldStorage\n{\n\tfields: FieldScheme;\n\n\tconstructor(fields: FieldScheme, calculator: ProductCalculator)\n\t{\n\t\tthis.fields = {...initialFields};\n\n\t\tif (Type.isPlainObject(fields))\n\t\t{\n\t\t\tthis.fields = {...this.fields, ...fields};\n\t\t}\n\n\t\tthis.calculator = calculator;\n\t}\n\n\t#getPricePrecision()\n\t{\n\t\treturn this.calculator.getPricePrecision();\n\t}\n\n\t#getCommonPrecision()\n\t{\n\t\treturn this.calculator.getCommonPrecision();\n\t}\n\n\t#getQuantityPrecision()\n\t{\n\t\treturn this.calculator.getQuantityPrecision();\n\t}\n\n\tgetFields()\n\t{\n\t\treturn Runtime.clone(this.fields);\n\t}\n\n\tgetField(name: string, defaultValue)\n\t{\n\t\treturn this.fields.hasOwnProperty(name) ? this.fields[name] : defaultValue;\n\t}\n\n\tsetField(name: string, value): void\n\t{\n\t\tvalue = this.#validateValue(name, value);\n\t\tthis.fields[name] = value;\n\t}\n\n\t#validateValue(name: string, value): any\n\t{\n\t\tconst priceFields = [\n\t\t\t'PRICE',\n\t\t\t'PRICE_EXCLUSIVE',\n\t\t\t'PRICE_NETTO',\n\t\t\t'PRICE_BRUTTO',\n\t\t\t'DISCOUNT_SUM',\n\t\t\t'DISCOUNT_ROW',\n\t\t\t'TAX_SUM',\n\t\t\t'SUM'\n\t\t];\n\t\tif (name === 'DISCOUNT_TYPE_ID')\n\t\t{\n\t\t\tvalue =\n\t\t\t\t(value === DiscountType.PERCENTAGE || value === DiscountType.MONETARY)\n\t\t\t\t\t? value\n\t\t\t\t\t: DiscountType.UNDEFINED\n\t\t\t;\n\n\t\t}\n\t\telse if (name === 'QUANTITY')\n\t\t{\n\t\t\tvalue = FieldStorage.#round(value, this.#getQuantityPrecision());\n\t\t}\n\t\telse if (name === 'CUSTOMIZED' || name === 'TAX_INCLUDED' )\n\t\t{\n\t\t\tvalue = (value === 'Y') ? 'Y' : 'N';\n\t\t}\n\t\telse if (name === 'TAX_RATE')\n\t\t{\n\t\t\tif (Type.isNil(value))\n\t\t\t{\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tvalue = FieldStorage.#round(value, this.#getCommonPrecision());\n\t\t}\n\t\telse if (name === 'DISCOUNT_RATE')\n\t\t{\n\t\t\tvalue = FieldStorage.#round(value, this.#getCommonPrecision());\n\t\t}\n\t\telse if (priceFields.includes(name))\n\t\t{\n\t\t\tvalue = FieldStorage.#round(value, this.#getPricePrecision());\n\t\t}\n\n\t\treturn value;\n\t}\n\n\tstatic #round(value: number, precision = ProductCalculator.DEFAULT_PRECISION): number\n\t{\n\t\tconst factor = Math.pow(10, precision);\n\n\t\treturn Math.round(value * factor) / factor;\n\t}\n\n\tgetBasePrice(): number\n\t{\n\t\treturn this.getField('BASE_PRICE', 0);\n\t}\n\n\tgetPrice(): number\n\t{\n\t\treturn this.getField('PRICE', 0);\n\t}\n\n\tgetPriceExclusive(): number\n\t{\n\t\treturn this.getField('PRICE_EXCLUSIVE', 0);\n\t}\n\n\tgetPriceNetto(): number\n\t{\n\t\treturn this.getField('PRICE_NETTO', 0);\n\t}\n\n\tgetPriceBrutto(): number\n\t{\n\t\treturn this.getField('PRICE_BRUTTO', 0);\n\t}\n\n\tgetQuantity(): number\n\t{\n\t\treturn this.getField('QUANTITY', 1);\n\t}\n\n\tgetDiscountType(): DiscountTypes\n\t{\n\t\treturn this.getField('DISCOUNT_TYPE_ID', DiscountType.UNDEFINED);\n\t}\n\n\tisDiscountUndefined(): boolean\n\t{\n\t\treturn this.getDiscountType() === DiscountType.UNDEFINED;\n\t}\n\n\tisDiscountPercentage(): boolean\n\t{\n\t\treturn this.getDiscountType() === DiscountType.PERCENTAGE;\n\t}\n\n\tisDiscountMonetary(): boolean\n\t{\n\t\treturn this.getDiscountType() === DiscountType.MONETARY;\n\t}\n\n\tisDiscountHandmade(): boolean\n\t{\n\t\treturn this.isDiscountPercentage() || this.isDiscountMonetary();\n\t}\n\n\tgetDiscountRate(): number\n\t{\n\t\treturn this.getField('DISCOUNT_RATE', 0);\n\t}\n\n\tgetDiscountSum(): number\n\t{\n\t\treturn this.getField('DISCOUNT_SUM', 0);\n\t}\n\n\tgetDiscountRow(): number\n\t{\n\t\treturn this.getField('DISCOUNT_ROW', 0);\n\t}\n\n\tisEmptyDiscount(): boolean\n\t{\n\t\tif (this.isDiscountPercentage())\n\t\t{\n\t\t\treturn this.getDiscountRate() === 0;\n\t\t}\n\n\t\tif (this.isDiscountMonetary())\n\t\t{\n\t\t\treturn this.getDiscountSum() === 0;\n\t\t}\n\n\t\treturn this.isDiscountUndefined();\n\t}\n\n\tgetTaxIncluded(): 'Y' | 'N'\n\t{\n\t\treturn this.getField('TAX_INCLUDED', 'N');\n\t}\n\n\tisTaxIncluded(): boolean\n\t{\n\t\treturn this.getTaxIncluded() === 'Y';\n\t}\n\n\tgetTaxRate(): number\n\t{\n\t\treturn this.getField('TAX_RATE', 0);\n\t}\n\n\tgetTaxSum(): number\n\t{\n\t\treturn this.getField('TAX_SUM', 0);\n\t}\n\n\tgetSum(): number\n\t{\n\t\treturn this.getField('SUM', 0);\n\t}\n}","import type {DiscountTypes} from '../discount-type';\nimport {DiscountType} from '../discount-type';\nimport type {FieldScheme} from \"../field-scheme\";\nimport {FieldStorage} from '../field-storage';\nimport {ProductCalculator} from '../product-calculator';\n\nexport class TaxForPriceStrategy\n{\n\tcalculator: ProductCalculator = null;\n\n\tconstructor(productCalculator: ProductCalculator)\n\t{\n\t\tthis.calculator = productCalculator;\n\t}\n\n\tgetFieldStorage(): FieldStorage\n\t{\n\t\treturn new FieldStorage(this.calculator.getFields(), this.calculator);\n\t}\n\n\tgetPricePrecision()\n\t{\n\t\treturn this.calculator.getPricePrecision();\n\t}\n\n\tgetCommonPrecision()\n\t{\n\t\treturn this.calculator.getCommonPrecision();\n\t}\n\n\tgetQuantityPrecision()\n\t{\n\t\treturn this.calculator.getQuantityPrecision();\n\t}\n\n\tcalculateBasePrice(value: number): FieldScheme\n\t{\n\t\tif (value < 0)\n\t\t{\n\t\t\tthrow new Error('Price must be equal or greater than zero.')\n\t\t}\n\n\t\tconst fieldStorage = this.getFieldStorage();\n\n\t\tfieldStorage.setField('BASE_PRICE', value);\n\n\t\tif (fieldStorage.isTaxIncluded())\n\t\t{\n\t\t\tfieldStorage.setField('PRICE_BRUTTO', value);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tfieldStorage.setField('PRICE_NETTO', value);\n\t\t}\n\n\t\tthis.updatePrice(fieldStorage);\n\n\t\tthis.activateCustomized(fieldStorage);\n\n\t\treturn fieldStorage.getFields();\n\t}\n\n\tcalculatePrice(value: number): FieldScheme\n\t{\n\t\treturn this.calculateBasePrice(value);\n\t}\n\n\tcalculateQuantity(value: number): FieldScheme\n\t{\n\t\tif (value < 0)\n\t\t{\n\t\t\tthrow new Error('Quantity must be equal or greater than zero.')\n\t\t}\n\n\t\tconst fieldStorage = this.getFieldStorage();\n\t\tfieldStorage.setField('QUANTITY', value);\n\n\t\tthis.updateRowDiscount(fieldStorage);\n\t\tthis.updateTax(fieldStorage);\n\t\tthis.updateSum(fieldStorage);\n\n\t\treturn fieldStorage.getFields();\n\t}\n\n\tcalculateDiscount(value: number, fieldStorage: FieldStorage = null): FieldScheme\n\t{\n\t\tif (!fieldStorage)\n\t\t{\n\t\t\tfieldStorage = this.getFieldStorage();\n\t\t}\n\n\t\tif (value === 0.0)\n\t\t{\n\t\t\tthis.clearResultPrices(fieldStorage);\n\t\t}\n\t\telse if (fieldStorage.isDiscountPercentage())\n\t\t{\n\t\t\tfieldStorage.setField('DISCOUNT_RATE', value);\n\n\t\t\tthis.updateResultPrices(fieldStorage);\n\n\t\t\tfieldStorage.setField(\n\t\t\t\t'DISCOUNT_SUM',\n\t\t\t\tfieldStorage.getPriceNetto() - fieldStorage.getPriceExclusive()\n\t\t\t);\n\t\t}\n\t\telse if (fieldStorage.isDiscountMonetary())\n\t\t{\n\t\t\tfieldStorage.setField('DISCOUNT_SUM', value);\n\n\t\t\tthis.updateResultPrices(fieldStorage);\n\n\t\t\tfieldStorage.setField(\n\t\t\t\t'DISCOUNT_RATE',\n\t\t\t\tthis.calculateDiscountRate(\n\t\t\t\t\tfieldStorage.getPriceNetto(),\n\t\t\t\t\tfieldStorage.getPriceExclusive()\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\n\t\tthis.updateRowDiscount(fieldStorage);\n\t\tthis.updateTax(fieldStorage);\n\t\tthis.updateSum(fieldStorage);\n\n\t\tthis.activateCustomized(fieldStorage);\n\n\t\treturn fieldStorage.getFields();\n\t}\n\n\tcalculateDiscountType(value: DiscountTypes): FieldScheme\n\t{\n\t\tconst fieldStorage = this.getFieldStorage();\n\n\t\tfieldStorage.setField('DISCOUNT_TYPE_ID', value);\n\n\t\tthis.updateResultPrices(fieldStorage);\n\t\tthis.updateDiscount(fieldStorage);\n\t\tthis.updateRowDiscount(fieldStorage);\n\t\tthis.updateTax(fieldStorage);\n\t\tthis.updateSum(fieldStorage);\n\n\t\tthis.activateCustomized(fieldStorage);\n\n\t\treturn fieldStorage.getFields();\n\t}\n\n\tcalculateRowDiscount(value: number): FieldScheme\n\t{\n\t\tconst fieldStorage = this.getFieldStorage();\n\n\t\tfieldStorage.setField('DISCOUNT_ROW', value);\n\n\t\tif (value !== 0 && fieldStorage.getQuantity() === 0)\n\t\t{\n\t\t\tfieldStorage.setField('QUANTITY', 1);\n\t\t}\n\n\t\tfieldStorage.setField('DISCOUNT_TYPE_ID', DiscountType.MONETARY);\n\n\t\tif (value === 0 || fieldStorage.getQuantity() === 0)\n\t\t{\n\t\t\tfieldStorage.setField('DISCOUNT_SUM', 0);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tfieldStorage.setField(\n\t\t\t\t'DISCOUNT_SUM',\n\t\t\t\tfieldStorage.getDiscountRow() / fieldStorage.getQuantity()\n\t\t\t);\n\t\t}\n\n\t\tthis.updateResultPrices(fieldStorage);\n\n\t\tthis.updateDiscount(fieldStorage);\n\t\tthis.updateRowDiscount(fieldStorage);\n\t\tthis.updateTax(fieldStorage);\n\t\tthis.updateSum(fieldStorage);\n\n\t\tthis.activateCustomized(fieldStorage);\n\n\t\treturn fieldStorage.getFields();\n\t}\n\n\tcalculateTax(value: number): FieldScheme\n\t{\n\t\tconst fieldStorage = this.getFieldStorage();\n\t\tfieldStorage.setField('TAX_RATE', value);\n\n\t\tthis.updateBasePrices(fieldStorage);\n\t\tthis.updateResultPrices(fieldStorage);\n\n\t\tif (fieldStorage.isTaxIncluded())\n\t\t{\n\t\t\tthis.updateDiscount(fieldStorage);\n\t\t\tthis.updateRowDiscount(fieldStorage);\n\t\t}\n\n\t\tthis.updateTax(fieldStorage);\n\t\tthis.updateSum(fieldStorage);\n\n\t\tthis.activateCustomized(fieldStorage);\n\n\t\treturn fieldStorage.getFields();\n\t}\n\n\tcalculateTaxIncluded(value: 'Y' | 'N'): FieldScheme\n\t{\n\t\tconst fieldStorage = this.getFieldStorage();\n\n\t\tif (fieldStorage.getTaxIncluded() !== value)\n\t\t{\n\t\t\tfieldStorage.setField('TAX_INCLUDED', value);\n\n\t\t\tif (fieldStorage.isTaxIncluded())\n\t\t\t{\n\t\t\t\tfieldStorage.setField('PRICE_BRUTTO', fieldStorage.getPriceNetto());\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tfieldStorage.setField('PRICE_NETTO', fieldStorage.getPriceBrutto());\n\t\t\t}\n\t\t}\n\n\t\tthis.updatePrice(fieldStorage);\n\n\t\tthis.activateCustomized(fieldStorage);\n\n\t\treturn fieldStorage.getFields();\n\t}\n\n\tcalculateRowSum(value: number): FieldScheme\n\t{\n\t\tconst fieldStorage = this.getFieldStorage();\n\n\t\tfieldStorage.setField('SUM', value);\n\n\t\tif (fieldStorage.getQuantity() === 0)\n\t\t{\n\t\t\tfieldStorage.setField('QUANTITY', 1);\n\t\t}\n\n\t\tconst discountSum =\n\t\t\tfieldStorage.getPriceNetto()\n\t\t\t- (\n\t\t\t\tfieldStorage.getSum()\n\t\t\t\t/ (fieldStorage.getQuantity() * (1 + fieldStorage.getTaxRate() / 100))\n\t\t\t)\n\t\t;\n\n\t\tfieldStorage.setField('DISCOUNT_SUM', discountSum);\n\t\tfieldStorage.setField('DISCOUNT_TYPE_ID', DiscountType.MONETARY);\n\n\t\tif (fieldStorage.isEmptyDiscount())\n\t\t{\n\t\t\tthis.clearResultPrices(fieldStorage);\n\t\t}\n\t\telse if (fieldStorage.isDiscountHandmade())\n\t\t{\n\t\t\tthis.updateResultPrices(fieldStorage);\n\t\t}\n\n\t\tthis.updateDiscount(fieldStorage);\n\t\tthis.updateRowDiscount(fieldStorage);\n\t\tthis.updateTax(fieldStorage);\n\n\t\tthis.activateCustomized(fieldStorage);\n\n\t\treturn fieldStorage.getFields();\n\t}\n\n\tupdatePrice(fieldStorage: FieldStorage): void\n\t{\n\t\tthis.updateBasePrices(fieldStorage);\n\n\t\tif (fieldStorage.isEmptyDiscount())\n\t\t{\n\t\t\tthis.clearResultPrices(fieldStorage);\n\t\t}\n\t\telse if (fieldStorage.isDiscountHandmade())\n\t\t{\n\t\t\tthis.updateResultPrices(fieldStorage);\n\t\t}\n\n\t\tthis.updateDiscount(fieldStorage);\n\t\tthis.updateRowDiscount(fieldStorage);\n\t\tthis.updateTax(fieldStorage);\n\t\tthis.updateSum(fieldStorage);\n\t}\n\n\tclearResultPrices(fieldStorage: FieldStorage)\n\t{\n\t\tfieldStorage.setField('PRICE_EXCLUSIVE', fieldStorage.getPriceNetto());\n\t\tfieldStorage.setField('PRICE', fieldStorage.getPriceBrutto());\n\n\t\tfieldStorage.setField('DISCOUNT_RATE', 0.0);\n\t\tfieldStorage.setField('DISCOUNT_SUM', 0.0);\n\t}\n\n\tcalculatePriceWithoutDiscount(price: number, discount: number, discountType: DiscountTypes)\n\t{\n\t\tlet result = 0.0;\n\n\t\tswitch (discountType)\n\t\t{\n\t\t\tcase DiscountType.PERCENTAGE:\n\t\t\t\tresult = price - (price * discount / 100);\n\t\t\t\tbreak;\n\n\t\t\tcase DiscountType.MONETARY:\n\t\t\t\tresult = price - discount;\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tupdateBasePrices(fieldStorage: FieldStorage): void\n\t{\n\t\tif (fieldStorage.isTaxIncluded())\n\t\t{\n\t\t\tfieldStorage.setField(\n\t\t\t\t'PRICE_NETTO',\n\t\t\t\tthis.calculatePriceWithoutTax(fieldStorage.getPriceBrutto(), fieldStorage.getTaxRate())\n\t\t\t);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tfieldStorage.setField(\n\t\t\t\t'PRICE_BRUTTO',\n\t\t\t\tthis.calculatePriceWithTax(fieldStorage.getPriceNetto(), fieldStorage.getTaxRate())\n\t\t\t);\n\t\t}\n\t}\n\n\tupdateResultPrices(fieldStorage: FieldStorage): void\n\t{\n\t\t// price without tax\n\t\tlet exclusivePrice;\n\n\t\tif (fieldStorage.isDiscountPercentage())\n\t\t{\n\t\t\texclusivePrice = this.calculatePriceWithoutDiscount(\n\t\t\t\tfieldStorage.getPriceNetto(),\n\t\t\t\tfieldStorage.getDiscountRate(),\n\t\t\t\tDiscountType.PERCENTAGE\n\t\t\t);\n\t\t}\n\t\telse if (fieldStorage.isDiscountMonetary())\n\t\t{\n\t\t\texclusivePrice = this.calculatePriceWithoutDiscount(\n\t\t\t\tfieldStorage.getPriceNetto(),\n\t\t\t\tfieldStorage.getDiscountSum(),\n\t\t\t\tDiscountType.MONETARY\n\t\t\t);\n\t\t}\n\t\telse\n\t\t{\n\t\t\texclusivePrice = fieldStorage.getPriceExclusive();\n\t\t}\n\n\t\tfieldStorage.setField('PRICE_EXCLUSIVE', exclusivePrice);\n\t\tfieldStorage.setField(\n\t\t\t'PRICE',\n\t\t\tthis.calculatePriceWithTax(exclusivePrice, fieldStorage.getTaxRate())\n\t\t);\n\t}\n\n\tactivateCustomized(fieldStorage: FieldStorage): void\n\t{\n\t\tfieldStorage.setField('CUSTOMIZED', 'Y');\n\t}\n\n\tupdateDiscount(fieldStorage: FieldStorage): void\n\t{\n\t\tif (fieldStorage.isEmptyDiscount())\n\t\t{\n\t\t\tthis.clearResultPrices(fieldStorage);\n\t\t}\n\t\telse if (fieldStorage.isDiscountPercentage())\n\t\t{\n\t\t\tfieldStorage.setField(\n\t\t\t\t'DISCOUNT_SUM',\n\t\t\t\tfieldStorage.getPriceNetto() - fieldStorage.getPriceExclusive()\n\t\t\t);\n\t\t}\n\t\telse if (fieldStorage.isDiscountMonetary())\n\t\t{\n\t\t\tfieldStorage.setField(\n\t\t\t\t'DISCOUNT_RATE',\n\t\t\t\tthis.calculateDiscountRate(\n\t\t\t\t\tfieldStorage.getPriceNetto(),\n\t\t\t\t\tfieldStorage.getPriceNetto() - fieldStorage.getDiscountSum()\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}\n\n\tupdateRowDiscount(fieldStorage: FieldStorage): void\n\t{\n\t\tfieldStorage.setField(\n\t\t\t'DISCOUNT_ROW',\n\t\t\tfieldStorage.getDiscountSum() * fieldStorage.getQuantity()\n\t\t);\n\t}\n\n\tupdateTax(fieldStorage: FieldStorage): void\n\t{\n\t\tlet sum;\n\n\t\tif (fieldStorage.isTaxIncluded())\n\t\t{\n\t\t\tsum =\n\t\t\t\tfieldStorage.getPrice()\n\t\t\t\t* fieldStorage.getQuantity()\n\t\t\t\t* (1 - 1 / (1 + fieldStorage.getTaxRate() / 100))\n\t\t\t;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tsum =\n\t\t\t\tfieldStorage.getPriceExclusive()\n\t\t\t\t* fieldStorage.getQuantity()\n\t\t\t\t* (fieldStorage.getTaxRate() / 100)\n\t\t\t;\n\t\t}\n\n\t\tfieldStorage.setField('TAX_SUM', sum);\n\t}\n\n\tupdateSum(fieldStorage: FieldStorage): void\n\t{\n\t\tlet sum;\n\n\t\tif (fieldStorage.isTaxIncluded())\n\t\t{\n\t\t\tsum = fieldStorage.getPrice() * fieldStorage.getQuantity();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tsum = this.calculatePriceWithTax(\n\t\t\t\tfieldStorage.getPriceExclusive() * fieldStorage.getQuantity(),\n\t\t\t\tfieldStorage.getTaxRate()\n\t\t\t);\n\t\t}\n\n\t\tfieldStorage.setField('SUM', sum);\n\t}\n\n\tcalculateDiscountRate(originalPrice: number, price: number): number\n\t{\n\t\tif (originalPrice === 0.0)\n\t\t{\n\t\t\treturn 0.0;\n\t\t}\n\n\t\tif (price === 0.0)\n\t\t{\n\t\t\treturn originalPrice > 0 ? 100.0 : -100.0;\n\t\t}\n\n\t\treturn (originalPrice - price) / originalPrice * 100;\n\t}\n\n\tcalculatePriceWithoutTax(price: number, taxRate: number)\n\t{\n\t\t// Tax is not included in price\n\t\treturn price / (1 + (taxRate / 100));\n\t}\n\n\tcalculatePriceWithTax(price: number, taxRate: number): number\n\t{\n\t\t// Tax is included in price\n\t\treturn price + price * taxRate / 100;\n\t}\n}\n","import type {FieldScheme} from './field-scheme';\nimport type {DiscountTypes} from './discount-type';\nimport {TaxForPriceStrategy} from './strategy/tax-for-price-strategy';\n\nexport class ProductCalculator\n{\n\t#fields: FieldScheme = {};\n\t#strategy: TaxForPriceStrategy = {};\n\t#settings = {};\n\n\tstatic DEFAULT_PRECISION: number = 2;\n\n\tconstructor(fields: FieldScheme = {}, settings = {})\n\t{\n\t\tthis.setFields(fields);\n\t\tthis.setSettings(settings);\n\t\tthis.setCalculationStrategy(new TaxForPriceStrategy(this));\n\t}\n\n\tsetField(name, value): ProductCalculator\n\t{\n\t\tthis.#fields[name] = value;\n\n\t\treturn this;\n\t}\n\n\tsetCalculationStrategy(strategy: TaxForPriceStrategy = {}): ProductCalculator\n\t{\n\t\tthis.#strategy = strategy;\n\n\t\treturn this;\n\t}\n\n\tsetFields(fields: FieldScheme): ProductCalculator\n\t{\n\t\tfor (const name in fields)\n\t\t{\n\t\t\tif (fields.hasOwnProperty(name))\n\t\t\t{\n\t\t\t\tthis.setField(name, fields[name]);\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tgetFields(): FieldScheme\n\t{\n\t\treturn {...this.#fields};\n\t}\n\n\tsetSettings(settings = {}): ProductCalculator\n\t{\n\t\tthis.#settings = {...settings};\n\n\t\treturn this;\n\t}\n\n\tgetSettings(): {}\n\t{\n\t\treturn {...this.#settings};\n\t}\n\n\t#getSetting(name, defaultValue)\n\t{\n\t\treturn this.#settings.hasOwnProperty(name) ? this.#settings[name] : defaultValue;\n\t}\n\n\tgetPricePrecision()\n\t{\n\t\treturn this.#getSetting('pricePrecision', ProductCalculator.DEFAULT_PRECISION);\n\t}\n\n\tgetCommonPrecision()\n\t{\n\t\treturn this.#getSetting('commonPrecision', ProductCalculator.DEFAULT_PRECISION);\n\t}\n\n\tgetQuantityPrecision()\n\t{\n\t\treturn this.#getSetting('quantityPrecision', ProductCalculator.DEFAULT_PRECISION);\n\t}\n\n\tcalculateBasePrice(value: number): FieldScheme\n\t{\n\t\treturn this.#strategy.calculateBasePrice(value);\n\t}\n\n\tcalculatePrice(value: number): FieldScheme\n\t{\n\t\treturn this.#strategy.calculatePrice(value);\n\t}\n\n\tcalculateQuantity(value: number): FieldScheme\n\t{\n\t\treturn this.#strategy.calculateQuantity(value);\n\t}\n\n\tcalculateDiscount(value: number): FieldScheme\n\t{\n\t\treturn this.#strategy.calculateDiscount(value);\n\t}\n\n\tcalculateDiscountType(value: DiscountTypes): FieldScheme\n\t{\n\t\treturn this.#strategy.calculateDiscountType(value);\n\t}\n\n\tcalculateRowDiscount(value: number): FieldScheme\n\t{\n\t\treturn this.#strategy.calculateRowDiscount(value);\n\t}\n\n\tcalculateTax(value: number | null): FieldScheme\n\t{\n\t\treturn this.#strategy.calculateTax(value);\n\t}\n\n\tcalculateTaxIncluded(value: 'Y' | 'N'): FieldScheme\n\t{\n\t\treturn this.#strategy.calculateTaxIncluded(value);\n\t}\n\n\tcalculateRowSum(value: number): FieldScheme\n\t{\n\t\treturn this.#strategy.calculateRowSum(value);\n\t}\n}","import {TaxForPriceStrategy} from \"./tax-for-price-strategy\";\nimport {FieldStorage} from \"../field-storage\";\nimport {DiscountType} from \"../discount-type\";\n\nexport class TaxForSumStrategy extends TaxForPriceStrategy\n{\n\tcalculatePriceWithoutTax(price, taxRate)\n\t{\n\t\treturn price;\n\t}\n\n\tupdateResultPrices(fieldStorage: FieldStorage): void\n\t{\n\t\tlet exclusivePrice;\n\n\t\tif (fieldStorage.isDiscountPercentage())\n\t\t{\n\t\t\texclusivePrice = this.calculatePriceWithoutDiscount(\n\t\t\t\tfieldStorage.getPriceNetto(),\n\t\t\t\tfieldStorage.getDiscountRate(),\n\t\t\t\tDiscountType.PERCENTAGE\n\t\t\t);\n\t\t}\n\t\telse if (fieldStorage.isDiscountMonetary())\n\t\t{\n\t\t\texclusivePrice = this.calculatePriceWithoutDiscount(\n\t\t\t\tfieldStorage.getPriceNetto(),\n\t\t\t\tfieldStorage.getDiscountSum(),\n\t\t\t\tDiscountType.MONETARY\n\t\t\t);\n\t\t}\n\t\telse\n\t\t{\n\t\t\texclusivePrice = fieldStorage.getPriceExclusive();\n\t\t}\n\n\t\tfieldStorage.setField('PRICE_EXCLUSIVE', exclusivePrice);\n\t\t\n\t\tif (fieldStorage.isTaxIncluded())\n\t\t{\n\t\t\tfieldStorage.setField('PRICE', exclusivePrice);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tfieldStorage.setField(\n\t\t\t\t'PRICE',\n\t\t\t\tthis.calculatePriceWithTax(exclusivePrice, fieldStorage.getTaxRate())\n\t\t\t);\n\t\t}\n\t}\n}"],"names":["DiscountType","initialFields","QUANTITY","PRICE","PRICE_EXCLUSIVE","PRICE_NETTO","PRICE_BRUTTO","CUSTOMIZED","DISCOUNT_TYPE_ID","UNDEFINED","DISCOUNT_RATE","DISCOUNT_SUM","DISCOUNT_ROW","TAX_INCLUDED","TAX_RATE","TAX_SUM","SUM","FieldStorage","fields","calculator","Type","isPlainObject","Runtime","clone","name","defaultValue","hasOwnProperty","value","getField","getDiscountType","PERCENTAGE","MONETARY","isDiscountPercentage","isDiscountMonetary","getDiscountRate","getDiscountSum","isDiscountUndefined","getTaxIncluded","getPricePrecision","getCommonPrecision","getQuantityPrecision","priceFields","isNil","includes","precision","ProductCalculator","DEFAULT_PRECISION","factor","Math","pow","round","TaxForPriceStrategy","productCalculator","getFields","Error","fieldStorage","getFieldStorage","setField","isTaxIncluded","updatePrice","activateCustomized","calculateBasePrice","updateRowDiscount","updateTax","updateSum","clearResultPrices","updateResultPrices","getPriceNetto","getPriceExclusive","calculateDiscountRate","updateDiscount","getQuantity","getDiscountRow","updateBasePrices","getPriceBrutto","discountSum","getSum","getTaxRate","isEmptyDiscount","isDiscountHandmade","price","discount","discountType","result","calculatePriceWithoutTax","calculatePriceWithTax","exclusivePrice","calculatePriceWithoutDiscount","sum","getPrice","originalPrice","taxRate","settings","setFields","setSettings","setCalculationStrategy","strategy","calculatePrice","calculateQuantity","calculateDiscount","calculateDiscountType","calculateRowDiscount","calculateTax","calculateTaxIncluded","calculateRowSum","TaxForSumStrategy"],"mappings":"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"}
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.28 |
proxy
|
phpinfo
|
Settings