@harbortouch/skytab-analytics-report-utils 0.11.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,28 +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_DISCOUNTS_AVAILABLE_COLUMNS: () => DAILY_SALES_DISCOUNTS_AVAILABLE_COLUMNS,
27
- DAILY_SALES_PAYMENTS_AVAILABLE_COLUMNS: () => DAILY_SALES_PAYMENTS_AVAILABLE_COLUMNS,
28
- DAILY_SALES_REFUNDS_VOIDS_AVAILABLE_COLUMNS: () => DAILY_SALES_REFUNDS_VOIDS_AVAILABLE_COLUMNS,
29
- DAILY_SALES_TAXES_AVAILABLE_COLUMNS: () => DAILY_SALES_TAXES_AVAILABLE_COLUMNS,
30
- DAILY_SALES_TRENDS_AVAILABLE_COLUMNS: () => DAILY_SALES_TRENDS_AVAILABLE_COLUMNS,
31
- EMPLOYEE_TIMECARD_AVAILABLE_COLUMNS: () => EMPLOYEE_TIMECARD_AVAILABLE_COLUMNS,
32
- ITEM_TAX_AVAILABLE_COLUMNS: () => ITEM_TAX_AVAILABLE_COLUMNS,
33
- MODIFIER_MIX_AVAILABLE_COLUMNS: () => MODIFIER_MIX_AVAILABLE_COLUMNS,
34
- PRODUCT_MIX_AVAILABLE_COLUMNS: () => PRODUCT_MIX_AVAILABLE_COLUMNS,
35
- PRODUCT_MIX_CHART_FIELDS: () => PRODUCT_MIX_CHART_FIELDS,
36
- PRODUCT_MIX_DEFAULT_VISIBLE_COLUMNS: () => PRODUCT_MIX_DEFAULT_VISIBLE_COLUMNS,
37
24
  Report: () => Report,
38
- SALES_BY_ITEM_DETAIL_AVAILABLE_COLUMNS: () => SALES_BY_ITEM_DETAIL_AVAILABLE_COLUMNS,
39
- SALES_SUMMARY_AVAILABLE_COLUMNS: () => SALES_SUMMARY_AVAILABLE_COLUMNS,
40
- TICKET_LIVE_AVAILABLE_COLUMNS: () => TICKET_LIVE_AVAILABLE_COLUMNS,
41
- TICKET_SUMMARY_AVAILABLE_COLUMNS: () => TICKET_SUMMARY_AVAILABLE_COLUMNS,
42
25
  calculateFieldTotal: () => calculateFieldTotal,
43
26
  calculateReportTotals: () => calculateReportTotals,
44
27
  dailySalesConfig: () => dailySalesConfig,
45
28
  dailySalesDiscountsConfig: () => dailySalesDiscountsConfig,
29
+ dailySalesLiveConfig: () => dailySalesLiveConfig,
46
30
  dailySalesPaymentsConfig: () => dailySalesPaymentsConfig,
47
31
  dailySalesRefundsVoidsConfig: () => dailySalesRefundsVoidsConfig,
48
32
  dailySalesTaxesConfig: () => dailySalesTaxesConfig,
@@ -75,9 +59,59 @@ __export(index_exports, {
75
59
  });
76
60
  module.exports = __toCommonJS(index_exports);
77
61
 
78
- // src/reports/salesSummary.ts
79
- var FIRST_COLUMN_WIDTH = 240;
62
+ // src/reports/salesByItemDetail.ts
80
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 = {
81
115
  groupById: { type: "number" },
82
116
  groupByName: { type: "string", size: FIRST_COLUMN_WIDTH },
83
117
  salesAmountNet: { type: "money", columnKey: "netSales" },
@@ -204,7 +238,7 @@ var SALES_SUMMARY_AVAILABLE_COLUMNS = [
204
238
  ];
205
239
  var SALES_SUMMARY_DEFAULT_VISIBLE_COLUMNS = ["salesAmountNet", "guestsCount", "salesPerGuestTY"];
206
240
  var salesSummaryConfig = {
207
- fields: FIELDS,
241
+ fields: FIELDS2,
208
242
  availableColumns: SALES_SUMMARY_AVAILABLE_COLUMNS,
209
243
  defaultVisibleColumns: SALES_SUMMARY_DEFAULT_VISIBLE_COLUMNS,
210
244
  columnGroups: COLUMN_GROUPS,
@@ -212,7 +246,7 @@ var salesSummaryConfig = {
212
246
  };
213
247
 
214
248
  // src/reports/ticketSummary.ts
215
- var FIELDS2 = {
249
+ var FIELDS3 = {
216
250
  ticketId: { type: "string" },
217
251
  locationId: { type: "number" },
218
252
  orderName: { type: "string" },
@@ -299,14 +333,14 @@ var TICKET_SUMMARY_AVAILABLE_COLUMNS = [
299
333
  "orderTypeName"
300
334
  ];
301
335
  var ticketSummaryConfig = {
302
- fields: FIELDS2,
336
+ fields: FIELDS3,
303
337
  availableColumns: TICKET_SUMMARY_AVAILABLE_COLUMNS,
304
338
  defaultVisibleColumns: TICKET_SUMMARY_AVAILABLE_COLUMNS,
305
339
  hasFooter: true
306
340
  };
307
341
 
308
342
  // src/reports/ticketLive.ts
309
- var FIELDS3 = {
343
+ var FIELDS4 = {
310
344
  locationName: { type: "string", columnKey: "locationName" },
311
345
  orderNumber: {
312
346
  type: "number",
@@ -357,17 +391,16 @@ var TICKET_LIVE_AVAILABLE_COLUMNS = [
357
391
  "orderType"
358
392
  ];
359
393
  var ticketLiveConfig = {
360
- fields: FIELDS3,
394
+ fields: FIELDS4,
361
395
  availableColumns: TICKET_LIVE_AVAILABLE_COLUMNS,
362
396
  defaultVisibleColumns: TICKET_LIVE_AVAILABLE_COLUMNS,
363
397
  hasFooter: true
364
398
  };
365
399
 
366
400
  // src/reports/productMix.ts
367
- var FIRST_COLUMN_WIDTH2 = 240;
368
- var FIELDS4 = {
401
+ var FIELDS5 = {
369
402
  groupById: { type: "string" },
370
- groupByName: { type: "string", size: FIRST_COLUMN_WIDTH2 },
403
+ groupByName: { type: "string", size: FIRST_COLUMN_WIDTH },
371
404
  salesAmountGross: { type: "money", columnKey: "grossSales" },
372
405
  discountsAmount: { type: "money", columnKey: "discountAmount" },
373
406
  inclusiveTaxesAmount: { type: "money", columnKey: "inclusiveTax" },
@@ -385,16 +418,6 @@ var FIELDS4 = {
385
418
  salesMixPct: { type: "percent", columnKey: "salesMixByPct" }
386
419
  };
387
420
  var PRODUCT_MIX_AVAILABLE_COLUMNS = [
388
- "salesAmountGross",
389
- "discountsAmount",
390
- "inclusiveTaxesAmount",
391
- "salesAmountNet",
392
- "itemsQuantity",
393
- "avgPrice",
394
- "salesMixPct"
395
- ];
396
- var PRODUCT_MIX_DEFAULT_VISIBLE_COLUMNS = PRODUCT_MIX_AVAILABLE_COLUMNS;
397
- var PRODUCT_MIX_CHART_FIELDS = [
398
421
  "salesAmountGross",
399
422
  "itemsQuantity",
400
423
  "avgPrice",
@@ -404,19 +427,19 @@ var PRODUCT_MIX_CHART_FIELDS = [
404
427
  "salesMixPct"
405
428
  ];
406
429
  var productMixConfig = {
407
- fields: FIELDS4,
430
+ fields: FIELDS5,
408
431
  availableColumns: PRODUCT_MIX_AVAILABLE_COLUMNS,
409
- defaultVisibleColumns: PRODUCT_MIX_DEFAULT_VISIBLE_COLUMNS,
432
+ defaultVisibleColumns: PRODUCT_MIX_AVAILABLE_COLUMNS,
433
+ chartFields: PRODUCT_MIX_AVAILABLE_COLUMNS,
410
434
  hasFooter: true
411
435
  };
412
436
 
413
437
  // src/reports/modifierMix.ts
414
- var FIRST_COLUMN_WIDTH3 = 240;
415
- var FIELDS5 = {
438
+ var FIELDS6 = {
416
439
  groupById: { type: "string", filteringAvailable: false },
417
- groupByName: { type: "string", size: FIRST_COLUMN_WIDTH3, filteringAvailable: false },
440
+ groupByName: { type: "string", size: FIRST_COLUMN_WIDTH, filteringAvailable: false },
418
441
  groupById2: { type: "string", filteringAvailable: false },
419
- groupByName2: { type: "string", size: FIRST_COLUMN_WIDTH3, filteringAvailable: false },
442
+ groupByName2: { type: "string", size: FIRST_COLUMN_WIDTH, filteringAvailable: false },
420
443
  modifiersSales: { type: "money", columnKey: "totalModifierSales" },
421
444
  modifiersQuantity: { type: "number", columnKey: "modifierQuantity" },
422
445
  itemsQuantity: {
@@ -479,14 +502,14 @@ var FIELDS5 = {
479
502
  };
480
503
  var MODIFIER_MIX_AVAILABLE_COLUMNS = ["modifiersSales", "modifiersQuantity", "avgGross"];
481
504
  var modifierMixConfig = {
482
- fields: FIELDS5,
505
+ fields: FIELDS6,
483
506
  availableColumns: MODIFIER_MIX_AVAILABLE_COLUMNS,
484
507
  defaultVisibleColumns: MODIFIER_MIX_AVAILABLE_COLUMNS,
485
508
  hasFooter: true
486
509
  };
487
510
 
488
511
  // src/reports/itemTax.ts
489
- var FIELDS6 = {
512
+ var FIELDS7 = {
490
513
  locationId: { type: "number", filteringAvailable: false },
491
514
  taxIsFlat: { type: "boolean", filteringAvailable: false },
492
515
  merchantId: { type: "string", columnKey: "locationMid", filteringAvailable: false },
@@ -533,156 +556,19 @@ var ITEM_TAX_AVAILABLE_COLUMNS = [
533
556
  "taxCollected"
534
557
  ];
535
558
  var itemTaxConfig = {
536
- fields: FIELDS6,
559
+ fields: FIELDS7,
537
560
  availableColumns: ITEM_TAX_AVAILABLE_COLUMNS,
538
561
  defaultVisibleColumns: ITEM_TAX_AVAILABLE_COLUMNS,
539
562
  hasFooter: false
540
563
  };
541
564
 
542
- // src/reports/dailySales.ts
543
- var FIRST_COLUMN_WIDTH4 = 240;
544
- var FIELDS7 = {
545
- groupById: { type: "string" },
546
- groupByName: { type: "string", size: FIRST_COLUMN_WIDTH4 },
547
- itemsQuantity: { type: "number", columnKey: "quantity" },
548
- salesAmountGross: { type: "money", columnKey: "grossSales" },
549
- discountsAmount: { type: "money", columnKey: "discountAmount" },
550
- inclusiveTaxesAmount: { type: "money", columnKey: "inclusiveTax" },
551
- salesAmountNet: { type: "money", columnKey: "netSales" },
552
- salesMixPct: { type: "percent", columnKey: "salesMixByPct" },
553
- avgPrice: {
554
- type: "fixedNumber",
555
- columnKey: "averageGrossPrice",
556
- footerCalculation: {
557
- type: "average",
558
- numeratorField: "salesAmountGross",
559
- denominatorField: "itemsQuantity"
560
- }
561
- },
562
- ticketsCount: { type: "number", columnKey: "tickets" },
563
- guestsCount: { type: "number", columnKey: "guests" },
564
- ticketAverage: {
565
- type: "money",
566
- columnKey: "ticketAverage",
567
- footerCalculation: {
568
- type: "average",
569
- numeratorField: "salesAmountNet",
570
- denominatorField: "ticketsCount"
571
- }
572
- },
573
- guestAverage: {
574
- type: "money",
575
- columnKey: "guestAverage",
576
- footerCalculation: {
577
- type: "average",
578
- numeratorField: "salesAmountNet",
579
- denominatorField: "guestsCount"
580
- }
581
- },
582
- ticketAvg: {
583
- type: "money",
584
- columnKey: "ticketAverage",
585
- footerCalculation: {
586
- type: "average",
587
- numeratorField: "salesAmountNet",
588
- denominatorField: "ticketsCount"
589
- }
590
- },
591
- guestAvg: {
592
- type: "money",
593
- columnKey: "guestAverage",
594
- footerCalculation: {
595
- type: "average",
596
- numeratorField: "salesAmountNet",
597
- denominatorField: "guestsCount"
598
- }
599
- }
600
- };
601
- var DAILY_SALES_AVAILABLE_COLUMNS = [
602
- "itemsQuantity",
603
- "salesAmountGross",
604
- "discountsAmount",
605
- "inclusiveTaxesAmount",
606
- "salesAmountNet",
607
- "salesMixPct"
608
- ];
609
- var DAILY_SALES_BY_GROUP_AVAILABLE_COLUMNS = [
610
- "ticketsCount",
611
- "guestsCount",
612
- "ticketAverage",
613
- "guestAverage",
614
- "salesAmountNet"
615
- ];
616
- var dailySalesConfig = {
617
- fields: FIELDS7,
618
- availableColumns: DAILY_SALES_AVAILABLE_COLUMNS,
619
- defaultVisibleColumns: DAILY_SALES_AVAILABLE_COLUMNS,
620
- hasFooter: true
621
- };
622
- var DAILY_SALES_TRENDS_AVAILABLE_COLUMNS = [
623
- "ticketsCount",
624
- "guestsCount",
625
- "ticketAvg",
626
- "guestAvg",
627
- "salesAmountNet"
628
- ];
629
- var dailySalesTrendsConfig = {
630
- fields: FIELDS7,
631
- availableColumns: DAILY_SALES_TRENDS_AVAILABLE_COLUMNS,
632
- defaultVisibleColumns: DAILY_SALES_TRENDS_AVAILABLE_COLUMNS,
633
- hasFooter: true
634
- };
635
-
636
- // src/reports/dailySalesPayments.ts
637
- var FIRST_COLUMN_WIDTH5 = 240;
638
- var FIELDS8 = {
639
- paymentTypeName: { type: "string", size: FIRST_COLUMN_WIDTH5 },
640
- paymentsCount: { type: "number", columnKey: "paymentsCount", footerCalculation: { type: "sum" } },
641
- paymentsAmount: { type: "money", columnKey: "paymentsAmount", footerCalculation: { type: "sum" } },
642
- tipsAmount: { type: "money", columnKey: "tips", footerCalculation: { type: "sum" } },
643
- totalSales: { type: "money", columnKey: "paymentsTotal", footerCalculation: { type: "sum" } }
644
- };
645
- var DAILY_SALES_PAYMENTS_AVAILABLE_COLUMNS = [
646
- "paymentsCount",
647
- "paymentsAmount",
648
- "tipsAmount",
649
- "totalSales"
650
- ];
651
- var dailySalesPaymentsConfig = {
652
- fields: FIELDS8,
653
- availableColumns: DAILY_SALES_PAYMENTS_AVAILABLE_COLUMNS,
654
- defaultVisibleColumns: DAILY_SALES_PAYMENTS_AVAILABLE_COLUMNS,
655
- hasFooter: true
656
- };
657
-
658
- // src/reports/dailySalesDiscounts.ts
659
- var FIRST_COLUMN_WIDTH6 = 240;
660
- var FIELDS9 = {
661
- discountName: { type: "string", columnKey: "discountName", size: FIRST_COLUMN_WIDTH6 },
662
- ticketCount: { type: "number", columnKey: "ticketCount", footerCalculation: { type: "sum" } },
663
- itemCount: { type: "number", columnKey: "itemCount", footerCalculation: { type: "sum" } },
664
- discountsAmount: { type: "money", columnKey: "discountAmount", footerCalculation: { type: "sum" } }
665
- };
666
- var DAILY_SALES_DISCOUNTS_AVAILABLE_COLUMNS = [
667
- "ticketCount",
668
- "itemCount",
669
- "discountsAmount"
670
- ];
671
- var dailySalesDiscountsConfig = {
672
- fields: FIELDS9,
673
- availableColumns: DAILY_SALES_DISCOUNTS_AVAILABLE_COLUMNS,
674
- defaultVisibleColumns: DAILY_SALES_DISCOUNTS_AVAILABLE_COLUMNS,
675
- hasFooter: true
676
- };
677
-
678
565
  // src/reports/employeeTimecard.ts
679
- var FIRST_COLUMN_WIDTH7 = 240;
680
566
  var EMPLOYEE_NAME_WIDTH = 220;
681
567
  var STATUS_WIDTH = 140;
682
568
  var LOOKUP_WIDTH = 160;
683
569
  var PAYROLL_WIDTH = 160;
684
570
  var JOB_WIDTH = 200;
685
- var FIELDS10 = {
571
+ var FIELDS8 = {
686
572
  locationId: {
687
573
  type: "number",
688
574
  enableSorting: false,
@@ -690,7 +576,7 @@ var FIELDS10 = {
690
576
  },
691
577
  locationName: {
692
578
  type: "string",
693
- size: FIRST_COLUMN_WIDTH7,
579
+ size: FIRST_COLUMN_WIDTH,
694
580
  columnKey: "locationName"
695
581
  },
696
582
  businessDate: {
@@ -756,60 +642,103 @@ var EMPLOYEE_TIMECARD_AVAILABLE_COLUMNS = [
756
642
  "shiftHours"
757
643
  ];
758
644
  var employeeTimecardConfig = {
759
- fields: FIELDS10,
645
+ fields: FIELDS8,
760
646
  availableColumns: EMPLOYEE_TIMECARD_AVAILABLE_COLUMNS,
761
647
  defaultVisibleColumns: EMPLOYEE_TIMECARD_AVAILABLE_COLUMNS,
762
- columnGroups: [],
763
- // No column groups for this report
764
648
  hasFooter: true
765
649
  };
766
650
 
767
- // src/reports/salesByItemDetail.ts
768
- var FIELDS11 = {
769
- businessDate: { type: "date", columnKey: "date", filteringAvailable: false },
770
- ticketClosedAt: { type: "string", columnKey: "ticketClosed", filteringAvailable: false },
771
- hourId: { type: "number", columnKey: "hour", filteringAvailable: false },
772
- daypartName: { type: "string", columnKey: "daypart", filteringAvailable: false },
773
- locationId: { type: "number", columnKey: "locationId", filteringAvailable: false },
774
- locationName: { type: "string", columnKey: "locationName", filteringAvailable: false },
775
- departmentName: { type: "string", columnKey: "department", filteringAvailable: false },
776
- itemName: { type: "string", columnKey: "itemName", filteringAvailable: false },
777
- revenueCenterName: { type: "string", columnKey: "revenueCenter", filteringAvailable: false },
778
- revenueClassName: { type: "string", columnKey: "revenueClass", filteringAvailable: false },
779
- 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 },
780
655
  itemsQuantity: { type: "number", columnKey: "quantity" },
781
- transactionId: { type: "string", columnKey: "ticketNumber", filteringAvailable: false },
782
- guestsCount: { type: "number", columnKey: "guestCount" },
783
- employeeName: { type: "string", columnKey: "employeeName", filteringAvailable: false },
784
- orderTypeName: { type: "string", columnKey: "orderType", filteringAvailable: false },
785
- salesType: { type: "string", columnKey: "salePaymentType", filteringAvailable: false },
786
- 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" }
787
661
  };
788
- var SALES_BY_ITEM_DETAIL_AVAILABLE_COLUMNS = [
789
- "businessDate",
790
- "ticketClosedAt",
791
- "hourId",
792
- "daypartName",
793
- "locationId",
794
- "locationName",
795
- "departmentName",
796
- "itemName",
797
- "revenueCenterName",
798
- "revenueClassName",
662
+ var DAILY_SALES_AVAILABLE_COLUMNS = [
663
+ "itemsQuantity",
799
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 = [
800
690
  "itemsQuantity",
801
- "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",
802
732
  "guestsCount",
803
- "employeeName",
804
- "orderTypeName",
805
- "salesType",
806
- "itemPrice"
733
+ "ticketAvg",
734
+ "guestAvg",
735
+ "salesAmountNet"
807
736
  ];
808
- var salesByItemDetailConfig = {
737
+ var dailySalesTrendsConfig = {
809
738
  fields: FIELDS11,
810
- availableColumns: SALES_BY_ITEM_DETAIL_AVAILABLE_COLUMNS,
811
- defaultVisibleColumns: SALES_BY_ITEM_DETAIL_AVAILABLE_COLUMNS,
812
- hasFooter: false
739
+ availableColumns: DAILY_SALES_TRENDS_AVAILABLE_COLUMNS,
740
+ defaultVisibleColumns: DAILY_SALES_TRENDS_AVAILABLE_COLUMNS,
741
+ hasFooter: true
813
742
  };
814
743
 
815
744
  // src/report.ts
@@ -824,7 +753,8 @@ var Report = {
824
753
  EMPLOYEE_TIP: "employee-tip",
825
754
  SALES_BY_ITEM: "sales-by-item",
826
755
  DAILY_SALES: "daily-sales",
827
- DAILY_SALES_LIVE: "daily-sales-live"
756
+ DAILY_SALES_LIVE: "daily-sales-live",
757
+ DAILY_SALES_TRENDS: "daily-sales-trends"
828
758
  };
829
759
  var REPORT_CONFIG_MAP = {
830
760
  "sales-summary": salesSummaryConfig,
@@ -837,7 +767,8 @@ var REPORT_CONFIG_MAP = {
837
767
  "employee-tip": null,
838
768
  "sales-by-item": salesByItemDetailConfig,
839
769
  "daily-sales": dailySalesConfig,
840
- "daily-sales-live": null
770
+ "daily-sales-live": dailySalesLiveConfig,
771
+ "daily-sales-trends": dailySalesTrendsConfig
841
772
  };
842
773
  var getReportConfig = (reportType) => REPORT_CONFIG_MAP[reportType];
843
774
 
@@ -1565,41 +1496,71 @@ var calculateReportTotals = (data, fieldConfig, opts) => {
1565
1496
  return result;
1566
1497
  };
1567
1498
 
1568
- // src/reports/dailySalesRefundsVoids.ts
1569
- var FIRST_COLUMN_WIDTH8 = 240;
1499
+ // src/reports/dailySalesPayments.ts
1570
1500
  var FIELDS12 = {
1571
- 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 },
1572
1542
  count: { type: "number", columnKey: "refundVoidCount", footerCalculation: { type: "sum" } },
1573
1543
  amount: { type: "money", columnKey: "refundVoidAmount", footerCalculation: { type: "sum" } },
1574
1544
  pctSales: { type: "percent", columnKey: "refundVoidPctSales", footerCalculation: { type: "sum" } }
1575
1545
  };
1576
- var DAILY_SALES_REFUNDS_VOIDS_AVAILABLE_COLUMNS = [
1577
- "count",
1578
- "amount",
1579
- "pctSales"
1580
- ];
1546
+ var DAILY_SALES_REFUNDS_VOIDS_AVAILABLE_COLUMNS = ["count", "amount", "pctSales"];
1581
1547
  var dailySalesRefundsVoidsConfig = {
1582
- fields: FIELDS12,
1548
+ fields: FIELDS14,
1583
1549
  availableColumns: DAILY_SALES_REFUNDS_VOIDS_AVAILABLE_COLUMNS,
1584
1550
  defaultVisibleColumns: DAILY_SALES_REFUNDS_VOIDS_AVAILABLE_COLUMNS,
1585
1551
  hasFooter: true
1586
1552
  };
1587
1553
 
1588
1554
  // src/reports/dailySalesTaxes.ts
1589
- var FIRST_COLUMN_WIDTH9 = 240;
1590
- var FIELDS13 = {
1591
- taxName: { type: "string", columnKey: "taxName", size: FIRST_COLUMN_WIDTH9 },
1555
+ var FIELDS15 = {
1556
+ taxName: { type: "string", columnKey: "taxName", size: FIRST_COLUMN_WIDTH },
1592
1557
  taxableSales: { type: "money", columnKey: "taxableSales", footerCalculation: { type: "sum" } },
1593
1558
  taxesAmount: { type: "money", columnKey: "taxCollected", footerCalculation: { type: "sum" } },
1594
1559
  exemptSales: { type: "money", columnKey: "exemptTaxes", footerCalculation: { type: "sum" } }
1595
1560
  };
1596
- var DAILY_SALES_TAXES_AVAILABLE_COLUMNS = [
1597
- "taxableSales",
1598
- "taxesAmount",
1599
- "exemptSales"
1600
- ];
1561
+ var DAILY_SALES_TAXES_AVAILABLE_COLUMNS = ["taxableSales", "taxesAmount", "exemptSales"];
1601
1562
  var dailySalesTaxesConfig = {
1602
- fields: FIELDS13,
1563
+ fields: FIELDS15,
1603
1564
  availableColumns: DAILY_SALES_TAXES_AVAILABLE_COLUMNS,
1604
1565
  defaultVisibleColumns: DAILY_SALES_TAXES_AVAILABLE_COLUMNS,
1605
1566
  hasFooter: true
@@ -1746,28 +1707,12 @@ var formatFieldValue = (value, type, localeOptions, fullRecord, fieldConfig = DE
1746
1707
  // Annotate the CommonJS export names for ESM import in node:
1747
1708
  0 && (module.exports = {
1748
1709
  COLUMN_REGISTRY,
1749
- DAILY_SALES_AVAILABLE_COLUMNS,
1750
- DAILY_SALES_BY_GROUP_AVAILABLE_COLUMNS,
1751
- DAILY_SALES_DISCOUNTS_AVAILABLE_COLUMNS,
1752
- DAILY_SALES_PAYMENTS_AVAILABLE_COLUMNS,
1753
- DAILY_SALES_REFUNDS_VOIDS_AVAILABLE_COLUMNS,
1754
- DAILY_SALES_TAXES_AVAILABLE_COLUMNS,
1755
- DAILY_SALES_TRENDS_AVAILABLE_COLUMNS,
1756
- EMPLOYEE_TIMECARD_AVAILABLE_COLUMNS,
1757
- ITEM_TAX_AVAILABLE_COLUMNS,
1758
- MODIFIER_MIX_AVAILABLE_COLUMNS,
1759
- PRODUCT_MIX_AVAILABLE_COLUMNS,
1760
- PRODUCT_MIX_CHART_FIELDS,
1761
- PRODUCT_MIX_DEFAULT_VISIBLE_COLUMNS,
1762
1710
  Report,
1763
- SALES_BY_ITEM_DETAIL_AVAILABLE_COLUMNS,
1764
- SALES_SUMMARY_AVAILABLE_COLUMNS,
1765
- TICKET_LIVE_AVAILABLE_COLUMNS,
1766
- TICKET_SUMMARY_AVAILABLE_COLUMNS,
1767
1711
  calculateFieldTotal,
1768
1712
  calculateReportTotals,
1769
1713
  dailySalesConfig,
1770
1714
  dailySalesDiscountsConfig,
1715
+ dailySalesLiveConfig,
1771
1716
  dailySalesPaymentsConfig,
1772
1717
  dailySalesRefundsVoidsConfig,
1773
1718
  dailySalesTaxesConfig,