Advertisement
Guest User

Untitled

a guest
Oct 19th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.17 KB | None | 0 0
  1. ClassMethod Add(dateTime As %TimeStamp, value As %String, device As MGMA.Data.Device) As %Status
  2. {
  3. if 'device.Activities.IsEmpty()
  4. {
  5. set lstActivity = ##class(MGMA.BL.Device).GetCurrentActivity(device.%Id())
  6.  
  7. if lstActivity.Value = value
  8. {
  9. set prevEndDateTime = $ZDateTimeH(lstActivity.EndDateTime, 3)
  10. set curDateTime = $ZDateTimeH(dateTime, 3)
  11.  
  12.  
  13. if $Piece(curDateTime, ",", 1) - $Piece(prevEndDateTime, ",", 1) = 0
  14. {
  15. // Вот здесь разница между curDateTime и prevEndDateTime может быть меньше не только 120, но и меньше нуля!
  16. if $Piece(curDateTime, ",", 2) - $Piece(prevEndDateTime, ",", 2) < 120
  17. {
  18. set lstActivity.EndDateTime = dateTime
  19. return lstActivity.%Save()
  20. }
  21. }
  22. }
  23. }
  24.  
  25. set newActivity = ##class(MGMA.Data.Activity).%New()
  26.  
  27. set newActivity.Value = value
  28. set newActivity.Device = device
  29. set newActivity.StartDateTime = dateTime
  30. set newActivity.EndDateTime = dateTime
  31.  
  32. set date = ..DateCalculate(dateTime)
  33.  
  34. set newActivity.StartDate2 = $ZDateH(date,3)
  35. set newActivity.EndDate2 = $ZDateH(date,3)
  36.  
  37. return newActivity.%Save()
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement