Fix(medusa): Totals on draft orders (#2785)

* test subtotals on draft order operations

* fetch cart with subtotals when doing draft order operations

* write test for updating discounts seeing changes in totals

* formatting

* udpate test

* force taxes

* missing select

* add import

* rm force_taxes
This commit is contained in:
Philip Korsholm
2022-12-16 10:21:53 +01:00
committed by GitHub
parent ea460b4e0b
commit 6283010fd6
9 changed files with 53 additions and 22 deletions
@@ -11,6 +11,8 @@ import {
ValidateNested,
} from "class-validator"
import {
defaultAdminDraftOrdersCartFields,
defaultAdminDraftOrdersCartRelations,
defaultAdminDraftOrdersFields,
defaultAdminDraftOrdersRelations,
} from "."
@@ -18,7 +20,7 @@ import {
import { Type } from "class-transformer"
import { EntityManager } from "typeorm"
import { DraftOrder } from "../../../.."
import { DraftOrderService } from "../../../../services"
import { CartService, DraftOrderService } from "../../../../services"
import { AddressPayload } from "../../../../types/common"
import { DraftOrderCreateProps } from "../../../../types/draft-orders"
import { validator } from "../../../../utils/validator"
@@ -230,6 +232,15 @@ export default async (req, res) => {
select: defaultAdminDraftOrdersFields,
})
const cartService: CartService = req.scope.resolve("cartService")
draftOrder.cart = await cartService
.withTransaction(manager)
.retrieveWithTotals(draftOrder.cart_id, {
relations: defaultAdminDraftOrdersCartRelations,
select: defaultAdminDraftOrdersCartFields,
})
res.status(200).json({ draft_order: draftOrder })
}
@@ -153,7 +153,7 @@ export default async (req, res) => {
draftOrder.cart = await cartService
.withTransaction(manager)
.retrieve(draftOrder.cart_id, {
.retrieveWithTotals(draftOrder.cart_id, {
relations: defaultAdminDraftOrdersCartRelations,
select: defaultAdminDraftOrdersCartFields,
})
@@ -89,7 +89,7 @@ export default async (req, res) => {
draftOrder.cart = await cartService
.withTransaction(manager)
.retrieve(draftOrder.cart_id, {
.retrieveWithTotals(draftOrder.cart_id, {
relations: defaultAdminDraftOrdersCartRelations,
select: defaultAdminDraftOrdersCartFields,
})
@@ -1,5 +1,6 @@
import { CartService, DraftOrderService } from "../../../../services"
import {
defaultAdminDraftOrdersCartFields,
defaultAdminDraftOrdersCartRelations,
defaultAdminDraftOrdersFields,
defaultAdminDraftOrdersRelations,
@@ -72,15 +73,10 @@ export default async (req, res) => {
relations: defaultAdminDraftOrdersRelations,
})
draftOrder.cart = await cartService.retrieveWithTotals(
draftOrder.cart_id,
{
relations: defaultAdminDraftOrdersCartRelations,
},
{
force_taxes: true,
}
)
draftOrder.cart = await cartService.retrieveWithTotals(draftOrder.cart_id, {
relations: defaultAdminDraftOrdersCartRelations,
select: defaultAdminDraftOrdersCartFields,
})
res.json({ draft_order: draftOrder })
}
@@ -107,7 +107,7 @@ export default async (req, res) => {
await orderService.withTransaction(manager).capturePayment(result.id)
})
const order = await orderService.retrieve(result.id, {
const order = await orderService.retrieveWithTotals(result.id, {
relations: defaultOrderRelations,
select: defaultOrderFields,
})
@@ -173,7 +173,7 @@ export default async (req, res) => {
await cartService.update(draftOrder.cart_id, cartDataToUpdate)
})
draftOrder.cart = await cartService.retrieve(draftOrder.cart_id, {
draftOrder.cart = await cartService.retrieveWithTotals(draftOrder.cart_id, {
relations: defaultAdminDraftOrdersCartRelations,
select: defaultAdminDraftOrdersCartFields,
})
@@ -148,7 +148,7 @@ export default async (req, res) => {
draftOrder.cart = await cartService
.withTransaction(manager)
.retrieve(draftOrder.cart_id, {
.retrieveWithTotals(draftOrder.cart_id, {
relations: defaultAdminDraftOrdersCartRelations,
select: defaultAdminDraftOrdersCartFields,
})