package service
|
|
import (
|
"gorm.io/gorm"
|
"wms/models"
|
)
|
|
func AddMoveHistory(operationList []*models.Operation, db *gorm.DB) error {
|
var histories []*models.MoveHistory
|
operationMap := make(map[int]*models.Operation, len(operationList))
|
for _, operation := range operationList {
|
for _, v := range operation.Details {
|
history := &models.MoveHistory{
|
Number: operation.Number,
|
BaseOperationType: operation.BaseOperationType,
|
OperationTypeId: operation.OperationTypeId,
|
OperationTypeName: operation.OperationTypeName,
|
OperationId: operation.Id,
|
ProductId: v.ProductId,
|
ProductName: v.Product.Name,
|
Amount: v.Amount,
|
Unit: v.Product.Unit,
|
Weight: operation.Weight,
|
FromLocationId: v.FromLocationID,
|
FromLocation: v.FromLocation.Name,
|
ToLocationId: v.ToLocationID,
|
ToLocation: v.ToLocation.Name,
|
}
|
histories = append(histories, history)
|
}
|
operationMap[operation.Id] = operation
|
}
|
if err := db.Model(&models.MoveHistory{}).Create(&histories).Error; err != nil {
|
return err
|
}
|
for _, history := range histories {
|
AddNewHistoryReportRecord(history, operationMap[history.OperationId])
|
}
|
return nil
|
}
|