74 lines
1.8 KiB
TypeScript
74 lines
1.8 KiB
TypeScript
import { format } from "date-fns-tz";
|
|
import { eq } from "drizzle-orm";
|
|
import { db } from "../../../../database/dbclient.js";
|
|
import { settings } from "../../../../database/schema/settings.js";
|
|
import { tryCatch } from "../../../globalUtils/tryCatch.js";
|
|
import { query } from "../../sqlServer/prodSqlServer.js";
|
|
import { consumptionCheck } from "../../sqlServer/querys/eom/consumptionCheck.js";
|
|
import { lastSalesPriceCheck } from "../../sqlServer/querys/eom/lastSalesprice.js";
|
|
|
|
type Consumption = {
|
|
startDate: string;
|
|
endDate: string;
|
|
includePlantToken: boolean;
|
|
};
|
|
|
|
export const getProductionConsumption = async (consumption: Consumption) => {
|
|
const { data, error } = (await tryCatch(
|
|
query(
|
|
consumptionCheck
|
|
.replace("[startDate]", consumption.startDate)
|
|
.replace("[endDate]", consumption.endDate),
|
|
"Last sales price",
|
|
),
|
|
)) as any;
|
|
|
|
console.log(
|
|
consumptionCheck
|
|
.replace("[startDate]", consumption.startDate)
|
|
.replace("[endDate]", consumption.endDate),
|
|
);
|
|
console.log(data.data.length);
|
|
if (error) {
|
|
return {
|
|
success: false,
|
|
message: "Error getting the last sales price",
|
|
data: error,
|
|
};
|
|
}
|
|
|
|
if (consumption.includePlantToken) {
|
|
const { data: s, error: se } = (await tryCatch(
|
|
db.select().from(settings).where(eq(settings.name, "plantToken")),
|
|
)) as any;
|
|
|
|
if (se) {
|
|
console.log("Error getting articles");
|
|
return data.data;
|
|
}
|
|
|
|
return {
|
|
success: true,
|
|
message: `consumption data`,
|
|
data: data.data.map((n: any) => {
|
|
return {
|
|
plantToken: s[0].value,
|
|
...n,
|
|
Prod_Date: format(n.Prod_Date, "M/d/yyyy"),
|
|
};
|
|
}),
|
|
};
|
|
} else {
|
|
return {
|
|
success: true,
|
|
message: `consumption data`,
|
|
data: data.data.map((n: any) => {
|
|
return {
|
|
...n,
|
|
Prod_Date: format(n.Prod_Date, "M/d/yyyy"),
|
|
};
|
|
}),
|
|
};
|
|
}
|
|
};
|