Merged in release/2021-12-17 (pull request #313)

release/2021-12-17

Approved-by: Patrick Fic
This commit is contained in:
Patrick Fic
2021-12-17 17:56:25 +00:00
8 changed files with 42 additions and 35 deletions

View File

@@ -3,6 +3,10 @@
{
"pattern": "**/Test.xml",
"systemId": "file:///Users/pfic/Downloads/IMEX.xsd"
},
{
"pattern": "**/IMEX.xml",
"systemId": "logs/IMEX.xsd"
}
]
}

View File

@@ -134,3 +134,11 @@
background: unset;
}
}
.ReactGridGallery_tile-icon-bar {
div {
svg {
fill: #1890ff;
}
}
}

View File

@@ -110,13 +110,6 @@ export function AccountingReceivablesTableComponent({
sorter: (a, b) => alphaSort(a.clm_no, b.clm_no),
sortOrder:
state.sortedInfo.columnKey === "clm_no" && state.sortedInfo.order,
render: (text, record) => {
return record.clm_no ? (
<span>{record.clm_no}</span>
) : (
t("general.labels.unknown")
);
},
},
{
title: t("jobs.fields.clm_total"),
@@ -126,11 +119,7 @@ export function AccountingReceivablesTableComponent({
sortOrder:
state.sortedInfo.columnKey === "clm_total" && state.sortedInfo.order,
render: (text, record) => {
return record.clm_total ? (
<CurrencyFormatter>{record.clm_total}</CurrencyFormatter>
) : (
t("general.labels.unknown")
);
return <CurrencyFormatter>{record.clm_total}</CurrencyFormatter>;
},
},
{

View File

@@ -1,10 +1,10 @@
import React, { useState, useEffect } from "react";
import { Input, notification, Space } from "antd";
import { FieldTimeOutlined } from "@ant-design/icons";
import LoadingSpinner from "../loading-spinner/loading-spinner.component";
import { useMutation } from "@apollo/client";
import { UPDATE_JOB_LINE } from "../../graphql/jobs-lines.queries";
import { Input, notification } from "antd";
import React, { useEffect, useState } from "react";
import { useTranslation } from "react-i18next";
import { UPDATE_JOB_LINE } from "../../graphql/jobs-lines.queries";
import LoadingSpinner from "../loading-spinner/loading-spinner.component";
export default function JobLineNotePopup({ jobline, disabled }) {
const [editing, setEditing] = useState(false);
@@ -57,21 +57,21 @@ export default function JobLineNotePopup({ jobline, disabled }) {
);
return (
<div>
{jobline.ioucreated && (
<Space>
<FieldTimeOutlined />
{t("joblines.labels.ioucreated")}
</Space>
)}
<div
style={{
width: "100%",
minHeight: "2rem",
...(jobline.ioucreated ? {} : { minHeight: "2rem" }),
cursor: "pointer",
}}
onClick={() => !disabled && setEditing(true)}
>
{jobline.notes}
{jobline.ioucreated && (
<div>
<FieldTimeOutlined style={{ margin: 0, padding: 0 }} />
{t("joblines.labels.ioucreated")}
</div>
)}
{jobline.notes || null}
</div>
</div>
);

View File

@@ -61,6 +61,7 @@ export function JobLineStatusPopup({ bodyshop, jobline, disabled }) {
value={status}
onSelect={handleChange}
onBlur={handleSave}
onClear={() => handleChange(null)}
>
{Object.values(bodyshop.md_order_statuses).map((s, idx) => (
<Select.Option key={idx} value={s}>

View File

@@ -109,7 +109,7 @@ export async function CreateIouForJob(
delete line.id;
delete line.__typename;
line.oem_partno = `${line.oem_partno ? `${line.oem_partno} - ` : ``}IOU $${
line.act_price || 0
(line.act_price && line.act_price.toFixed(2)) || 0
}/${line.mod_lb_hrs || 0}hrs`;
line.act_price = 0;
line.mod_lb_hrs = 0;

View File

@@ -5,6 +5,7 @@ const moment = require("moment");
var builder = require("xmlbuilder2");
const _ = require("lodash");
const logger = require("../utils/logger");
const fs = require("fs");
require("dotenv").config({
path: path.resolve(
process.cwd(),
@@ -47,7 +48,7 @@ exports.default = async (req, res) => {
try {
const { jobs } = await client.request(queries.AUTOHOUSE_QUERY, {
bodyshopid: bodyshop.id,
start: moment().subtract(30, "days").startOf("day"),
start: moment().subtract(3, "days").startOf("day"),
});
const autoHouseObject = {
@@ -111,13 +112,16 @@ exports.default = async (req, res) => {
});
}
}
res.json(allxmlsToUpload);
if (process.env.NODE_ENV !== "production") {
res.json(allxmlsToUpload);
return;
//if (process.env.NODE_ENV !== "production") {
for (const xmlObj of allxmlsToUpload) {
fs.writeFileSync(`./logs/${xmlObj.filename}`, xmlObj.xml);
}
res.json(allxmlsToUpload);
return;
// }
let sftp = new Client();
sftp.on("error", (errors) =>
logger.log("autohouse-sftp-error", "ERROR", "api", null, {
@@ -631,8 +635,9 @@ const CreateCosts = (job) => {
billTotalsByCostCenters[defaultCosts.PAP] || Dinero()
),
PartsAMCost: billTotalsByCostCenters[defaultCosts.PAA] || Dinero(),
PartsReconditionedCost: Dinero(),
PartsRecycledCost: billTotalsByCostCenters[defaultCosts.PAR] || Dinero(),
PartsReconditionedCost:
billTotalsByCostCenters[defaultCosts.PAM] || Dinero(),
PartsRecycledCost: billTotalsByCostCenters[defaultCosts.PAL] || Dinero(),
PartsOtherCost: billTotalsByCostCenters[defaultCosts.PAO] || Dinero(),
SubletTotalCost: billTotalsByCostCenters[defaultCosts.PAS] || Dinero(),
BodyLaborTotalCost: ticketTotalsByCostCenter[defaultCosts.LAB] || Dinero(),
@@ -700,7 +705,7 @@ const GenerateDetailLines = (line, statuses) => {
OrderedOn: null,
OriginalCost: null,
OriginalInvoiceNumber: null,
PriceEach: (line.billlines[0] && line.billlines[0].actual_cost) || 0,
PriceEach: (line.billlines[0] && line.billlines[0].retail_price) || 0,
PartNumber: _.escape(line.oem_partno),
ProfitPercent: null,
PurchaseOrderNumber: null,
@@ -717,7 +722,7 @@ const GenerateDetailLines = (line, statuses) => {
OrderedBy: null,
ShipVia: null,
VendorContact: null,
EstimateAmount: line.act_price || 0,
EstimateAmount: line.act_price * line.part_qty || 0, //Rebecca
};
return ret;
};

View File

@@ -525,7 +525,7 @@ exports.QUERY_EMPLOYEE_PIN = `query QUERY_EMPLOYEE_PIN($shopId: uuid!, $employee
}`;
exports.AUTOHOUSE_QUERY = `query AUTOHOUSE_EXPORT($start: timestamptz, $bodyshopid: uuid!) {
jobs(where: {_and: [{converted: {_eq: true}}, {updated_at: {_gt: $start}}, {shopid: {_eq: $bodyshopid}}]} ) {
jobs(where: {_and: [{converted: {_eq: true}}, {updated_at: {_gt: $start}}, {shopid: {_eq: $bodyshopid}}]}) {
id
ro_number
status