Added job intake process for BOD-114
This commit is contained in:
@@ -4426,6 +4426,27 @@
|
|||||||
</translation>
|
</translation>
|
||||||
</translations>
|
</translations>
|
||||||
</concept_node>
|
</concept_node>
|
||||||
|
<concept_node>
|
||||||
|
<name>submit</name>
|
||||||
|
<definition_loaded>false</definition_loaded>
|
||||||
|
<description></description>
|
||||||
|
<comment></comment>
|
||||||
|
<default_text></default_text>
|
||||||
|
<translations>
|
||||||
|
<translation>
|
||||||
|
<language>en-US</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>es-MX</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>fr-CA</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
</translations>
|
||||||
|
</concept_node>
|
||||||
</children>
|
</children>
|
||||||
</folder_node>
|
</folder_node>
|
||||||
<folder_node>
|
<folder_node>
|
||||||
@@ -4870,6 +4891,178 @@
|
|||||||
</folder_node>
|
</folder_node>
|
||||||
</children>
|
</children>
|
||||||
</folder_node>
|
</folder_node>
|
||||||
|
<folder_node>
|
||||||
|
<name>intake</name>
|
||||||
|
<children>
|
||||||
|
<folder_node>
|
||||||
|
<name>actions</name>
|
||||||
|
<children>
|
||||||
|
<concept_node>
|
||||||
|
<name>printall</name>
|
||||||
|
<definition_loaded>false</definition_loaded>
|
||||||
|
<description></description>
|
||||||
|
<comment></comment>
|
||||||
|
<default_text></default_text>
|
||||||
|
<translations>
|
||||||
|
<translation>
|
||||||
|
<language>en-US</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>es-MX</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>fr-CA</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
</translations>
|
||||||
|
</concept_node>
|
||||||
|
</children>
|
||||||
|
</folder_node>
|
||||||
|
<folder_node>
|
||||||
|
<name>errors</name>
|
||||||
|
<children>
|
||||||
|
<concept_node>
|
||||||
|
<name>intake</name>
|
||||||
|
<definition_loaded>false</definition_loaded>
|
||||||
|
<description></description>
|
||||||
|
<comment></comment>
|
||||||
|
<default_text></default_text>
|
||||||
|
<translations>
|
||||||
|
<translation>
|
||||||
|
<language>en-US</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>es-MX</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>fr-CA</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
</translations>
|
||||||
|
</concept_node>
|
||||||
|
<concept_node>
|
||||||
|
<name>nochecklist</name>
|
||||||
|
<definition_loaded>false</definition_loaded>
|
||||||
|
<description></description>
|
||||||
|
<comment></comment>
|
||||||
|
<default_text></default_text>
|
||||||
|
<translations>
|
||||||
|
<translation>
|
||||||
|
<language>en-US</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>es-MX</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>fr-CA</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
</translations>
|
||||||
|
</concept_node>
|
||||||
|
</children>
|
||||||
|
</folder_node>
|
||||||
|
<folder_node>
|
||||||
|
<name>labels</name>
|
||||||
|
<children>
|
||||||
|
<concept_node>
|
||||||
|
<name>addtoproduction</name>
|
||||||
|
<definition_loaded>false</definition_loaded>
|
||||||
|
<description></description>
|
||||||
|
<comment></comment>
|
||||||
|
<default_text></default_text>
|
||||||
|
<translations>
|
||||||
|
<translation>
|
||||||
|
<language>en-US</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>es-MX</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>fr-CA</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
</translations>
|
||||||
|
</concept_node>
|
||||||
|
<concept_node>
|
||||||
|
<name>checklist</name>
|
||||||
|
<definition_loaded>false</definition_loaded>
|
||||||
|
<description></description>
|
||||||
|
<comment></comment>
|
||||||
|
<default_text></default_text>
|
||||||
|
<translations>
|
||||||
|
<translation>
|
||||||
|
<language>en-US</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>es-MX</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>fr-CA</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
</translations>
|
||||||
|
</concept_node>
|
||||||
|
<concept_node>
|
||||||
|
<name>printpack</name>
|
||||||
|
<definition_loaded>false</definition_loaded>
|
||||||
|
<description></description>
|
||||||
|
<comment></comment>
|
||||||
|
<default_text></default_text>
|
||||||
|
<translations>
|
||||||
|
<translation>
|
||||||
|
<language>en-US</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>es-MX</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>fr-CA</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
</translations>
|
||||||
|
</concept_node>
|
||||||
|
</children>
|
||||||
|
</folder_node>
|
||||||
|
<folder_node>
|
||||||
|
<name>successes</name>
|
||||||
|
<children>
|
||||||
|
<concept_node>
|
||||||
|
<name>intake</name>
|
||||||
|
<definition_loaded>false</definition_loaded>
|
||||||
|
<description></description>
|
||||||
|
<comment></comment>
|
||||||
|
<default_text></default_text>
|
||||||
|
<translations>
|
||||||
|
<translation>
|
||||||
|
<language>en-US</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>es-MX</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>fr-CA</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
</translations>
|
||||||
|
</concept_node>
|
||||||
|
</children>
|
||||||
|
</folder_node>
|
||||||
|
</children>
|
||||||
|
</folder_node>
|
||||||
<folder_node>
|
<folder_node>
|
||||||
<name>invoicelines</name>
|
<name>invoicelines</name>
|
||||||
<children>
|
<children>
|
||||||
@@ -13280,6 +13473,27 @@
|
|||||||
</translation>
|
</translation>
|
||||||
</translations>
|
</translations>
|
||||||
</concept_node>
|
</concept_node>
|
||||||
|
<concept_node>
|
||||||
|
<name>jobs-intake</name>
|
||||||
|
<definition_loaded>false</definition_loaded>
|
||||||
|
<description></description>
|
||||||
|
<comment></comment>
|
||||||
|
<default_text></default_text>
|
||||||
|
<translations>
|
||||||
|
<translation>
|
||||||
|
<language>en-US</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>es-MX</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>fr-CA</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
</translations>
|
||||||
|
</concept_node>
|
||||||
<concept_node>
|
<concept_node>
|
||||||
<name>jobs-new</name>
|
<name>jobs-new</name>
|
||||||
<definition_loaded>false</definition_loaded>
|
<definition_loaded>false</definition_loaded>
|
||||||
@@ -13681,6 +13895,27 @@
|
|||||||
</translation>
|
</translation>
|
||||||
</translations>
|
</translations>
|
||||||
</concept_node>
|
</concept_node>
|
||||||
|
<concept_node>
|
||||||
|
<name>jobs-intake</name>
|
||||||
|
<definition_loaded>false</definition_loaded>
|
||||||
|
<description></description>
|
||||||
|
<comment></comment>
|
||||||
|
<default_text></default_text>
|
||||||
|
<translations>
|
||||||
|
<translation>
|
||||||
|
<language>en-US</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>es-MX</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>fr-CA</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
</translations>
|
||||||
|
</concept_node>
|
||||||
<concept_node>
|
<concept_node>
|
||||||
<name>jobsavailable</name>
|
<name>jobsavailable</name>
|
||||||
<definition_loaded>false</definition_loaded>
|
<definition_loaded>false</definition_loaded>
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
work correctly both with client-side routing and a non-root public URL.
|
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`.
|
Learn how to configure a non-root public URL by running `npm run build`.
|
||||||
-->
|
-->
|
||||||
<title>BodyShop | ImEX Systems Inc.</title>
|
<title>ImEX Online</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<noscript>You need to enable JavaScript to run this app.</noscript>
|
<noscript>You need to enable JavaScript to run this app.</noscript>
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import axios from "axios";
|
|||||||
import React, { useState } from "react";
|
import React, { useState } from "react";
|
||||||
import { connect } from "react-redux";
|
import { connect } from "react-redux";
|
||||||
import { createStructuredSelector } from "reselect";
|
import { createStructuredSelector } from "reselect";
|
||||||
import { EmailSettings } from "../../utils/constants";
|
import { EmailSettings } from "../../utils/TemplateConstants";
|
||||||
import {
|
import {
|
||||||
endLoading,
|
endLoading,
|
||||||
startLoading,
|
startLoading,
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import {
|
|||||||
selectEmailVisible,
|
selectEmailVisible,
|
||||||
} from "../../redux/email/email.selectors.js";
|
} from "../../redux/email/email.selectors.js";
|
||||||
import { selectBodyshop } from "../../redux/user/user.selectors";
|
import { selectBodyshop } from "../../redux/user/user.selectors";
|
||||||
import { EmailSettings } from "../../utils/constants";
|
import { EmailSettings } from "../../utils/TemplateConstants";
|
||||||
import RenderTemplate from "../../utils/RenderTemplate";
|
import RenderTemplate from "../../utils/RenderTemplate";
|
||||||
import LoadingSpinner from "../loading-spinner/loading-spinner.component";
|
import LoadingSpinner from "../loading-spinner/loading-spinner.component";
|
||||||
import EmailOverlayComponent from "./email-overlay.component";
|
import EmailOverlayComponent from "./email-overlay.component";
|
||||||
@@ -20,9 +20,11 @@ const mapStateToProps = createStructuredSelector({
|
|||||||
emailConfig: selectEmailConfig,
|
emailConfig: selectEmailConfig,
|
||||||
bodyshop: selectBodyshop,
|
bodyshop: selectBodyshop,
|
||||||
});
|
});
|
||||||
|
|
||||||
const mapDispatchToProps = (dispatch) => ({
|
const mapDispatchToProps = (dispatch) => ({
|
||||||
toggleEmailOverlayVisible: () => dispatch(toggleEmailOverlayVisible()),
|
toggleEmailOverlayVisible: () => dispatch(toggleEmailOverlayVisible()),
|
||||||
});
|
});
|
||||||
|
|
||||||
export function EmailOverlayContainer({
|
export function EmailOverlayContainer({
|
||||||
emailConfig,
|
emailConfig,
|
||||||
modalVisible,
|
modalVisible,
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
import React from "react";
|
||||||
|
import { Form, Checkbox } from "antd";
|
||||||
|
import { useTranslation } from "react-i18next";
|
||||||
|
|
||||||
|
export default function JobIntakeFormCheckboxComponent({ formItem }) {
|
||||||
|
const { name, label, required } = formItem;
|
||||||
|
const { t } = useTranslation();
|
||||||
|
return (
|
||||||
|
<Form.Item
|
||||||
|
name={name}
|
||||||
|
label={label}
|
||||||
|
valuePropName='checked'
|
||||||
|
rules={[
|
||||||
|
{
|
||||||
|
required: required,
|
||||||
|
message: t("general.validation.required"),
|
||||||
|
},
|
||||||
|
]}>
|
||||||
|
<Checkbox />
|
||||||
|
</Form.Item>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,97 @@
|
|||||||
|
import React from "react";
|
||||||
|
import { Form, Button, Switch, DatePicker, notification } from "antd";
|
||||||
|
import CheckboxFormItem from "../job-intake-form-checkbox/job-itnake-form-checkbox.component";
|
||||||
|
import { useTranslation } from "react-i18next";
|
||||||
|
import { useMutation } from "@apollo/react-hooks";
|
||||||
|
import { UPDATE_JOB } from "../../../../graphql/jobs.queries";
|
||||||
|
import { useParams } from "react-router-dom";
|
||||||
|
import { selectBodyshop } from "../../../../redux/user/user.selectors";
|
||||||
|
import { connect } from "react-redux";
|
||||||
|
import { createStructuredSelector } from "reselect";
|
||||||
|
import { useHistory } from "react-router-dom";
|
||||||
|
|
||||||
|
const mapStateToProps = createStructuredSelector({
|
||||||
|
bodyshop: selectBodyshop,
|
||||||
|
});
|
||||||
|
const mapDispatchToProps = (dispatch) => ({
|
||||||
|
//setUserLanguage: language => dispatch(setUserLanguage(language))
|
||||||
|
});
|
||||||
|
|
||||||
|
export function JobIntakeForm({ formItems, bodyshop }) {
|
||||||
|
const { t } = useTranslation();
|
||||||
|
const [intakeJob] = useMutation(UPDATE_JOB);
|
||||||
|
const { jobId } = useParams();
|
||||||
|
const history = useHistory();
|
||||||
|
const handleFinish = async (values) => {
|
||||||
|
console.log("values", values);
|
||||||
|
|
||||||
|
const result = await intakeJob({
|
||||||
|
variables: {
|
||||||
|
jobId: jobId,
|
||||||
|
job: {
|
||||||
|
inproduction: values.addToProduction || false,
|
||||||
|
status: bodyshop.md_ro_statuses.default_arrived || "Arrived*",
|
||||||
|
actual_in: new Date(),
|
||||||
|
scheduled_completion: values.scheduledCompletion,
|
||||||
|
intakechecklist: values,
|
||||||
|
scheduled_delivery: values.scheduledDelivery,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
if (!!!result.errors) {
|
||||||
|
notification["success"]({ message: t("intake.successes.intake") });
|
||||||
|
history.push(`/manage/jobs/${jobId}`);
|
||||||
|
} else {
|
||||||
|
notification["error"]({
|
||||||
|
message: t("intake.errors.intake", {
|
||||||
|
error: JSON.stringify(result.errors),
|
||||||
|
}),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
console.log("handleFinish -> result", result);
|
||||||
|
};
|
||||||
|
|
||||||
|
const [form] = Form.useForm();
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Form
|
||||||
|
form={form}
|
||||||
|
onFinish={handleFinish}
|
||||||
|
initialValues={{ addToProduction: true }}>
|
||||||
|
{t("intake.labels.checklist")}
|
||||||
|
{formItems.map((f, idx) => {
|
||||||
|
switch (f.type) {
|
||||||
|
case "checkbox":
|
||||||
|
return <CheckboxFormItem key={idx} formItem={f} />;
|
||||||
|
default:
|
||||||
|
return <div key={idx}>Error</div>;
|
||||||
|
}
|
||||||
|
})}
|
||||||
|
<Form.Item
|
||||||
|
name='addToProduction'
|
||||||
|
valuePropName='checked'
|
||||||
|
label={t("intake.labels.addtoproduction")}>
|
||||||
|
<Switch />
|
||||||
|
</Form.Item>
|
||||||
|
<Form.Item
|
||||||
|
name='scheduledCompletion'
|
||||||
|
label={t("jobs.fields.scheduled_completion")}
|
||||||
|
rules={[
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: t("general.validation.required"),
|
||||||
|
},
|
||||||
|
]}>
|
||||||
|
<DatePicker />
|
||||||
|
</Form.Item>
|
||||||
|
<Form.Item
|
||||||
|
name='scheduledDelivery'
|
||||||
|
label={t("jobs.fields.scheduled_delivery")}>
|
||||||
|
<DatePicker />
|
||||||
|
</Form.Item>
|
||||||
|
<Button htmlType='submit'>{t("general.actions.submit")}</Button>
|
||||||
|
</Form>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default connect(mapStateToProps, mapDispatchToProps)(JobIntakeForm);
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
import React from "react";
|
||||||
|
import { PrinterFilled } from "@ant-design/icons";
|
||||||
|
export default function JobIntakeTemplateItem({ templateKey, renderTemplate }) {
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
{templateKey}
|
||||||
|
<PrinterFilled onClick={() => renderTemplate(templateKey)} />
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
import React from "react";
|
||||||
|
import JobIntakeTemplateItem from "../job-intake-template-item/job-intake-template-item.component";
|
||||||
|
import { useParams } from "react-router-dom";
|
||||||
|
import RenderTemplate, {
|
||||||
|
displayTemplateInWindow,
|
||||||
|
} from "../../../../utils/RenderTemplate";
|
||||||
|
import { Button } from "antd";
|
||||||
|
import { selectBodyshop } from "../../../../redux/user/user.selectors";
|
||||||
|
import { connect } from "react-redux";
|
||||||
|
import { createStructuredSelector } from "reselect";
|
||||||
|
import { useTranslation } from "react-i18next";
|
||||||
|
|
||||||
|
const mapStateToProps = createStructuredSelector({
|
||||||
|
//currentUser: selectCurrentUser
|
||||||
|
bodyshop: selectBodyshop,
|
||||||
|
});
|
||||||
|
const mapDispatchToProps = (dispatch) => ({
|
||||||
|
//setUserLanguage: language => dispatch(setUserLanguage(language))
|
||||||
|
});
|
||||||
|
|
||||||
|
export function JobIntakeTemplateList({ bodyshop, templates }) {
|
||||||
|
const { jobId } = useParams();
|
||||||
|
const { t } = useTranslation();
|
||||||
|
const renderTemplate = async (templateKey) => {
|
||||||
|
const html = await RenderTemplate(
|
||||||
|
{
|
||||||
|
name: templateKey,
|
||||||
|
variables: { id: jobId },
|
||||||
|
},
|
||||||
|
bodyshop
|
||||||
|
);
|
||||||
|
displayTemplateInWindow(html);
|
||||||
|
};
|
||||||
|
|
||||||
|
const renderAllTemplates = () => {
|
||||||
|
templates.forEach((template) => renderTemplate(template));
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
{t("intake.labels.printpack")}
|
||||||
|
<Button onClick={renderAllTemplates}>
|
||||||
|
{t("intake.actions.printall")}
|
||||||
|
</Button>
|
||||||
|
{templates.map((template) => (
|
||||||
|
<JobIntakeTemplateItem
|
||||||
|
key={template}
|
||||||
|
templateKey={template}
|
||||||
|
renderTemplate={renderTemplate}
|
||||||
|
/>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
export default connect(
|
||||||
|
mapStateToProps,
|
||||||
|
mapDispatchToProps
|
||||||
|
)(JobIntakeTemplateList);
|
||||||
13
client/src/components/job-intake/job-intake.component.jsx
Normal file
13
client/src/components/job-intake/job-intake.component.jsx
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
import React from "react";
|
||||||
|
import JobIntakeTemplateList from "./components/job-intake-template-list/job-intake-template-list.component";
|
||||||
|
import JobIntakeForm from "./components/job-intake-form/job-intake-form.component";
|
||||||
|
export default function JobIntakeComponent({ intakeChecklistConfig }) {
|
||||||
|
const { form, templates } = intakeChecklistConfig;
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
<JobIntakeTemplateList templates={templates} />
|
||||||
|
<JobIntakeForm formItems={form} />
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -5,7 +5,9 @@ import { createStructuredSelector } from "reselect";
|
|||||||
import { setEmailOptions } from "../../redux/email/email.actions";
|
import { setEmailOptions } from "../../redux/email/email.actions";
|
||||||
import { selectPrintCenter } from "../../redux/modals/modals.selectors";
|
import { selectPrintCenter } from "../../redux/modals/modals.selectors";
|
||||||
import { selectBodyshop } from "../../redux/user/user.selectors";
|
import { selectBodyshop } from "../../redux/user/user.selectors";
|
||||||
import RenderTemplate from "../../utils/RenderTemplate";
|
import RenderTemplate, {
|
||||||
|
displayTemplateInWindow,
|
||||||
|
} from "../../utils/RenderTemplate";
|
||||||
const mapStateToProps = createStructuredSelector({
|
const mapStateToProps = createStructuredSelector({
|
||||||
printCenterModal: selectPrintCenter,
|
printCenterModal: selectPrintCenter,
|
||||||
bodyshop: selectBodyshop,
|
bodyshop: selectBodyshop,
|
||||||
@@ -28,12 +30,9 @@ export function PrintCenterItemComponent({
|
|||||||
name: item.key,
|
name: item.key,
|
||||||
variables: { id: id },
|
variables: { id: id },
|
||||||
},
|
},
|
||||||
|
|
||||||
bodyshop
|
bodyshop
|
||||||
);
|
);
|
||||||
|
displayTemplateInWindow(html);
|
||||||
var newWin = window.open();
|
|
||||||
newWin.document.write(html);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
if (disabled) return <li className='print-center-item'>{item.title} </li>;
|
if (disabled) return <li className='print-center-item'>{item.title} </li>;
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import { useHistory, useLocation } from "react-router-dom";
|
|||||||
import { createStructuredSelector } from "reselect";
|
import { createStructuredSelector } from "reselect";
|
||||||
import { INSERT_TEMPLATE } from "../../graphql/templates.queries";
|
import { INSERT_TEMPLATE } from "../../graphql/templates.queries";
|
||||||
import { selectBodyshop } from "../../redux/user/user.selectors";
|
import { selectBodyshop } from "../../redux/user/user.selectors";
|
||||||
import { TemplateList } from "../../utils/constants";
|
import { TemplateList } from "../../utils/TemplateConstants";
|
||||||
|
|
||||||
const mapStateToProps = createStructuredSelector({
|
const mapStateToProps = createStructuredSelector({
|
||||||
//currentUser: selectCurrentUser
|
//currentUser: selectCurrentUser
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import Skeleton from "../loading-skeleton/loading-skeleton.component";
|
|||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import { useHistory, useLocation } from "react-router-dom";
|
import { useHistory, useLocation } from "react-router-dom";
|
||||||
import queryString from "query-string";
|
import queryString from "query-string";
|
||||||
import { TemplateList } from "../../utils/constants";
|
import { TemplateList } from "../../utils/TemplateConstants";
|
||||||
import ShopTemplateAdd from "../shop-template-add/shop-template-add.component";
|
import ShopTemplateAdd from "../shop-template-add/shop-template-add.component";
|
||||||
import ShopTemplateDeleteComponent from "../shop-template-delete/shop-template-delete.component";
|
import ShopTemplateDeleteComponent from "../shop-template-delete/shop-template-delete.component";
|
||||||
|
|
||||||
|
|||||||
@@ -38,12 +38,8 @@ let messaging;
|
|||||||
try {
|
try {
|
||||||
messaging = firebase.messaging();
|
messaging = firebase.messaging();
|
||||||
// Project Settings => Cloud Messaging => Web Push certificates
|
// Project Settings => Cloud Messaging => Web Push certificates
|
||||||
// messaging.usePublicVapidKey(process.env.REACT_APP_FIREBASE_PUBLIC_VAPID_KEY);
|
|
||||||
messaging.usePublicVapidKey(process.env.REACT_APP_FIREBASE_PUBLIC_VAPID_KEY);
|
messaging.usePublicVapidKey(process.env.REACT_APP_FIREBASE_PUBLIC_VAPID_KEY);
|
||||||
console.log(
|
console.log("Firebase Messaging initialized successfully.");
|
||||||
"Firebase Messaging initialized successfully.",
|
|
||||||
process.env.REACT_APP_FIREBASE_PUBLIC_VAPID_KEY
|
|
||||||
);
|
|
||||||
} catch {
|
} catch {
|
||||||
console.log("Firebase Messaging is likely unsupported.");
|
console.log("Firebase Messaging is likely unsupported.");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -88,3 +88,11 @@ export const UPDATE_SHOP = gql`
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
|
export const QUERY_INTAKE_CHECKLIST = gql`
|
||||||
|
query QUERY_INTAKE_CHECKLIST($shopId: uuid!) {
|
||||||
|
bodyshops_by_pk(id: $shopId) {
|
||||||
|
id
|
||||||
|
intakechecklist
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|||||||
@@ -1,18 +1,13 @@
|
|||||||
import { Col, Row } from "antd";
|
import { Col, Row } from "antd";
|
||||||
import React, { useEffect } from "react";
|
import React, { useEffect } from "react";
|
||||||
import InvoicesByVendorList from "../../components/invoices-by-vendor-list/invoices-by-vendor-list.component";
|
|
||||||
import VendorsList from "../../components/invoices-vendors-list/invoices-vendors-list.component";
|
|
||||||
import InvoiceDetailEditContainer from "../../components/invoice-detail-edit/invoice-detail-edit.container";
|
|
||||||
import { setBreadcrumbs } from "../../redux/application/application.actions";
|
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import { connect } from "react-redux";
|
import { connect } from "react-redux";
|
||||||
import { createStructuredSelector } from "reselect";
|
import InvoiceDetailEditContainer from "../../components/invoice-detail-edit/invoice-detail-edit.container";
|
||||||
|
import InvoicesByVendorList from "../../components/invoices-by-vendor-list/invoices-by-vendor-list.component";
|
||||||
|
import VendorsList from "../../components/invoices-vendors-list/invoices-vendors-list.component";
|
||||||
|
import { setBreadcrumbs } from "../../redux/application/application.actions";
|
||||||
|
|
||||||
const mapStateToProps = createStructuredSelector({
|
|
||||||
//currentUser: selectCurrentUser
|
|
||||||
});
|
|
||||||
const mapDispatchToProps = (dispatch) => ({
|
const mapDispatchToProps = (dispatch) => ({
|
||||||
//setUserLanguage: language => dispatch(setUserLanguage(language))
|
|
||||||
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
|
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -41,7 +36,4 @@ export function InvoicesPageContainer({ setBreadcrumbs }) {
|
|||||||
</Row>
|
</Row>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
export default connect(
|
export default connect(null, mapDispatchToProps)(InvoicesPageContainer);
|
||||||
mapStateToProps,
|
|
||||||
mapDispatchToProps
|
|
||||||
)(InvoicesPageContainer);
|
|
||||||
|
|||||||
90
client/src/pages/jobs-intake/jobs-intake.page.container.jsx
Normal file
90
client/src/pages/jobs-intake/jobs-intake.page.container.jsx
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
import React, { useEffect } from "react";
|
||||||
|
import { useQuery } from "@apollo/react-hooks";
|
||||||
|
import { QUERY_INTAKE_CHECKLIST } from "../../graphql/bodyshop.queries";
|
||||||
|
import { selectBodyshop } from "../../redux/user/user.selectors";
|
||||||
|
import { connect } from "react-redux";
|
||||||
|
import { createStructuredSelector } from "reselect";
|
||||||
|
import { useParams } from "react-router-dom";
|
||||||
|
import AlertComponent from "../../components/alert/alert.component";
|
||||||
|
import LoadingSpinner from "../../components/loading-spinner/loading-spinner.component";
|
||||||
|
import { useTranslation } from "react-i18next";
|
||||||
|
import { setBreadcrumbs } from "../../redux/application/application.actions";
|
||||||
|
import JobIntakeComponent from "../../components/job-intake/job-intake.component";
|
||||||
|
|
||||||
|
const mapStateToProps = createStructuredSelector({
|
||||||
|
//currentUser: selectCurrentUser
|
||||||
|
bodyshop: selectBodyshop,
|
||||||
|
});
|
||||||
|
const mapDispatchToProps = (dispatch) => ({
|
||||||
|
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
|
||||||
|
});
|
||||||
|
|
||||||
|
export function JobsIntakeContainer({ bodyshop, setBreadcrumbs }) {
|
||||||
|
const { t } = useTranslation();
|
||||||
|
const { loading, error, data } = useQuery(QUERY_INTAKE_CHECKLIST, {
|
||||||
|
variables: { shopId: bodyshop.id },
|
||||||
|
});
|
||||||
|
const { jobId } = useParams();
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
document.title = t("titles.jobs-intake");
|
||||||
|
setBreadcrumbs([
|
||||||
|
{ link: "/manage/jobs", label: t("titles.bc.jobs") },
|
||||||
|
{
|
||||||
|
link: `/manage/jobs/${jobId}`,
|
||||||
|
label: t("titles.bc.jobs-detail", { number: "TODO" }),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
link: `/manage/jobs/${jobId}/intake`,
|
||||||
|
label: t("titles.bc.jobs-intake"),
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
}, [t, setBreadcrumbs, jobId]);
|
||||||
|
|
||||||
|
if (loading) return <LoadingSpinner />;
|
||||||
|
if (error) return <AlertComponent message={error.message} type='error' />;
|
||||||
|
// if (data && !!!data.bodyshops_by_pk.intakechecklist)
|
||||||
|
// return (
|
||||||
|
// <AlertComponent message={t("intake.errors.nochecklist")} type='error' />
|
||||||
|
// );
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
<JobIntakeComponent intakeChecklistConfig={testConfig} />
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default connect(
|
||||||
|
mapStateToProps,
|
||||||
|
mapDispatchToProps
|
||||||
|
)(JobsIntakeContainer);
|
||||||
|
|
||||||
|
const testConfig = {
|
||||||
|
form: [
|
||||||
|
{
|
||||||
|
name: "item1",
|
||||||
|
label: "Checklist Item 1",
|
||||||
|
required: true,
|
||||||
|
type: "checkbox",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "item2",
|
||||||
|
label: "Checklist Item 2",
|
||||||
|
required: true,
|
||||||
|
type: "checkbox",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "item3",
|
||||||
|
label: "Checklist Item 3",
|
||||||
|
required: true,
|
||||||
|
type: "checkbox",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "item4",
|
||||||
|
label: "Checklist Item 4",
|
||||||
|
required: true,
|
||||||
|
type: "checkbox",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
templates: ["estimate_detail", "estimate_detail2"],
|
||||||
|
};
|
||||||
@@ -85,6 +85,9 @@ const ProductionBoardPage = lazy(() =>
|
|||||||
const ShopTemplates = lazy(() =>
|
const ShopTemplates = lazy(() =>
|
||||||
import("../shop-templates/shop-templates.container")
|
import("../shop-templates/shop-templates.container")
|
||||||
);
|
);
|
||||||
|
const JobIntake = lazy(() =>
|
||||||
|
import("../jobs-intake/jobs-intake.page.container")
|
||||||
|
);
|
||||||
const { Header, Content, Footer } = Layout;
|
const { Header, Content, Footer } = Layout;
|
||||||
|
|
||||||
export default function Manage({ match }) {
|
export default function Manage({ match }) {
|
||||||
@@ -116,14 +119,19 @@ export default function Manage({ match }) {
|
|||||||
<PrintCenterModalContainer />
|
<PrintCenterModalContainer />
|
||||||
<Route exact path={`${match.path}`} component={ManageRootPage} />
|
<Route exact path={`${match.path}`} component={ManageRootPage} />
|
||||||
<Route exact path={`${match.path}/jobs`} component={JobsPage} />
|
<Route exact path={`${match.path}/jobs`} component={JobsPage} />
|
||||||
|
|
||||||
<Switch>
|
<Switch>
|
||||||
|
<Route
|
||||||
|
exact
|
||||||
|
path={`${match.path}/jobs/:jobId/intake`}
|
||||||
|
component={JobIntake}
|
||||||
|
/>
|
||||||
<Route
|
<Route
|
||||||
exact
|
exact
|
||||||
path={`${match.path}/jobs/new`}
|
path={`${match.path}/jobs/new`}
|
||||||
component={JobsCreateContainerPage}
|
component={JobsCreateContainerPage}
|
||||||
/>
|
/>
|
||||||
<Route
|
<Route
|
||||||
exact
|
|
||||||
path={`${match.path}/jobs/:jobId`}
|
path={`${match.path}/jobs/:jobId`}
|
||||||
component={JobsDetailPage}
|
component={JobsDetailPage}
|
||||||
/>
|
/>
|
||||||
@@ -188,7 +196,6 @@ export default function Manage({ match }) {
|
|||||||
path={`${match.path}/vehicles/:vehId`}
|
path={`${match.path}/vehicles/:vehId`}
|
||||||
component={VehiclesDetailContainer}
|
component={VehiclesDetailContainer}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<Route
|
<Route
|
||||||
exact
|
exact
|
||||||
path={`${match.path}/invoices`}
|
path={`${match.path}/invoices`}
|
||||||
@@ -199,7 +206,6 @@ export default function Manage({ match }) {
|
|||||||
path={`${match.path}/invoices/:invoiceId`}
|
path={`${match.path}/invoices/:invoiceId`}
|
||||||
component={InvoiceDetailPage}
|
component={InvoiceDetailPage}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<Route
|
<Route
|
||||||
exact
|
exact
|
||||||
path={`${match.path}/owners`}
|
path={`${match.path}/owners`}
|
||||||
|
|||||||
@@ -304,7 +304,8 @@
|
|||||||
"edit": "Edit",
|
"edit": "Edit",
|
||||||
"reset": "Reset to original.",
|
"reset": "Reset to original.",
|
||||||
"save": "Save",
|
"save": "Save",
|
||||||
"saveandnew": "Save and New"
|
"saveandnew": "Save and New",
|
||||||
|
"submit": "Submit"
|
||||||
},
|
},
|
||||||
"labels": {
|
"labels": {
|
||||||
"actions": "Actions",
|
"actions": "Actions",
|
||||||
@@ -335,6 +336,23 @@
|
|||||||
"required": "This field is required. "
|
"required": "This field is required. "
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"intake": {
|
||||||
|
"actions": {
|
||||||
|
"printall": "Print All Documents"
|
||||||
|
},
|
||||||
|
"errors": {
|
||||||
|
"intake": "Error during job intake. {{error}}",
|
||||||
|
"nochecklist": "No checklist has been configured for your shop. "
|
||||||
|
},
|
||||||
|
"labels": {
|
||||||
|
"addtoproduction": "Add Job to Production?",
|
||||||
|
"checklist": "Job Intake Checklist",
|
||||||
|
"printpack": "Job Intake Print Pack"
|
||||||
|
},
|
||||||
|
"successes": {
|
||||||
|
"intake": "Job intake completed."
|
||||||
|
}
|
||||||
|
},
|
||||||
"invoicelines": {
|
"invoicelines": {
|
||||||
"actions": {
|
"actions": {
|
||||||
"newline": "New Line"
|
"newline": "New Line"
|
||||||
@@ -857,6 +875,7 @@
|
|||||||
"jobs": "Jobs",
|
"jobs": "Jobs",
|
||||||
"jobs-active": "Active Jobs",
|
"jobs-active": "Active Jobs",
|
||||||
"jobs-detail": "Job {{number}}",
|
"jobs-detail": "Job {{number}}",
|
||||||
|
"jobs-intake": "Intake",
|
||||||
"jobs-new": "Create a New Job",
|
"jobs-new": "Create a New Job",
|
||||||
"owner-detail": "{{name}}",
|
"owner-detail": "{{name}}",
|
||||||
"owners": "Owners",
|
"owners": "Owners",
|
||||||
@@ -877,6 +896,7 @@
|
|||||||
"invoices-list": "Invoices | $t(titles.app)",
|
"invoices-list": "Invoices | $t(titles.app)",
|
||||||
"jobs": "Active Jobs | $t(titles.app)",
|
"jobs": "Active Jobs | $t(titles.app)",
|
||||||
"jobs-create": "Create a New Job | $t(titles.app)",
|
"jobs-create": "Create a New Job | $t(titles.app)",
|
||||||
|
"jobs-intake": "Intake | $t(titles.app)",
|
||||||
"jobsavailable": "Available Jobs | $t(titles.app)",
|
"jobsavailable": "Available Jobs | $t(titles.app)",
|
||||||
"jobsdetail": "Job {{ro_number}} | $t(titles.app)",
|
"jobsdetail": "Job {{ro_number}} | $t(titles.app)",
|
||||||
"jobsdocuments": "Job Documents {{ro_number}} | $t(titles.app)",
|
"jobsdocuments": "Job Documents {{ro_number}} | $t(titles.app)",
|
||||||
|
|||||||
@@ -304,7 +304,8 @@
|
|||||||
"edit": "Editar",
|
"edit": "Editar",
|
||||||
"reset": "Restablecer a original.",
|
"reset": "Restablecer a original.",
|
||||||
"save": "Salvar",
|
"save": "Salvar",
|
||||||
"saveandnew": ""
|
"saveandnew": "",
|
||||||
|
"submit": ""
|
||||||
},
|
},
|
||||||
"labels": {
|
"labels": {
|
||||||
"actions": "Comportamiento",
|
"actions": "Comportamiento",
|
||||||
@@ -335,6 +336,23 @@
|
|||||||
"required": "Este campo es requerido."
|
"required": "Este campo es requerido."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"intake": {
|
||||||
|
"actions": {
|
||||||
|
"printall": ""
|
||||||
|
},
|
||||||
|
"errors": {
|
||||||
|
"intake": "",
|
||||||
|
"nochecklist": ""
|
||||||
|
},
|
||||||
|
"labels": {
|
||||||
|
"addtoproduction": "",
|
||||||
|
"checklist": "",
|
||||||
|
"printpack": ""
|
||||||
|
},
|
||||||
|
"successes": {
|
||||||
|
"intake": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
"invoicelines": {
|
"invoicelines": {
|
||||||
"actions": {
|
"actions": {
|
||||||
"newline": ""
|
"newline": ""
|
||||||
@@ -857,6 +875,7 @@
|
|||||||
"jobs": "",
|
"jobs": "",
|
||||||
"jobs-active": "",
|
"jobs-active": "",
|
||||||
"jobs-detail": "",
|
"jobs-detail": "",
|
||||||
|
"jobs-intake": "",
|
||||||
"jobs-new": "",
|
"jobs-new": "",
|
||||||
"owner-detail": "",
|
"owner-detail": "",
|
||||||
"owners": "",
|
"owners": "",
|
||||||
@@ -877,6 +896,7 @@
|
|||||||
"invoices-list": "",
|
"invoices-list": "",
|
||||||
"jobs": "Todos los trabajos | $t(titles.app)",
|
"jobs": "Todos los trabajos | $t(titles.app)",
|
||||||
"jobs-create": "",
|
"jobs-create": "",
|
||||||
|
"jobs-intake": "",
|
||||||
"jobsavailable": "Empleos disponibles | $t(titles.app)",
|
"jobsavailable": "Empleos disponibles | $t(titles.app)",
|
||||||
"jobsdetail": "Trabajo {{ro_number}} | $t(titles.app)",
|
"jobsdetail": "Trabajo {{ro_number}} | $t(titles.app)",
|
||||||
"jobsdocuments": "Documentos de trabajo {{ro_number}} | $ t (títulos.app)",
|
"jobsdocuments": "Documentos de trabajo {{ro_number}} | $ t (títulos.app)",
|
||||||
|
|||||||
@@ -304,7 +304,8 @@
|
|||||||
"edit": "modifier",
|
"edit": "modifier",
|
||||||
"reset": "Rétablir l'original.",
|
"reset": "Rétablir l'original.",
|
||||||
"save": "sauvegarder",
|
"save": "sauvegarder",
|
||||||
"saveandnew": ""
|
"saveandnew": "",
|
||||||
|
"submit": ""
|
||||||
},
|
},
|
||||||
"labels": {
|
"labels": {
|
||||||
"actions": "actes",
|
"actions": "actes",
|
||||||
@@ -335,6 +336,23 @@
|
|||||||
"required": "Ce champ est requis."
|
"required": "Ce champ est requis."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"intake": {
|
||||||
|
"actions": {
|
||||||
|
"printall": ""
|
||||||
|
},
|
||||||
|
"errors": {
|
||||||
|
"intake": "",
|
||||||
|
"nochecklist": ""
|
||||||
|
},
|
||||||
|
"labels": {
|
||||||
|
"addtoproduction": "",
|
||||||
|
"checklist": "",
|
||||||
|
"printpack": ""
|
||||||
|
},
|
||||||
|
"successes": {
|
||||||
|
"intake": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
"invoicelines": {
|
"invoicelines": {
|
||||||
"actions": {
|
"actions": {
|
||||||
"newline": ""
|
"newline": ""
|
||||||
@@ -857,6 +875,7 @@
|
|||||||
"jobs": "",
|
"jobs": "",
|
||||||
"jobs-active": "",
|
"jobs-active": "",
|
||||||
"jobs-detail": "",
|
"jobs-detail": "",
|
||||||
|
"jobs-intake": "",
|
||||||
"jobs-new": "",
|
"jobs-new": "",
|
||||||
"owner-detail": "",
|
"owner-detail": "",
|
||||||
"owners": "",
|
"owners": "",
|
||||||
@@ -877,6 +896,7 @@
|
|||||||
"invoices-list": "",
|
"invoices-list": "",
|
||||||
"jobs": "Tous les emplois | $t(titles.app)",
|
"jobs": "Tous les emplois | $t(titles.app)",
|
||||||
"jobs-create": "",
|
"jobs-create": "",
|
||||||
|
"jobs-intake": "",
|
||||||
"jobsavailable": "Emplois disponibles | $t(titles.app)",
|
"jobsavailable": "Emplois disponibles | $t(titles.app)",
|
||||||
"jobsdetail": "Travail {{ro_number}} | $t(titles.app)",
|
"jobsdetail": "Travail {{ro_number}} | $t(titles.app)",
|
||||||
"jobsdocuments": "Documents de travail {{ro_number}} | $ t (titres.app)",
|
"jobsdocuments": "Documents de travail {{ro_number}} | $ t (titres.app)",
|
||||||
|
|||||||
@@ -39,3 +39,19 @@ export default async function RenderTemplate(templateObject, bodyshop) {
|
|||||||
resolve(data);
|
resolve(data);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const displayTemplateInWindow = (html) => {
|
||||||
|
try {
|
||||||
|
var newWin = window.open("", "_blank", "toolbar=0,location=0,menubar=0");
|
||||||
|
newWin.document.write(html);
|
||||||
|
|
||||||
|
setTimeout(function () {
|
||||||
|
newWin.document.close();
|
||||||
|
newWin.focus();
|
||||||
|
newWin.print();
|
||||||
|
newWin.close();
|
||||||
|
}, 500);
|
||||||
|
} catch (error) {
|
||||||
|
console.log("Unable to write to new window.", error);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|||||||
@@ -14,9 +14,9 @@ export const TemplateList = {
|
|||||||
description: "Parts order template including part details",
|
description: "Parts order template including part details",
|
||||||
drivingId: "Parts order Id",
|
drivingId: "Parts order Id",
|
||||||
},
|
},
|
||||||
test_Template: {
|
estimate_detail: {
|
||||||
title: "Test",
|
title: "Estimate Detail Lines",
|
||||||
description: "Test - does nto exist.",
|
description: "Est Detail",
|
||||||
drivingId: "test does not exist.",
|
drivingId: "test does not exist.",
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
32
client/templates/estimate_detail/estimate_detail.query.gql
Normal file
32
client/templates/estimate_detail/estimate_detail.query.gql
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
query TEMPLATE_ESTIMATE_DETAIL($id: uuid!) {
|
||||||
|
jobs_by_pk(id: $id) {
|
||||||
|
csr
|
||||||
|
ded_amt
|
||||||
|
ded_status
|
||||||
|
id
|
||||||
|
ownr_co_nm
|
||||||
|
ownr_ln
|
||||||
|
ownr_fn
|
||||||
|
plate_no
|
||||||
|
plate_st
|
||||||
|
ro_number
|
||||||
|
regie_number
|
||||||
|
tlos_ind
|
||||||
|
v_color
|
||||||
|
v_make_desc
|
||||||
|
v_model_desc
|
||||||
|
v_model_yr
|
||||||
|
v_vin
|
||||||
|
clm_no
|
||||||
|
joblines(order_by: { line_no: asc }) {
|
||||||
|
id
|
||||||
|
mod_lbr_ty
|
||||||
|
mod_lb_hrs
|
||||||
|
part_qty
|
||||||
|
oem_partno
|
||||||
|
op_code_desc
|
||||||
|
line_desc
|
||||||
|
line_no
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,87 @@
|
|||||||
|
<div style="font-family: Arial, Helvetica, sans-serif;">
|
||||||
|
<h1 style="text-align: center;">
|
||||||
|
<span><strong>Job Detail Summary</strong></span>
|
||||||
|
</h1>
|
||||||
|
<table style="border-collapse: collapse; width: 100%;" border="1">
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td style="width: 33.3333%; vertical-align: top;">
|
||||||
|
<strong>Owner:</strong> {{jobs_by_pk.ownr_fn}} {{jobs_by_pk.ownr_ln}}
|
||||||
|
{{jobs_by_pk.ownr_co_nm}}
|
||||||
|
</td>
|
||||||
|
<td style="width: 33.3333%; vertical-align: top;">
|
||||||
|
<strong>Vehicle: </strong>{{jobs_by_pk.v_model_yr}}
|
||||||
|
{{jobs_by_pk.v_color}}{{jobs_by_pk.v_make_desc}}
|
||||||
|
{{jobs_by_pk.v_model_desc}}
|
||||||
|
</td>
|
||||||
|
<td style="width: 33.3333%; vertical-align: top;">
|
||||||
|
<p>
|
||||||
|
<strong>Claim Number: </strong>{{jobs_by_pk.clm_no}}<br /><strong
|
||||||
|
>Regie Number:</strong > {{jobs_by_pk.regie_number}}
|
||||||
|
</strong>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<strong>Deductible:</strong> {{jobs_by_pk.ded_amt}}
|
||||||
|
{{jobs_by_pk.ded_status}}
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<h2 style="text-align: center;"><span>Job Lines</span></h2>
|
||||||
|
<table
|
||||||
|
style="border-collapse: collapse; width: 100%; height: 88px;"
|
||||||
|
border="1"
|
||||||
|
>
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 22px;">
|
||||||
|
<td style="width: 14.2857%; text-align: center; height: 22px;">
|
||||||
|
<strong>Line No.</strong>
|
||||||
|
</td>
|
||||||
|
<td style="width: 14.2857%; text-align: center; height: 22px;">
|
||||||
|
<strong>Line Desc.</strong>
|
||||||
|
</td>
|
||||||
|
<td style="width: 14.2857%; text-align: center; height: 22px;">
|
||||||
|
<strong>OEM Part #</strong>
|
||||||
|
</td>
|
||||||
|
<td style="width: 14.2857%; text-align: center; height: 22px;">
|
||||||
|
<strong>Qty.</strong>
|
||||||
|
</td>
|
||||||
|
<td style="width: 14.2857%; text-align: center; height: 22px;">
|
||||||
|
<strong>Labor Type</strong>
|
||||||
|
</td>
|
||||||
|
<td style="width: 14.2857%; text-align: center; height: 22px;">
|
||||||
|
<strong>Hours</strong>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr style="height: 22px; display: none;">
|
||||||
|
<td style="width: 100%; height: 22px;">
|
||||||
|
<span>{{#each jobs_by_pk.joblines}}</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr style="height: 22px;">
|
||||||
|
<td style="width: 14.2857%; height: 22px; text-align: justify;">
|
||||||
|
{{this.line_no}}
|
||||||
|
</td>
|
||||||
|
<td style="width: 14.2857%; height: 22px; text-align: justify;">
|
||||||
|
{{this.line_desc}}
|
||||||
|
</td>
|
||||||
|
<td style="width: 14.2857%; height: 22px; text-align: justify;">
|
||||||
|
{{this.oem_partno}}
|
||||||
|
</td>
|
||||||
|
<td style="width: 14.2857%; height: 22px; text-align: justify;">
|
||||||
|
{{this.part_qty}}
|
||||||
|
</td>
|
||||||
|
<td style="width: 14.2857%; height: 22px; text-align: justify;">
|
||||||
|
{{this.mod_lbr_ty}}
|
||||||
|
</td>
|
||||||
|
<td style="width: 14.2857%; height: 22px; text-align: justify;">
|
||||||
|
{{this.mod_lb_hrs}}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr style="height: 22px; display: none;">
|
||||||
|
<td style="width: 100%; height: 22px;"><span>{{/each}}</span></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
- args:
|
||||||
|
cascade: false
|
||||||
|
read_only: false
|
||||||
|
sql: ALTER TABLE "public"."bodyshops" DROP COLUMN "intakechecklist";
|
||||||
|
type: run_sql
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
- args:
|
||||||
|
cascade: false
|
||||||
|
read_only: false
|
||||||
|
sql: ALTER TABLE "public"."bodyshops" ADD COLUMN "intakechecklist" jsonb NULL;
|
||||||
|
type: run_sql
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
- args:
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: bodyshops
|
||||||
|
schema: public
|
||||||
|
type: drop_select_permission
|
||||||
|
- args:
|
||||||
|
permission:
|
||||||
|
allow_aggregations: false
|
||||||
|
columns:
|
||||||
|
- address1
|
||||||
|
- address2
|
||||||
|
- city
|
||||||
|
- country
|
||||||
|
- created_at
|
||||||
|
- email
|
||||||
|
- federal_tax_id
|
||||||
|
- id
|
||||||
|
- inhousevendorid
|
||||||
|
- insurance_vendor_id
|
||||||
|
- invoice_tax_rates
|
||||||
|
- logo_img_path
|
||||||
|
- md_order_statuses
|
||||||
|
- md_responsibility_centers
|
||||||
|
- md_ro_statuses
|
||||||
|
- messagingservicesid
|
||||||
|
- production_config
|
||||||
|
- region_config
|
||||||
|
- shopname
|
||||||
|
- shoprates
|
||||||
|
- state
|
||||||
|
- state_tax_id
|
||||||
|
- template_header
|
||||||
|
- textid
|
||||||
|
- updated_at
|
||||||
|
- zip_post
|
||||||
|
computed_fields: []
|
||||||
|
filter:
|
||||||
|
associations:
|
||||||
|
bodyshop:
|
||||||
|
associations:
|
||||||
|
user:
|
||||||
|
authid:
|
||||||
|
_eq: X-Hasura-User-Id
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: bodyshops
|
||||||
|
schema: public
|
||||||
|
type: create_select_permission
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
- args:
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: bodyshops
|
||||||
|
schema: public
|
||||||
|
type: drop_select_permission
|
||||||
|
- args:
|
||||||
|
permission:
|
||||||
|
allow_aggregations: false
|
||||||
|
columns:
|
||||||
|
- address1
|
||||||
|
- address2
|
||||||
|
- city
|
||||||
|
- country
|
||||||
|
- created_at
|
||||||
|
- email
|
||||||
|
- federal_tax_id
|
||||||
|
- id
|
||||||
|
- inhousevendorid
|
||||||
|
- insurance_vendor_id
|
||||||
|
- intakechecklist
|
||||||
|
- invoice_tax_rates
|
||||||
|
- logo_img_path
|
||||||
|
- md_order_statuses
|
||||||
|
- md_responsibility_centers
|
||||||
|
- md_ro_statuses
|
||||||
|
- messagingservicesid
|
||||||
|
- production_config
|
||||||
|
- region_config
|
||||||
|
- shopname
|
||||||
|
- shoprates
|
||||||
|
- state
|
||||||
|
- state_tax_id
|
||||||
|
- template_header
|
||||||
|
- textid
|
||||||
|
- updated_at
|
||||||
|
- zip_post
|
||||||
|
computed_fields: []
|
||||||
|
filter:
|
||||||
|
associations:
|
||||||
|
bodyshop:
|
||||||
|
associations:
|
||||||
|
user:
|
||||||
|
authid:
|
||||||
|
_eq: X-Hasura-User-Id
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: bodyshops
|
||||||
|
schema: public
|
||||||
|
type: create_select_permission
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
- args:
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: bodyshops
|
||||||
|
schema: public
|
||||||
|
type: drop_update_permission
|
||||||
|
- args:
|
||||||
|
permission:
|
||||||
|
columns:
|
||||||
|
- address1
|
||||||
|
- address2
|
||||||
|
- city
|
||||||
|
- country
|
||||||
|
- created_at
|
||||||
|
- email
|
||||||
|
- federal_tax_id
|
||||||
|
- id
|
||||||
|
- inhousevendorid
|
||||||
|
- insurance_vendor_id
|
||||||
|
- invoice_tax_rates
|
||||||
|
- logo_img_path
|
||||||
|
- md_order_statuses
|
||||||
|
- md_responsibility_centers
|
||||||
|
- md_ro_statuses
|
||||||
|
- production_config
|
||||||
|
- shopname
|
||||||
|
- shoprates
|
||||||
|
- state
|
||||||
|
- state_tax_id
|
||||||
|
- updated_at
|
||||||
|
- zip_post
|
||||||
|
filter:
|
||||||
|
associations:
|
||||||
|
bodyshop:
|
||||||
|
associations:
|
||||||
|
user:
|
||||||
|
authid:
|
||||||
|
_eq: X-Hasura-User-Id
|
||||||
|
localPresets:
|
||||||
|
- key: ""
|
||||||
|
value: ""
|
||||||
|
set: {}
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: bodyshops
|
||||||
|
schema: public
|
||||||
|
type: create_update_permission
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
- args:
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: bodyshops
|
||||||
|
schema: public
|
||||||
|
type: drop_update_permission
|
||||||
|
- args:
|
||||||
|
permission:
|
||||||
|
columns:
|
||||||
|
- address1
|
||||||
|
- address2
|
||||||
|
- city
|
||||||
|
- country
|
||||||
|
- created_at
|
||||||
|
- email
|
||||||
|
- federal_tax_id
|
||||||
|
- id
|
||||||
|
- inhousevendorid
|
||||||
|
- insurance_vendor_id
|
||||||
|
- intakechecklist
|
||||||
|
- invoice_tax_rates
|
||||||
|
- logo_img_path
|
||||||
|
- md_order_statuses
|
||||||
|
- md_responsibility_centers
|
||||||
|
- md_ro_statuses
|
||||||
|
- production_config
|
||||||
|
- shopname
|
||||||
|
- shoprates
|
||||||
|
- state
|
||||||
|
- state_tax_id
|
||||||
|
- updated_at
|
||||||
|
- zip_post
|
||||||
|
filter:
|
||||||
|
associations:
|
||||||
|
bodyshop:
|
||||||
|
associations:
|
||||||
|
user:
|
||||||
|
authid:
|
||||||
|
_eq: X-Hasura-User-Id
|
||||||
|
localPresets:
|
||||||
|
- key: ""
|
||||||
|
value: ""
|
||||||
|
set: {}
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: bodyshops
|
||||||
|
schema: public
|
||||||
|
type: create_update_permission
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
- args:
|
||||||
|
cascade: false
|
||||||
|
read_only: false
|
||||||
|
sql: ALTER TABLE "public"."jobs" DROP COLUMN "intakechecklist";
|
||||||
|
type: run_sql
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
- args:
|
||||||
|
cascade: false
|
||||||
|
read_only: false
|
||||||
|
sql: ALTER TABLE "public"."jobs" ADD COLUMN "intakechecklist" jsonb NULL;
|
||||||
|
type: run_sql
|
||||||
@@ -0,0 +1,255 @@
|
|||||||
|
- args:
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: jobs
|
||||||
|
schema: public
|
||||||
|
type: drop_insert_permission
|
||||||
|
- args:
|
||||||
|
permission:
|
||||||
|
check:
|
||||||
|
bodyshop:
|
||||||
|
associations:
|
||||||
|
_and:
|
||||||
|
- user:
|
||||||
|
authid:
|
||||||
|
_eq: X-Hasura-User-Id
|
||||||
|
- active:
|
||||||
|
_eq: true
|
||||||
|
columns:
|
||||||
|
- actual_completion
|
||||||
|
- actual_delivery
|
||||||
|
- actual_in
|
||||||
|
- 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_fax
|
||||||
|
- agt_faxx
|
||||||
|
- agt_lic_no
|
||||||
|
- agt_ph1
|
||||||
|
- agt_ph1x
|
||||||
|
- agt_ph2
|
||||||
|
- agt_ph2x
|
||||||
|
- agt_st
|
||||||
|
- agt_zip
|
||||||
|
- area_of_damage
|
||||||
|
- asgn_date
|
||||||
|
- asgn_no
|
||||||
|
- asgn_type
|
||||||
|
- cat_no
|
||||||
|
- cieca_stl
|
||||||
|
- cieca_ttl
|
||||||
|
- ciecaid
|
||||||
|
- 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_no
|
||||||
|
- clm_ofc_id
|
||||||
|
- clm_ofc_nm
|
||||||
|
- clm_ph1
|
||||||
|
- clm_ph1x
|
||||||
|
- clm_ph2
|
||||||
|
- clm_ph2x
|
||||||
|
- clm_st
|
||||||
|
- clm_title
|
||||||
|
- clm_total
|
||||||
|
- clm_zip
|
||||||
|
- converted
|
||||||
|
- created_at
|
||||||
|
- csr
|
||||||
|
- cust_pr
|
||||||
|
- date_closed
|
||||||
|
- date_estimated
|
||||||
|
- date_exported
|
||||||
|
- date_invoiced
|
||||||
|
- date_open
|
||||||
|
- date_scheduled
|
||||||
|
- 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_number
|
||||||
|
- est_ph1
|
||||||
|
- est_st
|
||||||
|
- est_zip
|
||||||
|
- federal_tax_payable
|
||||||
|
- federal_tax_rate
|
||||||
|
- g_bett_amt
|
||||||
|
- id
|
||||||
|
- inproduction
|
||||||
|
- 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
|
||||||
|
- invoice_date
|
||||||
|
- job_totals
|
||||||
|
- kmin
|
||||||
|
- kmout
|
||||||
|
- labor_rate_desc
|
||||||
|
- labor_rate_id
|
||||||
|
- local_tax_rate
|
||||||
|
- loss_cat
|
||||||
|
- loss_date
|
||||||
|
- loss_desc
|
||||||
|
- loss_type
|
||||||
|
- 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
|
||||||
|
- production_vars
|
||||||
|
- rate_atp
|
||||||
|
- 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
|
||||||
|
- referral_source
|
||||||
|
- regie_number
|
||||||
|
- ro_number
|
||||||
|
- scheduled_completion
|
||||||
|
- scheduled_delivery
|
||||||
|
- scheduled_in
|
||||||
|
- selling_dealer
|
||||||
|
- selling_dealer_contact
|
||||||
|
- servicing_dealer
|
||||||
|
- servicing_dealer_contact
|
||||||
|
- shopid
|
||||||
|
- special_coverage_policy
|
||||||
|
- state_tax_rate
|
||||||
|
- status
|
||||||
|
- statusid
|
||||||
|
- 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
|
||||||
|
- updated_at
|
||||||
|
- v_color
|
||||||
|
- v_make_desc
|
||||||
|
- v_model_desc
|
||||||
|
- v_model_yr
|
||||||
|
- v_vin
|
||||||
|
- vehicleid
|
||||||
|
localPresets:
|
||||||
|
- key: ""
|
||||||
|
value: ""
|
||||||
|
set: {}
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: jobs
|
||||||
|
schema: public
|
||||||
|
type: create_insert_permission
|
||||||
@@ -0,0 +1,256 @@
|
|||||||
|
- args:
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: jobs
|
||||||
|
schema: public
|
||||||
|
type: drop_insert_permission
|
||||||
|
- args:
|
||||||
|
permission:
|
||||||
|
check:
|
||||||
|
bodyshop:
|
||||||
|
associations:
|
||||||
|
_and:
|
||||||
|
- user:
|
||||||
|
authid:
|
||||||
|
_eq: X-Hasura-User-Id
|
||||||
|
- active:
|
||||||
|
_eq: true
|
||||||
|
columns:
|
||||||
|
- actual_completion
|
||||||
|
- actual_delivery
|
||||||
|
- actual_in
|
||||||
|
- 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_fax
|
||||||
|
- agt_faxx
|
||||||
|
- agt_lic_no
|
||||||
|
- agt_ph1
|
||||||
|
- agt_ph1x
|
||||||
|
- agt_ph2
|
||||||
|
- agt_ph2x
|
||||||
|
- agt_st
|
||||||
|
- agt_zip
|
||||||
|
- area_of_damage
|
||||||
|
- asgn_date
|
||||||
|
- asgn_no
|
||||||
|
- asgn_type
|
||||||
|
- cat_no
|
||||||
|
- cieca_stl
|
||||||
|
- cieca_ttl
|
||||||
|
- ciecaid
|
||||||
|
- 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_no
|
||||||
|
- clm_ofc_id
|
||||||
|
- clm_ofc_nm
|
||||||
|
- clm_ph1
|
||||||
|
- clm_ph1x
|
||||||
|
- clm_ph2
|
||||||
|
- clm_ph2x
|
||||||
|
- clm_st
|
||||||
|
- clm_title
|
||||||
|
- clm_total
|
||||||
|
- clm_zip
|
||||||
|
- converted
|
||||||
|
- created_at
|
||||||
|
- csr
|
||||||
|
- cust_pr
|
||||||
|
- date_closed
|
||||||
|
- date_estimated
|
||||||
|
- date_exported
|
||||||
|
- date_invoiced
|
||||||
|
- date_open
|
||||||
|
- date_scheduled
|
||||||
|
- 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_number
|
||||||
|
- est_ph1
|
||||||
|
- est_st
|
||||||
|
- est_zip
|
||||||
|
- federal_tax_payable
|
||||||
|
- federal_tax_rate
|
||||||
|
- g_bett_amt
|
||||||
|
- id
|
||||||
|
- inproduction
|
||||||
|
- 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
|
||||||
|
- intakechecklist
|
||||||
|
- invoice_date
|
||||||
|
- job_totals
|
||||||
|
- kmin
|
||||||
|
- kmout
|
||||||
|
- labor_rate_desc
|
||||||
|
- labor_rate_id
|
||||||
|
- local_tax_rate
|
||||||
|
- loss_cat
|
||||||
|
- loss_date
|
||||||
|
- loss_desc
|
||||||
|
- loss_type
|
||||||
|
- 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
|
||||||
|
- production_vars
|
||||||
|
- rate_atp
|
||||||
|
- 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
|
||||||
|
- referral_source
|
||||||
|
- regie_number
|
||||||
|
- ro_number
|
||||||
|
- scheduled_completion
|
||||||
|
- scheduled_delivery
|
||||||
|
- scheduled_in
|
||||||
|
- selling_dealer
|
||||||
|
- selling_dealer_contact
|
||||||
|
- servicing_dealer
|
||||||
|
- servicing_dealer_contact
|
||||||
|
- shopid
|
||||||
|
- special_coverage_policy
|
||||||
|
- state_tax_rate
|
||||||
|
- status
|
||||||
|
- statusid
|
||||||
|
- 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
|
||||||
|
- updated_at
|
||||||
|
- v_color
|
||||||
|
- v_make_desc
|
||||||
|
- v_model_desc
|
||||||
|
- v_model_yr
|
||||||
|
- v_vin
|
||||||
|
- vehicleid
|
||||||
|
localPresets:
|
||||||
|
- key: ""
|
||||||
|
value: ""
|
||||||
|
set: {}
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: jobs
|
||||||
|
schema: public
|
||||||
|
type: create_insert_permission
|
||||||
@@ -0,0 +1,253 @@
|
|||||||
|
- args:
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: jobs
|
||||||
|
schema: public
|
||||||
|
type: drop_select_permission
|
||||||
|
- args:
|
||||||
|
permission:
|
||||||
|
allow_aggregations: false
|
||||||
|
columns:
|
||||||
|
- actual_completion
|
||||||
|
- actual_delivery
|
||||||
|
- actual_in
|
||||||
|
- 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_fax
|
||||||
|
- agt_faxx
|
||||||
|
- agt_lic_no
|
||||||
|
- agt_ph1
|
||||||
|
- agt_ph1x
|
||||||
|
- agt_ph2
|
||||||
|
- agt_ph2x
|
||||||
|
- agt_st
|
||||||
|
- agt_zip
|
||||||
|
- area_of_damage
|
||||||
|
- asgn_date
|
||||||
|
- asgn_no
|
||||||
|
- asgn_type
|
||||||
|
- cat_no
|
||||||
|
- cieca_stl
|
||||||
|
- cieca_ttl
|
||||||
|
- ciecaid
|
||||||
|
- 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_no
|
||||||
|
- clm_ofc_id
|
||||||
|
- clm_ofc_nm
|
||||||
|
- clm_ph1
|
||||||
|
- clm_ph1x
|
||||||
|
- clm_ph2
|
||||||
|
- clm_ph2x
|
||||||
|
- clm_st
|
||||||
|
- clm_title
|
||||||
|
- clm_total
|
||||||
|
- clm_zip
|
||||||
|
- converted
|
||||||
|
- created_at
|
||||||
|
- csr
|
||||||
|
- cust_pr
|
||||||
|
- date_closed
|
||||||
|
- date_estimated
|
||||||
|
- date_exported
|
||||||
|
- date_invoiced
|
||||||
|
- date_open
|
||||||
|
- date_scheduled
|
||||||
|
- 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_number
|
||||||
|
- est_ph1
|
||||||
|
- est_st
|
||||||
|
- est_zip
|
||||||
|
- federal_tax_payable
|
||||||
|
- federal_tax_rate
|
||||||
|
- g_bett_amt
|
||||||
|
- id
|
||||||
|
- inproduction
|
||||||
|
- 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
|
||||||
|
- invoice_date
|
||||||
|
- job_totals
|
||||||
|
- kmin
|
||||||
|
- kmout
|
||||||
|
- labor_rate_desc
|
||||||
|
- labor_rate_id
|
||||||
|
- local_tax_rate
|
||||||
|
- loss_cat
|
||||||
|
- loss_date
|
||||||
|
- loss_desc
|
||||||
|
- loss_type
|
||||||
|
- 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
|
||||||
|
- production_vars
|
||||||
|
- rate_atp
|
||||||
|
- 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
|
||||||
|
- referral_source
|
||||||
|
- regie_number
|
||||||
|
- ro_number
|
||||||
|
- scheduled_completion
|
||||||
|
- scheduled_delivery
|
||||||
|
- scheduled_in
|
||||||
|
- selling_dealer
|
||||||
|
- selling_dealer_contact
|
||||||
|
- servicing_dealer
|
||||||
|
- servicing_dealer_contact
|
||||||
|
- shopid
|
||||||
|
- special_coverage_policy
|
||||||
|
- state_tax_rate
|
||||||
|
- status
|
||||||
|
- statusid
|
||||||
|
- 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
|
||||||
|
- updated_at
|
||||||
|
- v_color
|
||||||
|
- v_make_desc
|
||||||
|
- v_model_desc
|
||||||
|
- v_model_yr
|
||||||
|
- v_vin
|
||||||
|
- vehicleid
|
||||||
|
computed_fields: []
|
||||||
|
filter:
|
||||||
|
bodyshop:
|
||||||
|
associations:
|
||||||
|
_and:
|
||||||
|
- user:
|
||||||
|
authid:
|
||||||
|
_eq: X-Hasura-User-Id
|
||||||
|
- active:
|
||||||
|
_eq: true
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: jobs
|
||||||
|
schema: public
|
||||||
|
type: create_select_permission
|
||||||
@@ -0,0 +1,254 @@
|
|||||||
|
- args:
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: jobs
|
||||||
|
schema: public
|
||||||
|
type: drop_select_permission
|
||||||
|
- args:
|
||||||
|
permission:
|
||||||
|
allow_aggregations: false
|
||||||
|
columns:
|
||||||
|
- actual_completion
|
||||||
|
- actual_delivery
|
||||||
|
- actual_in
|
||||||
|
- 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_fax
|
||||||
|
- agt_faxx
|
||||||
|
- agt_lic_no
|
||||||
|
- agt_ph1
|
||||||
|
- agt_ph1x
|
||||||
|
- agt_ph2
|
||||||
|
- agt_ph2x
|
||||||
|
- agt_st
|
||||||
|
- agt_zip
|
||||||
|
- area_of_damage
|
||||||
|
- asgn_date
|
||||||
|
- asgn_no
|
||||||
|
- asgn_type
|
||||||
|
- cat_no
|
||||||
|
- cieca_stl
|
||||||
|
- cieca_ttl
|
||||||
|
- ciecaid
|
||||||
|
- 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_no
|
||||||
|
- clm_ofc_id
|
||||||
|
- clm_ofc_nm
|
||||||
|
- clm_ph1
|
||||||
|
- clm_ph1x
|
||||||
|
- clm_ph2
|
||||||
|
- clm_ph2x
|
||||||
|
- clm_st
|
||||||
|
- clm_title
|
||||||
|
- clm_total
|
||||||
|
- clm_zip
|
||||||
|
- converted
|
||||||
|
- created_at
|
||||||
|
- csr
|
||||||
|
- cust_pr
|
||||||
|
- date_closed
|
||||||
|
- date_estimated
|
||||||
|
- date_exported
|
||||||
|
- date_invoiced
|
||||||
|
- date_open
|
||||||
|
- date_scheduled
|
||||||
|
- 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_number
|
||||||
|
- est_ph1
|
||||||
|
- est_st
|
||||||
|
- est_zip
|
||||||
|
- federal_tax_payable
|
||||||
|
- federal_tax_rate
|
||||||
|
- g_bett_amt
|
||||||
|
- id
|
||||||
|
- inproduction
|
||||||
|
- 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
|
||||||
|
- intakechecklist
|
||||||
|
- invoice_date
|
||||||
|
- job_totals
|
||||||
|
- kmin
|
||||||
|
- kmout
|
||||||
|
- labor_rate_desc
|
||||||
|
- labor_rate_id
|
||||||
|
- local_tax_rate
|
||||||
|
- loss_cat
|
||||||
|
- loss_date
|
||||||
|
- loss_desc
|
||||||
|
- loss_type
|
||||||
|
- 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
|
||||||
|
- production_vars
|
||||||
|
- rate_atp
|
||||||
|
- 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
|
||||||
|
- referral_source
|
||||||
|
- regie_number
|
||||||
|
- ro_number
|
||||||
|
- scheduled_completion
|
||||||
|
- scheduled_delivery
|
||||||
|
- scheduled_in
|
||||||
|
- selling_dealer
|
||||||
|
- selling_dealer_contact
|
||||||
|
- servicing_dealer
|
||||||
|
- servicing_dealer_contact
|
||||||
|
- shopid
|
||||||
|
- special_coverage_policy
|
||||||
|
- state_tax_rate
|
||||||
|
- status
|
||||||
|
- statusid
|
||||||
|
- 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
|
||||||
|
- updated_at
|
||||||
|
- v_color
|
||||||
|
- v_make_desc
|
||||||
|
- v_model_desc
|
||||||
|
- v_model_yr
|
||||||
|
- v_vin
|
||||||
|
- vehicleid
|
||||||
|
computed_fields: []
|
||||||
|
filter:
|
||||||
|
bodyshop:
|
||||||
|
associations:
|
||||||
|
_and:
|
||||||
|
- user:
|
||||||
|
authid:
|
||||||
|
_eq: X-Hasura-User-Id
|
||||||
|
- active:
|
||||||
|
_eq: true
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: jobs
|
||||||
|
schema: public
|
||||||
|
type: create_select_permission
|
||||||
@@ -0,0 +1,255 @@
|
|||||||
|
- args:
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: jobs
|
||||||
|
schema: public
|
||||||
|
type: drop_update_permission
|
||||||
|
- args:
|
||||||
|
permission:
|
||||||
|
columns:
|
||||||
|
- actual_completion
|
||||||
|
- actual_delivery
|
||||||
|
- actual_in
|
||||||
|
- 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_fax
|
||||||
|
- agt_faxx
|
||||||
|
- agt_lic_no
|
||||||
|
- agt_ph1
|
||||||
|
- agt_ph1x
|
||||||
|
- agt_ph2
|
||||||
|
- agt_ph2x
|
||||||
|
- agt_st
|
||||||
|
- agt_zip
|
||||||
|
- area_of_damage
|
||||||
|
- asgn_date
|
||||||
|
- asgn_no
|
||||||
|
- asgn_type
|
||||||
|
- cat_no
|
||||||
|
- cieca_stl
|
||||||
|
- cieca_ttl
|
||||||
|
- ciecaid
|
||||||
|
- 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_no
|
||||||
|
- clm_ofc_id
|
||||||
|
- clm_ofc_nm
|
||||||
|
- clm_ph1
|
||||||
|
- clm_ph1x
|
||||||
|
- clm_ph2
|
||||||
|
- clm_ph2x
|
||||||
|
- clm_st
|
||||||
|
- clm_title
|
||||||
|
- clm_total
|
||||||
|
- clm_zip
|
||||||
|
- converted
|
||||||
|
- created_at
|
||||||
|
- csr
|
||||||
|
- cust_pr
|
||||||
|
- date_closed
|
||||||
|
- date_estimated
|
||||||
|
- date_exported
|
||||||
|
- date_invoiced
|
||||||
|
- date_open
|
||||||
|
- date_scheduled
|
||||||
|
- 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_number
|
||||||
|
- est_ph1
|
||||||
|
- est_st
|
||||||
|
- est_zip
|
||||||
|
- federal_tax_payable
|
||||||
|
- federal_tax_rate
|
||||||
|
- g_bett_amt
|
||||||
|
- id
|
||||||
|
- inproduction
|
||||||
|
- 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
|
||||||
|
- invoice_date
|
||||||
|
- job_totals
|
||||||
|
- kmin
|
||||||
|
- kmout
|
||||||
|
- labor_rate_desc
|
||||||
|
- labor_rate_id
|
||||||
|
- local_tax_rate
|
||||||
|
- loss_cat
|
||||||
|
- loss_date
|
||||||
|
- loss_desc
|
||||||
|
- loss_type
|
||||||
|
- 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
|
||||||
|
- production_vars
|
||||||
|
- rate_atp
|
||||||
|
- 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
|
||||||
|
- referral_source
|
||||||
|
- regie_number
|
||||||
|
- ro_number
|
||||||
|
- scheduled_completion
|
||||||
|
- scheduled_delivery
|
||||||
|
- scheduled_in
|
||||||
|
- selling_dealer
|
||||||
|
- selling_dealer_contact
|
||||||
|
- servicing_dealer
|
||||||
|
- servicing_dealer_contact
|
||||||
|
- shopid
|
||||||
|
- special_coverage_policy
|
||||||
|
- state_tax_rate
|
||||||
|
- status
|
||||||
|
- statusid
|
||||||
|
- 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
|
||||||
|
- updated_at
|
||||||
|
- v_color
|
||||||
|
- v_make_desc
|
||||||
|
- v_model_desc
|
||||||
|
- v_model_yr
|
||||||
|
- v_vin
|
||||||
|
- vehicleid
|
||||||
|
filter:
|
||||||
|
bodyshop:
|
||||||
|
associations:
|
||||||
|
_and:
|
||||||
|
- user:
|
||||||
|
authid:
|
||||||
|
_eq: X-Hasura-User-Id
|
||||||
|
- active:
|
||||||
|
_eq: true
|
||||||
|
localPresets:
|
||||||
|
- key: ""
|
||||||
|
value: ""
|
||||||
|
set: {}
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: jobs
|
||||||
|
schema: public
|
||||||
|
type: create_update_permission
|
||||||
@@ -0,0 +1,256 @@
|
|||||||
|
- args:
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: jobs
|
||||||
|
schema: public
|
||||||
|
type: drop_update_permission
|
||||||
|
- args:
|
||||||
|
permission:
|
||||||
|
columns:
|
||||||
|
- actual_completion
|
||||||
|
- actual_delivery
|
||||||
|
- actual_in
|
||||||
|
- 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_fax
|
||||||
|
- agt_faxx
|
||||||
|
- agt_lic_no
|
||||||
|
- agt_ph1
|
||||||
|
- agt_ph1x
|
||||||
|
- agt_ph2
|
||||||
|
- agt_ph2x
|
||||||
|
- agt_st
|
||||||
|
- agt_zip
|
||||||
|
- area_of_damage
|
||||||
|
- asgn_date
|
||||||
|
- asgn_no
|
||||||
|
- asgn_type
|
||||||
|
- cat_no
|
||||||
|
- cieca_stl
|
||||||
|
- cieca_ttl
|
||||||
|
- ciecaid
|
||||||
|
- 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_no
|
||||||
|
- clm_ofc_id
|
||||||
|
- clm_ofc_nm
|
||||||
|
- clm_ph1
|
||||||
|
- clm_ph1x
|
||||||
|
- clm_ph2
|
||||||
|
- clm_ph2x
|
||||||
|
- clm_st
|
||||||
|
- clm_title
|
||||||
|
- clm_total
|
||||||
|
- clm_zip
|
||||||
|
- converted
|
||||||
|
- created_at
|
||||||
|
- csr
|
||||||
|
- cust_pr
|
||||||
|
- date_closed
|
||||||
|
- date_estimated
|
||||||
|
- date_exported
|
||||||
|
- date_invoiced
|
||||||
|
- date_open
|
||||||
|
- date_scheduled
|
||||||
|
- 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_number
|
||||||
|
- est_ph1
|
||||||
|
- est_st
|
||||||
|
- est_zip
|
||||||
|
- federal_tax_payable
|
||||||
|
- federal_tax_rate
|
||||||
|
- g_bett_amt
|
||||||
|
- id
|
||||||
|
- inproduction
|
||||||
|
- 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
|
||||||
|
- intakechecklist
|
||||||
|
- invoice_date
|
||||||
|
- job_totals
|
||||||
|
- kmin
|
||||||
|
- kmout
|
||||||
|
- labor_rate_desc
|
||||||
|
- labor_rate_id
|
||||||
|
- local_tax_rate
|
||||||
|
- loss_cat
|
||||||
|
- loss_date
|
||||||
|
- loss_desc
|
||||||
|
- loss_type
|
||||||
|
- 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
|
||||||
|
- production_vars
|
||||||
|
- rate_atp
|
||||||
|
- 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
|
||||||
|
- referral_source
|
||||||
|
- regie_number
|
||||||
|
- ro_number
|
||||||
|
- scheduled_completion
|
||||||
|
- scheduled_delivery
|
||||||
|
- scheduled_in
|
||||||
|
- selling_dealer
|
||||||
|
- selling_dealer_contact
|
||||||
|
- servicing_dealer
|
||||||
|
- servicing_dealer_contact
|
||||||
|
- shopid
|
||||||
|
- special_coverage_policy
|
||||||
|
- state_tax_rate
|
||||||
|
- status
|
||||||
|
- statusid
|
||||||
|
- 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
|
||||||
|
- updated_at
|
||||||
|
- v_color
|
||||||
|
- v_make_desc
|
||||||
|
- v_model_desc
|
||||||
|
- v_model_yr
|
||||||
|
- v_vin
|
||||||
|
- vehicleid
|
||||||
|
filter:
|
||||||
|
bodyshop:
|
||||||
|
associations:
|
||||||
|
_and:
|
||||||
|
- user:
|
||||||
|
authid:
|
||||||
|
_eq: X-Hasura-User-Id
|
||||||
|
- active:
|
||||||
|
_eq: true
|
||||||
|
localPresets:
|
||||||
|
- key: ""
|
||||||
|
value: ""
|
||||||
|
set: {}
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: jobs
|
||||||
|
schema: public
|
||||||
|
type: create_update_permission
|
||||||
@@ -440,6 +440,7 @@ tables:
|
|||||||
- id
|
- id
|
||||||
- inhousevendorid
|
- inhousevendorid
|
||||||
- insurance_vendor_id
|
- insurance_vendor_id
|
||||||
|
- intakechecklist
|
||||||
- invoice_tax_rates
|
- invoice_tax_rates
|
||||||
- logo_img_path
|
- logo_img_path
|
||||||
- md_order_statuses
|
- md_order_statuses
|
||||||
@@ -477,6 +478,7 @@ tables:
|
|||||||
- id
|
- id
|
||||||
- inhousevendorid
|
- inhousevendorid
|
||||||
- insurance_vendor_id
|
- insurance_vendor_id
|
||||||
|
- intakechecklist
|
||||||
- invoice_tax_rates
|
- invoice_tax_rates
|
||||||
- logo_img_path
|
- logo_img_path
|
||||||
- md_order_statuses
|
- md_order_statuses
|
||||||
@@ -1802,6 +1804,7 @@ tables:
|
|||||||
- insd_st
|
- insd_st
|
||||||
- insd_title
|
- insd_title
|
||||||
- insd_zip
|
- insd_zip
|
||||||
|
- intakechecklist
|
||||||
- invoice_date
|
- invoice_date
|
||||||
- job_totals
|
- job_totals
|
||||||
- kmin
|
- kmin
|
||||||
@@ -2034,6 +2037,7 @@ tables:
|
|||||||
- insd_st
|
- insd_st
|
||||||
- insd_title
|
- insd_title
|
||||||
- insd_zip
|
- insd_zip
|
||||||
|
- intakechecklist
|
||||||
- invoice_date
|
- invoice_date
|
||||||
- job_totals
|
- job_totals
|
||||||
- kmin
|
- kmin
|
||||||
@@ -2275,6 +2279,7 @@ tables:
|
|||||||
- insd_st
|
- insd_st
|
||||||
- insd_title
|
- insd_title
|
||||||
- insd_zip
|
- insd_zip
|
||||||
|
- intakechecklist
|
||||||
- invoice_date
|
- invoice_date
|
||||||
- job_totals
|
- job_totals
|
||||||
- kmin
|
- kmin
|
||||||
|
|||||||
Reference in New Issue
Block a user