Merged in release/2023-02-03 (pull request #668)
release/2023-02-03 Approved-by: Patrick Fic
This commit is contained in:
@@ -967,6 +967,27 @@
|
|||||||
</translation>
|
</translation>
|
||||||
</translations>
|
</translations>
|
||||||
</concept_node>
|
</concept_node>
|
||||||
|
<concept_node>
|
||||||
|
<name>severalerrorsfound</name>
|
||||||
|
<definition_loaded>false</definition_loaded>
|
||||||
|
<description></description>
|
||||||
|
<comment></comment>
|
||||||
|
<default_text></default_text>
|
||||||
|
<translations>
|
||||||
|
<translation>
|
||||||
|
<language>en-US</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>es-MX</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>fr-CA</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
</translations>
|
||||||
|
</concept_node>
|
||||||
<concept_node>
|
<concept_node>
|
||||||
<name>smartscheduling</name>
|
<name>smartscheduling</name>
|
||||||
<definition_loaded>false</definition_loaded>
|
<definition_loaded>false</definition_loaded>
|
||||||
@@ -40901,6 +40922,27 @@
|
|||||||
</translation>
|
</translation>
|
||||||
</translations>
|
</translations>
|
||||||
</concept_node>
|
</concept_node>
|
||||||
|
<concept_node>
|
||||||
|
<name>gsr_by_ats</name>
|
||||||
|
<definition_loaded>false</definition_loaded>
|
||||||
|
<description></description>
|
||||||
|
<comment></comment>
|
||||||
|
<default_text></default_text>
|
||||||
|
<translations>
|
||||||
|
<translation>
|
||||||
|
<language>en-US</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>es-MX</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>fr-CA</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
</translations>
|
||||||
|
</concept_node>
|
||||||
<concept_node>
|
<concept_node>
|
||||||
<name>gsr_by_category</name>
|
<name>gsr_by_category</name>
|
||||||
<definition_loaded>false</definition_loaded>
|
<definition_loaded>false</definition_loaded>
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import HeaderComponent from "./schedule-calendar-header.component";
|
|||||||
import "./schedule-calendar.styles.scss";
|
import "./schedule-calendar.styles.scss";
|
||||||
import JobDetailCards from "../job-detail-cards/job-detail-cards.component";
|
import JobDetailCards from "../job-detail-cards/job-detail-cards.component";
|
||||||
import { selectProblemJobs } from "../../redux/application/application.selectors";
|
import { selectProblemJobs } from "../../redux/application/application.selectors";
|
||||||
import { Alert } from "antd";
|
import { Alert, Collapse } from "antd";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
|
|
||||||
const mapStateToProps = createStructuredSelector({
|
const mapStateToProps = createStructuredSelector({
|
||||||
@@ -53,7 +53,28 @@ export function ScheduleCalendarWrapperComponent({
|
|||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<JobDetailCards />
|
<JobDetailCards />
|
||||||
{problemJobs &&
|
{problemJobs && problemJobs.length > 2 ? (
|
||||||
|
<Collapse>
|
||||||
|
<Collapse.Panel
|
||||||
|
header={
|
||||||
|
<span style={{ color: "tomato" }}>
|
||||||
|
{t("appointments.labels.severalerrorsfound")}
|
||||||
|
</span>
|
||||||
|
}
|
||||||
|
>
|
||||||
|
{problemJobs.map((problem) => (
|
||||||
|
<Alert
|
||||||
|
key={problem.id}
|
||||||
|
type="error"
|
||||||
|
message={t("appointments.labels.dataconsistency", {
|
||||||
|
ro_number: problem.ro_number,
|
||||||
|
code: problem.code,
|
||||||
|
})}
|
||||||
|
/>
|
||||||
|
))}
|
||||||
|
</Collapse.Panel>
|
||||||
|
</Collapse>
|
||||||
|
) : (
|
||||||
problemJobs.map((problem) => (
|
problemJobs.map((problem) => (
|
||||||
<Alert
|
<Alert
|
||||||
key={problem.id}
|
key={problem.id}
|
||||||
@@ -63,7 +84,8 @@ export function ScheduleCalendarWrapperComponent({
|
|||||||
code: problem.code,
|
code: problem.code,
|
||||||
})}
|
})}
|
||||||
/>
|
/>
|
||||||
))}
|
))
|
||||||
|
)}
|
||||||
|
|
||||||
<Calendar
|
<Calendar
|
||||||
events={data}
|
events={data}
|
||||||
|
|||||||
@@ -60,9 +60,7 @@ export function ScheduleJobModalComponent({
|
|||||||
|
|
||||||
const handleDateBlur = () => {
|
const handleDateBlur = () => {
|
||||||
const values = form.getFieldsValue();
|
const values = form.getFieldsValue();
|
||||||
if (values.start) {
|
|
||||||
calculateScheduleLoad(values.start);
|
|
||||||
}
|
|
||||||
if (lbrHrsData) {
|
if (lbrHrsData) {
|
||||||
const totalHours =
|
const totalHours =
|
||||||
lbrHrsData.jobs_by_pk.labhrs.aggregate.sum.mod_lb_hrs +
|
lbrHrsData.jobs_by_pk.labhrs.aggregate.sum.mod_lb_hrs +
|
||||||
@@ -197,6 +195,9 @@ export function ScheduleJobModalComponent({
|
|||||||
<Form.Item shouldUpdate={(prev, cur) => prev.start !== cur.start}>
|
<Form.Item shouldUpdate={(prev, cur) => prev.start !== cur.start}>
|
||||||
{() => {
|
{() => {
|
||||||
const values = form.getFieldsValue();
|
const values = form.getFieldsValue();
|
||||||
|
if (values.start) {
|
||||||
|
calculateScheduleLoad(values.start);
|
||||||
|
}
|
||||||
return (
|
return (
|
||||||
<div className="schedule-job-modal">
|
<div className="schedule-job-modal">
|
||||||
<ScheduleDayViewContainer day={values.start} />
|
<ScheduleDayViewContainer day={values.start} />
|
||||||
|
|||||||
@@ -61,6 +61,7 @@
|
|||||||
"priorappointments": "Previous Appointments",
|
"priorappointments": "Previous Appointments",
|
||||||
"reminder": "This is {{shopname}} reminding you about an appointment on {{date}} at {{time}}. Please let us know if you are not able to make the appointment. We look forward to seeing you soon. ",
|
"reminder": "This is {{shopname}} reminding you about an appointment on {{date}} at {{time}}. Please let us know if you are not able to make the appointment. We look forward to seeing you soon. ",
|
||||||
"scheduledfor": "Scheduled appointment for: ",
|
"scheduledfor": "Scheduled appointment for: ",
|
||||||
|
"severalerrorsfound": "Several jobs have issues which may prevent accurate smart scheduling. Click to expand.",
|
||||||
"smartscheduling": "Smart Scheduling",
|
"smartscheduling": "Smart Scheduling",
|
||||||
"suggesteddates": "Suggested Dates"
|
"suggesteddates": "Suggested Dates"
|
||||||
},
|
},
|
||||||
@@ -2425,6 +2426,7 @@
|
|||||||
"export_payables": "Export Log - Payables",
|
"export_payables": "Export Log - Payables",
|
||||||
"export_payments": "Export Log - Payments",
|
"export_payments": "Export Log - Payments",
|
||||||
"export_receivables": "Export Log - Receivables",
|
"export_receivables": "Export Log - Receivables",
|
||||||
|
"gsr_by_atp": "",
|
||||||
"gsr_by_ats": "Gross Sales by ATS",
|
"gsr_by_ats": "Gross Sales by ATS",
|
||||||
"gsr_by_category": "Gross Sales by Category",
|
"gsr_by_category": "Gross Sales by Category",
|
||||||
"gsr_by_csr": "Gross Sales by CSR",
|
"gsr_by_csr": "Gross Sales by CSR",
|
||||||
|
|||||||
@@ -61,6 +61,7 @@
|
|||||||
"priorappointments": "Nombramientos previos",
|
"priorappointments": "Nombramientos previos",
|
||||||
"reminder": "",
|
"reminder": "",
|
||||||
"scheduledfor": "Cita programada para:",
|
"scheduledfor": "Cita programada para:",
|
||||||
|
"severalerrorsfound": "",
|
||||||
"smartscheduling": "",
|
"smartscheduling": "",
|
||||||
"suggesteddates": ""
|
"suggesteddates": ""
|
||||||
},
|
},
|
||||||
@@ -2425,6 +2426,7 @@
|
|||||||
"export_payables": "",
|
"export_payables": "",
|
||||||
"export_payments": "",
|
"export_payments": "",
|
||||||
"export_receivables": "",
|
"export_receivables": "",
|
||||||
|
"gsr_by_atp": "",
|
||||||
"gsr_by_ats": "",
|
"gsr_by_ats": "",
|
||||||
"gsr_by_category": "",
|
"gsr_by_category": "",
|
||||||
"gsr_by_csr": "",
|
"gsr_by_csr": "",
|
||||||
|
|||||||
@@ -61,6 +61,7 @@
|
|||||||
"priorappointments": "Rendez-vous précédents",
|
"priorappointments": "Rendez-vous précédents",
|
||||||
"reminder": "",
|
"reminder": "",
|
||||||
"scheduledfor": "Rendez-vous prévu pour:",
|
"scheduledfor": "Rendez-vous prévu pour:",
|
||||||
|
"severalerrorsfound": "",
|
||||||
"smartscheduling": "",
|
"smartscheduling": "",
|
||||||
"suggesteddates": ""
|
"suggesteddates": ""
|
||||||
},
|
},
|
||||||
@@ -2425,6 +2426,7 @@
|
|||||||
"export_payables": "",
|
"export_payables": "",
|
||||||
"export_payments": "",
|
"export_payments": "",
|
||||||
"export_receivables": "",
|
"export_receivables": "",
|
||||||
|
"gsr_by_atp": "",
|
||||||
"gsr_by_ats": "",
|
"gsr_by_ats": "",
|
||||||
"gsr_by_category": "",
|
"gsr_by_category": "",
|
||||||
"gsr_by_csr": "",
|
"gsr_by_csr": "",
|
||||||
|
|||||||
Reference in New Issue
Block a user