shareneus 1.7.4 → 1.7.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/accounting/invoice/invoice-pdf/invoice-pdf.service.js +18 -45
- package/dist/accounting/invoice/reports/excel/analysis-excel.service.js +17 -7
- package/dist/accounting/invoice/reports/excel/category-wise-item-excel.service.js +17 -7
- package/dist/accounting/invoice/reports/excel/cust-wise-sales-details.js +17 -7
- package/dist/accounting/invoice/reports/excel/cust-wise-sales-summary-excel.service.js +17 -7
- package/dist/accounting/invoice/reports/excel/invoice-wise-excel.service.js +17 -7
- package/dist/accounting/invoice/reports/excel/item-wise-doctor-sale-excel.service.js +17 -7
- package/dist/accounting/invoice/reports/excel/items-wise-sales-excel.service.js +17 -7
- package/dist/accounting/invoice/reports/excel/manf-wise-sales-excel.service.js +17 -7
- package/dist/accounting/invoice/reports/excel/operator-wise-details.js +17 -7
- package/dist/accounting/invoice/reports/excel/operator-wise-summary.js +17 -7
- package/dist/accounting/invoice/reports/excel/sa-wise-labor-sales-excel.service.js +17 -7
- package/dist/accounting/invoice/reports/excel/sa-wise-part-sales-excel.service.js +17 -7
- package/dist/accounting/invoice/reports/excel/sale-summary-excel.service.js +17 -7
- package/dist/accounting/invoice/reports/excel/sales-by-service-summary-excel.service.js +17 -7
- package/dist/accounting/invoice/reports/excel/scheduled-drug-summary-excel.service.js +17 -7
- package/dist/accounting/invoice/reports/excel/scheduled-drugs-excel.service.js +17 -7
- package/dist/accounting/invoice/unified-invoice-pdf.service.d.ts +1 -1
- package/dist/accounting/payment-receive/reports/excel/cust-balance-excel.service.js +17 -7
- package/dist/accounting/payment-receive/reports/excel/payment-receive-excel.service.js +17 -7
- package/dist/common/reports/excel/product-without-owner-excel.service.js +17 -7
- package/dist/gst/excel/GSTR-RO-excel.service.js +17 -7
- package/dist/gst/excel/GSTR1-excel.service.js +17 -7
- package/dist/gst/excel/GSTR2-excel.service.js +17 -7
- package/dist/gst/excel/hsn-summary.js +17 -7
- package/dist/gst/excel/tally-sales-import.service.js +17 -7
- package/dist/index.d.ts +1 -1
- package/dist/index.js +6 -6
- package/dist/inventory/items/reports/excel/expiring-drugs-excel.service.js +17 -7
- package/dist/inventory/items/reports/excel/item-wise-mout-details.js +17 -7
- package/dist/inventory/items/reports/excel/item-wise-mout-summary.js +17 -7
- package/dist/inventory/items/reports/excel/spares-issue-excel.service.js +17 -7
- package/dist/inventory/items/reports/excel/stock-excel.service.js +17 -7
- package/dist/purchases/payment-made/reports/excel/payments-made-excel.service.js +17 -7
- package/dist/purchases/payment-made/reports/excel/ven-balance-excel.service.js +17 -7
- package/dist/services/reports/excel/insurance-expire-excel.service.js +17 -7
- package/dist/services/reports/excel/next-service-date-excel.service.js +17 -7
- package/dist/services/reports/excel/repair-orders-excel.service.js +17 -7
- package/dist/shared/table-section/pdf-table.header.d.ts +1 -1
- package/dist/shared/table-section/pdf-table.header.js +14 -2
- package/dist/shared/table-section/pdf-table.section.js +6 -13
- package/dist/{accounting/invoice/invoice-pdf.service.js → shared/transactions-pdf.service.js} +15 -15
- package/package.json +1 -1
- package/src/accounting/counter-sales/auto-sales-receipt-pdf.service.ts +569 -0
- package/src/accounting/counter-sales/pos-receipt-pdf.ts +577 -0
- package/src/accounting/counter-sales/sales-receipt-pdf.service.ts +628 -0
- package/src/accounting/counter-sales/sales-receipt-print.service.ts +506 -0
- package/src/accounting/credit-note/cn-print.service.ts +264 -0
- package/src/accounting/credit-note/credit-note-pdf.service.ts +602 -0
- package/src/accounting/credit-note/credit-note-totals.service.ts +424 -0
- package/src/accounting/debit-note/debit-note-pdf.service.ts +681 -0
- package/src/accounting/debit-note/debit-note-print.service.ts +276 -0
- package/src/accounting/debit-note/debit-note-totals.service.ts +361 -0
- package/src/accounting/invoice/hc-inv-pdf.service.ts +880 -0
- package/src/accounting/invoice/inv-pdf.service.ts +812 -0
- package/src/accounting/invoice/inv-print.service.ts +532 -0
- package/src/accounting/invoice/invoice-landscape-pdf.service.ts +947 -0
- package/src/accounting/invoice/invoice-letterhead-pdf.service.ts +813 -0
- package/src/accounting/invoice/invoice-pdf/invoice-pdf.service.ts +359 -0
- package/src/accounting/invoice/invoice-portrait-pdf.ts +972 -0
- package/src/accounting/invoice/invoice-print.service.ts +2906 -0
- package/src/accounting/invoice/invoice-total.service.ts +834 -0
- package/src/accounting/invoice/reports/excel/analysis-excel.service.ts +291 -0
- package/src/accounting/invoice/reports/excel/category-wise-item-excel.service.ts +267 -0
- package/src/accounting/invoice/reports/excel/cust-wise-sales-details.ts +321 -0
- package/src/accounting/invoice/reports/excel/cust-wise-sales-summary-excel.service.ts +300 -0
- package/src/accounting/invoice/reports/excel/invoice-wise-excel.service.ts +859 -0
- package/src/accounting/invoice/reports/excel/item-wise-doctor-sale-excel.service.ts +255 -0
- package/src/accounting/invoice/reports/excel/items-wise-sales-excel.service.ts +312 -0
- package/src/accounting/invoice/reports/excel/manf-wise-sales-excel.service.ts +273 -0
- package/src/accounting/invoice/reports/excel/operator-wise-details.ts +258 -0
- package/src/accounting/invoice/reports/excel/operator-wise-summary.ts +259 -0
- package/src/accounting/invoice/reports/excel/sa-wise-labor-sales-excel.service.ts +230 -0
- package/src/accounting/invoice/reports/excel/sa-wise-part-sales-excel.service.ts +231 -0
- package/src/accounting/invoice/reports/excel/sale-summary-excel.service.ts +326 -0
- package/src/accounting/invoice/reports/excel/sales-by-service-details-excel.service.ts +0 -0
- package/src/accounting/invoice/reports/excel/sales-by-service-summary-excel.service.ts +432 -0
- package/src/accounting/invoice/reports/excel/scheduled-drug-summary-excel.service.ts +373 -0
- package/src/accounting/invoice/reports/excel/scheduled-drugs-excel.service.ts +372 -0
- package/src/accounting/invoice/reports/pdf/analysis-pdf.service.ts +113 -0
- package/src/accounting/invoice/reports/pdf/category-wise-item-pdf.service.ts +107 -0
- package/src/accounting/invoice/reports/pdf/cust-wise-sales-details-pdf.service.ts +125 -0
- package/src/accounting/invoice/reports/pdf/cust-wise-sales-summary-pdf.service.ts +119 -0
- package/src/accounting/invoice/reports/pdf/item-wise-doctor-sale-pdf.service.ts +180 -0
- package/src/accounting/invoice/reports/pdf/item-wise-sales-pdf.service.ts +193 -0
- package/src/accounting/invoice/reports/pdf/manf-wise-sales-pdf.service.ts +188 -0
- package/src/accounting/invoice/reports/pdf/operator-wise-details-pdf.service.ts +118 -0
- package/src/accounting/invoice/reports/pdf/operator-wise-summary-pdf.ts +116 -0
- package/src/accounting/invoice/reports/pdf/sales-by-service-pdf.service.ts +132 -0
- package/src/accounting/invoice/reports/pdf/scheduled-drug-pdf.service.ts +191 -0
- package/src/accounting/invoice/reports/pdf/scheduled-drug-summary-pdf.service.ts +202 -0
- package/src/accounting/invoice/shared-inv-pdf.service.ts +787 -0
- package/src/accounting/invoice/unified-invoice-pdf.service.ts +937 -0
- package/src/accounting/payment-receive/payment-pdf.service.ts +410 -0
- package/src/accounting/payment-receive/payment-receipt-pdf/receipt-pdf.service.ts +470 -0
- package/src/accounting/payment-receive/receipt-print.service.ts +71 -0
- package/src/accounting/payment-receive/reports/excel/cust-balance-excel.service.ts +298 -0
- package/src/accounting/payment-receive/reports/excel/payment-receive-excel.service.ts +221 -0
- package/src/accounting/payment-receive/reports/pdf/customer-balances-pdf.service.ts +182 -0
- package/src/accounting/payment-receive/reports/pdf/payment-report-pdf.service.ts +116 -0
- package/src/aggregation/aggregation.ts +58 -0
- package/src/appointments/appointments/appointment-total.service.ts +298 -0
- package/src/appointments/consultations/consultation-fee-receipt.service.ts +407 -0
- package/src/appointments/consultations/consultation-full-pdf.service.ts +238 -0
- package/src/appointments/consultations/consultation-letterhead-pdf.service.ts +430 -0
- package/src/appointments/consultations/consultation-pdf.service.ts +417 -0
- package/src/common/reports/excel/product-without-owner-excel.service.ts +308 -0
- package/src/common/reports/pdf/product-without-owner-pdf.service.ts +146 -0
- package/src/enums/cache-enums.ts +33 -0
- package/src/enums/code-enums.ts +291 -0
- package/src/enums/country-enums.ts +9 -0
- package/src/enums/enums.ts +364 -0
- package/src/enums/industry-enums.ts +26 -0
- package/src/enums/treatment-enums.ts +9 -0
- package/src/gst/excel/GSTR-RO-excel.service.ts +926 -0
- package/src/gst/excel/GSTR1-excel.service.ts +313 -0
- package/src/gst/excel/GSTR2-excel.service.ts +314 -0
- package/src/gst/excel/hsn-summary.ts +314 -0
- package/src/gst/excel/tally-sales-import.service.ts +767 -0
- package/src/gst/pdf/hsn-summary-pdf.ts +176 -0
- package/src/index.ts +194 -0
- package/src/inventory/items/adjustment-pdf.service.ts +177 -0
- package/src/inventory/items/issue-parts-pdf.service.ts +795 -0
- package/src/inventory/items/item-bar-code-label-pdf.ts +194 -0
- package/src/inventory/items/item-detais-pdf.ts +141 -0
- package/src/inventory/items/item-price-for-pricelist.ts +368 -0
- package/src/inventory/items/reports/excel/expiring-drugs-excel.service.ts +290 -0
- package/src/inventory/items/reports/excel/item-wise-mout-details.ts +284 -0
- package/src/inventory/items/reports/excel/item-wise-mout-summary.ts +279 -0
- package/src/inventory/items/reports/excel/spares-issue-excel.service.ts +494 -0
- package/src/inventory/items/reports/excel/stock-excel.service.ts +319 -0
- package/src/inventory/items/reports/pdf/expiring-drugs-pdf.service.ts +172 -0
- package/src/inventory/items/reports/pdf/item-wise-mout-details-pdf.ts +122 -0
- package/src/inventory/items/reports/pdf/item-wise-mout-summary-pdf.ts +115 -0
- package/src/inventory/items/reports/pdf/reorder-point-pdf.service.ts +163 -0
- package/src/inventory/material-out/mout-pdf.service.ts +545 -0
- package/src/inventory/transfer-order/transfer-order-pdf.service.ts +154 -0
- package/src/purchases/bills/bill-pdf/bill-pdf.service.ts +211 -0
- package/src/purchases/bills/bill-pdf.service.ts +21 -0
- package/src/purchases/payment-made/reports/excel/payments-made-excel.service.ts +313 -0
- package/src/purchases/payment-made/reports/excel/ven-balance-excel.service.ts +307 -0
- package/src/purchases/payment-made/reports/pdf/vendor-balances-pdf.service.ts +114 -0
- package/src/purchases/purchase-order/po-totals.service.ts +343 -0
- package/src/purchases/purchase-order/purchase-order-pdf.service.ts +1016 -0
- package/src/purchases/purchase-order/purchase-order-print.service.ts +279 -0
- package/src/purchases/purchase-order/purchase-order-totals.service.ts +637 -0
- package/src/purchases/vendor-credit-note/vendor-credit-note-pdf.service.ts +1055 -0
- package/src/purchases/vendor-credit-note/vendor-credit-note-print.service.ts +145 -0
- package/src/purchases/vendor-credit-note/vendor-credit-note-totals.service.ts +399 -0
- package/src/purchases/vendor-debit-note/vendor-debit-note-pdf.service.ts +582 -0
- package/src/purchases/vendor-debit-note/vendor-debit-note-print.service.ts +295 -0
- package/src/purchases/vendor-debit-note/vendor-debit-note-totals.service.ts +377 -0
- package/src/sales/delivery-challan/dc-landscape-pdf.service.ts +922 -0
- package/src/sales/delivery-challan/dc-landscape-without-price-pdf.service.ts +869 -0
- package/src/sales/delivery-challan/dc-without-price-pdf.service.ts +505 -0
- package/src/sales/delivery-challan/delivery-challan-pdf.service.ts +461 -0
- package/src/sales/delivery-challan/delivery-challan-print.service.ts +229 -0
- package/src/sales/delivery-challan/delivery-challan-totals.ts +466 -0
- package/src/sales/sales/equipment-design-pdf.service.ts +153 -0
- package/src/sales/sales/pack-ship-pdf.service.ts +128 -0
- package/src/sales/sales/pack-ship-print.service.ts +198 -0
- package/src/sales/sales/sales-pdf.service.ts +658 -0
- package/src/sales/sales/sales-print.service.ts +376 -0
- package/src/sales/sales/sales-totals.service.ts +500 -0
- package/src/sales-receive/sales-receive-pdf.service.ts +602 -0
- package/src/sales-receive/sales-receive-print.service.ts +242 -0
- package/src/sales-receive/sales-receive-totals.service.ts +651 -0
- package/src/services/checklist-pdf.ts +151 -0
- package/src/services/checklists-pdf.ts +133 -0
- package/src/services/est.print-service.ts +1155 -0
- package/src/services/reports/excel/insurance-expire-excel.service.ts +292 -0
- package/src/services/reports/excel/next-service-date-excel.service.ts +317 -0
- package/src/services/reports/excel/repair-orders-excel.service.ts +249 -0
- package/src/services/reports/pdf/insurance-expire-pdf.service.ts +115 -0
- package/src/services/reports/pdf/next-service-date-pdf.service.ts +198 -0
- package/src/services/reports/pdf/repair-orders-pdf.service.ts +184 -0
- package/src/services/ro-pdf.service.ts +1917 -0
- package/src/services/ro-print-service.ts +881 -0
- package/src/services/ro-totals.service.ts +1314 -0
- package/src/services/separate-wo-print.service.ts +396 -0
- package/src/services/service-history-pdf.service.ts +145 -0
- package/src/services/service-price-for-pricelist.ts +649 -0
- package/src/services/technician-pdf.service.ts +234 -0
- package/src/services/technician-print.service.ts +95 -0
- package/src/shared/header-footer-section/pdf-header-footer.section.ts +519 -0
- package/src/shared/header-footer-section/pdf-shared.utils.ts +46 -0
- package/src/shared/math-operations.ts +208 -0
- package/src/shared/party-details-section/pdf-party-details.section.ts +602 -0
- package/src/shared/shared-pdf.service.ts +3042 -0
- package/src/shared/shared-print.service.ts +879 -0
- package/src/shared/table-section/pdf-table.config.ts +8 -0
- package/src/shared/table-section/pdf-table.header.ts +396 -0
- package/src/shared/table-section/pdf-table.row.ts +248 -0
- package/src/shared/table-section/pdf-table.section.ts +447 -0
- package/src/shared/totals-section/pdf-totals.section.ts +921 -0
- package/src/shared/transactions-pdf.service.ts +191 -0
- package/src/shared/util.ts +101 -0
- package/src/tasks/meetings/meeting-pdf.ts +410 -0
- package/src/tasks/tasks/task-pdf.service.ts +238 -0
- package/src/tasks/tasks/task-reports-pdf.service.ts +313 -0
- package/src/tax/index.ts +86 -0
- package/src/tax/tax-calculator.ts +1025 -0
- package/src/tax/tax.types.ts +535 -0
- package/src/transaction-calculations/discounts-distribution.ts +343 -0
- package/src/transaction-calculations/index.ts +3 -0
- package/src/transaction-calculations/total-calculation.ts +443 -0
- package/src/transaction-calculations/transaction-calculation-engine.ts +903 -0
- package/src/utils/my-date.ts +111 -0
- package/src/utils/tr-utils.ts +104 -0
- package/tsconfig.json +2 -2
- /package/dist/{accounting/invoice/invoice-pdf.service.d.ts → shared/transactions-pdf.service.d.ts} +0 -0
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
// Import Big.js for precise decimal arithmetic
|
|
2
|
+
import Big from 'big.js';
|
|
3
|
+
|
|
4
|
+
// Import utility function for handling number conversions
|
|
5
|
+
import { GetNumber } from "./util.js";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Adds multiple numbers with high precision using Big.js
|
|
9
|
+
* @param numbers - Array of numbers to add
|
|
10
|
+
* @returns The sum as a number
|
|
11
|
+
*/
|
|
12
|
+
export function Add(...numbers: number[]): number {
|
|
13
|
+
// Convert potential null/undefined values to numbers
|
|
14
|
+
numbers = numbers.map(n => GetNumber(n));
|
|
15
|
+
|
|
16
|
+
if (numbers.length === 0) return 0;
|
|
17
|
+
|
|
18
|
+
// Initialize result with the first number
|
|
19
|
+
let result = new Big(numbers[0]);
|
|
20
|
+
|
|
21
|
+
// Add each subsequent number to the result using a for loop
|
|
22
|
+
for (let i = 1; i < numbers.length; i++) {
|
|
23
|
+
const bigNumber = new Big(numbers[i]);
|
|
24
|
+
result = result.plus(bigNumber);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// Convert back to JavaScript number type
|
|
28
|
+
return Number(result.toString());
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Subtracts multiple numbers with high precision using Big.js
|
|
33
|
+
* @param numbers - Array of numbers where the first is subtracted by all others
|
|
34
|
+
* @returns The subtraction result as a number
|
|
35
|
+
*/
|
|
36
|
+
export function Subtract(...numbers: number[]): number {
|
|
37
|
+
// Convert potential null/undefined values to numbers
|
|
38
|
+
numbers = numbers.map(n => GetNumber(n));
|
|
39
|
+
|
|
40
|
+
if (numbers.length === 0) return 0;
|
|
41
|
+
|
|
42
|
+
// Initialize result with the first number
|
|
43
|
+
let result = new Big(numbers[0]);
|
|
44
|
+
|
|
45
|
+
// Subtract each subsequent number from the result using a for loop
|
|
46
|
+
for (let i = 1; i < numbers.length; i++) {
|
|
47
|
+
const bigNumber = new Big(numbers[i]);
|
|
48
|
+
result = result.minus(bigNumber);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Convert back to JavaScript number type
|
|
52
|
+
return Number(result.toString());
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Multiplies multiple numbers with high precision using Big.js
|
|
57
|
+
* @param numbers - Array of numbers to multiply
|
|
58
|
+
* @returns The product as a number
|
|
59
|
+
*/
|
|
60
|
+
export function Multiply(...numbers: number[]): number {
|
|
61
|
+
// Convert potential null/undefined values to numbers
|
|
62
|
+
numbers = numbers.map(n => GetNumber(n));
|
|
63
|
+
|
|
64
|
+
if (numbers.length === 0) return 0;
|
|
65
|
+
if (numbers.length === 1) return numbers[0];
|
|
66
|
+
|
|
67
|
+
// Initialize result with the first number
|
|
68
|
+
let result = new Big(numbers[0]);
|
|
69
|
+
|
|
70
|
+
// Multiply each subsequent number with the result using a for loop
|
|
71
|
+
for (let i = 1; i < numbers.length; i++) {
|
|
72
|
+
const bigNumber = new Big(numbers[i]);
|
|
73
|
+
result = result.times(bigNumber);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// Convert back to JavaScript number type
|
|
77
|
+
return Number(result.toString());
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Divides multiple numbers with high precision using Big.js
|
|
82
|
+
* @param numbers - Array of numbers where the first is divided by all others
|
|
83
|
+
* @returns The division result as a number
|
|
84
|
+
*/
|
|
85
|
+
export function Divide(...numbers: number[]): number {
|
|
86
|
+
// Convert potential null/undefined values to numbers
|
|
87
|
+
numbers = numbers.map(n => GetNumber(n));
|
|
88
|
+
|
|
89
|
+
if (numbers.length === 0) return 0;
|
|
90
|
+
if (numbers.length === 1) return numbers[0];
|
|
91
|
+
|
|
92
|
+
// Initialize result with the first number
|
|
93
|
+
let result = new Big(numbers[0]);
|
|
94
|
+
|
|
95
|
+
// Divide the result by each subsequent number using a for loop
|
|
96
|
+
for (let i = 1; i < numbers.length; i++) {
|
|
97
|
+
// Check for division by zero
|
|
98
|
+
if (numbers[i] === 0) {
|
|
99
|
+
throw new Error('Division by zero is not allowed');
|
|
100
|
+
}
|
|
101
|
+
const bigNumber = new Big(numbers[i]);
|
|
102
|
+
result = result.div(bigNumber);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// Convert back to JavaScript number type
|
|
106
|
+
return Number(result.toString());
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Calculates discounted or marked-up price based on a percentage
|
|
111
|
+
* @param originalPrice - The starting price
|
|
112
|
+
* @param discountPercentage - Percentage to apply (discount or markup)
|
|
113
|
+
* @param markUp - When true, adds the percentage; when false, subtracts it
|
|
114
|
+
* @returns The final price after discount/markup as a number
|
|
115
|
+
*/
|
|
116
|
+
export function CalcDiscPrice(originalPrice: number, discountPercentage: number, markUp: boolean = false): number {
|
|
117
|
+
const price = GetNumber(originalPrice);
|
|
118
|
+
const perc = GetNumber(discountPercentage);
|
|
119
|
+
const discountAmount = Multiply(price, Divide(perc, 100));
|
|
120
|
+
return markUp ? Add(price, discountAmount) : Subtract(price, discountAmount);
|
|
121
|
+
|
|
122
|
+
// Convert inputs to Big.js objects for precision
|
|
123
|
+
// const price = new Big(GetNumber(originalPrice));
|
|
124
|
+
// const percentage = new Big(GetNumber(discountPercentage)).div(100);
|
|
125
|
+
|
|
126
|
+
// // Calculate the amount to add or subtract
|
|
127
|
+
// const discountAmount = price.mul(percentage);
|
|
128
|
+
|
|
129
|
+
// // Calculate final price directly with Big.js
|
|
130
|
+
// let result: any;
|
|
131
|
+
|
|
132
|
+
// if (markUp) {
|
|
133
|
+
// // Perform markup calculation (add the calculated amount)
|
|
134
|
+
// result = price.plus(discountAmount);
|
|
135
|
+
// } else {
|
|
136
|
+
// // Perform discount calculation (subtract the calculated amount)
|
|
137
|
+
// result = price.minus(discountAmount);
|
|
138
|
+
// }
|
|
139
|
+
|
|
140
|
+
// const finalPrice = result.toNumber();
|
|
141
|
+
// return finalPrice;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Calculates a price with markup applied
|
|
146
|
+
* @param originalPrice - The starting price
|
|
147
|
+
* @param markupPercentage - Percentage to mark up by
|
|
148
|
+
* @returns The final marked-up price as a number
|
|
149
|
+
*/
|
|
150
|
+
export function CalcMarkup(originalPrice: number, markupPercentage: number): number {
|
|
151
|
+
const price = GetNumber(originalPrice);
|
|
152
|
+
const perc = GetNumber(markupPercentage);
|
|
153
|
+
const markupAmount = Multiply(price, Divide(perc, 100));
|
|
154
|
+
return Add(price, markupAmount);
|
|
155
|
+
// Convert inputs to Big.js objects for precision
|
|
156
|
+
// const price = new Big(GetNumber(originalPrice));
|
|
157
|
+
// const percentage = new Big(GetNumber(markupPercentage)).div(100);
|
|
158
|
+
|
|
159
|
+
// // Calculate markup amount based on percentage of original price
|
|
160
|
+
// const markupAmount = price.mul(percentage);
|
|
161
|
+
|
|
162
|
+
// // Add markup amount to original price
|
|
163
|
+
// const result = price.plus(markupAmount);
|
|
164
|
+
|
|
165
|
+
// return result.toNumber();
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Calculates a price with markdown (discount) applied
|
|
170
|
+
* @param originalPrice - The starting price
|
|
171
|
+
* @param markdownPercentage - Percentage to mark down by
|
|
172
|
+
* @returns The final marked-down price as a number
|
|
173
|
+
*/
|
|
174
|
+
export function CalcMarkdown(originalPrice: number, markdownPercentage: number): number {
|
|
175
|
+
const price = GetNumber(originalPrice);
|
|
176
|
+
const perc = GetNumber(markdownPercentage);
|
|
177
|
+
const markdownAmount = Multiply(price, Divide(perc, 100));
|
|
178
|
+
return Subtract(price, markdownAmount);
|
|
179
|
+
// Convert inputs to Big.js objects for precision
|
|
180
|
+
// const price = new Big(GetNumber(originalPrice));
|
|
181
|
+
// const percentage = new Big(GetNumber(markdownPercentage)).div(100);
|
|
182
|
+
|
|
183
|
+
// // Calculate markdown amount based on percentage of original price
|
|
184
|
+
// const markdownAmount = price.mul(percentage);
|
|
185
|
+
|
|
186
|
+
// // Subtract markdown amount from original price
|
|
187
|
+
// const result = price.minus(markdownAmount);
|
|
188
|
+
|
|
189
|
+
// return result.toNumber();
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* Calculates the margin value as a percentage based on price and cost
|
|
194
|
+
* @param price - The selling price of the item
|
|
195
|
+
* @param cost - The cost of the item
|
|
196
|
+
* @returns The margin value as a percentage
|
|
197
|
+
*/
|
|
198
|
+
export function GetMarginValue(price: number, cost: number): number {
|
|
199
|
+
// Ensure inputs are valid numbers using GetNumber utility
|
|
200
|
+
const validPrice = GetNumber(price);
|
|
201
|
+
const validCost = GetNumber(cost);
|
|
202
|
+
|
|
203
|
+
// Calculate margin percentage: ((price - cost) / price) * 100
|
|
204
|
+
const margin = Multiply(Divide(Subtract(validPrice, validCost), validPrice), 100);
|
|
205
|
+
|
|
206
|
+
// Return the calculated margin
|
|
207
|
+
return margin;
|
|
208
|
+
}
|