Compare commits

...

15 Commits

Author SHA1 Message Date
Patrick Fic
c008660023 Resolve error on multiple conversations found saga. 2023-10-20 08:50:31 -07:00
Patrick Fic
ffebbe3b2a IO-2401 Add prevention of duplicate chat creation by adding loading tracking. 2023-10-16 12:00:11 -07:00
Patrick Fic
e3c21f0373 Merge branch 'release/2023-10-20' of bitbucket.org:snaptsoft/bodyshop into release/2023-10-20 2023-10-16 10:33:47 -07:00
Patrick Fic
859ff00277 Merge remote-tracking branch 'origin/master' into release/2023-10-20 2023-10-16 10:33:32 -07:00
Patrick Fic
e7c3be5231 Merged in release/2023-09-23 (pull request #1011)
Fix search select issues.
2023-10-16 17:24:46 +00:00
Patrick Fic
d8d5cde3f1 Merged in feature/IO-2411-active-employee-filtering (pull request #1010)
IO-2411 filter inactive employees on prod. print button
2023-10-16 16:35:44 +00:00
Patrick Fic
6efa08fee3 IO-2411 filter inactive employees on prod. print button 2023-10-16 09:34:53 -07:00
Patrick Fic
636c13373c Merged in release/2023-09-23 (pull request #1009)
Release/2023 09 23
2023-10-16 16:19:04 +00:00
Patrick Fic
3659fbec84 Merged in 2023-09-29 (pull request #1004)
2023 09 29
2023-10-13 14:53:24 +00:00
Allan Carr
5884d5eba0 Merged in feature/IO-1559-ClaimsCorp-Datapump (pull request #1005)
IO-1559 Adjust count object to new field tag
2023-10-12 21:52:54 +00:00
Allan Carr
05f1a9b280 IO-1559 Adjust count object to new field tag 2023-10-12 14:54:58 -07:00
Allan Carr
4dd2137006 IO-1559 Change xml label as per Claimscorp 2023-10-12 11:24:24 -07:00
Allan Carr
03315836a6 Merged in feature/IO-1559-ClaimsCorp-Datapump (pull request #1002)
IO-1559 Change xml label as per Claimscorp
2023-10-12 18:23:39 +00:00
Patrick Fic
f703ba2cf9 Disable unnecessary events for Hasura. 2023-09-29 12:36:29 -07:00
Patrick Fic
dc05e4e166 Add CIECA PFO object to job. 2023-09-26 12:58:33 -07:00
9 changed files with 59 additions and 48 deletions

View File

@@ -8,15 +8,23 @@ import PhoneNumberFormatter from "../../utils/PhoneFormatter";
import { createStructuredSelector } from "reselect";
import { selectBodyshop } from "../../redux/user/user.selectors";
import { searchingForConversation } from "../../redux/messaging/messaging.selectors";
const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop,
searchingForConversation: searchingForConversation,
});
const mapDispatchToProps = (dispatch) => ({
openChatByPhone: (phone) => dispatch(openChatByPhone(phone)),
});
export function ChatOpenButton({ bodyshop, phone, jobid, openChatByPhone }) {
export function ChatOpenButton({
bodyshop,
searchingForConversation,
phone,
jobid,
openChatByPhone,
}) {
const { t } = useTranslation();
if (!phone) return <></>;
@@ -29,7 +37,7 @@ export function ChatOpenButton({ bodyshop, phone, jobid, openChatByPhone }) {
onClick={(e) => {
e.stopPropagation();
const p = parsePhoneNumber(phone, "CA");
if (searchingForConversation) return; //This is to prevent finding the same thing twice.
if (p && p.isValid()) {
openChatByPhone({ phone_num: p.formatInternational(), jobid: jobid });
} else {

View File

@@ -55,25 +55,27 @@ export function ProductionListPrint({ bodyshop }) {
<Menu.SubMenu
title={t("reportcenter.templates.production_by_technician_one")}
>
{bodyshop.employees.map((e) => (
<Menu.Item
key={e.id}
onClick={async () => {
setLoading(true);
await GenerateDocument(
{
name: production_by_technician_one.key,
variables: { id: e.id },
},
{},
"p"
);
setLoading(false);
}}
>
{e.first_name} {e.last_name}
</Menu.Item>
))}
{bodyshop.employees
.filter((e) => e.active)
.map((e) => (
<Menu.Item
key={e.id}
onClick={async () => {
setLoading(true);
await GenerateDocument(
{
name: production_by_technician_one.key,
variables: { id: e.id },
},
{},
"p"
);
setLoading(false);
}}
>
{e.first_name} {e.last_name}
</Menu.Item>
))}
</Menu.SubMenu>
<Menu.SubMenu
title={t("reportcenter.templates.production_by_category_one")}

View File

@@ -6,6 +6,7 @@ const INITIAL_STATE = {
isSending: false,
error: null,
message: null,
searchingForConversation: false,
};
const messagingReducer = (state = INITIAL_STATE, action) => {
@@ -17,10 +18,16 @@ const messagingReducer = (state = INITIAL_STATE, action) => {
...state,
visible: !state.visible,
};
case MessagingActionTypes.OPEN_CHAT_BY_PHONE:
return {
...state,
searchingForConversation: true,
};
case MessagingActionTypes.SET_SELECTED_CONVERSATION:
return {
...state,
visible: true,
searchingForConversation: false,
selectedConversationId: action.payload,
};
case MessagingActionTypes.SEND_MESSAGE:

View File

@@ -4,7 +4,7 @@ import { all, call, put, select, takeLatest } from "redux-saga/effects";
import { logImEXEvent } from "../../firebase/firebase.utils";
import {
CONVERSATION_ID_BY_PHONE,
CREATE_CONVERSATION
CREATE_CONVERSATION,
} from "../../graphql/conversations.queries";
import { INSERT_CONVERSATION_TAG } from "../../graphql/job-conversations.queries";
import client from "../../utils/GraphQLClient";
@@ -12,7 +12,7 @@ import { selectBodyshop } from "../user/user.selectors";
import {
sendMessageFailure,
sendMessageSuccess,
setSelectedConversation
setSelectedConversation,
} from "./messaging.actions";
import MessagingActionTypes from "./messaging.types";
@@ -79,6 +79,7 @@ export function* openChatByPhone({ payload }) {
});
} else {
console.log("ERROR: Multiple conversations found. ");
yield put(setSelectedConversation(null));
}
} catch (error) {
console.log("Error in sendMessage saga.", error);

View File

@@ -26,3 +26,8 @@ export const selectMessage = createSelector(
[selectMessaging],
(messaging) => messaging.message
);
export const searchingForConversation = createSelector(
[selectMessaging],
(messaging) => messaging.searchingForConversation
);

View File

@@ -3274,6 +3274,7 @@
- cat_no
- category
- cieca_pfl
- cieca_pfo
- cieca_pft
- cieca_stl
- cieca_ttl
@@ -3542,6 +3543,7 @@
- cat_no
- category
- cieca_pfl
- cieca_pfo
- cieca_pft
- cieca_stl
- cieca_ttl
@@ -3821,6 +3823,7 @@
- cat_no
- category
- cieca_pfl
- cieca_pfo
- cieca_pft
- cieca_stl
- cieca_ttl
@@ -4073,12 +4076,7 @@
event_triggers:
- name: job_status_transition
definition:
enable_manual: false
insert:
columns: '*'
update:
columns:
- status
enable_manual: true
retry_conf:
interval_sec: 10
num_retries: 0
@@ -4094,23 +4092,7 @@
version: 2
- name: jobs_arms
definition:
enable_manual: false
update:
columns:
- actual_delivery
- scheduled_delivery
- scheduled_completion
- actual_completion
- date_scheduled
- inproduction
- clm_total
- suspended
- job_totals
- converted
- employee_body
- ro_number
- actual_in
- scheduled_in
enable_manual: true
retry_conf:
interval_sec: 10
num_retries: 0

View File

@@ -0,0 +1,4 @@
-- Could not auto-generate a down migration.
-- Please write an appropriate down migration for the SQL below:
-- alter table "public"."jobs" add column "cieca_pfo" jsonb
-- null default jsonb_build_object();

View File

@@ -0,0 +1,2 @@
alter table "public"."jobs" add column "cieca_pfo" jsonb
null default jsonb_build_object();

View File

@@ -67,7 +67,7 @@ exports.default = async (req, res) => {
);
const claimsCorpObject = {
ClaimsCorpExport: {
DataFeed: {
ShopID: bodyshops_by_pk.claimscorpid,
ShopName: bodyshops_by_pk.shopname,
RO: jobs.map((j) =>
@@ -100,7 +100,7 @@ exports.default = async (req, res) => {
.end({ allowEmptyTags: true });
allxmlsToUpload.push({
count: claimsCorpObject.ClaimsCorpExport.RO.length,
count: claimsCorpObject.DataFeed.RO.length,
xml: ret,
filename: `${bodyshop.claimscorpid}-MIS-${moment().format(
"YYYYMMDDTHHMMss"