@@ -15410,6 +15410,27 @@
|
|||||||
</translation>
|
</translation>
|
||||||
</translations>
|
</translations>
|
||||||
</concept_node>
|
</concept_node>
|
||||||
|
<concept_node>
|
||||||
|
<name>driveable</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>employee_body</name>
|
<name>employee_body</name>
|
||||||
<definition_loaded>false</definition_loaded>
|
<definition_loaded>false</definition_loaded>
|
||||||
@@ -18029,6 +18050,27 @@
|
|||||||
</translation>
|
</translation>
|
||||||
</translations>
|
</translations>
|
||||||
</concept_node>
|
</concept_node>
|
||||||
|
<concept_node>
|
||||||
|
<name>towin</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>towing_payable</name>
|
<name>towing_payable</name>
|
||||||
<definition_loaded>false</definition_loaded>
|
<definition_loaded>false</definition_loaded>
|
||||||
@@ -22505,6 +22547,32 @@
|
|||||||
</concept_node>
|
</concept_node>
|
||||||
</children>
|
</children>
|
||||||
</folder_node>
|
</folder_node>
|
||||||
|
<folder_node>
|
||||||
|
<name>errors</name>
|
||||||
|
<children>
|
||||||
|
<concept_node>
|
||||||
|
<name>invalidphone</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>
|
<folder_node>
|
||||||
<name>labels</name>
|
<name>labels</name>
|
||||||
<children>
|
<children>
|
||||||
@@ -25377,6 +25445,27 @@
|
|||||||
</translation>
|
</translation>
|
||||||
</translations>
|
</translations>
|
||||||
</concept_node>
|
</concept_node>
|
||||||
|
<concept_node>
|
||||||
|
<name>estimate</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>estimate_detail</name>
|
<name>estimate_detail</name>
|
||||||
<definition_loaded>false</definition_loaded>
|
<definition_loaded>false</definition_loaded>
|
||||||
@@ -25440,6 +25529,27 @@
|
|||||||
</translation>
|
</translation>
|
||||||
</translations>
|
</translations>
|
||||||
</concept_node>
|
</concept_node>
|
||||||
|
<concept_node>
|
||||||
|
<name>glass_express_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>
|
<concept_node>
|
||||||
<name>invoice_customer_payable</name>
|
<name>invoice_customer_payable</name>
|
||||||
<definition_loaded>false</definition_loaded>
|
<definition_loaded>false</definition_loaded>
|
||||||
@@ -25503,6 +25613,27 @@
|
|||||||
</translation>
|
</translation>
|
||||||
</translations>
|
</translations>
|
||||||
</concept_node>
|
</concept_node>
|
||||||
|
<concept_node>
|
||||||
|
<name>parts_list</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>parts_order</name>
|
<name>parts_order</name>
|
||||||
<definition_loaded>false</definition_loaded>
|
<definition_loaded>false</definition_loaded>
|
||||||
|
|||||||
1830
client/package-lock.json
generated
1830
client/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -33,7 +33,7 @@
|
|||||||
"prop-types": "^15.7.2",
|
"prop-types": "^15.7.2",
|
||||||
"query-string": "^6.14.0",
|
"query-string": "^6.14.0",
|
||||||
"react": "^17.0.1",
|
"react": "^17.0.1",
|
||||||
"react-big-calendar": "^0.30.0",
|
"react-big-calendar": "^0.32.0",
|
||||||
"react-color": "^2.19.3",
|
"react-color": "^2.19.3",
|
||||||
"react-dom": "^17.0.1",
|
"react-dom": "^17.0.1",
|
||||||
"react-drag-listview": "^0.1.8",
|
"react-drag-listview": "^0.1.8",
|
||||||
@@ -41,7 +41,6 @@
|
|||||||
"react-i18next": "^11.8.7",
|
"react-i18next": "^11.8.7",
|
||||||
"react-icons": "^4.2.0",
|
"react-icons": "^4.2.0",
|
||||||
"react-number-format": "^4.4.4",
|
"react-number-format": "^4.4.4",
|
||||||
"react-phone-input-2": "^2.13.9",
|
|
||||||
"react-redux": "^7.2.2",
|
"react-redux": "^7.2.2",
|
||||||
"react-resizable": "^1.11.0",
|
"react-resizable": "^1.11.0",
|
||||||
"react-router-dom": "^5.2.0",
|
"react-router-dom": "^5.2.0",
|
||||||
|
|||||||
@@ -1,17 +1,33 @@
|
|||||||
import { MessageFilled } from "@ant-design/icons";
|
import { MessageFilled } from "@ant-design/icons";
|
||||||
|
import { notification } from "antd";
|
||||||
|
import parsePhoneNumber from "libphonenumber-js";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
|
import { useTranslation } from "react-i18next";
|
||||||
import { connect } from "react-redux";
|
import { connect } from "react-redux";
|
||||||
import { openChatByPhone } from "../../redux/messaging/messaging.actions";
|
import { openChatByPhone } from "../../redux/messaging/messaging.actions";
|
||||||
|
|
||||||
const mapDispatchToProps = (dispatch) => ({
|
const mapDispatchToProps = (dispatch) => ({
|
||||||
openChatByPhone: (phone) => dispatch(openChatByPhone(phone)),
|
openChatByPhone: (phone) => dispatch(openChatByPhone(phone)),
|
||||||
});
|
});
|
||||||
|
|
||||||
export function ChatOpenButton({ phone, jobid, openChatByPhone }) {
|
export function ChatOpenButton({ phone, jobid, openChatByPhone }) {
|
||||||
|
const { t } = useTranslation();
|
||||||
return (
|
return (
|
||||||
<MessageFilled
|
<MessageFilled
|
||||||
style={{ margin: 4 }}
|
style={{ margin: 4 }}
|
||||||
onClick={(e) => {
|
onClick={(e) => {
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
openChatByPhone({ phone_num: phone, jobid: jobid });
|
const p = parsePhoneNumber(phone, "CA");
|
||||||
|
console.log(
|
||||||
|
"🚀 ~ file: chat-open-button.component.jsx ~ line 21 ~ p",
|
||||||
|
p
|
||||||
|
);
|
||||||
|
|
||||||
|
if (p && p.isValid()) {
|
||||||
|
openChatByPhone({ phone_num: p.formatInternational(), jobid: jobid });
|
||||||
|
} else {
|
||||||
|
notification["error"]({ message: t("messaging.error.invalidphone") });
|
||||||
|
}
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,16 +1,62 @@
|
|||||||
import { InputNumber } from "antd";
|
import { InputNumber } from "antd";
|
||||||
import React, { forwardRef } from "react";
|
import React from "react";
|
||||||
function FormItemCurrency(props, ref) {
|
|
||||||
|
// const locale = "en-us";
|
||||||
|
// const currencyFormatter = (value) => {
|
||||||
|
// return new Intl.NumberFormat(locale, {
|
||||||
|
// style: "currency",
|
||||||
|
// currency: "CAD",
|
||||||
|
// }).format(value);
|
||||||
|
// };
|
||||||
|
|
||||||
|
// const currencyParser = (val) => {
|
||||||
|
// try {
|
||||||
|
// // for when the input gets clears
|
||||||
|
// if (typeof val === "string" && !val.length) {
|
||||||
|
// val = "0.0";
|
||||||
|
// }
|
||||||
|
|
||||||
|
// // detecting and parsing between comma and dot
|
||||||
|
// var group = new Intl.NumberFormat(locale).format(1111).replace(/1/g, "");
|
||||||
|
// var decimal = new Intl.NumberFormat(locale).format(1.1).replace(/1/g, "");
|
||||||
|
// var reversedVal = val.replace(new RegExp("\\" + group, "g"), "");
|
||||||
|
// reversedVal = reversedVal.replace(new RegExp("\\" + decimal, "g"), ".");
|
||||||
|
// // => 1232.21 €
|
||||||
|
|
||||||
|
// // removing everything except the digits and dot
|
||||||
|
// reversedVal = reversedVal.replace(/[^0-9.]/g, "");
|
||||||
|
// // => 1232.21
|
||||||
|
|
||||||
|
// // appending digits properly
|
||||||
|
// const digitsAfterDecimalCount = (reversedVal.split(".")[1] || []).length;
|
||||||
|
// const needsDigitsAppended = digitsAfterDecimalCount > 2;
|
||||||
|
|
||||||
|
// if (needsDigitsAppended) {
|
||||||
|
// reversedVal = reversedVal * Math.pow(10, digitsAfterDecimalCount - 2);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// return Number.isNaN(reversedVal) ? 0 : reversedVal;
|
||||||
|
// } catch (error) {
|
||||||
|
// console.error(error);
|
||||||
|
// }
|
||||||
|
// };
|
||||||
|
|
||||||
|
export default function FormItemCurrency(props) {
|
||||||
return (
|
return (
|
||||||
<InputNumber
|
<InputNumber
|
||||||
{...props}
|
{...props}
|
||||||
ref={ref}
|
precision={2}
|
||||||
style={{ width: "initial" }}
|
// formatter={currencyFormatter}
|
||||||
|
// parser={currencyParser}
|
||||||
|
// formatter={(value) =>
|
||||||
|
// "$" +
|
||||||
|
// parseFloat(value)
|
||||||
|
// .toFixed(2)
|
||||||
|
// .replace(/(\d)(?=(\d{3})+\.)/g, "$1,")
|
||||||
|
// }
|
||||||
|
// parser={(value) => value.replace(/\$\s?|(,*)/g, "")}
|
||||||
// formatter={(value) => `$ ${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ",")}
|
// formatter={(value) => `$ ${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ",")}
|
||||||
// parser={(value) => value.replace(/\$\s?|(,*)/g, "")}
|
// parser={(value) => value.replace(/\$\s?|(,*)/g, "")}
|
||||||
precision={2}
|
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export default forwardRef(FormItemCurrency);
|
|
||||||
|
|||||||
@@ -1,17 +1,13 @@
|
|||||||
|
import { Input } from "antd";
|
||||||
import i18n from "i18next";
|
import i18n from "i18next";
|
||||||
import parsePhoneNumber from "libphonenumber-js";
|
import parsePhoneNumber from "libphonenumber-js";
|
||||||
import React, { forwardRef } from "react";
|
import React, { forwardRef } from "react";
|
||||||
import PhoneInput from "react-phone-input-2";
|
|
||||||
import "react-phone-input-2/lib/high-res.css";
|
|
||||||
import "./phone-form-item.styles.scss";
|
import "./phone-form-item.styles.scss";
|
||||||
|
|
||||||
function FormItemPhone(props, ref) {
|
function FormItemPhone(props, ref) {
|
||||||
return (
|
return (
|
||||||
<PhoneInput
|
<Input
|
||||||
country="ca"
|
// country="ca" ref={ref} className="ant-input"
|
||||||
onlyCountries={["ca", "us"]}
|
|
||||||
ref={ref}
|
|
||||||
className="ant-input"
|
|
||||||
{...props}
|
{...props}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
@@ -21,30 +17,15 @@ export default forwardRef(FormItemPhone);
|
|||||||
|
|
||||||
export const PhoneItemFormatterValidation = (getFieldValue, name) => ({
|
export const PhoneItemFormatterValidation = (getFieldValue, name) => ({
|
||||||
async validator(rule, value) {
|
async validator(rule, value) {
|
||||||
if (!getFieldValue(name)) {
|
if (!value) {
|
||||||
return Promise.resolve();
|
return Promise.resolve();
|
||||||
} else {
|
} else {
|
||||||
const p = parsePhoneNumber(getFieldValue(name), "CA");
|
const p = parsePhoneNumber(value, "CA");
|
||||||
|
if (p.isValid()) {
|
||||||
if (p) {
|
|
||||||
return Promise.resolve();
|
return Promise.resolve();
|
||||||
} else {
|
} else {
|
||||||
return Promise.reject(i18n.t("general.validation.invalidphone"));
|
return Promise.reject(i18n.t("general.validation.invalidphone"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// PhoneInput({
|
|
||||||
// value: getFieldValue(name),
|
|
||||||
// isValid: async (value, country) => {
|
|
||||||
// console.log("value", value);
|
|
||||||
// if (value.match(/12345/)) {
|
|
||||||
|
|
||||||
// } else if (value.match(/1234/)) {
|
|
||||||
// return false;
|
|
||||||
// } else {
|
|
||||||
// return Promise.resolve();
|
|
||||||
// }
|
|
||||||
// },
|
|
||||||
// });
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { Button, Form, notification, Popover, Select } from "antd";
|
|
||||||
import React, { useState } from "react";
|
|
||||||
import { useMutation } from "@apollo/client";
|
import { useMutation } from "@apollo/client";
|
||||||
|
import { Button, Form, notification, Popover, Select, Switch } from "antd";
|
||||||
|
import React, { useState } from "react";
|
||||||
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 { createStructuredSelector } from "reselect";
|
||||||
@@ -38,7 +38,11 @@ export function JobsConvertButton({ bodyshop, job, refetch, jobRO }) {
|
|||||||
|
|
||||||
const popMenu = (
|
const popMenu = (
|
||||||
<div>
|
<div>
|
||||||
<Form layout="vertical" onFinish={handleConvert}>
|
<Form
|
||||||
|
layout="vertical"
|
||||||
|
onFinish={handleConvert}
|
||||||
|
initialValues={{ driveable: true, towin: false }}
|
||||||
|
>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
name={["ins_co_nm"]}
|
name={["ins_co_nm"]}
|
||||||
label={t("jobs.fields.ins_co_nm")}
|
label={t("jobs.fields.ins_co_nm")}
|
||||||
@@ -75,6 +79,27 @@ export function JobsConvertButton({ bodyshop, job, refetch, jobRO }) {
|
|||||||
))}
|
))}
|
||||||
</Select>
|
</Select>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
|
<Form.Item
|
||||||
|
label={t("jobs.fields.ca_gst_registrant")}
|
||||||
|
name="ca_gst_registrant"
|
||||||
|
valuePropName="checked"
|
||||||
|
>
|
||||||
|
<Switch />
|
||||||
|
</Form.Item>
|
||||||
|
<Form.Item
|
||||||
|
label={t("jobs.fields.driveable")}
|
||||||
|
name="driveable"
|
||||||
|
valuePropName="checked"
|
||||||
|
>
|
||||||
|
<Switch />
|
||||||
|
</Form.Item>
|
||||||
|
<Form.Item
|
||||||
|
label={t("jobs.fields.towin")}
|
||||||
|
name="towin"
|
||||||
|
valuePropName="checked"
|
||||||
|
>
|
||||||
|
<Switch />
|
||||||
|
</Form.Item>
|
||||||
<Button type="danger" htmlType="submit">
|
<Button type="danger" htmlType="submit">
|
||||||
{t("jobs.actions.convert")}
|
{t("jobs.actions.convert")}
|
||||||
</Button>
|
</Button>
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ export function JobsCreateJobsInfo({ bodyshop, form, selected }) {
|
|||||||
PhoneItemFormatterValidation(getFieldValue, "ins_ph1"),
|
PhoneItemFormatterValidation(getFieldValue, "ins_ph1"),
|
||||||
]}
|
]}
|
||||||
>
|
>
|
||||||
<FormItemPhone customInput={Input} />
|
<FormItemPhone />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
label={t("jobs.fields.ins_ea")}
|
label={t("jobs.fields.ins_ea")}
|
||||||
|
|||||||
@@ -144,7 +144,7 @@ export default function JobsCreateOwnerInfoNewComponent() {
|
|||||||
),
|
),
|
||||||
]}
|
]}
|
||||||
>
|
>
|
||||||
<FormItemPhone customInput={Input} disabled={!state.owner.new} />
|
<FormItemPhone disabled={!state.owner.new} />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</LayoutFormRow>
|
</LayoutFormRow>
|
||||||
<LayoutFormRow grow>
|
<LayoutFormRow grow>
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ export function JobsDetailGeneral({ bodyshop, jobRO, job, form }) {
|
|||||||
PhoneItemFormatterValidation(getFieldValue, "ins_ph1"),
|
PhoneItemFormatterValidation(getFieldValue, "ins_ph1"),
|
||||||
]}
|
]}
|
||||||
>
|
>
|
||||||
<FormItemPhone customInput={Input} disabled={jobRO} />
|
<FormItemPhone disabled={jobRO} />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
label={t("jobs.fields.ins_ea")}
|
label={t("jobs.fields.ins_ea")}
|
||||||
@@ -140,6 +140,20 @@ export function JobsDetailGeneral({ bodyshop, jobRO, job, form }) {
|
|||||||
>
|
>
|
||||||
<Input disabled={jobRO} />
|
<Input disabled={jobRO} />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
|
<Form.Item
|
||||||
|
label={t("jobs.fields.driveable")}
|
||||||
|
name="driveable"
|
||||||
|
valuePropName="checked"
|
||||||
|
>
|
||||||
|
<Switch disabled={jobRO} />
|
||||||
|
</Form.Item>
|
||||||
|
<Form.Item
|
||||||
|
label={t("jobs.fields.towin")}
|
||||||
|
name="towin"
|
||||||
|
valuePropName="checked"
|
||||||
|
>
|
||||||
|
<Switch disabled={jobRO} />
|
||||||
|
</Form.Item>
|
||||||
</FormRow>
|
</FormRow>
|
||||||
</Col>
|
</Col>
|
||||||
<Col {...lossColDamage}>
|
<Col {...lossColDamage}>
|
||||||
|
|||||||
@@ -128,7 +128,7 @@ export default function OwnerDetailFormComponent({ form, loading }) {
|
|||||||
PhoneItemFormatterValidation(getFieldValue, "ownr_ph1"),
|
PhoneItemFormatterValidation(getFieldValue, "ownr_ph1"),
|
||||||
]}
|
]}
|
||||||
>
|
>
|
||||||
<FormItemPhone customInput={Input} />
|
<FormItemPhone />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
label={t("owners.fields.preferred_contact")}
|
label={t("owners.fields.preferred_contact")}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { useMutation } from "@apollo/client";
|
import { useMutation } from "@apollo/client";
|
||||||
import { Button, notification, Popover } from "antd";
|
import { Button, Form, notification, Popover } from "antd";
|
||||||
import React, { useState } from "react";
|
import React, { useState } from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import { connect } from "react-redux";
|
import { connect } from "react-redux";
|
||||||
@@ -21,15 +21,15 @@ export function PartsOrderLineBackorderButton({
|
|||||||
bodyshop,
|
bodyshop,
|
||||||
}) {
|
}) {
|
||||||
const [visibility, setVisibility] = useState(false);
|
const [visibility, setVisibility] = useState(false);
|
||||||
const [eta, setEta] = useState(null);
|
|
||||||
const [loading, setLoading] = useState(false);
|
const [loading, setLoading] = useState(false);
|
||||||
const [backorderLine] = useMutation(MUTATION_BACKORDER_PART_LINE);
|
const [backorderLine] = useMutation(MUTATION_BACKORDER_PART_LINE);
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
const [form] = Form.useForm();
|
||||||
|
|
||||||
const isAlreadyBackordered =
|
const isAlreadyBackordered =
|
||||||
bodyshop.md_order_statuses.default_bo === partsOrderStatus;
|
bodyshop.md_order_statuses.default_bo === partsOrderStatus;
|
||||||
|
|
||||||
const handleSave = async () => {
|
const handleFinish = async (values) => {
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
logImEXEvent("job_parts_backorder");
|
logImEXEvent("job_parts_backorder");
|
||||||
|
|
||||||
@@ -40,7 +40,7 @@ export function PartsOrderLineBackorderButton({
|
|||||||
};
|
};
|
||||||
if (!isAlreadyBackordered) {
|
if (!isAlreadyBackordered) {
|
||||||
partsOrder.backordered_on = new Date();
|
partsOrder.backordered_on = new Date();
|
||||||
partsOrder.backordered_eta = eta;
|
partsOrder.backordered_eta = values.eta;
|
||||||
}
|
}
|
||||||
|
|
||||||
const result = await backorderLine({
|
const result = await backorderLine({
|
||||||
@@ -59,14 +59,14 @@ export function PartsOrderLineBackorderButton({
|
|||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
setEta(null);
|
|
||||||
setVisibility(false);
|
setVisibility(false);
|
||||||
setLoading(false);
|
setLoading(false);
|
||||||
};
|
};
|
||||||
|
|
||||||
const handlePopover = (e) => {
|
const handlePopover = (e) => {
|
||||||
if (isAlreadyBackordered) {
|
if (isAlreadyBackordered) {
|
||||||
handleSave();
|
handleFinish();
|
||||||
//Receive the part.
|
//Receive the part.
|
||||||
} else {
|
} else {
|
||||||
//Show the date selector to back order the part.
|
//Show the date selector to back order the part.
|
||||||
@@ -76,11 +76,15 @@ export function PartsOrderLineBackorderButton({
|
|||||||
|
|
||||||
const popContent = (
|
const popContent = (
|
||||||
<div>
|
<div>
|
||||||
<FormDatePicker onChange={(e) => setEta(e)} />
|
<Form form={form} onFinish={handleFinish}>
|
||||||
<Button type="primary" disabled={eta === null} onClick={handleSave}>
|
<Form.Item name="eta">
|
||||||
{t("parts_orders.actions.backordered")}
|
<FormDatePicker />
|
||||||
</Button>
|
</Form.Item>
|
||||||
<Button onClick={() => setVisibility(false)}>Close</Button>
|
<Button type="primary" onClick={() => form.submit()}>
|
||||||
|
{t("parts_orders.actions.backordered")}
|
||||||
|
</Button>
|
||||||
|
<Button onClick={() => setVisibility(false)}>Close</Button>
|
||||||
|
</Form>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -350,6 +350,8 @@ export const GET_JOB_BY_PK = gql`
|
|||||||
v_make_desc
|
v_make_desc
|
||||||
v_color
|
v_color
|
||||||
vehicleid
|
vehicleid
|
||||||
|
driveable
|
||||||
|
towin
|
||||||
vehicle {
|
vehicle {
|
||||||
id
|
id
|
||||||
plate_no
|
plate_no
|
||||||
@@ -735,10 +737,20 @@ export const CONVERT_JOB_TO_RO = gql`
|
|||||||
$jobId: uuid!
|
$jobId: uuid!
|
||||||
$class: String
|
$class: String
|
||||||
$ins_co_nm: String!
|
$ins_co_nm: String!
|
||||||
|
$ca_gst_registrant: Boolean
|
||||||
|
$driveable: Boolean
|
||||||
|
$towin: Boolean
|
||||||
) {
|
) {
|
||||||
update_jobs(
|
update_jobs(
|
||||||
where: { id: { _eq: $jobId } }
|
where: { id: { _eq: $jobId } }
|
||||||
_set: { converted: true, ins_co_nm: $ins_co_nm, class: $class }
|
_set: {
|
||||||
|
converted: true
|
||||||
|
ins_co_nm: $ins_co_nm
|
||||||
|
class: $class
|
||||||
|
ca_gst_registrant: $ca_gst_registrant
|
||||||
|
towin: $towin
|
||||||
|
driveable: $driveable
|
||||||
|
}
|
||||||
) {
|
) {
|
||||||
returning {
|
returning {
|
||||||
id
|
id
|
||||||
@@ -1092,6 +1104,8 @@ export const QUERY_ALL_JOB_FIELDS = gql`
|
|||||||
employee_body
|
employee_body
|
||||||
employee_refinish
|
employee_refinish
|
||||||
employee_prep
|
employee_prep
|
||||||
|
driveable
|
||||||
|
towin
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
|
|||||||
@@ -969,6 +969,7 @@
|
|||||||
"ded_amt": "Deductible",
|
"ded_amt": "Deductible",
|
||||||
"ded_status": "Deductible Status",
|
"ded_status": "Deductible Status",
|
||||||
"depreciation_taxes": "Depreciation/Taxes",
|
"depreciation_taxes": "Depreciation/Taxes",
|
||||||
|
"driveable": "Driveable",
|
||||||
"employee_body": "Body",
|
"employee_body": "Body",
|
||||||
"employee_prep": "Prep",
|
"employee_prep": "Prep",
|
||||||
"employee_refinish": "Refinish",
|
"employee_refinish": "Refinish",
|
||||||
@@ -1099,6 +1100,7 @@
|
|||||||
"tax_str_rt": "Storage Tax Rate",
|
"tax_str_rt": "Storage Tax Rate",
|
||||||
"tax_sub_rt": "Sublet Tax Rate",
|
"tax_sub_rt": "Sublet Tax Rate",
|
||||||
"tax_tow_rt": "Towing Tax Rate",
|
"tax_tow_rt": "Towing Tax Rate",
|
||||||
|
"towin": "Tow In",
|
||||||
"towing_payable": "Towing Payable",
|
"towing_payable": "Towing Payable",
|
||||||
"unitnumber": "Unit #",
|
"unitnumber": "Unit #",
|
||||||
"updated_at": "Updated At",
|
"updated_at": "Updated At",
|
||||||
@@ -1343,6 +1345,9 @@
|
|||||||
"link": "Link to Job",
|
"link": "Link to Job",
|
||||||
"new": "New Conversation"
|
"new": "New Conversation"
|
||||||
},
|
},
|
||||||
|
"errors": {
|
||||||
|
"invalidphone": "The phone number is invalid. Unable to open conversation. "
|
||||||
|
},
|
||||||
"labels": {
|
"labels": {
|
||||||
"maxtenimages": "You can only select up to a maximum of 10 images at a time.",
|
"maxtenimages": "You can only select up to a maximum of 10 images at a time.",
|
||||||
"messaging": "Messaging",
|
"messaging": "Messaging",
|
||||||
@@ -1537,12 +1542,15 @@
|
|||||||
"appointment_reminder": "Appointment Reminder",
|
"appointment_reminder": "Appointment Reminder",
|
||||||
"casl_authorization": "CASL Authorization",
|
"casl_authorization": "CASL Authorization",
|
||||||
"diagnostic_authorization": "Diagnostic Authorization",
|
"diagnostic_authorization": "Diagnostic Authorization",
|
||||||
|
"estimate": "Estimate Only",
|
||||||
"estimate_detail": "Estimate Details",
|
"estimate_detail": "Estimate Details",
|
||||||
"final_invoice": "Final Invoice",
|
"final_invoice": "Final Invoice",
|
||||||
"fippa_authorization": "FIPPA Authorization",
|
"fippa_authorization": "FIPPA Authorization",
|
||||||
|
"glass_express_checklist": "Glass Express Checklist",
|
||||||
"invoice_customer_payable": "Invoice (Customer Payable)",
|
"invoice_customer_payable": "Invoice (Customer Payable)",
|
||||||
"invoice_total_payable": "Invoice (Total Payable)",
|
"invoice_total_payable": "Invoice (Total Payable)",
|
||||||
"job_notes": "Job Notes",
|
"job_notes": "Job Notes",
|
||||||
|
"parts_list": "Parts List",
|
||||||
"parts_order": "Parts Order Confirmation",
|
"parts_order": "Parts Order Confirmation",
|
||||||
"parts_order_confirmation": "",
|
"parts_order_confirmation": "",
|
||||||
"parts_order_history": "Parts Order History",
|
"parts_order_history": "Parts Order History",
|
||||||
|
|||||||
@@ -969,6 +969,7 @@
|
|||||||
"ded_amt": "Deducible",
|
"ded_amt": "Deducible",
|
||||||
"ded_status": "Estado deducible",
|
"ded_status": "Estado deducible",
|
||||||
"depreciation_taxes": "Depreciación / Impuestos",
|
"depreciation_taxes": "Depreciación / Impuestos",
|
||||||
|
"driveable": "",
|
||||||
"employee_body": "",
|
"employee_body": "",
|
||||||
"employee_prep": "",
|
"employee_prep": "",
|
||||||
"employee_refinish": "",
|
"employee_refinish": "",
|
||||||
@@ -1099,6 +1100,7 @@
|
|||||||
"tax_str_rt": "",
|
"tax_str_rt": "",
|
||||||
"tax_sub_rt": "",
|
"tax_sub_rt": "",
|
||||||
"tax_tow_rt": "",
|
"tax_tow_rt": "",
|
||||||
|
"towin": "",
|
||||||
"towing_payable": "Remolque a pagar",
|
"towing_payable": "Remolque a pagar",
|
||||||
"unitnumber": "Unidad #",
|
"unitnumber": "Unidad #",
|
||||||
"updated_at": "Actualizado en",
|
"updated_at": "Actualizado en",
|
||||||
@@ -1343,6 +1345,9 @@
|
|||||||
"link": "",
|
"link": "",
|
||||||
"new": ""
|
"new": ""
|
||||||
},
|
},
|
||||||
|
"errors": {
|
||||||
|
"invalidphone": ""
|
||||||
|
},
|
||||||
"labels": {
|
"labels": {
|
||||||
"maxtenimages": "",
|
"maxtenimages": "",
|
||||||
"messaging": "Mensajería",
|
"messaging": "Mensajería",
|
||||||
@@ -1537,12 +1542,15 @@
|
|||||||
"appointment_reminder": "",
|
"appointment_reminder": "",
|
||||||
"casl_authorization": "",
|
"casl_authorization": "",
|
||||||
"diagnostic_authorization": "",
|
"diagnostic_authorization": "",
|
||||||
|
"estimate": "",
|
||||||
"estimate_detail": "",
|
"estimate_detail": "",
|
||||||
"final_invoice": "",
|
"final_invoice": "",
|
||||||
"fippa_authorization": "",
|
"fippa_authorization": "",
|
||||||
|
"glass_express_checklist": "",
|
||||||
"invoice_customer_payable": "",
|
"invoice_customer_payable": "",
|
||||||
"invoice_total_payable": "",
|
"invoice_total_payable": "",
|
||||||
"job_notes": "",
|
"job_notes": "",
|
||||||
|
"parts_list": "",
|
||||||
"parts_order": "",
|
"parts_order": "",
|
||||||
"parts_order_confirmation": "",
|
"parts_order_confirmation": "",
|
||||||
"parts_order_history": "",
|
"parts_order_history": "",
|
||||||
|
|||||||
@@ -969,6 +969,7 @@
|
|||||||
"ded_amt": "Déductible",
|
"ded_amt": "Déductible",
|
||||||
"ded_status": "Statut de franchise",
|
"ded_status": "Statut de franchise",
|
||||||
"depreciation_taxes": "Amortissement / taxes",
|
"depreciation_taxes": "Amortissement / taxes",
|
||||||
|
"driveable": "",
|
||||||
"employee_body": "",
|
"employee_body": "",
|
||||||
"employee_prep": "",
|
"employee_prep": "",
|
||||||
"employee_refinish": "",
|
"employee_refinish": "",
|
||||||
@@ -1099,6 +1100,7 @@
|
|||||||
"tax_str_rt": "",
|
"tax_str_rt": "",
|
||||||
"tax_sub_rt": "",
|
"tax_sub_rt": "",
|
||||||
"tax_tow_rt": "",
|
"tax_tow_rt": "",
|
||||||
|
"towin": "",
|
||||||
"towing_payable": "Remorquage à payer",
|
"towing_payable": "Remorquage à payer",
|
||||||
"unitnumber": "Unité #",
|
"unitnumber": "Unité #",
|
||||||
"updated_at": "Mis à jour à",
|
"updated_at": "Mis à jour à",
|
||||||
@@ -1343,6 +1345,9 @@
|
|||||||
"link": "",
|
"link": "",
|
||||||
"new": ""
|
"new": ""
|
||||||
},
|
},
|
||||||
|
"errors": {
|
||||||
|
"invalidphone": ""
|
||||||
|
},
|
||||||
"labels": {
|
"labels": {
|
||||||
"maxtenimages": "",
|
"maxtenimages": "",
|
||||||
"messaging": "Messagerie",
|
"messaging": "Messagerie",
|
||||||
@@ -1537,12 +1542,15 @@
|
|||||||
"appointment_reminder": "",
|
"appointment_reminder": "",
|
||||||
"casl_authorization": "",
|
"casl_authorization": "",
|
||||||
"diagnostic_authorization": "",
|
"diagnostic_authorization": "",
|
||||||
|
"estimate": "",
|
||||||
"estimate_detail": "",
|
"estimate_detail": "",
|
||||||
"final_invoice": "",
|
"final_invoice": "",
|
||||||
"fippa_authorization": "",
|
"fippa_authorization": "",
|
||||||
|
"glass_express_checklist": "",
|
||||||
"invoice_customer_payable": "",
|
"invoice_customer_payable": "",
|
||||||
"invoice_total_payable": "",
|
"invoice_total_payable": "",
|
||||||
"job_notes": "",
|
"job_notes": "",
|
||||||
|
"parts_list": "",
|
||||||
"parts_order": "",
|
"parts_order": "",
|
||||||
"parts_order_confirmation": "",
|
"parts_order_confirmation": "",
|
||||||
"parts_order_history": "",
|
"parts_order_history": "",
|
||||||
|
|||||||
@@ -4,5 +4,5 @@ import React from "react";
|
|||||||
|
|
||||||
export default function PhoneNumberFormatter(props) {
|
export default function PhoneNumberFormatter(props) {
|
||||||
const p = parsePhoneNumber(props.children || "", "CA");
|
const p = parsePhoneNumber(props.children || "", "CA");
|
||||||
return p ? <span>{p.formatInternational()}</span> : null;
|
return p ? <span>{p.formatNational()}</span> : null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,13 @@
|
|||||||
|
import { gql } from "@apollo/client";
|
||||||
import { notification } from "antd";
|
import { notification } from "antd";
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
import { gql } from "@apollo/client";
|
|
||||||
import jsreport from "jsreport-browser-client-dist";
|
import jsreport from "jsreport-browser-client-dist";
|
||||||
import { auth } from "../firebase/firebase.utils";
|
import { auth } from "../firebase/firebase.utils";
|
||||||
import { setEmailOptions } from "../redux/email/email.actions";
|
import { setEmailOptions } from "../redux/email/email.actions";
|
||||||
import { store } from "../redux/store";
|
import { store } from "../redux/store";
|
||||||
import client from "../utils/GraphQLClient";
|
import client from "../utils/GraphQLClient";
|
||||||
import { TemplateList } from "./TemplateConstants";
|
import { TemplateList } from "./TemplateConstants";
|
||||||
|
import moment from "moment";
|
||||||
|
|
||||||
const server = process.env.REACT_APP_REPORTS_SERVER_URL;
|
const server = process.env.REACT_APP_REPORTS_SERVER_URL;
|
||||||
jsreport.serverUrl = server;
|
jsreport.serverUrl = server;
|
||||||
@@ -36,6 +37,7 @@ export default async function RenderTemplate(
|
|||||||
...templateObject.context,
|
...templateObject.context,
|
||||||
headerpath: `/${bodyshop.imexshopid}/header.html`,
|
headerpath: `/${bodyshop.imexshopid}/header.html`,
|
||||||
bodyshop: bodyshop,
|
bodyshop: bodyshop,
|
||||||
|
offset: moment().utcOffset(),
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
try {
|
try {
|
||||||
@@ -59,23 +61,46 @@ export async function RenderTemplates(
|
|||||||
) {
|
) {
|
||||||
//Query assets that match the template name. Must be in format <<templateName>>.query
|
//Query assets that match the template name. Must be in format <<templateName>>.query
|
||||||
let templateAndData = [];
|
let templateAndData = [];
|
||||||
let proms = [];
|
|
||||||
templateObjects.forEach((template) => {
|
console.log("About to await all promises.");
|
||||||
proms.push(
|
await Promise.all(
|
||||||
(async () => {
|
templateObjects.map(async (template) => {
|
||||||
let { contextData, useShopSpecificTemplate } = await fetchContextData(
|
console.log("executing for", template);
|
||||||
template
|
let { contextData, useShopSpecificTemplate } = await fetchContextData(
|
||||||
);
|
template
|
||||||
templateAndData.push({
|
);
|
||||||
templateObject: template,
|
templateAndData.push({
|
||||||
contextData,
|
templateObject: template,
|
||||||
useShopSpecificTemplate,
|
contextData,
|
||||||
});
|
useShopSpecificTemplate,
|
||||||
})()
|
});
|
||||||
);
|
})
|
||||||
});
|
);
|
||||||
await Promise.all(proms);
|
console.log("All promises awaited.", templateAndData);
|
||||||
let rootTemplate = templateAndData.shift();
|
let rootTemplate = templateAndData[0];
|
||||||
|
const pdfOps = [];
|
||||||
|
|
||||||
|
for (var i = 1; i < templateAndData.length; i++) {
|
||||||
|
pdfOps.push({
|
||||||
|
template: {
|
||||||
|
name: templateAndData[i].useShopSpecificTemplate
|
||||||
|
? `/${bodyshop.imexshopid}/${templateAndData[i].templateObject.name}`
|
||||||
|
: `/${templateAndData[i].templateObject.name}`,
|
||||||
|
...(renderAsHtml ? {} : { recipe: "chrome-pdf" }),
|
||||||
|
},
|
||||||
|
data: {
|
||||||
|
...templateAndData[i].contextData,
|
||||||
|
...templateAndData[i].templateObject.variables,
|
||||||
|
...templateAndData[i].templateObject.context,
|
||||||
|
headerpath: `/${bodyshop.imexshopid}/header.html`,
|
||||||
|
bodyshop: bodyshop,
|
||||||
|
offset: moment().utcOffset(),
|
||||||
|
},
|
||||||
|
type: "append",
|
||||||
|
mergeWholeDocument: true,
|
||||||
|
renderForEveryPage: true,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
let reportRequest = {
|
let reportRequest = {
|
||||||
template: {
|
template: {
|
||||||
@@ -83,26 +108,7 @@ export async function RenderTemplates(
|
|||||||
? `/${bodyshop.imexshopid}/${rootTemplate.templateObject.name}`
|
? `/${bodyshop.imexshopid}/${rootTemplate.templateObject.name}`
|
||||||
: `/${rootTemplate.templateObject.name}`,
|
: `/${rootTemplate.templateObject.name}`,
|
||||||
...(renderAsHtml ? {} : { recipe: "chrome-pdf" }),
|
...(renderAsHtml ? {} : { recipe: "chrome-pdf" }),
|
||||||
pdfOperations: templateAndData.map((template) => {
|
pdfOperations: pdfOps,
|
||||||
return {
|
|
||||||
template: {
|
|
||||||
name: template.useShopSpecificTemplate
|
|
||||||
? `/${bodyshop.imexshopid}/${template.templateObject.name}`
|
|
||||||
: `/${template.templateObject.name}`,
|
|
||||||
...(renderAsHtml ? {} : { recipe: "chrome-pdf" }),
|
|
||||||
},
|
|
||||||
data: {
|
|
||||||
...template.contextData,
|
|
||||||
...template.templateObject.variables,
|
|
||||||
...template.templateObject.context,
|
|
||||||
headerpath: `/${bodyshop.imexshopid}/header.html`,
|
|
||||||
bodyshop: bodyshop,
|
|
||||||
},
|
|
||||||
type: "append",
|
|
||||||
mergeWholeDocument: true,
|
|
||||||
renderForEveryPage: true,
|
|
||||||
};
|
|
||||||
}),
|
|
||||||
},
|
},
|
||||||
data: {
|
data: {
|
||||||
...rootTemplate.contextData,
|
...rootTemplate.contextData,
|
||||||
@@ -110,6 +116,7 @@ export async function RenderTemplates(
|
|||||||
...rootTemplate.templateObject.context,
|
...rootTemplate.templateObject.context,
|
||||||
headerpath: `/${bodyshop.imexshopid}/header.html`,
|
headerpath: `/${bodyshop.imexshopid}/header.html`,
|
||||||
bodyshop: bodyshop,
|
bodyshop: bodyshop,
|
||||||
|
offset: moment().utcOffset(),
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -149,6 +156,7 @@ export const GenerateDocuments = async (templates) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const fetchContextData = async (templateObject) => {
|
const fetchContextData = async (templateObject) => {
|
||||||
|
console.log("Fetching context data", templateObject);
|
||||||
jsreport.headers["Authorization"] =
|
jsreport.headers["Authorization"] =
|
||||||
"Bearer " + (await auth.currentUser.getIdToken());
|
"Bearer " + (await auth.currentUser.getIdToken());
|
||||||
|
|
||||||
|
|||||||
@@ -169,6 +169,33 @@ export const TemplateList = (type, context) => {
|
|||||||
key: "parts_order_history",
|
key: "parts_order_history",
|
||||||
disabled: false,
|
disabled: false,
|
||||||
},
|
},
|
||||||
|
glass_express_checklist: {
|
||||||
|
title: i18n.t("printcenter.jobs.glass_express_checklist"),
|
||||||
|
description: "All Jobs Notes",
|
||||||
|
subject: `${i18n.t("printcenter.jobs.glass_express_checklist")} - ${
|
||||||
|
context && context.job && context.job.ro_number
|
||||||
|
}`,
|
||||||
|
key: "glass_express_checklist",
|
||||||
|
disabled: false,
|
||||||
|
},
|
||||||
|
estimate: {
|
||||||
|
title: i18n.t("printcenter.jobs.estimate"),
|
||||||
|
description: "All Jobs Notes",
|
||||||
|
subject: `${i18n.t("printcenter.jobs.estimate")} - ${
|
||||||
|
context && context.job && context.job.ro_number
|
||||||
|
}`,
|
||||||
|
key: "estimate",
|
||||||
|
disabled: false,
|
||||||
|
},
|
||||||
|
parts_list: {
|
||||||
|
title: i18n.t("printcenter.jobs.parts_list"),
|
||||||
|
description: "All Jobs Notes",
|
||||||
|
subject: `${i18n.t("printcenter.jobs.parts_list")} - ${
|
||||||
|
context && context.job && context.job.ro_number
|
||||||
|
}`,
|
||||||
|
key: "parts_list",
|
||||||
|
disabled: false,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
: {}),
|
: {}),
|
||||||
...(!type || type === "job_special"
|
...(!type || type === "job_special"
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
- args:
|
||||||
|
cascade: false
|
||||||
|
read_only: false
|
||||||
|
sql: ALTER TABLE "public"."jobs" ADD COLUMN "date_closed" timestamptz;
|
||||||
|
type: run_sql
|
||||||
|
- args:
|
||||||
|
cascade: false
|
||||||
|
read_only: false
|
||||||
|
sql: ALTER TABLE "public"."jobs" ALTER COLUMN "date_closed" DROP NOT NULL;
|
||||||
|
type: run_sql
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
- args:
|
||||||
|
cascade: false
|
||||||
|
read_only: false
|
||||||
|
sql: ALTER TABLE "public"."jobs" DROP COLUMN "date_closed" CASCADE;
|
||||||
|
type: run_sql
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
- args:
|
||||||
|
cascade: false
|
||||||
|
read_only: false
|
||||||
|
sql: ALTER TABLE "public"."jobs" DROP COLUMN "towin";
|
||||||
|
type: run_sql
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
- args:
|
||||||
|
cascade: false
|
||||||
|
read_only: false
|
||||||
|
sql: ALTER TABLE "public"."jobs" ADD COLUMN "towin" boolean NOT NULL DEFAULT false;
|
||||||
|
type: run_sql
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
- args:
|
||||||
|
cascade: false
|
||||||
|
read_only: false
|
||||||
|
sql: ALTER TABLE "public"."jobs" DROP COLUMN "driveable";
|
||||||
|
type: run_sql
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
- args:
|
||||||
|
cascade: false
|
||||||
|
read_only: false
|
||||||
|
sql: ALTER TABLE "public"."jobs" ADD COLUMN "driveable" boolean NOT NULL DEFAULT
|
||||||
|
false;
|
||||||
|
type: run_sql
|
||||||
@@ -0,0 +1,263 @@
|
|||||||
|
- 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
|
||||||
|
- alt_transport
|
||||||
|
- area_of_damage
|
||||||
|
- asgn_date
|
||||||
|
- asgn_no
|
||||||
|
- asgn_type
|
||||||
|
- ca_gst_registrant
|
||||||
|
- cat_no
|
||||||
|
- category
|
||||||
|
- cieca_stl
|
||||||
|
- cieca_ttl
|
||||||
|
- ciecaid
|
||||||
|
- class
|
||||||
|
- 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_estimated
|
||||||
|
- date_exported
|
||||||
|
- date_invoiced
|
||||||
|
- date_open
|
||||||
|
- date_scheduled
|
||||||
|
- ded_amt
|
||||||
|
- ded_status
|
||||||
|
- deliverchecklist
|
||||||
|
- depreciation_taxes
|
||||||
|
- employee_body
|
||||||
|
- employee_prep
|
||||||
|
- employee_refinish
|
||||||
|
- est_addr1
|
||||||
|
- est_addr2
|
||||||
|
- est_city
|
||||||
|
- est_co_nm
|
||||||
|
- est_ct_fn
|
||||||
|
- est_ct_ln
|
||||||
|
- est_ctry
|
||||||
|
- est_ea
|
||||||
|
- est_ph1
|
||||||
|
- est_st
|
||||||
|
- est_zip
|
||||||
|
- federal_tax_rate
|
||||||
|
- g_bett_amt
|
||||||
|
- 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_allocation
|
||||||
|
- invoice_date
|
||||||
|
- job_totals
|
||||||
|
- kanbanparent
|
||||||
|
- kmin
|
||||||
|
- kmout
|
||||||
|
- labor_rate_desc
|
||||||
|
- labor_rate_id
|
||||||
|
- lbr_adjustments
|
||||||
|
- 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
|
||||||
|
- queued_for_parts
|
||||||
|
- 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
|
||||||
|
- storage_payable
|
||||||
|
- tax_lbr_rt
|
||||||
|
- tax_levies_rt
|
||||||
|
- tax_paint_mat_rt
|
||||||
|
- tax_predis
|
||||||
|
- tax_prethr
|
||||||
|
- tax_pstthr
|
||||||
|
- tax_registration_number
|
||||||
|
- tax_shop_mat_rt
|
||||||
|
- 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
|
||||||
|
- voided
|
||||||
|
set: {}
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: jobs
|
||||||
|
schema: public
|
||||||
|
type: create_insert_permission
|
||||||
@@ -0,0 +1,265 @@
|
|||||||
|
- 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
|
||||||
|
- alt_transport
|
||||||
|
- area_of_damage
|
||||||
|
- asgn_date
|
||||||
|
- asgn_no
|
||||||
|
- asgn_type
|
||||||
|
- ca_gst_registrant
|
||||||
|
- cat_no
|
||||||
|
- category
|
||||||
|
- cieca_stl
|
||||||
|
- cieca_ttl
|
||||||
|
- ciecaid
|
||||||
|
- class
|
||||||
|
- 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_estimated
|
||||||
|
- date_exported
|
||||||
|
- date_invoiced
|
||||||
|
- date_open
|
||||||
|
- date_scheduled
|
||||||
|
- ded_amt
|
||||||
|
- ded_status
|
||||||
|
- deliverchecklist
|
||||||
|
- depreciation_taxes
|
||||||
|
- driveable
|
||||||
|
- employee_body
|
||||||
|
- employee_prep
|
||||||
|
- employee_refinish
|
||||||
|
- est_addr1
|
||||||
|
- est_addr2
|
||||||
|
- est_city
|
||||||
|
- est_co_nm
|
||||||
|
- est_ct_fn
|
||||||
|
- est_ct_ln
|
||||||
|
- est_ctry
|
||||||
|
- est_ea
|
||||||
|
- est_ph1
|
||||||
|
- est_st
|
||||||
|
- est_zip
|
||||||
|
- federal_tax_rate
|
||||||
|
- g_bett_amt
|
||||||
|
- 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_allocation
|
||||||
|
- invoice_date
|
||||||
|
- job_totals
|
||||||
|
- kanbanparent
|
||||||
|
- kmin
|
||||||
|
- kmout
|
||||||
|
- labor_rate_desc
|
||||||
|
- labor_rate_id
|
||||||
|
- lbr_adjustments
|
||||||
|
- 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
|
||||||
|
- queued_for_parts
|
||||||
|
- 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
|
||||||
|
- storage_payable
|
||||||
|
- tax_lbr_rt
|
||||||
|
- tax_levies_rt
|
||||||
|
- tax_paint_mat_rt
|
||||||
|
- tax_predis
|
||||||
|
- tax_prethr
|
||||||
|
- tax_pstthr
|
||||||
|
- tax_registration_number
|
||||||
|
- tax_shop_mat_rt
|
||||||
|
- tax_str_rt
|
||||||
|
- tax_sub_rt
|
||||||
|
- tax_thramt
|
||||||
|
- tax_tow_rt
|
||||||
|
- theft_ind
|
||||||
|
- tlos_ind
|
||||||
|
- towin
|
||||||
|
- towing_payable
|
||||||
|
- unit_number
|
||||||
|
- updated_at
|
||||||
|
- v_color
|
||||||
|
- v_make_desc
|
||||||
|
- v_model_desc
|
||||||
|
- v_model_yr
|
||||||
|
- v_vin
|
||||||
|
- vehicleid
|
||||||
|
- voided
|
||||||
|
set: {}
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: jobs
|
||||||
|
schema: public
|
||||||
|
type: create_insert_permission
|
||||||
@@ -0,0 +1,264 @@
|
|||||||
|
- args:
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: jobs
|
||||||
|
schema: public
|
||||||
|
type: drop_select_permission
|
||||||
|
- args:
|
||||||
|
permission:
|
||||||
|
allow_aggregations: 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
|
||||||
|
- alt_transport
|
||||||
|
- area_of_damage
|
||||||
|
- asgn_date
|
||||||
|
- asgn_no
|
||||||
|
- asgn_type
|
||||||
|
- ca_gst_registrant
|
||||||
|
- cat_no
|
||||||
|
- category
|
||||||
|
- cieca_stl
|
||||||
|
- cieca_ttl
|
||||||
|
- ciecaid
|
||||||
|
- class
|
||||||
|
- 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_estimated
|
||||||
|
- date_exported
|
||||||
|
- date_invoiced
|
||||||
|
- date_open
|
||||||
|
- date_scheduled
|
||||||
|
- ded_amt
|
||||||
|
- ded_status
|
||||||
|
- deliverchecklist
|
||||||
|
- depreciation_taxes
|
||||||
|
- employee_body
|
||||||
|
- employee_prep
|
||||||
|
- employee_refinish
|
||||||
|
- est_addr1
|
||||||
|
- est_addr2
|
||||||
|
- est_city
|
||||||
|
- est_co_nm
|
||||||
|
- est_ct_fn
|
||||||
|
- est_ct_ln
|
||||||
|
- est_ctry
|
||||||
|
- est_ea
|
||||||
|
- est_ph1
|
||||||
|
- est_st
|
||||||
|
- est_zip
|
||||||
|
- federal_tax_rate
|
||||||
|
- g_bett_amt
|
||||||
|
- 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_allocation
|
||||||
|
- invoice_date
|
||||||
|
- job_totals
|
||||||
|
- kanbanparent
|
||||||
|
- kmin
|
||||||
|
- kmout
|
||||||
|
- labor_rate_desc
|
||||||
|
- labor_rate_id
|
||||||
|
- lbr_adjustments
|
||||||
|
- 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
|
||||||
|
- queued_for_parts
|
||||||
|
- 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
|
||||||
|
- storage_payable
|
||||||
|
- tax_lbr_rt
|
||||||
|
- tax_levies_rt
|
||||||
|
- tax_paint_mat_rt
|
||||||
|
- tax_predis
|
||||||
|
- tax_prethr
|
||||||
|
- tax_pstthr
|
||||||
|
- tax_registration_number
|
||||||
|
- tax_shop_mat_rt
|
||||||
|
- 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
|
||||||
|
- voided
|
||||||
|
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,266 @@
|
|||||||
|
- args:
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: jobs
|
||||||
|
schema: public
|
||||||
|
type: drop_select_permission
|
||||||
|
- args:
|
||||||
|
permission:
|
||||||
|
allow_aggregations: 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
|
||||||
|
- alt_transport
|
||||||
|
- area_of_damage
|
||||||
|
- asgn_date
|
||||||
|
- asgn_no
|
||||||
|
- asgn_type
|
||||||
|
- ca_gst_registrant
|
||||||
|
- cat_no
|
||||||
|
- category
|
||||||
|
- cieca_stl
|
||||||
|
- cieca_ttl
|
||||||
|
- ciecaid
|
||||||
|
- class
|
||||||
|
- 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_estimated
|
||||||
|
- date_exported
|
||||||
|
- date_invoiced
|
||||||
|
- date_open
|
||||||
|
- date_scheduled
|
||||||
|
- ded_amt
|
||||||
|
- ded_status
|
||||||
|
- deliverchecklist
|
||||||
|
- depreciation_taxes
|
||||||
|
- driveable
|
||||||
|
- employee_body
|
||||||
|
- employee_prep
|
||||||
|
- employee_refinish
|
||||||
|
- est_addr1
|
||||||
|
- est_addr2
|
||||||
|
- est_city
|
||||||
|
- est_co_nm
|
||||||
|
- est_ct_fn
|
||||||
|
- est_ct_ln
|
||||||
|
- est_ctry
|
||||||
|
- est_ea
|
||||||
|
- est_ph1
|
||||||
|
- est_st
|
||||||
|
- est_zip
|
||||||
|
- federal_tax_rate
|
||||||
|
- g_bett_amt
|
||||||
|
- 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_allocation
|
||||||
|
- invoice_date
|
||||||
|
- job_totals
|
||||||
|
- kanbanparent
|
||||||
|
- kmin
|
||||||
|
- kmout
|
||||||
|
- labor_rate_desc
|
||||||
|
- labor_rate_id
|
||||||
|
- lbr_adjustments
|
||||||
|
- 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
|
||||||
|
- queued_for_parts
|
||||||
|
- 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
|
||||||
|
- storage_payable
|
||||||
|
- tax_lbr_rt
|
||||||
|
- tax_levies_rt
|
||||||
|
- tax_paint_mat_rt
|
||||||
|
- tax_predis
|
||||||
|
- tax_prethr
|
||||||
|
- tax_pstthr
|
||||||
|
- tax_registration_number
|
||||||
|
- tax_shop_mat_rt
|
||||||
|
- tax_str_rt
|
||||||
|
- tax_sub_rt
|
||||||
|
- tax_thramt
|
||||||
|
- tax_tow_rt
|
||||||
|
- theft_ind
|
||||||
|
- tlos_ind
|
||||||
|
- towin
|
||||||
|
- towing_payable
|
||||||
|
- unit_number
|
||||||
|
- updated_at
|
||||||
|
- v_color
|
||||||
|
- v_make_desc
|
||||||
|
- v_model_desc
|
||||||
|
- v_model_yr
|
||||||
|
- v_vin
|
||||||
|
- vehicleid
|
||||||
|
- voided
|
||||||
|
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,263 @@
|
|||||||
|
- 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
|
||||||
|
- alt_transport
|
||||||
|
- area_of_damage
|
||||||
|
- asgn_date
|
||||||
|
- asgn_no
|
||||||
|
- asgn_type
|
||||||
|
- ca_gst_registrant
|
||||||
|
- cat_no
|
||||||
|
- category
|
||||||
|
- cieca_stl
|
||||||
|
- cieca_ttl
|
||||||
|
- ciecaid
|
||||||
|
- class
|
||||||
|
- 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_estimated
|
||||||
|
- date_exported
|
||||||
|
- date_invoiced
|
||||||
|
- date_open
|
||||||
|
- date_scheduled
|
||||||
|
- ded_amt
|
||||||
|
- ded_status
|
||||||
|
- deliverchecklist
|
||||||
|
- depreciation_taxes
|
||||||
|
- employee_body
|
||||||
|
- employee_prep
|
||||||
|
- employee_refinish
|
||||||
|
- est_addr1
|
||||||
|
- est_addr2
|
||||||
|
- est_city
|
||||||
|
- est_co_nm
|
||||||
|
- est_ct_fn
|
||||||
|
- est_ct_ln
|
||||||
|
- est_ctry
|
||||||
|
- est_ea
|
||||||
|
- est_ph1
|
||||||
|
- est_st
|
||||||
|
- est_zip
|
||||||
|
- federal_tax_rate
|
||||||
|
- g_bett_amt
|
||||||
|
- 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_allocation
|
||||||
|
- invoice_date
|
||||||
|
- job_totals
|
||||||
|
- kanbanparent
|
||||||
|
- kmin
|
||||||
|
- kmout
|
||||||
|
- labor_rate_desc
|
||||||
|
- labor_rate_id
|
||||||
|
- lbr_adjustments
|
||||||
|
- 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
|
||||||
|
- queued_for_parts
|
||||||
|
- 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
|
||||||
|
- storage_payable
|
||||||
|
- tax_lbr_rt
|
||||||
|
- tax_levies_rt
|
||||||
|
- tax_paint_mat_rt
|
||||||
|
- tax_predis
|
||||||
|
- tax_prethr
|
||||||
|
- tax_pstthr
|
||||||
|
- tax_registration_number
|
||||||
|
- tax_shop_mat_rt
|
||||||
|
- 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
|
||||||
|
- voided
|
||||||
|
filter:
|
||||||
|
bodyshop:
|
||||||
|
associations:
|
||||||
|
_and:
|
||||||
|
- user:
|
||||||
|
authid:
|
||||||
|
_eq: X-Hasura-User-Id
|
||||||
|
- active:
|
||||||
|
_eq: true
|
||||||
|
set: {}
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: jobs
|
||||||
|
schema: public
|
||||||
|
type: create_update_permission
|
||||||
@@ -0,0 +1,265 @@
|
|||||||
|
- 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
|
||||||
|
- alt_transport
|
||||||
|
- area_of_damage
|
||||||
|
- asgn_date
|
||||||
|
- asgn_no
|
||||||
|
- asgn_type
|
||||||
|
- ca_gst_registrant
|
||||||
|
- cat_no
|
||||||
|
- category
|
||||||
|
- cieca_stl
|
||||||
|
- cieca_ttl
|
||||||
|
- ciecaid
|
||||||
|
- class
|
||||||
|
- 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_estimated
|
||||||
|
- date_exported
|
||||||
|
- date_invoiced
|
||||||
|
- date_open
|
||||||
|
- date_scheduled
|
||||||
|
- ded_amt
|
||||||
|
- ded_status
|
||||||
|
- deliverchecklist
|
||||||
|
- depreciation_taxes
|
||||||
|
- driveable
|
||||||
|
- employee_body
|
||||||
|
- employee_prep
|
||||||
|
- employee_refinish
|
||||||
|
- est_addr1
|
||||||
|
- est_addr2
|
||||||
|
- est_city
|
||||||
|
- est_co_nm
|
||||||
|
- est_ct_fn
|
||||||
|
- est_ct_ln
|
||||||
|
- est_ctry
|
||||||
|
- est_ea
|
||||||
|
- est_ph1
|
||||||
|
- est_st
|
||||||
|
- est_zip
|
||||||
|
- federal_tax_rate
|
||||||
|
- g_bett_amt
|
||||||
|
- 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_allocation
|
||||||
|
- invoice_date
|
||||||
|
- job_totals
|
||||||
|
- kanbanparent
|
||||||
|
- kmin
|
||||||
|
- kmout
|
||||||
|
- labor_rate_desc
|
||||||
|
- labor_rate_id
|
||||||
|
- lbr_adjustments
|
||||||
|
- 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
|
||||||
|
- queued_for_parts
|
||||||
|
- 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
|
||||||
|
- storage_payable
|
||||||
|
- tax_lbr_rt
|
||||||
|
- tax_levies_rt
|
||||||
|
- tax_paint_mat_rt
|
||||||
|
- tax_predis
|
||||||
|
- tax_prethr
|
||||||
|
- tax_pstthr
|
||||||
|
- tax_registration_number
|
||||||
|
- tax_shop_mat_rt
|
||||||
|
- tax_str_rt
|
||||||
|
- tax_sub_rt
|
||||||
|
- tax_thramt
|
||||||
|
- tax_tow_rt
|
||||||
|
- theft_ind
|
||||||
|
- tlos_ind
|
||||||
|
- towin
|
||||||
|
- towing_payable
|
||||||
|
- unit_number
|
||||||
|
- updated_at
|
||||||
|
- v_color
|
||||||
|
- v_make_desc
|
||||||
|
- v_model_desc
|
||||||
|
- v_model_yr
|
||||||
|
- v_vin
|
||||||
|
- vehicleid
|
||||||
|
- voided
|
||||||
|
filter:
|
||||||
|
bodyshop:
|
||||||
|
associations:
|
||||||
|
_and:
|
||||||
|
- user:
|
||||||
|
authid:
|
||||||
|
_eq: X-Hasura-User-Id
|
||||||
|
- active:
|
||||||
|
_eq: true
|
||||||
|
set: {}
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: jobs
|
||||||
|
schema: public
|
||||||
|
type: create_update_permission
|
||||||
@@ -2295,6 +2295,7 @@ tables:
|
|||||||
- ded_status
|
- ded_status
|
||||||
- deliverchecklist
|
- deliverchecklist
|
||||||
- depreciation_taxes
|
- depreciation_taxes
|
||||||
|
- driveable
|
||||||
- employee_body
|
- employee_body
|
||||||
- employee_prep
|
- employee_prep
|
||||||
- employee_refinish
|
- employee_refinish
|
||||||
@@ -2450,6 +2451,7 @@ tables:
|
|||||||
- tax_tow_rt
|
- tax_tow_rt
|
||||||
- theft_ind
|
- theft_ind
|
||||||
- tlos_ind
|
- tlos_ind
|
||||||
|
- towin
|
||||||
- towing_payable
|
- towing_payable
|
||||||
- unit_number
|
- unit_number
|
||||||
- updated_at
|
- updated_at
|
||||||
@@ -2538,6 +2540,7 @@ tables:
|
|||||||
- ded_status
|
- ded_status
|
||||||
- deliverchecklist
|
- deliverchecklist
|
||||||
- depreciation_taxes
|
- depreciation_taxes
|
||||||
|
- driveable
|
||||||
- employee_body
|
- employee_body
|
||||||
- employee_prep
|
- employee_prep
|
||||||
- employee_refinish
|
- employee_refinish
|
||||||
@@ -2693,6 +2696,7 @@ tables:
|
|||||||
- tax_tow_rt
|
- tax_tow_rt
|
||||||
- theft_ind
|
- theft_ind
|
||||||
- tlos_ind
|
- tlos_ind
|
||||||
|
- towin
|
||||||
- towing_payable
|
- towing_payable
|
||||||
- unit_number
|
- unit_number
|
||||||
- updated_at
|
- updated_at
|
||||||
@@ -2791,6 +2795,7 @@ tables:
|
|||||||
- ded_status
|
- ded_status
|
||||||
- deliverchecklist
|
- deliverchecklist
|
||||||
- depreciation_taxes
|
- depreciation_taxes
|
||||||
|
- driveable
|
||||||
- employee_body
|
- employee_body
|
||||||
- employee_prep
|
- employee_prep
|
||||||
- employee_refinish
|
- employee_refinish
|
||||||
@@ -2946,6 +2951,7 @@ tables:
|
|||||||
- tax_tow_rt
|
- tax_tow_rt
|
||||||
- theft_ind
|
- theft_ind
|
||||||
- tlos_ind
|
- tlos_ind
|
||||||
|
- towin
|
||||||
- towing_payable
|
- towing_payable
|
||||||
- unit_number
|
- unit_number
|
||||||
- updated_at
|
- updated_at
|
||||||
|
|||||||
@@ -54,12 +54,15 @@
|
|||||||
},
|
},
|
||||||
"enabled": true
|
"enabled": true
|
||||||
},
|
},
|
||||||
|
"child-templates": {
|
||||||
|
"parallelLimit": 10
|
||||||
|
},
|
||||||
"sample-template": {
|
"sample-template": {
|
||||||
"createSamples": true
|
"createSamples": true
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
"allowedModules": "*",
|
||||||
"strategy": "http-server"
|
"strategy": "http-server"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
10460
package-lock.json
generated
10460
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user