diff --git a/client/src/components/print-center-jobs/print-center-jobs.component.jsx b/client/src/components/print-center-jobs/print-center-jobs.component.jsx index ddb9a247d..7e4d74705 100644 --- a/client/src/components/print-center-jobs/print-center-jobs.component.jsx +++ b/client/src/components/print-center-jobs/print-center-jobs.component.jsx @@ -1,3 +1,4 @@ +import { useTreatments } from "@splitsoftware/splitio-react"; import { Card, Col, Input, Row, Space, Typography } from "antd"; import _ from "lodash"; import React, { useState } from "react"; @@ -23,8 +24,13 @@ export function PrintCenterJobsComponent({ printCenterModal, bodyshop }) { const { id: jobId, job } = printCenterModal.context; const tempList = TemplateList("job", {}); const { t } = useTranslation(); + const { Enhanced_Payroll } = useTreatments( + ["Enhanced_Payroll"], + {}, + bodyshop.imexshopid + ); - const JobsReportsList = + const Templates = bodyshop.cdk_dealerid === null && bodyshop.pbs_serialnumber === null ? Object.keys(tempList) .map((key) => { @@ -51,6 +57,16 @@ export function PrintCenterJobsComponent({ printCenterModal, bodyshop }) { bodyshop.region_config.includes(Object.keys(temp.regions)) === true) ); + const JobsReportsList = + Enhanced_Payroll.treatment === "on" + ? Object.keys(Templates).map((key) => { + return Templates[key]; + }) + : Object.keys(Templates) + .map((key) => { + return Templates[key]; + }) + .filter((temp) => temp.enhanced_payroll !== true); const filteredJobsReportsList = search !== "" diff --git a/client/src/components/report-center-modal/report-center-modal.component.jsx b/client/src/components/report-center-modal/report-center-modal.component.jsx index 913d27282..aec4a6426 100644 --- a/client/src/components/report-center-modal/report-center-modal.component.jsx +++ b/client/src/components/report-center-modal/report-center-modal.component.jsx @@ -1,4 +1,5 @@ import { useLazyQuery } from "@apollo/client"; +import { useTreatments } from "@splitsoftware/splitio-react"; import { Button, Card, @@ -19,6 +20,7 @@ import { createStructuredSelector } from "reselect"; import { QUERY_ACTIVE_EMPLOYEES } from "../../graphql/employees.queries"; import { QUERY_ALL_VENDORS } from "../../graphql/vendors.queries"; import { selectReportCenter } from "../../redux/modals/modals.selectors"; +import { selectBodyshop } from "../../redux/user/user.selectors"; import DatePIckerRanges from "../../utils/DatePickerRanges"; import { GenerateDocument } from "../../utils/RenderTemplate"; import { TemplateList } from "../../utils/TemplateConstants"; @@ -27,6 +29,7 @@ import VendorSearchSelect from "../vendor-search-select/vendor-search-select.com import "./report-center-modal.styles.scss"; const mapStateToProps = createStructuredSelector({ reportCenterModal: selectReportCenter, + bodyshop: selectBodyshop, }); const mapDispatchToProps = (dispatch) => ({ //setUserLanguage: language => dispatch(setUserLanguage(language)) @@ -36,16 +39,26 @@ export default connect( mapDispatchToProps )(ReportCenterModalComponent); -export function ReportCenterModalComponent({ reportCenterModal }) { +export function ReportCenterModalComponent({ reportCenterModal, bodyshop }) { const [form] = Form.useForm(); const [search, setSearch] = useState(""); + const { Enhanced_Payroll } = useTreatments( + ["Enhanced_Payroll"], + {}, + bodyshop.imexshopid + ); const [loading, setLoading] = useState(false); const { t } = useTranslation(); const Templates = TemplateList("report_center"); - const ReportsList = Object.keys(Templates).map((key) => { - return Templates[key]; - }); + const ReportsList = + Enhanced_Payroll.treatment === "on" + ? Object.keys(Templates).map((key) => { + return Templates[key]; + }) + : Object.keys(Templates).map((key) => { + return Templates[key]; + }).filter((temp) => temp.enhanced_payroll !== true); const { visible } = reportCenterModal; const [callVendorQuery, { data: vendorData, called: vendorCalled }] = diff --git a/client/src/translations/en_us/common.json b/client/src/translations/en_us/common.json index 73ee81162..2278dc7b1 100644 --- a/client/src/translations/en_us/common.json +++ b/client/src/translations/en_us/common.json @@ -612,6 +612,7 @@ "laborrates": "Labor Rates", "licensing": "Licensing", "md_tasks_presets": "Tasks Presets", + "md_parts_scan": "Parts Scan Rules", "md_to_emails": "Preset To Emails", "md_to_emails_emails": "Emails", "messagingpresets": "Messaging Presets", @@ -2335,6 +2336,7 @@ "appointment_confirmation": "Appointment Confirmation", "appointment_reminder": "Appointment Reminder", "casl_authorization": "CASL Authorization", + "committed_timetickets_ro": "Committed Time Tickets", "coversheet_landscape": "Coversheet (Landscape)", "coversheet_portrait": "Coversheet Portrait", "csi_invitation": "CSI Invitation", @@ -2406,7 +2408,8 @@ "worksheet_sorted_by_operation": "Worksheet by Operation", "worksheet_sorted_by_operation_no_hours": "Worksheet by Operation (No Hours)", "worksheet_sorted_by_operation_part_type": "Worksheet by Operation & Part Type", - "worksheet_sorted_by_operation_type": "Worksheet by Operation Type" + "worksheet_sorted_by_operation_type": "Worksheet by Operation Type", + "worksheet_sorted_by_team": "Worksheet by Team" }, "labels": { "groups": { @@ -2553,6 +2556,9 @@ "attendance_detail": "Attendance (All Employees)", "attendance_employee": "Employee Attendance", "attendance_summary": "Attendance Summary (All Employees)", + "committed_timetickets": "Committed Time Tickets", + "committed_timetickets_employee": "Committed Employee Time Tickets", + "committed_timetickets_summary": "Committed Time Tickets Summary", "credits_not_received_date": "Credits not Received by Date", "credits_not_received_date_vendorid": "Credits not Received by Vendor", "csi": "CSI Responses", @@ -2651,6 +2657,8 @@ "timetickets_summary": "Time Tickets Summary", "unclaimed_hrs": "Unflagged Hours", "void_ros": "Void ROs", + "work_in_progress_committed_labour": "Work in Progress - Committed Labor", + "work_in_progress_jobs": "Work in Progress - Jobs", "work_in_progress_labour": "Work in Progress - Labor", "work_in_progress_payables": "Work in Progress - Payables" } @@ -2756,6 +2764,7 @@ "clockoff": "Clock Off", "clockon": "Clocked In", "committed": "Committed", + "committed_at": "Committed At", "cost_center": "Cost Center", "date": "Ticket Date", "efficiency": "Efficiency", diff --git a/client/src/translations/es/common.json b/client/src/translations/es/common.json index 2f8e3997c..07207e126 100644 --- a/client/src/translations/es/common.json +++ b/client/src/translations/es/common.json @@ -611,6 +611,7 @@ "jobstatuses": "", "laborrates": "", "licensing": "", + "md_parts_scan": "", "md_tasks_presets": "", "md_to_emails": "", "md_to_emails_emails": "", @@ -2335,6 +2336,7 @@ "appointment_confirmation": "", "appointment_reminder": "", "casl_authorization": "", + "committed_timetickets_ro": "", "coversheet_landscape": "", "coversheet_portrait": "", "csi_invitation": "", @@ -2406,7 +2408,8 @@ "worksheet_sorted_by_operation": "", "worksheet_sorted_by_operation_no_hours": "", "worksheet_sorted_by_operation_part_type": "", - "worksheet_sorted_by_operation_type": "" + "worksheet_sorted_by_operation_type": "", + "worksheet_sorted_by_team": "" }, "labels": { "groups": { @@ -2553,6 +2556,9 @@ "attendance_detail": "", "attendance_employee": "", "attendance_summary": "", + "committed_timetickets": "", + "committed_timetickets_employee": "", + "committed_timetickets_summary": "", "credits_not_received_date": "", "credits_not_received_date_vendorid": "", "csi": "", @@ -2651,6 +2657,8 @@ "timetickets_summary": "", "unclaimed_hrs": "", "void_ros": "", + "work_in_progress_committed_labour": "", + "work_in_progress_jobs": "", "work_in_progress_labour": "", "work_in_progress_payables": "" } @@ -2756,6 +2764,7 @@ "clockoff": "", "clockon": "", "committed": "", + "committed_at": "", "cost_center": "", "date": "", "efficiency": "", diff --git a/client/src/translations/fr/common.json b/client/src/translations/fr/common.json index eba3149a7..6700b95d6 100644 --- a/client/src/translations/fr/common.json +++ b/client/src/translations/fr/common.json @@ -611,6 +611,7 @@ "jobstatuses": "", "laborrates": "", "licensing": "", + "md_parts_scan": "", "md_tasks_presets": "", "md_to_emails": "", "md_to_emails_emails": "", @@ -2335,6 +2336,7 @@ "appointment_confirmation": "", "appointment_reminder": "", "casl_authorization": "", + "committed_timetickets_ro": "", "coversheet_landscape": "", "coversheet_portrait": "", "csi_invitation": "", @@ -2406,7 +2408,8 @@ "worksheet_sorted_by_operation": "", "worksheet_sorted_by_operation_no_hours": "", "worksheet_sorted_by_operation_part_type": "", - "worksheet_sorted_by_operation_type": "" + "worksheet_sorted_by_operation_type": "", + "worksheet_sorted_by_team": "" }, "labels": { "groups": { @@ -2553,6 +2556,9 @@ "attendance_detail": "", "attendance_employee": "", "attendance_summary": "", + "committed_timetickets": "", + "committed_timetickets_employee": "", + "committed_timetickets_summary": "", "credits_not_received_date": "", "credits_not_received_date_vendorid": "", "csi": "", @@ -2651,6 +2657,8 @@ "timetickets_summary": "", "unclaimed_hrs": "", "void_ros": "", + "work_in_progress_committed_labour": "", + "work_in_progress_jobs": "", "work_in_progress_labour": "", "work_in_progress_payables": "" } @@ -2756,6 +2764,7 @@ "clockoff": "", "clockon": "", "committed": "", + "committed_at": "", "cost_center": "", "date": "", "efficiency": "", diff --git a/client/src/utils/TemplateConstants.js b/client/src/utils/TemplateConstants.js index 65dfb3dab..0ffb675cb 100644 --- a/client/src/utils/TemplateConstants.js +++ b/client/src/utils/TemplateConstants.js @@ -514,6 +514,24 @@ export const TemplateList = (type, context) => { group: "financial", dms: true, }, + worksheet_sorted_by_team: { + title: i18n.t("printcenter.jobs.worksheet_sorted_by_team"), + description: "", + subject: i18n.t("printcenter.jobs.worksheet_sorted_by_team"), + key: "worksheet_sorted_by_team", + disabled: false, + group: "worksheet", + enhanced_payroll: true, + }, + committed_timetickets_ro: { + title: i18n.t("printcenter.jobs.committed_timetickets_ro"), + description: "", + subject: i18n.t("printcenter.jobs.commited_timetickets_ro"), + key: "committed_timetickets_ro", + disabled: false, + group: "financial", + enhanced_payroll: true, + }, } : {}), ...(!type || type === "job_special" @@ -1569,6 +1587,20 @@ export const TemplateList = (type, context) => { }, group: "jobs", }, + work_in_progress_committed_labour: { + title: i18n.t("reportcenter.templates.work_in_progress_committed_labour"), + description: "", + subject: i18n.t("reportcenter.templates.work_in_progress_committed_labour"), + key: "work_in_progress_committed_labour", + //idtype: "vendor", + disabled: false, + rangeFilter: { + object: i18n.t("reportcenter.labels.objects.jobs"), + field: i18n.t("jobs.fields.date_open"), + }, + group: "jobs", + enhanced_payroll: true, + }, work_in_progress_payables: { title: i18n.t("reportcenter.templates.work_in_progress_payables"), description: "", @@ -1925,6 +1957,40 @@ export const TemplateList = (type, context) => { }, group: "jobs", }, + committed_timetickets: { + title: i18n.t("reportcenter.templates.committed_timetickets"), + subject: i18n.t("reportcenter.templates.committed_timetickets"), + key: "committed_timetickets", + disabled: false, + rangeFilter: { + object: i18n.t("reportcenter.labels.objects.timetickets"), + field: i18n.t("timetickets.fields.committed_at"), + }, + group: "payroll", + enhanced_payroll: true, + }, + committed_timetickets_employee: { + title: i18n.t("reportcenter.templates.committed_timetickets_employee"), + subject: i18n.t("reportcenter.templates.committed_timetickets_employee"), + key: "committed_timetickets_employee", + idtype: "employee", + disabled: false, + group: "payroll", + enhanced_payroll: true, + }, + committed_timetickets_summary: { + title: i18n.t("reportcenter.templates.committed_timetickets_summary"), + subject: i18n.t("reportcenter.templates.committed_timetickets_summary"), + key: "committed_timetickets_summary", + //idtype: "vendor", + disabled: false, + rangeFilter: { + object: i18n.t("reportcenter.labels.objects.timetickets"), + field: i18n.t("timetickets.fields.committed_at"), + }, + group: "payroll", + enhanced_payroll: true, + }, } : {}), ...(!type || type === "courtesycarcontract"