diff --git a/client/src/components/bill-enter-modal/bill-enter-modal.container.jsx b/client/src/components/bill-enter-modal/bill-enter-modal.container.jsx index 6fb7692a4..d2d0d928a 100644 --- a/client/src/components/bill-enter-modal/bill-enter-modal.container.jsx +++ b/client/src/components/bill-enter-modal/bill-enter-modal.container.jsx @@ -1,18 +1,18 @@ import { useApolloClient, useMutation } from "@apollo/client"; -import { Button, Checkbox, Form, Modal, notification, Space } from "antd"; +import { Button, Checkbox, Form, Modal, Space, notification } from "antd"; import _ from "lodash"; -import React, { useEffect, useState, useMemo } from "react"; +import React, { useEffect, useMemo, useState } from "react"; import { useTranslation } from "react-i18next"; import { connect } from "react-redux"; import { createStructuredSelector } from "reselect"; import { INSERT_NEW_BILL } from "../../graphql/bills.queries"; +import { UPDATE_INVENTORY_LINES } from "../../graphql/inventory.queries"; import { UPDATE_JOB_LINE } from "../../graphql/jobs-lines.queries"; import { QUERY_JOB_LBR_ADJUSTMENTS, UPDATE_JOB, } from "../../graphql/jobs.queries"; import { MUTATION_MARK_RETURN_RECEIVED } from "../../graphql/parts-orders.queries"; -import { UPDATE_INVENTORY_LINES } from "../../graphql/inventory.queries"; import { insertAuditTrail } from "../../redux/application/application.actions"; import { toggleModalVisible } from "../../redux/modals/modals.actions"; import { selectBillEnterModal } from "../../redux/modals/modals.selectors"; @@ -20,15 +20,15 @@ import { selectBodyshop, selectCurrentUser, } from "../../redux/user/user.selectors"; -import confirmDialog from "../../utils/asyncConfirm"; import AuditTrailMapping from "../../utils/AuditTrailMappings"; -import BillFormContainer from "../bill-form/bill-form.container"; -import { CalculateBillTotal } from "../bill-form/bill-form.totals.utility"; -import { handleUpload } from "../documents-upload/documents-upload.utility"; -import { handleUpload as handleLocalUpload } from "../documents-local-upload/documents-local-upload.utility"; -import useLocalStorage from "../../utils/useLocalStorage"; import { GenerateDocument } from "../../utils/RenderTemplate"; import { TemplateList } from "../../utils/TemplateConstants"; +import confirmDialog from "../../utils/asyncConfirm"; +import useLocalStorage from "../../utils/useLocalStorage"; +import BillFormContainer from "../bill-form/bill-form.container"; +import { CalculateBillTotal } from "../bill-form/bill-form.totals.utility"; +import { handleUpload as handleLocalUpload } from "../documents-local-upload/documents-local-upload.utility"; +import { handleUpload } from "../documents-upload/documents-upload.utility"; const mapStateToProps = createStructuredSelector({ billEnterModal: selectBillEnterModal, @@ -126,6 +126,17 @@ function BillEnterModalContainer({ deductedfromlbr: deductedfromlbr, lbr_adjustment, joblineid: i.joblineid === "noline" ? null : i.joblineid, + applicable_taxes: { + federal: + (i.applicable_taxes && i.applicable_taxes.federal) || + false, + state: + (i.applicable_taxes && i.applicable_taxes.state) || + false, + local: + (i.applicable_taxes && i.applicable_taxes.local) || + false, + }, }; }), }, diff --git a/server/accounting/qbxml/qbxml-payables.js b/server/accounting/qbxml/qbxml-payables.js index 5bc99cf5f..6b9951500 100644 --- a/server/accounting/qbxml/qbxml-payables.js +++ b/server/accounting/qbxml/qbxml-payables.js @@ -133,7 +133,10 @@ const generateBillLine = (billLine, responsibilityCenters, jobClass) => { const findTaxCode = (billLine, taxcode) => { const { applicable_taxes: { local, state, federal }, - } = billLine; + } = + billLine.applicable_taxes === null + ? { applicable_taxes: { local: false, state: false, federal: false } } + : billLine; const t = taxcode.filter( (t) => !!t.local === !!local &&