Add job reconciliation & autohouse filtering.
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
<babeledit_project be_version="2.7.1" version="1.2">
|
<babeledit_project version="1.2" be_version="2.7.1">
|
||||||
<!--
|
<!--
|
||||||
|
|
||||||
BabelEdit project file
|
BabelEdit project file
|
||||||
@@ -40046,6 +40046,27 @@
|
|||||||
</translation>
|
</translation>
|
||||||
</translations>
|
</translations>
|
||||||
</concept_node>
|
</concept_node>
|
||||||
|
<concept_node>
|
||||||
|
<name>jobs_reconcile</name>
|
||||||
|
<definition_loaded>false</definition_loaded>
|
||||||
|
<description></description>
|
||||||
|
<comment></comment>
|
||||||
|
<default_text></default_text>
|
||||||
|
<translations>
|
||||||
|
<translation>
|
||||||
|
<language>en-US</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>es-MX</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>fr-CA</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
</translations>
|
||||||
|
</concept_node>
|
||||||
<concept_node>
|
<concept_node>
|
||||||
<name>lag_time</name>
|
<name>lag_time</name>
|
||||||
<definition_loaded>false</definition_loaded>
|
<definition_loaded>false</definition_loaded>
|
||||||
|
|||||||
@@ -2380,6 +2380,7 @@
|
|||||||
"job_costing_ro_date_summary": "Job Costing by RO - Summary",
|
"job_costing_ro_date_summary": "Job Costing by RO - Summary",
|
||||||
"job_costing_ro_estimator": "Job Costing by Estimator",
|
"job_costing_ro_estimator": "Job Costing by Estimator",
|
||||||
"job_costing_ro_ins_co": "Job Costing by RO Source",
|
"job_costing_ro_ins_co": "Job Costing by RO Source",
|
||||||
|
"jobs_reconcile": "Parts/Sublet/Labor Reconciliation",
|
||||||
"lag_time": "Lag Time",
|
"lag_time": "Lag Time",
|
||||||
"open_orders": "Open Orders by Date",
|
"open_orders": "Open Orders by Date",
|
||||||
"open_orders_csr": "Open Orders by CSR",
|
"open_orders_csr": "Open Orders by CSR",
|
||||||
|
|||||||
@@ -2380,6 +2380,7 @@
|
|||||||
"job_costing_ro_date_summary": "",
|
"job_costing_ro_date_summary": "",
|
||||||
"job_costing_ro_estimator": "",
|
"job_costing_ro_estimator": "",
|
||||||
"job_costing_ro_ins_co": "",
|
"job_costing_ro_ins_co": "",
|
||||||
|
"jobs_reconcile": "",
|
||||||
"lag_time": "",
|
"lag_time": "",
|
||||||
"open_orders": "",
|
"open_orders": "",
|
||||||
"open_orders_csr": "",
|
"open_orders_csr": "",
|
||||||
|
|||||||
@@ -2380,6 +2380,7 @@
|
|||||||
"job_costing_ro_date_summary": "",
|
"job_costing_ro_date_summary": "",
|
||||||
"job_costing_ro_estimator": "",
|
"job_costing_ro_estimator": "",
|
||||||
"job_costing_ro_ins_co": "",
|
"job_costing_ro_ins_co": "",
|
||||||
|
"jobs_reconcile": "",
|
||||||
"lag_time": "",
|
"lag_time": "",
|
||||||
"open_orders": "",
|
"open_orders": "",
|
||||||
"open_orders_csr": "",
|
"open_orders_csr": "",
|
||||||
|
|||||||
@@ -1534,6 +1534,18 @@ export const TemplateList = (type, context) => {
|
|||||||
},
|
},
|
||||||
group: "purchases",
|
group: "purchases",
|
||||||
},
|
},
|
||||||
|
jobs_reconcile: {
|
||||||
|
title: i18n.t("reportcenter.templates.jobs_reconcile"),
|
||||||
|
subject: i18n.t("reportcenter.templates.jobs_reconcile"),
|
||||||
|
key: "jobs_reconcile",
|
||||||
|
//idtype: "vendor",
|
||||||
|
disabled: false,
|
||||||
|
rangeFilter: {
|
||||||
|
object: i18n.t("reportcenter.labels.objects.jobs"),
|
||||||
|
field: i18n.t("jobs.fields.date_invoiced"),
|
||||||
|
},
|
||||||
|
group: "jobs",
|
||||||
|
},
|
||||||
}
|
}
|
||||||
: {}),
|
: {}),
|
||||||
...(!type || type === "courtesycarcontract"
|
...(!type || type === "courtesycarcontract"
|
||||||
|
|||||||
@@ -179,7 +179,6 @@ exports.default = async (req, res) => {
|
|||||||
ret.push({ paymentid: payment.id, success: true });
|
ret.push({ paymentid: payment.id, success: true });
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
logger.log("qbo-payment-create-error", "ERROR", req.user.email, {
|
logger.log("qbo-payment-create-error", "ERROR", req.user.email, {
|
||||||
|
|
||||||
error:
|
error:
|
||||||
(error && error.authResponse && error.authResponse.body) ||
|
(error && error.authResponse && error.authResponse.body) ||
|
||||||
(error && error.message),
|
(error && error.message),
|
||||||
@@ -217,7 +216,10 @@ exports.default = async (req, res) => {
|
|||||||
res.status(200).json(ret);
|
res.status(200).json(ret);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(error);
|
console.log(error);
|
||||||
logger.log("qbo-payment-create-error", "ERROR", req.user.email, { error: error.message, stack: error.stack });
|
logger.log("qbo-payment-create-error", "ERROR", req.user.email, {
|
||||||
|
error: error.message,
|
||||||
|
stack: error.stack,
|
||||||
|
});
|
||||||
res.status(400).json(error);
|
res.status(400).json(error);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -240,7 +242,7 @@ async function InsertPayment(
|
|||||||
|
|
||||||
if (invoices && invoices.length !== 1) {
|
if (invoices && invoices.length !== 1) {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
`More than 1 invoice with DocNumber ${payment.ro_number} found.`
|
`More than 1 invoice with DocNumber ${payment.job.ro_number} found.`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -889,7 +889,7 @@ const GenerateDetailLines = (job, line, statuses) => {
|
|||||||
OriginalCost: null,
|
OriginalCost: null,
|
||||||
OriginalInvoiceNumber: null,
|
OriginalInvoiceNumber: null,
|
||||||
PriceEach: line.act_price || 0,
|
PriceEach: line.act_price || 0,
|
||||||
PartNumber: _.escape(line.oem_partno),
|
PartNumber: _.escape(line.oem_partno.replace(/[^\x00-\x7F]/g, "")),
|
||||||
ProfitPercent: null,
|
ProfitPercent: null,
|
||||||
PurchaseOrderNumber: null,
|
PurchaseOrderNumber: null,
|
||||||
Qty: line.part_qty || 0,
|
Qty: line.part_qty || 0,
|
||||||
|
|||||||
23
setadmin.js
Normal file
23
setadmin.js
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
var { admin } = require("./server/firebase/firebase-handler");
|
||||||
|
|
||||||
|
const uidToMakeAdmin = "yTvpfkcNnGckLd1JnoXC7bTdvtu1";
|
||||||
|
|
||||||
|
admin
|
||||||
|
.auth()
|
||||||
|
.getUser(uidToMakeAdmin)
|
||||||
|
.then((user) => {
|
||||||
|
admin
|
||||||
|
.auth()
|
||||||
|
.setCustomUserClaims(uidToMakeAdmin, {
|
||||||
|
...user.customClaims,
|
||||||
|
"https://hasura.io/jwt/claims": {
|
||||||
|
"x-hasura-default-role": "admin",
|
||||||
|
"x-hasura-allowed-roles": ["admin"],
|
||||||
|
"x-hasura-user-id": uidToMakeAdmin,
|
||||||
|
},
|
||||||
|
ioadmin: true,
|
||||||
|
})
|
||||||
|
.then(() => console.log("Success."))
|
||||||
|
.catch((error) => console.log("Error updating claims.", error));
|
||||||
|
})
|
||||||
|
.catch((error) => console.log("Error fetching user.", error));
|
||||||
Reference in New Issue
Block a user