diff --git a/bodyshop_translations.babel b/bodyshop_translations.babel index d6da40666..c7d58371d 100644 --- a/bodyshop_translations.babel +++ b/bodyshop_translations.babel @@ -21884,6 +21884,27 @@ + + sublets + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + diff --git a/cert.pem b/cert.pem deleted file mode 100644 index fc9c7fd26..000000000 --- a/cert.pem +++ /dev/null @@ -1,35 +0,0 @@ ------BEGIN CERTIFICATE----- -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 ------END CERTIFICATE----- diff --git a/client/package.json b/client/package.json index 49332d52d..8d163c813 100644 --- a/client/package.json +++ b/client/package.json @@ -37,7 +37,6 @@ "query-string": "^6.13.2", "react": "^16.13.1", "react-apollo": "^3.1.5", - "react-barcode": "^1.4.0", "react-big-calendar": "^0.28.0", "react-codemirror2": "^7.2.1", "react-color": "^2.18.1", diff --git a/client/src/components/bills-list-table/bills-list-table.component.jsx b/client/src/components/bills-list-table/bills-list-table.component.jsx index ae1ec7db2..b84a42c6b 100644 --- a/client/src/components/bills-list-table/bills-list-table.component.jsx +++ b/client/src/components/bills-list-table/bills-list-table.component.jsx @@ -6,7 +6,6 @@ import { useTranslation } from "react-i18next"; import { connect } from "react-redux"; import { Link, useLocation } from "react-router-dom"; import { createStructuredSelector } from "reselect"; -import { selectJobReadOnly } from "../../redux/application/application.selectors"; import { setModalContext } from "../../redux/modals/modals.actions"; import CurrencyFormatter from "../../utils/CurrencyFormatter"; import { DateFormatter } from "../../utils/DateFormatter"; diff --git a/client/src/components/production-board-kanban-card/production-board-kanban-card.component.jsx b/client/src/components/production-board-kanban-card/production-board-kanban-card.component.jsx index 245789a50..5fb15a73c 100644 --- a/client/src/components/production-board-kanban-card/production-board-kanban-card.component.jsx +++ b/client/src/components/production-board-kanban-card/production-board-kanban-card.component.jsx @@ -7,6 +7,7 @@ import { Link } from "react-router-dom"; import "./production-board-card.styles.scss"; import ProductionRemoveButton from "../production-remove-button/production-remove-button.component"; import { useTranslation } from "react-i18next"; +import ProductionSubletsManageComponent from "../production-sublets-manage/production-sublets-manage.component"; export default function ProductionBoardCard(card) { const { t } = useTranslation(); @@ -77,8 +78,9 @@ export default function ProductionBoardCard(card) {
+ - +
diff --git a/client/src/components/production-list-columns/production-list-columns.data.js b/client/src/components/production-list-columns/production-list-columns.data.js index 370ca2797..8a6b272bc 100644 --- a/client/src/components/production-list-columns/production-list-columns.data.js +++ b/client/src/components/production-list-columns/production-list-columns.data.js @@ -5,12 +5,13 @@ import CurrencyFormatter from "../../utils/CurrencyFormatter"; import { DateFormatter } from "../../utils/DateFormatter"; import PhoneFormatter from "../../utils/PhoneFormatter"; import { alphaSort } from "../../utils/sorters"; +import ProductionSubletsManageComponent from "../production-sublets-manage/production-sublets-manage.component"; import ProductionListColumnAlert from "./production-list-columns.alert.component"; import ProductionListColumnBodyPriority from "./production-list-columns.bodypriority.component"; import ProductionListColumnPaintPriority from "./production-list-columns.paintpriority.component"; -import ProductionListColumnStatus from "./production-list-columns.status.component"; import ProductionListColumnNote from "./production-list-columns.productionnote.component"; - +import ProductionListColumnStatus from "./production-list-columns.status.component"; +import ProductionlistColumnTouchTime from "./prodution-list-columns.touchtime.component"; export default [ { @@ -19,7 +20,9 @@ export default [ key: "viewdetail", ellipsis: true, render: (text, record) => ( - {i18n.t("general.labels.view")} + + {i18n.t("general.labels.view")} + ), }, { @@ -179,16 +182,8 @@ export default [ title: i18n.t("production.labels.cycletime"), dataIndex: "ct", key: "ct", - render: (text, record) => { - let ct = 0; - if (!!record.actual_in) { - const totalHrs = record.larhrs + record.labhrs; - const Difference_In_Time = new Date() - new Date(record.actual_in); - const Difference_In_Days = Difference_In_Time / (1000 * 3600 * 24); - ct = (totalHrs / Difference_In_Days).toFixed(2); - } - return {ct || 0}; + return ; }, }, { @@ -215,4 +210,12 @@ export default [ ), }, + { + title: i18n.t("production.labels.sublets"), + dataIndex: "sublets", + key: "sublets", + render: (text, record) => ( + + ), + }, ]; diff --git a/client/src/components/production-list-columns/prodution-list-columns.touchtime.component.jsx b/client/src/components/production-list-columns/prodution-list-columns.touchtime.component.jsx new file mode 100644 index 000000000..45927a68e --- /dev/null +++ b/client/src/components/production-list-columns/prodution-list-columns.touchtime.component.jsx @@ -0,0 +1,22 @@ +import moment from "moment"; +import React, { useMemo } from "react"; +export default function ProductionlistColumnTouchTime({ job }) { + let ct = useMemo(() => { + if (!!job.actual_in) { + const totalHrs = + (job.larhrs.aggregate.sum.mod_lb_hrs || 0) + + (job.labhrs.aggregate.sum.mod_lb_hrs || 0); + + const Difference_In_Days = moment().diff( + moment(job.actual_in), + "days", + true + ); + + return (totalHrs / Difference_In_Days).toFixed(2); + } + return 0; + }, [job]); + + return {ct}; +} diff --git a/client/src/components/production-list-detail/production-list-detail.component.jsx b/client/src/components/production-list-detail/production-list-detail.component.jsx index aeafda94a..13268e893 100644 --- a/client/src/components/production-list-detail/production-list-detail.component.jsx +++ b/client/src/components/production-list-detail/production-list-detail.component.jsx @@ -1,13 +1,12 @@ -import React from "react"; import { Descriptions, Drawer } from "antd"; +import queryString from "query-string"; +import React from "react"; import { useTranslation } from "react-i18next"; +import { useHistory, useLocation } from "react-router-dom"; import CurrencyFormatter from "../../utils/CurrencyFormatter"; import { DateFormatter } from "../../utils/DateFormatter"; import PartsStatusPie from "../parts-status-pie/parts-status-pie.component"; -import Barcode from "react-barcode"; import ProductionRemoveButton from "../production-remove-button/production-remove-button.component"; -import queryString from "query-string"; -import { useHistory, useLocation } from "react-router-dom"; export default function ProductionListDetail({ jobs }) { const search = queryString.parse(useLocation().search); @@ -31,13 +30,6 @@ export default function ProductionListDetail({ jobs }) { visible={!!selected} >
- {theJob.ro_number || ""} diff --git a/client/src/components/production-sublets-manage/production-sublets-manage.component.jsx b/client/src/components/production-sublets-manage/production-sublets-manage.component.jsx new file mode 100644 index 000000000..669c92688 --- /dev/null +++ b/client/src/components/production-sublets-manage/production-sublets-manage.component.jsx @@ -0,0 +1,97 @@ +import { CheckCircleFilled, EyeInvisibleFilled } from "@ant-design/icons"; +import { Button, List, notification, Popover } from "antd"; +import React, { useMemo, useState } from "react"; +import { useMutation } from "react-apollo"; +import { useTranslation } from "react-i18next"; +import { UPDATE_JOB_LINE } from "../../graphql/jobs-lines.queries"; +export default function ProductionSubletsManageComponent({ subletJobLines }) { + const { t } = useTranslation(); + const [updateJobLine] = useMutation(UPDATE_JOB_LINE); + const [loading, setLoading] = useState(false); + const subletCount = useMemo(() => { + return { + total: subletJobLines.filter((s) => !s.sublet_ignored).length, + outstanding: subletJobLines.filter( + (s) => !s.sublet_ignored && !s.sublet_completed + ).length, + }; + }, [subletJobLines]); + + const handleSubletMark = async (sublet, action) => { + setLoading(true); + + const result = await updateJobLine({ + variables: { + lineId: sublet.id, + line: { + sublet_completed: + action === "complete" ? !sublet.sublet_completed : false, + sublet_ignored: action === "ignore" ? !sublet.sublet_ignored : false, + }, + }, + }); + + if (!!result.errors) { + notification["error"]({ + message: t("joblines.errors.updating", { + message: JSON.stringify(result.errors), + }), + }); + } else { + notification["success"]({ + message: t("joblines.successes.updated"), + }); + } + setLoading(false); + }; + + const popContent = ( +
+ e.stopPropagation()} + dataSource={subletJobLines} + renderItem={(s) => ( + handleSubletMark(s, "complete")} + type={s.sublet_completed ? "primary" : "ghost"} + > + + , + , + ]} + > + + + )} + /> +
+ ); + + return ( + + {`${subletCount.outstanding} / ${subletCount.total} rem.`} + + ); +} diff --git a/client/src/graphql/jobs.queries.js b/client/src/graphql/jobs.queries.js index 1343fd46a..ba29433f3 100644 --- a/client/src/graphql/jobs.queries.js +++ b/client/src/graphql/jobs.queries.js @@ -173,6 +173,17 @@ export const SUBSCRIPTION_JOBS_IN_PRODUCTION = gql` } } } + subletLines: joblines( + where: { + _and: { part_type: { _in: ["PAS", "PASL"] }, removed: { _eq: false } } + } + order_by: { line_no: asc } + ) { + id + line_desc + sublet_ignored + sublet_completed + } } } `; diff --git a/client/src/translations/en_us/common.json b/client/src/translations/en_us/common.json index 7bd277630..7b347668b 100644 --- a/client/src/translations/en_us/common.json +++ b/client/src/translations/en_us/common.json @@ -1345,7 +1345,8 @@ "jobdetail": "Job Details", "note": "Production Note", "paintpriority": "P/P", - "refinishhours": "R" + "refinishhours": "R", + "sublets": "Sublets" }, "successes": { "removed": "Job removed from production." diff --git a/client/src/translations/es/common.json b/client/src/translations/es/common.json index 8109fdc25..7c066b43e 100644 --- a/client/src/translations/es/common.json +++ b/client/src/translations/es/common.json @@ -1345,7 +1345,8 @@ "jobdetail": "", "note": "", "paintpriority": "", - "refinishhours": "" + "refinishhours": "", + "sublets": "" }, "successes": { "removed": "" diff --git a/client/src/translations/fr/common.json b/client/src/translations/fr/common.json index cf9e8c16f..159e3b327 100644 --- a/client/src/translations/fr/common.json +++ b/client/src/translations/fr/common.json @@ -1345,7 +1345,8 @@ "jobdetail": "", "note": "", "paintpriority": "", - "refinishhours": "" + "refinishhours": "", + "sublets": "" }, "successes": { "removed": "" diff --git a/client/yarn.lock b/client/yarn.lock index 5c04a72ae..5a8486f7a 100644 --- a/client/yarn.lock +++ b/client/yarn.lock @@ -7930,11 +7930,6 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" -jsbarcode@^3.8.0: - version "3.11.0" - resolved "https://registry.yarnpkg.com/jsbarcode/-/jsbarcode-3.11.0.tgz#20623e008b101ef45d0cce9c8022cdf49be28547" - integrity sha512-/ozCd7wsa+VIHo9sUc03HneVEQrH7cVWfJolUT/WOW1m8mJ2e3iYZje6C9X3LFHdczlesqFHRpxLtbVsNtjyow== - jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" @@ -11327,14 +11322,6 @@ react-app-polyfill@^1.0.6: regenerator-runtime "^0.13.3" whatwg-fetch "^3.0.0" -react-barcode@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/react-barcode/-/react-barcode-1.4.0.tgz#ebc85ff1b8b49ac4b947b7f3745d684c6c363902" - integrity sha512-xDxIc9WUTQPMcwc3kbCVsjh03WiPyynms9OSdsNSh2AAgB6XqMiy9hYWkCNHgdNdvurkvKB6hm25AZHXyQfvlQ== - dependencies: - jsbarcode "^3.8.0" - prop-types "^15.6.2" - react-beautiful-dnd@^13.0.0: version "13.0.0" resolved "https://registry.yarnpkg.com/react-beautiful-dnd/-/react-beautiful-dnd-13.0.0.tgz#f70cc8ff82b84bc718f8af157c9f95757a6c3b40" diff --git a/hasura/migrations/1601394864653_alter_table_public_joblines_add_column_sublet_ignored/down.yaml b/hasura/migrations/1601394864653_alter_table_public_joblines_add_column_sublet_ignored/down.yaml new file mode 100644 index 000000000..68309bfe5 --- /dev/null +++ b/hasura/migrations/1601394864653_alter_table_public_joblines_add_column_sublet_ignored/down.yaml @@ -0,0 +1,5 @@ +- args: + cascade: false + read_only: false + sql: ALTER TABLE "public"."joblines" DROP COLUMN "sublet_ignored"; + type: run_sql diff --git a/hasura/migrations/1601394864653_alter_table_public_joblines_add_column_sublet_ignored/up.yaml b/hasura/migrations/1601394864653_alter_table_public_joblines_add_column_sublet_ignored/up.yaml new file mode 100644 index 000000000..e91df7c2e --- /dev/null +++ b/hasura/migrations/1601394864653_alter_table_public_joblines_add_column_sublet_ignored/up.yaml @@ -0,0 +1,6 @@ +- args: + cascade: false + read_only: false + sql: ALTER TABLE "public"."joblines" ADD COLUMN "sublet_ignored" bool NOT NULL + DEFAULT false; + type: run_sql diff --git a/hasura/migrations/1601394877870_alter_table_public_joblines_add_column_sublet_completed/down.yaml b/hasura/migrations/1601394877870_alter_table_public_joblines_add_column_sublet_completed/down.yaml new file mode 100644 index 000000000..facc7bfdb --- /dev/null +++ b/hasura/migrations/1601394877870_alter_table_public_joblines_add_column_sublet_completed/down.yaml @@ -0,0 +1,5 @@ +- args: + cascade: false + read_only: false + sql: ALTER TABLE "public"."joblines" DROP COLUMN "sublet_completed"; + type: run_sql diff --git a/hasura/migrations/1601394877870_alter_table_public_joblines_add_column_sublet_completed/up.yaml b/hasura/migrations/1601394877870_alter_table_public_joblines_add_column_sublet_completed/up.yaml new file mode 100644 index 000000000..fc4fa5250 --- /dev/null +++ b/hasura/migrations/1601394877870_alter_table_public_joblines_add_column_sublet_completed/up.yaml @@ -0,0 +1,6 @@ +- args: + cascade: false + read_only: false + sql: ALTER TABLE "public"."joblines" ADD COLUMN "sublet_completed" bool NOT NULL + DEFAULT false; + type: run_sql diff --git a/hasura/migrations/1601394888768_update_permission_user_public_table_joblines/down.yaml b/hasura/migrations/1601394888768_update_permission_user_public_table_joblines/down.yaml new file mode 100644 index 000000000..7dc50463b --- /dev/null +++ b/hasura/migrations/1601394888768_update_permission_user_public_table_joblines/down.yaml @@ -0,0 +1,79 @@ +- args: + role: user + table: + name: joblines + schema: public + type: drop_insert_permission +- args: + permission: + check: + job: + bodyshop: + associations: + _and: + - user: + authid: + _eq: X-Hasura-User-Id + - active: + _eq: true + columns: + - act_price + - alt_co_id + - alt_overrd + - alt_part_i + - alt_partm + - alt_partno + - bett_amt + - bett_pctg + - bett_tax + - bett_type + - cert_part + - created_at + - db_hrs + - db_price + - db_ref + - est_seq + - glass_flag + - id + - jobid + - lbr_amt + - lbr_hrs_j + - lbr_inc + - lbr_op + - lbr_op_j + - lbr_tax + - lbr_typ_j + - line_desc + - line_ind + - line_no + - line_ref + - location + - misc_amt + - misc_sublt + - misc_tax + - mod_lb_hrs + - mod_lbr_ty + - notes + - oem_partno + - op_code_desc + - paint_stg + - paint_tone + - part_qty + - part_type + - price_inc + - price_j + - profitcenter_labor + - profitcenter_part + - prt_dsmk_m + - prt_dsmk_p + - removed + - status + - tax_part + - unq_seq + - updated_at + set: {} + role: user + table: + name: joblines + schema: public + type: create_insert_permission diff --git a/hasura/migrations/1601394888768_update_permission_user_public_table_joblines/up.yaml b/hasura/migrations/1601394888768_update_permission_user_public_table_joblines/up.yaml new file mode 100644 index 000000000..ff9ac5fde --- /dev/null +++ b/hasura/migrations/1601394888768_update_permission_user_public_table_joblines/up.yaml @@ -0,0 +1,81 @@ +- args: + role: user + table: + name: joblines + schema: public + type: drop_insert_permission +- args: + permission: + check: + job: + bodyshop: + associations: + _and: + - user: + authid: + _eq: X-Hasura-User-Id + - active: + _eq: true + columns: + - act_price + - alt_co_id + - alt_overrd + - alt_part_i + - alt_partm + - alt_partno + - bett_amt + - bett_pctg + - bett_tax + - bett_type + - cert_part + - created_at + - db_hrs + - db_price + - db_ref + - est_seq + - glass_flag + - id + - jobid + - lbr_amt + - lbr_hrs_j + - lbr_inc + - lbr_op + - lbr_op_j + - lbr_tax + - lbr_typ_j + - line_desc + - line_ind + - line_no + - line_ref + - location + - misc_amt + - misc_sublt + - misc_tax + - mod_lb_hrs + - mod_lbr_ty + - notes + - oem_partno + - op_code_desc + - paint_stg + - paint_tone + - part_qty + - part_type + - price_inc + - price_j + - profitcenter_labor + - profitcenter_part + - prt_dsmk_m + - prt_dsmk_p + - removed + - status + - sublet_completed + - sublet_ignored + - tax_part + - unq_seq + - updated_at + set: {} + role: user + table: + name: joblines + schema: public + type: create_insert_permission diff --git a/hasura/migrations/1601394897792_update_permission_user_public_table_joblines/down.yaml b/hasura/migrations/1601394897792_update_permission_user_public_table_joblines/down.yaml new file mode 100644 index 000000000..0a0fcd317 --- /dev/null +++ b/hasura/migrations/1601394897792_update_permission_user_public_table_joblines/down.yaml @@ -0,0 +1,80 @@ +- args: + role: user + table: + name: joblines + schema: public + type: drop_select_permission +- args: + permission: + allow_aggregations: true + columns: + - act_price + - alt_co_id + - alt_overrd + - alt_part_i + - alt_partm + - alt_partno + - bett_amt + - bett_pctg + - bett_tax + - bett_type + - cert_part + - created_at + - db_hrs + - db_price + - db_ref + - est_seq + - glass_flag + - id + - jobid + - lbr_amt + - lbr_hrs_j + - lbr_inc + - lbr_op + - lbr_op_j + - lbr_tax + - lbr_typ_j + - line_desc + - line_ind + - line_no + - line_ref + - location + - misc_amt + - misc_sublt + - misc_tax + - mod_lb_hrs + - mod_lbr_ty + - notes + - oem_partno + - op_code_desc + - paint_stg + - paint_tone + - part_qty + - part_type + - price_inc + - price_j + - profitcenter_labor + - profitcenter_part + - prt_dsmk_m + - prt_dsmk_p + - removed + - status + - tax_part + - unq_seq + - updated_at + computed_fields: [] + filter: + job: + bodyshop: + associations: + _and: + - user: + authid: + _eq: X-Hasura-User-Id + - active: + _eq: true + role: user + table: + name: joblines + schema: public + type: create_select_permission diff --git a/hasura/migrations/1601394897792_update_permission_user_public_table_joblines/up.yaml b/hasura/migrations/1601394897792_update_permission_user_public_table_joblines/up.yaml new file mode 100644 index 000000000..5c724e8f3 --- /dev/null +++ b/hasura/migrations/1601394897792_update_permission_user_public_table_joblines/up.yaml @@ -0,0 +1,82 @@ +- args: + role: user + table: + name: joblines + schema: public + type: drop_select_permission +- args: + permission: + allow_aggregations: true + columns: + - act_price + - alt_co_id + - alt_overrd + - alt_part_i + - alt_partm + - alt_partno + - bett_amt + - bett_pctg + - bett_tax + - bett_type + - cert_part + - created_at + - db_hrs + - db_price + - db_ref + - est_seq + - glass_flag + - id + - jobid + - lbr_amt + - lbr_hrs_j + - lbr_inc + - lbr_op + - lbr_op_j + - lbr_tax + - lbr_typ_j + - line_desc + - line_ind + - line_no + - line_ref + - location + - misc_amt + - misc_sublt + - misc_tax + - mod_lb_hrs + - mod_lbr_ty + - notes + - oem_partno + - op_code_desc + - paint_stg + - paint_tone + - part_qty + - part_type + - price_inc + - price_j + - profitcenter_labor + - profitcenter_part + - prt_dsmk_m + - prt_dsmk_p + - removed + - status + - sublet_completed + - sublet_ignored + - tax_part + - unq_seq + - updated_at + computed_fields: [] + filter: + job: + bodyshop: + associations: + _and: + - user: + authid: + _eq: X-Hasura-User-Id + - active: + _eq: true + role: user + table: + name: joblines + schema: public + type: create_select_permission diff --git a/hasura/migrations/1601394905183_update_permission_user_public_table_joblines/down.yaml b/hasura/migrations/1601394905183_update_permission_user_public_table_joblines/down.yaml new file mode 100644 index 000000000..4e8d4b05b --- /dev/null +++ b/hasura/migrations/1601394905183_update_permission_user_public_table_joblines/down.yaml @@ -0,0 +1,79 @@ +- args: + role: user + table: + name: joblines + schema: public + type: drop_update_permission +- args: + permission: + columns: + - act_price + - alt_co_id + - alt_overrd + - alt_part_i + - alt_partm + - alt_partno + - bett_amt + - bett_pctg + - bett_tax + - bett_type + - cert_part + - created_at + - db_hrs + - db_price + - db_ref + - est_seq + - glass_flag + - id + - jobid + - lbr_amt + - lbr_hrs_j + - lbr_inc + - lbr_op + - lbr_op_j + - lbr_tax + - lbr_typ_j + - line_desc + - line_ind + - line_no + - line_ref + - location + - misc_amt + - misc_sublt + - misc_tax + - mod_lb_hrs + - mod_lbr_ty + - notes + - oem_partno + - op_code_desc + - paint_stg + - paint_tone + - part_qty + - part_type + - price_inc + - price_j + - profitcenter_labor + - profitcenter_part + - prt_dsmk_m + - prt_dsmk_p + - removed + - status + - tax_part + - unq_seq + - updated_at + filter: + job: + bodyshop: + associations: + _and: + - user: + authid: + _eq: X-Hasura-User-Id + - active: + _eq: true + set: {} + role: user + table: + name: joblines + schema: public + type: create_update_permission diff --git a/hasura/migrations/1601394905183_update_permission_user_public_table_joblines/up.yaml b/hasura/migrations/1601394905183_update_permission_user_public_table_joblines/up.yaml new file mode 100644 index 000000000..288f51729 --- /dev/null +++ b/hasura/migrations/1601394905183_update_permission_user_public_table_joblines/up.yaml @@ -0,0 +1,81 @@ +- args: + role: user + table: + name: joblines + schema: public + type: drop_update_permission +- args: + permission: + columns: + - act_price + - alt_co_id + - alt_overrd + - alt_part_i + - alt_partm + - alt_partno + - bett_amt + - bett_pctg + - bett_tax + - bett_type + - cert_part + - created_at + - db_hrs + - db_price + - db_ref + - est_seq + - glass_flag + - id + - jobid + - lbr_amt + - lbr_hrs_j + - lbr_inc + - lbr_op + - lbr_op_j + - lbr_tax + - lbr_typ_j + - line_desc + - line_ind + - line_no + - line_ref + - location + - misc_amt + - misc_sublt + - misc_tax + - mod_lb_hrs + - mod_lbr_ty + - notes + - oem_partno + - op_code_desc + - paint_stg + - paint_tone + - part_qty + - part_type + - price_inc + - price_j + - profitcenter_labor + - profitcenter_part + - prt_dsmk_m + - prt_dsmk_p + - removed + - status + - sublet_completed + - sublet_ignored + - tax_part + - unq_seq + - updated_at + filter: + job: + bodyshop: + associations: + _and: + - user: + authid: + _eq: X-Hasura-User-Id + - active: + _eq: true + set: {} + role: user + table: + name: joblines + schema: public + type: create_update_permission diff --git a/hasura/migrations/metadata.yaml b/hasura/migrations/metadata.yaml index 6a1305260..aa353236f 100644 --- a/hasura/migrations/metadata.yaml +++ b/hasura/migrations/metadata.yaml @@ -1778,6 +1778,8 @@ tables: - prt_dsmk_p - removed - status + - sublet_completed + - sublet_ignored - tax_part - unq_seq - updated_at @@ -1836,6 +1838,8 @@ tables: - prt_dsmk_p - removed - status + - sublet_completed + - sublet_ignored - tax_part - unq_seq - updated_at @@ -1905,6 +1909,8 @@ tables: - prt_dsmk_p - removed - status + - sublet_completed + - sublet_ignored - tax_part - unq_seq - updated_at diff --git a/key.pem b/key.pem deleted file mode 100644 index 46a61f26b..000000000 --- a/key.pem +++ /dev/null @@ -1,54 +0,0 @@ ------BEGIN ENCRYPTED PRIVATE KEY----- -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 -lprkK8/B3YTkfi7ZmfapZA== ------END ENCRYPTED PRIVATE KEY-----