IO-3624 Refine Rome responsibility center tax layout
This commit is contained in:
@@ -3316,22 +3316,22 @@ export function ShopInfoResponsibilityCenterComponent({ bodyshop, form }) {
|
||||
<>
|
||||
{InstanceRenderManager({
|
||||
rome: (
|
||||
<>
|
||||
<LayoutFormRow header={t("bodyshop.labels.responsibilitycenters.quickbooks_us")} id="quickbooks_us">
|
||||
<Form.Item
|
||||
label={t("bodyshop.fields.responsibilitycenters.itemexemptcode")}
|
||||
label={t("bodyshop.fields.responsibilitycenters.itemexemptcode_short")}
|
||||
rules={[{ required: true }]}
|
||||
name={["md_responsibility_centers", "taxes", "itemexemptcode"]}
|
||||
>
|
||||
<Input />
|
||||
</Form.Item>
|
||||
<Form.Item
|
||||
label={t("bodyshop.fields.responsibilitycenters.invoiceexemptcode")}
|
||||
label={t("bodyshop.fields.responsibilitycenters.invoiceexemptcode_short")}
|
||||
rules={[{ required: true }]}
|
||||
name={["md_responsibility_centers", "taxes", "invoiceexemptcode"]}
|
||||
>
|
||||
<Input />
|
||||
</Form.Item>
|
||||
</>
|
||||
</LayoutFormRow>
|
||||
)
|
||||
})}
|
||||
<LayoutFormRow header={<div>AR</div>} id="AR">
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Collapse, Divider, Form, Input, InputNumber, Space, Switch } from "antd";
|
||||
import { Col, Collapse, Form, Input, InputNumber, Row, Switch } from "antd";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { connect } from "react-redux";
|
||||
import { createStructuredSelector } from "reselect";
|
||||
@@ -6,6 +6,7 @@ import { selectBodyshop } from "../../redux/user/user.selectors";
|
||||
import InstanceRenderManager from "../../utils/instanceRenderMgr";
|
||||
import LayoutFormRow from "../layout-form-row/layout-form-row.component";
|
||||
import { bodyshopHasDmsKey } from "../../utils/dmsUtils.js";
|
||||
import "./shop-info.responsibilitycenters.taxes.styles.scss";
|
||||
|
||||
const mapStateToProps = createStructuredSelector({
|
||||
//currentUser: selectCurrentUser
|
||||
@@ -16,47 +17,96 @@ const mapDispatchToProps = () => ({
|
||||
});
|
||||
export default connect(mapStateToProps, mapDispatchToProps)(ShopInfoResponsibilityCenters);
|
||||
|
||||
const taxRootColProps = {
|
||||
xs: 24,
|
||||
sm: 12,
|
||||
md: 8,
|
||||
lg: { flex: "0 0 280px" },
|
||||
xl: { flex: "0 0 240px" },
|
||||
xxl: { flex: "0 0 300px" }
|
||||
};
|
||||
|
||||
const taxTierFieldColProps = {
|
||||
xs: 24,
|
||||
sm: 12,
|
||||
lg: 6
|
||||
};
|
||||
|
||||
export function ShopInfoResponsibilityCenters({ bodyshop, form }) {
|
||||
const { t } = useTranslation();
|
||||
//Iteratively build the form items.
|
||||
const formItems = [];
|
||||
for (let tyCounter = 1; tyCounter <= 5; tyCounter++) {
|
||||
const section = [];
|
||||
const profileTaxCards = [];
|
||||
for (let typeNum = 1; typeNum <= 5; typeNum++) {
|
||||
const rootTaxItems = getRootTaxFormItems({ typeNum, bodyshop, t });
|
||||
|
||||
section.push(
|
||||
TaxFormItems({
|
||||
typeNum: tyCounter,
|
||||
rootElements: true,
|
||||
bodyshop
|
||||
})
|
||||
profileTaxCards.push(
|
||||
<LayoutFormRow key={`profile-tax-type-${typeNum}`} header={t("bodyshop.labels.responsibilitycenters.tax_type_card", { typeNum })}>
|
||||
<div style={{ display: "grid", rowGap: 12 }}>
|
||||
<Row gutter={[16, 16]} wrap>
|
||||
{rootTaxItems.map((item, index) => (
|
||||
<Col key={item.key ?? `tax-root-${typeNum}-${index}`} {...taxRootColProps}>
|
||||
{item}
|
||||
</Col>
|
||||
))}
|
||||
</Row>
|
||||
<Row gutter={[12, 12]} wrap className="responsibility-centers-tax-tier-grid">
|
||||
{Array.from({ length: 5 }, (_, index) => {
|
||||
const typeNumIterator = index + 1;
|
||||
const tierTaxItems = getTierTaxFormItems({
|
||||
typeNum,
|
||||
typeNumIterator,
|
||||
t
|
||||
});
|
||||
|
||||
return (
|
||||
<Col
|
||||
key={`tax-tier-row-${typeNum}-${typeNumIterator}`}
|
||||
xs={24}
|
||||
className="responsibility-centers-tax-tier-grid__col"
|
||||
>
|
||||
<LayoutFormRow
|
||||
header={t("bodyshop.labels.responsibilitycenters.tax_tier_card", { typeNumIterator })}
|
||||
style={{ marginBottom: 0 }}
|
||||
styles={{
|
||||
header: {
|
||||
paddingInline: 12
|
||||
},
|
||||
body: {
|
||||
padding: 12
|
||||
}
|
||||
}}
|
||||
>
|
||||
<Row gutter={[12, 8]} wrap>
|
||||
{tierTaxItems.map((item, tierIndex) => (
|
||||
<Col key={item.key ?? `tax-tier-${typeNum}-${typeNumIterator}-${tierIndex}`} {...taxTierFieldColProps}>
|
||||
{item}
|
||||
</Col>
|
||||
))}
|
||||
</Row>
|
||||
</LayoutFormRow>
|
||||
</Col>
|
||||
);
|
||||
})}
|
||||
</Row>
|
||||
</div>
|
||||
</LayoutFormRow>
|
||||
);
|
||||
for (let iterator = 1; iterator <= 5; iterator++) {
|
||||
section.push(
|
||||
TaxFormItems({
|
||||
typeNum: tyCounter,
|
||||
typeNumIterator: iterator,
|
||||
rootElements: false
|
||||
})
|
||||
);
|
||||
}
|
||||
formItems.push(<Space wrap>{section}</Space>);
|
||||
formItems.push(<Divider />);
|
||||
}
|
||||
|
||||
return (
|
||||
<>
|
||||
<Divider titlePlacement="left" orientation="horizontal" style={{ marginTop: ".8rem" }}>
|
||||
{t("jobs.labels.cieca_pft")}
|
||||
</Divider>
|
||||
{formItems}
|
||||
<LayoutFormRow header={t("jobs.labels.cieca_pft")}>
|
||||
<div>{profileTaxCards}</div>
|
||||
</LayoutFormRow>
|
||||
|
||||
<Collapse
|
||||
items={[
|
||||
{
|
||||
key: "cieca_pfl",
|
||||
label: t("jobs.labels.cieca_pfl"),
|
||||
forceRender: true,
|
||||
children: (
|
||||
<>
|
||||
<LayoutFormRow header={t("bodyshop.labels.responsibilitycenters.default_tax_setup")}>
|
||||
<Collapse
|
||||
items={[
|
||||
{
|
||||
key: "cieca_pfl",
|
||||
label: t("jobs.labels.cieca_pfl"),
|
||||
forceRender: true,
|
||||
children: (
|
||||
<>
|
||||
<LayoutFormRow header={t("joblines.fields.lbr_types.LAB")}>
|
||||
<Form.Item
|
||||
label={t("jobs.fields.cieca_pfl.lbr_adjp")}
|
||||
@@ -893,15 +943,15 @@ export function ShopInfoResponsibilityCenters({ bodyshop, form }) {
|
||||
<Switch />
|
||||
</Form.Item>
|
||||
</LayoutFormRow>
|
||||
</>
|
||||
)
|
||||
},
|
||||
{
|
||||
key: "cieca_pfo",
|
||||
label: t("jobs.labels.cieca_pfo"),
|
||||
forceRender: true,
|
||||
children: (
|
||||
<>
|
||||
</>
|
||||
)
|
||||
},
|
||||
{
|
||||
key: "cieca_pfo",
|
||||
label: t("jobs.labels.cieca_pfo"),
|
||||
forceRender: true,
|
||||
children: (
|
||||
<>
|
||||
<LayoutFormRow noDivider>
|
||||
<Form.Item
|
||||
label={t("jobs.fields.cieca_pfo.tow_t_in1")}
|
||||
@@ -2145,76 +2195,74 @@ export function ShopInfoResponsibilityCenters({ bodyshop, form }) {
|
||||
<InputNumber min={0} max={100} precision={4} />
|
||||
</Form.Item>
|
||||
</LayoutFormRow>
|
||||
</>
|
||||
)
|
||||
}
|
||||
]}
|
||||
/>
|
||||
</>
|
||||
)
|
||||
}
|
||||
]}
|
||||
/>
|
||||
</LayoutFormRow>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
function TaxFormItems({ typeNum, typeNumIterator, rootElements, bodyshop }) {
|
||||
const { t } = useTranslation();
|
||||
|
||||
if (rootElements)
|
||||
return (
|
||||
<>
|
||||
<Form.Item
|
||||
label={t("bodyshop.fields.responsibilitycenter_tax_type", {
|
||||
typeNum,
|
||||
typeNumIterator
|
||||
})}
|
||||
rules={[
|
||||
{
|
||||
required: true
|
||||
//message: t("general.validation.required"),
|
||||
}
|
||||
]}
|
||||
name={["md_responsibility_centers", "taxes", `tax_ty${typeNum}`, `tax_type${typeNum}`]}
|
||||
>
|
||||
<Input />
|
||||
</Form.Item>
|
||||
|
||||
<Form.Item
|
||||
label={t("bodyshop.fields.responsibilitycenters.state_tax")}
|
||||
rules={[
|
||||
{
|
||||
required: true
|
||||
//message: t("general.validation.required"),
|
||||
}
|
||||
]}
|
||||
name={["md_responsibility_centers", "taxes", `tax_ty${typeNum}`, "name"]}
|
||||
>
|
||||
<Input />
|
||||
</Form.Item>
|
||||
|
||||
<Form.Item
|
||||
label={t("bodyshop.fields.responsibilitycenter_accountdesc")}
|
||||
rules={[
|
||||
{
|
||||
required: true
|
||||
//message: t("general.validation.required"),
|
||||
}
|
||||
]}
|
||||
name={["md_responsibility_centers", "taxes", `tax_ty${typeNum}`, "accountdesc"]}
|
||||
>
|
||||
<Input />
|
||||
</Form.Item>
|
||||
<Form.Item
|
||||
label={t("bodyshop.fields.responsibilitycenter_accountitem")}
|
||||
rules={[
|
||||
{
|
||||
required: true
|
||||
//message: t("general.validation.required"),
|
||||
}
|
||||
]}
|
||||
name={["md_responsibility_centers", "taxes", `tax_ty${typeNum}`, "accountitem"]}
|
||||
>
|
||||
<Input />
|
||||
</Form.Item>
|
||||
{bodyshopHasDmsKey(bodyshop) && (
|
||||
function getRootTaxFormItems({ typeNum, bodyshop, t }) {
|
||||
return [
|
||||
<Form.Item
|
||||
key={`tax_type_${typeNum}_type`}
|
||||
label={t("bodyshop.fields.responsibilitycenter_tax_type", { typeNum })}
|
||||
rules={[
|
||||
{
|
||||
required: true
|
||||
//message: t("general.validation.required"),
|
||||
}
|
||||
]}
|
||||
name={["md_responsibility_centers", "taxes", `tax_ty${typeNum}`, `tax_type${typeNum}`]}
|
||||
>
|
||||
<Input />
|
||||
</Form.Item>,
|
||||
<Form.Item
|
||||
key={`tax_type_${typeNum}_name`}
|
||||
label={t("bodyshop.fields.responsibilitycenters.state_tax")}
|
||||
rules={[
|
||||
{
|
||||
required: true
|
||||
//message: t("general.validation.required"),
|
||||
}
|
||||
]}
|
||||
name={["md_responsibility_centers", "taxes", `tax_ty${typeNum}`, "name"]}
|
||||
>
|
||||
<Input />
|
||||
</Form.Item>,
|
||||
<Form.Item
|
||||
key={`tax_type_${typeNum}_accountdesc`}
|
||||
label={t("bodyshop.fields.responsibilitycenter_accountdesc")}
|
||||
rules={[
|
||||
{
|
||||
required: true
|
||||
//message: t("general.validation.required"),
|
||||
}
|
||||
]}
|
||||
name={["md_responsibility_centers", "taxes", `tax_ty${typeNum}`, "accountdesc"]}
|
||||
>
|
||||
<Input />
|
||||
</Form.Item>,
|
||||
<Form.Item
|
||||
key={`tax_type_${typeNum}_accountitem`}
|
||||
label={t("bodyshop.fields.responsibilitycenter_accountitem")}
|
||||
rules={[
|
||||
{
|
||||
required: true
|
||||
//message: t("general.validation.required"),
|
||||
}
|
||||
]}
|
||||
name={["md_responsibility_centers", "taxes", `tax_ty${typeNum}`, "accountitem"]}
|
||||
>
|
||||
<Input />
|
||||
</Form.Item>,
|
||||
...(bodyshopHasDmsKey(bodyshop)
|
||||
? [
|
||||
<Form.Item
|
||||
key={`tax_type_${typeNum}_dms_acctnumber`}
|
||||
label={t("bodyshop.fields.dms.dms_acctnumber")}
|
||||
rules={[
|
||||
{
|
||||
@@ -2226,71 +2274,64 @@ function TaxFormItems({ typeNum, typeNumIterator, rootElements, bodyshop }) {
|
||||
>
|
||||
<Input />
|
||||
</Form.Item>
|
||||
)}
|
||||
</>
|
||||
);
|
||||
return (
|
||||
<>
|
||||
<Form.Item
|
||||
label={t("bodyshop.fields.responsibilitycenter_tax_tier", {
|
||||
typeNum,
|
||||
typeNumIterator
|
||||
})}
|
||||
rules={[
|
||||
{
|
||||
required: true
|
||||
//message: t("general.validation.required"),
|
||||
}
|
||||
]}
|
||||
name={["md_responsibility_centers", "taxes", `tax_ty${typeNum}`, `ty${typeNum}_tier${typeNumIterator}`]}
|
||||
>
|
||||
<InputNumber precision={0} min={0} />
|
||||
</Form.Item>
|
||||
<Form.Item
|
||||
label={t("bodyshop.fields.responsibilitycenter_tax_thres", {
|
||||
typeNum,
|
||||
typeNumIterator
|
||||
})}
|
||||
rules={[
|
||||
{
|
||||
required: true
|
||||
//message: t("general.validation.required"),
|
||||
}
|
||||
]}
|
||||
name={["md_responsibility_centers", "taxes", `tax_ty${typeNum}`, `ty${typeNum}_thres${typeNumIterator}`]}
|
||||
>
|
||||
<InputNumber min={0} precision={2} />
|
||||
</Form.Item>
|
||||
<Form.Item
|
||||
label={t("bodyshop.fields.responsibilitycenter_tax_rate", {
|
||||
typeNum,
|
||||
typeNumIterator
|
||||
})}
|
||||
rules={[
|
||||
{
|
||||
required: true
|
||||
//message: t("general.validation.required"),
|
||||
}
|
||||
]}
|
||||
name={["md_responsibility_centers", "taxes", `tax_ty${typeNum}`, `ty${typeNum}_rate${typeNumIterator}`]}
|
||||
>
|
||||
<InputNumber min={0} precision={2} />
|
||||
</Form.Item>
|
||||
<Form.Item
|
||||
label={t("bodyshop.fields.responsibilitycenter_tax_sur", {
|
||||
typeNum,
|
||||
typeNumIterator
|
||||
})}
|
||||
rules={[
|
||||
{
|
||||
required: true
|
||||
//message: t("general.validation.required"),
|
||||
}
|
||||
]}
|
||||
name={["md_responsibility_centers", "taxes", `tax_ty${typeNum}`, `ty${typeNum}_sur${typeNumIterator}`]}
|
||||
>
|
||||
<InputNumber min={0} precision={2} />
|
||||
</Form.Item>
|
||||
</>
|
||||
);
|
||||
]
|
||||
: [])
|
||||
];
|
||||
}
|
||||
|
||||
function getTierTaxFormItems({ typeNum, typeNumIterator, t }) {
|
||||
return [
|
||||
<Form.Item
|
||||
key={`tax_type_${typeNum}_tier_${typeNumIterator}`}
|
||||
label={t("bodyshop.labels.responsibilitycenters.tax_tier_short")}
|
||||
rules={[
|
||||
{
|
||||
required: true
|
||||
//message: t("general.validation.required"),
|
||||
}
|
||||
]}
|
||||
name={["md_responsibility_centers", "taxes", `tax_ty${typeNum}`, `ty${typeNum}_tier${typeNumIterator}`]}
|
||||
>
|
||||
<InputNumber precision={0} min={0} />
|
||||
</Form.Item>,
|
||||
<Form.Item
|
||||
key={`tax_type_${typeNum}_threshold_${typeNumIterator}`}
|
||||
label={t("bodyshop.labels.responsibilitycenters.tax_threshold_short")}
|
||||
rules={[
|
||||
{
|
||||
required: true
|
||||
//message: t("general.validation.required"),
|
||||
}
|
||||
]}
|
||||
name={["md_responsibility_centers", "taxes", `tax_ty${typeNum}`, `ty${typeNum}_thres${typeNumIterator}`]}
|
||||
>
|
||||
<InputNumber min={0} precision={2} />
|
||||
</Form.Item>,
|
||||
<Form.Item
|
||||
key={`tax_type_${typeNum}_rate_${typeNumIterator}`}
|
||||
label={t("bodyshop.labels.responsibilitycenters.tax_rate_short")}
|
||||
rules={[
|
||||
{
|
||||
required: true
|
||||
//message: t("general.validation.required"),
|
||||
}
|
||||
]}
|
||||
name={["md_responsibility_centers", "taxes", `tax_ty${typeNum}`, `ty${typeNum}_rate${typeNumIterator}`]}
|
||||
>
|
||||
<InputNumber min={0} precision={2} />
|
||||
</Form.Item>,
|
||||
<Form.Item
|
||||
key={`tax_type_${typeNum}_surcharge_${typeNumIterator}`}
|
||||
label={t("bodyshop.labels.responsibilitycenters.tax_surcharge_short")}
|
||||
rules={[
|
||||
{
|
||||
required: true
|
||||
//message: t("general.validation.required"),
|
||||
}
|
||||
]}
|
||||
name={["md_responsibility_centers", "taxes", `tax_ty${typeNum}`, `ty${typeNum}_sur${typeNumIterator}`]}
|
||||
>
|
||||
<InputNumber min={0} precision={2} />
|
||||
</Form.Item>
|
||||
];
|
||||
}
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
.responsibility-centers-tax-tier-grid__col.ant-col {
|
||||
flex: 0 0 100%;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
@media (min-width: 992px) {
|
||||
.responsibility-centers-tax-tier-grid__col.ant-col {
|
||||
flex: 0 0 50%;
|
||||
max-width: 50%;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1600px) {
|
||||
.responsibility-centers-tax-tier-grid__col.ant-col {
|
||||
flex: 0 0 25%;
|
||||
max-width: 25%;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 2400px) {
|
||||
.responsibility-centers-tax-tier-grid__col.ant-col {
|
||||
flex: 0 0 20%;
|
||||
max-width: 20%;
|
||||
}
|
||||
}
|
||||
@@ -5,6 +5,7 @@ import LayoutFormRow from "../layout-form-row/layout-form-row.component";
|
||||
import { connect } from "react-redux";
|
||||
import { createStructuredSelector } from "reselect";
|
||||
import { selectBodyshop } from "../../redux/user/user.selectors";
|
||||
import InstanceRenderManager from "../../utils/instanceRenderMgr";
|
||||
|
||||
const mapStateToProps = createStructuredSelector({
|
||||
bodyshop: selectBodyshop
|
||||
@@ -29,7 +30,12 @@ export function ShopInfoIntellipay({ bodyshop, form }) {
|
||||
}}
|
||||
</Form.Item>
|
||||
|
||||
<LayoutFormRow header={t("bodyshop.labels.imexpay")}>
|
||||
<LayoutFormRow
|
||||
header={InstanceRenderManager({
|
||||
rome: t("bodyshop.labels.romepay"),
|
||||
imex: t("bodyshop.labels.imexpay")
|
||||
})}
|
||||
>
|
||||
<Form.Item
|
||||
label={t("bodyshop.fields.intellipay_config.enable_cash_discount")}
|
||||
valuePropName="checked"
|
||||
|
||||
@@ -600,11 +600,13 @@
|
||||
"gogcode": "GOG Code (BreakOut)",
|
||||
"gst_override": "GST Override Account #",
|
||||
"invoiceexemptcode": "QuickBooks US - Invoice Tax Exempt Code",
|
||||
"invoiceexemptcode_short": "Invoice Tax Exempt Code",
|
||||
"item_type": "Item Type",
|
||||
"item_type_freight": "Freight",
|
||||
"item_type_gog": "GOG",
|
||||
"item_type_paint": "Paint Materials",
|
||||
"itemexemptcode": "QuickBooks US - Line Item Tax Exempt Code",
|
||||
"itemexemptcode_short": "Line Item Tax Exempt Code",
|
||||
"la1": "LA1",
|
||||
"la2": "LA2",
|
||||
"la3": "LA3",
|
||||
@@ -779,9 +781,17 @@
|
||||
"rbac_options": "Role Based Access Control Options",
|
||||
"responsibilitycenters": {
|
||||
"costs": "Cost Centers",
|
||||
"default_tax_setup": "Default Tax Setup",
|
||||
"profits": "Profit Centers",
|
||||
"quickbooks_us": "QuickBooks US",
|
||||
"sales_tax_codes": "Sales Tax Codes",
|
||||
"tax_accounts": "Tax Accounts",
|
||||
"tax_rate_short": "Rate",
|
||||
"tax_surcharge_short": "Surcharge",
|
||||
"tax_threshold_short": "Threshold",
|
||||
"tax_tier_card": "Tier {{typeNumIterator}}",
|
||||
"tax_tier_short": "Tier",
|
||||
"tax_type_card": "Tax Type {{typeNum}}",
|
||||
"title": "Responsibility Centers",
|
||||
"ttl_adjustment": "Subtotal Adjustment Account",
|
||||
"ttl_tax_adjustment": "Tax Adjustment Account"
|
||||
|
||||
@@ -600,11 +600,13 @@
|
||||
"gogcode": "",
|
||||
"gst_override": "",
|
||||
"invoiceexemptcode": "",
|
||||
"invoiceexemptcode_short": "",
|
||||
"item_type": "Item Type",
|
||||
"item_type_freight": "",
|
||||
"item_type_gog": "",
|
||||
"item_type_paint": "",
|
||||
"itemexemptcode": "",
|
||||
"itemexemptcode_short": "",
|
||||
"la1": "",
|
||||
"la2": "",
|
||||
"la3": "",
|
||||
@@ -779,9 +781,17 @@
|
||||
"rbac_options": "",
|
||||
"responsibilitycenters": {
|
||||
"costs": "",
|
||||
"default_tax_setup": "",
|
||||
"profits": "",
|
||||
"quickbooks_us": "",
|
||||
"sales_tax_codes": "",
|
||||
"tax_accounts": "",
|
||||
"tax_rate_short": "",
|
||||
"tax_surcharge_short": "",
|
||||
"tax_threshold_short": "",
|
||||
"tax_tier_card": "",
|
||||
"tax_tier_short": "",
|
||||
"tax_type_card": "",
|
||||
"title": "",
|
||||
"ttl_adjustment": "",
|
||||
"ttl_tax_adjustment": ""
|
||||
|
||||
@@ -600,11 +600,13 @@
|
||||
"gogcode": "",
|
||||
"gst_override": "",
|
||||
"invoiceexemptcode": "",
|
||||
"invoiceexemptcode_short": "",
|
||||
"item_type": "Item Type",
|
||||
"item_type_freight": "",
|
||||
"item_type_gog": "",
|
||||
"item_type_paint": "",
|
||||
"itemexemptcode": "",
|
||||
"itemexemptcode_short": "",
|
||||
"la1": "",
|
||||
"la2": "",
|
||||
"la3": "",
|
||||
@@ -779,9 +781,17 @@
|
||||
"rbac_options": "",
|
||||
"responsibilitycenters": {
|
||||
"costs": "",
|
||||
"default_tax_setup": "",
|
||||
"profits": "",
|
||||
"quickbooks_us": "",
|
||||
"sales_tax_codes": "",
|
||||
"tax_accounts": "",
|
||||
"tax_rate_short": "",
|
||||
"tax_surcharge_short": "",
|
||||
"tax_threshold_short": "",
|
||||
"tax_tier_card": "",
|
||||
"tax_tier_short": "",
|
||||
"tax_type_card": "",
|
||||
"title": "",
|
||||
"ttl_adjustment": "",
|
||||
"ttl_tax_adjustment": ""
|
||||
|
||||
Reference in New Issue
Block a user