| | |
| | | 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"). |
| | |
| | | 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 { |
| | |
| | | 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 |
| | |
| | | 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 |
| | |
| | | detail.ProductId = product.Id |
| | | amount, _ := decimal.NewFromString(product.Amount) |
| | | detail.Amount = amount |
| | | detail.FromLocationID = location.Id |
| | | detail.ToLocationID = first.Id |
| | | newOperation.Details = append(newOperation.Details, &detail) |
| | | operations = append(operations, &newOperation) |
| | | } |