Merged in release/2024-06-28 (pull request #1506)
Release/2024 06 28 Approved-by: Dave Richer
This commit is contained in:
@@ -4,7 +4,6 @@ import { useTranslation } from "react-i18next";
|
|||||||
import InstanceRenderMgr from "../../utils/instanceRenderMgr";
|
import InstanceRenderMgr from "../../utils/instanceRenderMgr";
|
||||||
|
|
||||||
//To be used as a form element only.
|
//To be used as a form element only.
|
||||||
const { Option } = Select;
|
|
||||||
const BillLineSearchSelect = ({ options, disabled, allowRemoved, ...restProps }, ref) => {
|
const BillLineSearchSelect = ({ options, disabled, allowRemoved, ...restProps }, ref) => {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
|
||||||
|
|||||||
@@ -897,19 +897,20 @@ function checkStateTax(jobline, jobs_by_pk) {
|
|||||||
(jobline.db_ref && jobline.db_ref.startsWith("90051"))) &&
|
(jobline.db_ref && jobline.db_ref.startsWith("90051"))) &&
|
||||||
!isPaintOrShopMat;
|
!isPaintOrShopMat;
|
||||||
|
|
||||||
if (!jobline.part_type && isAdditionalCost) {
|
if (!jobline.part_type && isAdditionalCost) {
|
||||||
if (jobs_by_pk.tax_lbr_rt === 0) {
|
if (jobs_by_pk.tax_lbr_rt === 0) {
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
return true;
|
return true;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (jobline.tax_part === false) {
|
if (jobline.tax_part === false) {
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
if (jobline.part_type) {
|
if (jobline.part_type) {
|
||||||
if (
|
if (
|
||||||
|
!jobs_by_pk.parts_tax_rates[`${jobline.part_type.toUpperCase()}`] ||
|
||||||
jobs_by_pk.parts_tax_rates[`${jobline.part_type.toUpperCase()}`].prt_tax_in === false ||
|
jobs_by_pk.parts_tax_rates[`${jobline.part_type.toUpperCase()}`].prt_tax_in === false ||
|
||||||
jobs_by_pk.parts_tax_rates[`${jobline.part_type.toUpperCase()}`].prt_tax_rt === 0
|
jobs_by_pk.parts_tax_rates[`${jobline.part_type.toUpperCase()}`].prt_tax_rt === 0
|
||||||
) {
|
) {
|
||||||
|
|||||||
@@ -211,6 +211,8 @@ const CreateRepairOrderTag = (job, errorCallback) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const repairCosts = CreateCosts(job);
|
const repairCosts = CreateCosts(job);
|
||||||
|
const jobline = CreateJobLines(job.joblines);
|
||||||
|
const timeticket = CreateTimeTickets(job.timetickets);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const ret = {
|
const ret = {
|
||||||
@@ -276,8 +278,11 @@ const CreateRepairOrderTag = (job, errorCallback) => {
|
|||||||
DateInvoiced:
|
DateInvoiced:
|
||||||
(job.date_invoiced && moment(job.date_invoiced).tz(job.bodyshop.timezone).format(DateFormat)) || "",
|
(job.date_invoiced && moment(job.date_invoiced).tz(job.bodyshop.timezone).format(DateFormat)) || "",
|
||||||
DateExported:
|
DateExported:
|
||||||
(job.date_exported && moment(job.date_exported).tz(job.bodyshop.timezone).format(DateFormat)) || ""
|
(job.date_exported && moment(job.date_exported).tz(job.bodyshop.timezone).format(DateFormat)) || "",
|
||||||
|
DateVoid: (job.date_void && moment(job.date_void).tz(job.bodyshop.timezone).format(DateFormat)) || ""
|
||||||
},
|
},
|
||||||
|
JobLineDetails: { jobline },
|
||||||
|
TimeTicketDetails: { timeticket },
|
||||||
Sales: {
|
Sales: {
|
||||||
Labour: {
|
Labour: {
|
||||||
Aluminum: Dinero(job.job_totals.rates.laa.total).toFormat(DineroFormat),
|
Aluminum: Dinero(job.job_totals.rates.laa.total).toFormat(DineroFormat),
|
||||||
@@ -625,3 +630,38 @@ const CreateCosts = (job) => {
|
|||||||
}, 0)
|
}, 0)
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const CreateJobLines = (joblines) => {
|
||||||
|
const repairLines = [];
|
||||||
|
joblines.forEach((jobline) => {
|
||||||
|
repairLines.push({
|
||||||
|
line_description: jobline.line_desc,
|
||||||
|
oem_part_no: jobline.oem_partno,
|
||||||
|
alt_part_no: jobline.alt_partno,
|
||||||
|
op_code_desc: jobline.op_code_desc,
|
||||||
|
part_type: jobline.part_type,
|
||||||
|
part_qty: jobline.part_qty,
|
||||||
|
part_price: jobline.act_price,
|
||||||
|
labor_type: jobline.mod_lbr_ty,
|
||||||
|
labor_hours: jobline.mod_lb_hrs
|
||||||
|
});
|
||||||
|
});
|
||||||
|
return repairLines;
|
||||||
|
};
|
||||||
|
|
||||||
|
const CreateTimeTickets = (timetickets) => {
|
||||||
|
const timeTickets = [];
|
||||||
|
timetickets.forEach((ticket) => {
|
||||||
|
timeTickets.push({
|
||||||
|
date: ticket.date,
|
||||||
|
employee: ticket.employee.employee_number
|
||||||
|
.trim()
|
||||||
|
.concat(" - ", ticket.employee.first_name.trim(), " ", ticket.employee.last_name.trim())
|
||||||
|
.trim(),
|
||||||
|
productive_hrs: ticket.productivehrs,
|
||||||
|
actual_hrs: ticket.actualhrs,
|
||||||
|
cost_center: ticket.cost_center
|
||||||
|
});
|
||||||
|
});
|
||||||
|
return timeTickets;
|
||||||
|
};
|
||||||
|
|||||||
@@ -1113,7 +1113,7 @@ exports.KAIZEN_QUERY = `query KAIZEN_EXPORT($start: timestamptz, $bodyshopid: uu
|
|||||||
use_paint_scale_data
|
use_paint_scale_data
|
||||||
timezone
|
timezone
|
||||||
}
|
}
|
||||||
jobs(where: {_and: [{updated_at: {_gt: $start}}, {updated_at: {_lte: $end}}, {shopid: {_eq: $bodyshopid}}]}) {
|
jobs(where: {_and: [{updated_at: {_gt: $start}}, {updated_at: {_lte: $end}}, {converted: {_eq: true}}, {shopid: {_eq: $bodyshopid}}]}) {
|
||||||
actual_completion
|
actual_completion
|
||||||
actual_delivery
|
actual_delivery
|
||||||
actual_in
|
actual_in
|
||||||
@@ -1138,6 +1138,7 @@ exports.KAIZEN_QUERY = `query KAIZEN_EXPORT($start: timestamptz, $bodyshopid: uu
|
|||||||
date_invoiced
|
date_invoiced
|
||||||
date_open
|
date_open
|
||||||
date_repairstarted
|
date_repairstarted
|
||||||
|
date_void
|
||||||
employee_body_rel {
|
employee_body_rel {
|
||||||
first_name
|
first_name
|
||||||
last_name
|
last_name
|
||||||
@@ -1168,6 +1169,7 @@ exports.KAIZEN_QUERY = `query KAIZEN_EXPORT($start: timestamptz, $bodyshopid: uu
|
|||||||
ins_co_nm
|
ins_co_nm
|
||||||
joblines(where: {removed: {_eq: false}}) {
|
joblines(where: {removed: {_eq: false}}) {
|
||||||
act_price
|
act_price
|
||||||
|
alt_partno
|
||||||
billlines(order_by: {bill: {date: desc_nulls_last}} limit: 1) {
|
billlines(order_by: {bill: {date: desc_nulls_last}} limit: 1) {
|
||||||
actual_cost
|
actual_cost
|
||||||
actual_price
|
actual_price
|
||||||
@@ -1188,6 +1190,8 @@ exports.KAIZEN_QUERY = `query KAIZEN_EXPORT($start: timestamptz, $bodyshopid: uu
|
|||||||
line_no
|
line_no
|
||||||
mod_lb_hrs
|
mod_lb_hrs
|
||||||
mod_lbr_ty
|
mod_lbr_ty
|
||||||
|
oem_partno
|
||||||
|
op_code_desc
|
||||||
parts_order_lines(order_by: {parts_order: {order_date: desc_nulls_last}} limit: 1){
|
parts_order_lines(order_by: {parts_order: {order_date: desc_nulls_last}} limit: 1){
|
||||||
parts_order{
|
parts_order{
|
||||||
id
|
id
|
||||||
@@ -1200,7 +1204,6 @@ exports.KAIZEN_QUERY = `query KAIZEN_EXPORT($start: timestamptz, $bodyshopid: uu
|
|||||||
profitcenter_labor
|
profitcenter_labor
|
||||||
prt_dsmk_m
|
prt_dsmk_m
|
||||||
prt_dsmk_p
|
prt_dsmk_p
|
||||||
oem_partno
|
|
||||||
status
|
status
|
||||||
}
|
}
|
||||||
job_totals
|
job_totals
|
||||||
@@ -1251,12 +1254,18 @@ exports.KAIZEN_QUERY = `query KAIZEN_EXPORT($start: timestamptz, $bodyshopid: uu
|
|||||||
scheduled_in
|
scheduled_in
|
||||||
status
|
status
|
||||||
timetickets {
|
timetickets {
|
||||||
id
|
|
||||||
rate
|
|
||||||
cost_center
|
|
||||||
actualhrs
|
actualhrs
|
||||||
productivehrs
|
cost_center
|
||||||
|
date
|
||||||
|
employee {
|
||||||
|
employee_number
|
||||||
|
first_name
|
||||||
|
last_name
|
||||||
|
}
|
||||||
flat_rate
|
flat_rate
|
||||||
|
id
|
||||||
|
productivehrs
|
||||||
|
rate
|
||||||
}
|
}
|
||||||
tlos_ind
|
tlos_ind
|
||||||
v_color
|
v_color
|
||||||
@@ -2481,7 +2490,6 @@ query QUERY_TASK_BY_ID($id: uuid!) {
|
|||||||
|
|
||||||
`;
|
`;
|
||||||
|
|
||||||
|
|
||||||
exports.GET_JOBS_BY_PKS = `query GET_JOBS_BY_PKS($ids: [uuid!]!) {
|
exports.GET_JOBS_BY_PKS = `query GET_JOBS_BY_PKS($ids: [uuid!]!) {
|
||||||
jobs(where: {id: {_in: $ids}}) {
|
jobs(where: {id: {_in: $ids}}) {
|
||||||
id
|
id
|
||||||
|
|||||||
@@ -643,7 +643,7 @@ function CalculateAdditional(job) {
|
|||||||
additionalCosts: null,
|
additionalCosts: null,
|
||||||
additionalCostItems: [],
|
additionalCostItems: [],
|
||||||
adjustments: null,
|
adjustments: null,
|
||||||
towing: null,
|
towing: Dinero(),
|
||||||
shipping: Dinero(),
|
shipping: Dinero(),
|
||||||
storage: null,
|
storage: null,
|
||||||
pvrt: null,
|
pvrt: null,
|
||||||
@@ -668,7 +668,7 @@ function CalculateAdditional(job) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (val.line_desc.toLowerCase().includes("towing")) {
|
if (val.line_desc.toLowerCase().includes("towing")) {
|
||||||
ret.towing = lineValue;
|
ret.towing = ret.towing.add(lineValue);
|
||||||
return acc;
|
return acc;
|
||||||
} else {
|
} else {
|
||||||
ret.additionalCostItems.push({ key: val.line_desc, total: lineValue });
|
ret.additionalCostItems.push({ key: val.line_desc, total: lineValue });
|
||||||
@@ -919,7 +919,7 @@ function CalculateTaxesTotals(job, otherTotals) {
|
|||||||
|
|
||||||
Object.keys(taxableAmountsByTier).forEach((taxTierKey) => {
|
Object.keys(taxableAmountsByTier).forEach((taxTierKey) => {
|
||||||
taxable_adjustment = taxableAmountsByTier[taxTierKey].multiply(percent_of_adjustment);
|
taxable_adjustment = taxableAmountsByTier[taxTierKey].multiply(percent_of_adjustment);
|
||||||
console.log("🚀 ~ taxableAmountsByTier ~ taxable_adjustment:", taxable_adjustment)
|
console.log("🚀 ~ taxableAmountsByTier ~ taxable_adjustment:", taxable_adjustment);
|
||||||
if (job.adjustment_bottom_line > 0) {
|
if (job.adjustment_bottom_line > 0) {
|
||||||
taxableAmountsByTier[taxTierKey] = taxableAmountsByTier[taxTierKey].add(taxable_adjustment);
|
taxableAmountsByTier[taxTierKey] = taxableAmountsByTier[taxTierKey].add(taxable_adjustment);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -489,7 +489,7 @@ function CalculateAdditional(job) {
|
|||||||
additionalCosts: null,
|
additionalCosts: null,
|
||||||
additionalCostItems: [],
|
additionalCostItems: [],
|
||||||
adjustments: null,
|
adjustments: null,
|
||||||
towing: null,
|
towing: Dinero(),
|
||||||
shipping: Dinero(),
|
shipping: Dinero(),
|
||||||
storage: null,
|
storage: null,
|
||||||
pvrt: null,
|
pvrt: null,
|
||||||
@@ -512,7 +512,7 @@ function CalculateAdditional(job) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (val.line_desc.toLowerCase().includes("towing")) {
|
if (val.line_desc.toLowerCase().includes("towing")) {
|
||||||
ret.towing = lineValue;
|
ret.towing = ret.towing.add(lineValue);
|
||||||
return acc;
|
return acc;
|
||||||
} else {
|
} else {
|
||||||
ret.additionalCostItems.push({ key: val.line_desc, total: lineValue });
|
ret.additionalCostItems.push({ key: val.line_desc, total: lineValue });
|
||||||
|
|||||||
Reference in New Issue
Block a user