changing invoice request

This commit is contained in:
Tamashevich, Dzmitry
2020-11-25 21:31:04 +03:00
committed by Daniel Hutzel
parent d9b607919a
commit 029ba61098

View File

@@ -26,14 +26,13 @@ module.exports = async function () {
const { tracks } = req.data; const { tracks } = req.data;
const newInvoicedTracks = tracks.map(({ ID }) => ID); const newInvoicedTracks = tracks.map(({ ID }) => ID);
const customerId = req.user.attr.ID; const customerId = req.user.attr.ID;
const utcNowDateTime = moment().utc().format(UTC_DATE_TIME_FORMAT);
const total = tracks.reduce( const total = tracks.reduce(
(acc, { unitPrice }) => acc + Number(unitPrice), (acc, { unitPrice }) => acc + Number(unitPrice),
0 0
); );
const utcNowDateTime = moment().utc().format(UTC_DATE_TIME_FORMAT);
const transaction = await db.tx(req); const transaction = await db.tx(req);
// check if already exists // check if already exists
const invoicedTracks = await transaction.run( const invoicedTracks = await transaction.run(
SELECT.from(InvoiceItems) SELECT.from(InvoiceItems)
@@ -62,34 +61,27 @@ module.exports = async function () {
SELECT.one(InvoiceItems).columns("ID").orderBy({ ID: "desc" }) SELECT.one(InvoiceItems).columns("ID").orderBy({ ID: "desc" })
); );
console.log("lastInvoiceId", lastInvoiceId);
console.log("lastInvoiceId", lastInvoiceId);
// creating invoice // creating invoice
const { const newInvoiceId = ++lastInvoiceId;
results: [{ lastID: invoiceID }], await transaction.run(
} = await transaction.run(
INSERT.into(Invoices) INSERT.into(Invoices)
.columns("ID", "customer_ID", "total", "invoiceDate") .columns("ID", "customer_ID", "total", "invoiceDate")
.values(++lastInvoiceId, customerId, total, utcNowDateTime) .values(newInvoiceId, customerId, total, utcNowDateTime)
); );
console.log("invoiceID", invoiceID);
// creating invoice items // creating invoice items
const result = await transaction.run( await transaction.run(
INSERT.into(InvoiceItems) INSERT.into(InvoiceItems)
.columns("ID", "invoice_ID", "track_ID", "unitPrice") .columns("ID", "invoice_ID", "track_ID", "unitPrice")
.rows( .rows(
tracks.map(({ ID: trackID, unitPrice }, index) => [ tracks.map(({ ID: trackID, unitPrice }, index) => [
lastInvoiceItemId + index + 1, lastInvoiceItemId + index + 1,
invoiceID, newInvoiceId,
trackID, trackID,
unitPrice, unitPrice,
]) ])
) )
); );
console.log("insert result", result);
await transaction.commit(); await transaction.commit();
}); });