fix(BE): remove supplier price in master nonstock

This commit is contained in:
Hafizh A. Y
2026-01-15 15:49:15 +07:00
parent 2a884a8d09
commit fe002c9602
8 changed files with 38 additions and 54 deletions
@@ -115,19 +115,18 @@ func (s *nonstockService) CreateOne(c *fiber.Ctx, req *validation.Create) (*enti
supplierLinks []entity.NonstockSupplier
supplierIDs []uint
)
if len(req.Suppliers) > 0 {
seen := make(map[uint]struct{}, len(req.Suppliers))
supplierLinks = make([]entity.NonstockSupplier, 0, len(req.Suppliers))
supplierIDs = make([]uint, 0, len(req.Suppliers))
for _, supplier := range req.Suppliers {
if _, exists := seen[supplier.SupplierID]; exists {
return nil, fiber.NewError(fiber.StatusBadRequest, fmt.Sprintf("Duplicate supplier_id %d", supplier.SupplierID))
if len(req.SupplierIDs) > 0 {
seen := make(map[uint]struct{}, len(req.SupplierIDs))
supplierLinks = make([]entity.NonstockSupplier, 0, len(req.SupplierIDs))
supplierIDs = make([]uint, 0, len(req.SupplierIDs))
for _, supplierID := range req.SupplierIDs {
if _, exists := seen[supplierID]; exists {
return nil, fiber.NewError(fiber.StatusBadRequest, fmt.Sprintf("Duplicate supplier_id %d", supplierID))
}
seen[supplier.SupplierID] = struct{}{}
supplierIDs = append(supplierIDs, supplier.SupplierID)
seen[supplierID] = struct{}{}
supplierIDs = append(supplierIDs, supplierID)
supplierLinks = append(supplierLinks, entity.NonstockSupplier{
SupplierId: supplier.SupplierID,
Price: supplier.Price,
SupplierId: supplierID,
})
}
supplierList, supplierErr := s.Repository.GetSuppliersByIDs(ctx, supplierIDs)
@@ -212,21 +211,20 @@ func (s nonstockService) UpdateOne(c *fiber.Ctx, req *validation.Update, id uint
var supplierLinks []entity.NonstockSupplier
var supplierUpdate bool
if req.Suppliers != nil {
if req.SupplierIDs != nil {
supplierUpdate = true
if len(*req.Suppliers) > 0 {
seen := make(map[uint]struct{}, len(*req.Suppliers))
supplierLinks = make([]entity.NonstockSupplier, 0, len(*req.Suppliers))
supplierIDs := make([]uint, 0, len(*req.Suppliers))
for _, supplier := range *req.Suppliers {
if _, exists := seen[supplier.SupplierID]; exists {
return nil, fiber.NewError(fiber.StatusBadRequest, fmt.Sprintf("Duplicate supplier_id %d", supplier.SupplierID))
if len(*req.SupplierIDs) > 0 {
seen := make(map[uint]struct{}, len(*req.SupplierIDs))
supplierLinks = make([]entity.NonstockSupplier, 0, len(*req.SupplierIDs))
supplierIDs := make([]uint, 0, len(*req.SupplierIDs))
for _, supplierID := range *req.SupplierIDs {
if _, exists := seen[supplierID]; exists {
return nil, fiber.NewError(fiber.StatusBadRequest, fmt.Sprintf("Duplicate supplier_id %d", supplierID))
}
seen[supplier.SupplierID] = struct{}{}
supplierIDs = append(supplierIDs, supplier.SupplierID)
seen[supplierID] = struct{}{}
supplierIDs = append(supplierIDs, supplierID)
supplierLinks = append(supplierLinks, entity.NonstockSupplier{
SupplierId: supplier.SupplierID,
Price: supplier.Price,
SupplierId: supplierID,
})
}