codex/fix: purchase receivement error and recording doesn't show depletion/egg

This commit is contained in:
Adnan Zahir
2026-04-01 11:03:35 +07:00
parent be00837148
commit 030284a9b5
5 changed files with 308 additions and 6 deletions
@@ -143,6 +143,17 @@ func (r *PurchaseRepositoryImpl) CreateItems(ctx context.Context, purchaseID uin
return r.DB().WithContext(ctx).Create(&items).Error
}
func (r *PurchaseRepositoryImpl) purchaseItemExists(ctx context.Context, purchaseID uint, itemID uint) (bool, error) {
var count int64
if err := r.DB().WithContext(ctx).
Model(&entity.PurchaseItem{}).
Where("purchase_id = ? AND id = ?", purchaseID, itemID).
Count(&count).Error; err != nil {
return false, err
}
return count > 0, nil
}
type PurchasePricingUpdate struct {
ItemID uint
ProductID *uint
@@ -197,7 +208,13 @@ func (r *PurchaseRepositoryImpl) UpdatePricing(
return result.Error
}
if result.RowsAffected == 0 {
return gorm.ErrRecordNotFound
exists, err := r.purchaseItemExists(ctx, purchaseID, upd.ItemID)
if err != nil {
return err
}
if !exists {
return gorm.ErrRecordNotFound
}
}
}
@@ -251,7 +268,13 @@ func (r *PurchaseRepositoryImpl) UpdateReceivingDetails(
return result.Error
}
if result.RowsAffected == 0 {
return gorm.ErrRecordNotFound
exists, err := r.purchaseItemExists(ctx, purchaseID, upd.ItemID)
if err != nil {
return err
}
if !exists {
return gorm.ErrRecordNotFound
}
}
}