mirror of
https://gitlab.com/mbugroup/lti-api.git
synced 2026-05-25 07:45:44 +00:00
[FEAT/BE] fix response closing and fix status rejected filter
This commit is contained in:
@@ -152,6 +152,31 @@ func (s *salesOrdersService) CreateOne(c *fiber.Ctx, req *validation.Create) (*e
|
||||
}
|
||||
}
|
||||
|
||||
requestedByWarehouse := make(map[uint]float64)
|
||||
for _, item := range req.MarketingProducts {
|
||||
if item.ProductWarehouseId == 0 {
|
||||
continue
|
||||
}
|
||||
requestedByWarehouse[item.ProductWarehouseId] += item.Qty
|
||||
}
|
||||
|
||||
for pwID, requestedQty := range requestedByWarehouse {
|
||||
productWarehouse, err := s.ProductWarehouseRepo.GetDetailByID(c.Context(), pwID)
|
||||
if err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
return nil, fiber.NewError(fiber.StatusNotFound, fmt.Sprintf("Product warehouse %d not found", pwID))
|
||||
}
|
||||
return nil, fiber.NewError(fiber.StatusInternalServerError, "Failed to check stock availability")
|
||||
}
|
||||
availableQty := productWarehouse.Quantity
|
||||
if availableQty+1e-6 < requestedQty {
|
||||
return nil, fiber.NewError(
|
||||
fiber.StatusBadRequest,
|
||||
fmt.Sprintf("Stok tidak mencukupi untuk gudang %d: diminta %.3f, tersedia %.3f", pwID, requestedQty, availableQty),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
soDate, err := utils.ParseDateString(req.Date)
|
||||
if err != nil {
|
||||
return nil, fiber.NewError(fiber.StatusBadRequest, "Invalid date format")
|
||||
|
||||
Reference in New Issue
Block a user