Merged in release/2023-10-20 (pull request #1027)

Release/2023 10 20

Approved-by: Patrick Fic
This commit is contained in:
Allan Carr
2023-10-20 15:37:26 +00:00
committed by Patrick Fic
15 changed files with 198 additions and 230 deletions

View File

@@ -143,7 +143,7 @@ function BillEnterModalContainer({
}, },
], ],
}, },
refetchQueries: ["QUERY_PARTS_BILLS_BY_JOBID"], refetchQueries: ["QUERY_PARTS_BILLS_BY_JOBID", "GET_JOB_BY_PK"],
}); });
const adjKeys = Object.keys(adjustmentsToInsert); const adjKeys = Object.keys(adjustmentsToInsert);
@@ -316,7 +316,9 @@ function BillEnterModalContainer({
insertAuditTrail({ insertAuditTrail({
jobid: values.jobid, jobid: values.jobid,
billid: billId, billid: billId,
operation: AuditTrailMapping.billposted(r1.data.insert_bills.returning[0].invoice_number), operation: AuditTrailMapping.billposted(
r1.data.insert_bills.returning[0].invoice_number
),
}); });
if (enterAgain) { if (enterAgain) {

View File

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

View File

@@ -109,7 +109,7 @@ export function EmailOverlayContainer({
] ]
: []), : []),
], ],
media: selectedMedia.filter((m) => m.isSelected).map((m) => m.src), media: selectedMedia.filter((m) => m.isSelected).map((m) => m.fullsize),
//attachments, //attachments,
}); });
notification["success"]({ message: t("emails.successes.sent") }); notification["success"]({ message: t("emails.successes.sent") });

View File

@@ -8,7 +8,7 @@ export default function JobLinesBillRefernece({ jobline }) {
return ( return (
<div style={{ color: subletRequired && "tomato" }}> <div style={{ color: subletRequired && "tomato" }}>
{subletRequired && <WarningFilled />} {subletRequired && <WarningFilled />}
{`${(billLine.actual_price * billLine.quantity).toFixed(2)} (${ {`${billLine.actual_price.toFixed(2)} x ${billLine.quantity} (${
billLine.bill.vendor.name billLine.bill.vendor.name
} #${billLine.bill.invoice_number})`} } #${billLine.bill.invoice_number})`}
</div> </div>

View File

@@ -33,7 +33,9 @@ const JobSearchSelect = (
useLazyQuery(SEARCH_JOBS_BY_ID_FOR_AUTOCOMPLETE); useLazyQuery(SEARCH_JOBS_BY_ID_FOR_AUTOCOMPLETE);
const executeSearch = (v) => { const executeSearch = (v) => {
if (v && v !== "" && v.length >= 3) callSearch(v); console.log(v);
if (v && v.variables?.search !== "" && v.variables.search.length >= 2)
callSearch(v);
}; };
const debouncedExecuteSearch = _.debounce(executeSearch, 500); const debouncedExecuteSearch = _.debounce(executeSearch, 500);

View File

@@ -52,7 +52,7 @@ function JobDocumentsLocalGalleryExternal({
val.type.mime && val.type.mime &&
val.type.mime.startsWith("image") val.type.mime.startsWith("image")
) { ) {
acc.push({ ...val, src: val.thumbnail }); acc.push({ ...val, src: val.thumbnail, fullsize: val.src });
} }
return acc; return acc;
}, []) }, [])

View File

@@ -21,7 +21,8 @@ const OwnerSearchSelect = ({ value, onChange, onBlur, disabled }, ref) => {
useLazyQuery(SEARCH_OWNERS_BY_ID_FOR_AUTOCOMPLETE); useLazyQuery(SEARCH_OWNERS_BY_ID_FOR_AUTOCOMPLETE);
const executeSearch = (v) => { const executeSearch = (v) => {
if (v && v !== "" && v.length >= 3) callSearch(v); if (v && v.variables?.search !== "" && v.variables.search.length >= 2)
callSearch(v);
}; };
const debouncedExecuteSearch = _.debounce(executeSearch, 500); const debouncedExecuteSearch = _.debounce(executeSearch, 500);

View File

@@ -455,8 +455,8 @@ const r = ({ technician, state, activeStatuses, bodyshop }) => {
state.sortedInfo.order, state.sortedInfo.order,
sorter: (a, b) => sorter: (a, b) =>
alphaSort( alphaSort(
bodyshop.employees.find((e) => e.id === a.employee_body)?.first_name, bodyshop.employees?.find((e) => e.id === a.employee_body)?.first_name,
bodyshop.employees.find((e) => e.id === b.employee_body)?.first_name bodyshop.employees?.find((e) => e.id === b.employee_body)?.first_name
), ),
render: (text, record) => ( render: (text, record) => (
<ProductionListEmployeeAssignment <ProductionListEmployeeAssignment
@@ -474,8 +474,8 @@ const r = ({ technician, state, activeStatuses, bodyshop }) => {
state.sortedInfo.order, state.sortedInfo.order,
sorter: (a, b) => sorter: (a, b) =>
alphaSort( alphaSort(
bodyshop.employees.find((e) => e.id === a.employee_prep)?.first_name, bodyshop.employees?.find((e) => e.id === a.employee_prep)?.first_name,
bodyshop.employees.find((e) => e.id === b.employee_prep)?.first_name bodyshop.employees?.find((e) => e.id === b.employee_prep)?.first_name
), ),
render: (text, record) => ( render: (text, record) => (
<ProductionListEmployeeAssignment <ProductionListEmployeeAssignment
@@ -492,8 +492,8 @@ const r = ({ technician, state, activeStatuses, bodyshop }) => {
state.sortedInfo.columnKey === "employee_csr" && state.sortedInfo.order, state.sortedInfo.columnKey === "employee_csr" && state.sortedInfo.order,
sorter: (a, b) => sorter: (a, b) =>
alphaSort( alphaSort(
bodyshop.employees.find((e) => e.id === a.employee_csr)?.first_name, bodyshop.employees?.find((e) => e.id === a.employee_csr)?.first_name,
bodyshop.employees.find((e) => e.id === b.employee_csr)?.first_name bodyshop.employees?.find((e) => e.id === b.employee_csr)?.first_name
), ),
render: (text, record) => ( render: (text, record) => (
<ProductionListEmployeeAssignment record={record} type="employee_csr" /> <ProductionListEmployeeAssignment record={record} type="employee_csr" />
@@ -508,9 +508,9 @@ const r = ({ technician, state, activeStatuses, bodyshop }) => {
state.sortedInfo.order, state.sortedInfo.order,
sorter: (a, b) => sorter: (a, b) =>
alphaSort( alphaSort(
bodyshop.employees.find((e) => e.id === a.employee_refinish) bodyshop.employees?.find((e) => e.id === a.employee_refinish)
?.first_name, ?.first_name,
bodyshop.employees.find((e) => e.id === b.employee_refinish) bodyshop.employees?.find((e) => e.id === b.employee_refinish)
?.first_name ?.first_name
), ),
render: (text, record) => ( render: (text, record) => (

View File

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

View File

@@ -16,13 +16,12 @@ const VehicleSearchSelect = ({ value, onChange, onBlur, disabled }, ref) => {
SEARCH_VEHICLES_FOR_AUTOCOMPLETE SEARCH_VEHICLES_FOR_AUTOCOMPLETE
); );
const [ const [callIdSearch, { loading: idLoading, error: idError, data: idData }] =
callIdSearch, useLazyQuery(SEARCH_VEHICLES_BY_ID_FOR_AUTOCOMPLETE);
{ loading: idLoading, error: idError, data: idData },
] = useLazyQuery(SEARCH_VEHICLES_BY_ID_FOR_AUTOCOMPLETE);
const executeSearch = (v) => { const executeSearch = (v) => {
if (v && v !== "" && v.length >= 3) callSearch(v); if (v && v.variables?.search !== "" && v.variables.search.length >= 2)
callSearch(v);
}; };
const debouncedExecuteSearch = _.debounce(executeSearch, 500); const debouncedExecuteSearch = _.debounce(executeSearch, 500);

View File

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

View File

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

View File

@@ -62,7 +62,7 @@ exports.default = async (req, res) => {
start: start start: start
? moment(start).startOf("day") ? moment(start).startOf("day")
: moment().subtract(5, "days").startOf("day"), : moment().subtract(5, "days").startOf("day"),
...(end && { end: moment(end).startOf("day") }), ...(end && { end: moment(end).endOf("day") }),
} }
); );

View File

@@ -62,22 +62,24 @@ exports.default = async (req, res) => {
start: start start: start
? moment(start).startOf("day") ? moment(start).startOf("day")
: moment().subtract(5, "days").startOf("day"), : moment().subtract(5, "days").startOf("day"),
...(end && { end: moment(end).startOf("day") }), ...(end && { end: moment(end).endOf("day") }),
} }
); );
const claimsCorpObject = { const claimsCorpObject = {
DataFeed: { DataFeed: {
ShopID: bodyshops_by_pk.claimscorpid, ShopInfo: {
ShopName: bodyshops_by_pk.shopname, ShopID: bodyshops_by_pk.claimscorpid,
RO: jobs.map((j) => ShopName: bodyshops_by_pk.shopname,
CreateRepairOrderTag( RO: jobs.map((j) =>
{ ...j, bodyshop: bodyshops_by_pk }, CreateRepairOrderTag(
function ({ job, error }) { { ...j, bodyshop: bodyshops_by_pk },
erroredJobs.push({ job: job, error: error.toString() }); function ({ job, error }) {
} erroredJobs.push({ job: job, error: error.toString() });
) }
), )
),
},
}, },
}; };
@@ -100,7 +102,7 @@ exports.default = async (req, res) => {
.end({ allowEmptyTags: true }); .end({ allowEmptyTags: true });
allxmlsToUpload.push({ allxmlsToUpload.push({
count: claimsCorpObject.DataFeed.RO.length, count: claimsCorpObject.DataFeed.ShopInfo.RO.length,
xml: ret, xml: ret,
filename: `${bodyshop.claimscorpid}-MIS-${moment().format( filename: `${bodyshop.claimscorpid}-MIS-${moment().format(
"YYYYMMDDTHHMMss" "YYYYMMDDTHHMMss"
@@ -261,8 +263,8 @@ const CreateRepairOrderTag = (job, errorCallback) => {
VIN: job.v_vin || "", VIN: job.v_vin || "",
}, },
Carrier: { Carrier: {
InsuranceCo: job.ins_co_nm || "", UniqueID: job.ins_co_nm || "",
CompanyName: job.ins_co_nm || "", InsuranceCompany: job.ins_co_nm || "",
}, },
Claim: job.clm_no || "", Claim: job.clm_no || "",
Contacts: { Contacts: {
@@ -279,7 +281,7 @@ const CreateRepairOrderTag = (job, errorCallback) => {
: "", : "",
Phone1: "", Phone1: "",
Phone2: "", Phone2: "",
EstimatorName: `${job.est_ct_ln ? job.est_ct_ln : ""}${ Estimator: `${job.est_ct_ln ? job.est_ct_ln : ""}${
job.est_ct_ln ? ", " : "" job.est_ct_ln ? ", " : ""
}${job.est_ct_fn ? job.est_ct_fn : ""}`, }${job.est_ct_fn ? job.est_ct_fn : ""}`,
BodyTechnician: job.employee_body_rel BodyTechnician: job.employee_body_rel
@@ -337,7 +339,7 @@ const CreateRepairOrderTag = (job, errorCallback) => {
.tz(job.bodyshop.timezone) .tz(job.bodyshop.timezone)
.format(AhDateFormat)) || .format(AhDateFormat)) ||
"", "",
StartDate: job.date_repairstarted DateStart: job.date_repairstarted
? (job.date_repairstarted && ? (job.date_repairstarted &&
moment(job.date_repairstarted) moment(job.date_repairstarted)
.tz(job.bodyshop.timezone) .tz(job.bodyshop.timezone)
@@ -392,9 +394,7 @@ const CreateRepairOrderTag = (job, errorCallback) => {
.add(Dinero(job.job_totals.rates.lad.total)) .add(Dinero(job.job_totals.rates.lad.total))
.add(Dinero(job.job_totals.rates.las.total)) .add(Dinero(job.job_totals.rates.las.total))
.toFormat(CCDineroFormat), .toFormat(CCDineroFormat),
Refinish: Dinero(job.job_totals.rates.lar.total).toFormat( Paint: Dinero(job.job_totals.rates.lar.total).toFormat(CCDineroFormat),
CCDineroFormat
),
Prep: Dinero().toFormat(CCDineroFormat), Prep: Dinero().toFormat(CCDineroFormat),
Frame: Dinero(job.job_totals.rates.laf.total).toFormat(CCDineroFormat), Frame: Dinero(job.job_totals.rates.laf.total).toFormat(CCDineroFormat),
Mechanical: Dinero(job.job_totals.rates.lam.total).toFormat( Mechanical: Dinero(job.job_totals.rates.lam.total).toFormat(
@@ -446,6 +446,7 @@ const CreateRepairOrderTag = (job, errorCallback) => {
Towing: Dinero(job.job_totals.additional.towing).toFormat( Towing: Dinero(job.job_totals.additional.towing).toFormat(
CCDineroFormat CCDineroFormat
), ),
Storage: "0.00",
Rental: Rental:
job.job_totals.additional.additionalCostItems.includes( job.job_totals.additional.additionalCostItems.includes(
"ATS Amount" "ATS Amount"
@@ -486,11 +487,11 @@ const CreateRepairOrderTag = (job, errorCallback) => {
.toFixed(2), .toFixed(2),
Paint: job.job_totals.rates.lar.hours.toFixed(2), Paint: job.job_totals.rates.lar.hours.toFixed(2),
Prep: "0.00", Prep: "0.00",
FrameHours: job.job_totals.rates.laf.hours.toFixed(2), Frame: job.job_totals.rates.laf.hours.toFixed(2),
MechanicalHours: job.job_totals.rates.lam.hours.toFixed(2), Mech: job.job_totals.rates.lam.hours.toFixed(2),
GlassHours: job.job_totals.rates.lag.hours.toFixed(2), Glass: job.job_totals.rates.lag.hours.toFixed(2),
ElectricalHours: job.job_totals.rates.lae.hours.toFixed(2), Elec: job.job_totals.rates.lae.hours.toFixed(2),
DetailHours: detailAdjustments.hours, Detail: detailAdjustments.hours,
Reassem: "0.00", Reassem: "0.00",
Other: ( Other: (
job.job_totals.rates.la1.hours + job.job_totals.rates.la1.hours +

View File

@@ -1,16 +1,12 @@
exports.FIND_BODYSHOP_BY_MESSAGING_SERVICE_SID = ` exports.FIND_BODYSHOP_BY_MESSAGING_SERVICE_SID = `
query FIND_BODYSHOP_BY_MESSAGING_SERVICE_SID( query FIND_BODYSHOP_BY_MESSAGING_SERVICE_SID($mssid: String!, $phone: String!) {
$mssid: String!
$phone: String!
) {
bodyshops(where: { messagingservicesid: { _eq: $mssid } }) { bodyshops(where: { messagingservicesid: { _eq: $mssid } }) {
id id
conversations(where: { phone_num: { _eq: $phone } }) { conversations(where: { phone_num: { _eq: $phone } }) {
id id
} }
} }
} }`;
`;
exports.GET_JOB_BY_RO_NUMBER = ` exports.GET_JOB_BY_RO_NUMBER = `
query GET_JOB_BY_RO_NUMBER($ro_number: String!) { query GET_JOB_BY_RO_NUMBER($ro_number: String!) {
@@ -20,8 +16,7 @@ exports.GET_JOB_BY_RO_NUMBER = `
id id
} }
} }
} }`;
`;
exports.INSERT_NEW_PAYMENT = ` exports.INSERT_NEW_PAYMENT = `
mutation INSERT_NEW_PAYMENT($paymentInput: [payments_insert_input!]!) { mutation INSERT_NEW_PAYMENT($paymentInput: [payments_insert_input!]!) {
@@ -30,28 +25,23 @@ exports.INSERT_NEW_PAYMENT = `
id id
} }
} }
} }`;
`;
exports.INSERT_PAYMENT_RESPONSE = ` exports.INSERT_PAYMENT_RESPONSE = `
mutation INSERT_PAYMENT_RESPONSE( mutation INSERT_PAYMENT_RESPONSE($paymentResponse: [payment_response_insert_input!]!) {
$paymentResponse: [payment_response_insert_input!]!
) {
insert_payment_response(objects: $paymentResponse) { insert_payment_response(objects: $paymentResponse) {
returning { returning {
id id
} }
} }
} }`;
`;
exports.UNARCHIVE_CONVERSATION = ` exports.UNARCHIVE_CONVERSATION = `
mutation UNARCHIVE_CONVERSATION($id: uuid!) { mutation UNARCHIVE_CONVERSATION($id: uuid!) {
update_conversations_by_pk(pk_columns: {id: $id}, _set: {archived: false}) { update_conversations_by_pk(pk_columns: {id: $id}, _set: {archived: false}) {
id id
} }
} }`;
`;
exports.INSERT_NEW_JOB_LINE = ` exports.INSERT_NEW_JOB_LINE = `
mutation INSERT_NEW_JOB_LINE($lineInput: [joblines_insert_input!]!) { mutation INSERT_NEW_JOB_LINE($lineInput: [joblines_insert_input!]!) {
@@ -60,8 +50,7 @@ exports.INSERT_NEW_JOB_LINE = `
id id
} }
} }
} }`;
`;
exports.UPDATE_JOB_LINE = ` exports.UPDATE_JOB_LINE = `
mutation UPDATE_JOB_LINE($lineId: uuid!, $line: joblines_set_input!) { mutation UPDATE_JOB_LINE($lineId: uuid!, $line: joblines_set_input!) {
@@ -82,8 +71,7 @@ exports.UPDATE_JOB_LINE = `
removed removed
} }
} }
} }`;
`;
exports.RECEIVE_MESSAGE = ` exports.RECEIVE_MESSAGE = `
mutation RECEIVE_MESSAGE($msg: [messages_insert_input!]!) { mutation RECEIVE_MESSAGE($msg: [messages_insert_input!]!) {
@@ -92,7 +80,7 @@ mutation RECEIVE_MESSAGE($msg: [messages_insert_input!]!) {
conversation { conversation {
id id
archived archived
bodyshop{ bodyshop {
imexshopid imexshopid
} }
created_at created_at
@@ -114,10 +102,7 @@ mutation RECEIVE_MESSAGE($msg: [messages_insert_input!]!) {
userid userid
} }
} }
} }`;
`;
exports.INSERT_MESSAGE = ` exports.INSERT_MESSAGE = `
mutation INSERT_MESSAGE($msg: [messages_insert_input!]!, $conversationid: uuid!) { mutation INSERT_MESSAGE($msg: [messages_insert_input!]!, $conversationid: uuid!) {
@@ -130,7 +115,7 @@ mutation INSERT_MESSAGE($msg: [messages_insert_input!]!, $conversationid: uuid!)
conversation { conversation {
id id
archived archived
bodyshop{ bodyshop {
imexshopid imexshopid
} }
created_at created_at
@@ -152,10 +137,7 @@ mutation INSERT_MESSAGE($msg: [messages_insert_input!]!, $conversationid: uuid!)
userid userid
} }
} }
} }`;
`;
exports.UPDATE_MESSAGE_STATUS = ` exports.UPDATE_MESSAGE_STATUS = `
mutation UPDATE_MESSAGE($msid: String!, $fields: messages_set_input!) { mutation UPDATE_MESSAGE($msid: String!, $fields: messages_set_input!) {
@@ -164,8 +146,7 @@ mutation UPDATE_MESSAGE($msid: String!, $fields: messages_set_input!) {
id id
} }
} }
} }`;
`;
exports.QUERY_JOBS_FOR_RECEIVABLES_EXPORT = ` exports.QUERY_JOBS_FOR_RECEIVABLES_EXPORT = `
query QUERY_JOBS_FOR_RECEIVABLES_EXPORT($ids: [uuid!]!) { query QUERY_JOBS_FOR_RECEIVABLES_EXPORT($ids: [uuid!]!) {
@@ -228,7 +209,7 @@ query QUERY_JOBS_FOR_RECEIVABLES_EXPORT($ids: [uuid!]!) {
owner { owner {
accountingid accountingid
} }
joblines(where:{removed: {_eq:false}}) { joblines(where:{removed: {_eq:false}}) {
id id
line_desc line_desc
part_type part_type
@@ -257,8 +238,7 @@ query QUERY_JOBS_FOR_RECEIVABLES_EXPORT($ids: [uuid!]!) {
timezone timezone
md_ro_statuses md_ro_statuses
} }
} }`;
`;
exports.QUERY_JOBS_FOR_CDK_EXPORT = ` exports.QUERY_JOBS_FOR_CDK_EXPORT = `
query QUERY_JOBS_FOR_CDK_EXPORT($id: uuid!) { query QUERY_JOBS_FOR_CDK_EXPORT($id: uuid!) {
@@ -318,19 +298,19 @@ query QUERY_JOBS_FOR_CDK_EXPORT($id: uuid!) {
v_make_desc v_make_desc
v_color v_color
ca_customer_gst ca_customer_gst
bodyshop { bodyshop {
id id
md_ro_statuses md_ro_statuses
md_responsibility_centers md_responsibility_centers
accountingconfig accountingconfig
cdk_dealerid cdk_dealerid
cdk_configuration cdk_configuration
timezone timezone
} }
owner { owner {
accountingid accountingid
} }
joblines(where:{removed: {_eq:false}}) { joblines(where:{removed: {_eq:false}}) {
id id
line_desc line_desc
part_type part_type
@@ -345,9 +325,7 @@ query QUERY_JOBS_FOR_CDK_EXPORT($id: uuid!) {
prt_dsmk_p prt_dsmk_p
} }
} }
}`;
}
`;
exports.QUERY_JOBS_FOR_PBS_EXPORT = ` exports.QUERY_JOBS_FOR_PBS_EXPORT = `
query QUERY_JOBS_FOR_PBS_EXPORT($id: uuid!) { query QUERY_JOBS_FOR_PBS_EXPORT($id: uuid!) {
@@ -410,24 +388,24 @@ query QUERY_JOBS_FOR_PBS_EXPORT($id: uuid!) {
v_make_desc v_make_desc
v_color v_color
ca_customer_gst ca_customer_gst
vehicle{ vehicle {
v_trimcode v_trimcode
v_makecode v_makecode
} }
bodyshop { bodyshop {
id id
md_ro_statuses md_ro_statuses
md_responsibility_centers md_responsibility_centers
accountingconfig accountingconfig
pbs_serialnumber pbs_serialnumber
pbs_configuration pbs_configuration
timezone timezone
} }
owner { owner {
id id
accountingid accountingid
} }
joblines(where:{removed: {_eq:false}}) { joblines(where:{removed: {_eq:false}}) {
id id
line_desc line_desc
part_type part_type
@@ -444,9 +422,7 @@ query QUERY_JOBS_FOR_PBS_EXPORT($id: uuid!) {
line_ref line_ref
} }
} }
}`;
}
`;
exports.QUERY_BILLS_FOR_PAYABLES_EXPORT = ` exports.QUERY_BILLS_FOR_PAYABLES_EXPORT = `
query QUERY_BILLS_FOR_PAYABLES_EXPORT($bills: [uuid!]!) { query QUERY_BILLS_FOR_PAYABLES_EXPORT($bills: [uuid!]!) {
@@ -490,18 +466,17 @@ query QUERY_BILLS_FOR_PAYABLES_EXPORT($bills: [uuid!]!) {
due_date due_date
} }
} }
} }`;
`;
exports.QUERY_PAYMENTS_FOR_EXPORT = ` exports.QUERY_PAYMENTS_FOR_EXPORT = `
query QUERY_PAYMENTS_FOR_EXPORT($payments: [uuid!]!) query QUERY_PAYMENTS_FOR_EXPORT($payments: [uuid!]!) {
{ bodyshops(where: {associations: {active: {_eq: true}}}) { bodyshops(where: {associations: {active: {_eq: true}}}) {
id id
md_responsibility_centers md_responsibility_centers
accountingconfig accountingconfig
timezone timezone
md_ins_cos md_ins_cos
} }
payments(where: {id: {_in: $payments}}) { payments(where: {id: {_in: $payments}}) {
id id
created_at created_at
@@ -509,15 +484,14 @@ exports.QUERY_PAYMENTS_FOR_EXPORT = `
job { job {
id id
ro_number ro_number
ownerid ownerid
ownr_ln ownr_ln
ownr_fn ownr_fn
ownr_addr1 ownr_addr1
ownr_addr2 ownr_addr2
ownr_zip ownr_zip
ownr_city ownr_city
ownr_st ownr_st
ins_co_nm ins_co_nm
owner{ owner{
accountingid accountingid
@@ -525,7 +499,7 @@ exports.QUERY_PAYMENTS_FOR_EXPORT = `
ownr_fn ownr_fn
ownr_ln ownr_ln
ownr_co_nm ownr_co_nm
bodyshop{ bodyshop {
accountingconfig accountingconfig
md_responsibility_centers md_responsibility_centers
md_ins_cos md_ins_cos
@@ -542,8 +516,7 @@ exports.QUERY_PAYMENTS_FOR_EXPORT = `
paymentnum paymentnum
date date
} }
} }`;
`;
exports.QUERY_UPCOMING_APPOINTMENTS = `query QUERY_UPCOMING_APPOINTMENTS($now: timestamptz!, $jobId: uuid!) { exports.QUERY_UPCOMING_APPOINTMENTS = `query QUERY_UPCOMING_APPOINTMENTS($now: timestamptz!, $jobId: uuid!) {
jobs_by_pk(id: $jobId) { jobs_by_pk(id: $jobId) {
@@ -643,8 +616,7 @@ exports.QUERY_UPCOMING_APPOINTMENTS = `query QUERY_UPCOMING_APPOINTMENTS($now: t
} }
} }
} }
} }`;
`;
exports.QUERY_EMPLOYEE_PIN = `query QUERY_EMPLOYEE_PIN($shopId: uuid!, $employeeId: String!) { exports.QUERY_EMPLOYEE_PIN = `query QUERY_EMPLOYEE_PIN($shopId: uuid!, $employeeId: String!) {
employees(where: {_and: {shopid: {_eq: $shopId}, employee_number: {_eq: $employeeId}}}) { employees(where: {_and: {shopid: {_eq: $shopId}, employee_number: {_eq: $employeeId}}}) {
@@ -835,8 +807,7 @@ exports.AUTOHOUSE_QUERY = `query AUTOHOUSE_EXPORT($start: timestamptz, $bodyshop
totalliquidcost totalliquidcost
} }
} }
} }`;
`;
exports.CLAIMSCORP_QUERY = `query CLAIMSCORP_EXPORT($start: timestamptz, $bodyshopid: uuid!, $end: timestamptz) { exports.CLAIMSCORP_QUERY = `query CLAIMSCORP_EXPORT($start: timestamptz, $bodyshopid: uuid!, $end: timestamptz) {
bodyshops_by_pk(id: $bodyshopid){ bodyshops_by_pk(id: $bodyshopid){
@@ -1008,8 +979,7 @@ exports.CLAIMSCORP_QUERY = `query CLAIMSCORP_EXPORT($start: timestamptz, $bodysh
totalliquidcost totalliquidcost
} }
} }
} }`;
`;
exports.ENTEGRAL_EXPORT = ` exports.ENTEGRAL_EXPORT = `
query ENTEGRAL_EXPORT($bodyshopid: uuid!) { query ENTEGRAL_EXPORT($bodyshopid: uuid!) {
@@ -1098,8 +1068,7 @@ query ENTEGRAL_EXPORT($bodyshopid: uuid!) {
cieca_ttl cieca_ttl
adjustment_bottom_line adjustment_bottom_line
} }
} }`;
`;
exports.UPDATE_JOB = ` exports.UPDATE_JOB = `
mutation UPDATE_JOB($jobId: uuid!, $job: jobs_set_input!) { mutation UPDATE_JOB($jobId: uuid!, $job: jobs_set_input!) {
@@ -1114,8 +1083,7 @@ exports.UPDATE_JOB = `
lbr_adjustments lbr_adjustments
} }
} }
} }`;
`;
exports.GET_JOB_BY_PK = `query GET_JOB_BY_PK($id: uuid!) { exports.GET_JOB_BY_PK = `query GET_JOB_BY_PK($id: uuid!) {
jobs_by_pk(id: $id) { jobs_by_pk(id: $id) {
@@ -1127,7 +1095,7 @@ exports.GET_JOB_BY_PK = `query GET_JOB_BY_PK($id: uuid!) {
kmout kmout
comment comment
referral_source referral_source
referral_source_extra referral_source_extra
unit_number unit_number
po_number po_number
special_coverage_policy special_coverage_policy
@@ -1163,10 +1131,10 @@ exports.GET_JOB_BY_PK = `query GET_JOB_BY_PK($id: uuid!) {
est_ct_fn est_ct_fn
shopid shopid
est_ct_ln est_ct_ln
vehicle{ vehicle {
id id
notes notes
} }
est_ph1 est_ph1
est_ea est_ea
selling_dealer selling_dealer
@@ -1526,19 +1494,17 @@ exports.QUERY_JOB_COSTING_DETAILS_MULTI = ` query QUERY_JOB_COSTING_DETAILS_MULT
use_paint_scale_data use_paint_scale_data
} }
} }
} }`;
`;
exports.INSERT_IOEVENT = ` mutation INSERT_IOEVENT($event: ioevents_insert_input!) { exports.INSERT_IOEVENT = ` mutation INSERT_IOEVENT($event: ioevents_insert_input!) {
insert_ioevents_one(object: $event) { insert_ioevents_one(object: $event) {
id id
} }
} }`;
`;
exports.GET_AUTOHOUSE_SHOPS = `query GET_AUTOHOUSE_SHOPS { exports.GET_AUTOHOUSE_SHOPS = `query GET_AUTOHOUSE_SHOPS {
bodyshops(where: {autohouseid: {_is_null: false}}){ bodyshops(where: {autohouseid: {_is_null: false}, _or: {autohouseid: {_neq: ""}}}){
id id
shopname shopname
address1 address1
city city
@@ -1554,11 +1520,10 @@ exports.GET_AUTOHOUSE_SHOPS = `query GET_AUTOHOUSE_SHOPS {
imexshopid imexshopid
timezone timezone
} }
} }`;
`;
exports.GET_CLAIMSCORP_SHOPS = `query GET_CLAIMSCORP_SHOPS { exports.GET_CLAIMSCORP_SHOPS = `query GET_CLAIMSCORP_SHOPS {
bodyshops(where: {claimscorpid: {_is_null: false}}){ bodyshops(where: {claimscorpid: {_is_null: false}, _or: {claimscorpid: {_neq: ""}}}){
id id
shopname shopname
address1 address1
@@ -1575,12 +1540,11 @@ exports.GET_CLAIMSCORP_SHOPS = `query GET_CLAIMSCORP_SHOPS {
imexshopid imexshopid
timezone timezone
} }
} }`;
`;
exports.GET_ENTEGRAL_SHOPS = `query GET_AUTOHOUSE_SHOPS { exports.GET_ENTEGRAL_SHOPS = `query GET_AUTOHOUSE_SHOPS {
bodyshops(where: {entegral_id: {_is_null: false}}){ bodyshops(where: {entegral_id: {_is_null: false}, _or: {entegral_id: {_neq: ""}}}){
id id
shopname shopname
address1 address1
city city
@@ -1596,22 +1560,19 @@ exports.GET_ENTEGRAL_SHOPS = `query GET_AUTOHOUSE_SHOPS {
timezone timezone
features features
} }
} }`;
`;
exports.DELETE_ALL_DMS_VEHICLES = `mutation DELETE_ALL_DMS_VEHICLES{ exports.DELETE_ALL_DMS_VEHICLES = `mutation DELETE_ALL_DMS_VEHICLES{
delete_dms_vehicles(where: {}) { delete_dms_vehicles(where: {}) {
affected_rows affected_rows
} }
} }`;
`;
exports.INSERT_DMS_VEHICLES = `mutation INSERT_DMS_VEHICLES($vehicles: [dms_vehicles_insert_input!]!) { exports.INSERT_DMS_VEHICLES = `mutation INSERT_DMS_VEHICLES($vehicles: [dms_vehicles_insert_input!]!) {
insert_dms_vehicles(objects: $vehicles) { insert_dms_vehicles(objects: $vehicles) {
affected_rows affected_rows
} }
} }`;
`;
exports.GET_CDK_ALLOCATIONS = `query QUERY_JOB_CLOSE_DETAILS($id: uuid!) { exports.GET_CDK_ALLOCATIONS = `query QUERY_JOB_CLOSE_DETAILS($id: uuid!) {
jobs_by_pk(id: $id) { jobs_by_pk(id: $id) {
@@ -1728,8 +1689,7 @@ exports.GET_CDK_ALLOCATIONS = `query QUERY_JOB_CLOSE_DETAILS($id: uuid!) {
unq_seq unq_seq
} }
} }
} }`;
`;
exports.GET_QBO_AUTH = `query GET_QBO_AUTH($email: String!) { exports.GET_QBO_AUTH = `query GET_QBO_AUTH($email: String!) {
associations(where: {_and: {active: {_eq: true}, useremail: {_eq: $email}}}){ associations(where: {_and: {active: {_eq: true}, useremail: {_eq: $email}}}){
@@ -1743,15 +1703,13 @@ exports.SET_QBO_AUTH_WITH_REALM = `mutation SET_QBO_AUTH($email: String!, $qbo_a
update_associations(_set: {qbo_auth: $qbo_auth, qbo_realmId: $qbo_realmId}, where: {_and: {active: {_eq: true}, useremail: {_eq: $email}}}){ update_associations(_set: {qbo_auth: $qbo_auth, qbo_realmId: $qbo_realmId}, where: {_and: {active: {_eq: true}, useremail: {_eq: $email}}}){
affected_rows affected_rows
} }
} }`;
`;
exports.SET_QBO_AUTH = `mutation SET_QBO_AUTH($email: String!, $qbo_auth: jsonb!) { exports.SET_QBO_AUTH = `mutation SET_QBO_AUTH($email: String!, $qbo_auth: jsonb!) {
update_associations(_set: {qbo_auth: $qbo_auth}, where: {_and: {active: {_eq: true}, useremail: {_eq: $email}}}){ update_associations(_set: {qbo_auth: $qbo_auth}, where: {_and: {active: {_eq: true}, useremail: {_eq: $email}}}){
affected_rows affected_rows
} }
} }`;
`;
exports.MARK_JOB_EXPORTED = ` exports.MARK_JOB_EXPORTED = `
mutation MARK_JOB_EXPORTED($jobId: uuid!, $job: jobs_set_input!, $log: exportlog_insert_input!, $bill: bills_set_input!) { mutation MARK_JOB_EXPORTED($jobId: uuid!, $job: jobs_set_input!, $log: exportlog_insert_input!, $bill: bills_set_input!) {
@@ -1770,10 +1728,9 @@ mutation MARK_JOB_EXPORTED($jobId: uuid!, $job: jobs_set_input!, $log: exportlog
id id
} }
update_bills(where:{jobid:{_eq :$jobId}}, _set:$bill){ update_bills(where:{jobid:{_eq :$jobId}}, _set:$bill){
affected_rows affected_rows
} }
} }`;
`;
exports.MARK_BILLS_EXPORTED = ` exports.MARK_BILLS_EXPORTED = `
mutation UPDATE_BILLS($billids: [uuid!]!, $bill: bills_set_input!, $logs: [exportlog_insert_input!]!) { mutation UPDATE_BILLS($billids: [uuid!]!, $bill: bills_set_input!, $logs: [exportlog_insert_input!]!) {
@@ -1785,28 +1742,25 @@ mutation UPDATE_BILLS($billids: [uuid!]!, $bill: bills_set_input!, $logs: [expor
} }
} }
insert_exportlog(objects: $logs) { insert_exportlog(objects: $logs) {
returning{ returning{
id id
} }
} }
} }`;
`;
exports.INSERT_EXPORT_LOG = ` exports.INSERT_EXPORT_LOG = `
mutation INSERT_EXPORT_LOG($log: exportlog_insert_input!) { mutation INSERT_EXPORT_LOG($log: exportlog_insert_input!) {
insert_exportlog_one(object: $log) { insert_exportlog_one(object: $log) {
id id
} }
} }`;
`;
exports.QUERY_EXISTING_TRANSITION = ` exports.QUERY_EXISTING_TRANSITION = `
mutation INSERT_EXPORT_LOG($log: exportlog_insert_input!) { mutation INSERT_EXPORT_LOG($log: exportlog_insert_input!) {
insert_exportlog_one(object: $log) { insert_exportlog_one(object: $log) {
id id
} }
} }`;
`;
exports.UPDATE_OLD_TRANSITION = `mutation UPDATE_OLD_TRANSITION($jobid: uuid!, $existingTransition: transitions_set_input!){ exports.UPDATE_OLD_TRANSITION = `mutation UPDATE_OLD_TRANSITION($jobid: uuid!, $existingTransition: transitions_set_input!){
update_transitions(where:{jobid:{_eq:$jobid}, end:{_is_null:true update_transitions(where:{jobid:{_eq:$jobid}, end:{_is_null:true
@@ -1830,9 +1784,7 @@ exports.INSERT_NEW_TRANSITION = `mutation INSERT_NEW_TRANSITION($newTransition:
update_transitions(where: {id: {_eq: $oldTransitionId}}, _set: {duration: $duration}) { update_transitions(where: {id: {_eq: $oldTransitionId}}, _set: {duration: $duration}) {
affected_rows affected_rows
} }
} }`;
`;
exports.QUERY_JOB_ID_MIXDATA = `query QUERY_JOB_ID_MIXDATA($roNumbers: [String!]!) { exports.QUERY_JOB_ID_MIXDATA = `query QUERY_JOB_ID_MIXDATA($roNumbers: [String!]!) {
jobs(where: {ro_number: {_in: $roNumbers}}) { jobs(where: {ro_number: {_in: $roNumbers}}) {
@@ -1842,9 +1794,7 @@ exports.QUERY_JOB_ID_MIXDATA = `query QUERY_JOB_ID_MIXDATA($roNumbers: [String!]
id id
} }
} }
} }`;
`;
exports.QBO_MARK_JOB_EXPORTED = ` exports.QBO_MARK_JOB_EXPORTED = `
mutation QBO_MARK_JOB_EXPORTED($jobId: uuid!, $job: jobs_set_input!, $logs: [exportlog_insert_input!]!) { mutation QBO_MARK_JOB_EXPORTED($jobId: uuid!, $job: jobs_set_input!, $logs: [exportlog_insert_input!]!) {
@@ -1857,9 +1807,8 @@ mutation QBO_MARK_JOB_EXPORTED($jobId: uuid!, $job: jobs_set_input!, $logs: [exp
} }
} }
} }`;
`;
exports.QBO_MARK_BILL_EXPORTED = ` exports.QBO_MARK_BILL_EXPORTED = `
mutation QBO_MARK_BILL_EXPORTED($billId: uuid!, $bill: bills_set_input!, $logs: [exportlog_insert_input!]!) { mutation QBO_MARK_BILL_EXPORTED($billId: uuid!, $bill: bills_set_input!, $logs: [exportlog_insert_input!]!) {
insert_exportlog(objects: $logs) { insert_exportlog(objects: $logs) {
@@ -1870,9 +1819,7 @@ mutation QBO_MARK_BILL_EXPORTED($billId: uuid!, $bill: bills_set_input!, $logs:
id id
} }
} }
} }`;
`;
exports.QBO_MARK_PAYMENT_EXPORTED = ` exports.QBO_MARK_PAYMENT_EXPORTED = `
mutation QBO_MARK_PAYMENT_EXPORTED($paymentId: uuid!, $payment: payments_set_input!, $logs: [exportlog_insert_input!]!) { mutation QBO_MARK_PAYMENT_EXPORTED($paymentId: uuid!, $payment: payments_set_input!, $logs: [exportlog_insert_input!]!) {
@@ -1887,19 +1834,17 @@ mutation QBO_MARK_PAYMENT_EXPORTED($paymentId: uuid!, $payment: payments_set_inp
}`; }`;
exports.INSERT_EXPORT_LOG = ` exports.INSERT_EXPORT_LOG = `
mutation INSERT_EXPORT_LOG($logs: [exportlog_insert_input!]!) { mutation INSERT_EXPORT_LOG($logs: [exportlog_insert_input!]!) {
insert_exportlog(objects: $logs) { insert_exportlog(objects: $logs) {
affected_rows affected_rows
}
} }
`; }`;
exports.INSERT_EMAIL_AUDIT = `mutation INSERT_EMAIL_AUDIT($email: email_audit_trail_insert_input!) { exports.INSERT_EMAIL_AUDIT = `mutation INSERT_EMAIL_AUDIT($email: email_audit_trail_insert_input!) {
insert_email_audit_trail_one(object: $email) { insert_email_audit_trail_one(object: $email) {
id id
} }
} }`;
`;
exports.DELETE_MEDIA_DOCUMENTS = ` exports.DELETE_MEDIA_DOCUMENTS = `
mutation DELETE_DOCUMENTS($ids: [uuid!]!) { mutation DELETE_DOCUMENTS($ids: [uuid!]!) {
@@ -1908,8 +1853,7 @@ mutation DELETE_DOCUMENTS($ids: [uuid!]!) {
id id
} }
} }
} }`;
`;
exports.UPDATE_EMAIL_AUDIT = ` exports.UPDATE_EMAIL_AUDIT = `
mutation ($sesid: String!, $status: String, $context: jsonb) { mutation ($sesid: String!, $status: String, $context: jsonb) {
@@ -1961,8 +1905,7 @@ query GET_PBS_AP_ALLOCATIONS($billids: [uuid!]) {
quantity quantity
} }
} }
} }`;
`;
exports.QUERY_PARTS_SCAN = `query QUERY_PARTS_SCAN ($id: uuid!) { exports.QUERY_PARTS_SCAN = `query QUERY_PARTS_SCAN ($id: uuid!) {
jobs_by_pk(id: $id) { jobs_by_pk(id: $id) {
@@ -1976,8 +1919,7 @@ exports.QUERY_PARTS_SCAN = `query QUERY_PARTS_SCAN ($id: uuid!) {
critical critical
} }
} }
} }`;
`;
exports.UPDATE_PARTS_CRITICAL = `mutation UPDATE_PARTS_CRITICAL ($IdsToMarkCritical:[uuid!]!, $jobid: uuid!){ exports.UPDATE_PARTS_CRITICAL = `mutation UPDATE_PARTS_CRITICAL ($IdsToMarkCritical:[uuid!]!, $jobid: uuid!){
critical: update_joblines(where:{id:{_in:$IdsToMarkCritical}}, _set:{critical: true}){ critical: update_joblines(where:{id:{_in:$IdsToMarkCritical}}, _set:{critical: true}){
@@ -1993,5 +1935,4 @@ exports.ACTIVE_SHOP_BY_USER = `query ACTIVE_SHOP_BY_USER($user: String) {
id id
shopid shopid
} }
} }`;
`;