Add additional EMS out files.
This commit is contained in:
@@ -13,10 +13,272 @@ const EmsPartsOrderGeneratePflFile = async (
|
||||
partsOrder: EmsPartsOrder,
|
||||
): Promise<boolean> => {
|
||||
try {
|
||||
const records = Object.keys(partsOrder.job.cieca_pfl).map((key) => {
|
||||
const record: DecodedPflLine = partsOrder.job.cieca_pfl[key];
|
||||
return uppercaseObjectKeys(record);
|
||||
});
|
||||
let records;
|
||||
|
||||
if (partsOrder.job.cieca_pfl) {
|
||||
Object.keys(partsOrder.job.cieca_pfl).map((key) => {
|
||||
const record: DecodedPflLine = partsOrder.job.cieca_pfl[key];
|
||||
return uppercaseObjectKeys(record);
|
||||
});
|
||||
} else {
|
||||
//We don't have the PFL data for an old job, so make it manually.
|
||||
|
||||
records = [
|
||||
{
|
||||
LBR_TYPE: "LAA",
|
||||
LBR_DESC: "",
|
||||
LBR_RATE: partsOrder.job.rate_laa,
|
||||
LBR_TAX_IN: true,
|
||||
LBR_TAXP: null, // Job.bodyshop.bill_tax_rates.state_tax_rate?.Value ?? 0,
|
||||
LBR_ADJP: 0,
|
||||
LBR_TX_TY1: null, //partsOrder.job.lbr_tx_ty1,
|
||||
LBR_TX_IN1: null, //partsOrder.job.lbr_tx_in1,
|
||||
LBR_TX_TY2: null, //partsOrder.job.lbr_tx_ty2,
|
||||
LBR_TX_IN2: null, //partsOrder.job.lbr_tx_in2,
|
||||
LBR_TX_TY3: null, //partsOrder.job.lbr_tx_ty3,
|
||||
LBR_TX_IN3: null, //partsOrder.job.lbr_tx_in3,
|
||||
LBR_TX_TY4: null, //partsOrder.job.lbr_tx_ty4,
|
||||
LBR_TX_IN4: null, //partsOrder.job.lbr_tx_in4,
|
||||
LBR_TX_TY5: null, //partsOrder.job.lbr_tx_ty5,
|
||||
LBR_TX_IN5: null, //partsOrder.job.lbr_tx_in5,
|
||||
},
|
||||
{
|
||||
LBR_TYPE: "LAB",
|
||||
LBR_DESC: "",
|
||||
LBR_RATE: partsOrder.job.rate_lab,
|
||||
LBR_TAX_IN: true,
|
||||
LBR_TAXP: null, // Job.bodyshop.bill_tax_rates.state_tax_rate?.Value ?? 0,
|
||||
LBR_ADJP: 0,
|
||||
LBR_TX_TY1: null, //partsOrder.job.lbr_tx_ty1,
|
||||
LBR_TX_IN1: null, //partsOrder.job.lbr_tx_in1,
|
||||
LBR_TX_TY2: null, //partsOrder.job.lbr_tx_ty2,
|
||||
LBR_TX_IN2: null, //partsOrder.job.lbr_tx_in2,
|
||||
LBR_TX_TY3: null, //partsOrder.job.lbr_tx_ty3,
|
||||
LBR_TX_IN3: null, //partsOrder.job.lbr_tx_in3,
|
||||
LBR_TX_TY4: null, //partsOrder.job.lbr_tx_ty4,
|
||||
LBR_TX_IN4: null, //partsOrder.job.lbr_tx_in4,
|
||||
LBR_TX_TY5: null, //partsOrder.job.lbr_tx_ty5,
|
||||
LBR_TX_IN5: null, //partsOrder.job.lbr_tx_in5,
|
||||
},
|
||||
|
||||
{
|
||||
LBR_TYPE: "LAD",
|
||||
LBR_DESC: "",
|
||||
LBR_RATE: partsOrder.job.rate_lad,
|
||||
LBR_TAX_IN: true,
|
||||
LBR_TAXP: null, // Job.bodyshop.bill_tax_rates.state_tax_rate?.Value ?? 0,
|
||||
LBR_ADJP: 0,
|
||||
LBR_TX_TY1: null, //partsOrder.job.lbr_tx_ty1,
|
||||
LBR_TX_IN1: null, //partsOrder.job.lbr_tx_in1,
|
||||
LBR_TX_TY2: null, //partsOrder.job.lbr_tx_ty2,
|
||||
LBR_TX_IN2: null, //partsOrder.job.lbr_tx_in2,
|
||||
LBR_TX_TY3: null, //partsOrder.job.lbr_tx_ty3,
|
||||
LBR_TX_IN3: null, //partsOrder.job.lbr_tx_in3,
|
||||
LBR_TX_TY4: null, //partsOrder.job.lbr_tx_ty4,
|
||||
LBR_TX_IN4: null, //partsOrder.job.lbr_tx_in4,
|
||||
LBR_TX_TY5: null, //partsOrder.job.lbr_tx_ty5,
|
||||
LBR_TX_IN5: null, //partsOrder.job.lbr_tx_in5,
|
||||
},
|
||||
{
|
||||
LBR_TYPE: "LAE",
|
||||
LBR_DESC: "",
|
||||
LBR_RATE: partsOrder.job.rate_lae,
|
||||
LBR_TAX_IN: true,
|
||||
LBR_TAXP: null, // Job.bodyshop.bill_tax_rates.state_tax_rate?.Value ?? 0,
|
||||
LBR_ADJP: 0,
|
||||
LBR_TX_TY1: null, //partsOrder.job.lbr_tx_ty1,
|
||||
LBR_TX_IN1: null, //partsOrder.job.lbr_tx_in1,
|
||||
LBR_TX_TY2: null, //partsOrder.job.lbr_tx_ty2,
|
||||
LBR_TX_IN2: null, //partsOrder.job.lbr_tx_in2,
|
||||
LBR_TX_TY3: null, //partsOrder.job.lbr_tx_ty3,
|
||||
LBR_TX_IN3: null, //partsOrder.job.lbr_tx_in3,
|
||||
LBR_TX_TY4: null, //partsOrder.job.lbr_tx_ty4,
|
||||
LBR_TX_IN4: null, //partsOrder.job.lbr_tx_in4,
|
||||
LBR_TX_TY5: null, //partsOrder.job.lbr_tx_ty5,
|
||||
LBR_TX_IN5: null, //partsOrder.job.lbr_tx_in5,
|
||||
},
|
||||
{
|
||||
LBR_TYPE: "LAF",
|
||||
LBR_DESC: "",
|
||||
LBR_RATE: partsOrder.job.rate_laf,
|
||||
LBR_TAX_IN: true,
|
||||
LBR_TAXP: null, // Job.bodyshop.bill_tax_rates.state_tax_rate?.Value ?? 0,
|
||||
LBR_ADJP: 0,
|
||||
LBR_TX_TY1: null, //partsOrder.job.lbr_tx_ty1,
|
||||
LBR_TX_IN1: null, //partsOrder.job.lbr_tx_in1,
|
||||
LBR_TX_TY2: null, //partsOrder.job.lbr_tx_ty2,
|
||||
LBR_TX_IN2: null, //partsOrder.job.lbr_tx_in2,
|
||||
LBR_TX_TY3: null, //partsOrder.job.lbr_tx_ty3,
|
||||
LBR_TX_IN3: null, //partsOrder.job.lbr_tx_in3,
|
||||
LBR_TX_TY4: null, //partsOrder.job.lbr_tx_ty4,
|
||||
LBR_TX_IN4: null, //partsOrder.job.lbr_tx_in4,
|
||||
LBR_TX_TY5: null, //partsOrder.job.lbr_tx_ty5,
|
||||
LBR_TX_IN5: null, //partsOrder.job.lbr_tx_in5,
|
||||
},
|
||||
{
|
||||
LBR_TYPE: "LAG",
|
||||
LBR_DESC: "",
|
||||
LBR_RATE: partsOrder.job.rate_lag,
|
||||
LBR_TAX_IN: true,
|
||||
LBR_TAXP: null, // Job.bodyshop.bill_tax_rates.state_tax_rate?.Value ?? 0,
|
||||
LBR_ADJP: 0,
|
||||
LBR_TX_TY1: null, //partsOrder.job.lbr_tx_ty1,
|
||||
LBR_TX_IN1: null, //partsOrder.job.lbr_tx_in1,
|
||||
LBR_TX_TY2: null, //partsOrder.job.lbr_tx_ty2,
|
||||
LBR_TX_IN2: null, //partsOrder.job.lbr_tx_in2,
|
||||
LBR_TX_TY3: null, //partsOrder.job.lbr_tx_ty3,
|
||||
LBR_TX_IN3: null, //partsOrder.job.lbr_tx_in3,
|
||||
LBR_TX_TY4: null, //partsOrder.job.lbr_tx_ty4,
|
||||
LBR_TX_IN4: null, //partsOrder.job.lbr_tx_in4,
|
||||
LBR_TX_TY5: null, //partsOrder.job.lbr_tx_ty5,
|
||||
LBR_TX_IN5: null, //partsOrder.job.lbr_tx_in5,
|
||||
},
|
||||
{
|
||||
LBR_TYPE: "LAM",
|
||||
LBR_DESC: "",
|
||||
LBR_RATE: partsOrder.job.rate_lam,
|
||||
LBR_TAX_IN: true,
|
||||
LBR_TAXP: null, // Job.bodyshop.bill_tax_rates.state_tax_rate?.Value ?? 0,
|
||||
LBR_ADJP: 0,
|
||||
LBR_TX_TY1: null, //partsOrder.job.lbr_tx_ty1,
|
||||
LBR_TX_IN1: null, //partsOrder.job.lbr_tx_in1,
|
||||
LBR_TX_TY2: null, //partsOrder.job.lbr_tx_ty2,
|
||||
LBR_TX_IN2: null, //partsOrder.job.lbr_tx_in2,
|
||||
LBR_TX_TY3: null, //partsOrder.job.lbr_tx_ty3,
|
||||
LBR_TX_IN3: null, //partsOrder.job.lbr_tx_in3,
|
||||
LBR_TX_TY4: null, //partsOrder.job.lbr_tx_ty4,
|
||||
LBR_TX_IN4: null, //partsOrder.job.lbr_tx_in4,
|
||||
LBR_TX_TY5: null, //partsOrder.job.lbr_tx_ty5,
|
||||
LBR_TX_IN5: null, //partsOrder.job.lbr_tx_in5,
|
||||
},
|
||||
{
|
||||
LBR_TYPE: "LAR",
|
||||
LBR_DESC: "",
|
||||
LBR_RATE: partsOrder.job.rate_lar,
|
||||
LBR_TAX_IN: true,
|
||||
LBR_TAXP: null, // Job.bodyshop.bill_tax_rates.state_tax_rate?.Value ?? 0,
|
||||
LBR_ADJP: 0,
|
||||
LBR_TX_TY1: null, //partsOrder.job.lbr_tx_ty1,
|
||||
LBR_TX_IN1: null, //partsOrder.job.lbr_tx_in1,
|
||||
LBR_TX_TY2: null, //partsOrder.job.lbr_tx_ty2,
|
||||
LBR_TX_IN2: null, //partsOrder.job.lbr_tx_in2,
|
||||
LBR_TX_TY3: null, //partsOrder.job.lbr_tx_ty3,
|
||||
LBR_TX_IN3: null, //partsOrder.job.lbr_tx_in3,
|
||||
LBR_TX_TY4: null, //partsOrder.job.lbr_tx_ty4,
|
||||
LBR_TX_IN4: null, //partsOrder.job.lbr_tx_in4,
|
||||
LBR_TX_TY5: null, //partsOrder.job.lbr_tx_ty5,
|
||||
LBR_TX_IN5: null, //partsOrder.job.lbr_tx_in5,
|
||||
},
|
||||
{
|
||||
LBR_TYPE: "LAS",
|
||||
LBR_DESC: "",
|
||||
LBR_RATE: partsOrder.job.rate_las,
|
||||
LBR_TAX_IN: true,
|
||||
LBR_TAXP: null, // Job.bodyshop.bill_tax_rates.state_tax_rate?.Value ?? 0,
|
||||
LBR_ADJP: 0,
|
||||
LBR_TX_TY1: null, //partsOrder.job.lbr_tx_ty1,
|
||||
LBR_TX_IN1: null, //partsOrder.job.lbr_tx_in1,
|
||||
LBR_TX_TY2: null, //partsOrder.job.lbr_tx_ty2,
|
||||
LBR_TX_IN2: null, //partsOrder.job.lbr_tx_in2,
|
||||
LBR_TX_TY3: null, //partsOrder.job.lbr_tx_ty3,
|
||||
LBR_TX_IN3: null, //partsOrder.job.lbr_tx_in3,
|
||||
LBR_TX_TY4: null, //partsOrder.job.lbr_tx_ty4,
|
||||
LBR_TX_IN4: null, //partsOrder.job.lbr_tx_in4,
|
||||
LBR_TX_TY5: null, //partsOrder.job.lbr_tx_ty5,
|
||||
LBR_TX_IN5: null, //partsOrder.job.lbr_tx_in5,
|
||||
},
|
||||
{
|
||||
LBR_TYPE: "LAU",
|
||||
LBR_DESC: "",
|
||||
LBR_RATE: partsOrder.job.rate_lau,
|
||||
LBR_TAX_IN: true,
|
||||
LBR_TAXP: null, // Job.bodyshop.bill_tax_rates.state_tax_rate?.Value ?? 0,
|
||||
LBR_ADJP: 0,
|
||||
LBR_TX_TY1: null, //partsOrder.job.lbr_tx_ty1,
|
||||
LBR_TX_IN1: null, //partsOrder.job.lbr_tx_in1,
|
||||
LBR_TX_TY2: null, //partsOrder.job.lbr_tx_ty2,
|
||||
LBR_TX_IN2: null, //partsOrder.job.lbr_tx_in2,
|
||||
LBR_TX_TY3: null, //partsOrder.job.lbr_tx_ty3,
|
||||
LBR_TX_IN3: null, //partsOrder.job.lbr_tx_in3,
|
||||
LBR_TX_TY4: null, //partsOrder.job.lbr_tx_ty4,
|
||||
LBR_TX_IN4: null, //partsOrder.job.lbr_tx_in4,
|
||||
LBR_TX_TY5: null, //partsOrder.job.lbr_tx_ty5,
|
||||
LBR_TX_IN5: null, //partsOrder.job.lbr_tx_in5,
|
||||
},
|
||||
{
|
||||
LBR_TYPE: "LA1",
|
||||
LBR_DESC: "",
|
||||
LBR_RATE: partsOrder.job.rate_la1,
|
||||
LBR_TAX_IN: true,
|
||||
LBR_TAXP: null, // Job.bodyshop.bill_tax_rates.state_tax_rate?.Value ?? 0,
|
||||
LBR_ADJP: 0,
|
||||
LBR_TX_TY1: null, //partsOrder.job.lbr_tx_ty1,
|
||||
LBR_TX_IN1: null, //partsOrder.job.lbr_tx_in1,
|
||||
LBR_TX_TY2: null, //partsOrder.job.lbr_tx_ty2,
|
||||
LBR_TX_IN2: null, //partsOrder.job.lbr_tx_in2,
|
||||
LBR_TX_TY3: null, //partsOrder.job.lbr_tx_ty3,
|
||||
LBR_TX_IN3: null, //partsOrder.job.lbr_tx_in3,
|
||||
LBR_TX_TY4: null, //partsOrder.job.lbr_tx_ty4,
|
||||
LBR_TX_IN4: null, //partsOrder.job.lbr_tx_in4,
|
||||
LBR_TX_TY5: null, //partsOrder.job.lbr_tx_ty5,
|
||||
LBR_TX_IN5: null, //partsOrder.job.lbr_tx_in5,
|
||||
},
|
||||
{
|
||||
LBR_TYPE: "LA2",
|
||||
LBR_DESC: "",
|
||||
LBR_RATE: partsOrder.job.rate_la2,
|
||||
LBR_TAX_IN: true,
|
||||
LBR_TAXP: null, // Job.bodyshop.bill_tax_rates.state_tax_rate?.Value ?? 0,
|
||||
LBR_ADJP: 0,
|
||||
LBR_TX_TY1: null, //partsOrder.job.lbr_tx_ty1,
|
||||
LBR_TX_IN1: null, //partsOrder.job.lbr_tx_in1,
|
||||
LBR_TX_TY2: null, //partsOrder.job.lbr_tx_ty2,
|
||||
LBR_TX_IN2: null, //partsOrder.job.lbr_tx_in2,
|
||||
LBR_TX_TY3: null, //partsOrder.job.lbr_tx_ty3,
|
||||
LBR_TX_IN3: null, //partsOrder.job.lbr_tx_in3,
|
||||
LBR_TX_TY4: null, //partsOrder.job.lbr_tx_ty4,
|
||||
LBR_TX_IN4: null, //partsOrder.job.lbr_tx_in4,
|
||||
LBR_TX_TY5: null, //partsOrder.job.lbr_tx_ty5,
|
||||
LBR_TX_IN5: null, //partsOrder.job.lbr_tx_in5,
|
||||
},
|
||||
{
|
||||
LBR_TYPE: "LA3",
|
||||
LBR_DESC: "",
|
||||
LBR_RATE: partsOrder.job.rate_la3,
|
||||
LBR_TAX_IN: true,
|
||||
LBR_TAXP: null, // Job.bodyshop.bill_tax_rates.state_tax_rate?.Value ?? 0,
|
||||
LBR_ADJP: 0,
|
||||
LBR_TX_TY1: null, //partsOrder.job.lbr_tx_ty1,
|
||||
LBR_TX_IN1: null, //partsOrder.job.lbr_tx_in1,
|
||||
LBR_TX_TY2: null, //partsOrder.job.lbr_tx_ty2,
|
||||
LBR_TX_IN2: null, //partsOrder.job.lbr_tx_in2,
|
||||
LBR_TX_TY3: null, //partsOrder.job.lbr_tx_ty3,
|
||||
LBR_TX_IN3: null, //partsOrder.job.lbr_tx_in3,
|
||||
LBR_TX_TY4: null, //partsOrder.job.lbr_tx_ty4,
|
||||
LBR_TX_IN4: null, //partsOrder.job.lbr_tx_in4,
|
||||
LBR_TX_TY5: null, //partsOrder.job.lbr_tx_ty5,
|
||||
LBR_TX_IN5: null, //partsOrder.job.lbr_tx_in5,
|
||||
},
|
||||
{
|
||||
LBR_TYPE: "LA4",
|
||||
LBR_DESC: "",
|
||||
LBR_RATE: partsOrder.job.rate_la4,
|
||||
LBR_TAX_IN: true,
|
||||
LBR_TAXP: null, // Job.bodyshop.bill_tax_rates.state_tax_rate?.Value ?? 0,
|
||||
LBR_ADJP: 0,
|
||||
LBR_TX_TY1: null, //partsOrder.job.lbr_tx_ty1,
|
||||
LBR_TX_IN1: null, //partsOrder.job.lbr_tx_in1,
|
||||
LBR_TX_TY2: null, //partsOrder.job.lbr_tx_ty2,
|
||||
LBR_TX_IN2: null, //partsOrder.job.lbr_tx_in2,
|
||||
LBR_TX_TY3: null, //partsOrder.job.lbr_tx_ty3,
|
||||
LBR_TX_IN3: null, //partsOrder.job.lbr_tx_in3,
|
||||
LBR_TX_TY4: null, //partsOrder.job.lbr_tx_ty4,
|
||||
LBR_TX_IN4: null, //partsOrder.job.lbr_tx_in4,
|
||||
LBR_TX_TY5: null, //partsOrder.job.lbr_tx_ty5,
|
||||
LBR_TX_IN5: null, //partsOrder.job.lbr_tx_in5,
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
await deleteEmsFileIfExists(
|
||||
generateEmsOutFilePath(`${partsOrder.job.ciecaid}.PFL`),
|
||||
|
||||
@@ -13,10 +13,75 @@ const EmsPartsOrderGeneratePfmFile = async (
|
||||
partsOrder: EmsPartsOrder,
|
||||
): Promise<boolean> => {
|
||||
try {
|
||||
const records = Object.keys(partsOrder.job.materials).map((key) => {
|
||||
const record: DecodedPfmLine = partsOrder.job.materials[key];
|
||||
return uppercaseObjectKeys(record);
|
||||
});
|
||||
let records;
|
||||
if (partsOrder.job.materials) {
|
||||
records = Object.keys(partsOrder.job.materials).map((key) => {
|
||||
const record: DecodedPfmLine = partsOrder.job.materials[key];
|
||||
return uppercaseObjectKeys(record);
|
||||
});
|
||||
} else {
|
||||
//Older records may not have materials, especially for ImEX.
|
||||
records = [
|
||||
{
|
||||
MATL_TYPE: "MAPA",
|
||||
CAL_CODE: null,
|
||||
CAL_DESC: null,
|
||||
CAL_MAXDLR: 0,
|
||||
CAL_PRIP: 0,
|
||||
CAL_SECP: 0,
|
||||
MAT_CALP: 0,
|
||||
CAL_PRETHR: 0,
|
||||
CAL_PSTTHR: 0,
|
||||
CAL_THRAMT: 0,
|
||||
CAL_LBRMIN: 0,
|
||||
CAL_LBRMAX: 0,
|
||||
CAL_LBRRTE: partsOrder.job.rate_mapa,
|
||||
CAL_OPCODE: null,
|
||||
TAX_IND: true,
|
||||
MAT_TAXP: null,
|
||||
MAT_ADJP: null,
|
||||
MAT_TX_TY1: null,
|
||||
MAT_TX_IN1: null,
|
||||
MAT_TX_TY2: null,
|
||||
MAT_TX_IN2: null,
|
||||
MAT_TX_TY3: null,
|
||||
MAT_TX_IN3: null,
|
||||
MAT_TX_TY4: null,
|
||||
MAT_TX_IN4: null,
|
||||
MAT_TX_TY5: null,
|
||||
MAT_TX_IN5: null,
|
||||
},
|
||||
{
|
||||
MATL_TYPE: "MASH",
|
||||
CAL_CODE: null,
|
||||
CAL_DESC: null,
|
||||
CAL_MAXDLR: 0,
|
||||
CAL_PRIP: 0,
|
||||
CAL_SECP: 0,
|
||||
MAT_CALP: 0,
|
||||
CAL_PRETHR: 0,
|
||||
CAL_PSTTHR: 0,
|
||||
CAL_THRAMT: 0,
|
||||
CAL_LBRMIN: 0,
|
||||
CAL_LBRMAX: 0,
|
||||
CAL_LBRRTE: partsOrder.job.rate_mash,
|
||||
CAL_OPCODE: null,
|
||||
TAX_IND: true,
|
||||
MAT_TAXP: null,
|
||||
MAT_ADJP: null,
|
||||
MAT_TX_TY1: null,
|
||||
MAT_TX_IN1: null,
|
||||
MAT_TX_TY2: null,
|
||||
MAT_TX_IN2: null,
|
||||
MAT_TX_TY3: null,
|
||||
MAT_TX_IN3: null,
|
||||
MAT_TX_TY4: null,
|
||||
MAT_TX_IN4: null,
|
||||
MAT_TX_TY5: null,
|
||||
MAT_TX_IN5: null,
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
await deleteEmsFileIfExists(
|
||||
generateEmsOutFilePath(`${partsOrder.job.ciecaid}.PFM`),
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { DBFFile } from "dbffile";
|
||||
import errorTypeCheck from "../../util/errorTypeCheck";
|
||||
import { DecodedPfmLine } from "../decoder/decode-pfm.interface";
|
||||
import { DecodedPfpLine } from "../decoder/decode-pfp.interface";
|
||||
import { pfpFieldLineDescriptors } from "../util/ems-interface/fielddescriptors/pfp-field-descriptors";
|
||||
import {
|
||||
deleteEmsFileIfExists,
|
||||
@@ -13,8 +13,8 @@ const EmsPartsOrderGeneratePfpFile = async (
|
||||
partsOrder: EmsPartsOrder,
|
||||
): Promise<boolean> => {
|
||||
try {
|
||||
const records = Object.keys(partsOrder.job.materials).map((key) => {
|
||||
const record: DecodedPfmLine = partsOrder.job.materials[key];
|
||||
const records = Object.keys(partsOrder.job.parts_tax_rates).map((key) => {
|
||||
const record: DecodedPfpLine = partsOrder.job.parts_tax_rates[key];
|
||||
return uppercaseObjectKeys(record);
|
||||
});
|
||||
|
||||
|
||||
34
src/main/ems-parts-order/ems-parts-order-generate-pft.ts
Normal file
34
src/main/ems-parts-order/ems-parts-order-generate-pft.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
import { DBFFile } from "dbffile";
|
||||
import errorTypeCheck from "../../util/errorTypeCheck";
|
||||
import { pftFieldLineDescriptors } from "../util/ems-interface/fielddescriptors/pft-field-descriptor";
|
||||
import {
|
||||
deleteEmsFileIfExists,
|
||||
generateEmsOutFilePath,
|
||||
} from "../util/ems-util";
|
||||
import { EmsPartsOrder } from "./ems-parts-order-interfaces";
|
||||
|
||||
const EmsPartsOrderGeneratePftFile = async (
|
||||
partsOrder: EmsPartsOrder,
|
||||
): Promise<boolean> => {
|
||||
try {
|
||||
const records = []; //Left blank intentionally as per previous code.
|
||||
|
||||
await deleteEmsFileIfExists(
|
||||
generateEmsOutFilePath(`${partsOrder.job.ciecaid}.PFT`),
|
||||
);
|
||||
|
||||
const dbf: DBFFile = await DBFFile.create(
|
||||
generateEmsOutFilePath(`${partsOrder.job.ciecaid}.PFT`),
|
||||
pftFieldLineDescriptors,
|
||||
);
|
||||
|
||||
await dbf.appendRecords(records);
|
||||
console.log(`${records.length} PFT file records added.`);
|
||||
return true;
|
||||
} catch (error) {
|
||||
console.error("Error generating PFT file:", errorTypeCheck(error));
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
export default EmsPartsOrderGeneratePftFile;
|
||||
40
src/main/ems-parts-order/ems-parts-order-generate-stl.ts
Normal file
40
src/main/ems-parts-order/ems-parts-order-generate-stl.ts
Normal file
@@ -0,0 +1,40 @@
|
||||
import { DBFFile } from "dbffile";
|
||||
import errorTypeCheck from "../../util/errorTypeCheck";
|
||||
import { DecodedStlLine } from "../decoder/decode-stl.interface";
|
||||
import { stlFieldLineDescriptors } from "../util/ems-interface/fielddescriptors/stl-field-descriptors";
|
||||
import {
|
||||
deleteEmsFileIfExists,
|
||||
generateEmsOutFilePath,
|
||||
} from "../util/ems-util";
|
||||
import uppercaseObjectKeys from "../util/uppercaseObjectKeys";
|
||||
import { EmsPartsOrder } from "./ems-parts-order-interfaces";
|
||||
|
||||
const EmsPartsOrderGenerateStlFile = async (
|
||||
partsOrder: EmsPartsOrder,
|
||||
): Promise<boolean> => {
|
||||
try {
|
||||
//TODO: Add CIECA STL to parts order.
|
||||
const records = Object.keys(partsOrder.job.cieca_stl?.data).map((key) => {
|
||||
const record: DecodedStlLine = partsOrder.job.cieca_stl.data[key];
|
||||
return uppercaseObjectKeys(record);
|
||||
});
|
||||
|
||||
await deleteEmsFileIfExists(
|
||||
generateEmsOutFilePath(`${partsOrder.job.ciecaid}.STL`),
|
||||
);
|
||||
|
||||
const dbf: DBFFile = await DBFFile.create(
|
||||
generateEmsOutFilePath(`${partsOrder.job.ciecaid}.STL`),
|
||||
stlFieldLineDescriptors,
|
||||
);
|
||||
|
||||
await dbf.appendRecords(records);
|
||||
console.log(`${records.length} STL file records added.`);
|
||||
return true;
|
||||
} catch (error) {
|
||||
console.error("Error generating STL file:", errorTypeCheck(error));
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
export default EmsPartsOrderGenerateStlFile;
|
||||
36
src/main/ems-parts-order/ems-parts-order-generate-ttl.ts
Normal file
36
src/main/ems-parts-order/ems-parts-order-generate-ttl.ts
Normal file
@@ -0,0 +1,36 @@
|
||||
import { DBFFile } from "dbffile";
|
||||
import errorTypeCheck from "../../util/errorTypeCheck";
|
||||
import { ttlFieldLineDescriptors } from "../util/ems-interface/fielddescriptors/ttl-field-descriptors";
|
||||
import {
|
||||
deleteEmsFileIfExists,
|
||||
generateEmsOutFilePath,
|
||||
} from "../util/ems-util";
|
||||
import uppercaseObjectKeys from "../util/uppercaseObjectKeys";
|
||||
import { EmsPartsOrder } from "./ems-parts-order-interfaces";
|
||||
|
||||
const EmsPartsOrderGenerateTtlFile = async (
|
||||
partsOrder: EmsPartsOrder,
|
||||
): Promise<boolean> => {
|
||||
try {
|
||||
//TODO: Add CIECA STL to parts order.
|
||||
const records = uppercaseObjectKeys(partsOrder.job.cieca_ttl?.data);
|
||||
|
||||
await deleteEmsFileIfExists(
|
||||
generateEmsOutFilePath(`${partsOrder.job.ciecaid}.TTL`),
|
||||
);
|
||||
|
||||
const dbf: DBFFile = await DBFFile.create(
|
||||
generateEmsOutFilePath(`${partsOrder.job.ciecaid}.TTL`),
|
||||
ttlFieldLineDescriptors,
|
||||
);
|
||||
|
||||
await dbf.appendRecords(records);
|
||||
console.log(`${records.length} TTL file records added.`);
|
||||
return true;
|
||||
} catch (error) {
|
||||
console.error("Error generating TTL file:", errorTypeCheck(error));
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
export default EmsPartsOrderGenerateTtlFile;
|
||||
@@ -8,12 +8,16 @@ import EmsPartsOrderGenerateAd1File from "./ems-parts-order-generate-ad1";
|
||||
import EmsPartsOrderGenerateAd2File from "./ems-parts-order-generate-ad2";
|
||||
import EmsPartsOrderGenerateEnvFile from "./ems-parts-order-generate-env";
|
||||
import EmsPartsOrderGenerateLinFile from "./ems-parts-order-generate-lin";
|
||||
import EmsPartsOrderGenerateVehFile from "./ems-parts-order-generate-veh";
|
||||
import { EmsPartsOrder } from "./ems-parts-order-interfaces";
|
||||
import EmsPartsOrderGeneratePfhFile from "./ems-parts-order-generate-pfh";
|
||||
import EmsPartsOrderGeneratePflFile from "./ems-parts-order-generate-pfl";
|
||||
import EmsPartsOrderGeneratePfmFile from "./ems-parts-order-generate-pfm";
|
||||
import EmsPartsOrderGeneratePfoFile from "./ems-parts-order-generate-pfo";
|
||||
import EmsPartsOrderGeneratePfpFile from "./ems-parts-order-generate-pfp";
|
||||
import EmsPartsOrderGeneratePftFile from "./ems-parts-order-generate-pft";
|
||||
import EmsPartsOrderGenerateStlFile from "./ems-parts-order-generate-stl";
|
||||
import EmsPartsOrderGenerateTtlFile from "./ems-parts-order-generate-ttl";
|
||||
import EmsPartsOrderGenerateVehFile from "./ems-parts-order-generate-veh";
|
||||
import { EmsPartsOrder } from "./ems-parts-order-interfaces";
|
||||
|
||||
const handleEMSPartsOrder = async (
|
||||
req: express.Request,
|
||||
@@ -60,8 +64,16 @@ const generateEMSPartsOrder = async (
|
||||
await EmsPartsOrderGeneratePfmFile(partsOrder);
|
||||
await EmsPartsOrderGeneratePfoFile(partsOrder);
|
||||
await EmsPartsOrderGeneratePfpFile(partsOrder);
|
||||
await EmsPartsOrderGeneratePftFile(partsOrder);
|
||||
await EmsPartsOrderGenerateStlFile(partsOrder);
|
||||
await EmsPartsOrderGenerateTtlFile(partsOrder);
|
||||
|
||||
await EmsPartsOrderGenerateEnvFile(partsOrder);
|
||||
|
||||
log.info(
|
||||
"EMS Parts Order files generated successfully for " +
|
||||
partsOrder.job.ciecaid,
|
||||
);
|
||||
} catch (error) {
|
||||
log.error("Error generating parts price change", errorTypeCheck(error));
|
||||
throw error;
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
import { CiecaPfl, DecodedPflLine } from "../decoder/decode-pfl.interface";
|
||||
import { CiecaPfl } from "../decoder/decode-pfl.interface";
|
||||
import { DecodedPfmLine } from "../decoder/decode-pfm.interface";
|
||||
import { DecodedPfpLine } from "../decoder/decode-pfp.interface";
|
||||
import { DecodedStlLine } from "../decoder/decode-stl.interface";
|
||||
import { DecodedTtlLine } from "../decoder/decode-ttl.interface";
|
||||
|
||||
export interface TaxRate {
|
||||
prt_type: string;
|
||||
@@ -228,7 +232,7 @@ export interface Job {
|
||||
ownr_st: string;
|
||||
ownr_title: string | null;
|
||||
ownr_zip: string;
|
||||
parts_tax_rates: Record<string, TaxRate>;
|
||||
parts_tax_rates: Record<string, DecodedPfpLine>;
|
||||
pay_amt: number;
|
||||
pay_date: string | null;
|
||||
pay_type: string | null;
|
||||
@@ -304,6 +308,10 @@ export interface Job {
|
||||
rate_la2: number;
|
||||
rate_la1: number;
|
||||
materials: Record<string, DecodedPfmLine>;
|
||||
cieca_stl: {
|
||||
data: Array<DecodedStlLine>;
|
||||
};
|
||||
cieca_ttl: { data: DecodedTtlLine };
|
||||
}
|
||||
|
||||
// Main Parts Order export interface
|
||||
|
||||
@@ -0,0 +1,760 @@
|
||||
import { FieldDescriptor } from "dbffile";
|
||||
|
||||
export const pftFieldLineDescriptors: FieldDescriptor[] = [
|
||||
{
|
||||
name: "TAX_TYPE1",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TY1_TIER1",
|
||||
type: "N",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TY1_THRES1",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY1_RATE1",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "TY1_SUR1",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY1_TIER2",
|
||||
type: "N",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TY1_THRES2",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY1_RATE2",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "TY1_SUR2",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY1_TIER3",
|
||||
type: "N",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TY1_THRES3",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY1_RATE3",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "TY1_SUR3",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY1_TIER4",
|
||||
type: "N",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TY1_THRES4",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY1_RATE4",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "TY1_SUR4",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY1_TIER5",
|
||||
type: "N",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TY1_THRES5",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY1_RATE5",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "TY1_SUR5",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TAX_TYPE2",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TY2_TIER1",
|
||||
type: "N",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TY2_THRES1",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY2_RATE1",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "TY2_SUR1",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY2_TIER2",
|
||||
type: "N",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TY2_THRES2",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY2_RATE2",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "TY2_SUR2",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY2_TIER3",
|
||||
type: "N",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TY2_THRES3",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY2_RATE3",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "TY2_SUR3",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY2_TIER4",
|
||||
type: "N",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TY2_THRES4",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY2_RATE4",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "TY2_SUR4",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY2_TIER5",
|
||||
type: "N",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TY2_THRES5",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY2_RATE5",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "TY2_SUR5",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TAX_TYPE3",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TY3_TIER1",
|
||||
type: "N",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TY3_THRES1",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY3_RATE1",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "TY3_SUR1",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY3_TIER2",
|
||||
type: "N",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TY3_THRES2",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY3_RATE2",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "TY3_SUR2",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY3_TIER3",
|
||||
type: "N",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TY3_THRES3",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY3_RATE3",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "TY3_SUR3",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY3_TIER4",
|
||||
type: "N",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TY3_THRES4",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY3_RATE4",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "TY3_SUR4",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY3_TIER5",
|
||||
type: "N",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TY3_THRES5",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY3_RATE5",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "TY3_SUR5",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TAX_TYPE4",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TY4_TIER1",
|
||||
type: "N",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TY4_THRES1",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY4_RATE1",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "TY4_SUR1",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY4_TIER2",
|
||||
type: "N",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TY4_THRES2",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY4_RATE2",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "TY4_SUR2",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY4_TIER3",
|
||||
type: "N",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TY4_THRES3",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY4_RATE3",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "TY4_SUR3",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY4_TIER4",
|
||||
type: "N",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TY4_THRES4",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY4_RATE4",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "TY4_SUR4",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY4_TIER5",
|
||||
type: "N",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TY4_THRES5",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY4_RATE5",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "TY4_SUR5",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TAX_TYPE5",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TY5_TIER1",
|
||||
type: "N",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TY5_THRES1",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY5_RATE1",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "TY5_SUR1",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY5_TIER2",
|
||||
type: "N",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TY5_THRES2",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY5_RATE2",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "TY5_SUR2",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY5_TIER3",
|
||||
type: "N",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TY5_THRES3",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY5_RATE3",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "TY5_SUR3",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY5_TIER4",
|
||||
type: "N",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TY5_THRES4",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY5_RATE4",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "TY5_SUR4",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY5_TIER5",
|
||||
type: "N",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TY5_THRES5",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY5_RATE5",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "TY5_SUR5",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TAX_TYPE6",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TY6_TIER1",
|
||||
type: "N",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TY6_THRES1",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY6_RATE1",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "TY6_SUR1",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY6_TIER2",
|
||||
type: "N",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TY6_THRES2",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY6_RATE2",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "TY6_SUR2",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY6_TIER3",
|
||||
type: "N",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TY6_THRES3",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY6_RATE3",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "TY6_SUR3",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY6_TIER4",
|
||||
type: "N",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TY6_THRES4",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY6_RATE4",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "TY6_SUR4",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY6_TIER5",
|
||||
type: "N",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TY6_THRES5",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TY6_RATE5",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "TY6_SUR5",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
];
|
||||
@@ -0,0 +1,112 @@
|
||||
import { FieldDescriptor } from "dbffile";
|
||||
|
||||
export const stlFieldLineDescriptors: FieldDescriptor[] = [
|
||||
{
|
||||
name: "TTL_TYPE",
|
||||
type: "C",
|
||||
size: 4,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TTL_TYPECD",
|
||||
type: "C",
|
||||
size: 4,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "T_AMT",
|
||||
type: "N",
|
||||
size: 9,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "T_HRS",
|
||||
type: "N",
|
||||
size: 5,
|
||||
decimalPlaces: 1,
|
||||
},
|
||||
{
|
||||
name: "T_ADDLBR",
|
||||
type: "N",
|
||||
size: 9,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "T_DISCAMT",
|
||||
type: "N",
|
||||
size: 9,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "T_MKUPAMT",
|
||||
type: "N",
|
||||
size: 9,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "T_GDISCAMT",
|
||||
type: "N",
|
||||
size: 9,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TAX_AMT",
|
||||
type: "N",
|
||||
size: 9,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "NT_AMT",
|
||||
type: "N",
|
||||
size: 9,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "NT_HRS",
|
||||
type: "N",
|
||||
size: 5,
|
||||
decimalPlaces: 1,
|
||||
},
|
||||
{
|
||||
name: "NT_ADDLBR",
|
||||
type: "N",
|
||||
size: 9,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "NT_DISC",
|
||||
type: "N",
|
||||
size: 9,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "NT_MKUP",
|
||||
type: "N",
|
||||
size: 9,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "NT_GDIS",
|
||||
type: "N",
|
||||
size: 9,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TTL_TYPAMT",
|
||||
type: "N",
|
||||
size: 9,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TTL_HRS",
|
||||
type: "N",
|
||||
size: 5,
|
||||
decimalPlaces: 1,
|
||||
},
|
||||
{
|
||||
name: "TTL_AMT",
|
||||
type: "N",
|
||||
size: 9,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
];
|
||||
@@ -0,0 +1,88 @@
|
||||
import { FieldDescriptor } from "dbffile";
|
||||
|
||||
export const ttlFieldLineDescriptors: FieldDescriptor[] = [
|
||||
{
|
||||
name: "G_TTL_AMT",
|
||||
type: "N",
|
||||
size: 10,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "G_BETT_AMT",
|
||||
type: "N",
|
||||
size: 10,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "G_RPD_AMT",
|
||||
type: "N",
|
||||
size: 10,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "G_DED_AMT",
|
||||
type: "N",
|
||||
size: 10,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "G_CUST_AMT",
|
||||
type: "N",
|
||||
size: 10,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "G_AA_AMT",
|
||||
type: "N",
|
||||
size: 10,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "N_TTL_AMT",
|
||||
type: "N",
|
||||
size: 10,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "PREV_NET",
|
||||
type: "N",
|
||||
size: 10,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "SUPP_AMT",
|
||||
type: "N",
|
||||
size: 10,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "N_SUPP_ANT",
|
||||
type: "N",
|
||||
size: 10,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "G_UPD_AMT",
|
||||
type: "N",
|
||||
size: 10,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "G_TTL_DISC",
|
||||
type: "N",
|
||||
size: 10,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "G_TAX",
|
||||
type: "N",
|
||||
size: 10,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "GST_AMT",
|
||||
type: "N",
|
||||
size: 10,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
];
|
||||
Reference in New Issue
Block a user