From 09d54722f0aaf74be55d125b990ee97f972075de Mon Sep 17 00:00:00 2001 From: Patrick Fic <> Date: Fri, 6 May 2022 14:25:02 -0700 Subject: [PATCH 1/2] IO-1863 Delete parts return and order line. --- .../parts-order-delete-line.component.jsx | 47 +++++++++++++++++++ .../parts-order-list-table.component.jsx | 22 ++++++--- client/src/graphql/parts-orders.queries.js | 8 ++++ 3 files changed, 71 insertions(+), 6 deletions(-) create mode 100644 client/src/components/parts-order-delete-line/parts-order-delete-line.component.jsx diff --git a/client/src/components/parts-order-delete-line/parts-order-delete-line.component.jsx b/client/src/components/parts-order-delete-line/parts-order-delete-line.component.jsx new file mode 100644 index 000000000..0edad9bb5 --- /dev/null +++ b/client/src/components/parts-order-delete-line/parts-order-delete-line.component.jsx @@ -0,0 +1,47 @@ +import React from "react"; +import { Button, Popconfirm } from "antd"; +import { DeleteFilled } from "@ant-design/icons"; +import { useTranslation } from "react-i18next"; +import { DELETE_PARTS_ORDER_LINE } from "../../graphql/parts-orders.queries"; +import { useMutation } from "@apollo/client"; + +export default function PartsOrderDeleteLine({ + disabled, + partsLineId, + partsOrderId, +}) { + const { t } = useTranslation(); + const [deletePartsOrderLine] = useMutation(DELETE_PARTS_ORDER_LINE); + return ( + { + //Delete the parts return.! + + await deletePartsOrderLine({ + variables: { partsOrderLineId: partsLineId }, + update(cache) { + cache.modify({ + id: cache.identify({ + __typename: "parts_orders", + id: partsOrderId, + }), + fields: { + parts_order_lines(cached, { readField }) { + return cached.filter((c) => { + return readField("id", c) !== partsLineId; + }); + }, + }, + }); + }, + }); + }} + > + + + ); +} diff --git a/client/src/components/parts-order-list-table/parts-order-list-table.component.jsx b/client/src/components/parts-order-list-table/parts-order-list-table.component.jsx index 9806b6cca..ed66ecdd7 100644 --- a/client/src/components/parts-order-list-table/parts-order-list-table.component.jsx +++ b/client/src/components/parts-order-list-table/parts-order-list-table.component.jsx @@ -30,6 +30,7 @@ import { TemplateList } from "../../utils/TemplateConstants"; import DataLabel from "../data-label/data-label.component"; import PartsOrderBackorderEta from "../parts-order-backorder-eta/parts-order-backorder-eta.component"; import PartsOrderCmReceived from "../parts-order-cm-received/parts-order-cm-received.component"; +import PartsOrderDeleteLine from "../parts-order-delete-line/parts-order-delete-line.component"; import PartsOrderLineBackorderButton from "../parts-order-line-backorder-button/parts-order-line-backorder-button.component"; import PartsReceiveModalContainer from "../parts-receive-modal/parts-receive-modal.container"; import PrintWrapper from "../print-wrapper/print-wrapper.component"; @@ -391,12 +392,21 @@ export function PartsOrderListTableComponent({ dataIndex: "actions", key: "actions", render: (text, record) => ( - + + + + ), }, ]; diff --git a/client/src/graphql/parts-orders.queries.js b/client/src/graphql/parts-orders.queries.js index e95537021..f415eeab6 100644 --- a/client/src/graphql/parts-orders.queries.js +++ b/client/src/graphql/parts-orders.queries.js @@ -292,6 +292,14 @@ export const DELETE_PARTS_ORDER = gql` } `; +export const DELETE_PARTS_ORDER_LINE = gql` + mutation DELETE_PARTS_ORDER_LINE($partsOrderLineId: uuid!) { + delete_parts_order_lines_by_pk(id: $partsOrderLineId) { + id + } + } +`; + export const MUTATION_UPDATE_PO_CM_REECEIVED = gql` mutation MUTATION_UPDATE_PO_CM_REECEIVED( $partsLineId: uuid! From cf23266831a7dd5063eb03166ab1e063879b7752 Mon Sep 17 00:00:00 2001 From: Patrick Fic <> Date: Fri, 6 May 2022 14:30:26 -0700 Subject: [PATCH 2/2] IO-1853 Change attendance recipe type to text. --- .../time-tickets-attendance-table.component.jsx | 2 +- client/src/utils/RenderTemplate.js | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/client/src/components/time-tickets-attendance-table/time-tickets-attendance-table.component.jsx b/client/src/components/time-tickets-attendance-table/time-tickets-attendance-table.component.jsx index 8448eb131..ce7c4b34f 100644 --- a/client/src/components/time-tickets-attendance-table/time-tickets-attendance-table.component.jsx +++ b/client/src/components/time-tickets-attendance-table/time-tickets-attendance-table.component.jsx @@ -28,7 +28,7 @@ export default function TimeTicketsAttendanceTable() { }, }, {}, - "x" + "text" ); setLoading(false); diff --git a/client/src/utils/RenderTemplate.js b/client/src/utils/RenderTemplate.js index 9fa495e4e..6c5bbba31 100644 --- a/client/src/utils/RenderTemplate.js +++ b/client/src/utils/RenderTemplate.js @@ -18,7 +18,8 @@ export default async function RenderTemplate( templateObject, bodyshop, renderAsHtml = false, - renderAsExcel = false + renderAsExcel = false, + renderAsText = false ) { //Query assets that match the template name. Must be in format <>.query let { contextData, useShopSpecificTemplate } = await fetchContextData( @@ -54,6 +55,7 @@ export default async function RenderTemplate( }), }), ...(renderAsExcel ? { recipe: "html-to-xlsx" } : {}), + ...(renderAsText ? { recipe: "text" } : {}), }, data: { ...contextData, @@ -254,6 +256,9 @@ export const GenerateDocument = async ( } else if (sendType === "x") { console.log("excel"); await RenderTemplate(template, bodyshop, false, true); + } else if (sendType === "x") { + console.log("text"); + await RenderTemplate(template, bodyshop, false, false, true); } else { await RenderTemplate(template, bodyshop); }