Added alt transport to appointments BOD-392
This commit is contained in:
@@ -416,6 +416,27 @@
|
|||||||
<folder_node>
|
<folder_node>
|
||||||
<name>fields</name>
|
<name>fields</name>
|
||||||
<children>
|
<children>
|
||||||
|
<concept_node>
|
||||||
|
<name>alt_transport</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>color</name>
|
<name>color</name>
|
||||||
<definition_loaded>false</definition_loaded>
|
<definition_loaded>false</definition_loaded>
|
||||||
@@ -783,6 +804,27 @@
|
|||||||
</translation>
|
</translation>
|
||||||
</translations>
|
</translations>
|
||||||
</concept_node>
|
</concept_node>
|
||||||
|
<concept_node>
|
||||||
|
<name>saved</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>
|
||||||
</children>
|
</children>
|
||||||
|
|||||||
@@ -123,7 +123,10 @@ export function ScheduleCalendarHeaderComponent({
|
|||||||
{(loadData.hoursOut || 0) && loadData.hoursOut.toFixed(2)}
|
{(loadData.hoursOut || 0) && loadData.hoursOut.toFixed(2)}
|
||||||
</Popover>
|
</Popover>
|
||||||
<Statistic
|
<Statistic
|
||||||
value={((loadData.expectedLoad || 0) / bodyshop.prodtargethrs) * 100}
|
value={(
|
||||||
|
((loadData.expectedLoad || 0) / bodyshop.prodtargethrs) *
|
||||||
|
100
|
||||||
|
).toFixed(1)}
|
||||||
suffix={"%"}
|
suffix={"%"}
|
||||||
precision={0}
|
precision={0}
|
||||||
valueStyle={{
|
valueStyle={{
|
||||||
|
|||||||
@@ -0,0 +1,53 @@
|
|||||||
|
import React from "react";
|
||||||
|
import { useMutation } from "react-apollo";
|
||||||
|
import { UPDATE_APPOINTMENT } from "../../graphql/appointments.queries";
|
||||||
|
import { useTranslation } from "react-i18next";
|
||||||
|
import { connect } from "react-redux";
|
||||||
|
import { createStructuredSelector } from "reselect";
|
||||||
|
import { Dropdown, Menu, notification } from "antd";
|
||||||
|
import { DownOutlined } from "@ant-design/icons";
|
||||||
|
import { selectBodyshop } from "../../redux/user/user.selectors";
|
||||||
|
|
||||||
|
const mapStateToProps = createStructuredSelector({
|
||||||
|
bodyshop: selectBodyshop,
|
||||||
|
});
|
||||||
|
const mapDispatchToProps = (dispatch) => ({
|
||||||
|
//setUserLanguage: language => dispatch(setUserLanguage(language))
|
||||||
|
});
|
||||||
|
|
||||||
|
export function ScheduleAtChange({ bodyshop, event }) {
|
||||||
|
const [updateAppointment] = useMutation(UPDATE_APPOINTMENT);
|
||||||
|
const { t } = useTranslation();
|
||||||
|
|
||||||
|
const onClick = async ({ key }) => {
|
||||||
|
const result = await updateAppointment({
|
||||||
|
variables: { appid: event.id, app: { alt_transport: key } },
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!!!result.errors) {
|
||||||
|
notification["success"]({ message: t("appointments.successes.saved") });
|
||||||
|
} else {
|
||||||
|
notification["error"]({
|
||||||
|
message: t("appointments.errors.saving", {
|
||||||
|
error: JSON.stringify(result.errors),
|
||||||
|
}),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const menu = (
|
||||||
|
<Menu selectedKeys={[event.alt_transport]} onClick={onClick}>
|
||||||
|
{bodyshop.appt_alt_transport &&
|
||||||
|
bodyshop.appt_alt_transport.map((alt) => (
|
||||||
|
<Menu.Item key={alt}>{alt}</Menu.Item>
|
||||||
|
))}
|
||||||
|
</Menu>
|
||||||
|
);
|
||||||
|
return (
|
||||||
|
<Dropdown overlay={menu}>
|
||||||
|
<a href=" #" onClick={(e) => e.preventDefault()}>
|
||||||
|
<DownOutlined />
|
||||||
|
</a>
|
||||||
|
</Dropdown>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
export default connect(mapStateToProps, mapDispatchToProps)(ScheduleAtChange);
|
||||||
@@ -7,6 +7,7 @@ import { setModalContext } from "../../redux/modals/modals.actions";
|
|||||||
import CurrencyFormatter from "../../utils/CurrencyFormatter";
|
import CurrencyFormatter from "../../utils/CurrencyFormatter";
|
||||||
import PhoneFormatter from "../../utils/PhoneFormatter";
|
import PhoneFormatter from "../../utils/PhoneFormatter";
|
||||||
import DataLabel from "../data-label/data-label.component";
|
import DataLabel from "../data-label/data-label.component";
|
||||||
|
import ScheduleAtChange from "./schedule-event.at.component";
|
||||||
import ScheduleEventColor from "./schedule-event.color.component";
|
import ScheduleEventColor from "./schedule-event.color.component";
|
||||||
|
|
||||||
const mapDispatchToProps = (dispatch) => ({
|
const mapDispatchToProps = (dispatch) => ({
|
||||||
@@ -63,6 +64,10 @@ export function ScheduleEventComponent({
|
|||||||
{(event.job && event.job.ownr_ph1) || ""}
|
{(event.job && event.job.ownr_ph1) || ""}
|
||||||
</PhoneFormatter>
|
</PhoneFormatter>
|
||||||
</DataLabel>
|
</DataLabel>
|
||||||
|
<DataLabel label={t("appointments.fields.alt_transport")}>
|
||||||
|
{event.alt_transport || ""}
|
||||||
|
<ScheduleAtChange event={event} />
|
||||||
|
</DataLabel>
|
||||||
</div>
|
</div>
|
||||||
) : null}
|
) : null}
|
||||||
|
|
||||||
@@ -129,6 +134,9 @@ export function ScheduleEventComponent({
|
|||||||
(event.job && event.job.larhrs.aggregate.sum.mod_lb_hrs) || "0"
|
(event.job && event.job.larhrs.aggregate.sum.mod_lb_hrs) || "0"
|
||||||
})`}
|
})`}
|
||||||
</div>
|
</div>
|
||||||
|
{event.alt_transport && (
|
||||||
|
<div style={{ margin: ".1rem" }}>{event.alt_transport}</div>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
) : (
|
) : (
|
||||||
<div>
|
<div>
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ export function ScheduleJobModalComponent({
|
|||||||
<Col span={12}>
|
<Col span={12}>
|
||||||
<LayoutFormRow grow>
|
<LayoutFormRow grow>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
name={"start"}
|
name="start"
|
||||||
label={t("appointments.fields.time")}
|
label={t("appointments.fields.time")}
|
||||||
rules={[
|
rules={[
|
||||||
{
|
{
|
||||||
@@ -99,7 +99,7 @@ export function ScheduleJobModalComponent({
|
|||||||
</LayoutFormRow>
|
</LayoutFormRow>
|
||||||
<LayoutFormRow grow>
|
<LayoutFormRow grow>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
name={"scheduled_completion"}
|
name="scheduled_completion"
|
||||||
label={t("jobs.fields.scheduled_completion")}
|
label={t("jobs.fields.scheduled_completion")}
|
||||||
rules={[
|
rules={[
|
||||||
{
|
{
|
||||||
@@ -111,16 +111,16 @@ export function ScheduleJobModalComponent({
|
|||||||
<DateTimePicker />
|
<DateTimePicker />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
name={"notifyCustomer"}
|
name="notifyCustomer"
|
||||||
valuePropName="checked"
|
valuePropName="checked"
|
||||||
label={t("jobs.labels.appointmentconfirmation")}
|
label={t("jobs.labels.appointmentconfirmation")}
|
||||||
>
|
>
|
||||||
<Switch />
|
<Switch />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item name={"email"} label={t("jobs.fields.ownr_ea")}>
|
<Form.Item name="email" label={t("jobs.fields.ownr_ea")}>
|
||||||
<EmailInput />
|
<EmailInput />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item name={"color"} label={t("appointments.fields.color")}>
|
<Form.Item name="color" label={t("appointments.fields.color")}>
|
||||||
<Select>
|
<Select>
|
||||||
{bodyshop.appt_colors &&
|
{bodyshop.appt_colors &&
|
||||||
bodyshop.appt_colors.map((color) => (
|
bodyshop.appt_colors.map((color) => (
|
||||||
@@ -134,6 +134,17 @@ export function ScheduleJobModalComponent({
|
|||||||
))}
|
))}
|
||||||
</Select>
|
</Select>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
|
<Form.Item
|
||||||
|
name={"alt_transport"}
|
||||||
|
label={t("appointments.fields.alt_transport")}
|
||||||
|
>
|
||||||
|
<Select>
|
||||||
|
{bodyshop.appt_alt_transport &&
|
||||||
|
bodyshop.appt_alt_transport.map((alt) => (
|
||||||
|
<Select.Option key={alt}>{alt}</Select.Option>
|
||||||
|
))}
|
||||||
|
</Select>
|
||||||
|
</Form.Item>
|
||||||
</LayoutFormRow>
|
</LayoutFormRow>
|
||||||
{t("appointments.labels.history")}
|
{t("appointments.labels.history")}
|
||||||
<ScheduleExistingAppointmentsList
|
<ScheduleExistingAppointmentsList
|
||||||
|
|||||||
@@ -93,6 +93,7 @@ export function ScheduleJobModalContainer({
|
|||||||
start: moment(values.start),
|
start: moment(values.start),
|
||||||
end: moment(values.start).add(bodyshop.appt_length || 60, "minutes"),
|
end: moment(values.start).add(bodyshop.appt_length || 60, "minutes"),
|
||||||
color: values.color,
|
color: values.color,
|
||||||
|
alt_transport: values.alt_transport,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { DeleteFilled } from "@ant-design/icons";
|
import { DeleteFilled } from "@ant-design/icons";
|
||||||
import { Button, Col, Form, Input, InputNumber, Row } from "antd";
|
import { Button, Col, Form, Input, InputNumber, Row, Select } from "antd";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import ColorpickerFormItemComponent from "../form-items-formatted/colorpicker-form-item.component";
|
import ColorpickerFormItemComponent from "../form-items-formatted/colorpicker-form-item.component";
|
||||||
@@ -81,7 +81,18 @@ export default function ShopInfoSchedulingComponent({ form }) {
|
|||||||
);
|
);
|
||||||
}}
|
}}
|
||||||
</Form.List>
|
</Form.List>
|
||||||
|
<Form.Item
|
||||||
|
name={["appt_alt_transport"]}
|
||||||
|
label={t("bodyshop.fields.appt_alt_transport")}
|
||||||
|
rules={[
|
||||||
|
{
|
||||||
|
message: t("general.validation.required"),
|
||||||
|
type: "array",
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
>
|
||||||
|
<Select mode="tags" />
|
||||||
|
</Form.Item>
|
||||||
<Form.List name={["ssbuckets"]}>
|
<Form.List name={["ssbuckets"]}>
|
||||||
{(fields, { add, remove, move }) => {
|
{(fields, { add, remove, move }) => {
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ export const QUERY_ALL_ACTIVE_APPOINTMENTS = gql`
|
|||||||
isintake
|
isintake
|
||||||
block
|
block
|
||||||
color
|
color
|
||||||
|
alt_transport
|
||||||
job {
|
job {
|
||||||
ro_number
|
ro_number
|
||||||
ownr_ln
|
ownr_ln
|
||||||
@@ -64,6 +65,7 @@ export const INSERT_APPOINTMENT = gql`
|
|||||||
title
|
title
|
||||||
isintake
|
isintake
|
||||||
block
|
block
|
||||||
|
alt_transport
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -79,6 +81,8 @@ export const QUERY_APPOINTMENT_BY_DATE = gql`
|
|||||||
end
|
end
|
||||||
title
|
title
|
||||||
isintake
|
isintake
|
||||||
|
alt_transport
|
||||||
|
|
||||||
job {
|
job {
|
||||||
ro_number
|
ro_number
|
||||||
ownr_ln
|
ownr_ln
|
||||||
@@ -125,6 +129,7 @@ export const UPDATE_APPOINTMENT = gql`
|
|||||||
title
|
title
|
||||||
isintake
|
isintake
|
||||||
block
|
block
|
||||||
|
alt_transport
|
||||||
color
|
color
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -155,6 +160,7 @@ export const QUERY_APPOINTMENTS_BY_JOBID = gql`
|
|||||||
arrived
|
arrived
|
||||||
canceled
|
canceled
|
||||||
created_at
|
created_at
|
||||||
|
alt_transport
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
|
|||||||
@@ -71,6 +71,7 @@ export const QUERY_BODYSHOP = gql`
|
|||||||
deliverchecklist
|
deliverchecklist
|
||||||
target_touchtime
|
target_touchtime
|
||||||
appt_colors
|
appt_colors
|
||||||
|
appt_alt_transport
|
||||||
employees {
|
employees {
|
||||||
id
|
id
|
||||||
first_name
|
first_name
|
||||||
@@ -140,6 +141,7 @@ export const UPDATE_SHOP = gql`
|
|||||||
deliverchecklist
|
deliverchecklist
|
||||||
target_touchtime
|
target_touchtime
|
||||||
appt_colors
|
appt_colors
|
||||||
|
appt_alt_transport
|
||||||
employees {
|
employees {
|
||||||
id
|
id
|
||||||
first_name
|
first_name
|
||||||
|
|||||||
@@ -33,6 +33,7 @@
|
|||||||
"saving": "Error scheduling appointment. {{message}}"
|
"saving": "Error scheduling appointment. {{message}}"
|
||||||
},
|
},
|
||||||
"fields": {
|
"fields": {
|
||||||
|
"alt_transport": "A.T.",
|
||||||
"color": "Color",
|
"color": "Color",
|
||||||
"time": "Appointment Time",
|
"time": "Appointment Time",
|
||||||
"title": "Title"
|
"title": "Title"
|
||||||
@@ -53,7 +54,8 @@
|
|||||||
},
|
},
|
||||||
"successes": {
|
"successes": {
|
||||||
"canceled": "Appointment canceled successfully.",
|
"canceled": "Appointment canceled successfully.",
|
||||||
"created": "Appointment scheduled successfully."
|
"created": "Appointment scheduled successfully.",
|
||||||
|
"saved": "Appointment saved successfully."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"associations": {
|
"associations": {
|
||||||
|
|||||||
@@ -33,6 +33,7 @@
|
|||||||
"saving": "Error al programar la cita. {{message}}"
|
"saving": "Error al programar la cita. {{message}}"
|
||||||
},
|
},
|
||||||
"fields": {
|
"fields": {
|
||||||
|
"alt_transport": "",
|
||||||
"color": "",
|
"color": "",
|
||||||
"time": "",
|
"time": "",
|
||||||
"title": "Título"
|
"title": "Título"
|
||||||
@@ -53,7 +54,8 @@
|
|||||||
},
|
},
|
||||||
"successes": {
|
"successes": {
|
||||||
"canceled": "Cita cancelada con éxito.",
|
"canceled": "Cita cancelada con éxito.",
|
||||||
"created": "Cita programada con éxito."
|
"created": "Cita programada con éxito.",
|
||||||
|
"saved": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"associations": {
|
"associations": {
|
||||||
|
|||||||
@@ -33,6 +33,7 @@
|
|||||||
"saving": "Erreur lors de la planification du rendez-vous. {{message}}"
|
"saving": "Erreur lors de la planification du rendez-vous. {{message}}"
|
||||||
},
|
},
|
||||||
"fields": {
|
"fields": {
|
||||||
|
"alt_transport": "",
|
||||||
"color": "",
|
"color": "",
|
||||||
"time": "",
|
"time": "",
|
||||||
"title": "Titre"
|
"title": "Titre"
|
||||||
@@ -53,7 +54,8 @@
|
|||||||
},
|
},
|
||||||
"successes": {
|
"successes": {
|
||||||
"canceled": "Rendez-vous annulé avec succès.",
|
"canceled": "Rendez-vous annulé avec succès.",
|
||||||
"created": "Rendez-vous planifié avec succès."
|
"created": "Rendez-vous planifié avec succès.",
|
||||||
|
"saved": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"associations": {
|
"associations": {
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
- args:
|
||||||
|
cascade: false
|
||||||
|
read_only: false
|
||||||
|
sql: ALTER TABLE "public"."appointments" DROP COLUMN "alt_transport";
|
||||||
|
type: run_sql
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
- args:
|
||||||
|
cascade: false
|
||||||
|
read_only: false
|
||||||
|
sql: ALTER TABLE "public"."appointments" ADD COLUMN "alt_transport" text NULL;
|
||||||
|
type: run_sql
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
- args:
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: appointments
|
||||||
|
schema: public
|
||||||
|
type: drop_insert_permission
|
||||||
|
- args:
|
||||||
|
permission:
|
||||||
|
check:
|
||||||
|
bodyshop:
|
||||||
|
associations:
|
||||||
|
_and:
|
||||||
|
- user:
|
||||||
|
authid:
|
||||||
|
_eq: X-Hasura-User-Id
|
||||||
|
- active:
|
||||||
|
_eq: true
|
||||||
|
columns:
|
||||||
|
- arrived
|
||||||
|
- block
|
||||||
|
- bodyshopid
|
||||||
|
- canceled
|
||||||
|
- color
|
||||||
|
- created_at
|
||||||
|
- end
|
||||||
|
- id
|
||||||
|
- isintake
|
||||||
|
- jobid
|
||||||
|
- start
|
||||||
|
- title
|
||||||
|
- updated_at
|
||||||
|
set: {}
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: appointments
|
||||||
|
schema: public
|
||||||
|
type: create_insert_permission
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
- args:
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: appointments
|
||||||
|
schema: public
|
||||||
|
type: drop_insert_permission
|
||||||
|
- args:
|
||||||
|
permission:
|
||||||
|
check:
|
||||||
|
bodyshop:
|
||||||
|
associations:
|
||||||
|
_and:
|
||||||
|
- user:
|
||||||
|
authid:
|
||||||
|
_eq: X-Hasura-User-Id
|
||||||
|
- active:
|
||||||
|
_eq: true
|
||||||
|
columns:
|
||||||
|
- alt_transport
|
||||||
|
- arrived
|
||||||
|
- block
|
||||||
|
- bodyshopid
|
||||||
|
- canceled
|
||||||
|
- color
|
||||||
|
- created_at
|
||||||
|
- end
|
||||||
|
- id
|
||||||
|
- isintake
|
||||||
|
- jobid
|
||||||
|
- start
|
||||||
|
- title
|
||||||
|
- updated_at
|
||||||
|
set: {}
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: appointments
|
||||||
|
schema: public
|
||||||
|
type: create_insert_permission
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
- args:
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: appointments
|
||||||
|
schema: public
|
||||||
|
type: drop_select_permission
|
||||||
|
- args:
|
||||||
|
permission:
|
||||||
|
allow_aggregations: true
|
||||||
|
columns:
|
||||||
|
- arrived
|
||||||
|
- block
|
||||||
|
- bodyshopid
|
||||||
|
- canceled
|
||||||
|
- color
|
||||||
|
- created_at
|
||||||
|
- end
|
||||||
|
- id
|
||||||
|
- isintake
|
||||||
|
- jobid
|
||||||
|
- start
|
||||||
|
- title
|
||||||
|
- updated_at
|
||||||
|
computed_fields: []
|
||||||
|
filter:
|
||||||
|
bodyshop:
|
||||||
|
associations:
|
||||||
|
_and:
|
||||||
|
- user:
|
||||||
|
authid:
|
||||||
|
_eq: X-Hasura-User-Id
|
||||||
|
- active:
|
||||||
|
_eq: true
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: appointments
|
||||||
|
schema: public
|
||||||
|
type: create_select_permission
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
- args:
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: appointments
|
||||||
|
schema: public
|
||||||
|
type: drop_select_permission
|
||||||
|
- args:
|
||||||
|
permission:
|
||||||
|
allow_aggregations: true
|
||||||
|
columns:
|
||||||
|
- alt_transport
|
||||||
|
- arrived
|
||||||
|
- block
|
||||||
|
- bodyshopid
|
||||||
|
- canceled
|
||||||
|
- color
|
||||||
|
- created_at
|
||||||
|
- end
|
||||||
|
- id
|
||||||
|
- isintake
|
||||||
|
- jobid
|
||||||
|
- start
|
||||||
|
- title
|
||||||
|
- updated_at
|
||||||
|
computed_fields: []
|
||||||
|
filter:
|
||||||
|
bodyshop:
|
||||||
|
associations:
|
||||||
|
_and:
|
||||||
|
- user:
|
||||||
|
authid:
|
||||||
|
_eq: X-Hasura-User-Id
|
||||||
|
- active:
|
||||||
|
_eq: true
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: appointments
|
||||||
|
schema: public
|
||||||
|
type: create_select_permission
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
- args:
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: appointments
|
||||||
|
schema: public
|
||||||
|
type: drop_update_permission
|
||||||
|
- args:
|
||||||
|
permission:
|
||||||
|
columns:
|
||||||
|
- arrived
|
||||||
|
- block
|
||||||
|
- bodyshopid
|
||||||
|
- canceled
|
||||||
|
- color
|
||||||
|
- created_at
|
||||||
|
- end
|
||||||
|
- id
|
||||||
|
- isintake
|
||||||
|
- jobid
|
||||||
|
- start
|
||||||
|
- title
|
||||||
|
- updated_at
|
||||||
|
filter:
|
||||||
|
bodyshop:
|
||||||
|
associations:
|
||||||
|
_and:
|
||||||
|
- user:
|
||||||
|
authid:
|
||||||
|
_eq: X-Hasura-User-Id
|
||||||
|
- active:
|
||||||
|
_eq: true
|
||||||
|
set: {}
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: appointments
|
||||||
|
schema: public
|
||||||
|
type: create_update_permission
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
- args:
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: appointments
|
||||||
|
schema: public
|
||||||
|
type: drop_update_permission
|
||||||
|
- args:
|
||||||
|
permission:
|
||||||
|
columns:
|
||||||
|
- alt_transport
|
||||||
|
- arrived
|
||||||
|
- block
|
||||||
|
- bodyshopid
|
||||||
|
- canceled
|
||||||
|
- color
|
||||||
|
- created_at
|
||||||
|
- end
|
||||||
|
- id
|
||||||
|
- isintake
|
||||||
|
- jobid
|
||||||
|
- start
|
||||||
|
- title
|
||||||
|
- updated_at
|
||||||
|
filter:
|
||||||
|
bodyshop:
|
||||||
|
associations:
|
||||||
|
_and:
|
||||||
|
- user:
|
||||||
|
authid:
|
||||||
|
_eq: X-Hasura-User-Id
|
||||||
|
- active:
|
||||||
|
_eq: true
|
||||||
|
set: {}
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: appointments
|
||||||
|
schema: public
|
||||||
|
type: create_update_permission
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
- args:
|
||||||
|
cascade: false
|
||||||
|
read_only: false
|
||||||
|
sql: ALTER TABLE "public"."bodyshops" DROP COLUMN "appt_alt_transport";
|
||||||
|
type: run_sql
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
- args:
|
||||||
|
cascade: false
|
||||||
|
read_only: false
|
||||||
|
sql: ALTER TABLE "public"."bodyshops" ADD COLUMN "appt_alt_transport" jsonb NULL
|
||||||
|
DEFAULT jsonb_build_array();
|
||||||
|
type: run_sql
|
||||||
@@ -0,0 +1,71 @@
|
|||||||
|
- args:
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: bodyshops
|
||||||
|
schema: public
|
||||||
|
type: drop_select_permission
|
||||||
|
- args:
|
||||||
|
permission:
|
||||||
|
allow_aggregations: false
|
||||||
|
columns:
|
||||||
|
- accountingconfig
|
||||||
|
- address1
|
||||||
|
- address2
|
||||||
|
- appt_colors
|
||||||
|
- appt_length
|
||||||
|
- bill_tax_rates
|
||||||
|
- city
|
||||||
|
- country
|
||||||
|
- created_at
|
||||||
|
- deliverchecklist
|
||||||
|
- email
|
||||||
|
- enforce_class
|
||||||
|
- federal_tax_id
|
||||||
|
- id
|
||||||
|
- inhousevendorid
|
||||||
|
- insurance_vendor_id
|
||||||
|
- intakechecklist
|
||||||
|
- logo_img_path
|
||||||
|
- md_categories
|
||||||
|
- md_classes
|
||||||
|
- md_ins_cos
|
||||||
|
- md_labor_rates
|
||||||
|
- md_messaging_presets
|
||||||
|
- md_notes_presets
|
||||||
|
- md_order_statuses
|
||||||
|
- md_parts_locations
|
||||||
|
- md_rbac
|
||||||
|
- md_referral_sources
|
||||||
|
- md_responsibility_centers
|
||||||
|
- md_ro_statuses
|
||||||
|
- messagingservicesid
|
||||||
|
- phone
|
||||||
|
- prodtargethrs
|
||||||
|
- production_config
|
||||||
|
- region_config
|
||||||
|
- scoreboard_target
|
||||||
|
- shopname
|
||||||
|
- shoprates
|
||||||
|
- speedprint
|
||||||
|
- ssbuckets
|
||||||
|
- state
|
||||||
|
- state_tax_id
|
||||||
|
- stripe_acct_id
|
||||||
|
- target_touchtime
|
||||||
|
- 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,72 @@
|
|||||||
|
- args:
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: bodyshops
|
||||||
|
schema: public
|
||||||
|
type: drop_select_permission
|
||||||
|
- args:
|
||||||
|
permission:
|
||||||
|
allow_aggregations: false
|
||||||
|
columns:
|
||||||
|
- accountingconfig
|
||||||
|
- address1
|
||||||
|
- address2
|
||||||
|
- appt_alt_transport
|
||||||
|
- appt_colors
|
||||||
|
- appt_length
|
||||||
|
- bill_tax_rates
|
||||||
|
- city
|
||||||
|
- country
|
||||||
|
- created_at
|
||||||
|
- deliverchecklist
|
||||||
|
- email
|
||||||
|
- enforce_class
|
||||||
|
- federal_tax_id
|
||||||
|
- id
|
||||||
|
- inhousevendorid
|
||||||
|
- insurance_vendor_id
|
||||||
|
- intakechecklist
|
||||||
|
- logo_img_path
|
||||||
|
- md_categories
|
||||||
|
- md_classes
|
||||||
|
- md_ins_cos
|
||||||
|
- md_labor_rates
|
||||||
|
- md_messaging_presets
|
||||||
|
- md_notes_presets
|
||||||
|
- md_order_statuses
|
||||||
|
- md_parts_locations
|
||||||
|
- md_rbac
|
||||||
|
- md_referral_sources
|
||||||
|
- md_responsibility_centers
|
||||||
|
- md_ro_statuses
|
||||||
|
- messagingservicesid
|
||||||
|
- phone
|
||||||
|
- prodtargethrs
|
||||||
|
- production_config
|
||||||
|
- region_config
|
||||||
|
- scoreboard_target
|
||||||
|
- shopname
|
||||||
|
- shoprates
|
||||||
|
- speedprint
|
||||||
|
- ssbuckets
|
||||||
|
- state
|
||||||
|
- state_tax_id
|
||||||
|
- stripe_acct_id
|
||||||
|
- target_touchtime
|
||||||
|
- 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,65 @@
|
|||||||
|
- args:
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: bodyshops
|
||||||
|
schema: public
|
||||||
|
type: drop_update_permission
|
||||||
|
- args:
|
||||||
|
permission:
|
||||||
|
columns:
|
||||||
|
- accountingconfig
|
||||||
|
- address1
|
||||||
|
- address2
|
||||||
|
- appt_colors
|
||||||
|
- appt_length
|
||||||
|
- bill_tax_rates
|
||||||
|
- city
|
||||||
|
- country
|
||||||
|
- created_at
|
||||||
|
- deliverchecklist
|
||||||
|
- email
|
||||||
|
- enforce_class
|
||||||
|
- federal_tax_id
|
||||||
|
- id
|
||||||
|
- inhousevendorid
|
||||||
|
- insurance_vendor_id
|
||||||
|
- intakechecklist
|
||||||
|
- logo_img_path
|
||||||
|
- md_categories
|
||||||
|
- md_classes
|
||||||
|
- md_ins_cos
|
||||||
|
- md_labor_rates
|
||||||
|
- md_messaging_presets
|
||||||
|
- md_notes_presets
|
||||||
|
- md_order_statuses
|
||||||
|
- md_parts_locations
|
||||||
|
- md_rbac
|
||||||
|
- md_referral_sources
|
||||||
|
- md_responsibility_centers
|
||||||
|
- md_ro_statuses
|
||||||
|
- phone
|
||||||
|
- prodtargethrs
|
||||||
|
- production_config
|
||||||
|
- scoreboard_target
|
||||||
|
- shopname
|
||||||
|
- shoprates
|
||||||
|
- speedprint
|
||||||
|
- ssbuckets
|
||||||
|
- state
|
||||||
|
- state_tax_id
|
||||||
|
- target_touchtime
|
||||||
|
- updated_at
|
||||||
|
- zip_post
|
||||||
|
filter:
|
||||||
|
associations:
|
||||||
|
bodyshop:
|
||||||
|
associations:
|
||||||
|
user:
|
||||||
|
authid:
|
||||||
|
_eq: X-Hasura-User-Id
|
||||||
|
set: {}
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: bodyshops
|
||||||
|
schema: public
|
||||||
|
type: create_update_permission
|
||||||
@@ -0,0 +1,66 @@
|
|||||||
|
- args:
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: bodyshops
|
||||||
|
schema: public
|
||||||
|
type: drop_update_permission
|
||||||
|
- args:
|
||||||
|
permission:
|
||||||
|
columns:
|
||||||
|
- accountingconfig
|
||||||
|
- address1
|
||||||
|
- address2
|
||||||
|
- appt_alt_transport
|
||||||
|
- appt_colors
|
||||||
|
- appt_length
|
||||||
|
- bill_tax_rates
|
||||||
|
- city
|
||||||
|
- country
|
||||||
|
- created_at
|
||||||
|
- deliverchecklist
|
||||||
|
- email
|
||||||
|
- enforce_class
|
||||||
|
- federal_tax_id
|
||||||
|
- id
|
||||||
|
- inhousevendorid
|
||||||
|
- insurance_vendor_id
|
||||||
|
- intakechecklist
|
||||||
|
- logo_img_path
|
||||||
|
- md_categories
|
||||||
|
- md_classes
|
||||||
|
- md_ins_cos
|
||||||
|
- md_labor_rates
|
||||||
|
- md_messaging_presets
|
||||||
|
- md_notes_presets
|
||||||
|
- md_order_statuses
|
||||||
|
- md_parts_locations
|
||||||
|
- md_rbac
|
||||||
|
- md_referral_sources
|
||||||
|
- md_responsibility_centers
|
||||||
|
- md_ro_statuses
|
||||||
|
- phone
|
||||||
|
- prodtargethrs
|
||||||
|
- production_config
|
||||||
|
- scoreboard_target
|
||||||
|
- shopname
|
||||||
|
- shoprates
|
||||||
|
- speedprint
|
||||||
|
- ssbuckets
|
||||||
|
- state
|
||||||
|
- state_tax_id
|
||||||
|
- target_touchtime
|
||||||
|
- updated_at
|
||||||
|
- zip_post
|
||||||
|
filter:
|
||||||
|
associations:
|
||||||
|
bodyshop:
|
||||||
|
associations:
|
||||||
|
user:
|
||||||
|
authid:
|
||||||
|
_eq: X-Hasura-User-Id
|
||||||
|
set: {}
|
||||||
|
role: user
|
||||||
|
table:
|
||||||
|
name: bodyshops
|
||||||
|
schema: public
|
||||||
|
type: create_update_permission
|
||||||
@@ -105,6 +105,7 @@ tables:
|
|||||||
- active:
|
- active:
|
||||||
_eq: true
|
_eq: true
|
||||||
columns:
|
columns:
|
||||||
|
- alt_transport
|
||||||
- arrived
|
- arrived
|
||||||
- block
|
- block
|
||||||
- bodyshopid
|
- bodyshopid
|
||||||
@@ -122,6 +123,7 @@ tables:
|
|||||||
- role: user
|
- role: user
|
||||||
permission:
|
permission:
|
||||||
columns:
|
columns:
|
||||||
|
- alt_transport
|
||||||
- arrived
|
- arrived
|
||||||
- block
|
- block
|
||||||
- bodyshopid
|
- bodyshopid
|
||||||
@@ -149,6 +151,7 @@ tables:
|
|||||||
- role: user
|
- role: user
|
||||||
permission:
|
permission:
|
||||||
columns:
|
columns:
|
||||||
|
- alt_transport
|
||||||
- arrived
|
- arrived
|
||||||
- block
|
- block
|
||||||
- bodyshopid
|
- bodyshopid
|
||||||
@@ -695,6 +698,7 @@ tables:
|
|||||||
- accountingconfig
|
- accountingconfig
|
||||||
- address1
|
- address1
|
||||||
- address2
|
- address2
|
||||||
|
- appt_alt_transport
|
||||||
- appt_colors
|
- appt_colors
|
||||||
- appt_length
|
- appt_length
|
||||||
- bill_tax_rates
|
- bill_tax_rates
|
||||||
@@ -754,6 +758,7 @@ tables:
|
|||||||
- accountingconfig
|
- accountingconfig
|
||||||
- address1
|
- address1
|
||||||
- address2
|
- address2
|
||||||
|
- appt_alt_transport
|
||||||
- appt_colors
|
- appt_colors
|
||||||
- appt_length
|
- appt_length
|
||||||
- bill_tax_rates
|
- bill_tax_rates
|
||||||
|
|||||||
Reference in New Issue
Block a user