@harbortouch/skytab-analytics-report-utils 0.33.0 → 0.34.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.
@@ -534,1342 +534,6 @@ var itemTaxConfig = {
534
534
  hasFooter: false
535
535
  };
536
536
 
537
- // src/reports/employeeTimecard.ts
538
- var EMPLOYEE_NAME_WIDTH = 220;
539
- var STATUS_WIDTH = 140;
540
- var LOOKUP_WIDTH = 160;
541
- var PAYROLL_WIDTH = 160;
542
- var JOB_WIDTH = 200;
543
- var FIELDS8 = {
544
- locationId: {
545
- type: "number",
546
- enableSorting: false,
547
- filteringAvailable: false
548
- },
549
- locationName: {
550
- type: "string",
551
- size: FIRST_COLUMN_WIDTH,
552
- columnKey: "locationName"
553
- },
554
- businessDate: {
555
- type: "date",
556
- columnKey: "date"
557
- },
558
- employeeName: {
559
- type: "string",
560
- size: EMPLOYEE_NAME_WIDTH,
561
- columnKey: "employeeName",
562
- footerCalculation: { type: "label", label: "table.total" }
563
- },
564
- isActive: {
565
- type: "string",
566
- size: STATUS_WIDTH,
567
- columnKey: "status",
568
- enableSorting: false,
569
- filteringAvailable: false
570
- },
571
- lookup: {
572
- type: "string",
573
- size: LOOKUP_WIDTH,
574
- columnKey: "employeeId"
575
- },
576
- payrollCode: {
577
- type: "string",
578
- size: PAYROLL_WIDTH,
579
- columnKey: "payrollId"
580
- },
581
- jobName: {
582
- type: "string",
583
- size: JOB_WIDTH,
584
- columnKey: "employeeJob"
585
- },
586
- isBreak: {
587
- type: "string",
588
- enableSorting: false,
589
- filteringAvailable: false
590
- },
591
- startTime: {
592
- type: "time",
593
- columnKey: "clockInTime"
594
- },
595
- endTime: {
596
- type: "time",
597
- columnKey: "clockOutTime"
598
- },
599
- shiftHours: {
600
- type: "fixedNumber",
601
- columnKey: "shiftDurationHrs",
602
- filteringAvailable: false
603
- }
604
- };
605
- var EMPLOYEE_TIMECARD_VISIBLE_COLUMNS = [
606
- "locationName",
607
- "businessDate",
608
- "isActive",
609
- "lookup",
610
- "payrollCode",
611
- "jobName",
612
- "startTime",
613
- "endTime",
614
- "shiftHours"
615
- ];
616
- var EMPLOYEE_TIMECARD_AVAILABLE_COLUMNS = [
617
- "employeeName",
618
- ...EMPLOYEE_TIMECARD_VISIBLE_COLUMNS
619
- ];
620
- var employeeTimecardConfig = {
621
- fields: FIELDS8,
622
- availableColumns: EMPLOYEE_TIMECARD_AVAILABLE_COLUMNS,
623
- defaultVisibleColumns: EMPLOYEE_TIMECARD_VISIBLE_COLUMNS,
624
- hasFooter: true
625
- };
626
-
627
- // src/reports/employeeTip.ts
628
- var FIELDS9 = {
629
- employeeName: {
630
- type: "string",
631
- size: 220,
632
- columnKey: "employeeName"
633
- },
634
- empId: {
635
- type: "string",
636
- size: 160,
637
- columnKey: "employeeId",
638
- footerCalculation: { type: "label", label: "table.total" }
639
- },
640
- payrollId: { type: "string", size: 160, columnKey: "payrollId" },
641
- locationName: { type: "string", size: 220, columnKey: "locationName" },
642
- status: { type: "string", size: 140, columnKey: "status" },
643
- grossSales: { type: "money", columnKey: "grossSales", footerCalculation: { type: "sum" } },
644
- grossCash: { type: "money", columnKey: "grossCashSales", footerCalculation: { type: "sum" } },
645
- grossCc: { type: "money", columnKey: "grossCreditSales", footerCalculation: { type: "sum" } },
646
- totalPayments: { type: "money", columnKey: "totalCollected", footerCalculation: { type: "sum" } },
647
- autoGratuity: { type: "money", columnKey: "autoGratuity", footerCalculation: { type: "sum" } },
648
- grossTips: { type: "money", columnKey: "grossTips", footerCalculation: { type: "sum" } },
649
- declaredTips: { type: "money", columnKey: "declaredTips", footerCalculation: { type: "sum" } },
650
- tipReduction: { type: "money", columnKey: "tipReduction", footerCalculation: { type: "sum" } },
651
- tipShare: { type: "money", columnKey: "tipShare", footerCalculation: { type: "sum" } },
652
- netTips: { type: "money", columnKey: "tips", footerCalculation: { type: "sum" } },
653
- tipPercentage: {
654
- type: "percent",
655
- columnKey: "tipPct",
656
- footerCalculation: { type: "average", numeratorField: "grossTips", denominatorField: "grossSales" }
657
- }
658
- };
659
- var VISIBLE_COLUMNS = [
660
- "employeeName",
661
- "payrollId",
662
- "locationName",
663
- "status",
664
- "grossSales",
665
- "grossCash",
666
- "grossCc",
667
- "totalPayments",
668
- "autoGratuity",
669
- "grossTips",
670
- "declaredTips",
671
- "tipReduction",
672
- "tipShare",
673
- "netTips",
674
- "tipPercentage"
675
- ];
676
- var AVAILABLE_COLUMNS = ["empId", ...VISIBLE_COLUMNS];
677
- var employeeTipConfig = {
678
- fields: FIELDS9,
679
- availableColumns: AVAILABLE_COLUMNS,
680
- defaultVisibleColumns: VISIBLE_COLUMNS,
681
- hasFooter: true
682
- };
683
-
684
- // src/reports/tipCashoutReconciliation.ts
685
- var FIELDS10 = {
686
- groupById: { type: "string" },
687
- groupByName: {
688
- type: "string",
689
- size: FIRST_COLUMN_WIDTH,
690
- footerCalculation: { type: "label", label: "table.total" }
691
- },
692
- locationName: { type: "string", size: 220, columnKey: "locationName" },
693
- employeeName: { type: "string", size: 220, columnKey: "employeeName" },
694
- empId: { type: "string", size: 160, columnKey: "employeeId" },
695
- payrollId: { type: "string", size: 160, columnKey: "payrollId" },
696
- netSales: { type: "money", columnKey: "netSales", footerCalculation: { type: "sum" } },
697
- cashCollected: { type: "money", columnKey: "cashCollected", footerCalculation: { type: "sum" } },
698
- grossTips: { type: "money", columnKey: "grossTips", footerCalculation: { type: "sum" } },
699
- autoGratuity: { type: "money", columnKey: "autoGratuity", footerCalculation: { type: "sum" } },
700
- tipReduction: { type: "money", columnKey: "tipReduction", footerCalculation: { type: "sum" } },
701
- tipShareContributed: { type: "money", columnKey: "tipShareContributed", footerCalculation: { type: "sum" } },
702
- declaredTips: { type: "money", columnKey: "declaredTips", footerCalculation: { type: "sum" } }
703
- };
704
- var VISIBLE_COLUMNS2 = [
705
- "groupByName",
706
- "locationName",
707
- "employeeName",
708
- "payrollId",
709
- "netSales",
710
- "cashCollected",
711
- "grossTips",
712
- "autoGratuity",
713
- "tipReduction",
714
- "tipShareContributed",
715
- "declaredTips"
716
- ];
717
- var AVAILABLE_COLUMNS2 = ["groupById", "empId", ...VISIBLE_COLUMNS2];
718
- var tipCashoutReconciliationConfig = {
719
- fields: FIELDS10,
720
- availableColumns: AVAILABLE_COLUMNS2,
721
- defaultVisibleColumns: VISIBLE_COLUMNS2,
722
- hasFooter: true
723
- };
724
-
725
- // src/reports/dailySales/dailySales.ts
726
- var FIELDS11 = {
727
- groupById: { type: "string" },
728
- groupByName: {
729
- type: "string",
730
- size: FIRST_COLUMN_WIDTH,
731
- columnKey: "revenueClass",
732
- footerCalculation: { type: "label", label: "table.total" }
733
- },
734
- itemsQuantity: { type: "number", columnKey: "quantity" },
735
- salesAmountGross: { type: "money", columnKey: "grossSales" },
736
- discountsAmount: { type: "money", columnKey: "discountAmount" },
737
- inclusiveTaxesAmount: { type: "money", columnKey: "inclusiveTax" },
738
- salesAmountNet: { type: "money", columnKey: "netSales" },
739
- salesMixPct: { type: "percent", columnKey: "salesMixByPct" }
740
- };
741
- var DAILY_SALES_AVAILABLE_COLUMNS = [
742
- "groupByName",
743
- "itemsQuantity",
744
- "salesAmountGross",
745
- "discountsAmount",
746
- "inclusiveTaxesAmount",
747
- "salesAmountNet",
748
- "salesMixPct"
749
- ];
750
- var dailySalesConfig = {
751
- fields: FIELDS11,
752
- availableColumns: DAILY_SALES_AVAILABLE_COLUMNS,
753
- defaultVisibleColumns: DAILY_SALES_AVAILABLE_COLUMNS,
754
- hasFooter: true,
755
- dataAccessKey: "salesByRevClass",
756
- sectionName: "common.report-section.revenue-class",
757
- extraFooterRowsKey: "salesByRevClassFooter"
758
- };
759
-
760
- // src/reports/dailySales/dailySalesCache.ts
761
- var FIELDS12 = {
762
- name: {
763
- type: "string",
764
- columnKey: "type",
765
- size: FIRST_COLUMN_WIDTH,
766
- footerCalculation: { type: "label", label: "table.total" }
767
- },
768
- amount: { type: "money", columnKey: "paymentsAmount", footerCalculation: { type: "sum" } }
769
- };
770
- var dailySalesCacheConfig = {
771
- fields: FIELDS12,
772
- availableColumns: ["name", "amount"],
773
- defaultVisibleColumns: ["name", "amount"],
774
- hasFooter: true,
775
- dataAccessKey: "cashPayments",
776
- sectionName: "common.report-section.cash"
777
- };
778
-
779
- // src/reports/dailySales/dailySalesDiscounts.ts
780
- var FIELDS13 = {
781
- discountName: {
782
- type: "string",
783
- columnKey: "discountName",
784
- size: FIRST_COLUMN_WIDTH,
785
- footerCalculation: { type: "label", label: "table.total" }
786
- },
787
- ticketCount: { type: "number", columnKey: "ticketCount", footerCalculation: { type: "sum" } },
788
- itemCount: { type: "number", columnKey: "itemCount", footerCalculation: { type: "sum" } },
789
- discountsAmount: { type: "money", columnKey: "discountAmount", footerCalculation: { type: "sum" } }
790
- };
791
- var DAILY_SALES_DISCOUNTS_AVAILABLE_COLUMNS = [
792
- "discountName",
793
- "ticketCount",
794
- "itemCount",
795
- "discountsAmount"
796
- ];
797
- var dailySalesDiscountsConfig = {
798
- fields: FIELDS13,
799
- availableColumns: DAILY_SALES_DISCOUNTS_AVAILABLE_COLUMNS,
800
- defaultVisibleColumns: DAILY_SALES_DISCOUNTS_AVAILABLE_COLUMNS,
801
- hasFooter: true,
802
- dataAccessKey: "discounts",
803
- sectionName: "common.report-section.discounts"
804
- };
805
-
806
- // src/reports/dailySales/dailySalesPayments.ts
807
- var FIELDS14 = {
808
- paymentTypeName: {
809
- type: "string",
810
- size: FIRST_COLUMN_WIDTH,
811
- columnKey: "paymentType",
812
- footerCalculation: { type: "label", label: "table.total" }
813
- },
814
- paymentsCount: { type: "number-empty", columnKey: "paymentsCount", footerCalculation: { type: "sum" } },
815
- paymentsAmount: { type: "money-empty", columnKey: "paymentsAmount", footerCalculation: { type: "sum" } },
816
- tipsAmount: { type: "money-empty", columnKey: "tips", footerCalculation: { type: "sum" } },
817
- totalSales: { type: "money-empty", columnKey: "paymentsTotal", footerCalculation: { type: "sum" } }
818
- };
819
- var DAILY_SALES_PAYMENTS_AVAILABLE_COLUMNS = [
820
- "paymentTypeName",
821
- "paymentsCount",
822
- "paymentsAmount",
823
- "tipsAmount",
824
- "totalSales"
825
- ];
826
- var dailySalesPaymentsConfig = {
827
- fields: FIELDS14,
828
- availableColumns: DAILY_SALES_PAYMENTS_AVAILABLE_COLUMNS,
829
- defaultVisibleColumns: DAILY_SALES_PAYMENTS_AVAILABLE_COLUMNS,
830
- hasFooter: true,
831
- dataAccessKey: "payments",
832
- sectionName: "common.report-section.payments"
833
- };
834
-
835
- // src/reports/dailySales/dailySalesRefundsVoids.ts
836
- var FIELDS15 = {
837
- description: {
838
- type: "string",
839
- columnKey: "refundVoidDescription",
840
- size: FIRST_COLUMN_WIDTH,
841
- footerCalculation: { type: "label", label: "table.total" }
842
- },
843
- count: { type: "number", columnKey: "refundVoidCount", footerCalculation: { type: "sum" } },
844
- amount: { type: "money", columnKey: "refundVoidAmount", footerCalculation: { type: "sum" } },
845
- pctSales: { type: "percent", columnKey: "refundVoidPctSales", footerCalculation: { type: "sum" } }
846
- };
847
- var DAILY_SALES_REFUNDS_VOIDS_AVAILABLE_COLUMNS = [
848
- "description",
849
- "count",
850
- "amount",
851
- "pctSales"
852
- ];
853
- var dailySalesRefundsVoidsConfig = {
854
- fields: FIELDS15,
855
- availableColumns: DAILY_SALES_REFUNDS_VOIDS_AVAILABLE_COLUMNS,
856
- defaultVisibleColumns: DAILY_SALES_REFUNDS_VOIDS_AVAILABLE_COLUMNS,
857
- hasFooter: true,
858
- dataAccessKey: "refundsVoids",
859
- sectionName: "common.report-section.refunds-voids"
860
- };
861
-
862
- // src/reports/dailySales/dailySalesTaxes.ts
863
- var FIELDS16 = {
864
- taxName: {
865
- type: "string",
866
- columnKey: "taxName",
867
- size: FIRST_COLUMN_WIDTH,
868
- footerCalculation: { type: "label", label: "table.total" }
869
- },
870
- taxableSales: { type: "money", columnKey: "taxableSales", footerCalculation: { type: "none" } },
871
- taxesAmount: { type: "money", columnKey: "taxCollected", footerCalculation: { type: "sum" } },
872
- exemptSales: { type: "money", columnKey: "exemptSales", footerCalculation: { type: "sum" } }
873
- };
874
- var DAILY_SALES_TAXES_AVAILABLE_COLUMNS = [
875
- "taxName",
876
- "taxableSales",
877
- "taxesAmount",
878
- "exemptSales"
879
- ];
880
- var dailySalesTaxesConfig = {
881
- fields: FIELDS16,
882
- availableColumns: DAILY_SALES_TAXES_AVAILABLE_COLUMNS,
883
- defaultVisibleColumns: DAILY_SALES_TAXES_AVAILABLE_COLUMNS,
884
- hasFooter: true,
885
- dataAccessKey: "taxes",
886
- sectionName: "common.report-section.taxes"
887
- };
888
-
889
- // src/reports/dailySales/dailySalesTrendsDayPart.ts
890
- var FIELDS17 = {
891
- groupById: { type: "string" },
892
- groupByName: {
893
- type: "string",
894
- columnKey: "daypart",
895
- size: FIRST_COLUMN_WIDTH,
896
- footerCalculation: { type: "label", label: "table.total" }
897
- },
898
- salesAmountNet: { type: "money", columnKey: "netSales" },
899
- ticketsCount: { type: "number", columnKey: "tickets" },
900
- guestsCount: { type: "number", columnKey: "guests" },
901
- ticketAvg: {
902
- type: "money",
903
- columnKey: "ticketAverage",
904
- footerCalculation: {
905
- type: "average",
906
- numeratorField: "salesAmountNet",
907
- denominatorField: "ticketsCount"
908
- }
909
- },
910
- guestAvg: {
911
- type: "money",
912
- columnKey: "guestAverage",
913
- footerCalculation: {
914
- type: "average",
915
- numeratorField: "salesAmountNet",
916
- denominatorField: "guestsCount"
917
- }
918
- }
919
- };
920
- var DAILY_SALES_TRENDS_AVAILABLE_COLUMNS = [
921
- "groupByName",
922
- "ticketsCount",
923
- "guestsCount",
924
- "ticketAvg",
925
- "guestAvg",
926
- "salesAmountNet"
927
- ];
928
- var dailySalesTrendsDayPartConfig = {
929
- fields: FIELDS17,
930
- availableColumns: DAILY_SALES_TRENDS_AVAILABLE_COLUMNS,
931
- defaultVisibleColumns: DAILY_SALES_TRENDS_AVAILABLE_COLUMNS,
932
- hasFooter: true,
933
- dataAccessKey: "trendsByDayPart",
934
- sectionName: "common.report-section.sales-by-day-part",
935
- extraFooterFields: ["salesAmountNet"]
936
- };
937
-
938
- // src/reports/dailySales/dailySalesTrendsOrderType.ts
939
- var FIELDS18 = {
940
- groupById: { type: "string" },
941
- groupByName: {
942
- columnKey: "orderType",
943
- type: "string",
944
- size: FIRST_COLUMN_WIDTH,
945
- footerCalculation: { type: "label", label: "table.total" }
946
- },
947
- salesAmountNet: { type: "money", columnKey: "netSales" },
948
- ticketsCount: { type: "number", columnKey: "tickets" },
949
- guestsCount: { type: "number", columnKey: "guests" },
950
- ticketAvg: {
951
- type: "money",
952
- columnKey: "ticketAverage",
953
- footerCalculation: {
954
- type: "average",
955
- numeratorField: "salesAmountNet",
956
- denominatorField: "ticketsCount"
957
- }
958
- },
959
- guestAvg: {
960
- type: "money",
961
- columnKey: "guestAverage",
962
- footerCalculation: {
963
- type: "average",
964
- numeratorField: "salesAmountNet",
965
- denominatorField: "guestsCount"
966
- }
967
- }
968
- };
969
- var DAILY_SALES_TRENDS_AVAILABLE_COLUMNS2 = [
970
- "groupByName",
971
- "ticketsCount",
972
- "guestsCount",
973
- "ticketAvg",
974
- "guestAvg",
975
- "salesAmountNet"
976
- ];
977
- var dailySalesTrendsOrderTypeConfig = {
978
- fields: FIELDS18,
979
- availableColumns: DAILY_SALES_TRENDS_AVAILABLE_COLUMNS2,
980
- defaultVisibleColumns: DAILY_SALES_TRENDS_AVAILABLE_COLUMNS2,
981
- hasFooter: true,
982
- dataAccessKey: "trendsByOrderType",
983
- sectionName: "common.report-section.sales-by-order-type",
984
- extraFooterFields: ["salesAmountNet"]
985
- };
986
-
987
- // src/report.ts
988
- var Report = {
989
- TICKET_LIVE: "ticket-live",
990
- TICKET_ANALYTICS: "ticket-analytics",
991
- SALES_SUMMARY: "sales-summary",
992
- PRODUCT_MIX: "product-mix",
993
- MODIFIER_MIX: "modifier-mix",
994
- ITEM_TAX: "item-tax",
995
- EMPLOYEE_TIMECARD: "employee-timecard",
996
- EMPLOYEE_TIP: "employee-tip",
997
- TIP_CASHOUT_RECONCILIATION: "tip-cashout-reconciliation",
998
- SALES_BY_ITEM: "sales-by-item",
999
- DAILY_SALES: "daily-sales",
1000
- DAILY_SALES_LIVE: "daily-sales-live"
1001
- };
1002
- var DAILY_SALES_SECTION_CONFIGS = [
1003
- dailySalesConfig,
1004
- dailySalesPaymentsConfig,
1005
- dailySalesCacheConfig,
1006
- dailySalesTaxesConfig,
1007
- dailySalesRefundsVoidsConfig,
1008
- dailySalesDiscountsConfig,
1009
- dailySalesTrendsDayPartConfig,
1010
- dailySalesTrendsOrderTypeConfig
1011
- ];
1012
- var REPORT_CONFIG_MAP = {
1013
- "sales-summary": salesSummaryConfig,
1014
- "ticket-analytics": ticketSummaryConfig,
1015
- "ticket-live": ticketLiveConfig,
1016
- "product-mix": productMixConfig,
1017
- "modifier-mix": modifierMixConfig,
1018
- "item-tax": itemTaxConfig,
1019
- "employee-timecard": employeeTimecardConfig,
1020
- "employee-tip": employeeTipConfig,
1021
- "tip-cashout-reconciliation": tipCashoutReconciliationConfig,
1022
- "sales-by-item": salesByItemDetailConfig,
1023
- "daily-sales": DAILY_SALES_SECTION_CONFIGS,
1024
- "daily-sales-live": DAILY_SALES_SECTION_CONFIGS
1025
- };
1026
- var REPORT_DEFAULT_NAME_MAP = {
1027
- "sales-summary": "Sales",
1028
- "ticket-analytics": "Tickets",
1029
- "ticket-live": "Tickets Live",
1030
- "product-mix": "Product Mix",
1031
- "modifier-mix": "Modifier Mix",
1032
- "item-tax": "Sales Tax by Item",
1033
- "employee-timecard": "Employee Timecard",
1034
- "employee-tip": "Employee Tip",
1035
- "tip-cashout-reconciliation": "Tip & Cashout Reconciliation",
1036
- "sales-by-item": "Sales by Item",
1037
- "daily-sales": "Daily Sales",
1038
- "daily-sales-live": "Daily Sales Live"
1039
- };
1040
- var getReportConfig = (reportType) => REPORT_CONFIG_MAP[reportType];
1041
- var getFixedColumns = (config, parameters) => {
1042
- const visibleColumns = new Set(config.defaultVisibleColumns ?? []);
1043
- const fixedCols = config.availableColumns.filter((col) => !visibleColumns.has(col));
1044
- return fixedCols.filter((col) => {
1045
- if (col === "groupByName2") {
1046
- return !!parameters?.secondGroupBy;
1047
- }
1048
- return true;
1049
- });
1050
- };
1051
- var getReportExportFileName = ({
1052
- reportType,
1053
- startDate,
1054
- endDate,
1055
- format
1056
- }) => {
1057
- const formatDate2 = (date) => {
1058
- return [
1059
- date.getFullYear(),
1060
- String(date.getMonth() + 1).padStart(2, "0"),
1061
- String(date.getDate()).padStart(2, "0")
1062
- ].join("-");
1063
- };
1064
- const filename = REPORT_DEFAULT_NAME_MAP[reportType].replace(/\s+/g, "_") ?? "Report";
1065
- return `${filename}_${formatDate2(startDate)}_to_${formatDate2(endDate)}.${format}`.toLocaleLowerCase();
1066
- };
1067
-
1068
- // src/columns/index.ts
1069
- var COLUMN_REGISTRY = {
1070
- fifteenMinInterval: {
1071
- titleKey: "common.report-col.fifteen-min-interval",
1072
- shortTitleKey: "common.report-col.fifteen-min-interval.short",
1073
- infoTextKey: "common.report-col.fifteen-min-interval.info"
1074
- },
1075
- adjustedTips: {
1076
- titleKey: "common.report-col.adjusted-tips",
1077
- shortTitleKey: "common.report-col.adjusted-tips.short",
1078
- infoTextKey: "common.report-col.adjusted-tips.info"
1079
- },
1080
- advantageProgram: {
1081
- titleKey: "common.report-col.advantage-program",
1082
- shortTitleKey: "common.report-col.advantage-program.short",
1083
- infoTextKey: "common.report-col.advantage-program.info"
1084
- },
1085
- amex: {
1086
- titleKey: "common.report-col.amex",
1087
- shortTitleKey: "common.report-col.amex.short",
1088
- infoTextKey: "common.report-col.amex.info"
1089
- },
1090
- amexReturns: {
1091
- titleKey: "common.report-col.amex-returns",
1092
- shortTitleKey: "common.report-col.amex-returns.short",
1093
- infoTextKey: "common.report-col.amex-returns.info"
1094
- },
1095
- attachRate: {
1096
- titleKey: "common.report-col.attach-rate",
1097
- shortTitleKey: "common.report-col.attach-rate.short",
1098
- infoTextKey: "common.report-col.attach-rate.info"
1099
- },
1100
- autoGratuity: {
1101
- titleKey: "common.report-col.auto-gratuity",
1102
- shortTitleKey: "common.report-col.auto-gratuity.short",
1103
- infoTextKey: "common.report-col.auto-gratuity.info"
1104
- },
1105
- averageGrossPrice: {
1106
- titleKey: "common.report-col.average-gross-price",
1107
- shortTitleKey: "common.report-col.average-gross-price.short",
1108
- infoTextKey: "common.report-col.average-gross-price.info"
1109
- },
1110
- bankFees: {
1111
- titleKey: "common.report-col.bank-fees",
1112
- shortTitleKey: "common.report-col.bank-fees.short",
1113
- infoTextKey: "common.report-col.bank-fees.info"
1114
- },
1115
- batchAmount: {
1116
- titleKey: "common.report-col.batch-amount",
1117
- shortTitleKey: "common.report-col.batch-amount.short",
1118
- infoTextKey: "common.report-col.batch-amount.info"
1119
- },
1120
- batchDate: {
1121
- titleKey: "common.report-col.batch-date",
1122
- shortTitleKey: "common.report-col.batch-date.short",
1123
- infoTextKey: "common.report-col.batch-date.info"
1124
- },
1125
- batchNumber: {
1126
- titleKey: "common.report-col.batch-number",
1127
- shortTitleKey: "common.report-col.batch-number.short",
1128
- infoTextKey: "common.report-col.batch-number.info"
1129
- },
1130
- cashCollected: {
1131
- titleKey: "common.report-col.cash-collected",
1132
- shortTitleKey: "common.report-col.cash-collected.short",
1133
- infoTextKey: "common.report-col.cash-collected.info"
1134
- },
1135
- clockInTime: {
1136
- titleKey: "common.report-col.clock-in-time",
1137
- shortTitleKey: "common.report-col.clock-in-time.short",
1138
- infoTextKey: "common.report-col.clock-in-time.info"
1139
- },
1140
- clockOutTime: {
1141
- titleKey: "common.report-col.clock-out-time",
1142
- shortTitleKey: "common.report-col.clock-out-time.short",
1143
- infoTextKey: "common.report-col.clock-out-time.info"
1144
- },
1145
- country: {
1146
- titleKey: "common.report-col.country",
1147
- shortTitleKey: "common.report-col.country.short",
1148
- infoTextKey: "common.report-col.country.info"
1149
- },
1150
- customerName: {
1151
- titleKey: "common.report-col.customer-name",
1152
- shortTitleKey: "common.report-col.customer-name.short",
1153
- infoTextKey: "common.report-col.customer-name.info"
1154
- },
1155
- date: {
1156
- titleKey: "common.report-col.date",
1157
- shortTitleKey: "common.report-col.date.short",
1158
- infoTextKey: "common.report-col.date.info"
1159
- },
1160
- dateClose: {
1161
- titleKey: "common.report-col.date-close",
1162
- shortTitleKey: "common.report-col.date-close.short",
1163
- infoTextKey: "common.report-col.date-close.info"
1164
- },
1165
- daypart: {
1166
- titleKey: "common.report-col.daypart",
1167
- shortTitleKey: "common.report-col.daypart.short",
1168
- infoTextKey: "common.report-col.daypart.info"
1169
- },
1170
- debit: {
1171
- titleKey: "common.report-col.debit",
1172
- shortTitleKey: "common.report-col.debit.short",
1173
- infoTextKey: "common.report-col.debit.info"
1174
- },
1175
- debitReturns: {
1176
- titleKey: "common.report-col.debit-returns",
1177
- shortTitleKey: "common.report-col.debit-returns.short",
1178
- infoTextKey: "common.report-col.debit-returns.info"
1179
- },
1180
- declaredTips: {
1181
- titleKey: "common.report-col.declared-tips",
1182
- shortTitleKey: "common.report-col.declared-tips.short",
1183
- infoTextKey: "common.report-col.declared-tips.info"
1184
- },
1185
- department: {
1186
- titleKey: "common.report-col.department",
1187
- shortTitleKey: "common.report-col.department.short",
1188
- infoTextKey: "common.report-col.department.info"
1189
- },
1190
- depositCurrency: {
1191
- titleKey: "common.report-col.deposit-currency",
1192
- shortTitleKey: "common.report-col.deposit-currency.short",
1193
- infoTextKey: "common.report-col.deposit-currency.info"
1194
- },
1195
- depositDate: {
1196
- titleKey: "common.report-col.deposit-date",
1197
- shortTitleKey: "common.report-col.deposit-date.short",
1198
- infoTextKey: "common.report-col.deposit-date.info"
1199
- },
1200
- discountAmount: {
1201
- titleKey: "common.report-col.discount-amount",
1202
- shortTitleKey: "common.report-col.discount-amount.short",
1203
- infoTextKey: "common.report-col.discount-amount.info"
1204
- },
1205
- discountCount: {
1206
- titleKey: "common.report-col.discount-count",
1207
- shortTitleKey: "common.report-col.discount-count.short",
1208
- infoTextKey: "common.report-col.discount-count.info"
1209
- },
1210
- ticketCount: {
1211
- titleKey: "common.report-col.ticket-count",
1212
- shortTitleKey: "common.report-col.ticket-count.short",
1213
- infoTextKey: "common.report-col.ticket-count.info"
1214
- },
1215
- itemCount: {
1216
- titleKey: "common.report-col.item-count",
1217
- shortTitleKey: "common.report-col.item-count.short",
1218
- infoTextKey: "common.report-col.item-count.info"
1219
- },
1220
- discover: {
1221
- titleKey: "common.report-col.discover",
1222
- shortTitleKey: "common.report-col.discover.short",
1223
- infoTextKey: "common.report-col.discover.info"
1224
- },
1225
- discoverReturns: {
1226
- titleKey: "common.report-col.discover-returns",
1227
- shortTitleKey: "common.report-col.discover-returns.short",
1228
- infoTextKey: "common.report-col.discover-returns.info"
1229
- },
1230
- ebt: {
1231
- titleKey: "common.report-col.ebt",
1232
- shortTitleKey: "common.report-col.ebt.short",
1233
- infoTextKey: "common.report-col.ebt.info"
1234
- },
1235
- ebtReturns: {
1236
- titleKey: "common.report-col.ebt-returns",
1237
- shortTitleKey: "common.report-col.ebt-returns.short",
1238
- infoTextKey: "common.report-col.ebt-returns.info"
1239
- },
1240
- employeeId: {
1241
- titleKey: "common.report-col.employee-id",
1242
- shortTitleKey: "common.report-col.employee-id.short",
1243
- infoTextKey: "common.report-col.employee-id.info"
1244
- },
1245
- employeeJob: {
1246
- titleKey: "common.report-col.employee-job",
1247
- shortTitleKey: "common.report-col.employee-job.short",
1248
- infoTextKey: "common.report-col.employee-job.info"
1249
- },
1250
- employeeName: {
1251
- titleKey: "common.report-col.employee-name",
1252
- shortTitleKey: "common.report-col.employee-name.short",
1253
- infoTextKey: "common.report-col.employee-name.info"
1254
- },
1255
- exemptTaxes: {
1256
- titleKey: "common.report-col.exempt-taxes",
1257
- shortTitleKey: "common.report-col.exempt-taxes.short",
1258
- infoTextKey: "common.report-col.exempt-taxes.info"
1259
- },
1260
- exemptSales: {
1261
- titleKey: "common.report-col.exempt-sales",
1262
- shortTitleKey: "common.report-col.exempt-sales.short",
1263
- infoTextKey: "common.report-col.exempt-sales.info"
1264
- },
1265
- grandTotal: {
1266
- titleKey: "common.report-col.grand-total",
1267
- shortTitleKey: "common.report-col.grand-total.short",
1268
- infoTextKey: "common.report-col.grand-total.info"
1269
- },
1270
- grossCashSales: {
1271
- titleKey: "common.report-col.gross-cash-sales",
1272
- shortTitleKey: "common.report-col.gross-cash-sales.short",
1273
- infoTextKey: "common.report-col.gross-cash-sales.info"
1274
- },
1275
- grossCashTips: {
1276
- titleKey: "common.report-col.gross-cash-tips",
1277
- shortTitleKey: "common.report-col.gross-cash-tips.short",
1278
- infoTextKey: "common.report-col.gross-cash-tips.info"
1279
- },
1280
- grossCreditCardTips: {
1281
- titleKey: "common.report-col.gross-credit-card-tips",
1282
- shortTitleKey: "common.report-col.gross-credit-card-tips.short",
1283
- infoTextKey: "common.report-col.gross-credit-card-tips.info"
1284
- },
1285
- grossCreditSales: {
1286
- titleKey: "common.report-col.gross-credit-sales",
1287
- shortTitleKey: "common.report-col.gross-credit-sales.short",
1288
- infoTextKey: "common.report-col.gross-credit-sales.info"
1289
- },
1290
- grossSales: {
1291
- titleKey: "common.report-col.gross-sales",
1292
- shortTitleKey: "common.report-col.gross-sales.short",
1293
- infoTextKey: "common.report-col.gross-sales.info"
1294
- },
1295
- grossTips: {
1296
- titleKey: "common.report-col.gross-tips",
1297
- shortTitleKey: "common.report-col.gross-tips.short",
1298
- infoTextKey: "common.report-col.gross-tips.info"
1299
- },
1300
- guestCount: {
1301
- titleKey: "common.report-col.guest-count",
1302
- shortTitleKey: "common.report-col.guest-count.short",
1303
- infoTextKey: "common.report-col.guest-count.info"
1304
- },
1305
- guestsVarLw: {
1306
- titleKey: "common.report-col.guests-var-lw",
1307
- shortTitleKey: "common.report-col.guests-var-lw.short",
1308
- infoTextKey: "common.report-col.guests-var-lw.info"
1309
- },
1310
- guestsVarLwPct: {
1311
- titleKey: "common.report-col.guests-var-lw-pct",
1312
- shortTitleKey: "common.report-col.guests-var-lw-pct.short",
1313
- infoTextKey: "common.report-col.guests-var-lw-pct.info"
1314
- },
1315
- guestsVarLy: {
1316
- titleKey: "common.report-col.guests-var-ly",
1317
- shortTitleKey: "common.report-col.guests-var-ly.short",
1318
- infoTextKey: "common.report-col.guests-var-ly.info"
1319
- },
1320
- guestsVarLyPct: {
1321
- titleKey: "common.report-col.guests-var-ly-pct",
1322
- shortTitleKey: "common.report-col.guests-var-ly-pct.short",
1323
- infoTextKey: "common.report-col.guests-var-ly-pct.info"
1324
- },
1325
- hour: {
1326
- titleKey: "common.report-col.hour",
1327
- shortTitleKey: "common.report-col.hour.short",
1328
- infoTextKey: "common.report-col.hour.info"
1329
- },
1330
- hoursWorked: {
1331
- titleKey: "common.report-col.hours-worked",
1332
- shortTitleKey: "common.report-col.hours-worked.short",
1333
- infoTextKey: "common.report-col.hours-worked.info"
1334
- },
1335
- inclusiveTax: {
1336
- titleKey: "common.report-col.inclusive-tax",
1337
- shortTitleKey: "common.report-col.inclusive-tax.short",
1338
- infoTextKey: "common.report-col.inclusive-tax.info"
1339
- },
1340
- itemName: {
1341
- titleKey: "common.report-col.item-name",
1342
- shortTitleKey: "common.report-col.item-name.short",
1343
- infoTextKey: "common.report-col.item-name.info"
1344
- },
1345
- itemPrice: {
1346
- titleKey: "common.report-col.item-price",
1347
- shortTitleKey: "common.report-col.item-price.short",
1348
- infoTextKey: "common.report-col.item-price.info"
1349
- },
1350
- itemQuantity: {
1351
- titleKey: "common.report-col.item-quantity",
1352
- shortTitleKey: "common.report-col.item-quantity.short",
1353
- infoTextKey: "common.report-col.item-quantity.info"
1354
- },
1355
- locationCity: {
1356
- titleKey: "common.report-col.location-city",
1357
- shortTitleKey: "common.report-col.location-city.short",
1358
- infoTextKey: "common.report-col.location-city.info"
1359
- },
1360
- locationId: {
1361
- titleKey: "common.report-col.location-id",
1362
- shortTitleKey: "common.report-col.location-id.short",
1363
- infoTextKey: "common.report-col.location-id.info"
1364
- },
1365
- locationMid: {
1366
- titleKey: "common.report-col.location-mid",
1367
- shortTitleKey: "common.report-col.location-mid.short",
1368
- infoTextKey: "common.report-col.location-mid.info"
1369
- },
1370
- locationName: {
1371
- titleKey: "common.report-col.location-name",
1372
- shortTitleKey: "common.report-col.location-name.short",
1373
- infoTextKey: "common.report-col.location-name.info"
1374
- },
1375
- locationState: {
1376
- titleKey: "common.report-col.location-state",
1377
- shortTitleKey: "common.report-col.location-state.short",
1378
- infoTextKey: "common.report-col.location-state.info"
1379
- },
1380
- mastercard: {
1381
- titleKey: "common.report-col.mastercard",
1382
- shortTitleKey: "common.report-col.mastercard.short",
1383
- infoTextKey: "common.report-col.mastercard.info"
1384
- },
1385
- mcReturns: {
1386
- titleKey: "common.report-col.mc-returns",
1387
- shortTitleKey: "common.report-col.mc-returns.short",
1388
- infoTextKey: "common.report-col.mc-returns.info"
1389
- },
1390
- modifierName: {
1391
- titleKey: "common.report-col.modifier-name",
1392
- shortTitleKey: "common.report-col.modifier-name.short",
1393
- infoTextKey: "common.report-col.modifier-name.info"
1394
- },
1395
- modifierPrice: {
1396
- titleKey: "common.report-col.modifier-price",
1397
- shortTitleKey: "common.report-col.modifier-price.short",
1398
- infoTextKey: "common.report-col.modifier-price.info"
1399
- },
1400
- modifierQuantity: {
1401
- titleKey: "common.report-col.modifier-quantity",
1402
- shortTitleKey: "common.report-col.modifier-quantity.short",
1403
- infoTextKey: "common.report-col.modifier-quantity.info"
1404
- },
1405
- netSales: {
1406
- titleKey: "common.report-col.net-sales",
1407
- shortTitleKey: "common.report-col.net-sales.short",
1408
- infoTextKey: "common.report-col.net-sales.info"
1409
- },
1410
- netTaxCollected: {
1411
- titleKey: "common.report-col.net-tax-collected",
1412
- shortTitleKey: "common.report-col.net-tax-collected.short",
1413
- infoTextKey: "common.report-col.net-tax-collected.info"
1414
- },
1415
- netTips: {
1416
- titleKey: "common.report-col.net-tips",
1417
- shortTitleKey: "common.report-col.net-tips.short",
1418
- infoTextKey: "common.report-col.net-tips.info"
1419
- },
1420
- numberOfGuests: {
1421
- titleKey: "common.report-col.number-of-guests",
1422
- shortTitleKey: "common.report-col.number-of-guests.short",
1423
- infoTextKey: "common.report-col.number-of-guests.info"
1424
- },
1425
- orderType: {
1426
- titleKey: "common.report-col.order-type",
1427
- shortTitleKey: "common.report-col.order-type.short",
1428
- infoTextKey: "common.report-col.order-type.info"
1429
- },
1430
- paymentType: {
1431
- titleKey: "common.report-col.payment-type",
1432
- shortTitleKey: "common.report-col.payment-type.short",
1433
- infoTextKey: "common.report-col.payment-type.info"
1434
- },
1435
- payrollId: {
1436
- titleKey: "common.report-col.payroll-id",
1437
- shortTitleKey: "common.report-col.payroll-id.short",
1438
- infoTextKey: "common.report-col.payroll-id.info"
1439
- },
1440
- quantity: {
1441
- titleKey: "common.report-col.quantity",
1442
- shortTitleKey: "common.report-col.quantity.short",
1443
- infoTextKey: "common.report-col.quantity.info"
1444
- },
1445
- referenceNumber: {
1446
- titleKey: "common.report-col.reference-number",
1447
- shortTitleKey: "common.report-col.reference-number.short",
1448
- infoTextKey: "common.report-col.reference-number.info"
1449
- },
1450
- refundAmount: {
1451
- titleKey: "common.report-col.refund-amount",
1452
- shortTitleKey: "common.report-col.refund-amount.short",
1453
- infoTextKey: "common.report-col.refund-amount.info"
1454
- },
1455
- refundedTaxAmount: {
1456
- titleKey: "common.report-col.refunded-tax-amount",
1457
- shortTitleKey: "common.report-col.refunded-tax-amount.short",
1458
- infoTextKey: "common.report-col.refunded-tax-amount.info"
1459
- },
1460
- revenueCenter: {
1461
- titleKey: "common.report-col.revenue-center",
1462
- shortTitleKey: "common.report-col.revenue-center.short",
1463
- infoTextKey: "common.report-col.revenue-center.info"
1464
- },
1465
- revenueClass: {
1466
- titleKey: "common.report-col.revenue-class",
1467
- shortTitleKey: "common.report-col.revenue-class.short",
1468
- infoTextKey: "common.report-col.revenue-class.info"
1469
- },
1470
- salesVarLw: {
1471
- titleKey: "common.report-col.sales-var-lw",
1472
- shortTitleKey: "common.report-col.sales-var-lw.short",
1473
- infoTextKey: "common.report-col.sales-var-lw.info"
1474
- },
1475
- salesVarLwPct: {
1476
- titleKey: "common.report-col.sales-var-lw-pct",
1477
- shortTitleKey: "common.report-col.sales-var-lw-pct.short",
1478
- infoTextKey: "common.report-col.sales-var-lw-pct.info"
1479
- },
1480
- salesVarLy: {
1481
- titleKey: "common.report-col.sales-var-ly",
1482
- shortTitleKey: "common.report-col.sales-var-ly.short",
1483
- infoTextKey: "common.report-col.sales-var-ly.info"
1484
- },
1485
- salesVarLyPct: {
1486
- titleKey: "common.report-col.sales-var-ly-pct",
1487
- shortTitleKey: "common.report-col.sales-var-ly-pct.short",
1488
- infoTextKey: "common.report-col.sales-var-ly-pct.info"
1489
- },
1490
- salesMixByPct: {
1491
- titleKey: "common.report-col.sales-mix-by-pct",
1492
- shortTitleKey: "common.report-col.sales-mix-by-pct.short",
1493
- infoTextKey: "common.report-col.sales-mix-by-pct.info"
1494
- },
1495
- salesPerGuest: {
1496
- titleKey: "common.report-col.sales-per-guest",
1497
- shortTitleKey: "common.report-col.sales-per-guest.short",
1498
- infoTextKey: "common.report-col.sales-per-guest.info"
1499
- },
1500
- salesPerGuestLw: {
1501
- titleKey: "common.report-col.sales-per-guest-lw",
1502
- shortTitleKey: "common.report-col.sales-per-guest-lw.short",
1503
- infoTextKey: "common.report-col.sales-per-guest-lw.info"
1504
- },
1505
- salesPerGuestLy: {
1506
- titleKey: "common.report-col.sales-per-guest-ly",
1507
- shortTitleKey: "common.report-col.sales-per-guest-ly.short",
1508
- infoTextKey: "common.report-col.sales-per-guest-ly.info"
1509
- },
1510
- scheduledShiftEnd: {
1511
- titleKey: "common.report-col.scheduled-shift-end",
1512
- shortTitleKey: "common.report-col.scheduled-shift-end.short",
1513
- infoTextKey: "common.report-col.scheduled-shift-end.info"
1514
- },
1515
- scheduledShiftStart: {
1516
- titleKey: "common.report-col.scheduled-shift-start",
1517
- shortTitleKey: "common.report-col.scheduled-shift-start.short",
1518
- infoTextKey: "common.report-col.scheduled-shift-start.info"
1519
- },
1520
- settlementBatchDate: {
1521
- titleKey: "common.report-col.settlement-batch-date",
1522
- shortTitleKey: "common.report-col.settlement-batch-date.short",
1523
- infoTextKey: "common.report-col.settlement-batch-date.info"
1524
- },
1525
- shiftDurationHrs: {
1526
- titleKey: "common.report-col.shift-duration-hrs",
1527
- shortTitleKey: "common.report-col.shift-duration-hrs.short",
1528
- infoTextKey: "common.report-col.shift-duration-hrs.info"
1529
- },
1530
- salePaymentType: {
1531
- titleKey: "common.report-col.sale-payment-type",
1532
- shortTitleKey: "common.report-col.sale-payment-type.short",
1533
- infoTextKey: "common.report-col.sale-payment-type.info"
1534
- },
1535
- status: {
1536
- titleKey: "common.report-col.status",
1537
- shortTitleKey: "common.report-col.status.short",
1538
- infoTextKey: "common.report-col.status.info"
1539
- },
1540
- lastModified: {
1541
- titleKey: "common.report-col.last-modified",
1542
- shortTitleKey: "common.report-col.last-modified.short",
1543
- infoTextKey: "common.report-col.last-modified.info"
1544
- },
1545
- subtotal: {
1546
- titleKey: "common.report-col.subtotal",
1547
- shortTitleKey: "common.report-col.subtotal.short",
1548
- infoTextKey: "common.report-col.subtotal.info"
1549
- },
1550
- taxCollected: {
1551
- titleKey: "common.report-col.tax-collected",
1552
- shortTitleKey: "common.report-col.tax-collected.short",
1553
- infoTextKey: "common.report-col.tax-collected.info"
1554
- },
1555
- taxName: {
1556
- titleKey: "common.report-col.tax-name",
1557
- shortTitleKey: "common.report-col.tax-name.short",
1558
- infoTextKey: "common.report-col.tax-name.info"
1559
- },
1560
- taxRate: {
1561
- titleKey: "common.report-col.tax-rate",
1562
- shortTitleKey: "common.report-col.tax-rate.short",
1563
- infoTextKey: "common.report-col.tax-rate.info"
1564
- },
1565
- taxableSales: {
1566
- titleKey: "common.report-col.taxable-sales",
1567
- shortTitleKey: "common.report-col.taxable-sales.short",
1568
- infoTextKey: "common.report-col.taxable-sales.info"
1569
- },
1570
- ticketClosed: {
1571
- titleKey: "common.report-col.ticket-closed",
1572
- shortTitleKey: "common.report-col.ticket-closed.short",
1573
- infoTextKey: "common.report-col.ticket-closed.info"
1574
- },
1575
- ticketFee: {
1576
- titleKey: "common.report-col.ticket-fee",
1577
- shortTitleKey: "common.report-col.ticket-fee.short",
1578
- infoTextKey: "common.report-col.ticket-fee.info"
1579
- },
1580
- ticketNumber: {
1581
- titleKey: "common.report-col.ticket-number",
1582
- shortTitleKey: "common.report-col.ticket-number.short",
1583
- infoTextKey: "common.report-col.ticket-number.info"
1584
- },
1585
- ticketOpen: {
1586
- titleKey: "common.report-col.ticket-open",
1587
- shortTitleKey: "common.report-col.ticket-open.short",
1588
- infoTextKey: "common.report-col.ticket-open.info"
1589
- },
1590
- ticketTotal: {
1591
- titleKey: "common.report-col.ticket-total",
1592
- shortTitleKey: "common.report-col.ticket-total.short",
1593
- infoTextKey: "common.report-col.ticket-total.info"
1594
- },
1595
- timeOpenMins: {
1596
- titleKey: "common.report-col.time-open-mins",
1597
- shortTitleKey: "common.report-col.time-open-mins.short",
1598
- infoTextKey: "common.report-col.time-open-mins.info"
1599
- },
1600
- tipPct: {
1601
- titleKey: "common.report-col.tip-pct",
1602
- shortTitleKey: "common.report-col.tip-pct.short",
1603
- infoTextKey: "common.report-col.tip-pct.info"
1604
- },
1605
- tipReduction: {
1606
- titleKey: "common.report-col.tip-reduction",
1607
- shortTitleKey: "common.report-col.tip-reduction.short",
1608
- infoTextKey: "common.report-col.tip-reduction.info"
1609
- },
1610
- tipShare: {
1611
- titleKey: "common.report-col.tip-share",
1612
- shortTitleKey: "common.report-col.tip-share.short",
1613
- infoTextKey: "common.report-col.tip-share.info"
1614
- },
1615
- tipShareContributed: {
1616
- titleKey: "common.report-col.tip-share-contributed",
1617
- shortTitleKey: "common.report-col.tip-share-contributed.short",
1618
- infoTextKey: "common.report-col.tip-share-contributed.info"
1619
- },
1620
- tips: {
1621
- titleKey: "common.report-col.tips",
1622
- shortTitleKey: "common.report-col.tips.short",
1623
- infoTextKey: "common.report-col.tips.info"
1624
- },
1625
- tipsPerHour: {
1626
- titleKey: "common.report-col.tips-per-hour",
1627
- shortTitleKey: "common.report-col.tips-per-hour.short",
1628
- infoTextKey: "common.report-col.tips-per-hour.info"
1629
- },
1630
- totalCollected: {
1631
- titleKey: "common.report-col.total-collected",
1632
- shortTitleKey: "common.report-col.total-collected.short",
1633
- infoTextKey: "common.report-col.total-collected.info"
1634
- },
1635
- totalItemSales: {
1636
- titleKey: "common.report-col.total-item-sales",
1637
- shortTitleKey: "common.report-col.total-item-sales.short",
1638
- infoTextKey: "common.report-col.total-item-sales.info"
1639
- },
1640
- totalModifierSales: {
1641
- titleKey: "common.report-col.total-modifier-sales",
1642
- shortTitleKey: "common.report-col.total-modifier-sales.short",
1643
- infoTextKey: "common.report-col.total-modifier-sales.info"
1644
- },
1645
- totalModifierSalesComp: {
1646
- titleKey: "common.report-col.total-modifier-sales-comp",
1647
- shortTitleKey: "common.report-col.total-modifier-sales-comp.short",
1648
- infoTextKey: "common.report-col.total-modifier-sales-comp.info"
1649
- },
1650
- totalModifierSalesVar: {
1651
- titleKey: "common.report-col.total-modifier-sales-var",
1652
- shortTitleKey: "common.report-col.total-modifier-sales-var.short",
1653
- infoTextKey: "common.report-col.total-modifier-sales-var.info"
1654
- },
1655
- totalModifierSalesVarPct: {
1656
- titleKey: "common.report-col.total-modifier-sales-var-pct",
1657
- shortTitleKey: "common.report-col.total-modifier-sales-var-pct.short",
1658
- infoTextKey: "common.report-col.total-modifier-sales-var-pct.info"
1659
- },
1660
- modifierQuantityComp: {
1661
- titleKey: "common.report-col.modifier-quantity-comp",
1662
- shortTitleKey: "common.report-col.modifier-quantity-comp.short",
1663
- infoTextKey: "common.report-col.modifier-quantity-comp.info"
1664
- },
1665
- modifierQuantityVar: {
1666
- titleKey: "common.report-col.modifier-quantity-var",
1667
- shortTitleKey: "common.report-col.modifier-quantity-var.short",
1668
- infoTextKey: "common.report-col.modifier-quantity-var.info"
1669
- },
1670
- modifierQuantityVarPct: {
1671
- titleKey: "common.report-col.modifier-quantity-var-pct",
1672
- shortTitleKey: "common.report-col.modifier-quantity-var-pct.short",
1673
- infoTextKey: "common.report-col.modifier-quantity-var-pct.info"
1674
- },
1675
- itemQuantityComp: {
1676
- titleKey: "common.report-col.item-quantity-comp",
1677
- shortTitleKey: "common.report-col.item-quantity-comp.short",
1678
- infoTextKey: "common.report-col.item-quantity-comp.info"
1679
- },
1680
- attachRateComp: {
1681
- titleKey: "common.report-col.attach-rate-comp",
1682
- shortTitleKey: "common.report-col.attach-rate-comp.short",
1683
- infoTextKey: "common.report-col.attach-rate-comp.info"
1684
- },
1685
- attachRateVar: {
1686
- titleKey: "common.report-col.attach-rate-var",
1687
- shortTitleKey: "common.report-col.attach-rate-var.short",
1688
- infoTextKey: "common.report-col.attach-rate-var.info"
1689
- },
1690
- attachRateVarPct: {
1691
- titleKey: "common.report-col.attach-rate-var-pct",
1692
- shortTitleKey: "common.report-col.attach-rate-var-pct.short",
1693
- infoTextKey: "common.report-col.attach-rate-var-pct.info"
1694
- },
1695
- totalReturns: {
1696
- titleKey: "common.report-col.total-returns",
1697
- shortTitleKey: "common.report-col.total-returns.short",
1698
- infoTextKey: "common.report-col.total-returns.info"
1699
- },
1700
- totalSales: {
1701
- titleKey: "common.report-col.total-sales",
1702
- shortTitleKey: "common.report-col.total-sales.short",
1703
- infoTextKey: "common.report-col.total-sales.info"
1704
- },
1705
- totalTips: {
1706
- titleKey: "common.report-col.total-tips",
1707
- shortTitleKey: "common.report-col.total-tips.short",
1708
- infoTextKey: "common.report-col.total-tips.info"
1709
- },
1710
- transactionDate: {
1711
- titleKey: "common.report-col.transaction-date",
1712
- shortTitleKey: "common.report-col.transaction-date.short",
1713
- infoTextKey: "common.report-col.transaction-date.info"
1714
- },
1715
- transactionType: {
1716
- titleKey: "common.report-col.transaction-type",
1717
- shortTitleKey: "common.report-col.transaction-type.short",
1718
- infoTextKey: "common.report-col.transaction-type.info"
1719
- },
1720
- untaxedSales: {
1721
- titleKey: "common.report-col.untaxed-sales",
1722
- shortTitleKey: "common.report-col.untaxed-sales.short",
1723
- infoTextKey: "common.report-col.untaxed-sales.info"
1724
- },
1725
- visa: {
1726
- titleKey: "common.report-col.visa",
1727
- shortTitleKey: "common.report-col.visa.short",
1728
- infoTextKey: "common.report-col.visa.info"
1729
- },
1730
- visaReturns: {
1731
- titleKey: "common.report-col.visa-returns",
1732
- shortTitleKey: "common.report-col.visa-returns.short",
1733
- infoTextKey: "common.report-col.visa-returns.info"
1734
- },
1735
- paymentsCount: {
1736
- titleKey: "common.report-col.payments-count",
1737
- shortTitleKey: "common.report-col.payments-count.short",
1738
- infoTextKey: "common.report-col.payments-count.info"
1739
- },
1740
- paymentsAmount: {
1741
- titleKey: "common.report-col.payments-amount",
1742
- shortTitleKey: "common.report-col.payments-amount.short",
1743
- infoTextKey: "common.report-col.payments-amount.info"
1744
- },
1745
- paymentsTotal: {
1746
- titleKey: "common.report-col.payments-total",
1747
- shortTitleKey: "common.report-col.payments-total.short",
1748
- infoTextKey: "common.report-col.payments-total.info"
1749
- },
1750
- refundVoidDescription: {
1751
- titleKey: "common.report-col.refund-void-description",
1752
- shortTitleKey: "common.report-col.refund-void-description.short",
1753
- infoTextKey: "common.report-col.refund-void-description.info"
1754
- },
1755
- refundVoidCount: {
1756
- titleKey: "common.report-col.refund-void-count",
1757
- shortTitleKey: "common.report-col.refund-void-count.short",
1758
- infoTextKey: "common.report-col.refund-void-count.info"
1759
- },
1760
- refundVoidAmount: {
1761
- titleKey: "common.report-col.refund-void-amount",
1762
- shortTitleKey: "common.report-col.refund-void-amount.short",
1763
- infoTextKey: "common.report-col.refund-void-amount.info"
1764
- },
1765
- refundVoidPctSales: {
1766
- titleKey: "common.report-col.refund-void-pct-sales",
1767
- shortTitleKey: "common.report-col.refund-void-pct-sales.short",
1768
- infoTextKey: "common.report-col.refund-void-pct-sales.info"
1769
- },
1770
- discountName: {
1771
- titleKey: "common.report-col.discount-name",
1772
- shortTitleKey: "common.report-col.discount-name.short",
1773
- infoTextKey: "common.report-col.discount-name.info"
1774
- },
1775
- tickets: {
1776
- titleKey: "common.report-col.tickets",
1777
- shortTitleKey: "common.report-col.tickets.short",
1778
- infoTextKey: "common.report-col.tickets.info"
1779
- },
1780
- guests: {
1781
- titleKey: "common.report-col.guests",
1782
- shortTitleKey: "common.report-col.guests.short",
1783
- infoTextKey: "common.report-col.guests.info"
1784
- },
1785
- ticketAverage: {
1786
- titleKey: "common.report-col.ticket-average",
1787
- shortTitleKey: "common.report-col.ticket-average.short",
1788
- infoTextKey: "common.report-col.ticket-average.info"
1789
- },
1790
- guestAverage: {
1791
- titleKey: "common.report-col.guest-average",
1792
- shortTitleKey: "common.report-col.guest-average.short",
1793
- infoTextKey: "common.report-col.guest-average.info"
1794
- },
1795
- net: {
1796
- titleKey: "common.report-col.net",
1797
- shortTitleKey: "common.report-col.net.short",
1798
- infoTextKey: "common.report-col.net.info"
1799
- },
1800
- type: {
1801
- titleKey: "common.report-col.type",
1802
- shortTitleKey: "common.report-col.type.short",
1803
- infoTextKey: "common.report-col.type.info"
1804
- }
1805
- };
1806
- function getColumnMetadata(key) {
1807
- return COLUMN_REGISTRY[key];
1808
- }
1809
- function getColumnExportHeaderLabel(colTitle, groupTitle) {
1810
- if (groupTitle) {
1811
- return `${groupTitle}: ${colTitle}`;
1812
- }
1813
- return colTitle;
1814
- }
1815
-
1816
- // src/totals.ts
1817
- var sumField = (rows, field) => rows.reduce((acc, row) => acc + (row[field] ?? 0), 0);
1818
- var getFooterValue = (rows, field, config) => {
1819
- const { type } = config;
1820
- if (!type || type === "date" || type === "time" || type === "boolean" || type === "conditional") {
1821
- return null;
1822
- }
1823
- const calc = config.footerCalculation;
1824
- if (type === "string") {
1825
- if (calc?.type === "label") {
1826
- return calc.label;
1827
- }
1828
- return null;
1829
- }
1830
- if (calc?.type === "none") {
1831
- return null;
1832
- }
1833
- if (calc?.type === "count") {
1834
- return rows.length;
1835
- }
1836
- if (!calc || calc.type === "sum") {
1837
- return config.columnKey || calc?.type === "sum" ? sumField(rows, field) : 0;
1838
- }
1839
- const { numeratorField, denominatorField } = calc;
1840
- if (!numeratorField || !denominatorField) {
1841
- return 0;
1842
- }
1843
- const num = sumField(rows, numeratorField);
1844
- const den = sumField(rows, denominatorField);
1845
- if (calc.type === "percentChange") {
1846
- return den ? (num - den) / den : 0;
1847
- }
1848
- if (calc.type === "variancePercent") {
1849
- const prior = den - num;
1850
- return prior ? num / prior : 0;
1851
- }
1852
- if (calc.type === "average") {
1853
- return den > 0 ? num / den : 0;
1854
- }
1855
- if (calc.type === "quotientOfDifferences") {
1856
- const { numeratorAdjustField, denominatorAdjustField } = calc;
1857
- const numAdj = numeratorAdjustField ? sumField(rows, numeratorAdjustField) : 0;
1858
- const denAdj = denominatorAdjustField ? sumField(rows, denominatorAdjustField) : 0;
1859
- const effectiveDen = den - denAdj;
1860
- return effectiveDen !== 0 ? (num - numAdj) / effectiveDen : 0;
1861
- }
1862
- return 0;
1863
- };
1864
- var calculateReportTotals = (data, fieldConfig) => {
1865
- const result = {};
1866
- for (const [field, config] of Object.entries(fieldConfig)) {
1867
- const total = getFooterValue(data, field, config);
1868
- result[field] = total ?? "";
1869
- }
1870
- return result;
1871
- };
1872
-
1873
537
  // src/translations/crowdin/skytab-analytics-report-utils/en-GB.ts
1874
538
  var enUS = {
1875
539
  "common.report-col.fifteen-min-interval": false,
@@ -2358,7 +1022,10 @@ var enUS = {
2358
1022
  "table.groups.sales": false,
2359
1023
  "table.groups.net-sales": false,
2360
1024
  "table.groups.guests": false,
2361
- "table.groups.sales-per-guest": false
1025
+ "table.groups.sales-per-guest": false,
1026
+ "employee-timecard.status.active": false,
1027
+ "employee-timecard.status.inactive": false,
1028
+ "employee-timecard.job.break-suffix": false
2362
1029
  };
2363
1030
  var en_GB_default = enUS;
2364
1031
 
@@ -2850,7 +1517,10 @@ var enUS2 = {
2850
1517
  "table.groups.sales": false,
2851
1518
  "table.groups.net-sales": false,
2852
1519
  "table.groups.guests": false,
2853
- "table.groups.sales-per-guest": false
1520
+ "table.groups.sales-per-guest": false,
1521
+ "employee-timecard.status.active": false,
1522
+ "employee-timecard.status.inactive": false,
1523
+ "employee-timecard.job.break-suffix": false
2854
1524
  };
2855
1525
  var es_ES_default = enUS2;
2856
1526
 
@@ -3342,28 +2012,1379 @@ var enUS3 = {
3342
2012
  "table.groups.sales": "Sales",
3343
2013
  "table.groups.net-sales": "Net Sales",
3344
2014
  "table.groups.guests": "Guests",
3345
- "table.groups.sales-per-guest": "Sales / Guest"
2015
+ "table.groups.sales-per-guest": "Sales / Guest",
2016
+ "employee-timecard.status.active": "Active",
2017
+ "employee-timecard.status.inactive": "Inactive",
2018
+ "employee-timecard.job.break-suffix": " * break"
2019
+ };
2020
+ var en_US_default = enUS3;
2021
+
2022
+ // src/translations/index.ts
2023
+ var filterCrowdin = (messages) => Object.fromEntries(
2024
+ Object.entries(messages).filter((entry) => typeof entry[1] === "string")
2025
+ );
2026
+ var LOCALE_OVERRIDES = {
2027
+ "en-GB": filterCrowdin(en_GB_default),
2028
+ "es-ES": filterCrowdin(es_ES_default)
2029
+ };
2030
+ function resolveTranslate(key, locale) {
2031
+ const overrides = LOCALE_OVERRIDES[locale];
2032
+ if (overrides) {
2033
+ const override = overrides[key];
2034
+ if (override !== void 0) {
2035
+ return override;
2036
+ }
2037
+ }
2038
+ return en_US_default[key] ?? key;
2039
+ }
2040
+
2041
+ // src/reports/employeeTimecard.ts
2042
+ var EMPLOYEE_NAME_WIDTH = 220;
2043
+ var STATUS_WIDTH = 140;
2044
+ var LOOKUP_WIDTH = 160;
2045
+ var PAYROLL_WIDTH = 160;
2046
+ var JOB_WIDTH = 200;
2047
+ var FIELDS8 = {
2048
+ locationId: {
2049
+ type: "number",
2050
+ enableSorting: false,
2051
+ filteringAvailable: false
2052
+ },
2053
+ locationName: {
2054
+ type: "string",
2055
+ size: FIRST_COLUMN_WIDTH,
2056
+ columnKey: "locationName"
2057
+ },
2058
+ businessDate: {
2059
+ type: "date",
2060
+ columnKey: "date"
2061
+ },
2062
+ employeeName: {
2063
+ type: "string",
2064
+ size: EMPLOYEE_NAME_WIDTH,
2065
+ columnKey: "employeeName",
2066
+ footerCalculation: { type: "label", label: "table.total" }
2067
+ },
2068
+ isActive: {
2069
+ type: "custom",
2070
+ size: STATUS_WIDTH,
2071
+ columnKey: "status",
2072
+ enableSorting: false,
2073
+ filteringAvailable: false,
2074
+ customConfiguration: {
2075
+ customFormat: (value, _full, locale) => {
2076
+ const row = value;
2077
+ return row ? resolveTranslate("employee-timecard.status.active", locale) : resolveTranslate("employee-timecard.status.inactive", locale);
2078
+ }
2079
+ }
2080
+ },
2081
+ lookup: {
2082
+ type: "string",
2083
+ size: LOOKUP_WIDTH,
2084
+ columnKey: "employeeId"
2085
+ },
2086
+ payrollCode: {
2087
+ type: "string",
2088
+ size: PAYROLL_WIDTH,
2089
+ columnKey: "payrollId"
2090
+ },
2091
+ jobName: {
2092
+ type: "custom",
2093
+ size: JOB_WIDTH,
2094
+ columnKey: "employeeJob",
2095
+ customConfiguration: {
2096
+ customFormat: (value, original, locale) => {
2097
+ const job = typeof value === "string" ? value : typeof value === "number" || typeof value === "boolean" ? String(value) : "";
2098
+ return original?.isBreak ? `${job}${resolveTranslate("employee-timecard.job.break-suffix", locale)}` : job;
2099
+ }
2100
+ }
2101
+ },
2102
+ isBreak: {
2103
+ type: "string",
2104
+ enableSorting: false,
2105
+ filteringAvailable: false
2106
+ },
2107
+ startTime: {
2108
+ type: "time-with-time-zone",
2109
+ columnKey: "clockInTime"
2110
+ },
2111
+ endTime: {
2112
+ type: "time-with-time-zone",
2113
+ columnKey: "clockOutTime"
2114
+ },
2115
+ shiftHours: {
2116
+ type: "fixedNumber",
2117
+ columnKey: "shiftDurationHrs",
2118
+ filteringAvailable: false
2119
+ }
2120
+ };
2121
+ var EMPLOYEE_TIMECARD_VISIBLE_COLUMNS = [
2122
+ "locationName",
2123
+ "businessDate",
2124
+ "isActive",
2125
+ "lookup",
2126
+ "payrollCode",
2127
+ "jobName",
2128
+ "startTime",
2129
+ "endTime",
2130
+ "shiftHours"
2131
+ ];
2132
+ var EMPLOYEE_TIMECARD_AVAILABLE_COLUMNS = [
2133
+ "employeeName",
2134
+ ...EMPLOYEE_TIMECARD_VISIBLE_COLUMNS
2135
+ ];
2136
+ var employeeTimecardConfig = {
2137
+ fields: FIELDS8,
2138
+ availableColumns: EMPLOYEE_TIMECARD_AVAILABLE_COLUMNS,
2139
+ defaultVisibleColumns: EMPLOYEE_TIMECARD_VISIBLE_COLUMNS,
2140
+ hasFooter: true
2141
+ };
2142
+
2143
+ // src/reports/employeeTip.ts
2144
+ var FIELDS9 = {
2145
+ employeeName: {
2146
+ type: "string",
2147
+ size: 220,
2148
+ columnKey: "employeeName"
2149
+ },
2150
+ empId: {
2151
+ type: "string",
2152
+ size: 160,
2153
+ columnKey: "employeeId",
2154
+ footerCalculation: { type: "label", label: "table.total" }
2155
+ },
2156
+ payrollId: { type: "string", size: 160, columnKey: "payrollId" },
2157
+ locationName: { type: "string", size: 220, columnKey: "locationName" },
2158
+ status: { type: "string", size: 140, columnKey: "status" },
2159
+ grossSales: { type: "money", columnKey: "grossSales", footerCalculation: { type: "sum" } },
2160
+ grossCash: { type: "money", columnKey: "grossCashSales", footerCalculation: { type: "sum" } },
2161
+ grossCc: { type: "money", columnKey: "grossCreditSales", footerCalculation: { type: "sum" } },
2162
+ totalPayments: { type: "money", columnKey: "totalCollected", footerCalculation: { type: "sum" } },
2163
+ autoGratuity: { type: "money", columnKey: "autoGratuity", footerCalculation: { type: "sum" } },
2164
+ grossTips: { type: "money", columnKey: "grossTips", footerCalculation: { type: "sum" } },
2165
+ declaredTips: { type: "money", columnKey: "declaredTips", footerCalculation: { type: "sum" } },
2166
+ tipReduction: { type: "money", columnKey: "tipReduction", footerCalculation: { type: "sum" } },
2167
+ tipShare: { type: "money", columnKey: "tipShare", footerCalculation: { type: "sum" } },
2168
+ netTips: { type: "money", columnKey: "tips", footerCalculation: { type: "sum" } },
2169
+ tipPercentage: {
2170
+ type: "percent",
2171
+ columnKey: "tipPct",
2172
+ footerCalculation: { type: "average", numeratorField: "grossTips", denominatorField: "grossSales" }
2173
+ }
2174
+ };
2175
+ var VISIBLE_COLUMNS = [
2176
+ "employeeName",
2177
+ "payrollId",
2178
+ "locationName",
2179
+ "status",
2180
+ "grossSales",
2181
+ "grossCash",
2182
+ "grossCc",
2183
+ "totalPayments",
2184
+ "autoGratuity",
2185
+ "grossTips",
2186
+ "declaredTips",
2187
+ "tipReduction",
2188
+ "tipShare",
2189
+ "netTips",
2190
+ "tipPercentage"
2191
+ ];
2192
+ var AVAILABLE_COLUMNS = ["empId", ...VISIBLE_COLUMNS];
2193
+ var employeeTipConfig = {
2194
+ fields: FIELDS9,
2195
+ availableColumns: AVAILABLE_COLUMNS,
2196
+ defaultVisibleColumns: VISIBLE_COLUMNS,
2197
+ hasFooter: true
2198
+ };
2199
+
2200
+ // src/reports/tipCashoutReconciliation.ts
2201
+ var FIELDS10 = {
2202
+ groupById: { type: "string" },
2203
+ groupByName: {
2204
+ type: "string",
2205
+ size: FIRST_COLUMN_WIDTH,
2206
+ footerCalculation: { type: "label", label: "table.total" }
2207
+ },
2208
+ locationName: { type: "string", size: 220, columnKey: "locationName" },
2209
+ employeeName: { type: "string", size: 220, columnKey: "employeeName" },
2210
+ empId: { type: "string", size: 160, columnKey: "employeeId" },
2211
+ payrollId: { type: "string", size: 160, columnKey: "payrollId" },
2212
+ netSales: { type: "money", columnKey: "netSales", footerCalculation: { type: "sum" } },
2213
+ cashCollected: { type: "money", columnKey: "cashCollected", footerCalculation: { type: "sum" } },
2214
+ grossTips: { type: "money", columnKey: "grossTips", footerCalculation: { type: "sum" } },
2215
+ autoGratuity: { type: "money", columnKey: "autoGratuity", footerCalculation: { type: "sum" } },
2216
+ tipReduction: { type: "money", columnKey: "tipReduction", footerCalculation: { type: "sum" } },
2217
+ tipShareContributed: { type: "money", columnKey: "tipShareContributed", footerCalculation: { type: "sum" } },
2218
+ declaredTips: { type: "money", columnKey: "declaredTips", footerCalculation: { type: "sum" } }
2219
+ };
2220
+ var VISIBLE_COLUMNS2 = [
2221
+ "groupByName",
2222
+ "locationName",
2223
+ "employeeName",
2224
+ "payrollId",
2225
+ "netSales",
2226
+ "cashCollected",
2227
+ "grossTips",
2228
+ "autoGratuity",
2229
+ "tipReduction",
2230
+ "tipShareContributed",
2231
+ "declaredTips"
2232
+ ];
2233
+ var AVAILABLE_COLUMNS2 = ["groupById", "empId", ...VISIBLE_COLUMNS2];
2234
+ var tipCashoutReconciliationConfig = {
2235
+ fields: FIELDS10,
2236
+ availableColumns: AVAILABLE_COLUMNS2,
2237
+ defaultVisibleColumns: VISIBLE_COLUMNS2,
2238
+ hasFooter: true
2239
+ };
2240
+
2241
+ // src/reports/dailySales/dailySales.ts
2242
+ var FIELDS11 = {
2243
+ groupById: { type: "string" },
2244
+ groupByName: {
2245
+ type: "string",
2246
+ size: FIRST_COLUMN_WIDTH,
2247
+ columnKey: "revenueClass",
2248
+ footerCalculation: { type: "label", label: "table.total" }
2249
+ },
2250
+ itemsQuantity: { type: "number", columnKey: "quantity" },
2251
+ salesAmountGross: { type: "money", columnKey: "grossSales" },
2252
+ discountsAmount: { type: "money", columnKey: "discountAmount" },
2253
+ inclusiveTaxesAmount: { type: "money", columnKey: "inclusiveTax" },
2254
+ salesAmountNet: { type: "money", columnKey: "netSales" },
2255
+ salesMixPct: { type: "percent", columnKey: "salesMixByPct" }
2256
+ };
2257
+ var DAILY_SALES_AVAILABLE_COLUMNS = [
2258
+ "groupByName",
2259
+ "itemsQuantity",
2260
+ "salesAmountGross",
2261
+ "discountsAmount",
2262
+ "inclusiveTaxesAmount",
2263
+ "salesAmountNet",
2264
+ "salesMixPct"
2265
+ ];
2266
+ var dailySalesConfig = {
2267
+ fields: FIELDS11,
2268
+ availableColumns: DAILY_SALES_AVAILABLE_COLUMNS,
2269
+ defaultVisibleColumns: DAILY_SALES_AVAILABLE_COLUMNS,
2270
+ hasFooter: true,
2271
+ dataAccessKey: "salesByRevClass",
2272
+ sectionName: "common.report-section.revenue-class",
2273
+ extraFooterRowsKey: "salesByRevClassFooter"
2274
+ };
2275
+
2276
+ // src/reports/dailySales/dailySalesCache.ts
2277
+ var FIELDS12 = {
2278
+ name: {
2279
+ type: "string",
2280
+ columnKey: "type",
2281
+ size: FIRST_COLUMN_WIDTH,
2282
+ footerCalculation: { type: "label", label: "table.total" }
2283
+ },
2284
+ amount: { type: "money", columnKey: "paymentsAmount", footerCalculation: { type: "sum" } }
2285
+ };
2286
+ var dailySalesCacheConfig = {
2287
+ fields: FIELDS12,
2288
+ availableColumns: ["name", "amount"],
2289
+ defaultVisibleColumns: ["name", "amount"],
2290
+ hasFooter: true,
2291
+ dataAccessKey: "cashPayments",
2292
+ sectionName: "common.report-section.cash"
2293
+ };
2294
+
2295
+ // src/reports/dailySales/dailySalesDiscounts.ts
2296
+ var FIELDS13 = {
2297
+ discountName: {
2298
+ type: "string",
2299
+ columnKey: "discountName",
2300
+ size: FIRST_COLUMN_WIDTH,
2301
+ footerCalculation: { type: "label", label: "table.total" }
2302
+ },
2303
+ ticketCount: { type: "number", columnKey: "ticketCount", footerCalculation: { type: "sum" } },
2304
+ itemCount: { type: "number", columnKey: "itemCount", footerCalculation: { type: "sum" } },
2305
+ discountsAmount: { type: "money", columnKey: "discountAmount", footerCalculation: { type: "sum" } }
2306
+ };
2307
+ var DAILY_SALES_DISCOUNTS_AVAILABLE_COLUMNS = [
2308
+ "discountName",
2309
+ "ticketCount",
2310
+ "itemCount",
2311
+ "discountsAmount"
2312
+ ];
2313
+ var dailySalesDiscountsConfig = {
2314
+ fields: FIELDS13,
2315
+ availableColumns: DAILY_SALES_DISCOUNTS_AVAILABLE_COLUMNS,
2316
+ defaultVisibleColumns: DAILY_SALES_DISCOUNTS_AVAILABLE_COLUMNS,
2317
+ hasFooter: true,
2318
+ dataAccessKey: "discounts",
2319
+ sectionName: "common.report-section.discounts"
2320
+ };
2321
+
2322
+ // src/reports/dailySales/dailySalesPayments.ts
2323
+ var FIELDS14 = {
2324
+ paymentTypeName: {
2325
+ type: "string",
2326
+ size: FIRST_COLUMN_WIDTH,
2327
+ columnKey: "paymentType",
2328
+ footerCalculation: { type: "label", label: "table.total" }
2329
+ },
2330
+ paymentsCount: { type: "number-empty", columnKey: "paymentsCount", footerCalculation: { type: "sum" } },
2331
+ paymentsAmount: { type: "money-empty", columnKey: "paymentsAmount", footerCalculation: { type: "sum" } },
2332
+ tipsAmount: { type: "money-empty", columnKey: "tips", footerCalculation: { type: "sum" } },
2333
+ totalSales: { type: "money-empty", columnKey: "paymentsTotal", footerCalculation: { type: "sum" } }
2334
+ };
2335
+ var DAILY_SALES_PAYMENTS_AVAILABLE_COLUMNS = [
2336
+ "paymentTypeName",
2337
+ "paymentsCount",
2338
+ "paymentsAmount",
2339
+ "tipsAmount",
2340
+ "totalSales"
2341
+ ];
2342
+ var dailySalesPaymentsConfig = {
2343
+ fields: FIELDS14,
2344
+ availableColumns: DAILY_SALES_PAYMENTS_AVAILABLE_COLUMNS,
2345
+ defaultVisibleColumns: DAILY_SALES_PAYMENTS_AVAILABLE_COLUMNS,
2346
+ hasFooter: true,
2347
+ dataAccessKey: "payments",
2348
+ sectionName: "common.report-section.payments"
2349
+ };
2350
+
2351
+ // src/reports/dailySales/dailySalesRefundsVoids.ts
2352
+ var FIELDS15 = {
2353
+ description: {
2354
+ type: "string",
2355
+ columnKey: "refundVoidDescription",
2356
+ size: FIRST_COLUMN_WIDTH,
2357
+ footerCalculation: { type: "label", label: "table.total" }
2358
+ },
2359
+ count: { type: "number", columnKey: "refundVoidCount", footerCalculation: { type: "sum" } },
2360
+ amount: { type: "money", columnKey: "refundVoidAmount", footerCalculation: { type: "sum" } },
2361
+ pctSales: { type: "percent", columnKey: "refundVoidPctSales", footerCalculation: { type: "sum" } }
2362
+ };
2363
+ var DAILY_SALES_REFUNDS_VOIDS_AVAILABLE_COLUMNS = [
2364
+ "description",
2365
+ "count",
2366
+ "amount",
2367
+ "pctSales"
2368
+ ];
2369
+ var dailySalesRefundsVoidsConfig = {
2370
+ fields: FIELDS15,
2371
+ availableColumns: DAILY_SALES_REFUNDS_VOIDS_AVAILABLE_COLUMNS,
2372
+ defaultVisibleColumns: DAILY_SALES_REFUNDS_VOIDS_AVAILABLE_COLUMNS,
2373
+ hasFooter: true,
2374
+ dataAccessKey: "refundsVoids",
2375
+ sectionName: "common.report-section.refunds-voids"
2376
+ };
2377
+
2378
+ // src/reports/dailySales/dailySalesTaxes.ts
2379
+ var FIELDS16 = {
2380
+ taxName: {
2381
+ type: "string",
2382
+ columnKey: "taxName",
2383
+ size: FIRST_COLUMN_WIDTH,
2384
+ footerCalculation: { type: "label", label: "table.total" }
2385
+ },
2386
+ taxableSales: { type: "money", columnKey: "taxableSales", footerCalculation: { type: "none" } },
2387
+ taxesAmount: { type: "money", columnKey: "taxCollected", footerCalculation: { type: "sum" } },
2388
+ exemptSales: { type: "money", columnKey: "exemptSales", footerCalculation: { type: "sum" } }
2389
+ };
2390
+ var DAILY_SALES_TAXES_AVAILABLE_COLUMNS = [
2391
+ "taxName",
2392
+ "taxableSales",
2393
+ "taxesAmount",
2394
+ "exemptSales"
2395
+ ];
2396
+ var dailySalesTaxesConfig = {
2397
+ fields: FIELDS16,
2398
+ availableColumns: DAILY_SALES_TAXES_AVAILABLE_COLUMNS,
2399
+ defaultVisibleColumns: DAILY_SALES_TAXES_AVAILABLE_COLUMNS,
2400
+ hasFooter: true,
2401
+ dataAccessKey: "taxes",
2402
+ sectionName: "common.report-section.taxes"
2403
+ };
2404
+
2405
+ // src/reports/dailySales/dailySalesTrendsDayPart.ts
2406
+ var FIELDS17 = {
2407
+ groupById: { type: "string" },
2408
+ groupByName: {
2409
+ type: "string",
2410
+ columnKey: "daypart",
2411
+ size: FIRST_COLUMN_WIDTH,
2412
+ footerCalculation: { type: "label", label: "table.total" }
2413
+ },
2414
+ salesAmountNet: { type: "money", columnKey: "netSales" },
2415
+ ticketsCount: { type: "number", columnKey: "tickets" },
2416
+ guestsCount: { type: "number", columnKey: "guests" },
2417
+ ticketAvg: {
2418
+ type: "money",
2419
+ columnKey: "ticketAverage",
2420
+ footerCalculation: {
2421
+ type: "average",
2422
+ numeratorField: "salesAmountNet",
2423
+ denominatorField: "ticketsCount"
2424
+ }
2425
+ },
2426
+ guestAvg: {
2427
+ type: "money",
2428
+ columnKey: "guestAverage",
2429
+ footerCalculation: {
2430
+ type: "average",
2431
+ numeratorField: "salesAmountNet",
2432
+ denominatorField: "guestsCount"
2433
+ }
2434
+ }
2435
+ };
2436
+ var DAILY_SALES_TRENDS_AVAILABLE_COLUMNS = [
2437
+ "groupByName",
2438
+ "ticketsCount",
2439
+ "guestsCount",
2440
+ "ticketAvg",
2441
+ "guestAvg",
2442
+ "salesAmountNet"
2443
+ ];
2444
+ var dailySalesTrendsDayPartConfig = {
2445
+ fields: FIELDS17,
2446
+ availableColumns: DAILY_SALES_TRENDS_AVAILABLE_COLUMNS,
2447
+ defaultVisibleColumns: DAILY_SALES_TRENDS_AVAILABLE_COLUMNS,
2448
+ hasFooter: true,
2449
+ dataAccessKey: "trendsByDayPart",
2450
+ sectionName: "common.report-section.sales-by-day-part",
2451
+ extraFooterFields: ["salesAmountNet"]
2452
+ };
2453
+
2454
+ // src/reports/dailySales/dailySalesTrendsOrderType.ts
2455
+ var FIELDS18 = {
2456
+ groupById: { type: "string" },
2457
+ groupByName: {
2458
+ columnKey: "orderType",
2459
+ type: "string",
2460
+ size: FIRST_COLUMN_WIDTH,
2461
+ footerCalculation: { type: "label", label: "table.total" }
2462
+ },
2463
+ salesAmountNet: { type: "money", columnKey: "netSales" },
2464
+ ticketsCount: { type: "number", columnKey: "tickets" },
2465
+ guestsCount: { type: "number", columnKey: "guests" },
2466
+ ticketAvg: {
2467
+ type: "money",
2468
+ columnKey: "ticketAverage",
2469
+ footerCalculation: {
2470
+ type: "average",
2471
+ numeratorField: "salesAmountNet",
2472
+ denominatorField: "ticketsCount"
2473
+ }
2474
+ },
2475
+ guestAvg: {
2476
+ type: "money",
2477
+ columnKey: "guestAverage",
2478
+ footerCalculation: {
2479
+ type: "average",
2480
+ numeratorField: "salesAmountNet",
2481
+ denominatorField: "guestsCount"
2482
+ }
2483
+ }
2484
+ };
2485
+ var DAILY_SALES_TRENDS_AVAILABLE_COLUMNS2 = [
2486
+ "groupByName",
2487
+ "ticketsCount",
2488
+ "guestsCount",
2489
+ "ticketAvg",
2490
+ "guestAvg",
2491
+ "salesAmountNet"
2492
+ ];
2493
+ var dailySalesTrendsOrderTypeConfig = {
2494
+ fields: FIELDS18,
2495
+ availableColumns: DAILY_SALES_TRENDS_AVAILABLE_COLUMNS2,
2496
+ defaultVisibleColumns: DAILY_SALES_TRENDS_AVAILABLE_COLUMNS2,
2497
+ hasFooter: true,
2498
+ dataAccessKey: "trendsByOrderType",
2499
+ sectionName: "common.report-section.sales-by-order-type",
2500
+ extraFooterFields: ["salesAmountNet"]
2501
+ };
2502
+
2503
+ // src/report.ts
2504
+ var Report = {
2505
+ TICKET_LIVE: "ticket-live",
2506
+ TICKET_ANALYTICS: "ticket-analytics",
2507
+ SALES_SUMMARY: "sales-summary",
2508
+ PRODUCT_MIX: "product-mix",
2509
+ MODIFIER_MIX: "modifier-mix",
2510
+ ITEM_TAX: "item-tax",
2511
+ EMPLOYEE_TIMECARD: "employee-timecard",
2512
+ EMPLOYEE_TIP: "employee-tip",
2513
+ TIP_CASHOUT_RECONCILIATION: "tip-cashout-reconciliation",
2514
+ SALES_BY_ITEM: "sales-by-item",
2515
+ DAILY_SALES: "daily-sales",
2516
+ DAILY_SALES_LIVE: "daily-sales-live"
2517
+ };
2518
+ var DAILY_SALES_SECTION_CONFIGS = [
2519
+ dailySalesConfig,
2520
+ dailySalesPaymentsConfig,
2521
+ dailySalesCacheConfig,
2522
+ dailySalesTaxesConfig,
2523
+ dailySalesRefundsVoidsConfig,
2524
+ dailySalesDiscountsConfig,
2525
+ dailySalesTrendsDayPartConfig,
2526
+ dailySalesTrendsOrderTypeConfig
2527
+ ];
2528
+ var REPORT_CONFIG_MAP = {
2529
+ "sales-summary": salesSummaryConfig,
2530
+ "ticket-analytics": ticketSummaryConfig,
2531
+ "ticket-live": ticketLiveConfig,
2532
+ "product-mix": productMixConfig,
2533
+ "modifier-mix": modifierMixConfig,
2534
+ "item-tax": itemTaxConfig,
2535
+ "employee-timecard": employeeTimecardConfig,
2536
+ "employee-tip": employeeTipConfig,
2537
+ "tip-cashout-reconciliation": tipCashoutReconciliationConfig,
2538
+ "sales-by-item": salesByItemDetailConfig,
2539
+ "daily-sales": DAILY_SALES_SECTION_CONFIGS,
2540
+ "daily-sales-live": DAILY_SALES_SECTION_CONFIGS
2541
+ };
2542
+ var REPORT_DEFAULT_NAME_MAP = {
2543
+ "sales-summary": "Sales",
2544
+ "ticket-analytics": "Tickets",
2545
+ "ticket-live": "Tickets Live",
2546
+ "product-mix": "Product Mix",
2547
+ "modifier-mix": "Modifier Mix",
2548
+ "item-tax": "Sales Tax by Item",
2549
+ "employee-timecard": "Employee Timecard",
2550
+ "employee-tip": "Employee Tip",
2551
+ "tip-cashout-reconciliation": "Tip & Cashout Reconciliation",
2552
+ "sales-by-item": "Sales by Item",
2553
+ "daily-sales": "Daily Sales",
2554
+ "daily-sales-live": "Daily Sales Live"
2555
+ };
2556
+ var getReportConfig = (reportType) => REPORT_CONFIG_MAP[reportType];
2557
+ var getFixedColumns = (config, parameters) => {
2558
+ const visibleColumns = new Set(config.defaultVisibleColumns ?? []);
2559
+ const fixedCols = config.availableColumns.filter((col) => !visibleColumns.has(col));
2560
+ return fixedCols.filter((col) => {
2561
+ if (col === "groupByName2") {
2562
+ return !!parameters?.secondGroupBy;
2563
+ }
2564
+ return true;
2565
+ });
2566
+ };
2567
+ var getReportExportFileName = ({
2568
+ reportType,
2569
+ startDate,
2570
+ endDate,
2571
+ format
2572
+ }) => {
2573
+ const formatDate2 = (date) => {
2574
+ return [
2575
+ date.getFullYear(),
2576
+ String(date.getMonth() + 1).padStart(2, "0"),
2577
+ String(date.getDate()).padStart(2, "0")
2578
+ ].join("-");
2579
+ };
2580
+ const filename = REPORT_DEFAULT_NAME_MAP[reportType].replace(/\s+/g, "_") ?? "Report";
2581
+ return `${filename}_${formatDate2(startDate)}_to_${formatDate2(endDate)}.${format}`.toLocaleLowerCase();
2582
+ };
2583
+
2584
+ // src/columns/index.ts
2585
+ var COLUMN_REGISTRY = {
2586
+ fifteenMinInterval: {
2587
+ titleKey: "common.report-col.fifteen-min-interval",
2588
+ shortTitleKey: "common.report-col.fifteen-min-interval.short",
2589
+ infoTextKey: "common.report-col.fifteen-min-interval.info"
2590
+ },
2591
+ adjustedTips: {
2592
+ titleKey: "common.report-col.adjusted-tips",
2593
+ shortTitleKey: "common.report-col.adjusted-tips.short",
2594
+ infoTextKey: "common.report-col.adjusted-tips.info"
2595
+ },
2596
+ advantageProgram: {
2597
+ titleKey: "common.report-col.advantage-program",
2598
+ shortTitleKey: "common.report-col.advantage-program.short",
2599
+ infoTextKey: "common.report-col.advantage-program.info"
2600
+ },
2601
+ amex: {
2602
+ titleKey: "common.report-col.amex",
2603
+ shortTitleKey: "common.report-col.amex.short",
2604
+ infoTextKey: "common.report-col.amex.info"
2605
+ },
2606
+ amexReturns: {
2607
+ titleKey: "common.report-col.amex-returns",
2608
+ shortTitleKey: "common.report-col.amex-returns.short",
2609
+ infoTextKey: "common.report-col.amex-returns.info"
2610
+ },
2611
+ attachRate: {
2612
+ titleKey: "common.report-col.attach-rate",
2613
+ shortTitleKey: "common.report-col.attach-rate.short",
2614
+ infoTextKey: "common.report-col.attach-rate.info"
2615
+ },
2616
+ autoGratuity: {
2617
+ titleKey: "common.report-col.auto-gratuity",
2618
+ shortTitleKey: "common.report-col.auto-gratuity.short",
2619
+ infoTextKey: "common.report-col.auto-gratuity.info"
2620
+ },
2621
+ averageGrossPrice: {
2622
+ titleKey: "common.report-col.average-gross-price",
2623
+ shortTitleKey: "common.report-col.average-gross-price.short",
2624
+ infoTextKey: "common.report-col.average-gross-price.info"
2625
+ },
2626
+ bankFees: {
2627
+ titleKey: "common.report-col.bank-fees",
2628
+ shortTitleKey: "common.report-col.bank-fees.short",
2629
+ infoTextKey: "common.report-col.bank-fees.info"
2630
+ },
2631
+ batchAmount: {
2632
+ titleKey: "common.report-col.batch-amount",
2633
+ shortTitleKey: "common.report-col.batch-amount.short",
2634
+ infoTextKey: "common.report-col.batch-amount.info"
2635
+ },
2636
+ batchDate: {
2637
+ titleKey: "common.report-col.batch-date",
2638
+ shortTitleKey: "common.report-col.batch-date.short",
2639
+ infoTextKey: "common.report-col.batch-date.info"
2640
+ },
2641
+ batchNumber: {
2642
+ titleKey: "common.report-col.batch-number",
2643
+ shortTitleKey: "common.report-col.batch-number.short",
2644
+ infoTextKey: "common.report-col.batch-number.info"
2645
+ },
2646
+ cashCollected: {
2647
+ titleKey: "common.report-col.cash-collected",
2648
+ shortTitleKey: "common.report-col.cash-collected.short",
2649
+ infoTextKey: "common.report-col.cash-collected.info"
2650
+ },
2651
+ clockInTime: {
2652
+ titleKey: "common.report-col.clock-in-time",
2653
+ shortTitleKey: "common.report-col.clock-in-time.short",
2654
+ infoTextKey: "common.report-col.clock-in-time.info"
2655
+ },
2656
+ clockOutTime: {
2657
+ titleKey: "common.report-col.clock-out-time",
2658
+ shortTitleKey: "common.report-col.clock-out-time.short",
2659
+ infoTextKey: "common.report-col.clock-out-time.info"
2660
+ },
2661
+ country: {
2662
+ titleKey: "common.report-col.country",
2663
+ shortTitleKey: "common.report-col.country.short",
2664
+ infoTextKey: "common.report-col.country.info"
2665
+ },
2666
+ customerName: {
2667
+ titleKey: "common.report-col.customer-name",
2668
+ shortTitleKey: "common.report-col.customer-name.short",
2669
+ infoTextKey: "common.report-col.customer-name.info"
2670
+ },
2671
+ date: {
2672
+ titleKey: "common.report-col.date",
2673
+ shortTitleKey: "common.report-col.date.short",
2674
+ infoTextKey: "common.report-col.date.info"
2675
+ },
2676
+ dateClose: {
2677
+ titleKey: "common.report-col.date-close",
2678
+ shortTitleKey: "common.report-col.date-close.short",
2679
+ infoTextKey: "common.report-col.date-close.info"
2680
+ },
2681
+ daypart: {
2682
+ titleKey: "common.report-col.daypart",
2683
+ shortTitleKey: "common.report-col.daypart.short",
2684
+ infoTextKey: "common.report-col.daypart.info"
2685
+ },
2686
+ debit: {
2687
+ titleKey: "common.report-col.debit",
2688
+ shortTitleKey: "common.report-col.debit.short",
2689
+ infoTextKey: "common.report-col.debit.info"
2690
+ },
2691
+ debitReturns: {
2692
+ titleKey: "common.report-col.debit-returns",
2693
+ shortTitleKey: "common.report-col.debit-returns.short",
2694
+ infoTextKey: "common.report-col.debit-returns.info"
2695
+ },
2696
+ declaredTips: {
2697
+ titleKey: "common.report-col.declared-tips",
2698
+ shortTitleKey: "common.report-col.declared-tips.short",
2699
+ infoTextKey: "common.report-col.declared-tips.info"
2700
+ },
2701
+ department: {
2702
+ titleKey: "common.report-col.department",
2703
+ shortTitleKey: "common.report-col.department.short",
2704
+ infoTextKey: "common.report-col.department.info"
2705
+ },
2706
+ depositCurrency: {
2707
+ titleKey: "common.report-col.deposit-currency",
2708
+ shortTitleKey: "common.report-col.deposit-currency.short",
2709
+ infoTextKey: "common.report-col.deposit-currency.info"
2710
+ },
2711
+ depositDate: {
2712
+ titleKey: "common.report-col.deposit-date",
2713
+ shortTitleKey: "common.report-col.deposit-date.short",
2714
+ infoTextKey: "common.report-col.deposit-date.info"
2715
+ },
2716
+ discountAmount: {
2717
+ titleKey: "common.report-col.discount-amount",
2718
+ shortTitleKey: "common.report-col.discount-amount.short",
2719
+ infoTextKey: "common.report-col.discount-amount.info"
2720
+ },
2721
+ discountCount: {
2722
+ titleKey: "common.report-col.discount-count",
2723
+ shortTitleKey: "common.report-col.discount-count.short",
2724
+ infoTextKey: "common.report-col.discount-count.info"
2725
+ },
2726
+ ticketCount: {
2727
+ titleKey: "common.report-col.ticket-count",
2728
+ shortTitleKey: "common.report-col.ticket-count.short",
2729
+ infoTextKey: "common.report-col.ticket-count.info"
2730
+ },
2731
+ itemCount: {
2732
+ titleKey: "common.report-col.item-count",
2733
+ shortTitleKey: "common.report-col.item-count.short",
2734
+ infoTextKey: "common.report-col.item-count.info"
2735
+ },
2736
+ discover: {
2737
+ titleKey: "common.report-col.discover",
2738
+ shortTitleKey: "common.report-col.discover.short",
2739
+ infoTextKey: "common.report-col.discover.info"
2740
+ },
2741
+ discoverReturns: {
2742
+ titleKey: "common.report-col.discover-returns",
2743
+ shortTitleKey: "common.report-col.discover-returns.short",
2744
+ infoTextKey: "common.report-col.discover-returns.info"
2745
+ },
2746
+ ebt: {
2747
+ titleKey: "common.report-col.ebt",
2748
+ shortTitleKey: "common.report-col.ebt.short",
2749
+ infoTextKey: "common.report-col.ebt.info"
2750
+ },
2751
+ ebtReturns: {
2752
+ titleKey: "common.report-col.ebt-returns",
2753
+ shortTitleKey: "common.report-col.ebt-returns.short",
2754
+ infoTextKey: "common.report-col.ebt-returns.info"
2755
+ },
2756
+ employeeId: {
2757
+ titleKey: "common.report-col.employee-id",
2758
+ shortTitleKey: "common.report-col.employee-id.short",
2759
+ infoTextKey: "common.report-col.employee-id.info"
2760
+ },
2761
+ employeeJob: {
2762
+ titleKey: "common.report-col.employee-job",
2763
+ shortTitleKey: "common.report-col.employee-job.short",
2764
+ infoTextKey: "common.report-col.employee-job.info"
2765
+ },
2766
+ employeeName: {
2767
+ titleKey: "common.report-col.employee-name",
2768
+ shortTitleKey: "common.report-col.employee-name.short",
2769
+ infoTextKey: "common.report-col.employee-name.info"
2770
+ },
2771
+ exemptTaxes: {
2772
+ titleKey: "common.report-col.exempt-taxes",
2773
+ shortTitleKey: "common.report-col.exempt-taxes.short",
2774
+ infoTextKey: "common.report-col.exempt-taxes.info"
2775
+ },
2776
+ exemptSales: {
2777
+ titleKey: "common.report-col.exempt-sales",
2778
+ shortTitleKey: "common.report-col.exempt-sales.short",
2779
+ infoTextKey: "common.report-col.exempt-sales.info"
2780
+ },
2781
+ grandTotal: {
2782
+ titleKey: "common.report-col.grand-total",
2783
+ shortTitleKey: "common.report-col.grand-total.short",
2784
+ infoTextKey: "common.report-col.grand-total.info"
2785
+ },
2786
+ grossCashSales: {
2787
+ titleKey: "common.report-col.gross-cash-sales",
2788
+ shortTitleKey: "common.report-col.gross-cash-sales.short",
2789
+ infoTextKey: "common.report-col.gross-cash-sales.info"
2790
+ },
2791
+ grossCashTips: {
2792
+ titleKey: "common.report-col.gross-cash-tips",
2793
+ shortTitleKey: "common.report-col.gross-cash-tips.short",
2794
+ infoTextKey: "common.report-col.gross-cash-tips.info"
2795
+ },
2796
+ grossCreditCardTips: {
2797
+ titleKey: "common.report-col.gross-credit-card-tips",
2798
+ shortTitleKey: "common.report-col.gross-credit-card-tips.short",
2799
+ infoTextKey: "common.report-col.gross-credit-card-tips.info"
2800
+ },
2801
+ grossCreditSales: {
2802
+ titleKey: "common.report-col.gross-credit-sales",
2803
+ shortTitleKey: "common.report-col.gross-credit-sales.short",
2804
+ infoTextKey: "common.report-col.gross-credit-sales.info"
2805
+ },
2806
+ grossSales: {
2807
+ titleKey: "common.report-col.gross-sales",
2808
+ shortTitleKey: "common.report-col.gross-sales.short",
2809
+ infoTextKey: "common.report-col.gross-sales.info"
2810
+ },
2811
+ grossTips: {
2812
+ titleKey: "common.report-col.gross-tips",
2813
+ shortTitleKey: "common.report-col.gross-tips.short",
2814
+ infoTextKey: "common.report-col.gross-tips.info"
2815
+ },
2816
+ guestCount: {
2817
+ titleKey: "common.report-col.guest-count",
2818
+ shortTitleKey: "common.report-col.guest-count.short",
2819
+ infoTextKey: "common.report-col.guest-count.info"
2820
+ },
2821
+ guestsVarLw: {
2822
+ titleKey: "common.report-col.guests-var-lw",
2823
+ shortTitleKey: "common.report-col.guests-var-lw.short",
2824
+ infoTextKey: "common.report-col.guests-var-lw.info"
2825
+ },
2826
+ guestsVarLwPct: {
2827
+ titleKey: "common.report-col.guests-var-lw-pct",
2828
+ shortTitleKey: "common.report-col.guests-var-lw-pct.short",
2829
+ infoTextKey: "common.report-col.guests-var-lw-pct.info"
2830
+ },
2831
+ guestsVarLy: {
2832
+ titleKey: "common.report-col.guests-var-ly",
2833
+ shortTitleKey: "common.report-col.guests-var-ly.short",
2834
+ infoTextKey: "common.report-col.guests-var-ly.info"
2835
+ },
2836
+ guestsVarLyPct: {
2837
+ titleKey: "common.report-col.guests-var-ly-pct",
2838
+ shortTitleKey: "common.report-col.guests-var-ly-pct.short",
2839
+ infoTextKey: "common.report-col.guests-var-ly-pct.info"
2840
+ },
2841
+ hour: {
2842
+ titleKey: "common.report-col.hour",
2843
+ shortTitleKey: "common.report-col.hour.short",
2844
+ infoTextKey: "common.report-col.hour.info"
2845
+ },
2846
+ hoursWorked: {
2847
+ titleKey: "common.report-col.hours-worked",
2848
+ shortTitleKey: "common.report-col.hours-worked.short",
2849
+ infoTextKey: "common.report-col.hours-worked.info"
2850
+ },
2851
+ inclusiveTax: {
2852
+ titleKey: "common.report-col.inclusive-tax",
2853
+ shortTitleKey: "common.report-col.inclusive-tax.short",
2854
+ infoTextKey: "common.report-col.inclusive-tax.info"
2855
+ },
2856
+ itemName: {
2857
+ titleKey: "common.report-col.item-name",
2858
+ shortTitleKey: "common.report-col.item-name.short",
2859
+ infoTextKey: "common.report-col.item-name.info"
2860
+ },
2861
+ itemPrice: {
2862
+ titleKey: "common.report-col.item-price",
2863
+ shortTitleKey: "common.report-col.item-price.short",
2864
+ infoTextKey: "common.report-col.item-price.info"
2865
+ },
2866
+ itemQuantity: {
2867
+ titleKey: "common.report-col.item-quantity",
2868
+ shortTitleKey: "common.report-col.item-quantity.short",
2869
+ infoTextKey: "common.report-col.item-quantity.info"
2870
+ },
2871
+ locationCity: {
2872
+ titleKey: "common.report-col.location-city",
2873
+ shortTitleKey: "common.report-col.location-city.short",
2874
+ infoTextKey: "common.report-col.location-city.info"
2875
+ },
2876
+ locationId: {
2877
+ titleKey: "common.report-col.location-id",
2878
+ shortTitleKey: "common.report-col.location-id.short",
2879
+ infoTextKey: "common.report-col.location-id.info"
2880
+ },
2881
+ locationMid: {
2882
+ titleKey: "common.report-col.location-mid",
2883
+ shortTitleKey: "common.report-col.location-mid.short",
2884
+ infoTextKey: "common.report-col.location-mid.info"
2885
+ },
2886
+ locationName: {
2887
+ titleKey: "common.report-col.location-name",
2888
+ shortTitleKey: "common.report-col.location-name.short",
2889
+ infoTextKey: "common.report-col.location-name.info"
2890
+ },
2891
+ locationState: {
2892
+ titleKey: "common.report-col.location-state",
2893
+ shortTitleKey: "common.report-col.location-state.short",
2894
+ infoTextKey: "common.report-col.location-state.info"
2895
+ },
2896
+ mastercard: {
2897
+ titleKey: "common.report-col.mastercard",
2898
+ shortTitleKey: "common.report-col.mastercard.short",
2899
+ infoTextKey: "common.report-col.mastercard.info"
2900
+ },
2901
+ mcReturns: {
2902
+ titleKey: "common.report-col.mc-returns",
2903
+ shortTitleKey: "common.report-col.mc-returns.short",
2904
+ infoTextKey: "common.report-col.mc-returns.info"
2905
+ },
2906
+ modifierName: {
2907
+ titleKey: "common.report-col.modifier-name",
2908
+ shortTitleKey: "common.report-col.modifier-name.short",
2909
+ infoTextKey: "common.report-col.modifier-name.info"
2910
+ },
2911
+ modifierPrice: {
2912
+ titleKey: "common.report-col.modifier-price",
2913
+ shortTitleKey: "common.report-col.modifier-price.short",
2914
+ infoTextKey: "common.report-col.modifier-price.info"
2915
+ },
2916
+ modifierQuantity: {
2917
+ titleKey: "common.report-col.modifier-quantity",
2918
+ shortTitleKey: "common.report-col.modifier-quantity.short",
2919
+ infoTextKey: "common.report-col.modifier-quantity.info"
2920
+ },
2921
+ netSales: {
2922
+ titleKey: "common.report-col.net-sales",
2923
+ shortTitleKey: "common.report-col.net-sales.short",
2924
+ infoTextKey: "common.report-col.net-sales.info"
2925
+ },
2926
+ netTaxCollected: {
2927
+ titleKey: "common.report-col.net-tax-collected",
2928
+ shortTitleKey: "common.report-col.net-tax-collected.short",
2929
+ infoTextKey: "common.report-col.net-tax-collected.info"
2930
+ },
2931
+ netTips: {
2932
+ titleKey: "common.report-col.net-tips",
2933
+ shortTitleKey: "common.report-col.net-tips.short",
2934
+ infoTextKey: "common.report-col.net-tips.info"
2935
+ },
2936
+ numberOfGuests: {
2937
+ titleKey: "common.report-col.number-of-guests",
2938
+ shortTitleKey: "common.report-col.number-of-guests.short",
2939
+ infoTextKey: "common.report-col.number-of-guests.info"
2940
+ },
2941
+ orderType: {
2942
+ titleKey: "common.report-col.order-type",
2943
+ shortTitleKey: "common.report-col.order-type.short",
2944
+ infoTextKey: "common.report-col.order-type.info"
2945
+ },
2946
+ paymentType: {
2947
+ titleKey: "common.report-col.payment-type",
2948
+ shortTitleKey: "common.report-col.payment-type.short",
2949
+ infoTextKey: "common.report-col.payment-type.info"
2950
+ },
2951
+ payrollId: {
2952
+ titleKey: "common.report-col.payroll-id",
2953
+ shortTitleKey: "common.report-col.payroll-id.short",
2954
+ infoTextKey: "common.report-col.payroll-id.info"
2955
+ },
2956
+ quantity: {
2957
+ titleKey: "common.report-col.quantity",
2958
+ shortTitleKey: "common.report-col.quantity.short",
2959
+ infoTextKey: "common.report-col.quantity.info"
2960
+ },
2961
+ referenceNumber: {
2962
+ titleKey: "common.report-col.reference-number",
2963
+ shortTitleKey: "common.report-col.reference-number.short",
2964
+ infoTextKey: "common.report-col.reference-number.info"
2965
+ },
2966
+ refundAmount: {
2967
+ titleKey: "common.report-col.refund-amount",
2968
+ shortTitleKey: "common.report-col.refund-amount.short",
2969
+ infoTextKey: "common.report-col.refund-amount.info"
2970
+ },
2971
+ refundedTaxAmount: {
2972
+ titleKey: "common.report-col.refunded-tax-amount",
2973
+ shortTitleKey: "common.report-col.refunded-tax-amount.short",
2974
+ infoTextKey: "common.report-col.refunded-tax-amount.info"
2975
+ },
2976
+ revenueCenter: {
2977
+ titleKey: "common.report-col.revenue-center",
2978
+ shortTitleKey: "common.report-col.revenue-center.short",
2979
+ infoTextKey: "common.report-col.revenue-center.info"
2980
+ },
2981
+ revenueClass: {
2982
+ titleKey: "common.report-col.revenue-class",
2983
+ shortTitleKey: "common.report-col.revenue-class.short",
2984
+ infoTextKey: "common.report-col.revenue-class.info"
2985
+ },
2986
+ salesVarLw: {
2987
+ titleKey: "common.report-col.sales-var-lw",
2988
+ shortTitleKey: "common.report-col.sales-var-lw.short",
2989
+ infoTextKey: "common.report-col.sales-var-lw.info"
2990
+ },
2991
+ salesVarLwPct: {
2992
+ titleKey: "common.report-col.sales-var-lw-pct",
2993
+ shortTitleKey: "common.report-col.sales-var-lw-pct.short",
2994
+ infoTextKey: "common.report-col.sales-var-lw-pct.info"
2995
+ },
2996
+ salesVarLy: {
2997
+ titleKey: "common.report-col.sales-var-ly",
2998
+ shortTitleKey: "common.report-col.sales-var-ly.short",
2999
+ infoTextKey: "common.report-col.sales-var-ly.info"
3000
+ },
3001
+ salesVarLyPct: {
3002
+ titleKey: "common.report-col.sales-var-ly-pct",
3003
+ shortTitleKey: "common.report-col.sales-var-ly-pct.short",
3004
+ infoTextKey: "common.report-col.sales-var-ly-pct.info"
3005
+ },
3006
+ salesMixByPct: {
3007
+ titleKey: "common.report-col.sales-mix-by-pct",
3008
+ shortTitleKey: "common.report-col.sales-mix-by-pct.short",
3009
+ infoTextKey: "common.report-col.sales-mix-by-pct.info"
3010
+ },
3011
+ salesPerGuest: {
3012
+ titleKey: "common.report-col.sales-per-guest",
3013
+ shortTitleKey: "common.report-col.sales-per-guest.short",
3014
+ infoTextKey: "common.report-col.sales-per-guest.info"
3015
+ },
3016
+ salesPerGuestLw: {
3017
+ titleKey: "common.report-col.sales-per-guest-lw",
3018
+ shortTitleKey: "common.report-col.sales-per-guest-lw.short",
3019
+ infoTextKey: "common.report-col.sales-per-guest-lw.info"
3020
+ },
3021
+ salesPerGuestLy: {
3022
+ titleKey: "common.report-col.sales-per-guest-ly",
3023
+ shortTitleKey: "common.report-col.sales-per-guest-ly.short",
3024
+ infoTextKey: "common.report-col.sales-per-guest-ly.info"
3025
+ },
3026
+ scheduledShiftEnd: {
3027
+ titleKey: "common.report-col.scheduled-shift-end",
3028
+ shortTitleKey: "common.report-col.scheduled-shift-end.short",
3029
+ infoTextKey: "common.report-col.scheduled-shift-end.info"
3030
+ },
3031
+ scheduledShiftStart: {
3032
+ titleKey: "common.report-col.scheduled-shift-start",
3033
+ shortTitleKey: "common.report-col.scheduled-shift-start.short",
3034
+ infoTextKey: "common.report-col.scheduled-shift-start.info"
3035
+ },
3036
+ settlementBatchDate: {
3037
+ titleKey: "common.report-col.settlement-batch-date",
3038
+ shortTitleKey: "common.report-col.settlement-batch-date.short",
3039
+ infoTextKey: "common.report-col.settlement-batch-date.info"
3040
+ },
3041
+ shiftDurationHrs: {
3042
+ titleKey: "common.report-col.shift-duration-hrs",
3043
+ shortTitleKey: "common.report-col.shift-duration-hrs.short",
3044
+ infoTextKey: "common.report-col.shift-duration-hrs.info"
3045
+ },
3046
+ salePaymentType: {
3047
+ titleKey: "common.report-col.sale-payment-type",
3048
+ shortTitleKey: "common.report-col.sale-payment-type.short",
3049
+ infoTextKey: "common.report-col.sale-payment-type.info"
3050
+ },
3051
+ status: {
3052
+ titleKey: "common.report-col.status",
3053
+ shortTitleKey: "common.report-col.status.short",
3054
+ infoTextKey: "common.report-col.status.info"
3055
+ },
3056
+ lastModified: {
3057
+ titleKey: "common.report-col.last-modified",
3058
+ shortTitleKey: "common.report-col.last-modified.short",
3059
+ infoTextKey: "common.report-col.last-modified.info"
3060
+ },
3061
+ subtotal: {
3062
+ titleKey: "common.report-col.subtotal",
3063
+ shortTitleKey: "common.report-col.subtotal.short",
3064
+ infoTextKey: "common.report-col.subtotal.info"
3065
+ },
3066
+ taxCollected: {
3067
+ titleKey: "common.report-col.tax-collected",
3068
+ shortTitleKey: "common.report-col.tax-collected.short",
3069
+ infoTextKey: "common.report-col.tax-collected.info"
3070
+ },
3071
+ taxName: {
3072
+ titleKey: "common.report-col.tax-name",
3073
+ shortTitleKey: "common.report-col.tax-name.short",
3074
+ infoTextKey: "common.report-col.tax-name.info"
3075
+ },
3076
+ taxRate: {
3077
+ titleKey: "common.report-col.tax-rate",
3078
+ shortTitleKey: "common.report-col.tax-rate.short",
3079
+ infoTextKey: "common.report-col.tax-rate.info"
3080
+ },
3081
+ taxableSales: {
3082
+ titleKey: "common.report-col.taxable-sales",
3083
+ shortTitleKey: "common.report-col.taxable-sales.short",
3084
+ infoTextKey: "common.report-col.taxable-sales.info"
3085
+ },
3086
+ ticketClosed: {
3087
+ titleKey: "common.report-col.ticket-closed",
3088
+ shortTitleKey: "common.report-col.ticket-closed.short",
3089
+ infoTextKey: "common.report-col.ticket-closed.info"
3090
+ },
3091
+ ticketFee: {
3092
+ titleKey: "common.report-col.ticket-fee",
3093
+ shortTitleKey: "common.report-col.ticket-fee.short",
3094
+ infoTextKey: "common.report-col.ticket-fee.info"
3095
+ },
3096
+ ticketNumber: {
3097
+ titleKey: "common.report-col.ticket-number",
3098
+ shortTitleKey: "common.report-col.ticket-number.short",
3099
+ infoTextKey: "common.report-col.ticket-number.info"
3100
+ },
3101
+ ticketOpen: {
3102
+ titleKey: "common.report-col.ticket-open",
3103
+ shortTitleKey: "common.report-col.ticket-open.short",
3104
+ infoTextKey: "common.report-col.ticket-open.info"
3105
+ },
3106
+ ticketTotal: {
3107
+ titleKey: "common.report-col.ticket-total",
3108
+ shortTitleKey: "common.report-col.ticket-total.short",
3109
+ infoTextKey: "common.report-col.ticket-total.info"
3110
+ },
3111
+ timeOpenMins: {
3112
+ titleKey: "common.report-col.time-open-mins",
3113
+ shortTitleKey: "common.report-col.time-open-mins.short",
3114
+ infoTextKey: "common.report-col.time-open-mins.info"
3115
+ },
3116
+ tipPct: {
3117
+ titleKey: "common.report-col.tip-pct",
3118
+ shortTitleKey: "common.report-col.tip-pct.short",
3119
+ infoTextKey: "common.report-col.tip-pct.info"
3120
+ },
3121
+ tipReduction: {
3122
+ titleKey: "common.report-col.tip-reduction",
3123
+ shortTitleKey: "common.report-col.tip-reduction.short",
3124
+ infoTextKey: "common.report-col.tip-reduction.info"
3125
+ },
3126
+ tipShare: {
3127
+ titleKey: "common.report-col.tip-share",
3128
+ shortTitleKey: "common.report-col.tip-share.short",
3129
+ infoTextKey: "common.report-col.tip-share.info"
3130
+ },
3131
+ tipShareContributed: {
3132
+ titleKey: "common.report-col.tip-share-contributed",
3133
+ shortTitleKey: "common.report-col.tip-share-contributed.short",
3134
+ infoTextKey: "common.report-col.tip-share-contributed.info"
3135
+ },
3136
+ tips: {
3137
+ titleKey: "common.report-col.tips",
3138
+ shortTitleKey: "common.report-col.tips.short",
3139
+ infoTextKey: "common.report-col.tips.info"
3140
+ },
3141
+ tipsPerHour: {
3142
+ titleKey: "common.report-col.tips-per-hour",
3143
+ shortTitleKey: "common.report-col.tips-per-hour.short",
3144
+ infoTextKey: "common.report-col.tips-per-hour.info"
3145
+ },
3146
+ totalCollected: {
3147
+ titleKey: "common.report-col.total-collected",
3148
+ shortTitleKey: "common.report-col.total-collected.short",
3149
+ infoTextKey: "common.report-col.total-collected.info"
3150
+ },
3151
+ totalItemSales: {
3152
+ titleKey: "common.report-col.total-item-sales",
3153
+ shortTitleKey: "common.report-col.total-item-sales.short",
3154
+ infoTextKey: "common.report-col.total-item-sales.info"
3155
+ },
3156
+ totalModifierSales: {
3157
+ titleKey: "common.report-col.total-modifier-sales",
3158
+ shortTitleKey: "common.report-col.total-modifier-sales.short",
3159
+ infoTextKey: "common.report-col.total-modifier-sales.info"
3160
+ },
3161
+ totalModifierSalesComp: {
3162
+ titleKey: "common.report-col.total-modifier-sales-comp",
3163
+ shortTitleKey: "common.report-col.total-modifier-sales-comp.short",
3164
+ infoTextKey: "common.report-col.total-modifier-sales-comp.info"
3165
+ },
3166
+ totalModifierSalesVar: {
3167
+ titleKey: "common.report-col.total-modifier-sales-var",
3168
+ shortTitleKey: "common.report-col.total-modifier-sales-var.short",
3169
+ infoTextKey: "common.report-col.total-modifier-sales-var.info"
3170
+ },
3171
+ totalModifierSalesVarPct: {
3172
+ titleKey: "common.report-col.total-modifier-sales-var-pct",
3173
+ shortTitleKey: "common.report-col.total-modifier-sales-var-pct.short",
3174
+ infoTextKey: "common.report-col.total-modifier-sales-var-pct.info"
3175
+ },
3176
+ modifierQuantityComp: {
3177
+ titleKey: "common.report-col.modifier-quantity-comp",
3178
+ shortTitleKey: "common.report-col.modifier-quantity-comp.short",
3179
+ infoTextKey: "common.report-col.modifier-quantity-comp.info"
3180
+ },
3181
+ modifierQuantityVar: {
3182
+ titleKey: "common.report-col.modifier-quantity-var",
3183
+ shortTitleKey: "common.report-col.modifier-quantity-var.short",
3184
+ infoTextKey: "common.report-col.modifier-quantity-var.info"
3185
+ },
3186
+ modifierQuantityVarPct: {
3187
+ titleKey: "common.report-col.modifier-quantity-var-pct",
3188
+ shortTitleKey: "common.report-col.modifier-quantity-var-pct.short",
3189
+ infoTextKey: "common.report-col.modifier-quantity-var-pct.info"
3190
+ },
3191
+ itemQuantityComp: {
3192
+ titleKey: "common.report-col.item-quantity-comp",
3193
+ shortTitleKey: "common.report-col.item-quantity-comp.short",
3194
+ infoTextKey: "common.report-col.item-quantity-comp.info"
3195
+ },
3196
+ attachRateComp: {
3197
+ titleKey: "common.report-col.attach-rate-comp",
3198
+ shortTitleKey: "common.report-col.attach-rate-comp.short",
3199
+ infoTextKey: "common.report-col.attach-rate-comp.info"
3200
+ },
3201
+ attachRateVar: {
3202
+ titleKey: "common.report-col.attach-rate-var",
3203
+ shortTitleKey: "common.report-col.attach-rate-var.short",
3204
+ infoTextKey: "common.report-col.attach-rate-var.info"
3205
+ },
3206
+ attachRateVarPct: {
3207
+ titleKey: "common.report-col.attach-rate-var-pct",
3208
+ shortTitleKey: "common.report-col.attach-rate-var-pct.short",
3209
+ infoTextKey: "common.report-col.attach-rate-var-pct.info"
3210
+ },
3211
+ totalReturns: {
3212
+ titleKey: "common.report-col.total-returns",
3213
+ shortTitleKey: "common.report-col.total-returns.short",
3214
+ infoTextKey: "common.report-col.total-returns.info"
3215
+ },
3216
+ totalSales: {
3217
+ titleKey: "common.report-col.total-sales",
3218
+ shortTitleKey: "common.report-col.total-sales.short",
3219
+ infoTextKey: "common.report-col.total-sales.info"
3220
+ },
3221
+ totalTips: {
3222
+ titleKey: "common.report-col.total-tips",
3223
+ shortTitleKey: "common.report-col.total-tips.short",
3224
+ infoTextKey: "common.report-col.total-tips.info"
3225
+ },
3226
+ transactionDate: {
3227
+ titleKey: "common.report-col.transaction-date",
3228
+ shortTitleKey: "common.report-col.transaction-date.short",
3229
+ infoTextKey: "common.report-col.transaction-date.info"
3230
+ },
3231
+ transactionType: {
3232
+ titleKey: "common.report-col.transaction-type",
3233
+ shortTitleKey: "common.report-col.transaction-type.short",
3234
+ infoTextKey: "common.report-col.transaction-type.info"
3235
+ },
3236
+ untaxedSales: {
3237
+ titleKey: "common.report-col.untaxed-sales",
3238
+ shortTitleKey: "common.report-col.untaxed-sales.short",
3239
+ infoTextKey: "common.report-col.untaxed-sales.info"
3240
+ },
3241
+ visa: {
3242
+ titleKey: "common.report-col.visa",
3243
+ shortTitleKey: "common.report-col.visa.short",
3244
+ infoTextKey: "common.report-col.visa.info"
3245
+ },
3246
+ visaReturns: {
3247
+ titleKey: "common.report-col.visa-returns",
3248
+ shortTitleKey: "common.report-col.visa-returns.short",
3249
+ infoTextKey: "common.report-col.visa-returns.info"
3250
+ },
3251
+ paymentsCount: {
3252
+ titleKey: "common.report-col.payments-count",
3253
+ shortTitleKey: "common.report-col.payments-count.short",
3254
+ infoTextKey: "common.report-col.payments-count.info"
3255
+ },
3256
+ paymentsAmount: {
3257
+ titleKey: "common.report-col.payments-amount",
3258
+ shortTitleKey: "common.report-col.payments-amount.short",
3259
+ infoTextKey: "common.report-col.payments-amount.info"
3260
+ },
3261
+ paymentsTotal: {
3262
+ titleKey: "common.report-col.payments-total",
3263
+ shortTitleKey: "common.report-col.payments-total.short",
3264
+ infoTextKey: "common.report-col.payments-total.info"
3265
+ },
3266
+ refundVoidDescription: {
3267
+ titleKey: "common.report-col.refund-void-description",
3268
+ shortTitleKey: "common.report-col.refund-void-description.short",
3269
+ infoTextKey: "common.report-col.refund-void-description.info"
3270
+ },
3271
+ refundVoidCount: {
3272
+ titleKey: "common.report-col.refund-void-count",
3273
+ shortTitleKey: "common.report-col.refund-void-count.short",
3274
+ infoTextKey: "common.report-col.refund-void-count.info"
3275
+ },
3276
+ refundVoidAmount: {
3277
+ titleKey: "common.report-col.refund-void-amount",
3278
+ shortTitleKey: "common.report-col.refund-void-amount.short",
3279
+ infoTextKey: "common.report-col.refund-void-amount.info"
3280
+ },
3281
+ refundVoidPctSales: {
3282
+ titleKey: "common.report-col.refund-void-pct-sales",
3283
+ shortTitleKey: "common.report-col.refund-void-pct-sales.short",
3284
+ infoTextKey: "common.report-col.refund-void-pct-sales.info"
3285
+ },
3286
+ discountName: {
3287
+ titleKey: "common.report-col.discount-name",
3288
+ shortTitleKey: "common.report-col.discount-name.short",
3289
+ infoTextKey: "common.report-col.discount-name.info"
3290
+ },
3291
+ tickets: {
3292
+ titleKey: "common.report-col.tickets",
3293
+ shortTitleKey: "common.report-col.tickets.short",
3294
+ infoTextKey: "common.report-col.tickets.info"
3295
+ },
3296
+ guests: {
3297
+ titleKey: "common.report-col.guests",
3298
+ shortTitleKey: "common.report-col.guests.short",
3299
+ infoTextKey: "common.report-col.guests.info"
3300
+ },
3301
+ ticketAverage: {
3302
+ titleKey: "common.report-col.ticket-average",
3303
+ shortTitleKey: "common.report-col.ticket-average.short",
3304
+ infoTextKey: "common.report-col.ticket-average.info"
3305
+ },
3306
+ guestAverage: {
3307
+ titleKey: "common.report-col.guest-average",
3308
+ shortTitleKey: "common.report-col.guest-average.short",
3309
+ infoTextKey: "common.report-col.guest-average.info"
3310
+ },
3311
+ net: {
3312
+ titleKey: "common.report-col.net",
3313
+ shortTitleKey: "common.report-col.net.short",
3314
+ infoTextKey: "common.report-col.net.info"
3315
+ },
3316
+ type: {
3317
+ titleKey: "common.report-col.type",
3318
+ shortTitleKey: "common.report-col.type.short",
3319
+ infoTextKey: "common.report-col.type.info"
3320
+ }
3346
3321
  };
3347
- var en_US_default = enUS3;
3322
+ function getColumnMetadata(key) {
3323
+ return COLUMN_REGISTRY[key];
3324
+ }
3325
+ function getColumnExportHeaderLabel(colTitle, groupTitle) {
3326
+ if (groupTitle) {
3327
+ return `${groupTitle}: ${colTitle}`;
3328
+ }
3329
+ return colTitle;
3330
+ }
3348
3331
 
3349
- // src/translations/index.ts
3350
- var filterCrowdin = (messages) => Object.fromEntries(
3351
- Object.entries(messages).filter((entry) => typeof entry[1] === "string")
3352
- );
3353
- var LOCALE_OVERRIDES = {
3354
- "en-GB": filterCrowdin(en_GB_default),
3355
- "es-ES": filterCrowdin(es_ES_default)
3356
- };
3357
- function resolveTranslate(key, locale) {
3358
- const overrides = LOCALE_OVERRIDES[locale];
3359
- if (overrides) {
3360
- const override = overrides[key];
3361
- if (override !== void 0) {
3362
- return override;
3332
+ // src/totals.ts
3333
+ var sumField = (rows, field) => rows.reduce((acc, row) => acc + (row[field] ?? 0), 0);
3334
+ var getFooterValue = (rows, field, config) => {
3335
+ const { type } = config;
3336
+ if (!type || type === "date" || type === "time" || type === "boolean" || type === "conditional" || type === "custom") {
3337
+ return null;
3338
+ }
3339
+ const calc = config.footerCalculation;
3340
+ if (type === "string") {
3341
+ if (calc?.type === "label") {
3342
+ return calc.label;
3363
3343
  }
3344
+ return null;
3364
3345
  }
3365
- return en_US_default[key] ?? key;
3366
- }
3346
+ if (calc?.type === "none") {
3347
+ return null;
3348
+ }
3349
+ if (calc?.type === "count") {
3350
+ return rows.length;
3351
+ }
3352
+ if (!calc || calc.type === "sum") {
3353
+ return config.columnKey || calc?.type === "sum" ? sumField(rows, field) : 0;
3354
+ }
3355
+ const { numeratorField, denominatorField } = calc;
3356
+ if (!numeratorField || !denominatorField) {
3357
+ return 0;
3358
+ }
3359
+ const num = sumField(rows, numeratorField);
3360
+ const den = sumField(rows, denominatorField);
3361
+ if (calc.type === "percentChange") {
3362
+ return den ? (num - den) / den : 0;
3363
+ }
3364
+ if (calc.type === "variancePercent") {
3365
+ const prior = den - num;
3366
+ return prior ? num / prior : 0;
3367
+ }
3368
+ if (calc.type === "average") {
3369
+ return den > 0 ? num / den : 0;
3370
+ }
3371
+ if (calc.type === "quotientOfDifferences") {
3372
+ const { numeratorAdjustField, denominatorAdjustField } = calc;
3373
+ const numAdj = numeratorAdjustField ? sumField(rows, numeratorAdjustField) : 0;
3374
+ const denAdj = denominatorAdjustField ? sumField(rows, denominatorAdjustField) : 0;
3375
+ const effectiveDen = den - denAdj;
3376
+ return effectiveDen !== 0 ? (num - numAdj) / effectiveDen : 0;
3377
+ }
3378
+ return 0;
3379
+ };
3380
+ var calculateReportTotals = (data, fieldConfig) => {
3381
+ const result = {};
3382
+ for (const [field, config] of Object.entries(fieldConfig)) {
3383
+ const total = getFooterValue(data, field, config);
3384
+ result[field] = total ?? "";
3385
+ }
3386
+ return result;
3387
+ };
3367
3388
 
3368
3389
  // src/formatting.ts
3369
3390
  var dateFormatterCache = /* @__PURE__ */ new Map();
@@ -3475,16 +3496,20 @@ var getReportFormattingLocaleOptions = (locations) => {
3475
3496
  );
3476
3497
  };
3477
3498
  var DEFAULT_FIELD_CONFIG = { type: "string" };
3478
- var formatFieldValue = (value, type, localeOptions, fullRecord, fieldConfig = DEFAULT_FIELD_CONFIG) => {
3499
+ var formatFieldValue = (value, type, localeOptions, fullRecord, fieldConfig = DEFAULT_FIELD_CONFIG, timezone, translationLocale) => {
3479
3500
  const { currency, locale } = localeOptions;
3480
3501
  switch (type) {
3502
+ case "custom": {
3503
+ const customConfig = fieldConfig.customConfiguration;
3504
+ return customConfig.customFormat(value, fullRecord ?? null, translationLocale);
3505
+ }
3481
3506
  case "conditional": {
3482
3507
  if (!fullRecord) {
3483
3508
  return formatString(value, localeOptions);
3484
3509
  }
3485
3510
  const conditionalConfig = fieldConfig.conditionalConfiguration;
3486
3511
  const configType = conditionalConfig.conditionalFormat(fullRecord[conditionalConfig.conditionalField]);
3487
- return formatFieldValue(value, configType, localeOptions, fullRecord, fieldConfig);
3512
+ return formatFieldValue(value, configType, localeOptions, fullRecord, fieldConfig, timezone, translationLocale);
3488
3513
  }
3489
3514
  case "string":
3490
3515
  return formatString(value, localeOptions);
@@ -3504,6 +3529,10 @@ var formatFieldValue = (value, type, localeOptions, fullRecord, fieldConfig = DE
3504
3529
  const d = getDateToFormat(value);
3505
3530
  return d ? formatTime(d, { locale, format: "00:00:00" }) : "";
3506
3531
  }
3532
+ case "time-with-time-zone": {
3533
+ const d = getDateToFormat(value);
3534
+ return d ? formatTime(d, { locale, format: "00:00:00", timeZone: timezone }) : "";
3535
+ }
3507
3536
  case "number-empty":
3508
3537
  return value != null ? String(getNumberToFormat(value)) : "";
3509
3538
  case "number":
@@ -3520,6 +3549,7 @@ export {
3520
3549
  productMixConfig,
3521
3550
  modifierMixConfig,
3522
3551
  itemTaxConfig,
3552
+ resolveTranslate,
3523
3553
  employeeTimecardConfig,
3524
3554
  employeeTipConfig,
3525
3555
  tipCashoutReconciliationConfig,
@@ -3540,7 +3570,6 @@ export {
3540
3570
  getColumnExportHeaderLabel,
3541
3571
  getFooterValue,
3542
3572
  calculateReportTotals,
3543
- resolveTranslate,
3544
3573
  formatDate,
3545
3574
  formatTime,
3546
3575
  formatMoney,