diff --git a/client/src/components/job-detail-cards/job-detail-cards.component.jsx b/client/src/components/job-detail-cards/job-detail-cards.component.jsx
index 6a8cd0fb1..d7442d2dd 100644
--- a/client/src/components/job-detail-cards/job-detail-cards.component.jsx
+++ b/client/src/components/job-detail-cards/job-detail-cards.component.jsx
@@ -145,7 +145,7 @@ export function JobDetailCards({ setPrintCenterContext }) {
data={data ? data.jobs_by_pk : null}
/>
-
+
joblines_stats",
+ // joblines_status
+ // );
+
+ const memoizedData = useMemo(() => Calculatedata(joblines_status), [
+ joblines_status,
+ ]);
+
+ console.log("memoizedData :>> ", memoizedData);
+ const [state, setState] = useState({ activeIndex: 0 });
+
+ const onPieEnter = (data, index) => {
+ setState({
+ activeIndex: index,
+ });
+ };
return (
- Placeholder piechart.
+
+
+
);
}
+
+const Calculatedata = (data) => {
+ console.log("calculating data", data);
+
+ if (data.length > 0) {
+ const statusMapping = {};
+ data.map((i) => {
+ if (!statusMapping[i.status])
+ statusMapping[i.status] = { name: i.status || "No Status*", value: 0 };
+ statusMapping[i.status].value = statusMapping[i.status].value + i.count;
+ return null;
+ });
+ return Object.keys(statusMapping).map((key) => {
+ return statusMapping[key];
+ });
+ } else {
+ return [
+ { name: "Group A", value: 400 },
+ { name: "Group B", value: 300 },
+ { name: "Group C", value: 300 },
+ { name: "Group D", value: 200 },
+ ];
+ }
+};
+
+const renderActiveShape = (props) => {
+ const RADIAN = Math.PI / 180;
+ const {
+ cx,
+ cy,
+ midAngle,
+ innerRadius,
+ outerRadius,
+ startAngle,
+ endAngle,
+ fill,
+ payload,
+ percent,
+ value,
+ } = props;
+ const sin = Math.sin(-RADIAN * midAngle);
+ const cos = Math.cos(-RADIAN * midAngle);
+ const sx = cx + (outerRadius + 10) * cos;
+ const sy = cy + (outerRadius + 10) * sin;
+ const mx = cx + (outerRadius + 30) * cos;
+ const my = cy + (outerRadius + 30) * sin;
+ const ex = mx + (cos >= 0 ? 1 : -1) * 22;
+ const ey = my;
+ const textAnchor = cos >= 0 ? "start" : "end";
+
+ return (
+
+
+ {payload.name}
+
+
+
+
+
+ = 0 ? 1 : -1) * 12}
+ y={ey}
+ textAnchor={textAnchor}
+ fill="#333"
+ >{`Count: ${value}`}
+ = 0 ? 1 : -1) * 12}
+ y={ey}
+ dy={18}
+ textAnchor={textAnchor}
+ fill="#999"
+ >
+ {`(${(percent * 100).toFixed(2)}%)`}
+
+
+ );
+};
diff --git a/client/src/components/scoreboard-chart/scoreboard-chart.component.jsx b/client/src/components/scoreboard-chart/scoreboard-chart.component.jsx
index 7a2c32e0e..a5360b19f 100644
--- a/client/src/components/scoreboard-chart/scoreboard-chart.component.jsx
+++ b/client/src/components/scoreboard-chart/scoreboard-chart.component.jsx
@@ -4,26 +4,14 @@ import { connect } from "react-redux";
import {
Area,
Bar,
-
-
- CartesianGrid, ComposedChart,
-
-
-
-
-
-
-
- Legend, Line,
-
-
-
-
-
-
-
- ResponsiveContainer, Tooltip, XAxis,
- YAxis
+ CartesianGrid,
+ ComposedChart,
+ Legend,
+ Line,
+ ResponsiveContainer,
+ Tooltip,
+ XAxis,
+ YAxis,
} from "recharts";
import { createStructuredSelector } from "reselect";
import { selectBodyshop } from "../../redux/user/user.selectors";
diff --git a/client/src/graphql/jobs.queries.js b/client/src/graphql/jobs.queries.js
index 39e33ef1b..4c2cb5add 100644
--- a/client/src/graphql/jobs.queries.js
+++ b/client/src/graphql/jobs.queries.js
@@ -415,6 +415,11 @@ export const QUERY_JOB_CARD_DETAILS = gql`
ownr_ln
ownr_ph1
ownr_ea
+ joblines_status {
+ part_type
+ count
+ status
+ }
owner {
id
allow_text_message
@@ -463,6 +468,7 @@ export const QUERY_JOB_CARD_DETAILS = gql`
date_closed
date_scheduled
date_estimated
+
notes {
id
text
diff --git a/hasura/migrations/1596730747611_run_sql_migration/down.yaml b/hasura/migrations/1596730747611_run_sql_migration/down.yaml
new file mode 100644
index 000000000..fe51488c7
--- /dev/null
+++ b/hasura/migrations/1596730747611_run_sql_migration/down.yaml
@@ -0,0 +1 @@
+[]
diff --git a/hasura/migrations/1596730747611_run_sql_migration/up.yaml b/hasura/migrations/1596730747611_run_sql_migration/up.yaml
new file mode 100644
index 000000000..53a7fdfa3
--- /dev/null
+++ b/hasura/migrations/1596730747611_run_sql_migration/up.yaml
@@ -0,0 +1,14 @@
+- args:
+ cascade: true
+ read_only: false
+ sql: "CREATE OR REPLACE FUNCTION public.parts_status_by_job_id(jobid uuid)\n RETURNS
+ SETOF joblines\n LANGUAGE plpgsql\n STABLE\nAS $function$\n\nBEGIN\n if jobid
+ = '' then\n return query select status ,count(1), part_type from joblines
+ j group by status, part_type ;\n else \n return query select status ,count(1),
+ part_type from joblines j where j.jobid =jobid group by status, part_type;\n
+ \ end if;\n\n\tEND\n$function$;"
+ type: run_sql
+- args:
+ name: parts_status_by_job_id
+ schema: public
+ type: track_function
diff --git a/hasura/migrations/1596731037543_drop_function_public_parts_status_by_job_id/down.yaml b/hasura/migrations/1596731037543_drop_function_public_parts_status_by_job_id/down.yaml
new file mode 100644
index 000000000..51ec77c06
--- /dev/null
+++ b/hasura/migrations/1596731037543_drop_function_public_parts_status_by_job_id/down.yaml
@@ -0,0 +1,10 @@
+- args:
+ cascade: false
+ read_only: false
+ sql: "CREATE OR REPLACE FUNCTION public.parts_status_by_job_id(jobid uuid)\n RETURNS
+ SETOF joblines\n LANGUAGE plpgsql\n STABLE\nAS $function$\n\nBEGIN\n if jobid
+ = '' then\n return query select status ,count(1), part_type from joblines
+ j group by status, part_type ;\n else \n return query select status ,count(1),
+ part_type from joblines j where j.jobid =jobid group by status, part_type;\n
+ \ end if;\n\n\tEND\n$function$;"
+ type: run_sql
diff --git a/hasura/migrations/1596731037543_drop_function_public_parts_status_by_job_id/up.yaml b/hasura/migrations/1596731037543_drop_function_public_parts_status_by_job_id/up.yaml
new file mode 100644
index 000000000..cbae152a7
--- /dev/null
+++ b/hasura/migrations/1596731037543_drop_function_public_parts_status_by_job_id/up.yaml
@@ -0,0 +1,5 @@
+- args:
+ cascade: false
+ read_only: false
+ sql: DROP FUNCTION "public"."parts_status_by_job_id"("pg_catalog"."uuid");
+ type: run_sql
diff --git a/hasura/migrations/1596731045755_run_sql_migration/down.yaml b/hasura/migrations/1596731045755_run_sql_migration/down.yaml
new file mode 100644
index 000000000..fe51488c7
--- /dev/null
+++ b/hasura/migrations/1596731045755_run_sql_migration/down.yaml
@@ -0,0 +1 @@
+[]
diff --git a/hasura/migrations/1596731045755_run_sql_migration/up.yaml b/hasura/migrations/1596731045755_run_sql_migration/up.yaml
new file mode 100644
index 000000000..a586e30dd
--- /dev/null
+++ b/hasura/migrations/1596731045755_run_sql_migration/up.yaml
@@ -0,0 +1,14 @@
+- args:
+ cascade: true
+ read_only: false
+ sql: "CREATE OR REPLACE FUNCTION public.parts_status_by_job_id(jobid text)\n RETURNS
+ SETOF joblines\n LANGUAGE plpgsql\n STABLE\nAS $function$\n\nBEGIN\n if jobid
+ = '' then\n return query select status ,count(1), part_type from joblines
+ j group by status, part_type ;\n else \n return query select status ,count(1),
+ part_type from joblines j where j.jobid =jobid group by status, part_type;\n
+ \ end if;\n\n\tEND\n$function$;"
+ type: run_sql
+- args:
+ name: parts_status_by_job_id
+ schema: public
+ type: track_function
diff --git a/hasura/migrations/1596731075703_drop_function_public_parts_status_by_job_id/down.yaml b/hasura/migrations/1596731075703_drop_function_public_parts_status_by_job_id/down.yaml
new file mode 100644
index 000000000..6f0c45314
--- /dev/null
+++ b/hasura/migrations/1596731075703_drop_function_public_parts_status_by_job_id/down.yaml
@@ -0,0 +1,10 @@
+- args:
+ cascade: false
+ read_only: false
+ sql: "CREATE OR REPLACE FUNCTION public.parts_status_by_job_id(jobid text)\n RETURNS
+ SETOF joblines\n LANGUAGE plpgsql\n STABLE\nAS $function$\n\nBEGIN\n if jobid
+ = '' then\n return query select status ,count(1), part_type from joblines
+ j group by status, part_type ;\n else \n return query select status ,count(1),
+ part_type from joblines j where j.jobid =jobid group by status, part_type;\n
+ \ end if;\n\n\tEND\n$function$;"
+ type: run_sql
diff --git a/hasura/migrations/1596731075703_drop_function_public_parts_status_by_job_id/up.yaml b/hasura/migrations/1596731075703_drop_function_public_parts_status_by_job_id/up.yaml
new file mode 100644
index 000000000..98fff7d24
--- /dev/null
+++ b/hasura/migrations/1596731075703_drop_function_public_parts_status_by_job_id/up.yaml
@@ -0,0 +1,5 @@
+- args:
+ cascade: false
+ read_only: false
+ sql: DROP FUNCTION "public"."parts_status_by_job_id"("pg_catalog"."text");
+ type: run_sql
diff --git a/hasura/migrations/1596731097672_run_sql_migration/down.yaml b/hasura/migrations/1596731097672_run_sql_migration/down.yaml
new file mode 100644
index 000000000..fe51488c7
--- /dev/null
+++ b/hasura/migrations/1596731097672_run_sql_migration/down.yaml
@@ -0,0 +1 @@
+[]
diff --git a/hasura/migrations/1596731097672_run_sql_migration/up.yaml b/hasura/migrations/1596731097672_run_sql_migration/up.yaml
new file mode 100644
index 000000000..0a659dbd5
--- /dev/null
+++ b/hasura/migrations/1596731097672_run_sql_migration/up.yaml
@@ -0,0 +1,14 @@
+- args:
+ cascade: true
+ read_only: false
+ sql: "CREATE OR REPLACE FUNCTION public.parts_status_by_job_id(jobIdVar text)\n
+ RETURNS SETOF joblines\n LANGUAGE plpgsql\n STABLE\nAS $function$\n\nBEGIN\n
+ \ if jobIdVar = '' then\n return query select status ,count(1), part_type
+ from joblines j group by status, part_type ;\n else \n return query select
+ status ,count(1), part_type from joblines j where j.jobid =jobIdVar group by
+ status, part_type;\n end if;\n\n\tEND\n$function$;"
+ type: run_sql
+- args:
+ name: parts_status_by_job_id
+ schema: public
+ type: track_function
diff --git a/hasura/migrations/1596731183831_drop_function_public_parts_status_by_job_id/down.yaml b/hasura/migrations/1596731183831_drop_function_public_parts_status_by_job_id/down.yaml
new file mode 100644
index 000000000..64b09ac53
--- /dev/null
+++ b/hasura/migrations/1596731183831_drop_function_public_parts_status_by_job_id/down.yaml
@@ -0,0 +1,10 @@
+- args:
+ cascade: false
+ read_only: false
+ sql: "CREATE OR REPLACE FUNCTION public.parts_status_by_job_id(jobidvar text)\n
+ RETURNS SETOF joblines\n LANGUAGE plpgsql\n STABLE\nAS $function$\n\nBEGIN\n
+ \ if jobIdVar = '' then\n return query select status ,count(1), part_type
+ from joblines j group by status, part_type ;\n else \n return query select
+ status ,count(1), part_type from joblines j where j.jobid =jobIdVar group by
+ status, part_type;\n end if;\n\n\tEND\n$function$;"
+ type: run_sql
diff --git a/hasura/migrations/1596731183831_drop_function_public_parts_status_by_job_id/up.yaml b/hasura/migrations/1596731183831_drop_function_public_parts_status_by_job_id/up.yaml
new file mode 100644
index 000000000..98fff7d24
--- /dev/null
+++ b/hasura/migrations/1596731183831_drop_function_public_parts_status_by_job_id/up.yaml
@@ -0,0 +1,5 @@
+- args:
+ cascade: false
+ read_only: false
+ sql: DROP FUNCTION "public"."parts_status_by_job_id"("pg_catalog"."text");
+ type: run_sql
diff --git a/hasura/migrations/1596731190786_run_sql_migration/down.yaml b/hasura/migrations/1596731190786_run_sql_migration/down.yaml
new file mode 100644
index 000000000..fe51488c7
--- /dev/null
+++ b/hasura/migrations/1596731190786_run_sql_migration/down.yaml
@@ -0,0 +1 @@
+[]
diff --git a/hasura/migrations/1596731190786_run_sql_migration/up.yaml b/hasura/migrations/1596731190786_run_sql_migration/up.yaml
new file mode 100644
index 000000000..5a4f1b9e4
--- /dev/null
+++ b/hasura/migrations/1596731190786_run_sql_migration/up.yaml
@@ -0,0 +1,14 @@
+- args:
+ cascade: true
+ read_only: false
+ sql: "CREATE OR REPLACE FUNCTION public.parts_status_by_job_id(jobIdVar uuid)\n
+ RETURNS SETOF joblines\n LANGUAGE plpgsql\n STABLE\nAS $function$\n\nBEGIN\n
+ \ if jobIdVar = '' then\n return query select status ,count(1), part_type
+ from joblines j group by status, part_type ;\n else \n return query select
+ status ,count(1), part_type from joblines j where j.jobid =jobIdVar group by
+ status, part_type;\n end if;\n\n\tEND\n$function$;"
+ type: run_sql
+- args:
+ name: parts_status_by_job_id
+ schema: public
+ type: track_function
diff --git a/hasura/migrations/1596731313289_run_sql_migration/down.yaml b/hasura/migrations/1596731313289_run_sql_migration/down.yaml
new file mode 100644
index 000000000..fe51488c7
--- /dev/null
+++ b/hasura/migrations/1596731313289_run_sql_migration/down.yaml
@@ -0,0 +1 @@
+[]
diff --git a/hasura/migrations/1596731313289_run_sql_migration/up.yaml b/hasura/migrations/1596731313289_run_sql_migration/up.yaml
new file mode 100644
index 000000000..56c08fdc4
--- /dev/null
+++ b/hasura/migrations/1596731313289_run_sql_migration/up.yaml
@@ -0,0 +1,8 @@
+- args:
+ cascade: true
+ read_only: false
+ sql: "CREATE OR REPLACE FUNCTION public.parts_status_by_job_id(jobidvar uuid)\n
+ RETURNS SETOF joblines\n LANGUAGE plpgsql\n STABLE\nAS $function$\n\nBEGIN\n
+ \ \n return query select status ,count(1), part_type from joblines j where
+ j.jobid =jobIdVar group by status, part_type;\n\n\n\tEND\n$function$;"
+ type: run_sql
diff --git a/hasura/migrations/1596731327292_run_sql_migration/down.yaml b/hasura/migrations/1596731327292_run_sql_migration/down.yaml
new file mode 100644
index 000000000..fe51488c7
--- /dev/null
+++ b/hasura/migrations/1596731327292_run_sql_migration/down.yaml
@@ -0,0 +1 @@
+[]
diff --git a/hasura/migrations/1596731327292_run_sql_migration/up.yaml b/hasura/migrations/1596731327292_run_sql_migration/up.yaml
new file mode 100644
index 000000000..fb2831454
--- /dev/null
+++ b/hasura/migrations/1596731327292_run_sql_migration/up.yaml
@@ -0,0 +1,8 @@
+- args:
+ cascade: true
+ read_only: false
+ sql: "CREATE OR REPLACE FUNCTION public.parts_status_by_job_id(jobidvar uuid)\n
+ RETURNS SETOF joblines\n LANGUAGE plpgsql\n STABLE\nAS $function$\n\nBEGIN\n
+ \ \n return query select status ,count(1), part_type from joblines j where
+ j.jobid =jobidvar group by status, part_type;\n\n\n\tEND\n$function$;"
+ type: run_sql
diff --git a/hasura/migrations/1596731474176_drop_function_public_parts_status_by_job_id/down.yaml b/hasura/migrations/1596731474176_drop_function_public_parts_status_by_job_id/down.yaml
new file mode 100644
index 000000000..3676c9dbf
--- /dev/null
+++ b/hasura/migrations/1596731474176_drop_function_public_parts_status_by_job_id/down.yaml
@@ -0,0 +1,8 @@
+- args:
+ cascade: false
+ read_only: false
+ sql: "CREATE OR REPLACE FUNCTION public.parts_status_by_job_id(jobidvar uuid)\n
+ RETURNS SETOF joblines\n LANGUAGE plpgsql\n STABLE\nAS $function$\n\nBEGIN\n
+ \ \n return query select status ,count(1), part_type from joblines j where
+ j.jobid =jobidvar group by status, part_type;\n\n\n\tEND\n$function$;"
+ type: run_sql
diff --git a/hasura/migrations/1596731474176_drop_function_public_parts_status_by_job_id/up.yaml b/hasura/migrations/1596731474176_drop_function_public_parts_status_by_job_id/up.yaml
new file mode 100644
index 000000000..cbae152a7
--- /dev/null
+++ b/hasura/migrations/1596731474176_drop_function_public_parts_status_by_job_id/up.yaml
@@ -0,0 +1,5 @@
+- args:
+ cascade: false
+ read_only: false
+ sql: DROP FUNCTION "public"."parts_status_by_job_id"("pg_catalog"."uuid");
+ type: run_sql
diff --git a/hasura/migrations/1596731602565_run_sql_migration/down.yaml b/hasura/migrations/1596731602565_run_sql_migration/down.yaml
new file mode 100644
index 000000000..fe51488c7
--- /dev/null
+++ b/hasura/migrations/1596731602565_run_sql_migration/down.yaml
@@ -0,0 +1 @@
+[]
diff --git a/hasura/migrations/1596731602565_run_sql_migration/up.yaml b/hasura/migrations/1596731602565_run_sql_migration/up.yaml
new file mode 100644
index 000000000..f2b2470d6
--- /dev/null
+++ b/hasura/migrations/1596731602565_run_sql_migration/up.yaml
@@ -0,0 +1,10 @@
+- args:
+ cascade: true
+ read_only: false
+ sql: create view joblines_stats as select jobid, status ,count(1), part_type
+ from joblines j group by jobid, status, part_type ;
+ type: run_sql
+- args:
+ name: joblines_stats
+ schema: public
+ type: add_existing_table_or_view
diff --git a/hasura/migrations/1596731617912_rename_view_public_joblines_stats/down.yaml b/hasura/migrations/1596731617912_rename_view_public_joblines_stats/down.yaml
new file mode 100644
index 000000000..eb7771d97
--- /dev/null
+++ b/hasura/migrations/1596731617912_rename_view_public_joblines_stats/down.yaml
@@ -0,0 +1,5 @@
+- args:
+ cascade: false
+ read_only: false
+ sql: alter view "public"."joblines_status" rename to "joblines_stats";
+ type: run_sql
diff --git a/hasura/migrations/1596731617912_rename_view_public_joblines_stats/up.yaml b/hasura/migrations/1596731617912_rename_view_public_joblines_stats/up.yaml
new file mode 100644
index 000000000..9afff91c8
--- /dev/null
+++ b/hasura/migrations/1596731617912_rename_view_public_joblines_stats/up.yaml
@@ -0,0 +1,5 @@
+- args:
+ cascade: false
+ read_only: false
+ sql: alter view "public"."joblines_stats" rename to "joblines_status";
+ type: run_sql
diff --git a/hasura/migrations/1596731720387_create_relationship_job_public_table_joblines_status/down.yaml b/hasura/migrations/1596731720387_create_relationship_job_public_table_joblines_status/down.yaml
new file mode 100644
index 000000000..992563b81
--- /dev/null
+++ b/hasura/migrations/1596731720387_create_relationship_job_public_table_joblines_status/down.yaml
@@ -0,0 +1,6 @@
+- args:
+ relationship: job
+ table:
+ name: joblines_status
+ schema: public
+ type: drop_relationship
diff --git a/hasura/migrations/1596731720387_create_relationship_job_public_table_joblines_status/up.yaml b/hasura/migrations/1596731720387_create_relationship_job_public_table_joblines_status/up.yaml
new file mode 100644
index 000000000..800097652
--- /dev/null
+++ b/hasura/migrations/1596731720387_create_relationship_job_public_table_joblines_status/up.yaml
@@ -0,0 +1,13 @@
+- args:
+ name: job
+ table:
+ name: joblines_status
+ schema: public
+ using:
+ manual_configuration:
+ column_mapping:
+ jobid: id
+ remote_table:
+ name: jobs
+ schema: public
+ type: create_object_relationship
diff --git a/hasura/migrations/1596731789600_create_relationship_joblines_status_public_table_jobs/down.yaml b/hasura/migrations/1596731789600_create_relationship_joblines_status_public_table_jobs/down.yaml
new file mode 100644
index 000000000..8a1659e18
--- /dev/null
+++ b/hasura/migrations/1596731789600_create_relationship_joblines_status_public_table_jobs/down.yaml
@@ -0,0 +1,6 @@
+- args:
+ relationship: joblines_status
+ table:
+ name: jobs
+ schema: public
+ type: drop_relationship
diff --git a/hasura/migrations/1596731789600_create_relationship_joblines_status_public_table_jobs/up.yaml b/hasura/migrations/1596731789600_create_relationship_joblines_status_public_table_jobs/up.yaml
new file mode 100644
index 000000000..fa8844fa1
--- /dev/null
+++ b/hasura/migrations/1596731789600_create_relationship_joblines_status_public_table_jobs/up.yaml
@@ -0,0 +1,13 @@
+- args:
+ name: joblines_status
+ table:
+ name: jobs
+ schema: public
+ using:
+ manual_configuration:
+ column_mapping:
+ id: jobid
+ remote_table:
+ name: joblines_status
+ schema: public
+ type: create_array_relationship
diff --git a/hasura/migrations/1596731930213_update_permission_user_public_table_joblines_status/down.yaml b/hasura/migrations/1596731930213_update_permission_user_public_table_joblines_status/down.yaml
new file mode 100644
index 000000000..5e0cc7891
--- /dev/null
+++ b/hasura/migrations/1596731930213_update_permission_user_public_table_joblines_status/down.yaml
@@ -0,0 +1,6 @@
+- args:
+ role: user
+ table:
+ name: joblines_status
+ schema: public
+ type: drop_select_permission
diff --git a/hasura/migrations/1596731930213_update_permission_user_public_table_joblines_status/up.yaml b/hasura/migrations/1596731930213_update_permission_user_public_table_joblines_status/up.yaml
new file mode 100644
index 000000000..a1969f745
--- /dev/null
+++ b/hasura/migrations/1596731930213_update_permission_user_public_table_joblines_status/up.yaml
@@ -0,0 +1,26 @@
+- args:
+ permission:
+ allow_aggregations: false
+ backend_only: false
+ columns:
+ - jobid
+ - status
+ - count
+ - part_type
+ computed_fields: []
+ filter:
+ job:
+ bodyshop:
+ associations:
+ _and:
+ - user:
+ authid:
+ _eq: X-Hasura-User-Id
+ - active:
+ _eq: true
+ limit: null
+ role: user
+ table:
+ name: joblines_status
+ schema: public
+ type: create_select_permission
diff --git a/hasura/migrations/metadata.yaml b/hasura/migrations/metadata.yaml
index 72dcdede0..c1b843ed5 100644
--- a/hasura/migrations/metadata.yaml
+++ b/hasura/migrations/metadata.yaml
@@ -1891,6 +1891,36 @@ tables:
_eq: X-Hasura-User-Id
- active:
_eq: true
+- table:
+ schema: public
+ name: joblines_status
+ object_relationships:
+ - name: job
+ using:
+ manual_configuration:
+ remote_table:
+ schema: public
+ name: jobs
+ column_mapping:
+ jobid: id
+ select_permissions:
+ - role: user
+ permission:
+ columns:
+ - jobid
+ - status
+ - count
+ - part_type
+ filter:
+ job:
+ bodyshop:
+ associations:
+ _and:
+ - user:
+ authid:
+ _eq: X-Hasura-User-Id
+ - active:
+ _eq: true
- table:
schema: public
name: jobs
@@ -1978,6 +2008,14 @@ tables:
table:
schema: public
name: joblines
+ - name: joblines_status
+ using:
+ manual_configuration:
+ remote_table:
+ schema: public
+ name: joblines_status
+ column_mapping:
+ id: jobid
- name: notes
using:
foreign_key_constraint_on: