| | |
| | | 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 |
| | | } |
| | |
| | | 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()) |
| | |
| | | } |
| | | //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, |
| | |
| | | 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 { |