liujiandao
2024-01-11 eaa4218d45fade3a9ac2cfb7ff81cbfceeb650cd
proto/product_inventory/server.go
@@ -34,7 +34,7 @@
   var productIds []string
   resp := new(GetInventoryProductInfoResponse)
   err := models.NewOperationDetailsSearch().Orm.Model(&models.OperationDetails{}).
      Select("wms_operation_details.product_id,wms_operation_details.amount,wms_operation.from_location_id as location_id,"+
      Select("wms_operation_details.product_id,wms_operation_details.amount,wms_operation_details.from_location_id as location_id,"+
         "wms_operation.number,wms_operation.waybill_number, logistic_company.name").
      Joins("left join wms_operation on wms_operation.id = wms_operation_details.operation_id").
      Joins("left join logistic_company on logistic_company.id = wms_operation.logistic_company_id").
@@ -92,7 +92,7 @@
      Select("wms_operation_details.product_id, wms_operation_details.amount").
      Joins("left join wms_operation on wms_operation_details.operation_id = wms_operation.id").
      Where("wms_operation_details.product_id in (?)", productIds).
      Where("wms_operation.from_location_id in (?)", locationIds).Where("wms_operation.status = ?", constvar.OperationStatus_Ready).
      Where("wms_operation_details.from_location_id in (?)", locationIds).Where("wms_operation.status = ?", constvar.OperationStatus_Ready).
      Where("wms_operation.base_operation_type in (?)", []constvar.BaseOperationType{constvar.BaseOperationTypeOutgoing, constvar.BaseOperationTypeInternal, constvar.BaseOperationTypeDisuse}).
      Find(&canUse).Error
   if err != nil {
@@ -101,7 +101,7 @@
   products := make([]*ProductInfo, 0)
   for _, material := range materials {
      var p ProductInfo
      p.Id = material.ID
      p.Number = material.ID
      p.Name = material.Name
      for _, detail := range details {
         if material.ID == detail.ProductId {
@@ -160,19 +160,27 @@
   if err != nil {
      return nil, err
   }
   operation.FromLocationID = location.Id
   first, err := models.NewLocationSearch().SetType(int(constvar.LocationTypeCustomer)).First()
   if err != nil {
      return nil, err
   }
   operation.ToLocationID = first.Id
   operation.LocationID = location.Id
   operation.BaseOperationType = constvar.BaseOperationTypeOutgoing
   operation.ReceiverName = req.Addressee
   operation.ReceiverPhone = req.Phone
   operation.ReceiverAddr = req.Address
   operation.Source = req.Source
   operation.CompanyID = int(req.ClientId)
   operation.CompanyName = req.ClientName
   if req.DeliverType == 1 {
      for _, product := range req.ProductList {
         var detail models.OperationDetails
         detail.ProductId = product.Id
         amount, _ := decimal.NewFromString(product.Amount)
         detail.Amount = amount
         detail.FromLocationID = location.Id
         detail.ToLocationID = first.Id
         details = append(details, &detail)
      }
      operation.Details = details
@@ -184,7 +192,8 @@
         detail.ProductId = product.Id
         amount, _ := decimal.NewFromString(product.Amount)
         detail.Amount = amount
         details = append(details, &detail)
         detail.FromLocationID = location.Id
         detail.ToLocationID = first.Id
         newOperation.Details = append(newOperation.Details, &detail)
         operations = append(operations, &newOperation)
      }