WIP Parts Ordering
This commit is contained in:
BIN
build/icon.ico
BIN
build/icon.ico
Binary file not shown.
|
Before Width: | Height: | Size: 121 KiB |
BIN
build/icon.png
BIN
build/icon.png
Binary file not shown.
|
Before Width: | Height: | Size: 35 KiB |
@@ -35,9 +35,7 @@ export interface JobLaborRateFields {
|
||||
rate_la3: number;
|
||||
rate_la4: number;
|
||||
}
|
||||
|
||||
export interface DecodedPfl extends JobLaborRateFields {
|
||||
cieca_pfl: {
|
||||
export interface CiecaPfl {
|
||||
LAA?: DecodedPflLine;
|
||||
LAB?: DecodedPflLine;
|
||||
LAD?: DecodedPflLine;
|
||||
@@ -52,5 +50,8 @@ export interface DecodedPfl extends JobLaborRateFields {
|
||||
LA2?: DecodedPflLine;
|
||||
LA3?: DecodedPflLine;
|
||||
LA4?: DecodedPflLine;
|
||||
};
|
||||
}
|
||||
|
||||
export interface DecodedPfl extends JobLaborRateFields {
|
||||
cieca_pfl: CiecaPfl;
|
||||
}
|
||||
|
||||
158
src/main/ems-parts-order/ems-parts-order-generate-ad1.ts
Normal file
158
src/main/ems-parts-order/ems-parts-order-generate-ad1.ts
Normal file
@@ -0,0 +1,158 @@
|
||||
import { DBFFile } from "dbffile";
|
||||
import errorTypeCheck from "../../util/errorTypeCheck";
|
||||
import { ad1FieldLineDescriptors } from "../util/ems-interface/fielddescriptors/ad1-field-descriptors";
|
||||
import {
|
||||
deleteEmsFileIfExists,
|
||||
generateEmsOutFilePath,
|
||||
} from "../util/ems-util";
|
||||
import { EmsPartsOrder } from "./ems-parts-order-interfaces";
|
||||
|
||||
const EmsPartsOrderGenerateAd1File = async (
|
||||
partsOrder: EmsPartsOrder,
|
||||
): Promise<boolean> => {
|
||||
try {
|
||||
const records = [
|
||||
{
|
||||
INS_CO_ID: partsOrder.job.ins_co_nm,
|
||||
INS_CO_NM: partsOrder.job.ins_co_nm,
|
||||
INS_ADDR1: partsOrder.job.ins_addr1,
|
||||
INS_ADDR2: partsOrder.job.ins_addr2,
|
||||
INS_CITY: partsOrder.job.ins_city,
|
||||
INS_ST: partsOrder.job.ins_st,
|
||||
INS_ZIP: partsOrder.job.ins_zip,
|
||||
INS_CTRY: partsOrder.job.ins_ctry,
|
||||
INS_PH1: partsOrder.job.ins_ph1,
|
||||
INS_PH1X: partsOrder.job.ins_ph1x,
|
||||
INS_PH2: partsOrder.job.ins_ph2,
|
||||
INS_PH2X: partsOrder.job.ins_ph2x,
|
||||
INS_FAX: partsOrder.job.ins_fax,
|
||||
INS_FAXX: partsOrder.job.ins_faxx,
|
||||
INS_CT_LN: partsOrder.job.ins_ct_ln,
|
||||
INS_CT_FN: partsOrder.job.ins_ct_fn,
|
||||
INS_TITLE: partsOrder.job.ins_title,
|
||||
INS_CT_PH: partsOrder.job.ins_ct_ph,
|
||||
INS_CT_PHX: partsOrder.job.ins_ct_phx,
|
||||
INS_EA: partsOrder.job.ins_ea,
|
||||
INS_MEMO: partsOrder.job.ins_memo,
|
||||
POLICY_NO: partsOrder.job.policy_no,
|
||||
DED_AMT: partsOrder.job.ded_amt,
|
||||
DED_STATUS: partsOrder.job.ded_status,
|
||||
ASGN_NO: partsOrder.job.asgn_no,
|
||||
ASGN_DATE: partsOrder.job.asgn_date
|
||||
? new Date(partsOrder.job.asgn_date)
|
||||
: null,
|
||||
ASGN_TYPE: partsOrder.job.asgn_type,
|
||||
CLM_NO: partsOrder.job.clm_no,
|
||||
CLM_OFC_ID: partsOrder.job.clm_ofc_id,
|
||||
CLM_OFC_NM: partsOrder.job.clm_ofc_nm,
|
||||
CLM_ADDR1: partsOrder.job.clm_addr1,
|
||||
CLM_ADDR2: partsOrder.job.clm_addr2,
|
||||
CLM_CITY: partsOrder.job.clm_city,
|
||||
CLM_ST: partsOrder.job.clm_st,
|
||||
CLM_ZIP: partsOrder.job.clm_zip,
|
||||
CLM_CTRY: partsOrder.job.clm_ctry,
|
||||
CLM_PH1: partsOrder.job.clm_ph1,
|
||||
CLM_PH1X: partsOrder.job.clm_ph1x,
|
||||
CLM_PH2: partsOrder.job.clm_ph2,
|
||||
CLM_PH2X: partsOrder.job.clm_ph2x,
|
||||
CLM_FAX: partsOrder.job.clm_fax,
|
||||
CLM_FAXX: partsOrder.job.clm_faxx,
|
||||
CLM_CT_LN: partsOrder.job.clm_ct_ln,
|
||||
CLM_CT_FN: partsOrder.job.clm_ct_fn,
|
||||
CLM_TITLE: partsOrder.job.clm_title,
|
||||
CLM_CT_PH: partsOrder.job.clm_ct_ph,
|
||||
CLM_CT_PHX: partsOrder.job.clm_ct_phx,
|
||||
CLM_EA: partsOrder.job.clm_ea,
|
||||
PAYEE_NMS: partsOrder.job.payee_nms,
|
||||
PAY_TYPE: partsOrder.job.pay_type,
|
||||
PAY_DATE: partsOrder.job.pay_date,
|
||||
PAY_CHKNM: null, // Explicitly set to null as in original code
|
||||
PAY_AMT: null, // Explicitly set to null as in original code
|
||||
PAY_MEMO: partsOrder.job.pay_memo,
|
||||
AGT_CO_ID: partsOrder.job.agt_co_id,
|
||||
AGT_CO_NM: partsOrder.job.agt_co_nm,
|
||||
AGT_ADDR1: partsOrder.job.agt_addr1,
|
||||
AGT_ADDR2: partsOrder.job.agt_addr2,
|
||||
AGT_CITY: partsOrder.job.agt_city,
|
||||
AGT_ST: partsOrder.job.agt_st,
|
||||
AGT_ZIP: partsOrder.job.agt_zip,
|
||||
AGT_CTRY: partsOrder.job.agt_ctry,
|
||||
AGT_PH1: partsOrder.job.agt_ph1,
|
||||
AGT_PH1X: partsOrder.job.agt_ph1x,
|
||||
AGT_PH2: partsOrder.job.agt_ph2,
|
||||
AGT_PH2X: partsOrder.job.agt_ph2x,
|
||||
AGT_FAX: partsOrder.job.agt_fax,
|
||||
AGT_FAXX: partsOrder.job.agt_faxx,
|
||||
AGT_CT_LN: partsOrder.job.agt_ct_ln,
|
||||
AGT_CT_FN: partsOrder.job.agt_ct_fn,
|
||||
AGT_CT_PH: partsOrder.job.agt_ct_ph,
|
||||
AGT_CT_PHX: partsOrder.job.agt_ct_phx,
|
||||
AGT_EA: partsOrder.job.agt_ea,
|
||||
AGT_LIC_NO: partsOrder.job.agt_lic_no,
|
||||
LOSS_DATE: partsOrder.job.loss_date
|
||||
? new Date(partsOrder.job.loss_date)
|
||||
: null,
|
||||
LOSS_CAT: null, // Explicitly set to null as in original code
|
||||
LOSS_TYPE: null, // Explicitly set to null as in original code
|
||||
LOSS_DESC: partsOrder.job.loss_desc,
|
||||
THEFT_IND: null, // Explicitly set to null as in original code
|
||||
CAT_NO: partsOrder.job.cat_no,
|
||||
TLOS_IND: null, // Explicitly set to null as in original code
|
||||
LOSS_MEMO: partsOrder.job.loss_memo,
|
||||
CUST_PR: partsOrder.job.cust_pr,
|
||||
INSD_LN: partsOrder.job.insd_ln,
|
||||
INSD_FN: partsOrder.job.insd_fn,
|
||||
INSD_TITLE: partsOrder.job.insd_title,
|
||||
INSD_CO_NM: partsOrder.job.insd_co_nm,
|
||||
INSD_ADDR1: partsOrder.job.insd_addr1,
|
||||
INSD_ADDR2: partsOrder.job.insd_addr2,
|
||||
INSD_CITY: partsOrder.job.insd_city,
|
||||
INSD_ST: partsOrder.job.insd_st,
|
||||
INSD_ZIP: partsOrder.job.insd_zip,
|
||||
INSD_CTRY: partsOrder.job.insd_ctry,
|
||||
INSD_PH1: partsOrder.job.insd_ph1,
|
||||
INSD_PH1X: partsOrder.job.insd_ph1x,
|
||||
INSD_PH2: partsOrder.job.insd_ph2,
|
||||
INSD_PH2X: partsOrder.job.insd_ph2x,
|
||||
INSD_FAX: partsOrder.job.insd_fax,
|
||||
INSD_FAXX: partsOrder.job.insd_faxx,
|
||||
INSD_EA: partsOrder.job.insd_ea,
|
||||
OWNR_LN: partsOrder.job.ownr_ln,
|
||||
OWNR_FN: partsOrder.job.ownr_fn,
|
||||
OWNR_TITLE: partsOrder.job.ownr_title,
|
||||
OWNR_CO_NM: partsOrder.job.ownr_co_nm,
|
||||
OWNR_ADDR1: partsOrder.job.ownr_addr1,
|
||||
OWNR_ADDR2: partsOrder.job.ownr_addr2,
|
||||
OWNR_CITY: partsOrder.job.ownr_city,
|
||||
OWNR_ST: partsOrder.job.ownr_st,
|
||||
OWNR_ZIP: partsOrder.job.ownr_zip,
|
||||
OWNR_CTRY: partsOrder.job.ownr_ctry,
|
||||
OWNR_PH1: partsOrder.job.ownr_ph1,
|
||||
OWNR_PH1X: partsOrder.job.ownr_ph1x,
|
||||
OWNR_PH2: partsOrder.job.ownr_ph2,
|
||||
OWNR_PH2X: partsOrder.job.ownr_ph2x,
|
||||
OWNR_FAX: partsOrder.job.ownr_fax,
|
||||
OWNR_FAXX: partsOrder.job.ownr_faxx,
|
||||
OWNR_EA: partsOrder.job.ownr_ea,
|
||||
},
|
||||
];
|
||||
|
||||
await deleteEmsFileIfExists(
|
||||
generateEmsOutFilePath(`${partsOrder.job.ciecaid}.AD1`),
|
||||
);
|
||||
|
||||
const dbf: DBFFile = await DBFFile.create(
|
||||
generateEmsOutFilePath(`${partsOrder.job.ciecaid}.AD1`),
|
||||
ad1FieldLineDescriptors,
|
||||
);
|
||||
|
||||
await dbf.appendRecords(records);
|
||||
console.log(`${records.length} AD1 file records added.`);
|
||||
return true;
|
||||
} catch (error) {
|
||||
console.error("Error generating AD1 file:", errorTypeCheck(error));
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
export default EmsPartsOrderGenerateAd1File;
|
||||
158
src/main/ems-parts-order/ems-parts-order-generate-ad2.ts
Normal file
158
src/main/ems-parts-order/ems-parts-order-generate-ad2.ts
Normal file
@@ -0,0 +1,158 @@
|
||||
import { DBFFile } from "dbffile";
|
||||
import errorTypeCheck from "../../util/errorTypeCheck";
|
||||
import { ad2FieldLineDescriptors } from "../util/ems-interface/fielddescriptors/ad2-field-descriptors";
|
||||
import {
|
||||
deleteEmsFileIfExists,
|
||||
generateEmsOutFilePath,
|
||||
} from "../util/ems-util";
|
||||
import { EmsPartsOrder } from "./ems-parts-order-interfaces";
|
||||
|
||||
const EmsPartsOrderGenerateAd2File = async (
|
||||
partsOrder: EmsPartsOrder,
|
||||
): Promise<boolean> => {
|
||||
try {
|
||||
const records = [
|
||||
{
|
||||
INS_CO_ID: partsOrder.job.ins_co_nm,
|
||||
INS_CO_NM: partsOrder.job.ins_co_nm,
|
||||
INS_ADDR1: partsOrder.job.ins_addr1,
|
||||
INS_ADDR2: partsOrder.job.ins_addr2,
|
||||
INS_CITY: partsOrder.job.ins_city,
|
||||
INS_ST: partsOrder.job.ins_st,
|
||||
INS_ZIP: partsOrder.job.ins_zip,
|
||||
INS_CTRY: partsOrder.job.ins_ctry,
|
||||
INS_PH1: partsOrder.job.ins_ph1,
|
||||
INS_PH1X: partsOrder.job.ins_ph1x,
|
||||
INS_PH2: partsOrder.job.ins_ph2,
|
||||
INS_PH2X: partsOrder.job.ins_ph2x,
|
||||
INS_FAX: partsOrder.job.ins_fax,
|
||||
INS_FAXX: partsOrder.job.ins_faxx,
|
||||
INS_CT_LN: partsOrder.job.ins_ct_ln,
|
||||
INS_CT_FN: partsOrder.job.ins_ct_fn,
|
||||
INS_TITLE: partsOrder.job.ins_title,
|
||||
INS_CT_PH: partsOrder.job.ins_ct_ph,
|
||||
INS_CT_PHX: partsOrder.job.ins_ct_phx,
|
||||
INS_EA: partsOrder.job.ins_ea,
|
||||
INS_MEMO: partsOrder.job.ins_memo,
|
||||
POLICY_NO: partsOrder.job.policy_no,
|
||||
DED_AMT: partsOrder.job.ded_amt,
|
||||
DED_STATUS: partsOrder.job.ded_status,
|
||||
ASGN_NO: partsOrder.job.asgn_no,
|
||||
ASGN_DATE: partsOrder.job.asgn_date
|
||||
? new Date(partsOrder.job.asgn_date)
|
||||
: null,
|
||||
ASGN_TYPE: partsOrder.job.asgn_type,
|
||||
CLM_NO: partsOrder.job.clm_no,
|
||||
CLM_OFC_ID: partsOrder.job.clm_ofc_id,
|
||||
CLM_OFC_NM: partsOrder.job.clm_ofc_nm,
|
||||
CLM_ADDR1: partsOrder.job.clm_addr1,
|
||||
CLM_ADDR2: partsOrder.job.clm_addr2,
|
||||
CLM_CITY: partsOrder.job.clm_city,
|
||||
CLM_ST: partsOrder.job.clm_st,
|
||||
CLM_ZIP: partsOrder.job.clm_zip,
|
||||
CLM_CTRY: partsOrder.job.clm_ctry,
|
||||
CLM_PH1: partsOrder.job.clm_ph1,
|
||||
CLM_PH1X: partsOrder.job.clm_ph1x,
|
||||
CLM_PH2: partsOrder.job.clm_ph2,
|
||||
CLM_PH2X: partsOrder.job.clm_ph2x,
|
||||
CLM_FAX: partsOrder.job.clm_fax,
|
||||
CLM_FAXX: partsOrder.job.clm_faxx,
|
||||
CLM_CT_LN: partsOrder.job.clm_ct_ln,
|
||||
CLM_CT_FN: partsOrder.job.clm_ct_fn,
|
||||
CLM_TITLE: partsOrder.job.clm_title,
|
||||
CLM_CT_PH: partsOrder.job.clm_ct_ph,
|
||||
CLM_CT_PHX: partsOrder.job.clm_ct_phx,
|
||||
CLM_EA: partsOrder.job.clm_ea,
|
||||
PAYEE_NMS: partsOrder.job.payee_nms,
|
||||
PAY_TYPE: partsOrder.job.pay_type,
|
||||
PAY_DATE: partsOrder.job.pay_date,
|
||||
PAY_CHKNM: null, // Explicitly set to null as in original code
|
||||
PAY_AMT: null, // Explicitly set to null as in original code
|
||||
PAY_MEMO: partsOrder.job.pay_memo,
|
||||
AGT_CO_ID: partsOrder.job.agt_co_id,
|
||||
AGT_CO_NM: partsOrder.job.agt_co_nm,
|
||||
AGT_ADDR1: partsOrder.job.agt_addr1,
|
||||
AGT_ADDR2: partsOrder.job.agt_addr2,
|
||||
AGT_CITY: partsOrder.job.agt_city,
|
||||
AGT_ST: partsOrder.job.agt_st,
|
||||
AGT_ZIP: partsOrder.job.agt_zip,
|
||||
AGT_CTRY: partsOrder.job.agt_ctry,
|
||||
AGT_PH1: partsOrder.job.agt_ph1,
|
||||
AGT_PH1X: partsOrder.job.agt_ph1x,
|
||||
AGT_PH2: partsOrder.job.agt_ph2,
|
||||
AGT_PH2X: partsOrder.job.agt_ph2x,
|
||||
AGT_FAX: partsOrder.job.agt_fax,
|
||||
AGT_FAXX: partsOrder.job.agt_faxx,
|
||||
AGT_CT_LN: partsOrder.job.agt_ct_ln,
|
||||
AGT_CT_FN: partsOrder.job.agt_ct_fn,
|
||||
AGT_CT_PH: partsOrder.job.agt_ct_ph,
|
||||
AGT_CT_PHX: partsOrder.job.agt_ct_phx,
|
||||
AGT_EA: partsOrder.job.agt_ea,
|
||||
AGT_LIC_NO: partsOrder.job.agt_lic_no,
|
||||
LOSS_DATE: partsOrder.job.loss_date
|
||||
? new Date(partsOrder.job.loss_date)
|
||||
: null,
|
||||
LOSS_CAT: null, // Explicitly set to null as in original code
|
||||
LOSS_TYPE: null, // Explicitly set to null as in original code
|
||||
LOSS_DESC: partsOrder.job.loss_desc,
|
||||
THEFT_IND: null, // Explicitly set to null as in original code
|
||||
CAT_NO: partsOrder.job.cat_no,
|
||||
TLOS_IND: null, // Explicitly set to null as in original code
|
||||
LOSS_MEMO: partsOrder.job.loss_memo,
|
||||
CUST_PR: partsOrder.job.cust_pr,
|
||||
INSD_LN: partsOrder.job.insd_ln,
|
||||
INSD_FN: partsOrder.job.insd_fn,
|
||||
INSD_TITLE: partsOrder.job.insd_title,
|
||||
INSD_CO_NM: partsOrder.job.insd_co_nm,
|
||||
INSD_ADDR1: partsOrder.job.insd_addr1,
|
||||
INSD_ADDR2: partsOrder.job.insd_addr2,
|
||||
INSD_CITY: partsOrder.job.insd_city,
|
||||
INSD_ST: partsOrder.job.insd_st,
|
||||
INSD_ZIP: partsOrder.job.insd_zip,
|
||||
INSD_CTRY: partsOrder.job.insd_ctry,
|
||||
INSD_PH1: partsOrder.job.insd_ph1,
|
||||
INSD_PH1X: partsOrder.job.insd_ph1x,
|
||||
INSD_PH2: partsOrder.job.insd_ph2,
|
||||
INSD_PH2X: partsOrder.job.insd_ph2x,
|
||||
INSD_FAX: partsOrder.job.insd_fax,
|
||||
INSD_FAXX: partsOrder.job.insd_faxx,
|
||||
INSD_EA: partsOrder.job.insd_ea,
|
||||
OWNR_LN: partsOrder.job.ownr_ln,
|
||||
OWNR_FN: partsOrder.job.ownr_fn,
|
||||
OWNR_TITLE: partsOrder.job.ownr_title,
|
||||
OWNR_CO_NM: partsOrder.job.ownr_co_nm,
|
||||
OWNR_ADDR1: partsOrder.job.ownr_addr1,
|
||||
OWNR_ADDR2: partsOrder.job.ownr_addr2,
|
||||
OWNR_CITY: partsOrder.job.ownr_city,
|
||||
OWNR_ST: partsOrder.job.ownr_st,
|
||||
OWNR_ZIP: partsOrder.job.ownr_zip,
|
||||
OWNR_CTRY: partsOrder.job.ownr_ctry,
|
||||
OWNR_PH1: partsOrder.job.ownr_ph1,
|
||||
OWNR_PH1X: partsOrder.job.ownr_ph1x,
|
||||
OWNR_PH2: partsOrder.job.ownr_ph2,
|
||||
OWNR_PH2X: partsOrder.job.ownr_ph2x,
|
||||
OWNR_FAX: partsOrder.job.ownr_fax,
|
||||
OWNR_FAXX: partsOrder.job.ownr_faxx,
|
||||
OWNR_EA: partsOrder.job.ownr_ea,
|
||||
},
|
||||
];
|
||||
|
||||
await deleteEmsFileIfExists(
|
||||
generateEmsOutFilePath(`${partsOrder.job.ciecaid}.AD2`),
|
||||
);
|
||||
|
||||
const dbf: DBFFile = await DBFFile.create(
|
||||
generateEmsOutFilePath(`${partsOrder.job.ciecaid}.AD2`),
|
||||
ad2FieldLineDescriptors,
|
||||
);
|
||||
|
||||
await dbf.appendRecords(records);
|
||||
console.log(`${records.length} AD2 file records added.`);
|
||||
return true;
|
||||
} catch (error) {
|
||||
console.error("Error generating AD2 file:", errorTypeCheck(error));
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
export default EmsPartsOrderGenerateAd2File;
|
||||
@@ -1,11 +1,16 @@
|
||||
import { DBFFile } from "dbffile";
|
||||
import errorTypeCheck from "../../util/errorTypeCheck";
|
||||
import { envFieldLineDescriptors } from "../util/ems-interface/fielddescriptors/env-field-descriptor";
|
||||
import { deleteEmsFileIfExists, generatePpcFilePath } from "../util/ems-util";
|
||||
import {
|
||||
deleteEmsFileIfExists,
|
||||
generateEmsOutFilePath,
|
||||
} from "../util/ems-util";
|
||||
import { EmsPartsOrder } from "./ems-parts-order-interfaces";
|
||||
|
||||
const EmsPartsOrderGenerateEnvFile = async (
|
||||
partsOrder: EmsPartsOrder,
|
||||
): Promise<boolean> => {
|
||||
try {
|
||||
const records = [
|
||||
{
|
||||
EST_SYSTEM: "C",
|
||||
@@ -22,17 +27,21 @@ const EmsPartsOrderGenerateEnvFile = async (
|
||||
];
|
||||
|
||||
await deleteEmsFileIfExists(
|
||||
generatePpcFilePath(`${partsOrder.job.ciecaid}.ENV`),
|
||||
generateEmsOutFilePath(`${partsOrder.job.ciecaid}.ENV`),
|
||||
);
|
||||
|
||||
const dbf = await DBFFile.create(
|
||||
generatePpcFilePath(`${partsOrder.job.ciecaid}.ENV`),
|
||||
const dbf: DBFFile = await DBFFile.create(
|
||||
generateEmsOutFilePath(`${partsOrder.job.ciecaid}.ENV`),
|
||||
envFieldLineDescriptors,
|
||||
);
|
||||
|
||||
await dbf.appendRecords(records);
|
||||
console.log(`${records.length} LIN file records added.`);
|
||||
console.log(`${records.length} ENV file records added.`);
|
||||
return true;
|
||||
} catch (error) {
|
||||
console.error("Error generating ENV file:", errorTypeCheck(error));
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
export default EmsPartsOrderGenerateEnvFile;
|
||||
|
||||
85
src/main/ems-parts-order/ems-parts-order-generate-lin.ts
Normal file
85
src/main/ems-parts-order/ems-parts-order-generate-lin.ts
Normal file
@@ -0,0 +1,85 @@
|
||||
import { DBFFile } from "dbffile";
|
||||
import errorTypeCheck from "../../util/errorTypeCheck";
|
||||
import {
|
||||
deleteEmsFileIfExists,
|
||||
generateEmsOutFilePath,
|
||||
} from "../util/ems-util";
|
||||
import { EmsPartsOrder } from "./ems-parts-order-interfaces";
|
||||
import { linFieldLineDescriptors } from "../util/ems-interface/fielddescriptors/lin-field-descriptors";
|
||||
|
||||
const EmsPartsOrderGenerateLinFile = async (
|
||||
partsOrder: EmsPartsOrder,
|
||||
): Promise<boolean> => {
|
||||
try {
|
||||
const records = partsOrder.parts_order_lines.map((partsOrderLine) => ({
|
||||
LINE_NO: partsOrderLine.jobline?.line_no,
|
||||
LINE_IND: partsOrderLine.jobline?.line_ind,
|
||||
LINE_REF: partsOrderLine.jobline?.line_ref,
|
||||
TRAN_CODE: partsOrderLine.jobline?.tran_code ?? "1",
|
||||
DB_REF: partsOrderLine.jobline?.db_ref,
|
||||
UNQ_SEQ: partsOrderLine.jobline?.unq_seq,
|
||||
WHO_PAYS: partsOrderLine.jobline?.who_pays,
|
||||
LINE_DESC: partsOrderLine.jobline?.line_desc,
|
||||
PART_TYPE:
|
||||
partsOrderLine.priceChange === true
|
||||
? partsOrderLine.part_type
|
||||
: partsOrderLine.jobline?.part_type,
|
||||
GLASS_FLAG: partsOrderLine.jobline?.glass_flag,
|
||||
OEM_PARTNO: partsOrderLine.jobline?.oem_partno,
|
||||
PRICE_INC: partsOrderLine.jobline?.price_inc,
|
||||
ALT_PART_I: partsOrderLine.jobline?.alt_part_i,
|
||||
TAX_PART: partsOrderLine.jobline?.tax_part,
|
||||
DB_PRICE: partsOrderLine.jobline?.db_price,
|
||||
ACT_PRICE:
|
||||
partsOrderLine.priceChange === true
|
||||
? partsOrderLine.act_price
|
||||
: partsOrderLine.jobline?.act_price,
|
||||
PRICE_J: partsOrderLine.jobline?.price_j,
|
||||
CERT_PART: partsOrderLine.jobline?.cert_part,
|
||||
PART_QTY: partsOrderLine.jobline?.part_qty,
|
||||
ALT_CO_ID: partsOrderLine.jobline?.alt_co_id,
|
||||
ALT_PARTNO: partsOrderLine.jobline?.alt_partno,
|
||||
ALT_OVERRD: partsOrderLine.jobline?.alt_overrd,
|
||||
ALT_PARTM: partsOrderLine.jobline?.alt_partm,
|
||||
PRT_DSMK_P: partsOrderLine.jobline?.prt_dsmk_p,
|
||||
PRT_DSMK_M: partsOrderLine.jobline?.prt_dsmk_m,
|
||||
MOD_LBR_TY: partsOrderLine.jobline?.mod_lbr_ty,
|
||||
DB_HRS: partsOrderLine.jobline?.db_hrs,
|
||||
MOD_LB_HRS: partsOrderLine.jobline?.mod_lb_hrs,
|
||||
LBR_INC: partsOrderLine.jobline?.lbr_inc,
|
||||
LBR_OP: partsOrderLine.jobline?.lbr_op,
|
||||
LBR_HRS_J: partsOrderLine.jobline?.lbr_hrs_j,
|
||||
LBR_TYP_J: partsOrderLine.jobline?.lbr_typ_j,
|
||||
LBR_OP_J: partsOrderLine.jobline?.lbr_op_j,
|
||||
PAINT_STG: partsOrderLine.jobline?.paint_stg,
|
||||
PAINT_TONE: partsOrderLine.jobline?.paint_tone,
|
||||
LBR_TAX: partsOrderLine.jobline?.lbr_tax,
|
||||
LBR_AMT: partsOrderLine.jobline?.lbr_amt,
|
||||
MISC_AMT: partsOrderLine.jobline?.misc_amt,
|
||||
MISC_SUBLT: partsOrderLine.jobline?.misc_sublt,
|
||||
MISC_TAX: partsOrderLine.jobline?.misc_tax,
|
||||
BETT_TYPE: partsOrderLine.jobline?.bett_type,
|
||||
BETT_PCTG: partsOrderLine.jobline?.bett_pctg,
|
||||
BETT_AMT: partsOrderLine.jobline?.bett_amt,
|
||||
BETT_TAX: partsOrderLine.jobline?.bett_tax,
|
||||
}));
|
||||
|
||||
await deleteEmsFileIfExists(
|
||||
generateEmsOutFilePath(`${partsOrder.job.ciecaid}.LIN`),
|
||||
);
|
||||
|
||||
const dbf: DBFFile = await DBFFile.create(
|
||||
generateEmsOutFilePath(`${partsOrder.job.ciecaid}.LIN`),
|
||||
linFieldLineDescriptors,
|
||||
);
|
||||
|
||||
await dbf.appendRecords(records);
|
||||
console.log(`${records.length} LIN file records added.`);
|
||||
return true;
|
||||
} catch (error) {
|
||||
console.error("Error generating LIN file:", errorTypeCheck(error));
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
export default EmsPartsOrderGenerateLinFile;
|
||||
59
src/main/ems-parts-order/ems-parts-order-generate-pfh.ts
Normal file
59
src/main/ems-parts-order/ems-parts-order-generate-pfh.ts
Normal file
@@ -0,0 +1,59 @@
|
||||
import { DBFFile } from "dbffile";
|
||||
import errorTypeCheck from "../../util/errorTypeCheck";
|
||||
import {
|
||||
deleteEmsFileIfExists,
|
||||
generateEmsOutFilePath,
|
||||
} from "../util/ems-util";
|
||||
import { EmsPartsOrder } from "./ems-parts-order-interfaces";
|
||||
import { pfhFieldLineDescriptors } from "../util/ems-interface/fielddescriptors/pfh-field-descriptors";
|
||||
|
||||
const EmsPartsOrderGeneratePfhFile = async (
|
||||
partsOrder: EmsPartsOrder,
|
||||
): Promise<boolean> => {
|
||||
try {
|
||||
const records = [
|
||||
{
|
||||
ID_PRO_NAM: "REPAIR FACILITY", // Job.id_pro_nam?.Value
|
||||
TAX_PRETHR: (partsOrder.job.tax_prethr || 0) * 100,
|
||||
TAX_THRAMT: (partsOrder.job.tax_thramt || 0) * 100,
|
||||
TAX_PSTTHR: (partsOrder.job.tax_pstthr || 0) * 100,
|
||||
TAX_TOW_IN: true, // Job.tax_tow_in?.Value
|
||||
TAX_TOW_RT: (partsOrder.job.tax_tow_rt || 0) * 100,
|
||||
TAX_STR_IN: true, // Job.tax_str_in?.Value
|
||||
TAX_STR_RT: (partsOrder.job.tax_str_rt || 0) * 100,
|
||||
TAX_SUB_IN: true, // Job.tax_sub_in?.Value
|
||||
TAX_SUB_RT: (partsOrder.job.tax_sub_rt || 0) * 100,
|
||||
TAX_BTR_IN: true, // Job.tax_btr_in?.Value
|
||||
TAX_LBR_RT:
|
||||
(partsOrder.job.bodyshop?.bill_tax_rates?.state_tax_rate || 0) * 100,
|
||||
TAX_GST_RT:
|
||||
(partsOrder.job.bodyshop?.bill_tax_rates?.federal_tax_rate || 0) *
|
||||
100,
|
||||
TAX_GST_IN: true, // Job.tax_gst_in?.Value
|
||||
ADJ_G_DISC: (partsOrder.job.adj_g_disc || 0) * 100,
|
||||
ADJ_TOWDIS: (partsOrder.job.adj_towdis || 0) * 100,
|
||||
ADJ_STRDIS: (partsOrder.job.adj_strdis || 0) * 100,
|
||||
ADJ_BTR_IN: null, // Job.adj_btr_in?.Value
|
||||
TAX_PREDIS: (partsOrder.job.tax_predis || 0) * 100,
|
||||
},
|
||||
];
|
||||
|
||||
await deleteEmsFileIfExists(
|
||||
generateEmsOutFilePath(`${partsOrder.job.ciecaid}.PFH`),
|
||||
);
|
||||
|
||||
const dbf: DBFFile = await DBFFile.create(
|
||||
generateEmsOutFilePath(`${partsOrder.job.ciecaid}.PFH`),
|
||||
pfhFieldLineDescriptors,
|
||||
);
|
||||
|
||||
await dbf.appendRecords(records);
|
||||
console.log(`${records.length} PFH file records added.`);
|
||||
return true;
|
||||
} catch (error) {
|
||||
console.error("Error generating PFH file:", errorTypeCheck(error));
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
export default EmsPartsOrderGeneratePfhFile;
|
||||
39
src/main/ems-parts-order/ems-parts-order-generate-pfl.ts
Normal file
39
src/main/ems-parts-order/ems-parts-order-generate-pfl.ts
Normal file
@@ -0,0 +1,39 @@
|
||||
import { DBFFile } from "dbffile";
|
||||
import errorTypeCheck from "../../util/errorTypeCheck";
|
||||
import { DecodedPflLine } from "../decoder/decode-pfl.interface";
|
||||
import { pflFieldLineDescriptors } from "../util/ems-interface/fielddescriptors/pfl-field-descriptors";
|
||||
import {
|
||||
deleteEmsFileIfExists,
|
||||
generateEmsOutFilePath,
|
||||
} from "../util/ems-util";
|
||||
import uppercaseObjectKeys from "../util/uppercaseObjectKeys";
|
||||
import { EmsPartsOrder } from "./ems-parts-order-interfaces";
|
||||
|
||||
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);
|
||||
});
|
||||
|
||||
await deleteEmsFileIfExists(
|
||||
generateEmsOutFilePath(`${partsOrder.job.ciecaid}.PFL`),
|
||||
);
|
||||
|
||||
const dbf: DBFFile = await DBFFile.create(
|
||||
generateEmsOutFilePath(`${partsOrder.job.ciecaid}.PFL`),
|
||||
pflFieldLineDescriptors,
|
||||
);
|
||||
|
||||
await dbf.appendRecords(records);
|
||||
console.log(`${records.length} PFL file records added.`);
|
||||
return true;
|
||||
} catch (error) {
|
||||
console.error("Error generating PFL file:", errorTypeCheck(error));
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
export default EmsPartsOrderGeneratePflFile;
|
||||
39
src/main/ems-parts-order/ems-parts-order-generate-pfm.ts
Normal file
39
src/main/ems-parts-order/ems-parts-order-generate-pfm.ts
Normal file
@@ -0,0 +1,39 @@
|
||||
import { DBFFile } from "dbffile";
|
||||
import errorTypeCheck from "../../util/errorTypeCheck";
|
||||
import { DecodedPfmLine } from "../decoder/decode-pfm.interface";
|
||||
import { pfmFieldLineDescriptors } from "../util/ems-interface/fielddescriptors/pfm-field-descriptors";
|
||||
import {
|
||||
deleteEmsFileIfExists,
|
||||
generateEmsOutFilePath,
|
||||
} from "../util/ems-util";
|
||||
import uppercaseObjectKeys from "../util/uppercaseObjectKeys";
|
||||
import { EmsPartsOrder } from "./ems-parts-order-interfaces";
|
||||
|
||||
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);
|
||||
});
|
||||
|
||||
await deleteEmsFileIfExists(
|
||||
generateEmsOutFilePath(`${partsOrder.job.ciecaid}.PFM`),
|
||||
);
|
||||
|
||||
const dbf: DBFFile = await DBFFile.create(
|
||||
generateEmsOutFilePath(`${partsOrder.job.ciecaid}.PFM`),
|
||||
pfmFieldLineDescriptors,
|
||||
);
|
||||
|
||||
await dbf.appendRecords(records);
|
||||
console.log(`${records.length} PFM file records added.`);
|
||||
return true;
|
||||
} catch (error) {
|
||||
console.error("Error generating PFM file:", errorTypeCheck(error));
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
export default EmsPartsOrderGeneratePfmFile;
|
||||
34
src/main/ems-parts-order/ems-parts-order-generate-pfo.ts
Normal file
34
src/main/ems-parts-order/ems-parts-order-generate-pfo.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
import { DBFFile } from "dbffile";
|
||||
import errorTypeCheck from "../../util/errorTypeCheck";
|
||||
import { pfoFieldLineDescriptors } from "../util/ems-interface/fielddescriptors/pfo-field-descriptors";
|
||||
import {
|
||||
deleteEmsFileIfExists,
|
||||
generateEmsOutFilePath,
|
||||
} from "../util/ems-util";
|
||||
import { EmsPartsOrder } from "./ems-parts-order-interfaces";
|
||||
|
||||
const EmsPartsOrderGeneratePfoFile = async (
|
||||
partsOrder: EmsPartsOrder,
|
||||
): Promise<boolean> => {
|
||||
try {
|
||||
const records = []; //This was kept blank previously as well.
|
||||
|
||||
await deleteEmsFileIfExists(
|
||||
generateEmsOutFilePath(`${partsOrder.job.ciecaid}.PFO`),
|
||||
);
|
||||
|
||||
const dbf: DBFFile = await DBFFile.create(
|
||||
generateEmsOutFilePath(`${partsOrder.job.ciecaid}.PFO`),
|
||||
pfoFieldLineDescriptors,
|
||||
);
|
||||
|
||||
await dbf.appendRecords(records);
|
||||
console.log(`${records.length} PFO file records added.`);
|
||||
return true;
|
||||
} catch (error) {
|
||||
console.error("Error generating PFO file:", errorTypeCheck(error));
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
export default EmsPartsOrderGeneratePfoFile;
|
||||
39
src/main/ems-parts-order/ems-parts-order-generate-pfp.ts
Normal file
39
src/main/ems-parts-order/ems-parts-order-generate-pfp.ts
Normal file
@@ -0,0 +1,39 @@
|
||||
import { DBFFile } from "dbffile";
|
||||
import errorTypeCheck from "../../util/errorTypeCheck";
|
||||
import { DecodedPfmLine } from "../decoder/decode-pfm.interface";
|
||||
import { pfpFieldLineDescriptors } from "../util/ems-interface/fielddescriptors/pfp-field-descriptors";
|
||||
import {
|
||||
deleteEmsFileIfExists,
|
||||
generateEmsOutFilePath,
|
||||
} from "../util/ems-util";
|
||||
import uppercaseObjectKeys from "../util/uppercaseObjectKeys";
|
||||
import { EmsPartsOrder } from "./ems-parts-order-interfaces";
|
||||
|
||||
const EmsPartsOrderGeneratePfpFile = 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);
|
||||
});
|
||||
|
||||
await deleteEmsFileIfExists(
|
||||
generateEmsOutFilePath(`${partsOrder.job.ciecaid}.PFP`),
|
||||
);
|
||||
|
||||
const dbf: DBFFile = await DBFFile.create(
|
||||
generateEmsOutFilePath(`${partsOrder.job.ciecaid}.PFP`),
|
||||
pfpFieldLineDescriptors,
|
||||
);
|
||||
|
||||
await dbf.appendRecords(records);
|
||||
console.log(`${records.length} PFP file records added.`);
|
||||
return true;
|
||||
} catch (error) {
|
||||
console.error("Error generating PFP file:", errorTypeCheck(error));
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
export default EmsPartsOrderGeneratePfpFile;
|
||||
65
src/main/ems-parts-order/ems-parts-order-generate-veh.ts
Normal file
65
src/main/ems-parts-order/ems-parts-order-generate-veh.ts
Normal file
@@ -0,0 +1,65 @@
|
||||
import { DBFFile } from "dbffile";
|
||||
import errorTypeCheck from "../../util/errorTypeCheck";
|
||||
import { vehFieldLineDescriptors } from "../util/ems-interface/fielddescriptors/veh-field-descriptors";
|
||||
import {
|
||||
deleteEmsFileIfExists,
|
||||
generateEmsOutFilePath,
|
||||
} from "../util/ems-util";
|
||||
import { EmsPartsOrder } from "./ems-parts-order-interfaces";
|
||||
|
||||
const EmsPartsOrderGenerateVehFile = async (
|
||||
partsOrder: EmsPartsOrder,
|
||||
): Promise<boolean> => {
|
||||
try {
|
||||
const records = [
|
||||
{
|
||||
IMPACT_1: partsOrder.job.area_of_damage?.impact1 || null,
|
||||
IMPACT_2: partsOrder.job.area_of_damage?.impact2 || null,
|
||||
DMG_MEMO: null,
|
||||
DB_V_CODE: "",
|
||||
PLATE_NO: partsOrder.job.plate_no || null,
|
||||
PLATE_ST: partsOrder.job.plate_st || null,
|
||||
V_VIN: partsOrder.job.v_vin || null,
|
||||
V_COND: "",
|
||||
V_PROD_DT: "",
|
||||
V_MODEL_YR: partsOrder.job.v_model_yr || null,
|
||||
V_MAKECODE: "",
|
||||
V_MAKEDESC: partsOrder.job.v_make_desc || null,
|
||||
V_MODEL: partsOrder.job.v_model_desc || null,
|
||||
V_TYPE: partsOrder.job.vehicle?.v_type || null,
|
||||
V_BSTYLE: partsOrder.job.vehicle?.v_bstyle || null,
|
||||
V_TRIMCODE: partsOrder.job.vehicle?.v_trimcode || null,
|
||||
TRIM_COLOR: partsOrder.job.vehicle?.trim_color || null,
|
||||
V_MLDGCODE: partsOrder.job.vehicle?.v_mldgcode || null,
|
||||
V_ENGINE: partsOrder.job.vehicle?.v_engine || null,
|
||||
V_MILEAGE: partsOrder.job.vehicle?.v_mileage || null,
|
||||
V_OPTIONS: null,
|
||||
V_COLOR: partsOrder.job.vehicle?.v_color || null,
|
||||
V_TONE: Number(partsOrder.job.vehicle?.v_tone) || null,
|
||||
V_STAGE: null,
|
||||
PAINT_CD1: partsOrder.job.vehicle?.v_paint_codes?.paint_cd1 || "",
|
||||
PAINT_CD2: partsOrder.job.vehicle?.v_paint_codes?.paint_cd2 || "",
|
||||
PAINT_CD3: partsOrder.job.vehicle?.v_paint_codes?.paint_cd3 || "",
|
||||
V_MEMO: null,
|
||||
},
|
||||
];
|
||||
|
||||
await deleteEmsFileIfExists(
|
||||
generateEmsOutFilePath(`${partsOrder.job.ciecaid}.VEH`),
|
||||
);
|
||||
|
||||
const dbf: DBFFile = await DBFFile.create(
|
||||
generateEmsOutFilePath(`${partsOrder.job.ciecaid}.VEH`),
|
||||
vehFieldLineDescriptors,
|
||||
);
|
||||
|
||||
await dbf.appendRecords(records);
|
||||
console.log(`${records.length} VEH file records added.`);
|
||||
return true;
|
||||
} catch (error) {
|
||||
console.error("Error generating VEH file:", errorTypeCheck(error));
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
export default EmsPartsOrderGenerateVehFile;
|
||||
@@ -4,8 +4,16 @@ import _ from "lodash";
|
||||
import errorTypeCheck from "../../util/errorTypeCheck";
|
||||
import store from "../store/store";
|
||||
import createdDirectoryIfNotExist from "../util/createDirectoryIfNotExist";
|
||||
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";
|
||||
|
||||
const handleEMSPartsOrder = async (
|
||||
req: express.Request,
|
||||
@@ -43,6 +51,16 @@ const generateEMSPartsOrder = async (
|
||||
createdDirectoryIfNotExist(emsOutFilePath);
|
||||
|
||||
//Generate all required files: ad1, ad2, veh, lin, pfh, pfl, pfm,pfo, pfp, pft, stl, ttl
|
||||
await EmsPartsOrderGenerateAd1File(partsOrder);
|
||||
await EmsPartsOrderGenerateAd2File(partsOrder);
|
||||
await EmsPartsOrderGenerateVehFile(partsOrder);
|
||||
await EmsPartsOrderGenerateLinFile(partsOrder);
|
||||
await EmsPartsOrderGeneratePfhFile(partsOrder);
|
||||
await EmsPartsOrderGeneratePflFile(partsOrder);
|
||||
await EmsPartsOrderGeneratePfmFile(partsOrder);
|
||||
await EmsPartsOrderGeneratePfoFile(partsOrder);
|
||||
await EmsPartsOrderGeneratePfpFile(partsOrder);
|
||||
|
||||
await EmsPartsOrderGenerateEnvFile(partsOrder);
|
||||
} catch (error) {
|
||||
log.error("Error generating parts price change", errorTypeCheck(error));
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { CiecaPfl, DecodedPflLine } from "../decoder/decode-pfl.interface";
|
||||
|
||||
export interface TaxRate {
|
||||
prt_type: string;
|
||||
prt_discp: number;
|
||||
@@ -84,6 +86,7 @@ export interface PartsOrderLine {
|
||||
line_desc: string;
|
||||
quantity: number;
|
||||
part_type: string;
|
||||
priceChange: boolean;
|
||||
}
|
||||
|
||||
// Vehicle export interface
|
||||
@@ -129,6 +132,7 @@ export interface Job {
|
||||
area_of_damage: AreaOfDamage;
|
||||
asgn_type: string | null;
|
||||
ciecaid: string;
|
||||
cieca_pfl: CiecaPfl;
|
||||
clm_addr1: string | null;
|
||||
clm_city: string | null;
|
||||
clm_addr2: string | null;
|
||||
@@ -299,6 +303,7 @@ export interface Job {
|
||||
rate_la3: number;
|
||||
rate_la2: number;
|
||||
rate_la1: number;
|
||||
materials: Record<string, DecodedPfmLine>;
|
||||
}
|
||||
|
||||
// Main Parts Order export interface
|
||||
|
||||
@@ -2,8 +2,10 @@ import { DBFFile } from "dbffile";
|
||||
import { linFieldDescriptors } from "../util/ems-interface/fielddescriptors/lin-field-descriptor";
|
||||
import { deleteEmsFileIfExists, generatePpcFilePath } from "../util/ems-util";
|
||||
import { PpcJob } from "./ppc-handler";
|
||||
import errorTypeCheck from "../../util/errorTypeCheck";
|
||||
|
||||
const GenerateLinFile = async (job: PpcJob): Promise<boolean> => {
|
||||
try {
|
||||
const records = job.joblines.map((line) => {
|
||||
return {
|
||||
//TODO: There are missing types here. May require server side updates, but we are missing things like LINE_NO, LINE_IND, etc.
|
||||
@@ -23,6 +25,10 @@ const GenerateLinFile = async (job: PpcJob): Promise<boolean> => {
|
||||
await dbf.appendRecords(records);
|
||||
console.log(`${records.length} LIN file records added.`);
|
||||
return true;
|
||||
} catch (error) {
|
||||
console.error("Error generating PPC LIN file", errorTypeCheck(error));
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
|
||||
export default GenerateLinFile;
|
||||
|
||||
@@ -0,0 +1,706 @@
|
||||
import { FieldDescriptor } from "dbffile";
|
||||
|
||||
export const ad1FieldLineDescriptors: FieldDescriptor[] = [
|
||||
{
|
||||
name: "INS_CO_ID",
|
||||
type: "C",
|
||||
size: 5,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INS_CO_NM",
|
||||
type: "C",
|
||||
size: 35,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INS_ADDR1",
|
||||
type: "C",
|
||||
size: 40,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INS_ADDR2",
|
||||
type: "C",
|
||||
size: 40,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INS_CITY",
|
||||
type: "C",
|
||||
size: 30,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INS_ST",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INS_ZIP",
|
||||
type: "C",
|
||||
size: 11,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INS_CTRY",
|
||||
type: "C",
|
||||
size: 3,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INS_PH1",
|
||||
type: "C",
|
||||
size: 10,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INS_PH1X",
|
||||
type: "C",
|
||||
size: 8,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INS_PH2",
|
||||
type: "C",
|
||||
size: 10,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INS_PH2X",
|
||||
type: "C",
|
||||
size: 8,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INS_FAX",
|
||||
type: "C",
|
||||
size: 10,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INS_FAXX",
|
||||
type: "C",
|
||||
size: 8,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INS_CT_LN",
|
||||
type: "C",
|
||||
size: 35,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INS_CT_FN",
|
||||
type: "C",
|
||||
size: 35,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INS_TITLE",
|
||||
type: "C",
|
||||
size: 35,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INS_CT_PH",
|
||||
type: "C",
|
||||
size: 10,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INS_CT_PHX",
|
||||
type: "C",
|
||||
size: 8,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INS_EA",
|
||||
type: "C",
|
||||
size: 80,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INS_MEMO",
|
||||
type: "C",
|
||||
size: 10,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "POLICY_NO",
|
||||
type: "C",
|
||||
size: 30,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "DED_AMT",
|
||||
type: "N",
|
||||
size: 9,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "DED_STATUS",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "ASGN_NO",
|
||||
type: "C",
|
||||
size: 25,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "ASGN_DATE",
|
||||
type: "D",
|
||||
size: 8,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "ASGN_TYPE",
|
||||
type: "C",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CLM_NO",
|
||||
type: "C",
|
||||
size: 30,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CLM_OFC_ID",
|
||||
type: "C",
|
||||
size: 5,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CLM_OFC_NM",
|
||||
type: "C",
|
||||
size: 35,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CLM_ADDR1",
|
||||
type: "C",
|
||||
size: 40,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CLM_ADDR2",
|
||||
type: "C",
|
||||
size: 40,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CLM_CITY",
|
||||
type: "C",
|
||||
size: 30,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CLM_ST",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CLM_ZIP",
|
||||
type: "C",
|
||||
size: 11,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CLM_CTRY",
|
||||
type: "C",
|
||||
size: 3,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CLM_PH1",
|
||||
type: "C",
|
||||
size: 10,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CLM_PH1X",
|
||||
type: "C",
|
||||
size: 8,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CLM_PH2",
|
||||
type: "C",
|
||||
size: 10,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CLM_PH2X",
|
||||
type: "C",
|
||||
size: 8,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CLM_FAX",
|
||||
type: "C",
|
||||
size: 10,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CLM_FAXX",
|
||||
type: "C",
|
||||
size: 8,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CLM_CT_LN",
|
||||
type: "C",
|
||||
size: 35,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CLM_CT_FN",
|
||||
type: "C",
|
||||
size: 35,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CLM_TITLE",
|
||||
type: "C",
|
||||
size: 35,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CLM_CT_PH",
|
||||
type: "C",
|
||||
size: 10,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CLM_CT_PHX",
|
||||
type: "C",
|
||||
size: 8,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CLM_EA",
|
||||
type: "C",
|
||||
size: 80,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "PAYEE_NMS",
|
||||
type: "C",
|
||||
size: 85,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "PAY_TYPE",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "PAY_DATE",
|
||||
type: "D",
|
||||
size: 8,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "PAY_CHKNM",
|
||||
type: "C",
|
||||
size: 16,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "PAY_AMT",
|
||||
type: "N",
|
||||
size: 10,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "PAY_MEMO",
|
||||
type: "C",
|
||||
size: 10,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "AGT_CO_ID",
|
||||
type: "C",
|
||||
size: 5,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "AGT_CO_NM",
|
||||
type: "C",
|
||||
size: 35,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "AGT_ADDR1",
|
||||
type: "C",
|
||||
size: 40,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "AGT_ADDR2",
|
||||
type: "C",
|
||||
size: 40,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "AGT_CITY",
|
||||
type: "C",
|
||||
size: 30,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "AGT_ST",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "AGT_ZIP",
|
||||
type: "C",
|
||||
size: 11,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "AGT_CTRY",
|
||||
type: "C",
|
||||
size: 3,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "AGT_PH1",
|
||||
type: "C",
|
||||
size: 10,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "AGT_PH1X",
|
||||
type: "C",
|
||||
size: 8,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "AGT_PH2",
|
||||
type: "C",
|
||||
size: 10,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "AGT_PH2X",
|
||||
type: "C",
|
||||
size: 8,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "AGT_FAX",
|
||||
type: "C",
|
||||
size: 10,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "AGT_FAXX",
|
||||
type: "C",
|
||||
size: 8,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "AGT_CT_LN",
|
||||
type: "C",
|
||||
size: 35,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "AGT_CT_FN",
|
||||
type: "C",
|
||||
size: 35,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "AGT_CT_PH",
|
||||
type: "C",
|
||||
size: 10,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "AGT_CT_PHX",
|
||||
type: "C",
|
||||
size: 8,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "AGT_EA",
|
||||
type: "C",
|
||||
size: 80,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "AGT_LIC_NO",
|
||||
type: "C",
|
||||
size: 30,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LOSS_DATE",
|
||||
type: "D",
|
||||
size: 8,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LOSS_CAT",
|
||||
type: "C",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LOSS_TYPE",
|
||||
type: "C",
|
||||
size: 7,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LOSS_DESC",
|
||||
type: "C",
|
||||
size: 38,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "THEFT_IND",
|
||||
type: "L",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CAT_NO",
|
||||
type: "C",
|
||||
size: 30,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TLOS_IND",
|
||||
type: "L",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LOSS_MEMO",
|
||||
type: "C",
|
||||
size: 10,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CUST_PR",
|
||||
type: "C",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INSD_LN",
|
||||
type: "C",
|
||||
size: 35,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INSD_FN",
|
||||
type: "C",
|
||||
size: 35,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INSD_TITLE",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INSD_CO_NM",
|
||||
type: "C",
|
||||
size: 35,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INSD_ADDR1",
|
||||
type: "C",
|
||||
size: 40,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INSD_ADDR2",
|
||||
type: "C",
|
||||
size: 40,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INSD_CITY",
|
||||
type: "C",
|
||||
size: 30,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INSD_ST",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INSD_ZIP",
|
||||
type: "C",
|
||||
size: 11,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INSD_CTRY",
|
||||
type: "C",
|
||||
size: 3,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INSD_PH1",
|
||||
type: "C",
|
||||
size: 10,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INSD_PH1X",
|
||||
type: "C",
|
||||
size: 8,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INSD_PH2",
|
||||
type: "C",
|
||||
size: 10,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INSD_PH2X",
|
||||
type: "C",
|
||||
size: 8,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INSD_FAX",
|
||||
type: "C",
|
||||
size: 10,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INSD_FAXX",
|
||||
type: "C",
|
||||
size: 8,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INSD_EA",
|
||||
type: "C",
|
||||
size: 80,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "OWNR_LN",
|
||||
type: "C",
|
||||
size: 35,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "OWNR_FN",
|
||||
type: "C",
|
||||
size: 35,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "OWNR_TITLE",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "OWNR_CO_NM",
|
||||
type: "C",
|
||||
size: 35,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "OWNR_ADDR1",
|
||||
type: "C",
|
||||
size: 40,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "OWNR_ADDR2",
|
||||
type: "C",
|
||||
size: 40,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "OWNR_CITY",
|
||||
type: "C",
|
||||
size: 30,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "OWNR_ST",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "OWNR_ZIP",
|
||||
type: "C",
|
||||
size: 11,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "OWNR_CTRY",
|
||||
type: "C",
|
||||
size: 3,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "OWNR_PH1",
|
||||
type: "C",
|
||||
size: 10,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "OWNR_PH1X",
|
||||
type: "C",
|
||||
size: 8,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "OWNR_PH2",
|
||||
type: "C",
|
||||
size: 10,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "OWNR_PH2X",
|
||||
type: "C",
|
||||
size: 8,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "OWNR_FAX",
|
||||
type: "C",
|
||||
size: 10,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "OWNR_FAXX",
|
||||
type: "C",
|
||||
size: 8,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "OWNR_EA",
|
||||
type: "C",
|
||||
size: 80,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
];
|
||||
@@ -0,0 +1,640 @@
|
||||
import { FieldDescriptor } from "dbffile";
|
||||
|
||||
export const ad2FieldLineDescriptors: FieldDescriptor[] = [
|
||||
{
|
||||
name: "CLMT_LN",
|
||||
type: "C",
|
||||
size: 35,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CLMT_FN",
|
||||
type: "C",
|
||||
size: 35,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CLMT_TITLE",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CLMT_CO_NM",
|
||||
type: "C",
|
||||
size: 35,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CLMT_ADDR1",
|
||||
type: "C",
|
||||
size: 40,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CLMT_ADDR2",
|
||||
type: "C",
|
||||
size: 40,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CLMT_CITY",
|
||||
type: "C",
|
||||
size: 30,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CLMT_ST",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CLMT_ZIP",
|
||||
type: "C",
|
||||
size: 11,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CLMT_CTRY",
|
||||
type: "C",
|
||||
size: 3,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CLMT_PH1",
|
||||
type: "C",
|
||||
size: 10,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CLMT_PH1X",
|
||||
type: "C",
|
||||
size: 8,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CLMT_PH2",
|
||||
type: "C",
|
||||
size: 10,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CLMT_PH2X",
|
||||
type: "C",
|
||||
size: 8,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CLMT_FAX",
|
||||
type: "C",
|
||||
size: 10,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CLMT_FAXX",
|
||||
type: "C",
|
||||
size: 8,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CLMT_EA",
|
||||
type: "C",
|
||||
size: 80,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "EST_CO_ID",
|
||||
type: "C",
|
||||
size: 5,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "EST_CO_NM",
|
||||
type: "C",
|
||||
size: 35,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "EST_ADDR1",
|
||||
type: "C",
|
||||
size: 40,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "EST_ADDR2",
|
||||
type: "C",
|
||||
size: 40,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "EST_CITY",
|
||||
type: "C",
|
||||
size: 30,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "EST_ST",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "EST_ZIP",
|
||||
type: "C",
|
||||
size: 11,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "EST_CTRY",
|
||||
type: "C",
|
||||
size: 3,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "EST_PH1",
|
||||
type: "C",
|
||||
size: 10,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "EST_PH1X",
|
||||
type: "C",
|
||||
size: 8,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "EST_PH2",
|
||||
type: "C",
|
||||
size: 10,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "EST_PH2X",
|
||||
type: "C",
|
||||
size: 8,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "EST_FAX",
|
||||
type: "C",
|
||||
size: 10,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "EST_FAXX",
|
||||
type: "C",
|
||||
size: 8,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "EST_CT_LN",
|
||||
type: "C",
|
||||
size: 35,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "EST_CT_FN",
|
||||
type: "C",
|
||||
size: 35,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "EST_EA",
|
||||
type: "C",
|
||||
size: 80,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "EST_LIC_NO",
|
||||
type: "C",
|
||||
size: 30,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "EST_FILENO",
|
||||
type: "C",
|
||||
size: 25,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INSP_CT_LN",
|
||||
type: "C",
|
||||
size: 35,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INSP_CT_FN",
|
||||
type: "C",
|
||||
size: 35,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INSP_ADDR1",
|
||||
type: "C",
|
||||
size: 40,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INSP_ADDR2",
|
||||
type: "C",
|
||||
size: 40,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INSP_CITY",
|
||||
type: "C",
|
||||
size: 30,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INSP_ST",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INSP_ZIP",
|
||||
type: "C",
|
||||
size: 11,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INSP_CTRY",
|
||||
type: "C",
|
||||
size: 3,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INSP_PH1",
|
||||
type: "C",
|
||||
size: 10,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INSP_PH1X",
|
||||
type: "C",
|
||||
size: 8,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INSP_PH2",
|
||||
type: "C",
|
||||
size: 10,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INSP_PH2X",
|
||||
type: "C",
|
||||
size: 8,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INSP_FAX",
|
||||
type: "C",
|
||||
size: 10,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INSP_FAXX",
|
||||
type: "C",
|
||||
size: 8,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INSP_EA",
|
||||
type: "C",
|
||||
size: 80,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INSP_CODE",
|
||||
type: "C",
|
||||
size: 4,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INSP_DESC",
|
||||
type: "C",
|
||||
size: 40,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INSP_DATE",
|
||||
type: "D",
|
||||
size: 8,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "INSP_TIME",
|
||||
type: "C",
|
||||
size: 4,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "RF_CO_ID",
|
||||
type: "C",
|
||||
size: 5,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "RF_CO_NM",
|
||||
type: "C",
|
||||
size: 35,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "RF_ADDR1",
|
||||
type: "C",
|
||||
size: 40,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "RF_ADDR2",
|
||||
type: "C",
|
||||
size: 40,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "RF_CITY",
|
||||
type: "C",
|
||||
size: 30,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "RF_ST",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "RF_ZIP",
|
||||
type: "C",
|
||||
size: 11,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "RF_CTRY",
|
||||
type: "C",
|
||||
size: 3,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "RF_PH1",
|
||||
type: "C",
|
||||
size: 10,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "RF_PH1X",
|
||||
type: "C",
|
||||
size: 8,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "RF_PH2",
|
||||
type: "C",
|
||||
size: 10,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "RF_PH2X",
|
||||
type: "C",
|
||||
size: 8,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "RF_FAX",
|
||||
type: "C",
|
||||
size: 10,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "RF_FAXX",
|
||||
type: "C",
|
||||
size: 8,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "RF_CT_LN",
|
||||
type: "C",
|
||||
size: 35,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "RF_CT_FN",
|
||||
type: "C",
|
||||
size: 35,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "RF_EA",
|
||||
type: "C",
|
||||
size: 80,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "RF_TAX_ID",
|
||||
type: "C",
|
||||
size: 30,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "RF_LIC_NO",
|
||||
type: "C",
|
||||
size: 30,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "RF_BAR_NO",
|
||||
type: "C",
|
||||
size: 30,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "RO_IN_DATE",
|
||||
type: "D",
|
||||
size: 8,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "RO_IN_TIME",
|
||||
type: "C",
|
||||
size: 4,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "RO_AUTH",
|
||||
type: "C",
|
||||
size: 10,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TAR_DATE",
|
||||
type: "D",
|
||||
size: 8,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TAR_TIME",
|
||||
type: "C",
|
||||
size: 4,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "RO_CMPDATE",
|
||||
type: "D",
|
||||
size: 8,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "RO_CMPTIME",
|
||||
type: "C",
|
||||
size: 4,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "DATE_OUT",
|
||||
type: "D",
|
||||
size: 8,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TIME_OUT",
|
||||
type: "C",
|
||||
size: 4,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "RF_ESTIMTR",
|
||||
type: "C",
|
||||
size: 35,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "MKTG_TYPE",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "MKTG_SRC",
|
||||
type: "C",
|
||||
size: 35,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LOC_NM",
|
||||
type: "C",
|
||||
size: 35,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LOC_ADDR1",
|
||||
type: "C",
|
||||
size: 40,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LOC_ADDR2",
|
||||
type: "C",
|
||||
size: 40,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LOC_CITY",
|
||||
type: "C",
|
||||
size: 30,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LOC_ST",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LOC_ZIP",
|
||||
type: "C",
|
||||
size: 11,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LOC_CTRY",
|
||||
type: "C",
|
||||
size: 3,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LOC_PH1",
|
||||
type: "C",
|
||||
size: 10,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LOC_PH1X",
|
||||
type: "C",
|
||||
size: 8,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LOC_PH2",
|
||||
type: "C",
|
||||
size: 10,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LOC_PH2X",
|
||||
type: "C",
|
||||
size: 8,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LOC_FAX",
|
||||
type: "C",
|
||||
size: 10,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LOC_FAXX",
|
||||
type: "C",
|
||||
size: 8,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LOC_CT_LN",
|
||||
type: "C",
|
||||
size: 35,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LOC_CT_FN",
|
||||
type: "C",
|
||||
size: 35,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LOC_TITLE",
|
||||
type: "C",
|
||||
size: 35,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LOC_PH",
|
||||
type: "C",
|
||||
size: 10,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LOC_PHX",
|
||||
type: "C",
|
||||
size: 8,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LOC_EA",
|
||||
type: "C",
|
||||
size: 80,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
];
|
||||
@@ -0,0 +1,274 @@
|
||||
import { FieldDescriptor } from "dbffile";
|
||||
|
||||
export const linFieldLineDescriptors: FieldDescriptor[] = [
|
||||
{
|
||||
name: "LINE_NO",
|
||||
type: "N",
|
||||
size: 3,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LINE_IND",
|
||||
type: "C",
|
||||
size: 3,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LINE_REF",
|
||||
type: "N",
|
||||
size: 3,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TRAN_CODE",
|
||||
type: "C",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "DB_REF",
|
||||
type: "C",
|
||||
size: 7,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "UNQ_SEQ",
|
||||
type: "N",
|
||||
size: 4,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "WHO_PAYS",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LINE_DESC",
|
||||
type: "C",
|
||||
size: 40,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "PART_TYPE",
|
||||
type: "C",
|
||||
size: 4,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "PART_DES_J",
|
||||
type: "L",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "GLASS_FLAG",
|
||||
type: "L",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "OEM_PARTNO",
|
||||
type: "C",
|
||||
size: 25,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "PRICE_INC",
|
||||
type: "L",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "ALT_PART_I",
|
||||
type: "L",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TAX_PART",
|
||||
type: "L",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "DB_PRICE",
|
||||
type: "N",
|
||||
size: 9,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "ACT_PRICE",
|
||||
type: "N",
|
||||
size: 9,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "PRICE_J",
|
||||
type: "L",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CERT_PART",
|
||||
type: "L",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "PART_QTY",
|
||||
type: "N",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "ALT_CO_ID",
|
||||
type: "C",
|
||||
size: 20,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "ALT_PARTNO",
|
||||
type: "C",
|
||||
size: 25,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "ALT_OVERRD",
|
||||
type: "L",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "ALT_PARTM",
|
||||
type: "C",
|
||||
size: 45,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "PRT_DSMK_P",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "PRT_DSMK_M",
|
||||
type: "N",
|
||||
size: 9,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "MOD_LBR_TY",
|
||||
type: "C",
|
||||
size: 4,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "DB_HRS",
|
||||
type: "N",
|
||||
size: 5,
|
||||
decimalPlaces: 1,
|
||||
},
|
||||
{
|
||||
name: "MOD_LB_HRS",
|
||||
type: "N",
|
||||
size: 5,
|
||||
decimalPlaces: 1,
|
||||
},
|
||||
{
|
||||
name: "LBR_INC",
|
||||
type: "L",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LBR_OP",
|
||||
type: "C",
|
||||
size: 4,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LBR_HRS_J",
|
||||
type: "L",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LBR_TYP_J",
|
||||
type: "L",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LBR_OP_J",
|
||||
type: "L",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "PAINT_STG",
|
||||
type: "N",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "PAINT_TONE",
|
||||
type: "N",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LBR_TAX",
|
||||
type: "L",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LBR_AMT",
|
||||
type: "N",
|
||||
size: 9,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "MISC_AMT",
|
||||
type: "N",
|
||||
size: 9,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "MISC_SUBLT",
|
||||
type: "L",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "MISC_TAX",
|
||||
type: "L",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "BETT_TYPE",
|
||||
type: "C",
|
||||
size: 4,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "BETT_PCTG",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "BETT_AMT",
|
||||
type: "N",
|
||||
size: 9,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "BETT_TAX",
|
||||
type: "L",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
];
|
||||
@@ -0,0 +1,118 @@
|
||||
import { FieldDescriptor } from "dbffile";
|
||||
|
||||
export const pfhFieldLineDescriptors: FieldDescriptor[] = [
|
||||
{
|
||||
name: "ID_PRO_NAM",
|
||||
type: "C",
|
||||
size: 40,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TAX_PRETHR",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "TAX_THRAMT",
|
||||
type: "N",
|
||||
size: 9,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "TAX_PSTTHR",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "TAX_TOW_IN",
|
||||
type: "L",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TAX_TOW_RT",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "TAX_STR_IN",
|
||||
type: "L",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TAX_STR_RT",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "TAX_SUB_IN",
|
||||
type: "L",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TAX_SUB_RT",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "TAX_BTR_IN",
|
||||
type: "L",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TAX_LBR_RT",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "TAX_GST_RT",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "TAX_GST_IN",
|
||||
type: "L",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "ADJ_G_DISC",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "ADJ_TOWDIS",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "ADJ_STRDIS",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "ADJ_BTR_IN",
|
||||
type: "L",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TAX_PREDIS",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
];
|
||||
@@ -0,0 +1,100 @@
|
||||
import { FieldDescriptor } from "dbffile";
|
||||
|
||||
export const pflFieldLineDescriptors: FieldDescriptor[] = [
|
||||
{
|
||||
name: "LBR_TYPE",
|
||||
type: "C",
|
||||
size: 4,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LBR_DESC",
|
||||
type: "C",
|
||||
size: 20,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LBR_RATE",
|
||||
type: "N",
|
||||
size: 6,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "LBR_TAX_IN",
|
||||
type: "L",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LBR_TAXP",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "LBR_ADJP",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "LBR_TX_TY1",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LBR_TX_IN1",
|
||||
type: "C",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LBR_TX_TY2",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LBR_TX_IN2",
|
||||
type: "C",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LBR_TX_TY3",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LBR_TX_IN3",
|
||||
type: "C",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LBR_TX_TY4",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LBR_TX_IN4",
|
||||
type: "C",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LBR_TX_TY5",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "LBR_TX_IN5",
|
||||
type: "C",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
];
|
||||
@@ -0,0 +1,166 @@
|
||||
import { FieldDescriptor } from "dbffile";
|
||||
|
||||
export const pfmFieldLineDescriptors: FieldDescriptor[] = [
|
||||
{
|
||||
name: "MATL_TYPE",
|
||||
type: "C",
|
||||
size: 4,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CAL_CODE",
|
||||
type: "C",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CAL_DESC",
|
||||
type: "C",
|
||||
size: 20,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "CAL_MAXDLR",
|
||||
type: "N",
|
||||
size: 9,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "CAL_PRIP",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "CAL_SECP",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "MAT_CALP",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "CAL_PRETHR",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "CAL_PSTTHR",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "CAL_THRAMT",
|
||||
type: "N",
|
||||
size: 7,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "CAL_LBRMIN",
|
||||
type: "N",
|
||||
size: 4,
|
||||
decimalPlaces: 1,
|
||||
},
|
||||
{
|
||||
name: "CAL_LBRMAX",
|
||||
type: "N",
|
||||
size: 4,
|
||||
decimalPlaces: 1,
|
||||
},
|
||||
{
|
||||
name: "CAL_LBRRTE",
|
||||
type: "N",
|
||||
size: 6,
|
||||
decimalPlaces: 2,
|
||||
},
|
||||
{
|
||||
name: "CAL_OPCODE",
|
||||
type: "C",
|
||||
size: 48,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TAX_IND",
|
||||
type: "L",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "MAT_TAXP",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "MAT_ADJP",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "MAT_TX_TY1",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "MAT_TX_IN1",
|
||||
type: "C",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "MAT_TX_TY2",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "MAT_TX_IN2",
|
||||
type: "C",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "MAT_TX_TY3",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "MAT_TX_IN3",
|
||||
type: "C",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "MAT_TX_TY4",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "MAT_TX_IN4",
|
||||
type: "C",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "MAT_TX_TY5",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "MAT_TX_IN5",
|
||||
type: "C",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
];
|
||||
@@ -0,0 +1,160 @@
|
||||
import { FieldDescriptor } from "dbffile";
|
||||
|
||||
export const pfoFieldLineDescriptors: FieldDescriptor[] = [
|
||||
{
|
||||
name: "TX_TOW_TY",
|
||||
type: "C",
|
||||
size: 4,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TOW_T_TY1",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TOW_T_IN1",
|
||||
type: "C",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TOW_T_TY2",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TOW_T_IN2",
|
||||
type: "C",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TOW_T_TY3",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TOW_T_IN3",
|
||||
type: "C",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TOW_T_TY4",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TOW_T_IN4",
|
||||
type: "C",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TOW_T_TY5",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TOW_T_IN5",
|
||||
type: "C",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TOW_T_TY6",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TOW_T_IN6",
|
||||
type: "C",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TX_STOR_TY",
|
||||
type: "C",
|
||||
size: 4,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "STOR_T_TY1",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "STOR_T_IN1",
|
||||
type: "C",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "STOR_T_TY2",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "STOR_T_IN2",
|
||||
type: "C",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "STOR_T_TY3",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "STOR_T_IN3",
|
||||
type: "C",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "STOR_T_TY4",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "STOR_T_IN4",
|
||||
type: "C",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "STOR_T_TY5",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "STOR_T_IN5",
|
||||
type: "C",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "STOR_T_TY6",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "STOR_T_IN6",
|
||||
type: "C",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
];
|
||||
@@ -0,0 +1,100 @@
|
||||
import { FieldDescriptor } from "dbffile";
|
||||
|
||||
export const pfpFieldLineDescriptors: FieldDescriptor[] = [
|
||||
{
|
||||
name: "PRT_TYPE",
|
||||
type: "C",
|
||||
size: 4,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "PRT_TAX_IN",
|
||||
type: "L",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "PRT_TAX_RT",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "PRT_MKUPP",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "PRT_MKTYP",
|
||||
type: "L",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "PRT_DISCP",
|
||||
type: "N",
|
||||
size: 8,
|
||||
decimalPlaces: 4,
|
||||
},
|
||||
{
|
||||
name: "PRT_TX_TY1",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "PRT_TX_IN1",
|
||||
type: "C",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "PRT_TX_TY2",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "PRT_TX_IN2",
|
||||
type: "C",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "PRT_TX_TY3",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "PRT_TX_IN3",
|
||||
type: "C",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "PRT_TX_TY4",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "PRT_TX_IN4",
|
||||
type: "C",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "PRT_TX_TY5",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "PRT_TX_IN5",
|
||||
type: "C",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
];
|
||||
@@ -0,0 +1,172 @@
|
||||
import { FieldDescriptor } from "dbffile";
|
||||
|
||||
export const vehFieldLineDescriptors: FieldDescriptor[] = [
|
||||
{
|
||||
name: "IMPACT_1",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "IMPACT_2",
|
||||
type: "C",
|
||||
size: 30,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "DMG_MEMO",
|
||||
type: "C", // Changed from "M" to "C" to allow writing, need to verify if this still works.
|
||||
size: 10,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "DB_V_CODE",
|
||||
type: "C",
|
||||
size: 7,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "PLATE_NO",
|
||||
type: "C",
|
||||
size: 10,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "PLATE_ST",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "V_VIN",
|
||||
type: "C",
|
||||
size: 25,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "V_COND",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "V_PROD_DT",
|
||||
type: "C",
|
||||
size: 4,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "V_MODEL_YR",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "V_MAKECODE",
|
||||
type: "C",
|
||||
size: 12,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "V_MAKEDESC",
|
||||
type: "C",
|
||||
size: 20,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "V_MODEL",
|
||||
type: "C",
|
||||
size: 50,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "V_TYPE",
|
||||
type: "C",
|
||||
size: 2,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "V_BSTYLE",
|
||||
type: "C",
|
||||
size: 20,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "V_TRIMCODE",
|
||||
type: "C",
|
||||
size: 20,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "TRIM_COLOR",
|
||||
type: "C",
|
||||
size: 20,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "V_MLDGCODE",
|
||||
type: "C",
|
||||
size: 20,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "V_ENGINE",
|
||||
type: "C",
|
||||
size: 20,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "V_MILEAGE",
|
||||
type: "C",
|
||||
size: 6,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "V_OPTIONS",
|
||||
type: "C", // Changed from "M" to "C" to allow writing, need to verify if this still works.
|
||||
size: 10,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "V_COLOR",
|
||||
type: "C",
|
||||
size: 20,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "V_TONE",
|
||||
type: "N",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "V_STAGE",
|
||||
type: "N",
|
||||
size: 1,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "PAINT_CD1",
|
||||
type: "C",
|
||||
size: 15,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "PAINT_CD2",
|
||||
type: "C",
|
||||
size: 15,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "PAINT_CD3",
|
||||
type: "C",
|
||||
size: 15,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
{
|
||||
name: "V_MEMO", //dbffile does not support writing to a memo field.
|
||||
type: "C", // Changed from "M" to "C" to allow writing, need to verify if this still works.
|
||||
size: 10,
|
||||
decimalPlaces: 0,
|
||||
},
|
||||
];
|
||||
27
src/main/util/uppercaseObjectKeys.ts
Normal file
27
src/main/util/uppercaseObjectKeys.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
/**
|
||||
* Converts all keys of an object to uppercase
|
||||
* @param obj The object whose keys need to be converted to uppercase
|
||||
* @returns A new object with all keys converted to uppercase
|
||||
*/
|
||||
function uppercaseObjectKeys<T extends Record<string, any>>(
|
||||
obj: T,
|
||||
): Record<string, any> {
|
||||
if (typeof obj !== "object" || obj === null) {
|
||||
return obj;
|
||||
}
|
||||
|
||||
return Object.entries(obj).reduce(
|
||||
(result, [key, value]) => {
|
||||
const uppercaseKey = key.toUpperCase();
|
||||
const newValue =
|
||||
typeof value === "object" && value !== null
|
||||
? uppercaseObjectKeys(value)
|
||||
: value;
|
||||
|
||||
result[uppercaseKey] = newValue;
|
||||
return result;
|
||||
},
|
||||
{} as Record<string, any>,
|
||||
);
|
||||
}
|
||||
export default uppercaseObjectKeys;
|
||||
Reference in New Issue
Block a user