shareneus 1.4.52 → 1.4.53
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/dist/index.d.ts +1 -0
- package/dist/index.js +3 -1
- package/dist/shared/math-operations.js +43 -0
- package/dist/shared/util.d.ts +9 -0
- package/dist/shared/util.js +70 -0
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -123,3 +123,4 @@ export { ItemBarCodeLabelPdf } from './inventory/items/item-bar-code-label-pdf';
|
|
|
123
123
|
export { GetItemPriceForPriceList } from "./inventory/items/item-price-for-pricelist";
|
|
124
124
|
export { CalcItemFinalSalePrice } from "./inventory/items/item-price-for-pricelist";
|
|
125
125
|
export { IsNotNull, IsNull } from "./shared/util";
|
|
126
|
+
export { GetAgeString } from "./shared/util";
|
package/dist/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DebitNotePdfService = exports.DCWithoutPricePdfService = exports.DCLandscapeWithoutPricePdfService = exports.DCLandscapePdfService = exports.CustomerBalancesService = exports.SalesByCustomerPDFService = exports.CustWiseSalesDetailsService = exports.CreditNoteTotalsService = exports.CreditNotePdfService = exports.ConsultationPDFService = exports.ConsultationFullPrintService = exports.ConsultationFeeReceiptPrintService = exports.CNPrintService = exports.ChecklistsPDFService = exports.CheckListPrintService = exports.CategoryWiseItemPDFService = exports.SalesReceiptprintService = exports.AppointmentTotalsService = exports.AnalysisPDFService = exports.VenBalanceXlsxFileService = exports.TallySalesImportXlsxFileService = exports.StockXlsxFileService = exports.IssueSparesXlsxFileService = exports.ScheduledDrugXlsxFileService = exports.ScheduledDrugSummaryXlsxFileService = exports.SalesByServiceSummaryXlsxFileService = exports.SummaryXlsxFileService = exports.ServiceAdvisorWisePartXlsxFileService = exports.ServiceAdvisorWiseLaborXlsxFileService = exports.RepairOrdersXlsxFileService = exports.PaymentsMadeXlsxFileService = exports.PaymentReceiveXlsxFileService = exports.OperatorWiseSummaryXlsxFileService = exports.OperatorWiseDetailsXlsxFileService = exports.ManfWiseSalesXlsxFileService = exports.ItemsWiseSalesXlsxFileService = exports.ItemWiseMOSummaryXlsxFileService = exports.ItemWiseMODetailsXlsxFileService = exports.ItemWiseDoctorSaleXlsxFileService = exports.InvoicesWiseXlsxFileService = exports.InsuranceExpireXlsxFileService = exports.GSTR2ExcelService = exports.GSTR1ExcelService = exports.GSTROXlsxFileService = exports.ExpiringDrugsXlsxFileService = exports.SalesByCustomerXlsxFileService = exports.CustWiseSalesXlsxFileService = exports.CustBalanceXlsxFileService = exports.CategoryWiseItemXlsxFileService = exports.AnalysisXlsxFileService = void 0;
|
|
4
4
|
exports.SharedPDFService = exports.SharedInvoiceprintService = exports.WOPrintService = exports.ScheduledDrugSummaryPDFService = exports.ScheduledDrugPDFService = exports.SalesTotalsService = exports.SaleReceiptPrintService = exports.SalesReceiptpdfService = exports.SalesPrintService = exports.SalesPdfService = exports.SalesByServiceSummaryPDF = exports.ROTotalsService = exports.ROPrintService = exports.RoprintService = exports.RepairOrdersReportsPDFService = exports.ReorderPointPDFService = exports.ReceiptPrintService = exports.PurchaseOrderPDFService = exports.PurchaseOrderTotalsService = exports.PurchaseOrderPrintService = exports.PosReceiptPrintService = exports.POTotalsService = exports.PaymentsReportPDFService = exports.ReceiptPDFService = exports.PackShipPrintService = exports.PackShipPDFService = exports.OperatorWiseSalesSummaryPDF = exports.OperatorWiseSalesDetailsPDF = exports.MaterialOutprintService = exports.MeetingPdfService = exports.ManfWiseSalesService = exports.ItemWiseSalesPDFService = exports.ItemWiseMOSummaryPDF = exports.ItemWiseMODetailsPDF = exports.ItemWiseDoctorSalePDFService = exports.ItemDetaisPdf = exports.IssuePartsprintService = exports.InvoiceTotalsService = exports.InvoiceLandscapePdfService = exports.InvPrintService = exports.InvoiceprintService = exports.InsuranceExpirePDF = exports.ExpiringDrugPDFService = exports.EstPrintService = exports.EquipmentDesignPdf = exports.DeliveryChallanTotalsService = exports.DeliveryChallanPrintService = exports.DeliveryChallanPdfService = exports.DebitNoteTotalsService = exports.DebitNotePrintService = void 0;
|
|
5
|
-
exports.IsNull = exports.IsNotNull = exports.CalcItemFinalSalePrice = exports.GetItemPriceForPriceList = exports.ItemBarCodeLabelPdf = exports.NextServiceDatePDFService = exports.NextServiceDateXlsxFileService = exports.ConsultationLetterHeadPDFService = exports.InvoiceLetterheadPdfService = exports.HCInvoiceprintService = exports.InvoicePortraitPrintService = exports.MyDate = exports.TrUtils = exports.VendorDebitNoteTotalsService = exports.VendorDebitNotePrintService = exports.VendorDebitNotePdfService = exports.VendorCreditNoteTotalsService = exports.VendorCreditNotePrintService = exports.VendorCreditNotePDFService = exports.VendorBalancesService = exports.TransferOrderPrintService = exports.TechnicianPrintService = exports.TechnicianpdfService = exports.TaskReportsPDfService = exports.TaskPDfService = exports.PrintSharedService = void 0;
|
|
5
|
+
exports.GetAgeString = exports.IsNull = exports.IsNotNull = exports.CalcItemFinalSalePrice = exports.GetItemPriceForPriceList = exports.ItemBarCodeLabelPdf = exports.NextServiceDatePDFService = exports.NextServiceDateXlsxFileService = exports.ConsultationLetterHeadPDFService = exports.InvoiceLetterheadPdfService = exports.HCInvoiceprintService = exports.InvoicePortraitPrintService = exports.MyDate = exports.TrUtils = exports.VendorDebitNoteTotalsService = exports.VendorDebitNotePrintService = exports.VendorDebitNotePdfService = exports.VendorCreditNoteTotalsService = exports.VendorCreditNotePrintService = exports.VendorCreditNotePDFService = exports.VendorBalancesService = exports.TransferOrderPrintService = exports.TechnicianPrintService = exports.TechnicianpdfService = exports.TaskReportsPDfService = exports.TaskPDfService = exports.PrintSharedService = void 0;
|
|
6
6
|
var analysis_excel_service_1 = require("./accounting/invoice/reports/excel/analysis-excel.service");
|
|
7
7
|
Object.defineProperty(exports, "AnalysisXlsxFileService", { enumerable: true, get: function () { return analysis_excel_service_1.AnalysisXlsxFileService; } });
|
|
8
8
|
var category_wise_item_excel_service_1 = require("./accounting/invoice/reports/excel/category-wise-item-excel.service");
|
|
@@ -254,3 +254,5 @@ Object.defineProperty(exports, "CalcItemFinalSalePrice", { enumerable: true, get
|
|
|
254
254
|
var util_1 = require("./shared/util");
|
|
255
255
|
Object.defineProperty(exports, "IsNotNull", { enumerable: true, get: function () { return util_1.IsNotNull; } });
|
|
256
256
|
Object.defineProperty(exports, "IsNull", { enumerable: true, get: function () { return util_1.IsNull; } });
|
|
257
|
+
var util_2 = require("./shared/util");
|
|
258
|
+
Object.defineProperty(exports, "GetAgeString", { enumerable: true, get: function () { return util_2.GetAgeString; } });
|
|
@@ -182,3 +182,46 @@ function GetMarginValue(price, cost) {
|
|
|
182
182
|
// Return the calculated margin
|
|
183
183
|
return margin;
|
|
184
184
|
}
|
|
185
|
+
// /* Returns age as a human-readable string in years, months, weeks and days.
|
|
186
|
+
// * E.g. "10 years, 5 months, 1 week, 2 days"
|
|
187
|
+
// */
|
|
188
|
+
// export function GetAgeString(dateOfBirth: Date): string {
|
|
189
|
+
// const now = new Date();
|
|
190
|
+
// // 1) Calculate full years
|
|
191
|
+
// let years = now.getFullYear() - dateOfBirth.getFullYear();
|
|
192
|
+
// const anniversary = new Date(dateOfBirth);
|
|
193
|
+
// anniversary.setFullYear(dateOfBirth.getFullYear() + years);
|
|
194
|
+
// if (anniversary > now) {
|
|
195
|
+
// years--;
|
|
196
|
+
// anniversary.setFullYear(dateOfBirth.getFullYear() + years);
|
|
197
|
+
// }
|
|
198
|
+
// // 2) Calculate full months since last "anniversary"
|
|
199
|
+
// let temp = new Date(anniversary);
|
|
200
|
+
// let months = 0;
|
|
201
|
+
// while (true) {
|
|
202
|
+
// const next = new Date(temp);
|
|
203
|
+
// next.setMonth(next.getMonth() + 1);
|
|
204
|
+
// if (next <= now) {
|
|
205
|
+
// months++;
|
|
206
|
+
// temp = next;
|
|
207
|
+
// } else {
|
|
208
|
+
// break;
|
|
209
|
+
// }
|
|
210
|
+
// }
|
|
211
|
+
// // 3) Calculate remaining days → weeks + days
|
|
212
|
+
// const msPerDay = 24 * 60 * 60 * 1000;
|
|
213
|
+
// const daysTotal = Math.floor((now.getTime() - temp.getTime()) / msPerDay);
|
|
214
|
+
// const weeks = Math.floor(daysTotal / 7);
|
|
215
|
+
// const days = daysTotal % 7;
|
|
216
|
+
// // 4) Build the output, skipping zero-values
|
|
217
|
+
// const parts: string[] = [];
|
|
218
|
+
// if (years) parts.push(`${years} year${years > 1 ? 's' : ''}`);
|
|
219
|
+
// if (months) parts.push(`${months} month${months > 1 ? 's' : ''}`);
|
|
220
|
+
// if (weeks) parts.push(`${weeks} week${weeks > 1 ? 's' : ''}`);
|
|
221
|
+
// if (days) parts.push(`${days} day${days > 1 ? 's' : ''}`);
|
|
222
|
+
// // Fallback for same-day birth (unlikely in practice)
|
|
223
|
+
// if (parts.length === 0) {
|
|
224
|
+
// return '0 days';
|
|
225
|
+
// }
|
|
226
|
+
// return parts.join(', ');
|
|
227
|
+
// }
|
package/dist/shared/util.d.ts
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
1
|
export declare function GetNumber(value: any, defaultValue?: number): number;
|
|
2
2
|
export declare function IsNull(value: unknown): boolean;
|
|
3
3
|
export declare function IsNotNull(value: unknown): boolean;
|
|
4
|
+
/**
|
|
5
|
+
* Returns age as a human-readable string in years, months, weeks and days.
|
|
6
|
+
* E.g. "10 years, 5 months, 1 week, 2 days".
|
|
7
|
+
* If DOB is in the future or invalid, returns "0 days".
|
|
8
|
+
*
|
|
9
|
+
* @param DOB Date or parsable date-string of birth
|
|
10
|
+
* @param referenceDate Date to calculate age against (default: now)
|
|
11
|
+
*/
|
|
12
|
+
export declare function GetAgeString(DOB: Date | string, referenceDate?: Date): string;
|
package/dist/shared/util.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.GetNumber = GetNumber;
|
|
4
4
|
exports.IsNull = IsNull;
|
|
5
5
|
exports.IsNotNull = IsNotNull;
|
|
6
|
+
exports.GetAgeString = GetAgeString;
|
|
6
7
|
function GetNumber(value, defaultValue = 0) {
|
|
7
8
|
return (value == undefined || value == null || isNaN(value)) ? defaultValue : Number(value);
|
|
8
9
|
}
|
|
@@ -13,3 +14,72 @@ function IsNull(value) {
|
|
|
13
14
|
function IsNotNull(value) {
|
|
14
15
|
return !IsNull(value);
|
|
15
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* Returns age as a human-readable string in years, months, weeks and days.
|
|
19
|
+
* E.g. "10 years, 5 months, 1 week, 2 days".
|
|
20
|
+
* If DOB is in the future or invalid, returns "0 days".
|
|
21
|
+
*
|
|
22
|
+
* @param DOB Date or parsable date-string of birth
|
|
23
|
+
* @param referenceDate Date to calculate age against (default: now)
|
|
24
|
+
*/
|
|
25
|
+
function GetAgeString(DOB, referenceDate = new Date()) {
|
|
26
|
+
// 1) Parse & validate DOB
|
|
27
|
+
const birthDate = DOB instanceof Date
|
|
28
|
+
? new Date(DOB.getTime())
|
|
29
|
+
: new Date(DOB);
|
|
30
|
+
if (isNaN(birthDate.getTime())) {
|
|
31
|
+
// invalid date
|
|
32
|
+
return '0 days';
|
|
33
|
+
}
|
|
34
|
+
// 2) Normalize both dates to UTC midnight (avoid DST/timezone issues)
|
|
35
|
+
function toUtcMidnight(d) {
|
|
36
|
+
return new Date(Date.UTC(d.getFullYear(), d.getMonth(), d.getDate()));
|
|
37
|
+
}
|
|
38
|
+
const start = toUtcMidnight(birthDate);
|
|
39
|
+
const end = toUtcMidnight(referenceDate);
|
|
40
|
+
// 3) Prevent negative intervals
|
|
41
|
+
if (start > end) {
|
|
42
|
+
return '0 days';
|
|
43
|
+
}
|
|
44
|
+
// 4) Calculate full years
|
|
45
|
+
let years = end.getUTCFullYear() - start.getUTCFullYear();
|
|
46
|
+
// “Anniversary” = birthday + years
|
|
47
|
+
let anniversary = new Date(Date.UTC(start.getUTCFullYear() + years, start.getUTCMonth(), start.getUTCDate()));
|
|
48
|
+
if (anniversary > end) {
|
|
49
|
+
years--;
|
|
50
|
+
anniversary = new Date(Date.UTC(start.getUTCFullYear() + years, start.getUTCMonth(), start.getUTCDate()));
|
|
51
|
+
}
|
|
52
|
+
// 5) Calculate full months since last anniversary
|
|
53
|
+
let temp = new Date(anniversary);
|
|
54
|
+
let months = 0;
|
|
55
|
+
while (true) {
|
|
56
|
+
const next = new Date(Date.UTC(temp.getUTCFullYear(), temp.getUTCMonth() + 1, temp.getUTCDate()));
|
|
57
|
+
if (next <= end) {
|
|
58
|
+
months++;
|
|
59
|
+
temp = next;
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
// 6) Calculate remaining days → weeks + days
|
|
66
|
+
const msPerDay = 24 * 60 * 60 * 1000;
|
|
67
|
+
const daysTotal = Math.floor((end.getTime() - temp.getTime()) / msPerDay);
|
|
68
|
+
const weeks = Math.floor(daysTotal / 7);
|
|
69
|
+
const days = daysTotal % 7;
|
|
70
|
+
// 7) Build the output, skipping zero-valued units
|
|
71
|
+
const parts = [];
|
|
72
|
+
if (years)
|
|
73
|
+
parts.push(`${years} year${years > 1 ? 's' : ''}`);
|
|
74
|
+
if (months)
|
|
75
|
+
parts.push(`${months} month${months > 1 ? 's' : ''}`);
|
|
76
|
+
if (weeks)
|
|
77
|
+
parts.push(`${weeks} week${weeks > 1 ? 's' : ''}`);
|
|
78
|
+
if (days)
|
|
79
|
+
parts.push(`${days} day${days > 1 ? 's' : ''}`);
|
|
80
|
+
// 8) Fallback
|
|
81
|
+
if (parts.length === 0) {
|
|
82
|
+
return '0 days';
|
|
83
|
+
}
|
|
84
|
+
return parts.join(', ');
|
|
85
|
+
}
|