概述->新建或编辑(出库/入库)信息,产品的Cost成本单价和SalePrice销售单价的值不会更新的BUG
3个文件已修改
40 ■■■■■ 已修改文件
controllers/operation.go 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
models/operation_details.go 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/material.go 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/operation.go
@@ -47,6 +47,7 @@
func (slf OperationController) Add(c *gin.Context) {
    var reqParams request.AddOperation
    var params models.Operation
    if err := c.BindJSON(&reqParams); err != nil {
        util.ResponseFormat(c, code.RequestParamError, "参数解析失败,数据类型错误")
        return
@@ -90,8 +91,26 @@
        util.ResponseFormat(c, code.RequestParamError, "单号已存在")
        return
    }
    err = models.WithTransaction(func(db *gorm.DB) error {
        if err := models.NewOperationSearch().Create(&params); err != nil {
            return err
        }
        od := params.Details
        for _, v := range od {
            material, err := models.NewMaterialSearch().SetID(v.ProductId).First()
            if err != nil {
                return err
            }
            material.Cost = v.Cost
            material.SalePrice = v.SalePrice
            if err := models.NewMaterialSearch().SetOrm(db).Update(material); err != nil {
                return err
            }
        }
        return nil
    })
    if err := models.NewOperationSearch().Create(&params); err != nil {
    if err != nil {
        logx.Errorf("Operation create err: %v", err)
        util.ResponseFormat(c, code.SaveFail, "添加失败:"+err.Error())
        return
@@ -314,6 +333,18 @@
        if err := models.NewOperationSearch().SetOrm(tx).SetID(params.Id).Save(&params); err != nil {
            return err
        }
        od := params.Details
        for _, v := range od {
            material, err := models.NewMaterialSearch().SetID(v.ProductId).First()
            if err != nil {
                return err
            }
            material.Cost = v.Cost
            material.SalePrice = v.SalePrice
            if err := models.NewMaterialSearch().SetOrm(tx).Update(material); err != nil {
                return err
            }
        }
        return nil
    }); err != nil {
        util.ResponseFormat(c, code.RequestParamError, "修改失败:"+err.Error())
models/operation_details.go
@@ -29,6 +29,9 @@
        AuxiliaryUnit    string          `json:"auxiliaryUnit" gorm:"type:varchar(191);comment:辅助单位"`
        Remark           string          `gorm:"type:varchar(1024);comment:备注" json:"remark"`
        IsInternalOutput bool            `json:"isInternalOutput"` //是否调拨产生的出库
        Cost      decimal.Decimal `json:"cost"`      //成本单价
        SalePrice decimal.Decimal `json:"salePrice"` //销售单价
    }
    OperationDetailsSearch struct {
service/material.go
@@ -183,10 +183,10 @@
    }
    err = models.WithTransaction(func(db *gorm.DB) error {
        if err := models.NewMaterialSearch().CreateBatch(materialList); err != nil {
        if err := models.NewMaterialSearch().SetOrm(db).CreateBatch(materialList); err != nil {
            return err
        }
        if err := models.NewAttributeValueSearch().CreateBatch(attributeValueList); err != nil {
        if err := models.NewAttributeValueSearch().SetOrm(db).CreateBatch(attributeValueList); err != nil {
            return err
        }
        return nil