Files
imexmobile/graphql/jobs.queries.js
2025-11-28 09:10:34 -08:00

1098 lines
18 KiB
JavaScript

import { gql } from "graphql-tag";
export const QUERY_ALL_ACTIVE_JOBS = gql`
query QUERY_ALL_ACTIVE_JOBS($statuses: [String!]!) {
jobs(
where: { status: { _in: $statuses } }
order_by: { created_at: desc }
) {
ownr_fn
ownr_ln
ownr_co_nm
clm_no
v_model_yr
v_model_desc
v_make_desc
id
owner_owing
ro_number
status
}
}
`;
export const SUBSCRIPTION_JOBS_IN_PRODUCTION = gql`
subscription SUBSCRIPTION_JOBS_IN_PRODUCTION($statusList: [String!]!) {
jobs(where: { inproduction: { _eq: true } }) {
id
status
ro_number
ownr_fn
ownr_ln
v_model_yr
v_model_desc
clm_no
v_make_desc
v_color
plate_no
actual_in
scheduled_completion
scheduled_delivery
ins_co_nm
clm_total
ownr_ph1
special_coverage_policy
production_vars
kanbanparent
employee_body
employee_body_rel {
id
first_name
last_name
}
employee_refinish
employee_refinish_rel {
id
first_name
last_name
}
employee_prep
employee_prep_rel {
id
first_name
last_name
}
partcount: joblines_aggregate {
nodes {
status
}
}
labhrs: joblines_aggregate(where: { mod_lbr_ty: { _eq: "LAB" } }) {
aggregate {
sum {
mod_lb_hrs
}
}
}
larhrs: joblines_aggregate(where: { mod_lbr_ty: { _eq: "LAR" } }) {
aggregate {
sum {
mod_lb_hrs
}
}
}
}
}
`;
export const GET_JOB_BY_PK = gql`
query GET_JOB_BY_PK($id: uuid!) {
jobs_by_pk(id: $id) {
updated_at
employee_body_rel {
id
first_name
last_name
}
employee_refinish_rel {
id
first_name
last_name
}
employee_prep_rel {
id
first_name
last_name
}
employee_csr_rel {
id
first_name
last_name
}
loss_desc
kmin
kmout
referral_source
unit_number
po_number
special_coverage_policy
scheduled_delivery
converted
ro_number
clm_total
inproduction
vehicleid
plate_no
v_vin
v_model_yr
v_model_desc
v_make_desc
v_color
clm_no
area_of_damage
ins_co_nm
ins_addr1
ins_city
ins_ct_ln
ins_ct_fn
ins_ea
ins_ph1
est_co_nm
est_ct_fn
est_ct_ln
pay_date
est_ph1
est_ea
regie_number
scheduled_completion
id
ded_amt
ded_status
depreciation_taxes
production_vars
other_amount_payable
towing_payable
storage_payable
adjustment_bottom_line
job_totals
ownr_fn
ownr_ln
ownr_ea
ownr_addr1
ownr_addr2
ownr_city
ownr_st
ownr_zip
ownr_ctry
ownr_ph1
actual_in
scheduled_completion
scheduled_in
actual_completion
scheduled_delivery
actual_delivery
date_estimated
date_open
date_scheduled
date_invoiced
date_exported
status
owner_owing
joblines(where: { removed: { _eq: false } }, order_by: { line_no: asc }) {
id
unq_seq
line_ind
tax_part
line_desc
prt_dsmk_p
prt_dsmk_m
part_type
oem_partno
db_price
act_price
part_qty
mod_lbr_ty
db_hrs
mod_lb_hrs
lbr_op
lbr_amt
op_code_desc
}
notes(order_by: { created_at: desc }) {
id
text
critical
private
pinned
created_at
updated_at
created_by
}
documents(order_by: { takenat: desc }) {
id
name
key
created_at
type
extension
}
}
}
`;
export const QUERY_JOB_CARD_DETAILS = gql`
query QUERY_JOB_CARD_DETAILS($id: uuid!) {
jobs_by_pk(id: $id) {
ownr_fn
employee_body
employee_refinish
ownr_ln
ownr_ph1
ownr_ea
joblines_status {
part_type
count
status
}
owner {
id
allow_text_message
preferred_contact
}
vehicleid
v_model_yr
v_make_desc
v_model_desc
v_color
plate_no
vehicle {
id
v_model_yr
v_make_desc
v_model_desc
v_color
plate_no
}
actual_completion
actual_delivery
actual_in
id
ins_co_nm
ins_ct_fn
ins_ct_ln
ins_ph1
ins_ea
est_co_nm
est_ph1
est_ea
est_ct_fn
est_ct_ln
clm_no
status
job_totals
area_of_damage
ro_number
scheduled_completion
scheduled_in
scheduled_delivery
date_invoiced
date_open
date_exported
date_scheduled
date_estimated
notes {
id
text
critical
private
created_at
}
updated_at
clm_total
ded_amt
cccontracts {
id
agreementnumber
status
start
scheduledreturn
}
documents(limit: 3, order_by: { takenat: desc }) {
id
key
}
}
}
`;
export const QUERY_TECH_JOB_DETAILS = gql`
query QUERY_TECH_JOB_DETAILS($id: uuid!) {
jobs_by_pk(id: $id) {
ownr_fn
ownr_ln
v_model_yr
v_make_desc
v_model_desc
v_color
plate_no
actual_completion
actual_delivery
actual_in
id
ins_co_nm
clm_no
status
job_totals
area_of_damage
ro_number
scheduled_completion
scheduled_in
scheduled_delivery
date_invoiced
date_open
date_exported
date_scheduled
date_estimated
employee_body
employee_refinish
employee_prep
joblines {
id
unq_seq
line_ind
tax_part
line_desc
prt_dsmk_p
prt_dsmk_m
part_type
oem_partno
db_price
act_price
part_qty
mod_lbr_ty
db_hrs
mod_lb_hrs
lbr_op
lbr_amt
op_code_desc
}
notes {
id
text
critical
private
created_at
}
updated_at
documents(order_by: { takenat: desc }) {
id
key
}
}
}
`;
export const UPDATE_JOB = gql`
mutation UPDATE_JOB($jobId: uuid!, $job: jobs_set_input!) {
update_jobs(where: { id: { _eq: $jobId } }, _set: $job) {
returning {
id
date_exported
status
}
}
}
`;
export const UPDATE_JOBS = gql`
mutation UPDATE_JOBS($jobIds: [uuid!]!, $fields: jobs_set_input!) {
update_jobs(where: { id: { _in: $jobIds } }, _set: $fields) {
returning {
id
}
}
}
`;
export const CONVERT_JOB_TO_RO = gql`
mutation CONVERT_JOB_TO_RO($jobId: uuid!) {
update_jobs(where: { id: { _eq: $jobId } }, _set: { converted: true }) {
returning {
id
ro_number
converted
}
}
}
`;
export const INSERT_NEW_JOB = gql`
mutation INSERT_JOB($job: [jobs_insert_input!]!) {
insert_jobs(objects: $job) {
returning {
id
}
}
}
`;
export const UPDATE_JOB_STATUS = gql`
mutation UPDATE_JOB_STATUS($jobId: uuid!, $status: String!) {
update_jobs(where: { id: { _eq: $jobId } }, _set: { status: $status }) {
returning {
id
status
}
}
}
`;
export const ACTIVE_JOBS_FOR_AUTOCOMPLETE = gql`
query ACTIVE_JOBS_FOR_AUTOCOMPLETE($statuses: [String!]!) {
jobs(where: { status: { _in: $statuses } }) {
id
ownr_fn
ownr_ln
ro_number
vehicleid
v_make_desc
v_model_desc
v_model_yr
}
}
`;
export const SEARCH_FOR_JOBS = gql`
query SEARCH_FOR_JOBS($search: String!) {
jobs(where: { ro_number: { _ilike: $search } }) {
id
ro_number
ownr_fn
ownr_ln
}
}
`;
//TODO Ensure this is always up to date.
export const QUERY_ALL_JOB_FIELDS = gql`
query QUERY_ALL_JOB_FIELDS($id: uuid!) {
jobs_by_pk(id: $id) {
id
adj_g_disc
adj_strdis
adj_towdis
adjustment_bottom_line
agt_addr1
agt_addr2
agt_city
agt_co_id
agt_co_nm
agt_ct_fn
agt_ct_ln
agt_ct_ph
agt_ct_phx
agt_ctry
agt_ea
agt_faxx
agt_fax
agt_lic_no
agt_ph1
agt_ph1x
agt_ph2
agt_zip
agt_st
agt_ph2x
area_of_damage
cat_no
cieca_stl
cieca_ttl
clm_addr1
clm_addr2
clm_city
clm_ct_fn
clm_ct_ln
clm_ct_ph
clm_ct_phx
clm_ctry
clm_ea
clm_fax
clm_faxx
clm_ofc_id
clm_ofc_nm
clm_ph1
clm_ph1x
clm_ph2
clm_ph2x
clm_st
clm_title
clm_total
clm_zip
employee_csr_rel {
id
first_name
last_name
}
cust_pr
ded_amt
ded_status
depreciation_taxes
est_addr1
est_addr2
est_city
est_co_nm
est_ct_fn
est_ct_ln
est_ctry
est_ea
est_ph1
est_st
est_zip
federal_tax_rate
g_bett_amt
ins_addr1
ins_addr2
ins_city
ins_co_id
ins_co_nm
ins_ct_fn
ins_ct_ln
ins_ct_ph
ins_ct_phx
ins_ctry
ins_ea
ins_fax
ins_faxx
ins_memo
ins_ph1
ins_ph1x
ins_ph2
ins_ph2x
ins_st
ins_title
ins_zip
insd_addr1
insd_addr2
insd_city
insd_co_nm
insd_ctry
insd_ea
insd_fax
insd_faxx
insd_fn
insd_ln
insd_ph1
insd_ph1x
insd_ph2
insd_ph2x
insd_st
insd_title
insd_zip
job_totals
labor_rate_desc
labor_rate_id
local_tax_rate
other_amount_payable
owner_owing
ownerid
ownr_addr1
ownr_addr2
ownr_city
ownr_co_nm
ownr_ctry
ownr_ea
ownr_fax
ownr_faxx
ownr_fn
ownr_ln
ownr_ph1
ownr_ph1x
ownr_ph2
ownr_ph2x
ownr_st
ownr_title
ownr_zip
parts_tax_rates
pay_amt
pay_chknm
pay_date
pay_type
payee_nms
plate_no
plate_st
po_number
policy_no
rate_la1
rate_la2
rate_la3
rate_la4
rate_laa
rate_lab
rate_lad
rate_lae
rate_lag
rate_laf
rate_lam
rate_lar
rate_las
rate_lau
rate_ma2s
rate_ma2t
rate_ma3s
rate_mabl
rate_macs
rate_mahw
rate_mapa
rate_mash
rate_matd
referral_source
regie_number
selling_dealer
selling_dealer_contact
servicing_dealer
servicing_dealer_contact
shopid
special_coverage_policy
state_tax_rate
storage_payable
tax_lbr_rt
tax_levies_rt
tax_paint_mat_rt
tax_predis
tax_prethr
tax_pstthr
tax_str_rt
tax_sub_rt
tax_thramt
tax_tow_rt
theft_ind
tlos_ind
towing_payable
unit_number
v_color
v_make_desc
v_model_desc
v_model_yr
v_vin
vehicleid
joblines {
act_price
alt_co_id
alt_overrd
alt_part_i
alt_partm
bett_amt
alt_partno
bett_pctg
bett_tax
bett_type
cert_part
db_hrs
db_price
db_ref
est_seq
glass_flag
id
lbr_amt
lbr_hrs_j
lbr_inc
lbr_op
lbr_op_j
lbr_tax
lbr_typ_j
line_desc
line_ind
line_ref
misc_amt
misc_sublt
misc_tax
mod_lb_hrs
mod_lbr_ty
oem_partno
op_code_desc
paint_stg
paint_tone
part_qty
part_type
price_inc
price_j
prt_dsmk_m
prt_dsmk_p
status
tax_part
unq_seq
}
employee_body
employee_refinish
employee_prep
}
}
`;
export const QUERY_ALL_JOBS_PAGINATED = gql`
query QUERY_ALL_JOBS_PAGINATED(
$search: String
$offset: Int
$limit: Int
$order: [jobs_order_by!]!
) {
search_jobs(
args: { search: $search }
offset: $offset
limit: $limit
order_by: $order
) {
ownr_fn
ownr_ln
ownr_ph1
ownr_ea
plate_no
plate_st
v_vin
v_model_yr
v_model_desc
v_make_desc
v_color
vehicleid
actual_completion
actual_delivery
actual_in
id
ins_co_nm
ins_ct_fn
ins_ct_ln
ins_ph1
ins_ea
est_co_nm
est_ph1
est_ea
est_ct_fn
est_ct_ln
clm_no
clm_total
owner_owing
ro_number
scheduled_completion
scheduled_in
scheduled_delivery
status
updated_at
ded_amt
vehicleid
}
search_jobs_aggregate(args: { search: $search }) {
aggregate {
count(distinct: true)
}
}
}
`;
export const QUERY_JOB_CLOSE_DETAILS = gql`
query QUERY_JOB_CLOSE_DETAILS($id: uuid!) {
jobs_by_pk(id: $id) {
ro_number
clm_total
inproduction
plate_no
v_vin
v_model_yr
v_model_desc
v_make_desc
v_color
invoice_allocation
ins_co_id
policy_no
clm_no
ins_co_nm
regie_number
id
ded_amt
ded_status
depreciation_taxes
other_amount_payable
towing_payable
storage_payable
adjustment_bottom_line
federal_tax_rate
state_tax_rate
local_tax_rate
tax_tow_rt
tax_str_rt
tax_paint_mat_rt
tax_sub_rt
tax_lbr_rt
tax_levies_rt
parts_tax_rates
job_totals
ownr_fn
ownr_ln
ownr_ea
ownr_addr1
ownr_addr2
ownr_city
ownr_st
ownr_zip
ownr_ctry
ownr_ph1
rate_la1
rate_la2
rate_la3
rate_la4
rate_laa
rate_lab
rate_lad
rate_lae
rate_laf
rate_lag
rate_lam
rate_lar
rate_las
rate_lau
rate_ma2s
rate_ma2t
rate_ma3s
rate_mabl
rate_macs
rate_mahw
rate_mapa
rate_mash
rate_matd
status
owner_owing
date_exported
joblines {
id
tax_part
line_desc
prt_dsmk_p
prt_dsmk_m
part_type
oem_partno
db_price
act_price
part_qty
mod_lbr_ty
db_hrs
mod_lb_hrs
lbr_op
lbr_amt
op_code_desc
}
}
}
`;
export const generate_UPDATE_JOB_KANBAN = (
oldChildId,
oldChildNewParent,
movedId,
movedNewParent,
movedNewStatus,
newChildId,
newChildParent
) => {
const oldChildQuery = `
updateOldChild: update_jobs(where: { id: { _eq: "${oldChildId}" } },
_set: {kanbanparent: ${oldChildNewParent ? `"${oldChildNewParent}"` : null
}}) {
returning {
id
kanbanparent
}
}`;
const movedQuery = `
updateMovedChild: update_jobs(where: { id: { _eq: "${movedId}" } },
_set: {kanbanparent: ${movedNewParent ? `"${movedNewParent}"` : null
} , status: "${movedNewStatus}"}) {
returning {
id
status
kanbanparent
}
}`;
const newChildQuery = `
updateNewChild: update_jobs(where: { id: { _eq: "${newChildId}" } },
_set: {kanbanparent: ${newChildParent ? `"${newChildParent}"` : null}}) {
returning {
id
kanbanparent
}
}`;
return gql`
mutation UPDATE_JOB_KANBAN {
${oldChildId ? oldChildQuery : ""}
${movedId ? movedQuery : ""}
${newChildId ? newChildQuery : ""}
}
`;
};
export const GET_JOB_TOMBSTONE = gql`
query GET_JOB_TOMBSTONE($id: uuid!) {
jobs_by_pk(id: $id) {
updated_at
employee_body_rel {
id
first_name
last_name
}
employee_refinish_rel {
id
first_name
last_name
}
employee_prep_rel {
id
first_name
last_name
}
employee_csr_rel {
id
first_name
last_name
}
loss_desc
kmin
kmout
referral_source
unit_number
po_number
special_coverage_policy
scheduled_delivery
converted
ro_number
clm_total
inproduction
vehicleid
plate_no
v_vin
v_model_yr
v_model_desc
v_make_desc
v_color
clm_no
area_of_damage
ins_co_nm
ins_addr1
ins_city
ins_ct_ln
ins_ct_fn
ins_ea
ins_ph1
est_co_nm
est_ct_fn
est_ct_ln
pay_date
est_ph1
est_ea
regie_number
scheduled_completion
id
ded_amt
ded_status
depreciation_taxes
production_vars
other_amount_payable
towing_payable
storage_payable
adjustment_bottom_line
job_totals
ownr_fn
ownr_ln
ownr_ea
ownr_addr1
ownr_addr2
ownr_city
ownr_st
ownr_zip
ownr_ctry
ownr_ph1
actual_in
scheduled_completion
scheduled_in
actual_completion
scheduled_delivery
actual_delivery
date_estimated
date_open
date_scheduled
date_invoiced
date_exported
status
owner_owing
vehicle {
id
v_paint_codes
jobs {
id
ro_number
status
}
}
}
}
`;
export const GET_JOB_LINES = gql`
query GET_JOB_LINES($id: uuid!) {
jobs_by_pk(id: $id) {
id
joblines(where: { removed: { _eq: false } }, order_by: { line_no: asc }) {
id
unq_seq
line_ind
tax_part
line_desc
prt_dsmk_p
prt_dsmk_m
part_type
oem_partno
db_price
act_price
part_qty
mod_lbr_ty
db_hrs
mod_lb_hrs
lbr_op
lbr_amt
op_code_desc
}
}
}
`;
export const GET_JOB_NOTES = gql`
query GET_JOB_NOTES($id: uuid!) {
jobs_by_pk(id: $id) {
id
notes(order_by: { created_at: desc }) {
id
text
critical
private
pinned
type
created_at
updated_at
created_by
}
}
}
`;
export const GET_JOB_MEDIA = gql`
query GET_JOB_MEDIA($id: uuid!) {
jobs_by_pk(id: $id) {
id
documents(order_by: { takenat: desc }) {
id
name
key
created_at
type
extension
}
}
}
`;