@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.
- package/dist/{chunk-OJQZXKA5.js → chunk-GZPEIIJK.js} +143 -24
- package/dist/exporters/excel/index.cjs +2 -2
- package/dist/exporters/excel/index.d.cts +4 -9
- package/dist/exporters/excel/index.d.ts +4 -9
- package/dist/exporters/excel/index.js +2 -2
- package/dist/exporters/exportBuilder.cjs +141 -25
- package/dist/exporters/exportBuilder.d.cts +4 -8
- package/dist/exporters/exportBuilder.d.ts +4 -8
- package/dist/exporters/exportBuilder.js +3 -3
- package/dist/exporters/pdf/index.cjs +31 -15
- package/dist/exporters/pdf/index.d.cts +4 -7
- package/dist/exporters/pdf/index.d.ts +4 -7
- package/dist/exporters/pdf/index.js +31 -15
- package/dist/index.cjs +148 -28
- package/dist/index.d.cts +14 -5
- package/dist/index.d.ts +14 -5
- package/dist/index.js +8 -6
- package/dist/{report-D_tOANVX.d.cts → report-BOV9OtaL.d.cts} +20 -3
- package/dist/{report-D_tOANVX.d.ts → report-BOV9OtaL.d.ts} +20 -3
- package/dist/{types-BzLsgnfc.d.ts → types-BPT5hjCR.d.cts} +6 -1
- package/dist/{types-BzLsgnfc.d.cts → types-BPT5hjCR.d.ts} +6 -1
- package/package.json +1 -1
|
@@ -2,14 +2,15 @@
|
|
|
2
2
|
import PDFDocument from "pdfkit";
|
|
3
3
|
|
|
4
4
|
// src/exporters/pdf/pdf.utils.ts
|
|
5
|
-
var
|
|
6
|
-
if (!text) {
|
|
7
|
-
return
|
|
5
|
+
var sanitizePdfText = (text) => {
|
|
6
|
+
if (!text?.trim()) {
|
|
7
|
+
return "";
|
|
8
8
|
}
|
|
9
|
-
|
|
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:
|
|
54
|
-
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:
|
|
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" ?
|
|
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
|
-
|
|
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 >
|
|
101
|
-
|
|
113
|
+
if (textWidth > maxDataWidth) {
|
|
114
|
+
maxDataWidth = textWidth;
|
|
102
115
|
}
|
|
103
116
|
});
|
|
104
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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/
|
|
757
|
+
// src/reports/tipCashoutReconciliation.ts
|
|
757
758
|
var FIELDS10 = {
|
|
758
759
|
groupById: { type: "string" },
|
|
759
|
-
groupByName: {
|
|
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:
|
|
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
|
|
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:
|
|
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
|
|
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:
|
|
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
|
|
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:
|
|
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
|
|
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:
|
|
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
|
|
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:
|
|
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/
|
|
916
|
-
var
|
|
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
|
|
954
|
-
fields:
|
|
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:
|
|
964
|
-
availableColumns:
|
|
965
|
-
defaultVisibleColumns:
|
|
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
|
-
|
|
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:
|
|
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
|
|
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
|
-
|
|
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
|
});
|