mirror of
https://gitlab.com/mbugroup/lti-api.git
synced 2026-05-23 23:05:44 +00:00
feat[BE]: integrate kandang repository into expense bridge for enhanced expense management
This commit is contained in:
@@ -12,6 +12,7 @@ import (
|
|||||||
expenseRepo "gitlab.com/mbugroup/lti-api.git/internal/modules/expenses/repositories"
|
expenseRepo "gitlab.com/mbugroup/lti-api.git/internal/modules/expenses/repositories"
|
||||||
expenseService "gitlab.com/mbugroup/lti-api.git/internal/modules/expenses/services"
|
expenseService "gitlab.com/mbugroup/lti-api.git/internal/modules/expenses/services"
|
||||||
rProductWarehouse "gitlab.com/mbugroup/lti-api.git/internal/modules/inventory/product-warehouses/repositories"
|
rProductWarehouse "gitlab.com/mbugroup/lti-api.git/internal/modules/inventory/product-warehouses/repositories"
|
||||||
|
rKandang "gitlab.com/mbugroup/lti-api.git/internal/modules/master/kandangs/repositories"
|
||||||
rNonstock "gitlab.com/mbugroup/lti-api.git/internal/modules/master/nonstocks/repositories"
|
rNonstock "gitlab.com/mbugroup/lti-api.git/internal/modules/master/nonstocks/repositories"
|
||||||
rProduct "gitlab.com/mbugroup/lti-api.git/internal/modules/master/products/repositories"
|
rProduct "gitlab.com/mbugroup/lti-api.git/internal/modules/master/products/repositories"
|
||||||
rSupplier "gitlab.com/mbugroup/lti-api.git/internal/modules/master/suppliers/repositories"
|
rSupplier "gitlab.com/mbugroup/lti-api.git/internal/modules/master/suppliers/repositories"
|
||||||
@@ -35,6 +36,7 @@ func (PurchaseModule) RegisterRoutes(router fiber.Router, db *gorm.DB, validate
|
|||||||
supplierRepo := rSupplier.NewSupplierRepository(db)
|
supplierRepo := rSupplier.NewSupplierRepository(db)
|
||||||
productWarehouseRepo := rProductWarehouse.NewProductWarehouseRepository(db)
|
productWarehouseRepo := rProductWarehouse.NewProductWarehouseRepository(db)
|
||||||
nonstockRepo := rNonstock.NewNonstockRepository(db)
|
nonstockRepo := rNonstock.NewNonstockRepository(db)
|
||||||
|
kandangRepo := rKandang.NewKandangRepository(db)
|
||||||
expenseRepository := expenseRepo.NewExpenseRepository(db)
|
expenseRepository := expenseRepo.NewExpenseRepository(db)
|
||||||
expenseRealizationRepo := expenseRepo.NewExpenseRealizationRepository(db)
|
expenseRealizationRepo := expenseRepo.NewExpenseRealizationRepository(db)
|
||||||
projectFlockKandangRepository := projectFlockKandangRepo.NewProjectFlockKandangRepository(db)
|
projectFlockKandangRepository := projectFlockKandangRepo.NewProjectFlockKandangRepository(db)
|
||||||
@@ -67,6 +69,7 @@ func (PurchaseModule) RegisterRoutes(router fiber.Router, db *gorm.DB, validate
|
|||||||
db,
|
db,
|
||||||
purchaseRepo,
|
purchaseRepo,
|
||||||
projectFlockKandangRepository,
|
projectFlockKandangRepository,
|
||||||
|
kandangRepo,
|
||||||
expenseServiceInstance,
|
expenseServiceInstance,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ import (
|
|||||||
expenseDto "gitlab.com/mbugroup/lti-api.git/internal/modules/expenses/dto"
|
expenseDto "gitlab.com/mbugroup/lti-api.git/internal/modules/expenses/dto"
|
||||||
expenseSvc "gitlab.com/mbugroup/lti-api.git/internal/modules/expenses/services"
|
expenseSvc "gitlab.com/mbugroup/lti-api.git/internal/modules/expenses/services"
|
||||||
expenseValidation "gitlab.com/mbugroup/lti-api.git/internal/modules/expenses/validations"
|
expenseValidation "gitlab.com/mbugroup/lti-api.git/internal/modules/expenses/validations"
|
||||||
|
kandangRepo "gitlab.com/mbugroup/lti-api.git/internal/modules/master/kandangs/repositories"
|
||||||
projectFlockKandangRepo "gitlab.com/mbugroup/lti-api.git/internal/modules/production/project_flocks/repositories"
|
projectFlockKandangRepo "gitlab.com/mbugroup/lti-api.git/internal/modules/production/project_flocks/repositories"
|
||||||
rPurchase "gitlab.com/mbugroup/lti-api.git/internal/modules/purchases/repositories"
|
rPurchase "gitlab.com/mbugroup/lti-api.git/internal/modules/purchases/repositories"
|
||||||
"gitlab.com/mbugroup/lti-api.git/internal/utils"
|
"gitlab.com/mbugroup/lti-api.git/internal/utils"
|
||||||
@@ -53,6 +54,7 @@ type expenseBridge struct {
|
|||||||
db *gorm.DB
|
db *gorm.DB
|
||||||
purchaseRepo rPurchase.PurchaseRepository
|
purchaseRepo rPurchase.PurchaseRepository
|
||||||
projectFlockKandangRepo projectFlockKandangRepo.ProjectFlockKandangRepository
|
projectFlockKandangRepo projectFlockKandangRepo.ProjectFlockKandangRepository
|
||||||
|
kandangRepo kandangRepo.KandangRepository
|
||||||
expenseSvc expenseSvc.ExpenseService
|
expenseSvc expenseSvc.ExpenseService
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -60,12 +62,14 @@ func NewExpenseBridge(
|
|||||||
db *gorm.DB,
|
db *gorm.DB,
|
||||||
purchaseRepo rPurchase.PurchaseRepository,
|
purchaseRepo rPurchase.PurchaseRepository,
|
||||||
projectFlockKandangRepo projectFlockKandangRepo.ProjectFlockKandangRepository,
|
projectFlockKandangRepo projectFlockKandangRepo.ProjectFlockKandangRepository,
|
||||||
|
kandangRepo kandangRepo.KandangRepository,
|
||||||
expenseSvc expenseSvc.ExpenseService,
|
expenseSvc expenseSvc.ExpenseService,
|
||||||
) PurchaseExpenseBridge {
|
) PurchaseExpenseBridge {
|
||||||
return &expenseBridge{
|
return &expenseBridge{
|
||||||
db: db,
|
db: db,
|
||||||
purchaseRepo: purchaseRepo,
|
purchaseRepo: purchaseRepo,
|
||||||
projectFlockKandangRepo: projectFlockKandangRepo,
|
projectFlockKandangRepo: projectFlockKandangRepo,
|
||||||
|
kandangRepo: kandangRepo,
|
||||||
expenseSvc: expenseSvc,
|
expenseSvc: expenseSvc,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -550,6 +554,16 @@ func (b *expenseBridge) createExpenseViaService(
|
|||||||
return nil, fiber.NewError(fiber.StatusBadRequest, "Warehouse not connect to kandangs")
|
return nil, fiber.NewError(fiber.StatusBadRequest, "Warehouse not connect to kandangs")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
kandang, err := b.kandangRepo.GetByID(ctx, *kandangID, func(db *gorm.DB) *gorm.DB {
|
||||||
|
return db.Select("id, location_id")
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
return nil, fiber.NewError(fiber.StatusNotFound, fmt.Sprintf("Kandang not found: %d", *kandangID))
|
||||||
|
}
|
||||||
|
if kandang == nil {
|
||||||
|
return nil, fiber.NewError(fiber.StatusNotFound, fmt.Sprintf("Kandang not found: %d", *kandangID))
|
||||||
|
}
|
||||||
|
|
||||||
costItems := make([]expenseValidation.CostItem, 0, len(items))
|
costItems := make([]expenseValidation.CostItem, 0, len(items))
|
||||||
for _, gi := range items {
|
for _, gi := range items {
|
||||||
note := fmt.Sprintf("purchase_item:%d", gi.payload.PurchaseItemID)
|
note := fmt.Sprintf("purchase_item:%d", gi.payload.PurchaseItemID)
|
||||||
@@ -570,6 +584,7 @@ func (b *expenseBridge) createExpenseViaService(
|
|||||||
TransactionDate: utils.FormatDate(expenseDate),
|
TransactionDate: utils.FormatDate(expenseDate),
|
||||||
Category: "BOP",
|
Category: "BOP",
|
||||||
SupplierID: uint64(supplierID),
|
SupplierID: uint64(supplierID),
|
||||||
|
LocationID: uint64(kandang.LocationId),
|
||||||
ExpenseNonstocks: []expenseValidation.ExpenseNonstock{{
|
ExpenseNonstocks: []expenseValidation.ExpenseNonstock{{
|
||||||
KandangID: func() *uint64 { id := uint64(*kandangID); return &id }(),
|
KandangID: func() *uint64 { id := uint64(*kandangID); return &id }(),
|
||||||
CostItems: costItems,
|
CostItems: costItems,
|
||||||
|
|||||||
Reference in New Issue
Block a user