Merge branch 'release/2021-12-10' of https://bitbucket.org/snaptsoft/bodyshop into release/2021-12-10

This commit is contained in:
Patrick Fic
2021-12-09 17:24:38 -08:00
2 changed files with 172 additions and 151 deletions

View File

@@ -74,7 +74,7 @@ exports.default = async (req, res) => {
{ {
version: "1.0", version: "1.0",
encoding: "UTF-8", encoding: "UTF-8",
keepNullNodes: true, //keepNullNodes: true,
}, },
autoHouseObject autoHouseObject
) )
@@ -110,7 +110,8 @@ exports.default = async (req, res) => {
}); });
} }
} }
res.json(allxmlsToUpload);
return;
if (process.env.NODE_ENV !== "production") { if (process.env.NODE_ENV !== "production") {
res.sendStatus(200); res.sendStatus(200);
return; return;
@@ -184,31 +185,31 @@ const CreateRepairOrderTag = (job, errorCallback) => {
}${job.est_ct_fn ? job.est_ct_fn : ""}`, }${job.est_ct_fn ? job.est_ct_fn : ""}`,
}, },
CustomerInformation: { CustomerInformation: {
FirstName: job.ownr_fn, FirstName: job.ownr_fn || "",
LastName: job.ownr_ln, LastName: job.ownr_ln || "",
Street: job.ownr_addr1, Street: job.ownr_addr1 || "",
City: job.ownr_city, City: job.ownr_city || "",
State: job.ownr_st, State: job.ownr_st || "",
Zip: job.ownr_zip, Zip: job.ownr_zip || "",
Phone1: job.ownr_ph1, Phone1: job.ownr_ph1 || "",
Phone2: null, Phone2: null,
Phone2Extension: null, Phone2Extension: null,
Phone3: null, Phone3: null,
Phone3Extension: null, Phone3Extension: null,
FileComments: null, FileComments: null,
Source: null, Source: null,
Email: job.ownr_ea, Email: job.ownr_ea || "",
RetWhsl: null, RetWhsl: null,
Cat: null, Cat: null,
InsuredorClaimantFlag: null, InsuredorClaimantFlag: null,
}, },
VehicleInformation: { VehicleInformation: {
Year: job.v_model_yr, Year: job.v_model_yr || "",
Make: job.v_make_desc, Make: job.v_make_desc || "",
Model: job.v_model_desc, Model: job.v_model_desc || "",
VIN: job.v_vin, VIN: job.v_vin || "",
License: job.plate_no, License: job.plate_no,
MileageIn: job.kmin, MileageIn: job.kmin || 0,
Vehiclecolor: job.v_color, Vehiclecolor: job.v_color,
VehicleProductionDate: null, VehicleProductionDate: null,
VehiclePaintCode: null, VehiclePaintCode: null,
@@ -218,18 +219,18 @@ const CreateRepairOrderTag = (job, errorCallback) => {
}, },
InsuranceInformation: { InsuranceInformation: {
InsuranceCo: job.ins_co_nm, InsuranceCo: job.ins_co_nm || "",
CompanyName: job.ins_co_nm, CompanyName: job.ins_co_nm || "",
Address: job.ins_addr1, Address: job.ins_addr1 || "",
City: job.ins_addr1, City: job.ins_addr1 || "",
State: job.ins_city, State: job.ins_city || "",
Zip: job.ins_zip, Zip: job.ins_zip || "",
Phone: job.ins_ph1, Phone: job.ins_ph1 || "",
Fax: null, Fax: job.ins_fax || "",
ClaimType: null, ClaimType: null,
LossType: null, LossType: job.loss_type || "",
Policy: null, Policy: job.policy_no || "",
Claim: job.clm_no, Claim: job.clm_no || "",
InsuredLastName: null, InsuredLastName: null,
InsuredFirstName: null, InsuredFirstName: null,
ClaimantLastName: null, ClaimantLastName: null,
@@ -242,23 +243,28 @@ const CreateRepairOrderTag = (job, errorCallback) => {
OutsideAdjuster: null, OutsideAdjuster: null,
}, },
Dates: { Dates: {
DateofLoss: job.loss_date && moment(job.loss_date).format(AhDateFormat), DateofLoss:
(job.loss_date && moment(job.loss_date).format(AhDateFormat)) || "",
InitialCustomerContactDate: null, InitialCustomerContactDate: null,
FirstFollowUpDate: null, FirstFollowUpDate: null,
ReferralDate: null, ReferralDate: null,
EstimateAppointmentDate: null, EstimateAppointmentDate: null,
SecondFollowUpDate: null, SecondFollowUpDate: null,
AssignedDate: AssignedDate:
job.asgn_date && moment(job.asgn_date).format(AhDateFormat), (job.asgn_date && moment(job.asgn_date).format(AhDateFormat)) || "",
EstComplete: null, EstComplete: null,
CustomerAuthorizationDate: null, CustomerAuthorizationDate: null,
InsuranceAuthorizationDate: null, InsuranceAuthorizationDate: null,
DateOpened: job.date_open && moment(job.date_open).format(AhDateFormat), DateOpened:
(job.date_open && moment(job.date_open).format(AhDateFormat)) || "",
ScheduledArrivalDate: ScheduledArrivalDate:
job.scheduled_in && moment(job.scheduled_in).format(AhDateFormat), (job.scheduled_in && moment(job.scheduled_in).format(AhDateFormat)) ||
CarinShop: job.actual_in && moment(job.actual_in).format(AhDateFormat), "",
CarinShop:
(job.actual_in && moment(job.actual_in).format(AhDateFormat)) || "",
InsInspDate: null, InsInspDate: null,
StartDate: job.actual_in && moment(job.actual_in).format(AhDateFormat), StartDate:
(job.actual_in && moment(job.actual_in).format(AhDateFormat)) || "",
PartsOrder: null, PartsOrder: null,
TeardownHold: null, TeardownHold: null,
SupplementSubmittedDate: null, SupplementSubmittedDate: null,
@@ -268,22 +274,28 @@ const CreateRepairOrderTag = (job, errorCallback) => {
AssntoPaint: null, AssntoPaint: null,
AssntoDetail: null, AssntoDetail: null,
PromiseDate: PromiseDate:
job.scheduled_completion && (job.scheduled_completion &&
moment(job.scheduled_completion).format(AhDateFormat), moment(job.scheduled_completion).format(AhDateFormat)) ||
InsuranceTargetOut: null, "",
//InsuranceTargetOut: null,
CarComplete: CarComplete:
job.actual_completion && (job.actual_completion &&
moment(job.actual_completion).format(AhDateFormat), moment(job.actual_completion).format(AhDateFormat)) ||
"",
DeliveryAppointmentDate: DeliveryAppointmentDate:
job.scheduled_delivery && (job.scheduled_delivery &&
moment(job.scheduled_delivery).format(AhDateFormat), moment(job.scheduled_delivery).format(AhDateFormat)) ||
"",
DateClosed: DateClosed:
job.date_invoiced && moment(job.date_invoiced).format(AhDateFormat), (job.date_invoiced &&
moment(job.date_invoiced).format(AhDateFormat)) ||
"",
CustomerPaidInFullDate: null, CustomerPaidInFullDate: null,
InsurancePaidInFullDate: null, InsurancePaidInFullDate: null,
CustPickup: CustPickup:
job.actual_delivery && (job.actual_delivery &&
moment(job.actual_delivery).format(AhDateFormat), moment(job.actual_delivery).format(AhDateFormat)) ||
"",
AccountPostedDate: AccountPostedDate:
job.date_exported && moment(job.date_exported).format(AhDateFormat), job.date_exported && moment(job.date_exported).format(AhDateFormat),
CSIProcessedDate: null, CSIProcessedDate: null,
@@ -291,85 +303,86 @@ const CreateRepairOrderTag = (job, errorCallback) => {
AdditionalFollowUpDate: null, AdditionalFollowUpDate: null,
}, },
Rates: { Rates: {
BodyRate: job.rate_lab, BodyRate: job.rate_lab || 0,
RefinishRate: job.rate_lar, RefinishRate: job.rate_lar || 0,
MechanicalRate: job.rate_lam, MechanicalRate: job.rate_lam || 0,
StructuralRate: job.rate_las, StructuralRate: job.rate_las || 0,
PMRate: job.rate_mapa, PMRate: job.rate_mapa || 0,
BMRate: job.rate_mash, BMRate: job.rate_mash || 0,
TaxRate: TaxRate:
job.parts_tax_rates && (job.parts_tax_rates &&
job.parts_tax_rates.PAN && job.parts_tax_rates.PAN &&
job.parts_tax_rates.PAN.prt_tax_rt, job.parts_tax_rates.PAN.prt_tax_rt) ||
StorageRateperDay: null, 0,
DaysStored: null, StorageRateperDay: 0,
}, DaysStored: 0,
EstimateTotals: {
BodyHours: null,
RefinishHours: null,
MechanicalHours: null,
StructuralHours: null,
PartsTotal: null,
PartsOEM: null,
PartsAM: null,
PartsReconditioned: null,
PartsRecycled: null,
PartsOther: null,
SubletTotal: null,
BodyLaborTotal: null,
RefinishLaborTotal: null,
MechanicalLaborTotal: null,
StructuralLaborTotal: null,
MiscellaneousChargeTotal: null,
PMTotal: null,
BMTotal: null,
MiscTotal: null,
TowingTotal: null,
StorageTotal: null,
DetailTotal: null,
SalesTaxTotal: null,
GrossTotal: null,
DeductibleTotal: null,
DepreciationTotal: null,
Discount: null,
CustomerPay: null,
InsurancePay: null,
Deposit: null,
AmountDue: null,
},
SupplementTotals: {
BodyHours: null,
RefinishHours: null,
MechanicalHours: null,
StructuralHours: null,
PartsTotal: null,
PartsOEM: null,
PartsAM: null,
PartsReconditioned: null,
PartsRecycled: null,
PartsOther: null,
SubletTotal: null,
BodyLaborTotal: null,
RefinishLaborTotal: null,
MechanicalLaborTotal: null,
StructuralLaborTotal: null,
MiscellaneousChargeTotal: null,
PMTotal: null,
BMTotal: null,
MiscTotal: null,
TowingTotal: null,
StorageTotal: null,
DetailTotal: null,
SalesTaxTotal: null,
GrossTotal: null,
DeductibleTotal: null,
DepreciationTotal: null,
Discount: null,
CustomerPay: null,
InsurancePay: null,
Deposit: null,
AmountDue: null,
}, },
// EstimateTotals: {
// BodyHours: null,
// RefinishHours: null,
// MechanicalHours: null,
// StructuralHours: null,
// PartsTotal: null,
// PartsOEM: null,
// PartsAM: null,
// PartsReconditioned: null,
// PartsRecycled: null,
// PartsOther: null,
// SubletTotal: null,
// BodyLaborTotal: null,
// RefinishLaborTotal: null,
// MechanicalLaborTotal: null,
// StructuralLaborTotal: null,
// MiscellaneousChargeTotal: null,
// PMTotal: null,
// BMTotal: null,
// MiscTotal: null,
// TowingTotal: null,
// StorageTotal: null,
// DetailTotal: null,
// SalesTaxTotal: null,
// GrossTotal: null,
// DeductibleTotal: null,
// DepreciationTotal: null,
// Discount: null,
// CustomerPay: null,
// InsurancePay: null,
// Deposit: null,
// AmountDue: null,
// },
// SupplementTotals: {
// BodyHours: null,
// RefinishHours: null,
// MechanicalHours: null,
// StructuralHours: null,
// PartsTotal: null,
// PartsOEM: null,
// PartsAM: null,
// PartsReconditioned: null,
// PartsRecycled: null,
// PartsOther: null,
// SubletTotal: null,
// BodyLaborTotal: null,
// RefinishLaborTotal: null,
// MechanicalLaborTotal: null,
// StructuralLaborTotal: null,
// MiscellaneousChargeTotal: null,
// PMTotal: null,
// BMTotal: null,
// MiscTotal: null,
// TowingTotal: null,
// StorageTotal: null,
// DetailTotal: null,
// SalesTaxTotal: null,
// GrossTotal: null,
// DeductibleTotal: null,
// DepreciationTotal: null,
// Discount: null,
// CustomerPay: null,
// InsurancePay: null,
// Deposit: null,
// AmountDue: null,
// },
RevisedTotals: { RevisedTotals: {
BodyHours: job.job_totals.rates.lab.hours, BodyHours: job.job_totals.rates.lab.hours,
BodyRepairHours: job.joblines BodyRepairHours: job.joblines
@@ -441,8 +454,8 @@ const CreateRepairOrderTag = (job, errorCallback) => {
), ),
StructuralLaborTotalCost: StructuralLaborTotalCost:
repairCosts.StructuralLaborTotalCost.toFormat(AHDineroFormat), repairCosts.StructuralLaborTotalCost.toFormat(AHDineroFormat),
MiscellaneousChargeTotal: null, MiscellaneousChargeTotal: 0,
MiscellaneousChargeTotalCost: null, MiscellaneousChargeTotalCost: 0,
PMTotal: Dinero(job.job_totals.rates.mapa.total).toFormat( PMTotal: Dinero(job.job_totals.rates.mapa.total).toFormat(
AHDineroFormat AHDineroFormat
), ),
@@ -461,17 +474,17 @@ const CreateRepairOrderTag = (job, errorCallback) => {
AHDineroFormat AHDineroFormat
), ),
StorageTotalCost: repairCosts.StorageTotalCost.toFormat(AHDineroFormat), StorageTotalCost: repairCosts.StorageTotalCost.toFormat(AHDineroFormat),
DetailTotal: null, DetailTotal: 0,
DetailTotalCost: null, DetailTotalCost: 0,
SalesTaxTotal: Dinero(job.job_totals.totals.local_tax) SalesTaxTotal: Dinero(job.job_totals.totals.local_tax)
.add(Dinero(job.job_totals.totals.state_tax)) .add(Dinero(job.job_totals.totals.state_tax))
.add(Dinero(job.job_totals.totals.federal_tax)) .add(Dinero(job.job_totals.totals.federal_tax))
.toFormat(AHDineroFormat), .toFormat(AHDineroFormat),
SalesTaxTotalCost: null, SalesTaxTotalCost: 0,
GrossTotal: Dinero(job.job_totals.totals.net_repairs).toFormat( GrossTotal: Dinero(job.job_totals.totals.net_repairs).toFormat(
AHDineroFormat AHDineroFormat
), ),
DeductibleTotal: job.ded_amt, DeductibleTotal: job.ded_amt || 0,
DepreciationTotal: Dinero( DepreciationTotal: Dinero(
job.job_totals.totals.custPayable.dep_taxes job.job_totals.totals.custPayable.dep_taxes
).toFormat(AHDineroFormat), ).toFormat(AHDineroFormat),
@@ -496,8 +509,10 @@ const CreateRepairOrderTag = (job, errorCallback) => {
InsScreenCommentsLine2: null, InsScreenCommentsLine2: null,
AssignmentCaller: null, AssignmentCaller: null,
AssignmentDivision: null, AssignmentDivision: null,
LocationofPrimaryImpact: "12", LocationofPrimaryImpact:
LocationofSecondaryImpact: null, (job.area_of_damage && job.area_of_damage.impact1) || 0,
LocationofSecondaryImpact:
(job.area_of_damage && job.area_of_damage.impact2) || 0,
PaintTechID: null, PaintTechID: null,
PaintTechName: null, PaintTechName: null,
ImportType: null, ImportType: null,
@@ -517,7 +532,7 @@ const CreateRepairOrderTag = (job, errorCallback) => {
RentalDueDate: null, RentalDueDate: null,
RentalActRetDate: null, RentalActRetDate: null,
RentalCompanyID: null, RentalCompanyID: null,
CSIID: null, // CSIID: null,
InsGroupCode: null, InsGroupCode: null,
}, },
@@ -669,36 +684,39 @@ const GenerateDetailLines = (line, statuses) => {
const ret = { const ret = {
BackOrdered: line.status === statuses.default_bo ? "1" : "0", BackOrdered: line.status === statuses.default_bo ? "1" : "0",
Cost: Cost:
line.billlines[0] && (line.billlines[0] &&
(line.billlines[0].actual_cost * line.billlines[0].quantity).toFixed(2), (line.billlines[0].actual_cost * line.billlines[0].quantity).toFixed(
Critical: null, 2
Description: line.line_desc, )) ||
DiscountMarkup: null, 0,
//Critical: null,
Description: line.line_desc || "",
DiscountMarkup: line.prt_dsmk_m || "",
InvoiceNumber: line.billlines[0] && line.billlines[0].bill.invoice_number, InvoiceNumber: line.billlines[0] && line.billlines[0].bill.invoice_number,
IOUPart: null, IOUPart: 0,
LineNumber: line.line_no, LineNumber: line.line_no || 0,
MarkUp: null, MarkUp: null,
OrderedOn: null, OrderedOn: null,
OriginalCost: null, OriginalCost: null,
OriginalInvoiceNumber: null, OriginalInvoiceNumber: null,
PriceEach: line.billlines[0] && line.billlines[0].actual_cost, PriceEach: (line.billlines[0] && line.billlines[0].actual_cost) || 0,
PartNumber: _.escape(line.oem_partno), PartNumber: _.escape(line.oem_partno),
ProfitPercent: null, ProfitPercent: null,
PurchaseOrderNumber: null, PurchaseOrderNumber: null,
Qty: line.part_qty, Qty: line.part_qty || 0,
Status: line.status, Status: line.status || "",
SupplementNumber: null, SupplementNumber: line.line_ind || "",
Type: line.part_type, Type: line.part_type || "",
Vendor: line.billlines[0] && line.billlines[0].bill.vendor.name, Vendor: (line.billlines[0] && line.billlines[0].bill.vendor.name) || "",
VendorPaid: null, VendorPaid: null,
VendorPrice: line.billlines[0] && line.billlines[0].actual_price, VendorPrice: (line.billlines[0] && line.billlines[0].actual_price) || 0,
Deleted: null, Deleted: null,
ExpectedOn: null, ExpectedOn: null,
ReceivedOn: null, ReceivedOn: null,
OrderedBy: null, OrderedBy: null,
ShipVia: null, ShipVia: null,
VendorContact: null, VendorContact: null,
EstimateAmount: line.act_price, EstimateAmount: line.act_price || 0,
}; };
return ret; return ret;
}; };
@@ -709,9 +727,9 @@ const generateNullDetailLine = () => {
Cost: 0, Cost: 0,
Critical: null, Critical: null,
Description: "No Lines on Estimate", Description: "No Lines on Estimate",
DiscountMarkup: null, DiscountMarkup: 0,
InvoiceNumber: null, InvoiceNumber: null,
IOUPart: null, IOUPart: 0,
LineNumber: 0, LineNumber: 0,
MarkUp: null, MarkUp: null,
OrderedOn: null, OrderedOn: null,
@@ -722,12 +740,12 @@ const generateNullDetailLine = () => {
ProfitPercent: null, ProfitPercent: null,
PurchaseOrderNumber: null, PurchaseOrderNumber: null,
Qty: 0, Qty: 0,
Status: null, Status: "",
SupplementNumber: null, SupplementNumber: 0,
Type: null, Type: "",
Vendor: null, Vendor: "",
VendorPaid: null, VendorPaid: null,
VendorPrice: null, VendorPrice: 0,
Deleted: null, Deleted: null,
ExpectedOn: null, ExpectedOn: null,
ReceivedOn: null, ReceivedOn: null,

View File

@@ -525,7 +525,7 @@ exports.QUERY_EMPLOYEE_PIN = `query QUERY_EMPLOYEE_PIN($shopId: uuid!, $employee
}`; }`;
exports.AUTOHOUSE_QUERY = `query AUTOHOUSE_EXPORT($start: timestamptz, $bodyshopid: uuid!) { exports.AUTOHOUSE_QUERY = `query AUTOHOUSE_EXPORT($start: timestamptz, $bodyshopid: uuid!) {
jobs(where: {_and: [{converted :{_eq: true}},{updated_at: {_gt: $start}}, {shopid: {_eq: $bodyshopid}}]}) { jobs(where: {_and: [{converted: {_eq: true}}, {updated_at: {_gt: $start}}, {shopid: {_eq: $bodyshopid}}]}, limit: 50) {
id id
ro_number ro_number
status status
@@ -533,6 +533,7 @@ exports.AUTOHOUSE_QUERY = `query AUTOHOUSE_EXPORT($start: timestamptz, $bodyshop
est_ct_ln est_ct_ln
ownr_zip ownr_zip
referral_source referral_source
loss_type
v_model_yr v_model_yr
v_model_desc v_model_desc
v_make_desc v_make_desc
@@ -607,6 +608,7 @@ exports.AUTOHOUSE_QUERY = `query AUTOHOUSE_EXPORT($start: timestamptz, $bodyshop
joblines(where: {removed: {_eq: false}}) { joblines(where: {removed: {_eq: false}}) {
id id
line_no line_no
line_ind
status status
line_ind line_ind
db_price db_price
@@ -676,6 +678,7 @@ exports.AUTOHOUSE_QUERY = `query AUTOHOUSE_EXPORT($start: timestamptz, $bodyshop
} }
} }
`; `;
exports.ENTEGRAL_EXPORT = ` exports.ENTEGRAL_EXPORT = `