liujiandao
2024-01-03 3f5aa5f14c56e55a05902c7e3b9b112eb23ee80d
service/purchase/purchase.go
@@ -175,7 +175,7 @@
//@param: id uint
//@return: err error
func (slf *PurchaseService) Submit(id int, status purchase.OrderStatus) (err error) {
func (slf *PurchaseService) Submit(id int, status purchase.OrderStatus, warehouse string) (err error) {
   //purchaseData, err := slf.GetPurchase(id)
   //if err != nil {
@@ -191,7 +191,12 @@
   //   targetStatus = purchase.OrderStatusCompleted
   //}
   err = global.GVA_DB.Transaction(func(tx *gorm.DB) error {
      err = tx.Where("id = ?", id).Model(&purchase.Purchase{}).Updates(map[string]interface{}{"status": status}).Error
      m := make(map[string]interface{})
      m["status"] = status
      if warehouse != "" {
         m["warehouse"] = warehouse
      }
      err = tx.Where("id = ?", id).Model(&purchase.Purchase{}).Updates(m).Error
      if err != nil {
         return err
      }
@@ -253,33 +258,21 @@
func (slf *PurchaseService) SavePurchaseType(list []*purchase.PurchaseType) (err error) {
   ids := make([]uint, 0)
   newRecords := make([]*purchase.PurchaseType, 0)
   for _, item := range list {
      if item.ID != 0 {
         ids = append(ids, item.ID)
      } else {
         newRecords = append(newRecords, item)
         item.ID = 0
      }
   }
   err = global.GVA_DB.Transaction(func(tx *gorm.DB) error {
      err = tx.Where("id not in ?", ids).Delete(&purchase.PurchaseType{}).Error
      err = tx.Where("id in (?)", ids).Delete(&purchase.PurchaseType{}).Error
      if err != nil {
         return err
      }
      if len(newRecords) > 0 {
         err = tx.Create(newRecords).Error
         if err != nil {
            return err
         }
      }
      for _, item := range list {
         if item.ID != 0 {
            err = tx.Where("id = ?", item.ID).Updates(item).Error
            if err != nil {
               return err
            }
         }
      err = tx.Create(list).Error
      if err != nil {
         return err
      }
      return nil
   })
@@ -292,3 +285,9 @@
   err = db.Order("pin desc, sort desc, id asc").Find(&list).Error
   return list, err
}
func (slf *PurchaseService) MaxAutoIncr() (int, error) {
   var total int64
   err := global.GVA_DB.Model(&purchase.Purchase{}).Count(&total).Error
   return int(total), err
}