Minor bug fixes & Rome CI
This commit is contained in:
@@ -132,7 +132,7 @@ jobs:
|
|||||||
name: Install Dependencies
|
name: Install Dependencies
|
||||||
command: npm i
|
command: npm i
|
||||||
|
|
||||||
- run: npm run build:rome
|
- run: npm run build:production:rome
|
||||||
|
|
||||||
- aws-cli/setup:
|
- aws-cli/setup:
|
||||||
aws_access_key_id: AWS_ACCESS_KEY_ID
|
aws_access_key_id: AWS_ACCESS_KEY_ID
|
||||||
@@ -144,6 +144,31 @@ jobs:
|
|||||||
to: "s3://rome-online-production/"
|
to: "s3://rome-online-production/"
|
||||||
arguments: "--exclude '*.map'"
|
arguments: "--exclude '*.map'"
|
||||||
|
|
||||||
|
promanager-app-build:
|
||||||
|
docker:
|
||||||
|
- image: cimg/node:18.18.2
|
||||||
|
|
||||||
|
working_directory: ~/repo/client
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- checkout:
|
||||||
|
path: ~/repo
|
||||||
|
- run:
|
||||||
|
name: Install Dependencies
|
||||||
|
command: npm i
|
||||||
|
|
||||||
|
- run: npm run build:production:promanager
|
||||||
|
|
||||||
|
- aws-cli/setup:
|
||||||
|
aws_access_key_id: AWS_ACCESS_KEY_ID
|
||||||
|
aws_secret_access_key: AWS_SECRET_ACCESS_KEY
|
||||||
|
region: AWS_REGION
|
||||||
|
|
||||||
|
- aws-s3/sync:
|
||||||
|
from: build
|
||||||
|
to: "s3://promanager-production/"
|
||||||
|
arguments: "--exclude '*.map'"
|
||||||
|
|
||||||
test-rome-hasura-migrate:
|
test-rome-hasura-migrate:
|
||||||
docker:
|
docker:
|
||||||
- image: cimg/node:18.18.2
|
- image: cimg/node:18.18.2
|
||||||
@@ -188,6 +213,31 @@ jobs:
|
|||||||
to: "s3://rome-online-test/"
|
to: "s3://rome-online-test/"
|
||||||
arguments: "--exclude '*.map'"
|
arguments: "--exclude '*.map'"
|
||||||
|
|
||||||
|
test-promanager-app-build:
|
||||||
|
docker:
|
||||||
|
- image: cimg/node:18.18.2
|
||||||
|
|
||||||
|
working_directory: ~/repo/client
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- checkout:
|
||||||
|
path: ~/repo
|
||||||
|
- run:
|
||||||
|
name: Install Dependencies
|
||||||
|
command: npm i
|
||||||
|
|
||||||
|
- run: npm run build:test:promanager
|
||||||
|
|
||||||
|
- aws-cli/setup:
|
||||||
|
aws_access_key_id: AWS_ACCESS_KEY_ID
|
||||||
|
aws_secret_access_key: AWS_SECRET_ACCESS_KEY
|
||||||
|
region: AWS_REGION
|
||||||
|
|
||||||
|
- aws-s3/sync:
|
||||||
|
from: dist
|
||||||
|
to: "s3://promanager-testing/"
|
||||||
|
arguments: "--exclude '*.map'"
|
||||||
|
|
||||||
test-hasura-migrate:
|
test-hasura-migrate:
|
||||||
docker:
|
docker:
|
||||||
- image: cimg/node:18.18.2
|
- image: cimg/node:18.18.2
|
||||||
@@ -307,16 +357,16 @@ workflows:
|
|||||||
- rome-api-deploy:
|
- rome-api-deploy:
|
||||||
filters:
|
filters:
|
||||||
branches:
|
branches:
|
||||||
only: rome/master
|
only: master-AIO
|
||||||
- rome-app-build:
|
- rome-app-build:
|
||||||
filters:
|
filters:
|
||||||
branches:
|
branches:
|
||||||
only: rome/master
|
only: master-AIO
|
||||||
- rome-hasura-migrate:
|
- rome-hasura-migrate:
|
||||||
secret: ${HASURA_PROD_SECRET}
|
secret: ${HASURA_PROD_SECRET}
|
||||||
filters:
|
filters:
|
||||||
branches:
|
branches:
|
||||||
only: rome/master
|
only: master-AIO
|
||||||
- imex-test-app-build:
|
- imex-test-app-build:
|
||||||
filters:
|
filters:
|
||||||
branches:
|
branches:
|
||||||
@@ -334,6 +384,14 @@ workflows:
|
|||||||
filters:
|
filters:
|
||||||
branches:
|
branches:
|
||||||
only: test-AIO
|
only: test-AIO
|
||||||
|
- test-promanager-app-build:
|
||||||
|
filters:
|
||||||
|
branches:
|
||||||
|
only: test-AIO
|
||||||
|
- promanager-app-build:
|
||||||
|
filters:
|
||||||
|
branches:
|
||||||
|
only: master-AIO
|
||||||
- test-rome-hasura-migrate:
|
- test-rome-hasura-migrate:
|
||||||
secret: ${HASURA_ROME_TEST_SECRET}
|
secret: ${HASURA_ROME_TEST_SECRET}
|
||||||
filters:
|
filters:
|
||||||
|
|||||||
@@ -118,8 +118,8 @@ export function JobsDetailHeader({ job, bodyshop, disabled }) {
|
|||||||
{job?.cccontracts?.length > 0 && (
|
{job?.cccontracts?.length > 0 && (
|
||||||
<DataLabel label={t("jobs.labels.contracts")}>
|
<DataLabel label={t("jobs.labels.contracts")}>
|
||||||
{job.cccontracts.map((c, index) => (
|
{job.cccontracts.map((c, index) => (
|
||||||
<Space wrap>
|
<Space key={c.id} wrap>
|
||||||
<Link key={c.id} to={`/manage/courtesycars/contracts/${c.id}`}>
|
<Link to={`/manage/courtesycars/contracts/${c.id}`}>
|
||||||
{`${c.agreementnumber} - ${c.courtesycar.fleetnumber} ${c.courtesycar.year} ${c.courtesycar.make} ${c.courtesycar.model}`}
|
{`${c.agreementnumber} - ${c.courtesycar.fleetnumber} ${c.courtesycar.year} ${c.courtesycar.make} ${c.courtesycar.model}`}
|
||||||
{index !== job.cccontracts.length - 1 ? "," : null}
|
{index !== job.cccontracts.length - 1 ? "," : null}
|
||||||
</Link>
|
</Link>
|
||||||
|
|||||||
@@ -4019,30 +4019,38 @@ export function ShopInfoResponsibilityCenterComponent({ bodyshop, form }) {
|
|||||||
rome: <ShopInfoResponsibilitycentersTaxesComponent form={form} />
|
rome: <ShopInfoResponsibilitycentersTaxesComponent form={form} />
|
||||||
})}
|
})}
|
||||||
|
|
||||||
<Form.Item
|
{InstanceRenderManager({
|
||||||
label={t("bodyshop.fields.responsibilitycenters.itemexemptcode")}
|
rome: (
|
||||||
rules={[
|
<>
|
||||||
{
|
<Form.Item
|
||||||
required: true
|
label={t("bodyshop.fields.responsibilitycenters.itemexemptcode")}
|
||||||
//message: t("general.validation.required"),
|
rules={[
|
||||||
}
|
{
|
||||||
]}
|
required: true
|
||||||
name={["md_responsibility_centers", "taxes", "itemexemptcode"]}
|
//message: t("general.validation.required"),
|
||||||
>
|
}
|
||||||
<Input />
|
]}
|
||||||
</Form.Item>
|
name={["md_responsibility_centers", "taxes", "itemexemptcode"]}
|
||||||
<Form.Item
|
>
|
||||||
label={t("bodyshop.fields.responsibilitycenters.invoiceexemptcode")}
|
<Input />
|
||||||
rules={[
|
</Form.Item>
|
||||||
{
|
<Form.Item
|
||||||
required: true
|
label={t("bodyshop.fields.responsibilitycenters.invoiceexemptcode")}
|
||||||
//message: t("general.validation.required"),
|
rules={[
|
||||||
}
|
{
|
||||||
]}
|
required: true
|
||||||
name={["md_responsibility_centers", "taxes", "invoiceexemptcode"]}
|
//message: t("general.validation.required"),
|
||||||
>
|
}
|
||||||
<Input />
|
]}
|
||||||
</Form.Item>
|
name={["md_responsibility_centers", "taxes", "invoiceexemptcode"]}
|
||||||
|
>
|
||||||
|
<Input />
|
||||||
|
</Form.Item>
|
||||||
|
</>
|
||||||
|
),
|
||||||
|
promanager: "USE_ROME"
|
||||||
|
})}
|
||||||
|
|
||||||
{/*<LayoutFormRow id="local_tax">*/}
|
{/*<LayoutFormRow id="local_tax">*/}
|
||||||
{/* <Form.Item*/}
|
{/* <Form.Item*/}
|
||||||
{/* label={t("bodyshop.fields.responsibilitycenters.local_tax")}*/}
|
{/* label={t("bodyshop.fields.responsibilitycenters.local_tax")}*/}
|
||||||
|
|||||||
@@ -207,74 +207,75 @@ export function TimeTicketList({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
title: t("timetickets.fields.created_by"),
|
]),
|
||||||
dataIndex: "created_by",
|
{
|
||||||
key: "created_by",
|
title: t("timetickets.fields.created_by"),
|
||||||
sorter: (a, b) => alphaSort(a.created_by, b.created_by),
|
dataIndex: "created_by",
|
||||||
sortOrder: state.sortedInfo.columnKey === "created_by" && state.sortedInfo.order,
|
key: "created_by",
|
||||||
render: (text, record) => record.created_by
|
sorter: (a, b) => alphaSort(a.created_by, b.created_by),
|
||||||
},
|
sortOrder: state.sortedInfo.columnKey === "created_by" && state.sortedInfo.order,
|
||||||
// {
|
render: (text, record) => record.created_by
|
||||||
// title: "Pay",
|
},
|
||||||
// dataIndex: "pay",
|
// {
|
||||||
// key: "pay",
|
// title: "Pay",
|
||||||
// render: (text, record) =>
|
// dataIndex: "pay",
|
||||||
// Dinero({ amount: Math.round(record.rate * 100) })
|
// key: "pay",
|
||||||
// .multiply(record.flat_rate ? record.productivehrs : record.actualhrs)
|
// render: (text, record) =>
|
||||||
// .toFormat("$0.00"),
|
// Dinero({ amount: Math.round(record.rate * 100) })
|
||||||
// },
|
// .multiply(record.flat_rate ? record.productivehrs : record.actualhrs)
|
||||||
{
|
// .toFormat("$0.00"),
|
||||||
title: t("general.labels.actions"),
|
// },
|
||||||
dataIndex: "actions",
|
{
|
||||||
key: "actions",
|
title: t("general.labels.actions"),
|
||||||
render: (text, record) => (
|
dataIndex: "actions",
|
||||||
<Space wrap>
|
key: "actions",
|
||||||
{techConsole && (
|
render: (text, record) => (
|
||||||
|
<Space wrap>
|
||||||
|
{techConsole && (
|
||||||
|
<TimeTicketEnterButton
|
||||||
|
actions={{ refetch }}
|
||||||
|
context={{ id: record.id, timeticket: record }}
|
||||||
|
disabled={!record.job || disabled}
|
||||||
|
>
|
||||||
|
<EditFilled />
|
||||||
|
</TimeTicketEnterButton>
|
||||||
|
)}
|
||||||
|
{!techConsole && (
|
||||||
|
<RbacWrapper
|
||||||
|
action="timetickets:edit"
|
||||||
|
noauth={() => {
|
||||||
|
return <div />;
|
||||||
|
}}
|
||||||
|
>
|
||||||
<TimeTicketEnterButton
|
<TimeTicketEnterButton
|
||||||
actions={{ refetch }}
|
actions={{ refetch }}
|
||||||
context={{ id: record.id, timeticket: record }}
|
context={{
|
||||||
disabled={!record.job || disabled}
|
id: record.id,
|
||||||
|
timeticket: record
|
||||||
|
}}
|
||||||
|
disabled={
|
||||||
|
HasRbacAccess({
|
||||||
|
bodyshop,
|
||||||
|
authLevel: authLevel,
|
||||||
|
action: "timetickets:editcommitted"
|
||||||
|
}) &&
|
||||||
|
HasRbacAccess({
|
||||||
|
bodyshop,
|
||||||
|
authLevel: authLevel,
|
||||||
|
action: "timetickets:shiftedit"
|
||||||
|
})
|
||||||
|
? disabled
|
||||||
|
: !record.jobid
|
||||||
|
}
|
||||||
>
|
>
|
||||||
<EditFilled />
|
<EditFilled />
|
||||||
</TimeTicketEnterButton>
|
</TimeTicketEnterButton>
|
||||||
)}
|
</RbacWrapper>
|
||||||
{!techConsole && (
|
)}
|
||||||
<RbacWrapper
|
</Space>
|
||||||
action="timetickets:edit"
|
)
|
||||||
noauth={() => {
|
}
|
||||||
return <div />;
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
<TimeTicketEnterButton
|
|
||||||
actions={{ refetch }}
|
|
||||||
context={{
|
|
||||||
id: record.id,
|
|
||||||
timeticket: record
|
|
||||||
}}
|
|
||||||
disabled={
|
|
||||||
HasRbacAccess({
|
|
||||||
bodyshop,
|
|
||||||
authLevel: authLevel,
|
|
||||||
action: "timetickets:editcommitted"
|
|
||||||
}) &&
|
|
||||||
HasRbacAccess({
|
|
||||||
bodyshop,
|
|
||||||
authLevel: authLevel,
|
|
||||||
action: "timetickets:shiftedit"
|
|
||||||
})
|
|
||||||
? disabled
|
|
||||||
: !record.jobid
|
|
||||||
}
|
|
||||||
>
|
|
||||||
<EditFilled />
|
|
||||||
</TimeTicketEnterButton>
|
|
||||||
</RbacWrapper>
|
|
||||||
)}
|
|
||||||
</Space>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
])
|
|
||||||
];
|
];
|
||||||
|
|
||||||
const handleTableChange = (pagination, filters, sorter) => {
|
const handleTableChange = (pagination, filters, sorter) => {
|
||||||
|
|||||||
@@ -60,8 +60,8 @@ export function TimeTicketModalComponent({
|
|||||||
{item.cost_center === "timetickets.labels.shift"
|
{item.cost_center === "timetickets.labels.shift"
|
||||||
? t(item.cost_center)
|
? t(item.cost_center)
|
||||||
: bodyshop.cdk_dealerid || bodyshop.pbs_serialnumber || Enhanced_Payroll.treatment === "on"
|
: bodyshop.cdk_dealerid || bodyshop.pbs_serialnumber || Enhanced_Payroll.treatment === "on"
|
||||||
? t(`joblines.fields.lbr_types.${item.cost_center.toUpperCase()}`)
|
? t(`joblines.fields.lbr_types.${item.cost_center.toUpperCase()}`)
|
||||||
: item.cost_center}
|
: item.cost_center}
|
||||||
</Select.Option>
|
</Select.Option>
|
||||||
))}
|
))}
|
||||||
</Select>
|
</Select>
|
||||||
@@ -215,14 +215,6 @@ export function TimeTicketModalComponent({
|
|||||||
>
|
>
|
||||||
<InputNumber precision={1} />
|
<InputNumber precision={1} />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
{
|
|
||||||
// <TimeTicketCalculatorComponent
|
|
||||||
// jobid={form.getFieldValue("jobid")}
|
|
||||||
// setProductiveHours={(productivehrs) =>
|
|
||||||
// form.setFieldsValue({productivehrs})
|
|
||||||
// }
|
|
||||||
// />
|
|
||||||
}
|
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
|
|||||||
Reference in New Issue
Block a user