Added Prepare Service

This commit is contained in:
2026-01-02 12:39:20 +01:00
parent a5f82c3ef3
commit 848c9e4b2f
3 changed files with 19 additions and 8 deletions

View File

@@ -388,15 +388,19 @@ async function getCloseData(server:FastifyInstance,item: any, tenant: any, units
console.log(item); console.log(item);
const [contact, customer, profile, project, contract] = await Promise.all([ const [contact, customer, project, contract] = await Promise.all([
fetchById(server, schema.contacts, item.contact), fetchById(server, schema.contacts, item.contact),
fetchById(server, schema.customers, item.customer), fetchById(server, schema.customers, item.customer),
fetchById(server, schema.authProfiles, item.contactPerson), // oder createdBy, je nach Logik
fetchById(server, schema.projects, item.project), fetchById(server, schema.projects, item.project),
fetchById(server, schema.contracts, item.contract), fetchById(server, schema.contracts, item.contract),
item.letterhead ? fetchById(server, schema.letterheads, item.letterhead) : null item.letterhead ? fetchById(server, schema.letterheads, item.letterhead) : null
]); ]);
const profile = (await server.db.select().from(schema.authProfiles).where(and(eq(schema.authProfiles.user_id, item.created_by),eq(schema.authProfiles.tenant_id,tenant.id))).limit(1))[0];
console.log(profile)
const pdfData = getDocumentDataBackend( const pdfData = getDocumentDataBackend(
{ {
...item, ...item,
@@ -613,6 +617,8 @@ export function getDocumentDataBackend(
`${itemInfo.address?.zip || customerData.zip} ${itemInfo.address?.city || customerData.city}`, `${itemInfo.address?.zip || customerData.zip} ${itemInfo.address?.city || customerData.city}`,
].filter(Boolean); // Leere Einträge entfernen ].filter(Boolean); // Leere Einträge entfernen
console.log(contactPerson)
// Info Block aufbereiten // Info Block aufbereiten
const infoBlock = [ const infoBlock = [
{ {
@@ -634,12 +640,12 @@ export function getDocumentDataBackend(
}] : []), }] : []),
{ {
label: "Ansprechpartner", label: "Ansprechpartner",
content: contactPerson ? (contactPerson.name || contactPerson.fullName || contactPerson.email) : "-", content: contactPerson ? (contactPerson.name || contactPerson.full_name || contactPerson.email) : "-",
}, },
// Kontakt Infos // Kontakt Infos
...((itemInfo.contactTel || contactPerson?.fixedTel || contactPerson?.mobileTel) ? [{ ...((itemInfo.contactTel || contactPerson?.fixed_tel || contactPerson?.mobile_tel) ? [{
label: "Telefon", label: "Telefon",
content: itemInfo.contactTel || contactPerson?.fixedTel || contactPerson?.mobileTel, content: itemInfo.contactTel || contactPerson?.fixed_tel || contactPerson?.mobile_tel,
}] : []), }] : []),
...(contactPerson?.email ? [{ ...(contactPerson?.email ? [{
label: "E-Mail", label: "E-Mail",

View File

@@ -3,14 +3,14 @@ import fp from "fastify-plugin";
import { bankStatementService } from "../modules/cron/bankstatementsync.service"; import { bankStatementService } from "../modules/cron/bankstatementsync.service";
//import {initDokuboxClient, syncDokubox} from "../modules/cron/dokuboximport.service"; //import {initDokuboxClient, syncDokubox} from "../modules/cron/dokuboximport.service";
import { FastifyInstance } from "fastify"; import { FastifyInstance } from "fastify";
//import {prepareIncomingInvoices} from "../modules/cron/prepareIncomingInvoices"; import {prepareIncomingInvoices} from "../modules/cron/prepareIncomingInvoices";
declare module "fastify" { declare module "fastify" {
interface FastifyInstance { interface FastifyInstance {
services: { services: {
bankStatements: ReturnType<typeof bankStatementService>; bankStatements: ReturnType<typeof bankStatementService>;
//dokuboxSync: ReturnType<typeof syncDokubox>; //dokuboxSync: ReturnType<typeof syncDokubox>;
//prepareIncomingInvoices: ReturnType<typeof prepareIncomingInvoices>; prepareIncomingInvoices: ReturnType<typeof prepareIncomingInvoices>;
}; };
} }
} }
@@ -19,6 +19,6 @@ export default fp(async function servicePlugin(server: FastifyInstance) {
server.decorate("services", { server.decorate("services", {
bankStatements: bankStatementService(server), bankStatements: bankStatementService(server),
//dokuboxSync: syncDokubox(server), //dokuboxSync: syncDokubox(server),
//prepareIncomingInvoices: prepareIncomingInvoices(server), prepareIncomingInvoices: prepareIncomingInvoices(server),
}); });
}); });

View File

@@ -174,6 +174,11 @@ export default async function functionRoutes(server: FastifyInstance) {
await server.services.bankStatements.run(req.user.tenant_id); await server.services.bankStatements.run(req.user.tenant_id);
}) })
server.post('/functions/services/prepareincominginvoices', async (req, reply) => {
await server.services.prepareIncomingInvoices.run(req.user.tenant_id)
})
/*server.post('/print/zpl/preview', async (req, reply) => { /*server.post('/print/zpl/preview', async (req, reply) => {
const { zpl, widthMm = 50, heightMm = 30, dpmm = 8, asBase64 = false } = req.body as {zpl:string,widthMm:number,heightMm:number,dpmm:number,asBase64:string} const { zpl, widthMm = 50, heightMm = 30, dpmm = 8, asBase64 = false } = req.body as {zpl:string,widthMm:number,heightMm:number,dpmm:number,asBase64:string}