@harbortouch/skytab-analytics-report-utils 0.27.0 → 0.29.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.
@@ -2,14 +2,15 @@
2
2
  import PDFDocument from "pdfkit";
3
3
 
4
4
  // src/exporters/pdf/pdf.utils.ts
5
- var stripEmojis = (text) => {
6
- if (!text) {
7
- return text;
5
+ var sanitizePdfText = (text) => {
6
+ if (!text?.trim()) {
7
+ return "";
8
8
  }
9
- return text.replace(
9
+ const leadingSpaces = /^ */.exec(text)?.[0] ?? "";
10
+ return leadingSpaces + text.trimStart().replace(/€/g, "EUR ").replace(
10
11
  /[\u{1F300}-\u{1F9FF}]|[\u{2600}-\u{26FF}]|[\u{2700}-\u{27BF}]|[\u{1F1E0}-\u{1F1FF}]|[\u{1F600}-\u{1F64F}]|[\u{1F680}-\u{1F6FF}]|[\u{1F900}-\u{1F9FF}]|[\u{1FA00}-\u{1FA6F}]|[\u{1FA70}-\u{1FAFF}]|[\u{FE00}-\u{FE0F}]|[\u{1F004}]|[\u{1F0CF}]|[\u{1F18E}]|[\u{1F191}-\u{1F19A}]|[\u{1F1E6}-\u{1F1FF}]|[\u{1F201}-\u{1F251}]/gu,
11
12
  ""
12
- ).replace(/\s+/g, " ").trim();
13
+ ).replace(/[\x00-\x1F\x7F]/g, " ").replace(/[^ -ÿ]/g, "").replace(/\s+/g, " ").trim();
13
14
  };
14
15
 
15
16
  // src/exporters/pdf/index.ts
@@ -33,6 +34,9 @@ var PdfExporter = class {
33
34
  doc.addPage();
34
35
  }
35
36
  let currentY = doc.y;
37
+ if (sanitizedSections.title) {
38
+ currentY = this.drawSectionTitle(doc, sanitizedSections.title);
39
+ }
36
40
  if (sanitizedSections.filters && sanitizedSections.filters.length > 0) {
37
41
  currentY = this.drawFilters(doc, sanitizedSections.filters);
38
42
  }
@@ -47,23 +51,23 @@ var PdfExporter = class {
47
51
  });
48
52
  }
49
53
  sanitizeSections(sections) {
50
- const sanitized = {};
54
+ const sanitized = { title: sanitizePdfText(sections.title) };
51
55
  if (sections.filters) {
52
56
  sanitized.filters = sections.filters.map((filter) => ({
53
- label: stripEmojis(filter.label),
54
- value: stripEmojis(filter.value)
57
+ label: sanitizePdfText(filter.label),
58
+ value: sanitizePdfText(filter.value)
55
59
  }));
56
60
  }
57
61
  if (sections.table) {
58
62
  sanitized.table = {
59
63
  columns: sections.table.columns.map((col) => ({
60
64
  ...col,
61
- header: stripEmojis(col.header)
65
+ header: sanitizePdfText(col.header)
62
66
  })),
63
67
  rows: sections.table.rows.map((row) => {
64
68
  const sanitizedRow = {};
65
69
  for (const [key, value] of Object.entries(row)) {
66
- sanitizedRow[key] = typeof value === "string" ? stripEmojis(value) : value;
70
+ sanitizedRow[key] = typeof value === "string" ? sanitizePdfText(value) : value;
67
71
  }
68
72
  return sanitizedRow;
69
73
  })
@@ -71,6 +75,11 @@ var PdfExporter = class {
71
75
  }
72
76
  return sanitized;
73
77
  }
78
+ drawSectionTitle(doc, title) {
79
+ doc.fillColor(COLOR_BLACK).font(FONT_BOLD).fontSize(13).text(title, { align: "left" });
80
+ doc.moveDown(0.5);
81
+ return doc.y;
82
+ }
74
83
  drawFilters(doc, filters) {
75
84
  doc.fillColor(COLOR_BLACK).font(FONT_BOLD).fontSize(11).text("Applied Filters", { align: "left" });
76
85
  doc.moveDown(0.5);
@@ -89,26 +98,33 @@ var PdfExporter = class {
89
98
  const columnCount = columns.length;
90
99
  const headerFontSize = columnCount > 13 ? 8 : columnCount > 10 ? 9 : columnCount > 7 ? 10 : 11;
91
100
  const dataFontSize = columnCount > 13 ? 7 : columnCount > 10 ? 8 : columnCount > 7 ? 9 : 10;
101
+ const headerWidthSlack = 2;
102
+ const headerMinWidths = /* @__PURE__ */ new Map();
92
103
  columns.forEach((col) => {
93
104
  doc.font(FONT_BOLD).fontSize(headerFontSize);
94
- let maxWidth = doc.widthOfString(col.header);
105
+ const headerTextWidth = doc.widthOfString(col.header);
106
+ const headerMinWidth = Math.max(...col.header.split(" ").map((w) => doc.widthOfString(w)));
95
107
  doc.font(FONT_REGULAR).fontSize(dataFontSize);
108
+ let maxDataWidth = 0;
96
109
  rows.forEach((row) => {
97
110
  const rv = row[col.key];
98
111
  const cellValue = typeof rv === "string" || typeof rv === "number" || typeof rv === "boolean" ? String(rv) : "";
99
112
  const textWidth = doc.widthOfString(cellValue);
100
- if (textWidth > maxWidth) {
101
- maxWidth = textWidth;
113
+ if (textWidth > maxDataWidth) {
114
+ maxDataWidth = textWidth;
102
115
  }
103
116
  });
104
- col.width = Math.max(maxWidth + baseCellPadding * 2, minColumnWidth);
117
+ const contentWidth = Math.max(headerTextWidth, maxDataWidth);
118
+ col.width = Math.max(contentWidth + baseCellPadding * 2 + headerWidthSlack, minColumnWidth);
119
+ headerMinWidths.set(col, headerMinWidth + baseCellPadding * 2 + headerWidthSlack);
105
120
  });
106
121
  const usableWidth = doc.page.width - doc.page.margins.left - doc.page.margins.right;
107
122
  const totalColumnWidth = columns.reduce((sum, c) => sum + (c.width ?? minColumnWidth), 0);
108
123
  if (totalColumnWidth > usableWidth) {
109
124
  const scale = usableWidth / totalColumnWidth;
110
125
  columns.forEach((c) => {
111
- c.width = Math.max(Math.floor((c.width ?? minColumnWidth) * scale), minColumnWidth);
126
+ const headerMin = headerMinWidths.get(c) ?? minColumnWidth;
127
+ c.width = Math.max(Math.floor((c.width ?? minColumnWidth) * scale), headerMin, minColumnWidth);
112
128
  });
113
129
  }
114
130
  const tableWidth = columns.reduce((sum, c) => sum + (c.width ?? minColumnWidth), 0);
package/dist/index.cjs CHANGED
@@ -36,7 +36,7 @@ __export(index_exports, {
36
36
  dailySalesPaymentsConfig: () => dailySalesPaymentsConfig,
37
37
  dailySalesRefundsVoidsConfig: () => dailySalesRefundsVoidsConfig,
38
38
  dailySalesTaxesConfig: () => dailySalesTaxesConfig,
39
- dailySalesTrendsConfig: () => dailySalesTrendsConfig,
39
+ dailySalesTrendsDayPartConfig: () => dailySalesTrendsDayPartConfig,
40
40
  dailySalesTrendsOrderTypeConfig: () => dailySalesTrendsOrderTypeConfig,
41
41
  employeeTimecardConfig: () => employeeTimecardConfig,
42
42
  employeeTipConfig: () => employeeTipConfig,
@@ -66,7 +66,8 @@ __export(index_exports, {
66
66
  salesByItemDetailConfig: () => salesByItemDetailConfig,
67
67
  salesSummaryConfig: () => salesSummaryConfig,
68
68
  ticketLiveConfig: () => ticketLiveConfig,
69
- ticketSummaryConfig: () => ticketSummaryConfig
69
+ ticketSummaryConfig: () => ticketSummaryConfig,
70
+ tipCashoutReconciliationConfig: () => tipCashoutReconciliationConfig
70
71
  });
71
72
  module.exports = __toCommonJS(index_exports);
72
73
 
@@ -753,10 +754,56 @@ var employeeTipConfig = {
753
754
  hasFooter: true
754
755
  };
755
756
 
756
- // src/reports/dailySales/dailySales.ts
757
+ // src/reports/tipCashoutReconciliation.ts
757
758
  var FIELDS10 = {
758
759
  groupById: { type: "string" },
759
- groupByName: { type: "string", size: FIRST_COLUMN_WIDTH, footerCalculation: { type: "label", label: "table.total" } },
760
+ groupByName: {
761
+ type: "string",
762
+ size: FIRST_COLUMN_WIDTH,
763
+ footerCalculation: { type: "label", label: "table.total" }
764
+ },
765
+ locationName: { type: "string", size: 220, columnKey: "locationName" },
766
+ employeeName: { type: "string", size: 220, columnKey: "employeeName" },
767
+ empId: { type: "string", size: 160, columnKey: "employeeId" },
768
+ payrollId: { type: "string", size: 160, columnKey: "payrollId" },
769
+ netSales: { type: "money", columnKey: "netSales", footerCalculation: { type: "sum" } },
770
+ cashCollected: { type: "money", columnKey: "cashCollected", footerCalculation: { type: "sum" } },
771
+ grossTips: { type: "money", columnKey: "grossTips", footerCalculation: { type: "sum" } },
772
+ autoGratuity: { type: "money", columnKey: "autoGratuity", footerCalculation: { type: "sum" } },
773
+ tipReduction: { type: "money", columnKey: "tipReduction", footerCalculation: { type: "sum" } },
774
+ tipShareContributed: { type: "money", columnKey: "tipShareContributed", footerCalculation: { type: "sum" } },
775
+ declaredTips: { type: "money", columnKey: "declaredTips", footerCalculation: { type: "sum" } }
776
+ };
777
+ var VISIBLE_COLUMNS2 = [
778
+ "groupByName",
779
+ "locationName",
780
+ "employeeName",
781
+ "payrollId",
782
+ "netSales",
783
+ "cashCollected",
784
+ "grossTips",
785
+ "autoGratuity",
786
+ "tipReduction",
787
+ "tipShareContributed",
788
+ "declaredTips"
789
+ ];
790
+ var AVAILABLE_COLUMNS2 = ["groupById", "empId", ...VISIBLE_COLUMNS2];
791
+ var tipCashoutReconciliationConfig = {
792
+ fields: FIELDS10,
793
+ availableColumns: AVAILABLE_COLUMNS2,
794
+ defaultVisibleColumns: VISIBLE_COLUMNS2,
795
+ hasFooter: true
796
+ };
797
+
798
+ // src/reports/dailySales/dailySales.ts
799
+ var FIELDS11 = {
800
+ groupById: { type: "string" },
801
+ groupByName: {
802
+ type: "string",
803
+ size: FIRST_COLUMN_WIDTH,
804
+ columnKey: "revenueClass",
805
+ footerCalculation: { type: "label", label: "table.total" }
806
+ },
760
807
  itemsQuantity: { type: "number", columnKey: "quantity" },
761
808
  salesAmountGross: { type: "money", columnKey: "grossSales" },
762
809
  discountsAmount: { type: "money", columnKey: "discountAmount" },
@@ -774,7 +821,7 @@ var DAILY_SALES_AVAILABLE_COLUMNS = [
774
821
  "salesMixPct"
775
822
  ];
776
823
  var dailySalesConfig = {
777
- fields: FIELDS10,
824
+ fields: FIELDS11,
778
825
  availableColumns: DAILY_SALES_AVAILABLE_COLUMNS,
779
826
  defaultVisibleColumns: DAILY_SALES_AVAILABLE_COLUMNS,
780
827
  hasFooter: true,
@@ -784,7 +831,7 @@ var dailySalesConfig = {
784
831
  };
785
832
 
786
833
  // src/reports/dailySales/dailySalesCache.ts
787
- var FIELDS11 = {
834
+ var FIELDS12 = {
788
835
  name: {
789
836
  type: "string",
790
837
  columnKey: "type",
@@ -794,7 +841,7 @@ var FIELDS11 = {
794
841
  amount: { type: "money", columnKey: "paymentsAmount", footerCalculation: { type: "sum" } }
795
842
  };
796
843
  var dailySalesCacheConfig = {
797
- fields: FIELDS11,
844
+ fields: FIELDS12,
798
845
  availableColumns: ["name", "amount"],
799
846
  defaultVisibleColumns: ["name", "amount"],
800
847
  hasFooter: true,
@@ -803,7 +850,7 @@ var dailySalesCacheConfig = {
803
850
  };
804
851
 
805
852
  // src/reports/dailySales/dailySalesDiscounts.ts
806
- var FIELDS12 = {
853
+ var FIELDS13 = {
807
854
  discountName: {
808
855
  type: "string",
809
856
  columnKey: "discountName",
@@ -821,7 +868,7 @@ var DAILY_SALES_DISCOUNTS_AVAILABLE_COLUMNS = [
821
868
  "discountsAmount"
822
869
  ];
823
870
  var dailySalesDiscountsConfig = {
824
- fields: FIELDS12,
871
+ fields: FIELDS13,
825
872
  availableColumns: DAILY_SALES_DISCOUNTS_AVAILABLE_COLUMNS,
826
873
  defaultVisibleColumns: DAILY_SALES_DISCOUNTS_AVAILABLE_COLUMNS,
827
874
  hasFooter: true,
@@ -830,7 +877,7 @@ var dailySalesDiscountsConfig = {
830
877
  };
831
878
 
832
879
  // src/reports/dailySales/dailySalesPayments.ts
833
- var FIELDS13 = {
880
+ var FIELDS14 = {
834
881
  paymentTypeName: {
835
882
  type: "string",
836
883
  size: FIRST_COLUMN_WIDTH,
@@ -850,7 +897,7 @@ var DAILY_SALES_PAYMENTS_AVAILABLE_COLUMNS = [
850
897
  "totalSales"
851
898
  ];
852
899
  var dailySalesPaymentsConfig = {
853
- fields: FIELDS13,
900
+ fields: FIELDS14,
854
901
  availableColumns: DAILY_SALES_PAYMENTS_AVAILABLE_COLUMNS,
855
902
  defaultVisibleColumns: DAILY_SALES_PAYMENTS_AVAILABLE_COLUMNS,
856
903
  hasFooter: true,
@@ -859,7 +906,7 @@ var dailySalesPaymentsConfig = {
859
906
  };
860
907
 
861
908
  // src/reports/dailySales/dailySalesRefundsVoids.ts
862
- var FIELDS14 = {
909
+ var FIELDS15 = {
863
910
  description: {
864
911
  type: "string",
865
912
  columnKey: "refundVoidDescription",
@@ -877,7 +924,7 @@ var DAILY_SALES_REFUNDS_VOIDS_AVAILABLE_COLUMNS = [
877
924
  "pctSales"
878
925
  ];
879
926
  var dailySalesRefundsVoidsConfig = {
880
- fields: FIELDS14,
927
+ fields: FIELDS15,
881
928
  availableColumns: DAILY_SALES_REFUNDS_VOIDS_AVAILABLE_COLUMNS,
882
929
  defaultVisibleColumns: DAILY_SALES_REFUNDS_VOIDS_AVAILABLE_COLUMNS,
883
930
  hasFooter: true,
@@ -886,7 +933,7 @@ var dailySalesRefundsVoidsConfig = {
886
933
  };
887
934
 
888
935
  // src/reports/dailySales/dailySalesTaxes.ts
889
- var FIELDS15 = {
936
+ var FIELDS16 = {
890
937
  taxName: {
891
938
  type: "string",
892
939
  columnKey: "taxName",
@@ -904,7 +951,7 @@ var DAILY_SALES_TAXES_AVAILABLE_COLUMNS = [
904
951
  "exemptSales"
905
952
  ];
906
953
  var dailySalesTaxesConfig = {
907
- fields: FIELDS15,
954
+ fields: FIELDS16,
908
955
  availableColumns: DAILY_SALES_TAXES_AVAILABLE_COLUMNS,
909
956
  defaultVisibleColumns: DAILY_SALES_TAXES_AVAILABLE_COLUMNS,
910
957
  hasFooter: true,
@@ -912,11 +959,12 @@ var dailySalesTaxesConfig = {
912
959
  sectionName: "common.report-section.taxes"
913
960
  };
914
961
 
915
- // src/reports/dailySales/dailySalesTrends.ts
916
- var FIELDS16 = {
962
+ // src/reports/dailySales/dailySalesTrendsDayPart.ts
963
+ var FIELDS17 = {
917
964
  groupById: { type: "string" },
918
965
  groupByName: {
919
966
  type: "string",
967
+ columnKey: "daypart",
920
968
  size: FIRST_COLUMN_WIDTH,
921
969
  footerCalculation: { type: "label", label: "common.report-section.trends-footer.total-sales" }
922
970
  },
@@ -950,8 +998,8 @@ var DAILY_SALES_TRENDS_AVAILABLE_COLUMNS = [
950
998
  "guestAvg",
951
999
  "salesAmountNet"
952
1000
  ];
953
- var dailySalesTrendsConfig = {
954
- fields: FIELDS16,
1001
+ var dailySalesTrendsDayPartConfig = {
1002
+ fields: FIELDS17,
955
1003
  availableColumns: DAILY_SALES_TRENDS_AVAILABLE_COLUMNS,
956
1004
  defaultVisibleColumns: DAILY_SALES_TRENDS_AVAILABLE_COLUMNS,
957
1005
  hasFooter: true,
@@ -959,10 +1007,50 @@ var dailySalesTrendsConfig = {
959
1007
  sectionName: "common.report-section.sales-by-day-part",
960
1008
  extraFooterFields: ["salesAmountNet"]
961
1009
  };
1010
+
1011
+ // src/reports/dailySales/dailySalesTrendsOrderType.ts
1012
+ var FIELDS18 = {
1013
+ groupById: { type: "string" },
1014
+ groupByName: {
1015
+ columnKey: "orderType",
1016
+ type: "string",
1017
+ size: FIRST_COLUMN_WIDTH,
1018
+ footerCalculation: { type: "label", label: "common.report-section.trends-footer.total-sales" }
1019
+ },
1020
+ salesAmountNet: { type: "money", columnKey: "netSales" },
1021
+ ticketsCount: { type: "number", columnKey: "tickets" },
1022
+ guestsCount: { type: "number", columnKey: "guests" },
1023
+ ticketAvg: {
1024
+ type: "money",
1025
+ columnKey: "ticketAverage",
1026
+ footerCalculation: {
1027
+ type: "average",
1028
+ numeratorField: "salesAmountNet",
1029
+ denominatorField: "ticketsCount"
1030
+ }
1031
+ },
1032
+ guestAvg: {
1033
+ type: "money",
1034
+ columnKey: "guestAverage",
1035
+ footerCalculation: {
1036
+ type: "average",
1037
+ numeratorField: "salesAmountNet",
1038
+ denominatorField: "guestsCount"
1039
+ }
1040
+ }
1041
+ };
1042
+ var DAILY_SALES_TRENDS_AVAILABLE_COLUMNS2 = [
1043
+ "groupByName",
1044
+ "ticketsCount",
1045
+ "guestsCount",
1046
+ "ticketAvg",
1047
+ "guestAvg",
1048
+ "salesAmountNet"
1049
+ ];
962
1050
  var dailySalesTrendsOrderTypeConfig = {
963
- fields: FIELDS16,
964
- availableColumns: DAILY_SALES_TRENDS_AVAILABLE_COLUMNS,
965
- defaultVisibleColumns: DAILY_SALES_TRENDS_AVAILABLE_COLUMNS,
1051
+ fields: FIELDS18,
1052
+ availableColumns: DAILY_SALES_TRENDS_AVAILABLE_COLUMNS2,
1053
+ defaultVisibleColumns: DAILY_SALES_TRENDS_AVAILABLE_COLUMNS2,
966
1054
  hasFooter: true,
967
1055
  dataAccessKey: "trendsByOrderType",
968
1056
  sectionName: "common.report-section.sales-by-order-type",
@@ -979,6 +1067,7 @@ var Report = {
979
1067
  ITEM_TAX: "item-tax",
980
1068
  EMPLOYEE_TIMECARD: "employee-timecard",
981
1069
  EMPLOYEE_TIP: "employee-tip",
1070
+ TIP_CASHOUT_RECONCILIATION: "tip-cashout-reconciliation",
982
1071
  SALES_BY_ITEM: "sales-by-item",
983
1072
  DAILY_SALES: "daily-sales",
984
1073
  DAILY_SALES_LIVE: "daily-sales-live"
@@ -990,7 +1079,7 @@ var DAILY_SALES_SECTION_CONFIGS = [
990
1079
  dailySalesTaxesConfig,
991
1080
  dailySalesRefundsVoidsConfig,
992
1081
  dailySalesDiscountsConfig,
993
- dailySalesTrendsConfig,
1082
+ dailySalesTrendsDayPartConfig,
994
1083
  dailySalesTrendsOrderTypeConfig
995
1084
  ];
996
1085
  var REPORT_CONFIG_MAP = {
@@ -1002,6 +1091,7 @@ var REPORT_CONFIG_MAP = {
1002
1091
  "item-tax": itemTaxConfig,
1003
1092
  "employee-timecard": employeeTimecardConfig,
1004
1093
  "employee-tip": employeeTipConfig,
1094
+ "tip-cashout-reconciliation": tipCashoutReconciliationConfig,
1005
1095
  "sales-by-item": salesByItemDetailConfig,
1006
1096
  "daily-sales": DAILY_SALES_SECTION_CONFIGS,
1007
1097
  "daily-sales-live": DAILY_SALES_SECTION_CONFIGS
@@ -1015,6 +1105,7 @@ var REPORT_DEFAULT_NAME_MAP = {
1015
1105
  "item-tax": "Sales Tax by Item",
1016
1106
  "employee-timecard": "Employee Timecard",
1017
1107
  "employee-tip": "Employee Tip",
1108
+ "tip-cashout-reconciliation": "Tip & Cashout Reconciliation",
1018
1109
  "sales-by-item": "Sales by Item",
1019
1110
  "daily-sales": "Daily Sales",
1020
1111
  "daily-sales-live": "Daily Sales Live"
@@ -1099,6 +1190,11 @@ var COLUMN_REGISTRY = {
1099
1190
  shortTitleKey: "common.report-col.batch-number.short",
1100
1191
  infoTextKey: "common.report-col.batch-number.info"
1101
1192
  },
1193
+ cashCollected: {
1194
+ titleKey: "common.report-col.cash-collected",
1195
+ shortTitleKey: "common.report-col.cash-collected.short",
1196
+ infoTextKey: "common.report-col.cash-collected.info"
1197
+ },
1102
1198
  clockInTime: {
1103
1199
  titleKey: "common.report-col.clock-in-time",
1104
1200
  shortTitleKey: "common.report-col.clock-in-time.short",
@@ -1579,6 +1675,11 @@ var COLUMN_REGISTRY = {
1579
1675
  shortTitleKey: "common.report-col.tip-share.short",
1580
1676
  infoTextKey: "common.report-col.tip-share.info"
1581
1677
  },
1678
+ tipShareContributed: {
1679
+ titleKey: "common.report-col.tip-share-contributed",
1680
+ shortTitleKey: "common.report-col.tip-share-contributed.short",
1681
+ infoTextKey: "common.report-col.tip-share-contributed.info"
1682
+ },
1582
1683
  tips: {
1583
1684
  titleKey: "common.report-col.tips",
1584
1685
  shortTitleKey: "common.report-col.tips.short",
@@ -1924,7 +2025,7 @@ var DAILY_SALES_SECTIONS = [
1924
2025
  },
1925
2026
  {
1926
2027
  sectionLabel: "common.report-section.sales-by-day-part",
1927
- config: dailySalesTrendsConfig,
2028
+ config: dailySalesTrendsDayPartConfig,
1928
2029
  columns: [
1929
2030
  { fieldKey: "groupByName", columnKey: "daypart" },
1930
2031
  { fieldKey: "ticketsCount", columnKey: "tickets" },
@@ -2058,6 +2159,9 @@ var enUS = {
2058
2159
  "common.report-col.batch-number": false,
2059
2160
  "common.report-col.batch-number.short": false,
2060
2161
  "common.report-col.batch-number.info": false,
2162
+ "common.report-col.cash-collected": false,
2163
+ "common.report-col.cash-collected.short": false,
2164
+ "common.report-col.cash-collected.info": false,
2061
2165
  "common.report-col.clock-in-time": false,
2062
2166
  "common.report-col.clock-in-time.short": false,
2063
2167
  "common.report-col.clock-in-time.info": false,
@@ -2367,6 +2471,9 @@ var enUS = {
2367
2471
  "common.report-col.tip-share": false,
2368
2472
  "common.report-col.tip-share.short": false,
2369
2473
  "common.report-col.tip-share.info": false,
2474
+ "common.report-col.tip-share-contributed": false,
2475
+ "common.report-col.tip-share-contributed.short": false,
2476
+ "common.report-col.tip-share-contributed.info": false,
2370
2477
  "common.report-col.tips": false,
2371
2478
  "common.report-col.tips.short": false,
2372
2479
  "common.report-col.tips.info": false,
@@ -2545,6 +2652,9 @@ var enUS2 = {
2545
2652
  "common.report-col.batch-number": false,
2546
2653
  "common.report-col.batch-number.short": false,
2547
2654
  "common.report-col.batch-number.info": false,
2655
+ "common.report-col.cash-collected": false,
2656
+ "common.report-col.cash-collected.short": false,
2657
+ "common.report-col.cash-collected.info": false,
2548
2658
  "common.report-col.clock-in-time": false,
2549
2659
  "common.report-col.clock-in-time.short": false,
2550
2660
  "common.report-col.clock-in-time.info": false,
@@ -2854,6 +2964,9 @@ var enUS2 = {
2854
2964
  "common.report-col.tip-share": false,
2855
2965
  "common.report-col.tip-share.short": false,
2856
2966
  "common.report-col.tip-share.info": false,
2967
+ "common.report-col.tip-share-contributed": false,
2968
+ "common.report-col.tip-share-contributed.short": false,
2969
+ "common.report-col.tip-share-contributed.info": false,
2857
2970
  "common.report-col.tips": false,
2858
2971
  "common.report-col.tips.short": false,
2859
2972
  "common.report-col.tips.info": false,
@@ -3032,6 +3145,9 @@ var enUS3 = {
3032
3145
  "common.report-col.batch-number": "Batch Number",
3033
3146
  "common.report-col.batch-number.short": "Batch No",
3034
3147
  "common.report-col.batch-number.info": "The system-generated number used to track this batch of transactions",
3148
+ "common.report-col.cash-collected": "Cash Collected",
3149
+ "common.report-col.cash-collected.short": "Cash Collected",
3150
+ "common.report-col.cash-collected.info": "Total cash collected by the employee",
3035
3151
  "common.report-col.clock-in-time": "Clock-In Time",
3036
3152
  "common.report-col.clock-in-time.short": "In Time",
3037
3153
  "common.report-col.clock-in-time.info": "Actual time the employee clocked in",
@@ -3341,6 +3457,9 @@ var enUS3 = {
3341
3457
  "common.report-col.tip-share": "Tip Share",
3342
3458
  "common.report-col.tip-share.short": "Tip Share",
3343
3459
  "common.report-col.tip-share.info": "Tips distributed to other employees",
3460
+ "common.report-col.tip-share-contributed": "Tip Share Contributed",
3461
+ "common.report-col.tip-share-contributed.short": "Tip Share Contrib",
3462
+ "common.report-col.tip-share-contributed.info": "Tips contributed by this employee to the tip share pool",
3344
3463
  "common.report-col.tips": "Tips",
3345
3464
  "common.report-col.tips.short": "Tips",
3346
3465
  "common.report-col.tips.info": "Total tips received for the ticket",
@@ -3431,11 +3550,11 @@ var enUS3 = {
3431
3550
  "common.report-col.type": "Type",
3432
3551
  "common.report-col.type.short": "Type",
3433
3552
  "common.report-col.type.info": " ",
3434
- "common.report-section.revenue-class": "Revenue Class",
3553
+ "common.report-section.revenue-class": "Sales by Revenue Class",
3435
3554
  "common.report-section.payments": "Payments",
3436
3555
  "common.report-section.cash": "Expected Closeout Cash",
3437
3556
  "common.report-section.taxes": "Taxes",
3438
- "common.report-section.refunds-voids": "Refunds & Voids",
3557
+ "common.report-section.refunds-voids": "Refunds/Voids",
3439
3558
  "common.report-section.discounts": "Discounts",
3440
3559
  "common.report-section.sales-by-day-part": "Sales by Day Part",
3441
3560
  "common.report-section.sales-by-order-type": "Sales by Order Type",
@@ -3664,7 +3783,7 @@ var formatFieldValue = (value, type, localeOptions, fullRecord, fieldConfig = DE
3664
3783
  dailySalesPaymentsConfig,
3665
3784
  dailySalesRefundsVoidsConfig,
3666
3785
  dailySalesTaxesConfig,
3667
- dailySalesTrendsConfig,
3786
+ dailySalesTrendsDayPartConfig,
3668
3787
  dailySalesTrendsOrderTypeConfig,
3669
3788
  employeeTimecardConfig,
3670
3789
  employeeTipConfig,
@@ -3694,5 +3813,6 @@ var formatFieldValue = (value, type, localeOptions, fullRecord, fieldConfig = DE
3694
3813
  salesByItemDetailConfig,
3695
3814
  salesSummaryConfig,
3696
3815
  ticketLiveConfig,
3697
- ticketSummaryConfig
3816
+ ticketSummaryConfig,
3817
+ tipCashoutReconciliationConfig
3698
3818
  });