IO-1708 Add shop timezone & update server side calculations.

This commit is contained in:
Patrick Fic
2022-02-07 17:43:34 -08:00
parent 356928ce77
commit 91c5560fe8
29 changed files with 303 additions and 93 deletions

View File

@@ -5,7 +5,7 @@ const queries = require("../../graphql-client/queries");
const Dinero = require("dinero.js");
var builder = require("xmlbuilder2");
const QbXmlUtils = require("./qbxml-utils");
const moment = require("moment");
const moment = require("moment-timezone");
const logger = require("../../utils/logger");
require("dotenv").config({
path: path.resolve(
@@ -72,9 +72,14 @@ const generateBill = (bill) => {
VendorRef: {
FullName: bill.vendor.name,
},
TxnDate: moment(bill.date).format("YYYY-MM-DD"),
TxnDate: moment(bill.date)
.tz(bill.job.bodyshop.timezone)
.format("YYYY-MM-DD"),
DueDate:
bill.due_date && moment(bill.due_date).format("YYYY-MM-DD"),
bill.due_date &&
moment(bill.due_date)
.tz(bill.job.bodyshop.timezone)
.format("YYYY-MM-DD"),
RefNumber: bill.invoice_number,
Memo: `RO ${bill.job.ro_number || ""}`,
ExpenseLineAdd: bill.billlines.map((il) =>

View File

@@ -4,7 +4,7 @@ const DineroQbFormat = require("../accounting-constants").DineroQbFormat;
const queries = require("../../graphql-client/queries");
const Dinero = require("dinero.js");
var builder = require("xmlbuilder2");
const moment = require("moment");
const moment = require("moment-timezone");
const QbXmlUtils = require("./qbxml-utils");
const QbxmlReceivables = require("./qbxml-receivables");
const logger = require("../../utils/logger");
@@ -84,7 +84,7 @@ exports.default = async (req, res) => {
QbXmlToExecute.push({
id: i.id,
okStatusCodes: ["0"],
qbxml: generatePayment(i, isThreeTier, twoTierPref),
qbxml: generatePayment(i, isThreeTier, twoTierPref, bodyshop),
});
});
@@ -101,7 +101,7 @@ exports.default = async (req, res) => {
}
};
const generatePayment = (payment, isThreeTier, twoTierPref) => {
const generatePayment = (payment, isThreeTier, twoTierPref, bodyshop) => {
let paymentQbxmlObj;
if (payment.amount > 0) {
paymentQbxmlObj = {
@@ -128,7 +128,9 @@ const generatePayment = (payment, isThreeTier, twoTierPref) => {
FullName:
payment.job.bodyshop.md_responsibility_centers.ar.accountname,
},
TxnDate: moment(payment.date).format("YYYY-MM-DD"), //Trim String
TxnDate: moment(payment.date)
.tz(bodyshop.timezone)
.format("YYYY-MM-DD"), //Trim String
RefNumber: payment.paymentnum || payment.transactionid,
TotalAmount: Dinero({
amount: Math.round(payment.amount * 100),
@@ -172,7 +174,9 @@ const generatePayment = (payment, isThreeTier, twoTierPref) => {
FullName:
payment.job.bodyshop.md_responsibility_centers.ar.accountname,
},
TxnDate: moment(payment.date).format("YYYY-MM-DD"), //Trim String
TxnDate: moment(payment.date)
.tz(bodyshop.timezone)
.format("YYYY-MM-DD"), //Trim String
RefNumber:
payment.paymentnum || payment.stripeid || payment.transactionid,

View File

@@ -3,7 +3,7 @@ const path = require("path");
const DineroQbFormat = require("../accounting-constants").DineroQbFormat;
const queries = require("../../graphql-client/queries");
const Dinero = require("dinero.js");
const moment = require("moment");
const moment = require("moment-timezone");
var builder = require("xmlbuilder2");
const QbXmlUtils = require("./qbxml-utils");
const logger = require("../../utils/logger");
@@ -254,7 +254,9 @@ const generateInvoiceQbxml = (
? { ClassRef: { FullName: jobs_by_pk.class } }
: {}),
TxnDate: moment(jobs_by_pk.date_invoiced).format("YYYY-MM-DD"),
TxnDate: moment(jobs_by_pk.date_invoiced)
.tz(bodyshop.timezone)
.format("YYYY-MM-DD"),
RefNumber: jobs_by_pk.ro_number,
BillAddress: {
Addr1: jobs_by_pk.ownr_co_nm