jiangshuai
2023-09-28 f1cf23864cf5fddfb307ffcadf9f2e4b33b5f8ae
1.bug修改
2个文件已修改
41 ■■■■■ 已修改文件
controllers/location_product_amount.go 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/location_product_amount.go 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/location_product_amount.go
@@ -71,7 +71,7 @@
    if params.Page*params.PageSize > 0 {
        search.Orm = search.Orm.Offset((params.Page - 1) * params.PageSize).Limit(params.PageSize)
    }
    if err := search.Orm.Find(&records).Error; err != nil {
    if err := search.Orm.Order("wms_operation.created_at desc").Find(&records).Error; err != nil {
        util.ResponseFormat(c, code.RequestError, fmt.Errorf("find count err: %v", err))
        return
    }
@@ -124,6 +124,11 @@
        util.ResponseFormat(c, code.RequestError, "不存在该上架规则,无法进行库存盘点")
        return
    }
    existAmount, err := models.NewLocationProductAmountSearch().SetLocationProductId(locProduct.Id).First()
    if err != nil {
        util.ResponseFormat(c, code.RequestError, err.Error())
        return
    }
    location, err := models.NewLocationSearch().SetType(int(constvar.LocationTypeAdjust)).First()
    if err != nil {
        util.ResponseFormat(c, code.RequestParamError, err.Error())
@@ -131,11 +136,15 @@
    }
    //reqParams.AdjustAmount = reqParams.Amount.Sub(reqParams.DifferenceAmount)
    reqParams.AdjustAmount = reqParams.DifferenceAmount.Sub(reqParams.Amount)
    locAmount := models.LocationProductAmount{
        LocationProductId: locProduct.Id,
        Amount:            decimal.NewFromInt(0),
        CreateDate:        time.Now().Format("2006-01-02 15:04:05"),
    var locAmount models.LocationProductAmount
    if existAmount.Id == 0 {
        locAmount = models.LocationProductAmount{
            LocationProductId: locProduct.Id,
            Amount:            decimal.NewFromInt(0),
            CreateDate:        time.Now().Format("2006-01-02 15:04:05"),
        }
    }
    detail := &models.OperationDetails{
        ProductId: reqParams.ProductId,
        Amount:    reqParams.AdjustAmount,
@@ -151,20 +160,14 @@
        ToLocationID:      reqParams.LocationId,
    }
    //if reqParams.AdjustAmount.GreaterThanOrEqual(decimal.NewFromInt(0)) {
    //    operation.FromLocationID = Location.Id
    //    operation.ToLocationID = reqParams.LocationId
    //} else {
    //    operation.FromLocationID = reqParams.LocationId
    //    operation.ToLocationID = Location.Id
    //}
    if err := models.WithTransaction(func(tx *gorm.DB) error {
        if err := models.NewOperationSearch().SetOrm(tx).Create(&operation); err != nil {
            return err
        }
        if err := models.NewLocationProductAmountSearch().SetOrm(tx).Create(&locAmount); err != nil {
            return err
        if existAmount.Id == 0 {
            if err := models.NewLocationProductAmountSearch().SetOrm(tx).Create(&locAmount); err != nil {
                return err
            }
        }
        return nil
    }); err != nil {
models/location_product_amount.go
@@ -83,6 +83,11 @@
    return slf
}
func (slf *LocationProductAmountSearch) SetLocationProductId(id int) *LocationProductAmountSearch {
    slf.LocationProductId = id
    return slf
}
func (slf *LocationProductAmountSearch) build() *gorm.DB {
    var db = slf.Orm.Model(&LocationProductAmount{})
@@ -100,6 +105,9 @@
    if slf.Preload {
        db = db.Model(&LocationProductAmount{}).Preload("LocationProduct").Preload("LocationProduct.Location").Preload("LocationProduct.Product")
    }
    if slf.LocationProductId != 0 {
        db = db.Where("location_product_id=?", slf.LocationProductId)
    }
    return db
}