Added joblines to repair data. Field migrations to conform to cieca standards for joblines

This commit is contained in:
Patrick Fic
2020-01-29 20:15:36 -08:00
parent 7630547c6c
commit 7eedd95403
12 changed files with 230 additions and 14 deletions

View File

@@ -462,6 +462,121 @@
</folder_node> </folder_node>
</children> </children>
</folder_node> </folder_node>
<folder_node>
<name>joblines</name>
<children>
<folder_node>
<name>fields</name>
<children>
<concept_node>
<name>act_price</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>es-MX</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-CA</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>db_price</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>es-MX</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-CA</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>line_desc</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>es-MX</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-CA</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>part_type</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>es-MX</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-CA</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>unq_seq</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>es-MX</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-CA</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
</children>
</folder_node>
</children>
</folder_node>
<folder_node> <folder_node>
<name>jobs</name> <name>jobs</name>
<children> <children>

View File

@@ -1,33 +1,69 @@
import React, { useState } from "react"; import React, { useState } from "react";
import { Table } from "antd"; import { Table } from "antd";
import { alphaSort } from "../../utils/sorters"; import { alphaSort } from "../../utils/sorters";
import { useTranslation } from "react-i18next";
import CurrencyFormatter from "../../utils/CurrencyFormatter";
export default function JobLinesComponent({ loading, joblines }) { export default function JobLinesComponent({ job }) {
const [state, setState] = useState({ const [state, setState] = useState({
sortedInfo: {}, sortedInfo: {},
filteredInfo: { text: "" } filteredInfo: { text: "" }
}); });
const { t } = useTranslation();
const columns = [ const columns = [
{ {
title: "Line #", title: t("joblines.fields.unq_seq"),
dataIndex: "line_ind", dataIndex: "unq_seq",
key: "line_ind", key: "unq_seq",
// onFilter: (value, record) => record.ro_number.includes(value), // onFilter: (value, record) => record.ro_number.includes(value),
// filteredValue: state.filteredInfo.text || null, // filteredValue: state.filteredInfo.text || null,
sorter: (a, b) => alphaSort(a, b), sorter: (a, b) => alphaSort(a, b),
sortOrder: sortOrder:
state.sortedInfo.columnKey === "line_ind" && state.sortedInfo.order, state.sortedInfo.columnKey === "unq_seq" && state.sortedInfo.order
ellipsis: true //ellipsis: true
}, },
{ {
title: "Description", title: t("joblines.fields.line_desc"),
dataIndex: "line_desc", dataIndex: "line_desc",
key: "line_desc", key: "line_desc",
sorter: (a, b) => alphaSort(a, b), sorter: (a, b) => alphaSort(a.line_desc, b.line_desc),
sortOrder: sortOrder:
state.sortedInfo.columnKey === "line_desc" && state.sortedInfo.order, state.sortedInfo.columnKey === "line_desc" && state.sortedInfo.order,
ellipsis: true ellipsis: true
},
{
title: t("joblines.fields.part_type"),
dataIndex: "part_type",
key: "part_type",
sorter: (a, b) => alphaSort(a.part_type, b.part_type),
sortOrder:
state.sortedInfo.columnKey === "part_type" && state.sortedInfo.order,
ellipsis: true
},
{
title: t("joblines.fields.db_price"),
dataIndex: "db_price",
key: "db_price",
sorter: (a, b) => a.db_price - b.db_price,
sortOrder:
state.sortedInfo.columnKey === "db_price" && state.sortedInfo.order,
ellipsis: true,
render: (text, record) => (
<CurrencyFormatter>{record.db_price}</CurrencyFormatter>
)
},
{
title: t("joblines.fields.act_price"),
dataIndex: "act_price",
key: "act_price",
sorter: (a, b) => a.act_price - b.act_price,
sortOrder:
state.sortedInfo.columnKey === "act_price" && state.sortedInfo.order,
ellipsis: true,
render: (text, record) => (
<CurrencyFormatter>{record.act_price}</CurrencyFormatter>
)
} }
]; ];
@@ -39,14 +75,13 @@ export default function JobLinesComponent({ loading, joblines }) {
// const { value } = event.target; // const { value } = event.target;
// setState({ ...state, filterinfo: { text: [value] } }); // setState({ ...state, filterinfo: { text: [value] } });
// }; // };
return ( return (
<Table <Table
loading={loading} size='small'
pagination={{ position: "bottom" }} pagination={{ position: "bottom" }}
columns={columns.map(item => ({ ...item }))} columns={columns.map(item => ({ ...item }))}
rowKey='id' rowKey='id'
dataSource={joblines} dataSource={job.joblines}
onChange={handleTableChange} onChange={handleTableChange}
/> />
); );

View File

@@ -1,7 +1,7 @@
import React from "react"; import React from "react";
import JobLinesComponent from "./job-lines.component"; import JobLinesComponent from "./job-lines.component";
import { useQuery } from "@apollo/react-hooks"; import { useQuery } from "@apollo/react-hooks";
import AlertComponent from "../../components/alert/alert.component"; import AlertComponent from "../alert/alert.component";
import { GET_JOB_LINES_BY_PK } from "../../graphql/jobs-lines.queries"; import { GET_JOB_LINES_BY_PK } from "../../graphql/jobs-lines.queries";
@@ -16,3 +16,4 @@ export default function JobLinesContainer({ jobId }) {
<JobLinesComponent loading={loading} joblines={data ? data.joblines : null} /> <JobLinesComponent loading={loading} joblines={data ? data.joblines : null} />
); );
} }

View File

@@ -159,6 +159,23 @@ export const GET_JOB_BY_PK = gql`
ownr_fn ownr_fn
ownr_ln ownr_ln
} }
joblines{
id
unq_seq
line_ind
line_desc
part_type
oem_partno
db_price
act_price
part_qty
mod_lbr_ty
db_hrs
mod_lb_hrs
lbr_op
lbr_amt
}
} }
} }
`; `;

View File

@@ -7,7 +7,8 @@ import {
FaRegStickyNote, FaRegStickyNote,
FaShieldAlt FaShieldAlt
} from "react-icons/fa"; } from "react-icons/fa";
import JobLinesContainer from "../../components/job-lines/job-lines.container.component"; //import JobLinesContainer from "../../components/job-lines/job-lines.container";
import JobsLines from '../../components/job-lines/job-lines.component'
import JobsDetailClaims from "../../components/jobs-detail-claims/jobs-detail-claims.component"; import JobsDetailClaims from "../../components/jobs-detail-claims/jobs-detail-claims.component";
import JobsDetailFinancials from "../../components/jobs-detail-financial/jobs-detail-financial.component"; import JobsDetailFinancials from "../../components/jobs-detail-financial/jobs-detail-financial.component";
import JobsDetailHeader from "../../components/jobs-detail-header/jobs-detail-header.component"; import JobsDetailHeader from "../../components/jobs-detail-header/jobs-detail-header.component";
@@ -94,7 +95,7 @@ export default function JobsDetailPage({
} }
key="repairdata" key="repairdata"
> >
<JobLinesContainer jobId={job.id} /> <JobsLines job={job} />
</Tabs.TabPane> </Tabs.TabPane>
<Tabs.TabPane <Tabs.TabPane

View File

@@ -37,6 +37,15 @@
"unsavedchanges": "You have unsaved changes." "unsavedchanges": "You have unsaved changes."
} }
}, },
"joblines": {
"fields": {
"act_price": "Actual Price",
"db_price": "Database Price",
"line_desc": "Line Description",
"part_type": "Part Type",
"unq_seq": "Seq #"
}
},
"jobs": { "jobs": {
"actions": { "actions": {
"addDocuments": "Add Job Documents", "addDocuments": "Add Job Documents",

View File

@@ -37,6 +37,15 @@
"unsavedchanges": "Usted tiene cambios no guardados." "unsavedchanges": "Usted tiene cambios no guardados."
} }
}, },
"joblines": {
"fields": {
"act_price": "Precio actual",
"db_price": "Precio de base de datos",
"line_desc": "Descripción de línea",
"part_type": "Tipo de parte",
"unq_seq": "Seq #"
}
},
"jobs": { "jobs": {
"actions": { "actions": {
"addDocuments": "Agregar documentos de trabajo", "addDocuments": "Agregar documentos de trabajo",

View File

@@ -37,6 +37,15 @@
"unsavedchanges": "Vous avez des changements non enregistrés." "unsavedchanges": "Vous avez des changements non enregistrés."
} }
}, },
"joblines": {
"fields": {
"act_price": "Prix actuel",
"db_price": "Prix de la base de données",
"line_desc": "Description de la ligne",
"part_type": "Type de pièce",
"unq_seq": "Seq #"
}
},
"jobs": { "jobs": {
"actions": { "actions": {
"addDocuments": "Ajouter des documents de travail", "addDocuments": "Ajouter des documents de travail",

View File

@@ -0,0 +1 @@
[]

View File

@@ -0,0 +1,7 @@
- args:
cascade: true
sql: "ALTER TABLE joblines ALTER COLUMN line_ref DROP DEFAULT;\r\nALTER TABLE
joblines\r\n ALTER line_ref TYPE numeric USING CASE WHEN true THEN 0 ELSE
0 END;\r\n \r\n ALTER\r\n TABLE joblines ALTER COLUMN line_ref
SET DEFAULT 0;"
type: run_sql

View File

@@ -0,0 +1,6 @@
- args:
sql: ALTER TABLE "public"."joblines" ALTER COLUMN "line_ref" SET DEFAULT 0;
type: run_sql
- args:
sql: COMMENT ON COLUMN "public"."joblines"."line_ref" IS E'null'
type: run_sql

View File

@@ -0,0 +1,6 @@
- args:
sql: ALTER TABLE "public"."joblines" ALTER COLUMN "line_ref" DROP DEFAULT;
type: run_sql
- args:
sql: COMMENT ON COLUMN "public"."joblines"."line_ref" IS E''
type: run_sql