@harbortouch/skytab-analytics-report-utils 0.10.0 → 0.12.0

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.cjs CHANGED
@@ -21,40 +21,12 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
21
21
  var index_exports = {};
22
22
  __export(index_exports, {
23
23
  COLUMN_REGISTRY: () => COLUMN_REGISTRY,
24
- DAILY_SALES_AVAILABLE_COLUMNS: () => DAILY_SALES_AVAILABLE_COLUMNS,
25
- DAILY_SALES_BY_GROUP_AVAILABLE_COLUMNS: () => DAILY_SALES_BY_GROUP_AVAILABLE_COLUMNS,
26
- DAILY_SALES_DEFAULT_VISIBLE_COLUMNS: () => DAILY_SALES_DEFAULT_VISIBLE_COLUMNS,
27
- DAILY_SALES_DISCOUNTS_AVAILABLE_COLUMNS: () => DAILY_SALES_DISCOUNTS_AVAILABLE_COLUMNS,
28
- DAILY_SALES_DISCOUNTS_DEFAULT_VISIBLE_COLUMNS: () => DAILY_SALES_DISCOUNTS_DEFAULT_VISIBLE_COLUMNS,
29
- DAILY_SALES_PAYMENTS_AVAILABLE_COLUMNS: () => DAILY_SALES_PAYMENTS_AVAILABLE_COLUMNS,
30
- DAILY_SALES_PAYMENTS_DEFAULT_VISIBLE_COLUMNS: () => DAILY_SALES_PAYMENTS_DEFAULT_VISIBLE_COLUMNS,
31
- DAILY_SALES_REFUNDS_VOIDS_AVAILABLE_COLUMNS: () => DAILY_SALES_REFUNDS_VOIDS_AVAILABLE_COLUMNS,
32
- DAILY_SALES_REFUNDS_VOIDS_DEFAULT_VISIBLE_COLUMNS: () => DAILY_SALES_REFUNDS_VOIDS_DEFAULT_VISIBLE_COLUMNS,
33
- DAILY_SALES_TAXES_AVAILABLE_COLUMNS: () => DAILY_SALES_TAXES_AVAILABLE_COLUMNS,
34
- DAILY_SALES_TAXES_DEFAULT_VISIBLE_COLUMNS: () => DAILY_SALES_TAXES_DEFAULT_VISIBLE_COLUMNS,
35
- DAILY_SALES_TRENDS_AVAILABLE_COLUMNS: () => DAILY_SALES_TRENDS_AVAILABLE_COLUMNS,
36
- EMPLOYEE_TIMECARD_AVAILABLE_COLUMNS: () => EMPLOYEE_TIMECARD_AVAILABLE_COLUMNS,
37
- EMPLOYEE_TIMECARD_DEFAULT_VISIBLE_COLUMNS: () => EMPLOYEE_TIMECARD_DEFAULT_VISIBLE_COLUMNS,
38
- ITEM_TAX_AVAILABLE_COLUMNS: () => ITEM_TAX_AVAILABLE_COLUMNS,
39
- ITEM_TAX_DEFAULT_VISIBLE_COLUMNS: () => ITEM_TAX_DEFAULT_VISIBLE_COLUMNS,
40
- MODIFIER_MIX_AVAILABLE_COLUMNS: () => MODIFIER_MIX_AVAILABLE_COLUMNS,
41
- MODIFIER_MIX_DEFAULT_VISIBLE_COLUMNS: () => MODIFIER_MIX_DEFAULT_VISIBLE_COLUMNS,
42
- PRODUCT_MIX_AVAILABLE_COLUMNS: () => PRODUCT_MIX_AVAILABLE_COLUMNS,
43
- PRODUCT_MIX_CHART_FIELDS: () => PRODUCT_MIX_CHART_FIELDS,
44
- PRODUCT_MIX_DEFAULT_VISIBLE_COLUMNS: () => PRODUCT_MIX_DEFAULT_VISIBLE_COLUMNS,
45
24
  Report: () => Report,
46
- SALES_BY_ITEM_DETAIL_AVAILABLE_COLUMNS: () => SALES_BY_ITEM_DETAIL_AVAILABLE_COLUMNS,
47
- SALES_BY_ITEM_DETAIL_DEFAULT_VISIBLE_COLUMNS: () => SALES_BY_ITEM_DETAIL_DEFAULT_VISIBLE_COLUMNS,
48
- SALES_SUMMARY_AVAILABLE_COLUMNS: () => SALES_SUMMARY_AVAILABLE_COLUMNS,
49
- SALES_SUMMARY_DEFAULT_VISIBLE_COLUMNS: () => SALES_SUMMARY_DEFAULT_VISIBLE_COLUMNS,
50
- TICKET_LIVE_AVAILABLE_COLUMNS: () => TICKET_LIVE_AVAILABLE_COLUMNS,
51
- TICKET_LIVE_DEFAULT_VISIBLE_COLUMNS: () => TICKET_LIVE_DEFAULT_VISIBLE_COLUMNS,
52
- TICKET_SUMMARY_AVAILABLE_COLUMNS: () => TICKET_SUMMARY_AVAILABLE_COLUMNS,
53
- TICKET_SUMMARY_DEFAULT_VISIBLE_COLUMNS: () => TICKET_SUMMARY_DEFAULT_VISIBLE_COLUMNS,
54
25
  calculateFieldTotal: () => calculateFieldTotal,
55
26
  calculateReportTotals: () => calculateReportTotals,
56
27
  dailySalesConfig: () => dailySalesConfig,
57
28
  dailySalesDiscountsConfig: () => dailySalesDiscountsConfig,
29
+ dailySalesLiveConfig: () => dailySalesLiveConfig,
58
30
  dailySalesPaymentsConfig: () => dailySalesPaymentsConfig,
59
31
  dailySalesRefundsVoidsConfig: () => dailySalesRefundsVoidsConfig,
60
32
  dailySalesTaxesConfig: () => dailySalesTaxesConfig,
@@ -87,9 +59,59 @@ __export(index_exports, {
87
59
  });
88
60
  module.exports = __toCommonJS(index_exports);
89
61
 
90
- // src/reports/salesSummary.ts
91
- var FIRST_COLUMN_WIDTH = 240;
62
+ // src/reports/salesByItemDetail.ts
92
63
  var FIELDS = {
64
+ businessDate: { type: "date", columnKey: "date", filteringAvailable: false },
65
+ ticketClosedAt: { type: "string", columnKey: "ticketClosed", filteringAvailable: false },
66
+ hourId: { type: "number", columnKey: "hour", filteringAvailable: false },
67
+ daypartName: { type: "string", columnKey: "daypart", filteringAvailable: false },
68
+ locationId: { type: "number", columnKey: "locationId", filteringAvailable: false },
69
+ locationName: { type: "string", columnKey: "locationName", filteringAvailable: false },
70
+ departmentName: { type: "string", columnKey: "department", filteringAvailable: false },
71
+ itemName: { type: "string", columnKey: "itemName", filteringAvailable: false },
72
+ revenueCenterName: { type: "string", columnKey: "revenueCenter", filteringAvailable: false },
73
+ revenueClassName: { type: "string", columnKey: "revenueClass", filteringAvailable: false },
74
+ salesAmountGross: { type: "money", columnKey: "grossSales" },
75
+ itemsQuantity: { type: "number", columnKey: "quantity" },
76
+ transactionId: { type: "string", columnKey: "ticketNumber", filteringAvailable: false },
77
+ guestsCount: { type: "number", columnKey: "guestCount" },
78
+ employeeName: { type: "string", columnKey: "employeeName", filteringAvailable: false },
79
+ orderTypeName: { type: "string", columnKey: "orderType", filteringAvailable: false },
80
+ salesType: { type: "string", columnKey: "salePaymentType", filteringAvailable: false },
81
+ itemPrice: { type: "money", columnKey: "itemPrice" }
82
+ };
83
+ var SALES_BY_ITEM_DETAIL_AVAILABLE_COLUMNS = [
84
+ "businessDate",
85
+ "ticketClosedAt",
86
+ "hourId",
87
+ "daypartName",
88
+ "locationId",
89
+ "locationName",
90
+ "departmentName",
91
+ "itemName",
92
+ "revenueCenterName",
93
+ "revenueClassName",
94
+ "salesAmountGross",
95
+ "itemsQuantity",
96
+ "transactionId",
97
+ "guestsCount",
98
+ "employeeName",
99
+ "orderTypeName",
100
+ "salesType",
101
+ "itemPrice"
102
+ ];
103
+ var salesByItemDetailConfig = {
104
+ fields: FIELDS,
105
+ availableColumns: SALES_BY_ITEM_DETAIL_AVAILABLE_COLUMNS,
106
+ defaultVisibleColumns: SALES_BY_ITEM_DETAIL_AVAILABLE_COLUMNS,
107
+ hasFooter: false
108
+ };
109
+
110
+ // src/reports/constants.ts
111
+ var FIRST_COLUMN_WIDTH = 240;
112
+
113
+ // src/reports/salesSummary.ts
114
+ var FIELDS2 = {
93
115
  groupById: { type: "number" },
94
116
  groupByName: { type: "string", size: FIRST_COLUMN_WIDTH },
95
117
  salesAmountNet: { type: "money", columnKey: "netSales" },
@@ -214,20 +236,17 @@ var SALES_SUMMARY_AVAILABLE_COLUMNS = [
214
236
  "salesPerGuestLW",
215
237
  "salesPerGuestLY"
216
238
  ];
217
- var SALES_SUMMARY_DEFAULT_VISIBLE_COLUMNS = [
218
- "salesAmountNet",
219
- "guestsCount",
220
- "salesPerGuestTY"
221
- ];
239
+ var SALES_SUMMARY_DEFAULT_VISIBLE_COLUMNS = ["salesAmountNet", "guestsCount", "salesPerGuestTY"];
222
240
  var salesSummaryConfig = {
223
- fields: FIELDS,
241
+ fields: FIELDS2,
224
242
  availableColumns: SALES_SUMMARY_AVAILABLE_COLUMNS,
225
243
  defaultVisibleColumns: SALES_SUMMARY_DEFAULT_VISIBLE_COLUMNS,
226
- columnGroups: COLUMN_GROUPS
244
+ columnGroups: COLUMN_GROUPS,
245
+ hasFooter: true
227
246
  };
228
247
 
229
248
  // src/reports/ticketSummary.ts
230
- var FIELDS2 = {
249
+ var FIELDS3 = {
231
250
  ticketId: { type: "string" },
232
251
  locationId: { type: "number" },
233
252
  orderName: { type: "string" },
@@ -313,15 +332,15 @@ var TICKET_SUMMARY_AVAILABLE_COLUMNS = [
313
332
  "employeeName",
314
333
  "orderTypeName"
315
334
  ];
316
- var TICKET_SUMMARY_DEFAULT_VISIBLE_COLUMNS = TICKET_SUMMARY_AVAILABLE_COLUMNS;
317
335
  var ticketSummaryConfig = {
318
- fields: FIELDS2,
336
+ fields: FIELDS3,
319
337
  availableColumns: TICKET_SUMMARY_AVAILABLE_COLUMNS,
320
- defaultVisibleColumns: TICKET_SUMMARY_DEFAULT_VISIBLE_COLUMNS
338
+ defaultVisibleColumns: TICKET_SUMMARY_AVAILABLE_COLUMNS,
339
+ hasFooter: true
321
340
  };
322
341
 
323
342
  // src/reports/ticketLive.ts
324
- var FIELDS3 = {
343
+ var FIELDS4 = {
325
344
  locationName: { type: "string", columnKey: "locationName" },
326
345
  orderNumber: {
327
346
  type: "number",
@@ -371,18 +390,17 @@ var TICKET_LIVE_AVAILABLE_COLUMNS = [
371
390
  "employeeName",
372
391
  "orderType"
373
392
  ];
374
- var TICKET_LIVE_DEFAULT_VISIBLE_COLUMNS = TICKET_LIVE_AVAILABLE_COLUMNS;
375
393
  var ticketLiveConfig = {
376
- fields: FIELDS3,
394
+ fields: FIELDS4,
377
395
  availableColumns: TICKET_LIVE_AVAILABLE_COLUMNS,
378
- defaultVisibleColumns: TICKET_LIVE_DEFAULT_VISIBLE_COLUMNS
396
+ defaultVisibleColumns: TICKET_LIVE_AVAILABLE_COLUMNS,
397
+ hasFooter: true
379
398
  };
380
399
 
381
400
  // src/reports/productMix.ts
382
- var FIRST_COLUMN_WIDTH2 = 240;
383
- var FIELDS4 = {
401
+ var FIELDS5 = {
384
402
  groupById: { type: "string" },
385
- groupByName: { type: "string", size: FIRST_COLUMN_WIDTH2 },
403
+ groupByName: { type: "string", size: FIRST_COLUMN_WIDTH },
386
404
  salesAmountGross: { type: "money", columnKey: "grossSales" },
387
405
  discountsAmount: { type: "money", columnKey: "discountAmount" },
388
406
  inclusiveTaxesAmount: { type: "money", columnKey: "inclusiveTax" },
@@ -400,16 +418,6 @@ var FIELDS4 = {
400
418
  salesMixPct: { type: "percent", columnKey: "salesMixByPct" }
401
419
  };
402
420
  var PRODUCT_MIX_AVAILABLE_COLUMNS = [
403
- "salesAmountGross",
404
- "discountsAmount",
405
- "inclusiveTaxesAmount",
406
- "salesAmountNet",
407
- "itemsQuantity",
408
- "avgPrice",
409
- "salesMixPct"
410
- ];
411
- var PRODUCT_MIX_DEFAULT_VISIBLE_COLUMNS = PRODUCT_MIX_AVAILABLE_COLUMNS;
412
- var PRODUCT_MIX_CHART_FIELDS = [
413
421
  "salesAmountGross",
414
422
  "itemsQuantity",
415
423
  "avgPrice",
@@ -419,18 +427,19 @@ var PRODUCT_MIX_CHART_FIELDS = [
419
427
  "salesMixPct"
420
428
  ];
421
429
  var productMixConfig = {
422
- fields: FIELDS4,
430
+ fields: FIELDS5,
423
431
  availableColumns: PRODUCT_MIX_AVAILABLE_COLUMNS,
424
- defaultVisibleColumns: PRODUCT_MIX_DEFAULT_VISIBLE_COLUMNS
432
+ defaultVisibleColumns: PRODUCT_MIX_AVAILABLE_COLUMNS,
433
+ chartFields: PRODUCT_MIX_AVAILABLE_COLUMNS,
434
+ hasFooter: true
425
435
  };
426
436
 
427
437
  // src/reports/modifierMix.ts
428
- var FIRST_COLUMN_WIDTH3 = 240;
429
- var FIELDS5 = {
438
+ var FIELDS6 = {
430
439
  groupById: { type: "string", filteringAvailable: false },
431
- groupByName: { type: "string", size: FIRST_COLUMN_WIDTH3, filteringAvailable: false },
440
+ groupByName: { type: "string", size: FIRST_COLUMN_WIDTH, filteringAvailable: false },
432
441
  groupById2: { type: "string", filteringAvailable: false },
433
- groupByName2: { type: "string", size: FIRST_COLUMN_WIDTH3, filteringAvailable: false },
442
+ groupByName2: { type: "string", size: FIRST_COLUMN_WIDTH, filteringAvailable: false },
434
443
  modifiersSales: { type: "money", columnKey: "totalModifierSales" },
435
444
  modifiersQuantity: { type: "number", columnKey: "modifierQuantity" },
436
445
  itemsQuantity: {
@@ -492,15 +501,15 @@ var FIELDS5 = {
492
501
  }
493
502
  };
494
503
  var MODIFIER_MIX_AVAILABLE_COLUMNS = ["modifiersSales", "modifiersQuantity", "avgGross"];
495
- var MODIFIER_MIX_DEFAULT_VISIBLE_COLUMNS = MODIFIER_MIX_AVAILABLE_COLUMNS;
496
504
  var modifierMixConfig = {
497
- fields: FIELDS5,
505
+ fields: FIELDS6,
498
506
  availableColumns: MODIFIER_MIX_AVAILABLE_COLUMNS,
499
- defaultVisibleColumns: MODIFIER_MIX_DEFAULT_VISIBLE_COLUMNS
507
+ defaultVisibleColumns: MODIFIER_MIX_AVAILABLE_COLUMNS,
508
+ hasFooter: true
500
509
  };
501
510
 
502
511
  // src/reports/itemTax.ts
503
- var FIELDS6 = {
512
+ var FIELDS7 = {
504
513
  locationId: { type: "number", filteringAvailable: false },
505
514
  taxIsFlat: { type: "boolean", filteringAvailable: false },
506
515
  merchantId: { type: "string", columnKey: "locationMid", filteringAvailable: false },
@@ -546,156 +555,20 @@ var ITEM_TAX_AVAILABLE_COLUMNS = [
546
555
  "taxableSales",
547
556
  "taxCollected"
548
557
  ];
549
- var ITEM_TAX_DEFAULT_VISIBLE_COLUMNS = ITEM_TAX_AVAILABLE_COLUMNS;
550
558
  var itemTaxConfig = {
551
- fields: FIELDS6,
552
- availableColumns: ITEM_TAX_AVAILABLE_COLUMNS,
553
- defaultVisibleColumns: ITEM_TAX_DEFAULT_VISIBLE_COLUMNS
554
- };
555
-
556
- // src/reports/dailySales.ts
557
- var FIRST_COLUMN_WIDTH4 = 240;
558
- var FIELDS7 = {
559
- groupById: { type: "string" },
560
- groupByName: { type: "string", size: FIRST_COLUMN_WIDTH4 },
561
- itemsQuantity: { type: "number", columnKey: "quantity" },
562
- salesAmountGross: { type: "money", columnKey: "grossSales" },
563
- discountsAmount: { type: "money", columnKey: "discountAmount" },
564
- inclusiveTaxesAmount: { type: "money", columnKey: "inclusiveTax" },
565
- salesAmountNet: { type: "money", columnKey: "netSales" },
566
- salesMixPct: { type: "percent", columnKey: "salesMixByPct" },
567
- avgPrice: {
568
- type: "fixedNumber",
569
- columnKey: "averageGrossPrice",
570
- footerCalculation: {
571
- type: "average",
572
- numeratorField: "salesAmountGross",
573
- denominatorField: "itemsQuantity"
574
- }
575
- },
576
- ticketsCount: { type: "number", columnKey: "tickets" },
577
- guestsCount: { type: "number", columnKey: "guests" },
578
- ticketAverage: {
579
- type: "money",
580
- columnKey: "ticketAverage",
581
- footerCalculation: {
582
- type: "average",
583
- numeratorField: "salesAmountNet",
584
- denominatorField: "ticketsCount"
585
- }
586
- },
587
- guestAverage: {
588
- type: "money",
589
- columnKey: "guestAverage",
590
- footerCalculation: {
591
- type: "average",
592
- numeratorField: "salesAmountNet",
593
- denominatorField: "guestsCount"
594
- }
595
- },
596
- ticketAvg: {
597
- type: "money",
598
- columnKey: "ticketAverage",
599
- footerCalculation: {
600
- type: "average",
601
- numeratorField: "salesAmountNet",
602
- denominatorField: "ticketsCount"
603
- }
604
- },
605
- guestAvg: {
606
- type: "money",
607
- columnKey: "guestAverage",
608
- footerCalculation: {
609
- type: "average",
610
- numeratorField: "salesAmountNet",
611
- denominatorField: "guestsCount"
612
- }
613
- }
614
- };
615
- var DAILY_SALES_AVAILABLE_COLUMNS = [
616
- "itemsQuantity",
617
- "salesAmountGross",
618
- "discountsAmount",
619
- "inclusiveTaxesAmount",
620
- "salesAmountNet",
621
- "salesMixPct"
622
- ];
623
- var DAILY_SALES_BY_GROUP_AVAILABLE_COLUMNS = [
624
- "ticketsCount",
625
- "guestsCount",
626
- "ticketAverage",
627
- "guestAverage",
628
- "salesAmountNet"
629
- ];
630
- var DAILY_SALES_DEFAULT_VISIBLE_COLUMNS = DAILY_SALES_AVAILABLE_COLUMNS;
631
- var dailySalesConfig = {
632
559
  fields: FIELDS7,
633
- availableColumns: DAILY_SALES_AVAILABLE_COLUMNS,
634
- defaultVisibleColumns: DAILY_SALES_DEFAULT_VISIBLE_COLUMNS
635
- };
636
- var DAILY_SALES_TRENDS_AVAILABLE_COLUMNS = [
637
- "ticketsCount",
638
- "guestsCount",
639
- "ticketAvg",
640
- "guestAvg",
641
- "salesAmountNet"
642
- ];
643
- var dailySalesTrendsConfig = {
644
- fields: FIELDS7,
645
- availableColumns: DAILY_SALES_TRENDS_AVAILABLE_COLUMNS,
646
- defaultVisibleColumns: DAILY_SALES_TRENDS_AVAILABLE_COLUMNS
647
- };
648
-
649
- // src/reports/dailySalesPayments.ts
650
- var FIRST_COLUMN_WIDTH5 = 240;
651
- var FIELDS8 = {
652
- paymentTypeName: { type: "string", size: FIRST_COLUMN_WIDTH5 },
653
- paymentsCount: { type: "number", columnKey: "paymentsCount", footerCalculation: { type: "sum" } },
654
- paymentsAmount: { type: "money", columnKey: "paymentsAmount", footerCalculation: { type: "sum" } },
655
- tipsAmount: { type: "money", columnKey: "tips", footerCalculation: { type: "sum" } },
656
- totalSales: { type: "money", columnKey: "paymentsTotal", footerCalculation: { type: "sum" } }
657
- };
658
- var DAILY_SALES_PAYMENTS_AVAILABLE_COLUMNS = [
659
- "paymentsCount",
660
- "paymentsAmount",
661
- "tipsAmount",
662
- "totalSales"
663
- ];
664
- var DAILY_SALES_PAYMENTS_DEFAULT_VISIBLE_COLUMNS = DAILY_SALES_PAYMENTS_AVAILABLE_COLUMNS;
665
- var dailySalesPaymentsConfig = {
666
- fields: FIELDS8,
667
- availableColumns: DAILY_SALES_PAYMENTS_AVAILABLE_COLUMNS,
668
- defaultVisibleColumns: DAILY_SALES_PAYMENTS_DEFAULT_VISIBLE_COLUMNS
669
- };
670
-
671
- // src/reports/dailySalesDiscounts.ts
672
- var FIRST_COLUMN_WIDTH6 = 240;
673
- var FIELDS9 = {
674
- discountName: { type: "string", columnKey: "discountName", size: FIRST_COLUMN_WIDTH6 },
675
- ticketCount: { type: "number", columnKey: "ticketCount", footerCalculation: { type: "sum" } },
676
- itemCount: { type: "number", columnKey: "itemCount", footerCalculation: { type: "sum" } },
677
- discountsAmount: { type: "money", columnKey: "discountAmount", footerCalculation: { type: "sum" } }
678
- };
679
- var DAILY_SALES_DISCOUNTS_AVAILABLE_COLUMNS = [
680
- "ticketCount",
681
- "itemCount",
682
- "discountsAmount"
683
- ];
684
- var DAILY_SALES_DISCOUNTS_DEFAULT_VISIBLE_COLUMNS = DAILY_SALES_DISCOUNTS_AVAILABLE_COLUMNS;
685
- var dailySalesDiscountsConfig = {
686
- fields: FIELDS9,
687
- availableColumns: DAILY_SALES_DISCOUNTS_AVAILABLE_COLUMNS,
688
- defaultVisibleColumns: DAILY_SALES_DISCOUNTS_DEFAULT_VISIBLE_COLUMNS
560
+ availableColumns: ITEM_TAX_AVAILABLE_COLUMNS,
561
+ defaultVisibleColumns: ITEM_TAX_AVAILABLE_COLUMNS,
562
+ hasFooter: false
689
563
  };
690
564
 
691
565
  // src/reports/employeeTimecard.ts
692
- var FIRST_COLUMN_WIDTH7 = 240;
693
566
  var EMPLOYEE_NAME_WIDTH = 220;
694
567
  var STATUS_WIDTH = 140;
695
568
  var LOOKUP_WIDTH = 160;
696
569
  var PAYROLL_WIDTH = 160;
697
570
  var JOB_WIDTH = 200;
698
- var FIELDS10 = {
571
+ var FIELDS8 = {
699
572
  locationId: {
700
573
  type: "number",
701
574
  enableSorting: false,
@@ -703,7 +576,7 @@ var FIELDS10 = {
703
576
  },
704
577
  locationName: {
705
578
  type: "string",
706
- size: FIRST_COLUMN_WIDTH7,
579
+ size: FIRST_COLUMN_WIDTH,
707
580
  columnKey: "locationName"
708
581
  },
709
582
  businessDate: {
@@ -768,61 +641,104 @@ var EMPLOYEE_TIMECARD_AVAILABLE_COLUMNS = [
768
641
  "endTime",
769
642
  "shiftHours"
770
643
  ];
771
- var EMPLOYEE_TIMECARD_DEFAULT_VISIBLE_COLUMNS = EMPLOYEE_TIMECARD_AVAILABLE_COLUMNS;
772
644
  var employeeTimecardConfig = {
773
- fields: FIELDS10,
645
+ fields: FIELDS8,
774
646
  availableColumns: EMPLOYEE_TIMECARD_AVAILABLE_COLUMNS,
775
- defaultVisibleColumns: EMPLOYEE_TIMECARD_DEFAULT_VISIBLE_COLUMNS,
776
- columnGroups: []
777
- // No column groups for this report
647
+ defaultVisibleColumns: EMPLOYEE_TIMECARD_AVAILABLE_COLUMNS,
648
+ hasFooter: true
778
649
  };
779
650
 
780
- // src/reports/salesByItemDetail.ts
781
- var FIELDS11 = {
782
- businessDate: { type: "date", columnKey: "date", filteringAvailable: false },
783
- ticketClosedAt: { type: "string", columnKey: "ticketClosed", filteringAvailable: false },
784
- hourId: { type: "number", columnKey: "hour", filteringAvailable: false },
785
- daypartName: { type: "string", columnKey: "daypart", filteringAvailable: false },
786
- locationId: { type: "number", columnKey: "locationId", filteringAvailable: false },
787
- locationName: { type: "string", columnKey: "locationName", filteringAvailable: false },
788
- departmentName: { type: "string", columnKey: "department", filteringAvailable: false },
789
- itemName: { type: "string", columnKey: "itemName", filteringAvailable: false },
790
- revenueCenterName: { type: "string", columnKey: "revenueCenter", filteringAvailable: false },
791
- revenueClassName: { type: "string", columnKey: "revenueClass", filteringAvailable: false },
792
- salesAmountGross: { type: "money", columnKey: "grossSales" },
651
+ // src/reports/dailySales.ts
652
+ var FIELDS9 = {
653
+ groupById: { type: "string" },
654
+ groupByName: { type: "string", size: FIRST_COLUMN_WIDTH },
793
655
  itemsQuantity: { type: "number", columnKey: "quantity" },
794
- transactionId: { type: "string", columnKey: "ticketNumber", filteringAvailable: false },
795
- guestsCount: { type: "number", columnKey: "guestCount" },
796
- employeeName: { type: "string", columnKey: "employeeName", filteringAvailable: false },
797
- orderTypeName: { type: "string", columnKey: "orderType", filteringAvailable: false },
798
- salesType: { type: "string", columnKey: "salePaymentType", filteringAvailable: false },
799
- itemPrice: { type: "money", columnKey: "itemPrice" }
656
+ salesAmountGross: { type: "money", columnKey: "grossSales" },
657
+ discountsAmount: { type: "money", columnKey: "discountAmount" },
658
+ inclusiveTaxesAmount: { type: "money", columnKey: "inclusiveTax" },
659
+ salesAmountNet: { type: "money", columnKey: "netSales" },
660
+ salesMixPct: { type: "percent", columnKey: "salesMixByPct" }
800
661
  };
801
- var SALES_BY_ITEM_DETAIL_AVAILABLE_COLUMNS = [
802
- "businessDate",
803
- "ticketClosedAt",
804
- "hourId",
805
- "daypartName",
806
- "locationId",
807
- "locationName",
808
- "departmentName",
809
- "itemName",
810
- "revenueCenterName",
811
- "revenueClassName",
662
+ var DAILY_SALES_AVAILABLE_COLUMNS = [
663
+ "itemsQuantity",
812
664
  "salesAmountGross",
665
+ "discountsAmount",
666
+ "inclusiveTaxesAmount",
667
+ "salesAmountNet",
668
+ "salesMixPct"
669
+ ];
670
+ var dailySalesConfig = {
671
+ fields: FIELDS9,
672
+ availableColumns: DAILY_SALES_AVAILABLE_COLUMNS,
673
+ defaultVisibleColumns: DAILY_SALES_AVAILABLE_COLUMNS,
674
+ hasFooter: true
675
+ };
676
+
677
+ // src/reports/dailySalesLive.ts
678
+ var FIELDS10 = {
679
+ groupById: { type: "string" },
680
+ groupByName: { type: "string", size: FIRST_COLUMN_WIDTH },
681
+ itemsQuantity: { type: "number", columnKey: "quantity" },
682
+ salesAmountGross: { type: "money", columnKey: "grossSales" },
683
+ discountsAmount: { type: "money", columnKey: "discountAmount" },
684
+ inclusiveTaxesAmount: { type: "money", columnKey: "inclusiveTax" },
685
+ salesAmountNet: { type: "money", columnKey: "netSales" },
686
+ salesMixPct: { type: "percent", columnKey: "salesMixByPct" },
687
+ guestsCount: { type: "number", columnKey: "guests" }
688
+ };
689
+ var DAILY_SALES_LIVE_AVAILABLE_COLUMNS = [
813
690
  "itemsQuantity",
814
- "transactionId",
691
+ "salesAmountGross",
692
+ "discountsAmount",
693
+ "inclusiveTaxesAmount",
694
+ "salesAmountNet",
695
+ "salesMixPct"
696
+ ];
697
+ var dailySalesLiveConfig = {
698
+ fields: FIELDS10,
699
+ availableColumns: DAILY_SALES_LIVE_AVAILABLE_COLUMNS,
700
+ defaultVisibleColumns: DAILY_SALES_LIVE_AVAILABLE_COLUMNS,
701
+ hasFooter: true
702
+ };
703
+
704
+ // src/reports/dailySalesTrends.ts
705
+ var FIELDS11 = {
706
+ groupById: { type: "string" },
707
+ groupByName: { type: "string", size: FIRST_COLUMN_WIDTH },
708
+ salesAmountNet: { type: "money", columnKey: "netSales" },
709
+ ticketsCount: { type: "number", columnKey: "tickets" },
710
+ guestsCount: { type: "number", columnKey: "guests" },
711
+ ticketAvg: {
712
+ type: "money",
713
+ columnKey: "ticketAverage",
714
+ footerCalculation: {
715
+ type: "average",
716
+ numeratorField: "salesAmountNet",
717
+ denominatorField: "ticketsCount"
718
+ }
719
+ },
720
+ guestAvg: {
721
+ type: "money",
722
+ columnKey: "guestAverage",
723
+ footerCalculation: {
724
+ type: "average",
725
+ numeratorField: "salesAmountNet",
726
+ denominatorField: "guestsCount"
727
+ }
728
+ }
729
+ };
730
+ var DAILY_SALES_TRENDS_AVAILABLE_COLUMNS = [
731
+ "ticketsCount",
815
732
  "guestsCount",
816
- "employeeName",
817
- "orderTypeName",
818
- "salesType",
819
- "itemPrice"
733
+ "ticketAvg",
734
+ "guestAvg",
735
+ "salesAmountNet"
820
736
  ];
821
- var SALES_BY_ITEM_DETAIL_DEFAULT_VISIBLE_COLUMNS = SALES_BY_ITEM_DETAIL_AVAILABLE_COLUMNS;
822
- var salesByItemDetailConfig = {
737
+ var dailySalesTrendsConfig = {
823
738
  fields: FIELDS11,
824
- availableColumns: SALES_BY_ITEM_DETAIL_AVAILABLE_COLUMNS,
825
- defaultVisibleColumns: SALES_BY_ITEM_DETAIL_DEFAULT_VISIBLE_COLUMNS
739
+ availableColumns: DAILY_SALES_TRENDS_AVAILABLE_COLUMNS,
740
+ defaultVisibleColumns: DAILY_SALES_TRENDS_AVAILABLE_COLUMNS,
741
+ hasFooter: true
826
742
  };
827
743
 
828
744
  // src/report.ts
@@ -837,7 +753,8 @@ var Report = {
837
753
  EMPLOYEE_TIP: "employee-tip",
838
754
  SALES_BY_ITEM: "sales-by-item",
839
755
  DAILY_SALES: "daily-sales",
840
- DAILY_SALES_LIVE: "daily-sales-live"
756
+ DAILY_SALES_LIVE: "daily-sales-live",
757
+ DAILY_SALES_TRENDS: "daily-sales-trends"
841
758
  };
842
759
  var REPORT_CONFIG_MAP = {
843
760
  "sales-summary": salesSummaryConfig,
@@ -850,7 +767,8 @@ var REPORT_CONFIG_MAP = {
850
767
  "employee-tip": null,
851
768
  "sales-by-item": salesByItemDetailConfig,
852
769
  "daily-sales": dailySalesConfig,
853
- "daily-sales-live": null
770
+ "daily-sales-live": dailySalesLiveConfig,
771
+ "daily-sales-trends": dailySalesTrendsConfig
854
772
  };
855
773
  var getReportConfig = (reportType) => REPORT_CONFIG_MAP[reportType];
856
774
 
@@ -1537,7 +1455,7 @@ var calculateFieldTotal = (rows, field, config) => {
1537
1455
  }
1538
1456
  const calc = config.footerCalculation;
1539
1457
  if (calc?.type === "none") {
1540
- return 0;
1458
+ return null;
1541
1459
  }
1542
1460
  if (!calc || calc.type === "sum") {
1543
1461
  return config.columnKey || calc?.type === "sum" ? sumField(rows, field) : 0;
@@ -1578,44 +1496,74 @@ var calculateReportTotals = (data, fieldConfig, opts) => {
1578
1496
  return result;
1579
1497
  };
1580
1498
 
1581
- // src/reports/dailySalesRefundsVoids.ts
1582
- var FIRST_COLUMN_WIDTH8 = 240;
1499
+ // src/reports/dailySalesPayments.ts
1583
1500
  var FIELDS12 = {
1584
- description: { type: "string", columnKey: "refundVoidDescription", size: FIRST_COLUMN_WIDTH8 },
1501
+ paymentTypeName: { type: "string", size: FIRST_COLUMN_WIDTH },
1502
+ paymentsCount: { type: "number", columnKey: "paymentsCount", footerCalculation: { type: "sum" } },
1503
+ paymentsAmount: { type: "money", columnKey: "paymentsAmount", footerCalculation: { type: "sum" } },
1504
+ tipsAmount: { type: "money", columnKey: "tips", footerCalculation: { type: "sum" } },
1505
+ totalSales: { type: "money", columnKey: "paymentsTotal", footerCalculation: { type: "sum" } }
1506
+ };
1507
+ var DAILY_SALES_PAYMENTS_AVAILABLE_COLUMNS = [
1508
+ "paymentsCount",
1509
+ "paymentsAmount",
1510
+ "tipsAmount",
1511
+ "totalSales"
1512
+ ];
1513
+ var dailySalesPaymentsConfig = {
1514
+ fields: FIELDS12,
1515
+ availableColumns: DAILY_SALES_PAYMENTS_AVAILABLE_COLUMNS,
1516
+ defaultVisibleColumns: DAILY_SALES_PAYMENTS_AVAILABLE_COLUMNS,
1517
+ hasFooter: true
1518
+ };
1519
+
1520
+ // src/reports/dailySalesDiscounts.ts
1521
+ var FIELDS13 = {
1522
+ discountName: { type: "string", columnKey: "discountName", size: FIRST_COLUMN_WIDTH },
1523
+ ticketCount: { type: "number", columnKey: "ticketCount", footerCalculation: { type: "sum" } },
1524
+ itemCount: { type: "number", columnKey: "itemCount", footerCalculation: { type: "sum" } },
1525
+ discountsAmount: { type: "money", columnKey: "discountAmount", footerCalculation: { type: "sum" } }
1526
+ };
1527
+ var DAILY_SALES_DISCOUNTS_AVAILABLE_COLUMNS = [
1528
+ "ticketCount",
1529
+ "itemCount",
1530
+ "discountsAmount"
1531
+ ];
1532
+ var dailySalesDiscountsConfig = {
1533
+ fields: FIELDS13,
1534
+ availableColumns: DAILY_SALES_DISCOUNTS_AVAILABLE_COLUMNS,
1535
+ defaultVisibleColumns: DAILY_SALES_DISCOUNTS_AVAILABLE_COLUMNS,
1536
+ hasFooter: true
1537
+ };
1538
+
1539
+ // src/reports/dailySalesRefundsVoids.ts
1540
+ var FIELDS14 = {
1541
+ description: { type: "string", columnKey: "refundVoidDescription", size: FIRST_COLUMN_WIDTH },
1585
1542
  count: { type: "number", columnKey: "refundVoidCount", footerCalculation: { type: "sum" } },
1586
1543
  amount: { type: "money", columnKey: "refundVoidAmount", footerCalculation: { type: "sum" } },
1587
1544
  pctSales: { type: "percent", columnKey: "refundVoidPctSales", footerCalculation: { type: "sum" } }
1588
1545
  };
1589
- var DAILY_SALES_REFUNDS_VOIDS_AVAILABLE_COLUMNS = [
1590
- "count",
1591
- "amount",
1592
- "pctSales"
1593
- ];
1594
- var DAILY_SALES_REFUNDS_VOIDS_DEFAULT_VISIBLE_COLUMNS = DAILY_SALES_REFUNDS_VOIDS_AVAILABLE_COLUMNS;
1546
+ var DAILY_SALES_REFUNDS_VOIDS_AVAILABLE_COLUMNS = ["count", "amount", "pctSales"];
1595
1547
  var dailySalesRefundsVoidsConfig = {
1596
- fields: FIELDS12,
1548
+ fields: FIELDS14,
1597
1549
  availableColumns: DAILY_SALES_REFUNDS_VOIDS_AVAILABLE_COLUMNS,
1598
- defaultVisibleColumns: DAILY_SALES_REFUNDS_VOIDS_DEFAULT_VISIBLE_COLUMNS
1550
+ defaultVisibleColumns: DAILY_SALES_REFUNDS_VOIDS_AVAILABLE_COLUMNS,
1551
+ hasFooter: true
1599
1552
  };
1600
1553
 
1601
1554
  // src/reports/dailySalesTaxes.ts
1602
- var FIRST_COLUMN_WIDTH9 = 240;
1603
- var FIELDS13 = {
1604
- taxName: { type: "string", columnKey: "taxName", size: FIRST_COLUMN_WIDTH9 },
1555
+ var FIELDS15 = {
1556
+ taxName: { type: "string", columnKey: "taxName", size: FIRST_COLUMN_WIDTH },
1605
1557
  taxableSales: { type: "money", columnKey: "taxableSales", footerCalculation: { type: "sum" } },
1606
1558
  taxesAmount: { type: "money", columnKey: "taxCollected", footerCalculation: { type: "sum" } },
1607
1559
  exemptSales: { type: "money", columnKey: "exemptTaxes", footerCalculation: { type: "sum" } }
1608
1560
  };
1609
- var DAILY_SALES_TAXES_AVAILABLE_COLUMNS = [
1610
- "taxableSales",
1611
- "taxesAmount",
1612
- "exemptSales"
1613
- ];
1614
- var DAILY_SALES_TAXES_DEFAULT_VISIBLE_COLUMNS = DAILY_SALES_TAXES_AVAILABLE_COLUMNS;
1561
+ var DAILY_SALES_TAXES_AVAILABLE_COLUMNS = ["taxableSales", "taxesAmount", "exemptSales"];
1615
1562
  var dailySalesTaxesConfig = {
1616
- fields: FIELDS13,
1563
+ fields: FIELDS15,
1617
1564
  availableColumns: DAILY_SALES_TAXES_AVAILABLE_COLUMNS,
1618
- defaultVisibleColumns: DAILY_SALES_TAXES_DEFAULT_VISIBLE_COLUMNS
1565
+ defaultVisibleColumns: DAILY_SALES_TAXES_AVAILABLE_COLUMNS,
1566
+ hasFooter: true
1619
1567
  };
1620
1568
 
1621
1569
  // src/formatting.ts
@@ -1759,40 +1707,12 @@ var formatFieldValue = (value, type, localeOptions, fullRecord, fieldConfig = DE
1759
1707
  // Annotate the CommonJS export names for ESM import in node:
1760
1708
  0 && (module.exports = {
1761
1709
  COLUMN_REGISTRY,
1762
- DAILY_SALES_AVAILABLE_COLUMNS,
1763
- DAILY_SALES_BY_GROUP_AVAILABLE_COLUMNS,
1764
- DAILY_SALES_DEFAULT_VISIBLE_COLUMNS,
1765
- DAILY_SALES_DISCOUNTS_AVAILABLE_COLUMNS,
1766
- DAILY_SALES_DISCOUNTS_DEFAULT_VISIBLE_COLUMNS,
1767
- DAILY_SALES_PAYMENTS_AVAILABLE_COLUMNS,
1768
- DAILY_SALES_PAYMENTS_DEFAULT_VISIBLE_COLUMNS,
1769
- DAILY_SALES_REFUNDS_VOIDS_AVAILABLE_COLUMNS,
1770
- DAILY_SALES_REFUNDS_VOIDS_DEFAULT_VISIBLE_COLUMNS,
1771
- DAILY_SALES_TAXES_AVAILABLE_COLUMNS,
1772
- DAILY_SALES_TAXES_DEFAULT_VISIBLE_COLUMNS,
1773
- DAILY_SALES_TRENDS_AVAILABLE_COLUMNS,
1774
- EMPLOYEE_TIMECARD_AVAILABLE_COLUMNS,
1775
- EMPLOYEE_TIMECARD_DEFAULT_VISIBLE_COLUMNS,
1776
- ITEM_TAX_AVAILABLE_COLUMNS,
1777
- ITEM_TAX_DEFAULT_VISIBLE_COLUMNS,
1778
- MODIFIER_MIX_AVAILABLE_COLUMNS,
1779
- MODIFIER_MIX_DEFAULT_VISIBLE_COLUMNS,
1780
- PRODUCT_MIX_AVAILABLE_COLUMNS,
1781
- PRODUCT_MIX_CHART_FIELDS,
1782
- PRODUCT_MIX_DEFAULT_VISIBLE_COLUMNS,
1783
1710
  Report,
1784
- SALES_BY_ITEM_DETAIL_AVAILABLE_COLUMNS,
1785
- SALES_BY_ITEM_DETAIL_DEFAULT_VISIBLE_COLUMNS,
1786
- SALES_SUMMARY_AVAILABLE_COLUMNS,
1787
- SALES_SUMMARY_DEFAULT_VISIBLE_COLUMNS,
1788
- TICKET_LIVE_AVAILABLE_COLUMNS,
1789
- TICKET_LIVE_DEFAULT_VISIBLE_COLUMNS,
1790
- TICKET_SUMMARY_AVAILABLE_COLUMNS,
1791
- TICKET_SUMMARY_DEFAULT_VISIBLE_COLUMNS,
1792
1711
  calculateFieldTotal,
1793
1712
  calculateReportTotals,
1794
1713
  dailySalesConfig,
1795
1714
  dailySalesDiscountsConfig,
1715
+ dailySalesLiveConfig,
1796
1716
  dailySalesPaymentsConfig,
1797
1717
  dailySalesRefundsVoidsConfig,
1798
1718
  dailySalesTaxesConfig,