Further development of admin dashboard BOD-194
This commit is contained in:
@@ -21,7 +21,7 @@
|
||||
"react-scripts": "3.4.1"
|
||||
},
|
||||
"scripts": {
|
||||
"start": "set PORT=3001 react-scripts start",
|
||||
"start": "set PORT=3001 && react-scripts start",
|
||||
"build": "react-scripts build",
|
||||
"test": "react-scripts test",
|
||||
"eject": "react-scripts eject"
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
work correctly both with client-side routing and a non-root public URL.
|
||||
Learn how to configure a non-root public URL by running `npm run build`.
|
||||
-->
|
||||
<title>React App</title>
|
||||
<title>ImEX Online - ADMIN</title>
|
||||
</head>
|
||||
<body>
|
||||
<noscript>You need to enable JavaScript to run this app.</noscript>
|
||||
|
||||
@@ -1,15 +1,27 @@
|
||||
import React, { Component } from "react";
|
||||
import buildHasuraProvider from "ra-data-hasura-graphql";
|
||||
import { Admin, Resource, ListGuesser, Authenticated } from "react-admin";
|
||||
import { ApolloClient, InMemoryCache } from "@apollo/client";
|
||||
import authProvider from "../auth-provider/auth-provider";
|
||||
import { setContext } from "apollo-link-context";
|
||||
import apolloLogger from "apollo-link-logger";
|
||||
import { ApolloClient, InMemoryCache, ApolloProvider } from "@apollo/client";
|
||||
import { ApolloLink } from "apollo-boost";
|
||||
import { setContext } from "apollo-link-context";
|
||||
import { HttpLink } from "apollo-link-http";
|
||||
import apolloLogger from "apollo-link-logger";
|
||||
import buildHasuraProvider from "ra-data-hasura-graphql";
|
||||
import React, { Component } from "react";
|
||||
import {
|
||||
Admin,
|
||||
EditGuesser,
|
||||
ListGuesser,
|
||||
Resource,
|
||||
ShowGuesser,
|
||||
} from "react-admin";
|
||||
import { auth } from "../../firebase/admin-firebase-utils";
|
||||
import JobsList from "../jobs/jobs.list";
|
||||
import authProvider from "../auth-provider/auth-provider";
|
||||
import JoblinesCreate from "../joblines/joblines.create";
|
||||
import JoblinesEdit from "../joblines/joblines.edit";
|
||||
import JoblinesList from "../joblines/joblines.list";
|
||||
import JoblinesShow from "../joblines/joblines.show";
|
||||
import JobsCreate from "../jobs/jobs.create";
|
||||
import JobsEdit from "../jobs/jobs.edit";
|
||||
import JobsList from "../jobs/jobs.list";
|
||||
import JobsShow from "../jobs/jobs.show";
|
||||
|
||||
const httpLink = new HttpLink({
|
||||
uri: process.env.REACT_APP_GRAPHQL_ENDPOINT,
|
||||
@@ -76,10 +88,186 @@ class AdminRoot extends Component {
|
||||
}
|
||||
|
||||
return (
|
||||
<Admin dataProvider={dataProvider} authProvider={authProvider}>
|
||||
<Resource name="jobs" list={JobsList} edit={JobsEdit} />
|
||||
<Resource name="bodyshops" />
|
||||
</Admin>
|
||||
<ApolloProvider client={client}>
|
||||
<Admin dataProvider={dataProvider} authProvider={authProvider}>
|
||||
<Resource
|
||||
name="jobs"
|
||||
list={JobsList}
|
||||
edit={JobsEdit}
|
||||
create={JobsCreate}
|
||||
show={JobsShow}
|
||||
/>
|
||||
<Resource
|
||||
name="joblines"
|
||||
list={JoblinesList}
|
||||
edit={JoblinesEdit}
|
||||
create={JoblinesCreate}
|
||||
show={JoblinesShow}
|
||||
/>
|
||||
<Resource
|
||||
name="bodyshops"
|
||||
list={ListGuesser}
|
||||
edit={EditGuesser}
|
||||
show={ShowGuesser}
|
||||
/>
|
||||
<Resource
|
||||
name="owners"
|
||||
list={ListGuesser}
|
||||
edit={EditGuesser}
|
||||
show={ShowGuesser}
|
||||
/>
|
||||
<Resource
|
||||
name="vehicles"
|
||||
list={ListGuesser}
|
||||
edit={EditGuesser}
|
||||
show={ShowGuesser}
|
||||
/>
|
||||
<Resource
|
||||
name="appointments"
|
||||
list={ListGuesser}
|
||||
edit={EditGuesser}
|
||||
show={ShowGuesser}
|
||||
/>
|
||||
<Resource
|
||||
name="available_jobs"
|
||||
list={ListGuesser}
|
||||
edit={EditGuesser}
|
||||
show={ShowGuesser}
|
||||
/>
|
||||
<Resource
|
||||
name="cccontracts"
|
||||
list={ListGuesser}
|
||||
edit={EditGuesser}
|
||||
show={ShowGuesser}
|
||||
/>
|
||||
<Resource
|
||||
name="conversations"
|
||||
list={ListGuesser}
|
||||
edit={EditGuesser}
|
||||
show={ShowGuesser}
|
||||
/>
|
||||
<Resource
|
||||
name="counters"
|
||||
list={ListGuesser}
|
||||
edit={EditGuesser}
|
||||
show={ShowGuesser}
|
||||
/>
|
||||
<Resource
|
||||
name="courtesycars"
|
||||
list={ListGuesser}
|
||||
edit={EditGuesser}
|
||||
show={ShowGuesser}
|
||||
/>
|
||||
<Resource
|
||||
name="csi"
|
||||
list={ListGuesser}
|
||||
edit={EditGuesser}
|
||||
show={ShowGuesser}
|
||||
/>
|
||||
<Resource
|
||||
name="csiquestions"
|
||||
list={ListGuesser}
|
||||
edit={EditGuesser}
|
||||
show={ShowGuesser}
|
||||
/>
|
||||
<Resource
|
||||
name="documents"
|
||||
list={ListGuesser}
|
||||
edit={EditGuesser}
|
||||
show={ShowGuesser}
|
||||
/>
|
||||
<Resource
|
||||
name="employees"
|
||||
list={ListGuesser}
|
||||
edit={EditGuesser}
|
||||
show={ShowGuesser}
|
||||
/>
|
||||
<Resource
|
||||
name="invoicelines"
|
||||
list={ListGuesser}
|
||||
edit={EditGuesser}
|
||||
show={ShowGuesser}
|
||||
/>
|
||||
<Resource
|
||||
name="invoices"
|
||||
list={ListGuesser}
|
||||
edit={EditGuesser}
|
||||
show={ShowGuesser}
|
||||
/>
|
||||
<Resource
|
||||
name="job_conversations"
|
||||
list={ListGuesser}
|
||||
edit={EditGuesser}
|
||||
show={ShowGuesser}
|
||||
/>
|
||||
<Resource
|
||||
name="masterdata"
|
||||
list={ListGuesser}
|
||||
edit={EditGuesser}
|
||||
show={ShowGuesser}
|
||||
/>
|
||||
<Resource
|
||||
name="messages"
|
||||
list={ListGuesser}
|
||||
edit={EditGuesser}
|
||||
show={ShowGuesser}
|
||||
/>
|
||||
<Resource
|
||||
name="notes"
|
||||
list={ListGuesser}
|
||||
edit={EditGuesser}
|
||||
show={ShowGuesser}
|
||||
/>
|
||||
<Resource
|
||||
name="parts_order_lines"
|
||||
list={ListGuesser}
|
||||
edit={EditGuesser}
|
||||
show={ShowGuesser}
|
||||
/>
|
||||
<Resource
|
||||
name="parts_orders"
|
||||
list={ListGuesser}
|
||||
edit={EditGuesser}
|
||||
show={ShowGuesser}
|
||||
/>
|
||||
<Resource
|
||||
name="payments"
|
||||
list={ListGuesser}
|
||||
edit={EditGuesser}
|
||||
show={ShowGuesser}
|
||||
/>
|
||||
<Resource
|
||||
name="scoreboard"
|
||||
list={ListGuesser}
|
||||
edit={EditGuesser}
|
||||
show={ShowGuesser}
|
||||
/>
|
||||
<Resource
|
||||
name="templates"
|
||||
list={ListGuesser}
|
||||
edit={EditGuesser}
|
||||
show={ShowGuesser}
|
||||
/>
|
||||
<Resource
|
||||
name="timetickets"
|
||||
list={ListGuesser}
|
||||
edit={EditGuesser}
|
||||
show={ShowGuesser}
|
||||
/>
|
||||
<Resource
|
||||
name="users"
|
||||
list={ListGuesser}
|
||||
edit={EditGuesser}
|
||||
show={ShowGuesser}
|
||||
/>
|
||||
<Resource
|
||||
name="vendors"
|
||||
list={ListGuesser}
|
||||
edit={EditGuesser}
|
||||
show={ShowGuesser}
|
||||
/>
|
||||
</Admin>
|
||||
</ApolloProvider>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
26
admin/src/components/joblines/joblines.create.jsx
Normal file
26
admin/src/components/joblines/joblines.create.jsx
Normal file
@@ -0,0 +1,26 @@
|
||||
import React from "react";
|
||||
import {
|
||||
Create,
|
||||
|
||||
|
||||
|
||||
NumberInput, SimpleForm,
|
||||
TextInput
|
||||
} from "react-admin";
|
||||
|
||||
const JoblinesCreate = (props) => (
|
||||
<Create {...props}>
|
||||
<SimpleForm>
|
||||
<TextInput source="line_ref" />
|
||||
<TextInput source="line_ind" />
|
||||
<NumberInput source="db_price" />
|
||||
<NumberInput source="act_price" />
|
||||
<NumberInput source="part_qty" />
|
||||
<NumberInput source="mod_lb_hrs" />
|
||||
<TextInput source="mod_lbr_type" />
|
||||
<TextInput source="lbr_op" />
|
||||
</SimpleForm>
|
||||
</Create>
|
||||
);
|
||||
|
||||
export default JoblinesCreate;
|
||||
73
admin/src/components/joblines/joblines.edit.jsx
Normal file
73
admin/src/components/joblines/joblines.edit.jsx
Normal file
@@ -0,0 +1,73 @@
|
||||
import React from "react";
|
||||
import {
|
||||
Edit,
|
||||
EmailField,
|
||||
DateTimeInput,
|
||||
DateField,
|
||||
NumberInput,
|
||||
BooleanInput,
|
||||
SimpleForm,
|
||||
TextInput,
|
||||
} from "react-admin";
|
||||
import { number } from "prop-types";
|
||||
|
||||
const JoblinesEdit = (props) => (
|
||||
<Edit {...props}>
|
||||
<SimpleForm>
|
||||
<TextInput source="id" />
|
||||
<DateField showTime source="created_at" />
|
||||
<DateField showTime source="updated_at" />
|
||||
<TextInput source="jobid" />
|
||||
<NumberInput source="unq_seq" />
|
||||
<NumberInput source="line_ind" />
|
||||
<TextInput source="line_desc" />
|
||||
<TextInput source="part_type" />
|
||||
<TextInput source="oem_partno" />
|
||||
<TextInput source="est_seq" />
|
||||
<TextInput source="db_ref" />
|
||||
<TextInput source="line_ref" />
|
||||
<BooleanInput source="tax_part" />
|
||||
<NumberInput source="db_price" />
|
||||
<NumberInput source="act_price" />
|
||||
<NumberInput source="part_qty" />
|
||||
<TextInput source="alt_partno" />
|
||||
<TextInput source="mod_lbr_ty" />
|
||||
<NumberInput source="db_hrs" />
|
||||
<NumberInput source="mod_lb_hrs" />
|
||||
<TextInput source="lbr_op" />
|
||||
<NumberInput source="lbr_amt" />
|
||||
<BooleanInput source="glass_flag" />
|
||||
<TextInput source="price_inc" />
|
||||
<TextInput source="alt_part_i" />
|
||||
<TextInput source="price_j" />
|
||||
<TextInput source="cert_part" />
|
||||
<TextInput source="alt_co_id" />
|
||||
<TextInput source="alt_overrd" />
|
||||
<TextInput source="alt_partm" />
|
||||
<TextInput source="prt_dsmk_p" />
|
||||
<TextInput source="prt_dsmk_m" />
|
||||
<TextInput source="lbr_inc" />
|
||||
<TextInput source="lbr_hrs_j" />
|
||||
<TextInput source="lbr_typ_j" />
|
||||
<TextInput source="lbr_op_j" />
|
||||
<TextInput source="paint_stg" />
|
||||
<TextInput source="paint_tone" />
|
||||
<TextInput source="lbr_tax" />
|
||||
<NumberInput source="misc_amt" />
|
||||
<TextInput source="misc_sublt" />
|
||||
<TextInput source="misc_tax" />
|
||||
<TextInput source="bett_type" />
|
||||
<NumberInput source="bett_pctg" />
|
||||
<NumberInput source="bett_amt" />
|
||||
<TextInput source="bett_tax" />
|
||||
<TextInput source="op_code_desc" />
|
||||
<TextInput source="status" />
|
||||
<TextInput source="removed" />
|
||||
<NumberInput source="line_no" />
|
||||
<TextInput source="notes" />
|
||||
<TextInput source='"location"' />
|
||||
</SimpleForm>
|
||||
</Edit>
|
||||
);
|
||||
|
||||
export default JoblinesEdit;
|
||||
29
admin/src/components/joblines/joblines.list.jsx
Normal file
29
admin/src/components/joblines/joblines.list.jsx
Normal file
@@ -0,0 +1,29 @@
|
||||
import React from "react";
|
||||
import {
|
||||
Datagrid, List,
|
||||
|
||||
|
||||
NumberField,
|
||||
|
||||
ReferenceField, TextField
|
||||
} from "react-admin";
|
||||
|
||||
const JoblinesList = (props) => (
|
||||
<List {...props}>
|
||||
<Datagrid rowClick="edit">
|
||||
<ReferenceField source="jobid" reference="jobs">
|
||||
<TextField source="ro_number" />
|
||||
</ReferenceField>
|
||||
<TextField source="line_ref" />
|
||||
<TextField source="line_ind" />
|
||||
<NumberField source="db_price" />
|
||||
<NumberField source="act_price" />
|
||||
<NumberField source="part_qty" />
|
||||
<NumberField source="mod_lb_hrs" />
|
||||
<TextField source="mod_lbr_type" />
|
||||
<TextField source="lbr_op" />
|
||||
</Datagrid>
|
||||
</List>
|
||||
);
|
||||
|
||||
export default JoblinesList;
|
||||
24
admin/src/components/joblines/joblines.show.jsx
Normal file
24
admin/src/components/joblines/joblines.show.jsx
Normal file
@@ -0,0 +1,24 @@
|
||||
import React from "react";
|
||||
import {
|
||||
NumberInput, Show,
|
||||
|
||||
SimpleShowLayout,
|
||||
TextInput
|
||||
} from "react-admin";
|
||||
|
||||
const JoblinesShow = (props) => (
|
||||
<Show {...props}>
|
||||
<SimpleShowLayout>
|
||||
<TextInput source="line_ref" />
|
||||
<TextInput source="line_ind" />
|
||||
<NumberInput source="db_price" />
|
||||
<NumberInput source="act_price" />
|
||||
<NumberInput source="part_qty" />
|
||||
<NumberInput source="mod_lb_hrs" />
|
||||
<TextInput source="mod_lbr_type" />
|
||||
<TextInput source="lbr_op" />
|
||||
</SimpleShowLayout>
|
||||
</Show>
|
||||
);
|
||||
|
||||
export default JoblinesShow;
|
||||
17
admin/src/components/jobs/jobs.create.jsx
Normal file
17
admin/src/components/jobs/jobs.create.jsx
Normal file
@@ -0,0 +1,17 @@
|
||||
import React from "react";
|
||||
import { Create, EmailField, SimpleForm, TextInput } from "react-admin";
|
||||
|
||||
const JobsCreate = (props) => (
|
||||
<Create {...props}>
|
||||
<SimpleForm>
|
||||
<TextInput source="ro_number" />
|
||||
<TextInput source="est_number" />
|
||||
<TextInput source="ownr_fn" />
|
||||
<TextInput source="ownr_ln" />
|
||||
<TextInput source="converted" />
|
||||
<EmailField source="ownr_ea" />
|
||||
</SimpleForm>
|
||||
</Create>
|
||||
);
|
||||
|
||||
export default JobsCreate;
|
||||
@@ -1,22 +1,253 @@
|
||||
import React from "react";
|
||||
import {
|
||||
Edit,
|
||||
|
||||
|
||||
EmailField,
|
||||
SimpleForm,
|
||||
TextInput
|
||||
} from "react-admin";
|
||||
import { Edit, SimpleForm, TextInput } from "react-admin";
|
||||
|
||||
const JobsEdit = (props) => (
|
||||
<Edit {...props}>
|
||||
<SimpleForm>
|
||||
<TextInput source="ro_number" />
|
||||
<TextInput source="est_number" />
|
||||
<TextInput source="ownr_fn" />
|
||||
<TextInput source="ownr_ln" />
|
||||
<TextInput source="converted" />
|
||||
<EmailField source="ownr_ea" />
|
||||
<SimpleForm margin="normal" variant="standard">
|
||||
<div
|
||||
style={{
|
||||
columns: "3 auto",
|
||||
// display: "flex",
|
||||
width: "100%",
|
||||
// justifyContent: "space-around",
|
||||
}}
|
||||
>
|
||||
<TextInput fullWidth source="id" />
|
||||
<TextInput fullWidth source="created_at" />
|
||||
<TextInput fullWidth source="updated_at" />
|
||||
|
||||
<TextInput fullWidth source="shopid" disabled />
|
||||
<TextInput fullWidth source="ro_number" />
|
||||
<TextInput fullWidth source="ownerid" />
|
||||
<TextInput fullWidth source="vehicleid" />
|
||||
<TextInput fullWidth source="labor_rate_id" />
|
||||
<TextInput fullWidth source="labor_rate_desc" />
|
||||
<TextInput fullWidth source="rate_lab" />
|
||||
<TextInput fullWidth source="rate_lad" />
|
||||
<TextInput fullWidth source="rate_lae" />
|
||||
<TextInput fullWidth source="rate_lar" />
|
||||
<TextInput fullWidth source="rate_las" />
|
||||
<TextInput fullWidth source="rate_laf" />
|
||||
<TextInput fullWidth source="rate_lam" />
|
||||
<TextInput fullWidth source="rate_lag" />
|
||||
<TextInput fullWidth source="rate_atp" />
|
||||
<TextInput fullWidth source="rate_lau" />
|
||||
<TextInput fullWidth source="rate_la1" />
|
||||
<TextInput fullWidth source="rate_la2" />
|
||||
<TextInput fullWidth source="rate_la3" />
|
||||
<TextInput fullWidth source="rate_la4" />
|
||||
<TextInput fullWidth source="rate_mapa" />
|
||||
<TextInput fullWidth source="rate_mash" />
|
||||
<TextInput fullWidth source="rate_mahw" />
|
||||
<TextInput fullWidth source="rate_ma2s" />
|
||||
<TextInput fullWidth source="rate_ma3s" />
|
||||
<TextInput fullWidth source="rate_ma2t" />
|
||||
<TextInput fullWidth source="rate_mabl" />
|
||||
<TextInput fullWidth source="rate_macs" />
|
||||
<TextInput fullWidth source="rate_matd" />
|
||||
<TextInput fullWidth source="federal_tax_rate" />
|
||||
<TextInput fullWidth source="state_tax_rate" />
|
||||
<TextInput fullWidth source="local_tax_rate" />
|
||||
<TextInput fullWidth source="est_co_nm" />
|
||||
<TextInput fullWidth source="est_addr1" />
|
||||
<TextInput fullWidth source="est_addr2" />
|
||||
<TextInput fullWidth source="est_city" />
|
||||
<TextInput fullWidth source="est_st" />
|
||||
<TextInput fullWidth source="est_zip" />
|
||||
<TextInput fullWidth source="est_ctry" />
|
||||
<TextInput fullWidth source="est_ph1" />
|
||||
<TextInput fullWidth source="est_ea" />
|
||||
<TextInput fullWidth source="est_ct_ln" />
|
||||
<TextInput fullWidth source="est_ct_fn" />
|
||||
<TextInput fullWidth source="scheduled_in" />
|
||||
<TextInput fullWidth source="actual_in" />
|
||||
<TextInput fullWidth source="scheduled_completion" />
|
||||
<TextInput fullWidth source="actual_completion" />
|
||||
<TextInput fullWidth source="scheduled_delivery" />
|
||||
<TextInput fullWidth source="actual_delivery" />
|
||||
<TextInput fullWidth source="regie_number" />
|
||||
<TextInput fullWidth source="invoice_date" />
|
||||
<TextInput fullWidth source="inproduction" />
|
||||
<TextInput fullWidth source="statusid" />
|
||||
<TextInput fullWidth source="ins_co_id" />
|
||||
<TextInput fullWidth source="ins_co_nm" />
|
||||
<TextInput fullWidth source="ins_addr1" />
|
||||
<TextInput fullWidth source="ins_addr2" />
|
||||
<TextInput fullWidth source="ins_city" />
|
||||
<TextInput fullWidth source="ins_st" />
|
||||
<TextInput fullWidth source="ins_zip" />
|
||||
<TextInput fullWidth source="ins_ctry" />
|
||||
<TextInput fullWidth source="ins_ph1" />
|
||||
<TextInput fullWidth source="ins_ph1x" />
|
||||
<TextInput fullWidth source="ins_ph2" />
|
||||
<TextInput fullWidth source="ins_ph2x" />
|
||||
<TextInput fullWidth source="ins_fax" />
|
||||
<TextInput fullWidth source="ins_faxx" />
|
||||
<TextInput fullWidth source="ins_ct_ln" />
|
||||
<TextInput fullWidth source="ins_ct_fn" />
|
||||
<TextInput fullWidth source="ins_title" />
|
||||
<TextInput fullWidth source="ins_ct_ph" />
|
||||
<TextInput fullWidth source="ins_ct_phx" />
|
||||
<TextInput fullWidth source="ins_ea" />
|
||||
<TextInput fullWidth source="ins_memo" />
|
||||
<TextInput fullWidth source="policy_no" />
|
||||
<TextInput fullWidth source="ded_amt" />
|
||||
<TextInput fullWidth source="ded_status" />
|
||||
<TextInput fullWidth source="asgn_no" />
|
||||
<TextInput fullWidth source="asgn_date" />
|
||||
<TextInput fullWidth source="asgn_type" />
|
||||
<TextInput fullWidth source="clm_no" />
|
||||
<TextInput fullWidth source="clm_ofc_id" />
|
||||
<TextInput fullWidth source="date_estimated" />
|
||||
<TextInput fullWidth source="date_open" />
|
||||
<TextInput fullWidth source="date_scheduled" />
|
||||
<TextInput fullWidth source="date_invoiced" />
|
||||
<TextInput fullWidth source="date_closed" />
|
||||
<TextInput fullWidth source="date_exported" />
|
||||
<TextInput fullWidth source="clm_total" />
|
||||
<TextInput fullWidth source="owner_owing" />
|
||||
<TextInput fullWidth source="converted" />
|
||||
<TextInput fullWidth source="ciecaid" />
|
||||
<TextInput fullWidth source="loss_date" />
|
||||
<TextInput fullWidth source="clm_ofc_nm" />
|
||||
<TextInput fullWidth source="clm_addr1" />
|
||||
<TextInput fullWidth source="clm_addr2" />
|
||||
<TextInput fullWidth source="clm_city" />
|
||||
<TextInput fullWidth source="clm_st" />
|
||||
<TextInput fullWidth source="clm_zip" />
|
||||
<TextInput fullWidth source="clm_ctry" />
|
||||
<TextInput fullWidth source="clm_ph1" />
|
||||
<TextInput fullWidth source="clm_ph1x" />
|
||||
<TextInput fullWidth source="clm_ph2" />
|
||||
<TextInput fullWidth source="clm_ph2x" />
|
||||
<TextInput fullWidth source="clm_fax" />
|
||||
<TextInput fullWidth source="clm_faxx" />
|
||||
<TextInput fullWidth source="clm_ct_ln" />
|
||||
<TextInput fullWidth source="clm_ct_fn" />
|
||||
<TextInput fullWidth source="clm_title" />
|
||||
<TextInput fullWidth source="clm_ct_ph" />
|
||||
<TextInput fullWidth source="clm_ct_phx" />
|
||||
<TextInput fullWidth source="clm_ea" />
|
||||
<TextInput fullWidth source="payee_nms" />
|
||||
<TextInput fullWidth source="pay_type" />
|
||||
<TextInput fullWidth source="pay_date" />
|
||||
<TextInput fullWidth source="pay_chknm" />
|
||||
<TextInput fullWidth source="pay_amt" />
|
||||
<TextInput fullWidth source="agt_co_id" />
|
||||
<TextInput fullWidth source="agt_co_nm" />
|
||||
<TextInput fullWidth source="agt_addr1" />
|
||||
<TextInput fullWidth source="agt_addr2" />
|
||||
<TextInput fullWidth source="agt_city" />
|
||||
<TextInput fullWidth source="agt_st" />
|
||||
<TextInput fullWidth source="agt_zip" />
|
||||
<TextInput fullWidth source="agt_ctry" />
|
||||
<TextInput fullWidth source="agt_ph1" />
|
||||
<TextInput fullWidth source="agt_ph1x" />
|
||||
<TextInput fullWidth source="agt_ph2" />
|
||||
<TextInput fullWidth source="agt_ph2x" />
|
||||
<TextInput fullWidth source="agt_fax" />
|
||||
<TextInput fullWidth source="agt_faxx" />
|
||||
<TextInput fullWidth source="agt_ct_ln" />
|
||||
<TextInput fullWidth source="agt_ct_fn" />
|
||||
<TextInput fullWidth source="agt_ct_ph" />
|
||||
<TextInput fullWidth source="agt_ct_phx" />
|
||||
<TextInput fullWidth source="agt_ea" />
|
||||
<TextInput fullWidth source="agt_lic_no" />
|
||||
<TextInput fullWidth source="loss_type" />
|
||||
<TextInput fullWidth source="loss_desc" />
|
||||
<TextInput fullWidth source="theft_ind" />
|
||||
<TextInput fullWidth source="cat_no" />
|
||||
<TextInput fullWidth source="tlos_ind" />
|
||||
<TextInput fullWidth source="cust_pr" />
|
||||
<TextInput fullWidth source="insd_ln" />
|
||||
<TextInput fullWidth source="insd_fn" />
|
||||
<TextInput fullWidth source="insd_title" />
|
||||
<TextInput fullWidth source="insd_co_nm" />
|
||||
<TextInput fullWidth source="insd_addr1" />
|
||||
<TextInput fullWidth source="insd_addr2" />
|
||||
<TextInput fullWidth source="insd_city" />
|
||||
<TextInput fullWidth source="insd_st" />
|
||||
<TextInput fullWidth source="insd_zip" />
|
||||
<TextInput fullWidth source="insd_ctry" />
|
||||
<TextInput fullWidth source="insd_ph1" />
|
||||
<TextInput fullWidth source="insd_ph1x" />
|
||||
<TextInput fullWidth source="insd_ph2" />
|
||||
<TextInput fullWidth source="insd_ph2x" />
|
||||
<TextInput fullWidth source="insd_fax" />
|
||||
<TextInput fullWidth source="insd_faxx" />
|
||||
<TextInput fullWidth source="insd_ea" />
|
||||
<TextInput fullWidth source="ownr_ln" />
|
||||
<TextInput fullWidth source="ownr_fn" />
|
||||
<TextInput fullWidth source="ownr_title" />
|
||||
<TextInput fullWidth source="ownr_co_nm" />
|
||||
<TextInput fullWidth source="ownr_addr1" />
|
||||
<TextInput fullWidth source="ownr_addr2" />
|
||||
<TextInput fullWidth source="ownr_city" />
|
||||
<TextInput fullWidth source="ownr_st" />
|
||||
<TextInput fullWidth source="ownr_zip" />
|
||||
<TextInput fullWidth source="ownr_ctry" />
|
||||
<TextInput fullWidth source="ownr_ph1" />
|
||||
<TextInput fullWidth source="ownr_ph1x" />
|
||||
<TextInput fullWidth source="ownr_ph2" />
|
||||
<TextInput fullWidth source="ownr_ph2x" />
|
||||
<TextInput fullWidth source="ownr_fax" />
|
||||
<TextInput fullWidth source="ownr_faxx" />
|
||||
<TextInput fullWidth source="ownr_ea" />
|
||||
<TextInput fullWidth source="area_of_damage" />
|
||||
<TextInput fullWidth source="loss_cat" />
|
||||
<TextInput fullWidth source="est_number" />
|
||||
<TextInput fullWidth source="special_coverage_policy" />
|
||||
<TextInput fullWidth source="csr" />
|
||||
<TextInput fullWidth source="po_number" />
|
||||
<TextInput fullWidth source="unit_number" />
|
||||
<TextInput fullWidth source="kmin" />
|
||||
<TextInput fullWidth source="kmout" />
|
||||
<TextInput fullWidth source="referral_source" />
|
||||
<TextInput fullWidth source="selling_dealer" />
|
||||
<TextInput fullWidth source="servicing_dealer" />
|
||||
<TextInput fullWidth source="servicing_dealer_contact" />
|
||||
<TextInput fullWidth source="selling_dealer_contact" />
|
||||
<TextInput fullWidth source="depreciation_taxes" />
|
||||
<TextInput fullWidth source="federal_tax_payable" />
|
||||
<TextInput fullWidth source="other_amount_payable" />
|
||||
<TextInput fullWidth source="towing_payable" />
|
||||
<TextInput fullWidth source="storage_payable" />
|
||||
<TextInput fullWidth source="adjustment_bottom_line" />
|
||||
<TextInput fullWidth source="tax_pstthr" />
|
||||
<TextInput fullWidth source="tax_tow_rt" />
|
||||
<TextInput fullWidth source="tax_sub_rt" />
|
||||
<TextInput fullWidth source="tax_paint_mat_rt" />
|
||||
<TextInput fullWidth source="tax_levies_rt" />
|
||||
<TextInput fullWidth source="tax_prethr" />
|
||||
<TextInput fullWidth source="tax_thramt" />
|
||||
<TextInput fullWidth source="tax_str_rt" />
|
||||
<TextInput fullWidth source="tax_lbr_rt" />
|
||||
<TextInput fullWidth source="adj_g_disc" />
|
||||
<TextInput fullWidth source="adj_towdis" />
|
||||
<TextInput fullWidth source="adj_strdis" />
|
||||
<TextInput fullWidth source="tax_predis" />
|
||||
<TextInput fullWidth source="rate_laa" />
|
||||
<TextInput fullWidth source="status" />
|
||||
<TextInput fullWidth source="cieca_stl" />
|
||||
<TextInput fullWidth source="g_bett_amt" />
|
||||
<TextInput fullWidth source="cieca_ttl" />
|
||||
<TextInput fullWidth source="plate_no" />
|
||||
<TextInput fullWidth source="plate_st" />
|
||||
<TextInput fullWidth source="v_vin" />
|
||||
<TextInput fullWidth source="v_model_yr" />
|
||||
<TextInput fullWidth source="v_model_desc" />
|
||||
<TextInput fullWidth source="v_make_desc" />
|
||||
<TextInput fullWidth source="v_color" />
|
||||
<TextInput fullWidth source="parts_tax_rates" />
|
||||
<TextInput fullWidth source="job_totals" />
|
||||
<TextInput fullWidth source="production_vars" />
|
||||
<TextInput fullWidth source="intakechecklist" />
|
||||
<TextInput fullWidth source="invoice_allocation" />
|
||||
<TextInput fullWidth source="kanbanparent" />
|
||||
<TextInput fullWidth source="employee_body" />
|
||||
<TextInput fullWidth source="employee_refinish" />
|
||||
<TextInput fullWidth source="employee_prep" />
|
||||
</div>
|
||||
</SimpleForm>
|
||||
</Edit>
|
||||
);
|
||||
|
||||
@@ -1,8 +1,19 @@
|
||||
import React from "react";
|
||||
import { List, Datagrid, TextField, EmailField, ReferenceField } from "react-admin";
|
||||
import {
|
||||
Datagrid,
|
||||
Filter,
|
||||
List,
|
||||
ReferenceField,
|
||||
TextField,
|
||||
SelectInput,
|
||||
TextInput,
|
||||
} from "react-admin";
|
||||
import { useQuery } from "@apollo/client";
|
||||
import { QUERY_ALL_SHOPS } from "../../graphql/admin.shop.queries";
|
||||
import CircularProgress from "@material-ui/core/CircularProgress";
|
||||
|
||||
const JobsList = (props) => (
|
||||
<List {...props}>
|
||||
<List filters={<JobsFilter />} {...props}>
|
||||
<Datagrid rowClick="edit">
|
||||
<TextField source="id" />
|
||||
<ReferenceField source="shopid" reference="bodyshops">
|
||||
@@ -12,10 +23,40 @@ const JobsList = (props) => (
|
||||
<TextField source="est_number" />
|
||||
<TextField source="ownr_fn" />
|
||||
<TextField source="ownr_ln" />
|
||||
<TextField source="converted" />
|
||||
<EmailField source="ownr_ea" />
|
||||
<TextField source="ownr_co_nm" />
|
||||
|
||||
<ReferenceField source="ownerid" reference="owners">
|
||||
<TextField source="id" />
|
||||
</ReferenceField>
|
||||
<TextField source="v_model_yr" />
|
||||
<TextField source="v_make_desc" />
|
||||
<TextField source="v_model_desc" />
|
||||
|
||||
<ReferenceField source="vehicleid" reference="vehicles">
|
||||
<TextField source="id" />
|
||||
</ReferenceField>
|
||||
</Datagrid>
|
||||
</List>
|
||||
);
|
||||
|
||||
const JobsFilter = (props) => {
|
||||
const { loading, error, data } = useQuery(QUERY_ALL_SHOPS);
|
||||
if (loading) return <CircularProgress />;
|
||||
if (error) return JSON.stringify(error);
|
||||
|
||||
return (
|
||||
<Filter {...props}>
|
||||
<TextInput label="RO Number" source="ro_number" />
|
||||
<SelectInput
|
||||
source="shopid"
|
||||
choices={data.bodyshops.map((b) => {
|
||||
return { id: b.id, name: b.shopname };
|
||||
})}
|
||||
alwaysOn
|
||||
allowEmpty={false}
|
||||
/>
|
||||
</Filter>
|
||||
);
|
||||
};
|
||||
|
||||
export default JobsList;
|
||||
|
||||
283
admin/src/components/jobs/jobs.show.jsx
Normal file
283
admin/src/components/jobs/jobs.show.jsx
Normal file
@@ -0,0 +1,283 @@
|
||||
import React from "react";
|
||||
import {
|
||||
Datagrid,
|
||||
EditButton,
|
||||
|
||||
NumberField,
|
||||
ReferenceManyField,
|
||||
Show,
|
||||
|
||||
|
||||
Tab, TabbedShowLayout,
|
||||
TextField
|
||||
} from "react-admin";
|
||||
|
||||
const JobsShow = (props) => (
|
||||
<Show {...props}>
|
||||
<TabbedShowLayout>
|
||||
<Tab label="summary">
|
||||
<TextField source="id" />
|
||||
<TextField source="created_at" />
|
||||
<TextField source="updated_at" />
|
||||
<TextField source="shopid" />
|
||||
<TextField source="ro_number" />
|
||||
<TextField source="ownerid" />
|
||||
<TextField source="vehicleid" />
|
||||
</Tab>
|
||||
<Tab label="Job Lines">
|
||||
<ReferenceManyField
|
||||
reference="joblines"
|
||||
target="jobid"
|
||||
label="Job Lines"
|
||||
>
|
||||
<Datagrid>
|
||||
<TextField source="id" />
|
||||
|
||||
<TextField source="line_ref" />
|
||||
<TextField source="line_desc" />
|
||||
<TextField source="line_ind" />
|
||||
<NumberField source="db_price" />
|
||||
<NumberField source="act_price" />
|
||||
<NumberField source="part_qty" />
|
||||
<NumberField source="mod_lb_hrs" />
|
||||
<TextField source="mod_lbr_type" />
|
||||
<TextField source="lbr_op" />
|
||||
|
||||
<EditButton />
|
||||
</Datagrid>
|
||||
</ReferenceManyField>
|
||||
</Tab>
|
||||
<Tab label="other">
|
||||
<TextField source="labor_rate_id" />
|
||||
<TextField source="labor_rate_desc" />
|
||||
<TextField source="rate_lab" />
|
||||
<TextField source="rate_lad" />
|
||||
<TextField source="rate_lae" />
|
||||
<TextField source="rate_lar" />
|
||||
<TextField source="rate_las" />
|
||||
<TextField source="rate_laf" />
|
||||
<TextField source="rate_lam" />
|
||||
<TextField source="rate_lag" />
|
||||
<TextField source="rate_atp" />
|
||||
<TextField source="rate_lau" />
|
||||
<TextField source="rate_la1" />
|
||||
<TextField source="rate_la2" />
|
||||
<TextField source="rate_la3" />
|
||||
<TextField source="rate_la4" />
|
||||
<TextField source="rate_mapa" />
|
||||
<TextField source="rate_mash" />
|
||||
<TextField source="rate_mahw" />
|
||||
<TextField source="rate_ma2s" />
|
||||
<TextField source="rate_ma3s" />
|
||||
<TextField source="rate_ma2t" />
|
||||
<TextField source="rate_mabl" />
|
||||
<TextField source="rate_macs" />
|
||||
<TextField source="rate_matd" />
|
||||
<TextField source="federal_tax_rate" />
|
||||
<TextField source="state_tax_rate" />
|
||||
<TextField source="local_tax_rate" />
|
||||
<TextField source="est_co_nm" />
|
||||
<TextField source="est_addr1" />
|
||||
<TextField source="est_addr2" />
|
||||
<TextField source="est_city" />
|
||||
<TextField source="est_st" />
|
||||
<TextField source="est_zip" />
|
||||
<TextField source="est_ctry" />
|
||||
<TextField source="est_ph1" />
|
||||
<TextField source="est_ea" />
|
||||
<TextField source="est_ct_ln" />
|
||||
<TextField source="est_ct_fn" />
|
||||
<TextField source="scheduled_in" />
|
||||
<TextField source="actual_in" />
|
||||
<TextField source="scheduled_completion" />
|
||||
<TextField source="actual_completion" />
|
||||
<TextField source="scheduled_delivery" />
|
||||
<TextField source="actual_delivery" />
|
||||
<TextField source="regie_number" />
|
||||
<TextField source="invoice_date" />
|
||||
<TextField source="inproduction" />
|
||||
<TextField source="statusid" />
|
||||
<TextField source="ins_co_id" />
|
||||
<TextField source="ins_co_nm" />
|
||||
<TextField source="ins_addr1" />
|
||||
<TextField source="ins_addr2" />
|
||||
<TextField source="ins_city" />
|
||||
<TextField source="ins_st" />
|
||||
<TextField source="ins_zip" />
|
||||
<TextField source="ins_ctry" />
|
||||
<TextField source="ins_ph1" />
|
||||
<TextField source="ins_ph1x" />
|
||||
<TextField source="ins_ph2" />
|
||||
<TextField source="ins_ph2x" />
|
||||
<TextField source="ins_fax" />
|
||||
<TextField source="ins_faxx" />
|
||||
<TextField source="ins_ct_ln" />
|
||||
<TextField source="ins_ct_fn" />
|
||||
<TextField source="ins_title" />
|
||||
<TextField source="ins_ct_ph" />
|
||||
<TextField source="ins_ct_phx" />
|
||||
<TextField source="ins_ea" />
|
||||
<TextField source="ins_memo" />
|
||||
<TextField source="policy_no" />
|
||||
<TextField source="ded_amt" />
|
||||
<TextField source="ded_status" />
|
||||
<TextField source="asgn_no" />
|
||||
<TextField source="asgn_date" />
|
||||
<TextField source="asgn_type" />
|
||||
<TextField source="clm_no" />
|
||||
<TextField source="clm_ofc_id" />
|
||||
<TextField source="date_estimated" />
|
||||
<TextField source="date_open" />
|
||||
<TextField source="date_scheduled" />
|
||||
<TextField source="date_invoiced" />
|
||||
<TextField source="date_closed" />
|
||||
<TextField source="date_exported" />
|
||||
<TextField source="clm_total" />
|
||||
<TextField source="owner_owing" />
|
||||
<TextField source="converted" />
|
||||
<TextField source="ciecaid" />
|
||||
<TextField source="loss_date" />
|
||||
<TextField source="clm_ofc_nm" />
|
||||
<TextField source="clm_addr1" />
|
||||
<TextField source="clm_addr2" />
|
||||
<TextField source="clm_city" />
|
||||
<TextField source="clm_st" />
|
||||
<TextField source="clm_zip" />
|
||||
<TextField source="clm_ctry" />
|
||||
<TextField source="clm_ph1" />
|
||||
<TextField source="clm_ph1x" />
|
||||
<TextField source="clm_ph2" />
|
||||
<TextField source="clm_ph2x" />
|
||||
<TextField source="clm_fax" />
|
||||
<TextField source="clm_faxx" />
|
||||
<TextField source="clm_ct_ln" />
|
||||
<TextField source="clm_ct_fn" />
|
||||
<TextField source="clm_title" />
|
||||
<TextField source="clm_ct_ph" />
|
||||
<TextField source="clm_ct_phx" />
|
||||
<TextField source="clm_ea" />
|
||||
<TextField source="payee_nms" />
|
||||
<TextField source="pay_type" />
|
||||
<TextField source="pay_date" />
|
||||
<TextField source="pay_chknm" />
|
||||
<TextField source="pay_amt" />
|
||||
<TextField source="agt_co_id" />
|
||||
<TextField source="agt_co_nm" />
|
||||
<TextField source="agt_addr1" />
|
||||
<TextField source="agt_addr2" />
|
||||
<TextField source="agt_city" />
|
||||
<TextField source="agt_st" />
|
||||
<TextField source="agt_zip" />
|
||||
<TextField source="agt_ctry" />
|
||||
<TextField source="agt_ph1" />
|
||||
<TextField source="agt_ph1x" />
|
||||
<TextField source="agt_ph2" />
|
||||
<TextField source="agt_ph2x" />
|
||||
<TextField source="agt_fax" />
|
||||
<TextField source="agt_faxx" />
|
||||
<TextField source="agt_ct_ln" />
|
||||
<TextField source="agt_ct_fn" />
|
||||
<TextField source="agt_ct_ph" />
|
||||
<TextField source="agt_ct_phx" />
|
||||
<TextField source="agt_ea" />
|
||||
<TextField source="agt_lic_no" />
|
||||
<TextField source="loss_type" />
|
||||
<TextField source="loss_desc" />
|
||||
<TextField source="theft_ind" />
|
||||
<TextField source="cat_no" />
|
||||
<TextField source="tlos_ind" />
|
||||
<TextField source="cust_pr" />
|
||||
<TextField source="insd_ln" />
|
||||
<TextField source="insd_fn" />
|
||||
<TextField source="insd_title" />
|
||||
<TextField source="insd_co_nm" />
|
||||
<TextField source="insd_addr1" />
|
||||
<TextField source="insd_addr2" />
|
||||
<TextField source="insd_city" />
|
||||
<TextField source="insd_st" />
|
||||
<TextField source="insd_zip" />
|
||||
<TextField source="insd_ctry" />
|
||||
<TextField source="insd_ph1" />
|
||||
<TextField source="insd_ph1x" />
|
||||
<TextField source="insd_ph2" />
|
||||
<TextField source="insd_ph2x" />
|
||||
<TextField source="insd_fax" />
|
||||
<TextField source="insd_faxx" />
|
||||
<TextField source="insd_ea" />
|
||||
<TextField source="ownr_ln" />
|
||||
<TextField source="ownr_fn" />
|
||||
<TextField source="ownr_title" />
|
||||
<TextField source="ownr_co_nm" />
|
||||
<TextField source="ownr_addr1" />
|
||||
<TextField source="ownr_addr2" />
|
||||
<TextField source="ownr_city" />
|
||||
<TextField source="ownr_st" />
|
||||
<TextField source="ownr_zip" />
|
||||
<TextField source="ownr_ctry" />
|
||||
<TextField source="ownr_ph1" />
|
||||
<TextField source="ownr_ph1x" />
|
||||
<TextField source="ownr_ph2" />
|
||||
<TextField source="ownr_ph2x" />
|
||||
<TextField source="ownr_fax" />
|
||||
<TextField source="ownr_faxx" />
|
||||
<TextField source="ownr_ea" />
|
||||
<TextField source="area_of_damage" />
|
||||
<TextField source="loss_cat" />
|
||||
<TextField source="est_number" />
|
||||
<TextField source="special_coverage_policy" />
|
||||
<TextField source="csr" />
|
||||
<TextField source="po_number" />
|
||||
<TextField source="unit_number" />
|
||||
<TextField source="kmin" />
|
||||
<TextField source="kmout" />
|
||||
<TextField source="referral_source" />
|
||||
<TextField source="selling_dealer" />
|
||||
<TextField source="servicing_dealer" />
|
||||
<TextField source="servicing_dealer_contact" />
|
||||
<TextField source="selling_dealer_contact" />
|
||||
<TextField source="depreciation_taxes" />
|
||||
<TextField source="federal_tax_payable" />
|
||||
<TextField source="other_amount_payable" />
|
||||
<TextField source="towing_payable" />
|
||||
<TextField source="storage_payable" />
|
||||
<TextField source="adjustment_bottom_line" />
|
||||
<TextField source="tax_pstthr" />
|
||||
<TextField source="tax_tow_rt" />
|
||||
<TextField source="tax_sub_rt" />
|
||||
<TextField source="tax_paint_mat_rt" />
|
||||
<TextField source="tax_levies_rt" />
|
||||
<TextField source="tax_prethr" />
|
||||
<TextField source="tax_thramt" />
|
||||
<TextField source="tax_str_rt" />
|
||||
<TextField source="tax_lbr_rt" />
|
||||
<TextField source="adj_g_disc" />
|
||||
<TextField source="adj_towdis" />
|
||||
<TextField source="adj_strdis" />
|
||||
<TextField source="tax_predis" />
|
||||
<TextField source="rate_laa" />
|
||||
<TextField source="status" />
|
||||
<TextField source="cieca_stl" />
|
||||
<TextField source="g_bett_amt" />
|
||||
<TextField source="cieca_ttl" />
|
||||
<TextField source="plate_no" />
|
||||
<TextField source="plate_st" />
|
||||
<TextField source="v_vin" />
|
||||
<TextField source="v_model_yr" />
|
||||
<TextField source="v_model_desc" />
|
||||
<TextField source="v_make_desc" />
|
||||
<TextField source="v_color" />
|
||||
<TextField source="parts_tax_rates" />
|
||||
<TextField source="job_totals" />
|
||||
<TextField source="production_vars" />
|
||||
<TextField source="intakechecklist" />
|
||||
<TextField source="invoice_allocation" />
|
||||
<TextField source="kanbanparent" />
|
||||
<TextField source="employee_body" />
|
||||
<TextField source="employee_refinish" />
|
||||
<TextField source="employee_prep" />
|
||||
</Tab>
|
||||
</TabbedShowLayout>
|
||||
</Show>
|
||||
);
|
||||
|
||||
export default JobsShow;
|
||||
10
admin/src/graphql/admin.shop.queries.js
Normal file
10
admin/src/graphql/admin.shop.queries.js
Normal file
@@ -0,0 +1,10 @@
|
||||
import gql from "graphql-tag";
|
||||
|
||||
export const QUERY_ALL_SHOPS = gql`
|
||||
query QUERY_ALL_SHOPS {
|
||||
bodyshops {
|
||||
id
|
||||
shopname
|
||||
}
|
||||
}
|
||||
`;
|
||||
Reference in New Issue
Block a user