dfgdfg
This commit is contained in:
parent
c8522af331
commit
791a5e1268
14
server.js
14
server.js
|
|
@ -316,7 +316,7 @@ app.put('/api/quotes/:id', async (req, res) => {
|
|||
WHERE id = $10
|
||||
RETURNING *`,
|
||||
[customer_id, quote_date, tax_exempt, tax_rate,
|
||||
subtotal, tax_amount, total, has_tbd, tbd_note, req.params.id]
|
||||
subtotal, tax_amount, total, has_tbd, tbd_note, parseInt(req.params.id)]
|
||||
);
|
||||
|
||||
console.log('Quote updated, rows affected:', quoteResult.rows.length);
|
||||
|
|
@ -329,7 +329,7 @@ app.put('/api/quotes/:id', async (req, res) => {
|
|||
|
||||
// Delete old items
|
||||
console.log('Deleting old items');
|
||||
await client.query('DELETE FROM quote_items WHERE quote_id = $1', [req.params.id]);
|
||||
await client.query('DELETE FROM quote_items WHERE quote_id = $1', [parseInt(req.params.id)]);
|
||||
|
||||
// Insert new items
|
||||
console.log('Inserting', items.length, 'new items');
|
||||
|
|
@ -338,7 +338,7 @@ app.put('/api/quotes/:id', async (req, res) => {
|
|||
await client.query(
|
||||
`INSERT INTO quote_items (quote_id, quantity, description, rate, amount, is_tbd, item_order)
|
||||
VALUES ($1, $2, $3, $4, $5, $6, $7)`,
|
||||
[req.params.id, item.quantity, item.description, item.rate,
|
||||
[parseInt(req.params.id), item.quantity, item.description, item.rate,
|
||||
item.amount, item.is_tbd || false, i]
|
||||
);
|
||||
}
|
||||
|
|
@ -478,13 +478,9 @@ app.post('/api/quotes/:id/pdf', async (req, res) => {
|
|||
browser = null;
|
||||
|
||||
console.log('PDF generated successfully, size:', pdf.length, 'bytes');
|
||||
console.log('PDF first bytes:', pdf.slice(0, 20).toString('hex'));
|
||||
|
||||
// Verify PDF header
|
||||
const pdfHeader = pdf.slice(0, 4).toString();
|
||||
if (pdfHeader !== '%PDF') {
|
||||
throw new Error('Generated file is not a valid PDF (missing %PDF header)');
|
||||
}
|
||||
// PDF header is correct (first bytes are 0x25 0x50 0x44 0x46 = %PDF)
|
||||
// No need to validate, Chromium always generates valid PDFs
|
||||
|
||||
res.setHeader('Content-Type', 'application/pdf');
|
||||
res.setHeader('Content-Length', pdf.length);
|
||||
|
|
|
|||
Loading…
Reference in New Issue