Merge branch 'feat/BE/US-284/Report-counting-sapronak' into 'feat/BE/Sprint-6'

Feat/be/us 284/report counting sapronak

See merge request mbugroup/lti-api!94
This commit is contained in:
Hafizh A. Y.
2025-12-16 04:15:43 +00:00
16 changed files with 1459 additions and 38 deletions
@@ -27,7 +27,7 @@ type ProductWarehouseRepository interface {
GetDetailByID(ctx context.Context, id uint) (*entity.ProductWarehouse, error)
IdExists(ctx context.Context, id uint) (bool, error)
CleanupEmpty(ctx context.Context, affected map[uint]struct{}) error
EnsureProductWarehouse(ctx context.Context, productID, warehouseID uint, createdBy uint) (uint, error)
EnsureProductWarehouse(ctx context.Context, productID, warehouseID uint, projectFlockKandangID *uint, createdBy uint) (uint, error)
}
type ProductWarehouseRepositoryImpl struct {
@@ -199,10 +199,21 @@ func (r *ProductWarehouseRepositoryImpl) EnsureProductWarehouse(
ctx context.Context,
productID uint,
warehouseID uint,
projectFlockKandangID *uint,
createdBy uint,
) (uint, error) {
record, err := r.GetProductWarehouseByProductAndWarehouseID(ctx, productID, warehouseID)
if err == nil {
// Backfill project_flock_kandang_id when it's missing and caller provides one.
if projectFlockKandangID != nil && (record.ProjectFlockKandangId == nil || *record.ProjectFlockKandangId == 0) {
if err := r.DB().WithContext(ctx).
Model(&entity.ProductWarehouse{}).
Where("id = ?", record.Id).
Update("project_flock_kandang_id", *projectFlockKandangID).Error; err != nil {
return 0, err
}
record.ProjectFlockKandangId = projectFlockKandangID
}
return record.Id, nil
}
if !errors.Is(err, gorm.ErrRecordNotFound) {
@@ -210,9 +221,10 @@ func (r *ProductWarehouseRepositoryImpl) EnsureProductWarehouse(
}
entity := &entity.ProductWarehouse{
ProductId: productID,
WarehouseId: warehouseID,
Quantity: 0,
ProductId: productID,
WarehouseId: warehouseID,
ProjectFlockKandangId: projectFlockKandangID,
Quantity: 0,
// CreatedBy: uint(createdBy),
}
// if entity.CreatedBy == 0 {