mirror of
https://gitlab.com/mbugroup/lti-api.git
synced 2026-05-25 07:45:44 +00:00
feat(BE-287):adjustment purchase restrict unfinished
This commit is contained in:
@@ -310,9 +310,6 @@ func (b *expenseBridge) OnItemsReceived(c *fiber.Ctx, purchaseID uint, updates [
|
||||
return err
|
||||
}
|
||||
if cnt == 1 {
|
||||
if item.Warehouse == nil || item.Warehouse.KandangId == nil || *item.Warehouse.KandangId == 0 {
|
||||
return fiber.NewError(fiber.StatusBadRequest, "Warehouse not connect to kandangs")
|
||||
}
|
||||
newNonstockID, err := b.findExpeditionNonstockID(ctx, supplierID)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -332,7 +329,9 @@ func (b *expenseBridge) OnItemsReceived(c *fiber.Ctx, purchaseID uint, updates [
|
||||
"price": pricePerItem,
|
||||
"notes": note,
|
||||
"nonstock_id": newNonstockID,
|
||||
"kandang_id": uint64(*item.Warehouse.KandangId),
|
||||
}
|
||||
if item.Warehouse != nil && item.Warehouse.KandangId != nil && *item.Warehouse.KandangId != 0 {
|
||||
updateBody["kandang_id"] = uint64(*item.Warehouse.KandangId)
|
||||
}
|
||||
if err := b.db.WithContext(ctx).
|
||||
Model(&entity.ExpenseNonstock{}).
|
||||
@@ -550,18 +549,27 @@ func (b *expenseBridge) createExpenseViaService(
|
||||
}
|
||||
|
||||
kandangID := items[0].kandangID
|
||||
if kandangID == nil || *kandangID == 0 {
|
||||
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))
|
||||
var locationID uint64
|
||||
var expenseKandangID *uint64
|
||||
if kandangID != nil && *kandangID != 0 {
|
||||
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))
|
||||
}
|
||||
locationID = uint64(kandang.LocationId)
|
||||
id := uint64(*kandangID)
|
||||
expenseKandangID = &id
|
||||
} else {
|
||||
warehouse := items[0].item.Warehouse
|
||||
if warehouse == nil || warehouse.LocationId == nil || *warehouse.LocationId == 0 {
|
||||
return nil, fiber.NewError(fiber.StatusBadRequest, "Warehouse location is required for expense")
|
||||
}
|
||||
locationID = uint64(*warehouse.LocationId)
|
||||
}
|
||||
|
||||
costItems := make([]expenseValidation.CostItem, 0, len(items))
|
||||
@@ -584,9 +592,9 @@ func (b *expenseBridge) createExpenseViaService(
|
||||
TransactionDate: utils.FormatDate(expenseDate),
|
||||
Category: "BOP",
|
||||
SupplierID: uint64(supplierID),
|
||||
LocationID: uint64(kandang.LocationId),
|
||||
LocationID: locationID,
|
||||
ExpenseNonstocks: []expenseValidation.ExpenseNonstock{{
|
||||
KandangID: func() *uint64 { id := uint64(*kandangID); return &id }(),
|
||||
KandangID: expenseKandangID,
|
||||
CostItems: costItems,
|
||||
}},
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user