| | |
| | | var purchaseRecord purchase.Purchase |
| | | purchaseRecord.PurchaseTypeId = int(pt.ID) |
| | | purchaseRecord.SupplierId = int(req.SupplierId) |
| | | purchaseRecord.OrderSource = "WMS推送" |
| | | purchaseRecord.Name = "WMS补货" |
| | | if req.Source == "WMS" { |
| | | purchaseRecord.OrderSource = "WMS推送" |
| | | purchaseRecord.Name = "WMS补货" |
| | | } else if req.Source == "APS" { |
| | | purchaseRecord.OrderSource = "APS推送" |
| | | purchaseRecord.Name = "APS采购" |
| | | } |
| | | |
| | | purchaseRecord.ID = 0 |
| | | purchaseRecord.Status = purchase.OrderStatusConfirmed |
| | | purchaseRecord.HandledBy = "admin" |
| | |
| | | pp.Amount = purchaseRecord.Quantity |
| | | pp.Price = decimal.NewFromFloat(product.PurchasePrice) |
| | | pp.Total = purchaseRecord.TotalPrice |
| | | pp.Remark = "WMS补货" |
| | | if req.Source == "WMS" { |
| | | pp.Remark = "WMS补货" |
| | | } else if req.Source == "APS" { |
| | | pp.Remark = "APS采购" |
| | | } |
| | | |
| | | err = global.GVA_DB.Transaction(func(tx *gorm.DB) error { |
| | | err = tx.Create(&purchaseRecord).Error |
| | |
| | | resp.PurchaseNumber = purchaseRecord.Number |
| | | return resp, nil |
| | | } |
| | | |
| | | func (s *Server) GetPurchaseInfo(ctx context.Context, req *GetPurchaseInfoRequest) (*GetPurchaseInfoResponse, error) { |
| | | if len(req.PurchaseNumbers) == 0 { |
| | | return nil, errors.New("采购单编码不能为空") |
| | | } |
| | | var ps []purchase.Purchase |
| | | err := global.GVA_DB.Model(&purchase.Purchase{}).Where("number in (?)", req.PurchaseNumbers).Preload("Supplier").Find(&ps).Error |
| | | if err != nil { |
| | | return nil, err |
| | | } |
| | | infos := make([]*PurchaseInfo, 0) |
| | | for _, p := range ps { |
| | | var info PurchaseInfo |
| | | info.PurchaseNumber = p.Number |
| | | info.PurchaseName = p.Name |
| | | info.SupplierName = p.Supplier.Name |
| | | info.Amount = p.Quantity.IntPart() |
| | | info.Status = int64(p.Status) |
| | | infos = append(infos, &info) |
| | | } |
| | | resp := new(GetPurchaseInfoResponse) |
| | | resp.Infos = infos |
| | | return resp, nil |
| | | } |