Merged in hotfix/2022-02-08 (pull request #372)

Hotfix/2022 02 08
This commit is contained in:
Patrick Fic
2022-02-08 17:25:38 +00:00
6 changed files with 56 additions and 20 deletions

View File

@@ -40,7 +40,7 @@ export default function DashboardMonthlyEmployeeEfficiency({
(dayAcc, dayVal) => { (dayAcc, dayVal) => {
return { return {
actual: dayAcc.actual + dayVal.actualhrs, actual: dayAcc.actual + dayVal.actualhrs,
productive: dayAcc.actual + dayVal.productivehrs, productive: dayAcc.productive + dayVal.productivehrs,
}; };
}, },
{ actual: 0, productive: 0 } { actual: 0, productive: 0 }
@@ -50,7 +50,7 @@ export default function DashboardMonthlyEmployeeEfficiency({
} }
const dailyEfficiency = const dailyEfficiency =
((dailyHrs.productive - dailyHrs.actual) / dailyHrs.productive + 1) * 100; ((dailyHrs.productive - dailyHrs.actual) / dailyHrs.actual + 1) * 100;
const theValue = { const theValue = {
date: moment(val).format("DD"), date: moment(val).format("DD"),
@@ -69,7 +69,7 @@ export default function DashboardMonthlyEmployeeEfficiency({
}; };
theValue.accEfficiency = ( theValue.accEfficiency = (
((theValue.accProductive - theValue.accActual) / ((theValue.accProductive - theValue.accActual) /
(theValue.accProductive || 1) + (theValue.accActual || 1) +
1) * 1) *
100 100
).toFixed(1); ).toFixed(1);

View File

@@ -31,16 +31,51 @@ export default function DashboardProjectedMonthlySales({ data, ...cardProps }) {
} }
export const DashboardProjectedMonthlySalesGql = ` export const DashboardProjectedMonthlySalesGql = `
projected_monthly_sales: jobs(where: {_or: [{_and: [{date_invoiced: {_gte: "${moment() projected_monthly_sales: jobs(where: {
voided: {_eq: false},
_or: [
{_and: [
{date_invoiced:{_is_null: false }},
{date_invoiced: {_gte: "${moment()
.startOf("month")
.startOf("day")
.toISOString()}"}}, {date_invoiced: {_lte: "${moment()
.endOf("month")
.endOf("day")
.toISOString()}"}}]},
{
_and:[
{date_invoiced:{_is_null: true }},
{actual_completion: {_gte: "${moment()
.startOf("month")
.startOf("day")
.toISOString()}"}}, {actual_completion: {_lte: "${moment()
.endOf("month")
.endOf("day")
.toISOString()}"}}
]
},
{_and: [
{date_invoiced: {_is_null: true}},
{actual_completion: {_is_null: true}}
{scheduled_completion: {_gte: "${moment()
.startOf("month") .startOf("month")
.format("YYYY-MM-DD")}"}}, {date_invoiced: {_lte: "${moment() .startOf("day")
.toISOString()}"}}, {scheduled_completion: {_lte: "${moment()
.endOf("month") .endOf("month")
.format("YYYY-MM-DD")}"}}]}, {_and: [{scheduled_completion: {_gte: "${moment() .endOf("day")
.startOf("month") .toISOString()}"}}
.format("YYYY-MM-DD")}"}}, {scheduled_completion: {_lte: "${moment()
.endOf("month")
.format("YYYY-MM-DD")}"}}]}]}) { ]}
]}) {
id id
ro_number
voided
date_invoiced date_invoiced
job_totals job_totals
} }

View File

@@ -280,12 +280,13 @@ const createDashboardQuery = (state) => {
return gql` return gql`
query QUERY_DASHBOARD_DETAILS { query QUERY_DASHBOARD_DETAILS {
${componentBasedAdditions || ""} ${componentBasedAdditions || ""}
monthly_sales: jobs(where: {_and: [{date_invoiced: {_gte: "${moment() monthly_sales: jobs(where: {_and: [
.startOf("month") { voided: {_eq: false}},
.format("YYYY-MM-DD")}"}}, {date_invoiced: {_lte: "${moment() {date_invoiced: {_gte: "${moment()
.endOf("month") .startOf("month").startOf('day').toISOString()}"}}, {date_invoiced: {_lte: "${moment()
.format("YYYY-MM-DD")}"}}]}) { .endOf("month").endOf('day').toISOString()}"}}]}) {
id id
ro_number
date_invoiced date_invoiced
job_totals job_totals
rate_la1 rate_la1
@@ -333,14 +334,14 @@ const createDashboardQuery = (state) => {
part_qty part_qty
part_type part_type
} }
labhrs: joblines_aggregate(where: { mod_lbr_ty: { _neq: "LAR" } }) { labhrs: joblines_aggregate(where: { mod_lbr_ty: { _neq: "LAR" }, removed: { _eq: false } }) {
aggregate { aggregate {
sum { sum {
mod_lb_hrs mod_lb_hrs
} }
} }
} }
larhrs: joblines_aggregate(where: { mod_lbr_ty: { _eq: "LAR" } }) { larhrs: joblines_aggregate(where: { mod_lbr_ty: { _eq: "LAR" }, removed: { _eq: false } }) {
aggregate { aggregate {
sum { sum {
mod_lb_hrs mod_lb_hrs

View File

@@ -27,11 +27,11 @@ export function PartnerPingComponent({ bodyshop, setPartnerVersion }) {
useEffect(() => { useEffect(() => {
// Create an scoped async function in the hook // Create an scoped async function in the hook
async function checkPartnerStatus() { async function checkPartnerStatus() {
if (!bodyshop) return;
try { try {
//if (process.env.NODE_ENV === "development") return; //if (process.env.NODE_ENV === "development") return;
const PartnerResponse = await axios.post("http://localhost:1337/ping/"); const PartnerResponse = await axios.post("http://localhost:1337/ping/");
const { appver, qbpath } = PartnerResponse.data; const { appver, qbpath } = PartnerResponse.data;
if (!bodyshop) return;
setPartnerVersion(appver); setPartnerVersion(appver);
console.log({ appver, qbpath }); console.log({ appver, qbpath });
if ( if (

View File

@@ -2230,7 +2230,7 @@
"gsr_by_csr": "Gross Sales by CSR", "gsr_by_csr": "Gross Sales by CSR",
"gsr_by_delivery_date": "Gross Sales by Delivery Date", "gsr_by_delivery_date": "Gross Sales by Delivery Date",
"gsr_by_estimator": "Gross Sales by Estimator", "gsr_by_estimator": "Gross Sales by Estimator",
"gsr_by_exported_date": "Gross Sales by Export Date", "gsr_by_exported_date": "Exported Gross Sales",
"gsr_by_ins_co": "Gross Sales by Insurance Company", "gsr_by_ins_co": "Gross Sales by Insurance Company",
"gsr_by_make": "Gross Sales by Vehicle Make", "gsr_by_make": "Gross Sales by Vehicle Make",
"gsr_by_referral": "Gross Sales by Referral Source", "gsr_by_referral": "Gross Sales by Referral Source",

View File

@@ -667,7 +667,7 @@ const formatGpPercent = (gppercent) => {
//Verify that this stays in line with jobs-close-auto-allocate logic from the application. //Verify that this stays in line with jobs-close-auto-allocate logic from the application.
const getAdditionalCostCenter = (jl, profitCenters) => { const getAdditionalCostCenter = (jl, profitCenters) => {
if (!jl.part_type && !jl.mod_lbr_ty) { if (!jl.part_type && !jl.mod_lbr_ty) {
const lineDesc = jl.line_desc.toLowerCase(); const lineDesc = jl.line_desc ? jl.line_desc.toLowerCase() : "";
if (lineDesc.includes("shop mat")) { if (lineDesc.includes("shop mat")) {
return profitCenters["MASH"]; return profitCenters["MASH"];