refactor and add outlet product table

This commit is contained in:
2026-05-13 21:58:54 +07:00
parent fa037b4d2a
commit 4130cb66df
19 changed files with 835 additions and 42 deletions
+15
View File
@@ -108,6 +108,7 @@ type OrderProcessorImpl struct {
productRecipeRepo *repository.ProductRecipeRepository
ingredientRepo IngredientRepository
inventoryMovementService InventoryMovementService
productOutletPriceRepo repository.ProductOutletPriceRepository
}
func NewOrderProcessorImpl(
@@ -126,6 +127,7 @@ func NewOrderProcessorImpl(
productRecipeRepo *repository.ProductRecipeRepository,
ingredientRepo IngredientRepository,
inventoryMovementService InventoryMovementService,
productOutletPriceRepo repository.ProductOutletPriceRepository,
) *OrderProcessorImpl {
return &OrderProcessorImpl{
orderRepo: orderRepo,
@@ -144,6 +146,7 @@ func NewOrderProcessorImpl(
productRecipeRepo: productRecipeRepo,
ingredientRepo: ingredientRepo,
inventoryMovementService: inventoryMovementService,
productOutletPriceRepo: productOutletPriceRepo,
}
}
@@ -170,6 +173,12 @@ func (p *OrderProcessorImpl) CreateOrder(ctx context.Context, req *models.Create
unitPrice := product.Price
unitCost := product.Cost
if p.productOutletPriceRepo != nil {
if outletPrice, err := p.productOutletPriceRepo.GetByProductAndOutlet(ctx, itemReq.ProductID, req.OutletID); err == nil {
unitPrice = outletPrice.Price
}
}
if itemReq.ProductVariantID != nil {
variant, err := p.productVariantRepo.GetByID(ctx, *itemReq.ProductVariantID)
if err != nil {
@@ -293,6 +302,12 @@ func (p *OrderProcessorImpl) AddToOrder(ctx context.Context, orderID uuid.UUID,
unitPrice := product.Price
unitCost := product.Cost
if p.productOutletPriceRepo != nil {
if outletPrice, err := p.productOutletPriceRepo.GetByProductAndOutlet(ctx, itemReq.ProductID, order.OutletID); err == nil {
unitPrice = outletPrice.Price
}
}
// Handle product variant if specified
if itemReq.ProductVariantID != nil {
variant, err := p.productVariantRepo.GetByID(ctx, *itemReq.ProductVariantID)