IO-2038 Resolve duplicate shift clock login.

This commit is contained in:
Patrick Fic
2022-10-18 09:51:55 -07:00
parent b363b2f7e5
commit c83ff03ae8
6 changed files with 72 additions and 27 deletions

View File

@@ -43102,6 +43102,27 @@
</translation> </translation>
</translations> </translations>
</concept_node> </concept_node>
<concept_node>
<name>shiftalreadyclockedon</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>
</children> </children>
</folder_node> </folder_node>
<folder_node> <folder_node>

View File

@@ -27,6 +27,7 @@ export function TimeTicektShiftContainer({
technician, technician,
currentUser, currentUser,
isTechConsole, isTechConsole,
checkIfAlreadyClocked,
}) { }) {
const [form] = Form.useForm(); const [form] = Form.useForm();
const [insertTimeTicket] = useMutation(INSERT_NEW_TIME_TICKET); const [insertTimeTicket] = useMutation(INSERT_NEW_TIME_TICKET);
@@ -43,6 +44,15 @@ export function TimeTicektShiftContainer({
const handleFinish = async (values) => { const handleFinish = async (values) => {
setLoading(true); setLoading(true);
const alreadyClocked = await checkIfAlreadyClocked();
if (alreadyClocked) {
//Show the error.
notification["error"]({
message: t("timetickets.errors.shiftalreadyclockedon"),
});
} else {
const theTime = moment((await axios.post("/utils/time")).data); const theTime = moment((await axios.post("/utils/time")).data);
const result = await insertTimeTicket({ const result = await insertTimeTicket({
@@ -73,6 +83,8 @@ export function TimeTicektShiftContainer({
message: t("timetickets.successes.clockedin"), message: t("timetickets.successes.clockedin"),
}); });
} }
}
setLoading(false); setLoading(false);
}; };

View File

@@ -64,6 +64,12 @@ export function TimeTicketShiftContainer({
</div> </div>
); );
const checkIfAlreadyClocked = async () => {
const { data } = await refetch();
return data.timetickets.length > 0;
};
return ( return (
<div> <div>
{data.timetickets.length > 0 ? ( {data.timetickets.length > 0 ? (
@@ -72,7 +78,10 @@ export function TimeTicketShiftContainer({
refetch={refetch} refetch={refetch}
/> />
) : ( ) : (
<TimeTicketShiftFormContainer isTechConsole={isTechConsole} /> <TimeTicketShiftFormContainer
isTechConsole={isTechConsole}
checkIfAlreadyClocked={checkIfAlreadyClocked}
/>
)} )}
</div> </div>
); );

View File

@@ -2558,7 +2558,8 @@
"creating": "Error creating time ticket. {{message}}", "creating": "Error creating time ticket. {{message}}",
"deleting": "Error deleting time ticket. {{message}}", "deleting": "Error deleting time ticket. {{message}}",
"noemployeeforuser": "Unable to use Shift Clock", "noemployeeforuser": "Unable to use Shift Clock",
"noemployeeforuser_sub": "An employee record has not been created for this user. Please create one before using the shift clock. " "noemployeeforuser_sub": "An employee record has not been created for this user. Please create one before using the shift clock. ",
"shiftalreadyclockedon": "You are already clocked onto a shift. Unable to create shift entry."
}, },
"fields": { "fields": {
"actualhrs": "Actual Hours", "actualhrs": "Actual Hours",

View File

@@ -2558,7 +2558,8 @@
"creating": "", "creating": "",
"deleting": "", "deleting": "",
"noemployeeforuser": "", "noemployeeforuser": "",
"noemployeeforuser_sub": "" "noemployeeforuser_sub": "",
"shiftalreadyclockedon": ""
}, },
"fields": { "fields": {
"actualhrs": "", "actualhrs": "",

View File

@@ -2558,7 +2558,8 @@
"creating": "", "creating": "",
"deleting": "", "deleting": "",
"noemployeeforuser": "", "noemployeeforuser": "",
"noemployeeforuser_sub": "" "noemployeeforuser_sub": "",
"shiftalreadyclockedon": ""
}, },
"fields": { "fields": {
"actualhrs": "", "actualhrs": "",