better states
This commit is contained in:
@@ -135,7 +135,23 @@ router.post('/', async (req, res) => {
|
||||
return res.status(400).json({ error: `Invoice number ${invoice_number} already exists.` });
|
||||
}
|
||||
}
|
||||
// Validate items
|
||||
if (!Array.isArray(items) || items.length === 0) {
|
||||
await client.query('ROLLBACK');
|
||||
return res.status(400).json({ error: 'Please add at least one item.' });
|
||||
}
|
||||
|
||||
// Recurring invoices must contain at least one Subscription item
|
||||
if (is_recurring) {
|
||||
const subscriptionItems = items.filter(item => String(item.qbo_item_id) === '115');
|
||||
|
||||
if (subscriptionItems.length === 0) {
|
||||
await client.query('ROLLBACK');
|
||||
return res.status(400).json({
|
||||
error: 'Recurring invoices must contain at least one Subscription item.'
|
||||
});
|
||||
}
|
||||
}
|
||||
let subtotal = 0;
|
||||
for (const item of items) {
|
||||
const amount = parseFloat(item.amount.replace(/[$,]/g, ''));
|
||||
@@ -210,7 +226,23 @@ router.put('/:id', async (req, res) => {
|
||||
return res.status(400).json({ error: `Invoice number ${invoice_number} already exists.` });
|
||||
}
|
||||
}
|
||||
// Validate items
|
||||
if (!Array.isArray(items) || items.length === 0) {
|
||||
await client.query('ROLLBACK');
|
||||
return res.status(400).json({ error: 'Please add at least one item.' });
|
||||
}
|
||||
|
||||
// Recurring invoices must contain at least one Subscription item
|
||||
if (is_recurring) {
|
||||
const subscriptionItems = items.filter(item => String(item.qbo_item_id) === '115');
|
||||
|
||||
if (subscriptionItems.length === 0) {
|
||||
await client.query('ROLLBACK');
|
||||
return res.status(400).json({
|
||||
error: 'Recurring invoices must contain at least one Subscription item.'
|
||||
});
|
||||
}
|
||||
}
|
||||
let subtotal = 0;
|
||||
for (const item of items) {
|
||||
const amount = parseFloat(item.amount.replace(/[$,]/g, ''));
|
||||
|
||||
Reference in New Issue
Block a user