diff --git a/internal/modules/marketing/dto/deliveryorder.dto.go b/internal/modules/marketing/dto/deliveryorder.dto.go index 673227eb..0e21d534 100644 --- a/internal/modules/marketing/dto/deliveryorder.dto.go +++ b/internal/modules/marketing/dto/deliveryorder.dto.go @@ -154,7 +154,7 @@ func ToMarketingDeliveryProductDTO(e entity.MarketingDeliveryProduct) MarketingD return MarketingDeliveryProductDTO{ Id: e.Id, MarketingProductId: e.MarketingProductId, - Qty: e.UsageQty, + Qty: e.UsageQty + e.PendingQty, UnitPrice: e.UnitPrice, TotalWeight: e.TotalWeight, AvgWeight: e.AvgWeight, diff --git a/internal/modules/marketing/dto/deliveryorder.dto_test.go b/internal/modules/marketing/dto/deliveryorder.dto_test.go new file mode 100644 index 00000000..5e7aad4e --- /dev/null +++ b/internal/modules/marketing/dto/deliveryorder.dto_test.go @@ -0,0 +1,22 @@ +package dto + +import ( + "testing" + + entity "gitlab.com/mbugroup/lti-api.git/internal/entities" +) + +func TestToMarketingDeliveryProductDTOIncludesPendingQty(t *testing.T) { + input := entity.MarketingDeliveryProduct{ + Id: 1, + MarketingProductId: 42, + UsageQty: 15, + PendingQty: 5, + } + + got := ToMarketingDeliveryProductDTO(input) + + if got.Qty != 20 { + t.Fatalf("expected qty to include pending quantity, got %.2f", got.Qty) + } +} diff --git a/internal/modules/marketing/services/deliveryorder.service.go b/internal/modules/marketing/services/deliveryorder.service.go index b49b14ef..ec57bd73 100644 --- a/internal/modules/marketing/services/deliveryorder.service.go +++ b/internal/modules/marketing/services/deliveryorder.service.go @@ -1293,7 +1293,7 @@ func (s deliveryOrdersService) resolveMarketingRequestedUsageQty(ctx context.Con var usageQty float64 if err := tx.WithContext(ctx). Table("marketing_delivery_products"). - Select("usage_qty"). + Select("usage_qty + pending_qty"). Where("id = ?", deliveryProductID). Scan(&usageQty).Error; err != nil { return 0