yinbentan
2024-07-06 b243875e653a35649dc7090203d640cba9b814fd
service/operation.go
@@ -261,7 +261,7 @@
      }
   }
   if len(internalInputDetails) > 0 {
      opTypeId, err := GetTargetOperationTypeIdByOperation(originOperation, constvar.BaseOperationTypeIncoming)
      opTypeId, err := GetTargetOperationTypeIdByWarehouseId(originOperation.ToLocation.WarehouseId, constvar.BaseOperationTypeIncoming)
      if err != nil {
         return err
      }
@@ -273,8 +273,10 @@
         Comment:           "库存调拨入库",
         BaseOperationType: constvar.BaseOperationTypeIncoming,
         Details:           internalInputDetails,
         LocationID:        internalInputDetails[0].ToLocationID,
         LocationID:        originOperation.LocationID,
         ToLocationID:      originOperation.ToLocationID,
         OperationTypeName: "库存调拨入库",
         WarehouseId:       originOperation.ToLocation.WarehouseId,
      }
      if err := models.NewOperationSearch().SetOrm(tx).Create(operation); err != nil {
         return err
@@ -316,9 +318,11 @@
         Comment:           "库存调拨出库",
         BaseOperationType: constvar.BaseOperationTypeOutgoing,
         Details:           outputDetails,
         LocationID:        outputDetails[0].FromLocationID,
         LocationID:        originOperation.LocationID,
         ToLocationID:      originOperation.ToLocationID,
         OperationTypeName: "库存调拨出库",
         IsInternalOutput:  true,
         WarehouseId:       originOperation.WarehouseId,
      }
      if err := models.NewOperationSearch().SetOrm(tx).Create(operation); err != nil {
         return err
@@ -342,8 +346,8 @@
            inputDetails = append(inputDetails, &models.OperationDetails{
               ProductId:        v.ProductId,
               Amount:           v.Amount.Sub(v.StockAmount),
               FromLocationID:   v.FromLocationID,
               ToLocationID:     v.ToLocationID,
               FromLocationID:   0,
               ToLocationID:     v.FromLocationID,
               TotalGrossWeight: v.TotalGrossWeight,
               TotalNetWeight:   v.TotalNetWeight,
               AuxiliaryAmount:  v.AuxiliaryAmount,
@@ -356,8 +360,8 @@
            outputDetails = append(outputDetails, &models.OperationDetails{
               ProductId:        v.ProductId,
               Amount:           v.StockAmount.Sub(v.Amount),
               FromLocationID:   v.ToLocationID,
               ToLocationID:     v.FromLocationID,
               FromLocationID:   v.FromLocationID,
               ToLocationID:     0,
               TotalGrossWeight: v.TotalGrossWeight,
               TotalNetWeight:   v.TotalNetWeight,
               AuxiliaryAmount:  v.AuxiliaryAmount,
@@ -430,3 +434,14 @@
   }
   return targetOT.Id, nil
}
func GetTargetOperationTypeIdByWarehouseId(warehouseId int, baseOT constvar.BaseOperationType) (operationTypeId int, err error) {
   if warehouseId == 0 {
      return 0, errors.New("warehouseId miss")
   }
   targetOT, err := models.NewOperationTypeSearch().SetBaseOperationType(baseOT).SetWarehouseId(warehouseId).First()
   if err != nil {
      return 0, err
   }
   return targetOT.Id, nil
}