Advertisement
Guest User

Untitled

a guest
Jul 25th, 2016
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.26 KB | None | 0 0
  1. diff --git a/app/models/concerns/sync_dtd_order.rb b/app/models/concerns/sync_dtd_order.rb
  2. index 8858293..db0fc79 100644
  3. --- a/app/models/concerns/sync_dtd_order.rb
  4. +++ b/app/models/concerns/sync_dtd_order.rb
  5. @@ -63,8 +63,8 @@ module SyncDtdOrder
  6. item_ids = items.map{|i| i["id"]}
  7.  
  8. if item_ids.present?
  9. - order.order_items.where("ext_id not in(?)", item_ids).delete_all
  10. - order.order_exceptions.where("ext_item_id not in(?) and ext_item_id is not null", item_ids).delete_all
  11. + order.order_items.where("ext_id not in(?)", item_ids).delete_all
  12. + order.order_exceptions.where("ext_item_id not in(?) and ext_item_id is not null", item_ids).delete_all
  13. end
  14.  
  15. has_undelivered = false
  16. @@ -80,9 +80,9 @@ module SyncDtdOrder
  17. order_item.delivered = !item["has_undelivered"]
  18. if Order::DTD_FINAL_STATUSES.include?(service_order["status"].to_s)
  19. if item["has_undelivered"]
  20. - order_item.status = "Refused"
  21. + order_item.status = "Exception"
  22. else
  23. - order_item.status = "Delivered"
  24. + order_item.status = order_item.status_from_sync_data(item)
  25. end
  26. elsif order.status == "New"
  27. order_item.status = "New"
  28. @@ -112,7 +112,7 @@ module SyncDtdOrder
  29. attachment.thumb_image = image["thumbnail_filename"]
  30. attachment.save(validate: false)
  31. end
  32. -
  33. +
  34. notes.each do |note|
  35. order_note = order.order_notes.where(description: note["content"]).where(note_by: note["commenter_name"]).where(dtd_note: true).first || order.order_notes.new
  36. order_note.dtd_note = true
  37. @@ -121,7 +121,7 @@ module SyncDtdOrder
  38. order_note.note_by = note["commenter_name"]
  39. order_note.save(validate: false)
  40. end
  41. -
  42. +
  43. histories.each do |h|
  44. history = order.order_histories.where(ext_history_id: h["id"]).first||order.order_histories.new
  45. history.event = h["event"]
  46. @@ -134,7 +134,7 @@ module SyncDtdOrder
  47.  
  48. shipment_events.each do |event|
  49. shipment_event = order.shipment_events.find_by_ext_id(event["id"])||order.shipment_events.new
  50. - shipment_event.ext_id = event["id"]
  51. + shipment_event.ext_id = event["id"]
  52. shipment_event.location = event["event_location"]
  53. shipment_event.description = event["event_description"]
  54. shipment_event.event_datetime = event["event_datetime"]
  55. @@ -229,7 +229,7 @@ MESSAGE_END
  56. puts "Failed to download delivery receipt from #{receipt_url}",
  57. "*"*100, e.message, e.backtrace.join("\n")
  58. end
  59. -
  60. +
  61. end
  62. end
  63.  
  64. diff --git a/app/models/order_item.rb b/app/models/order_item.rb
  65. index 9313252..952a76a 100644
  66. --- a/app/models/order_item.rb
  67. +++ b/app/models/order_item.rb
  68. @@ -21,7 +21,8 @@ class OrderItem < ActiveRecord::Base
  69. "New",
  70. "Scheduled",
  71. "Delivered",
  72. - "Refused"
  73. + "Picked up",
  74. + "Exception"
  75. ].freeze
  76.  
  77. EXCEPTION = [ "Canceled",
  78. @@ -39,6 +40,22 @@ class OrderItem < ActiveRecord::Base
  79. self[:updated_at].strftime("%B %d,%Y %I:%M %p")
  80. end
  81.  
  82. + def status
  83. + return "Exception" if (super == "Refused") || (delivered_quantity != quantity)
  84. + return "Picked up" if (quantity < 0) && (delivered_quantity == quantity)
  85. +
  86. + super
  87. + end
  88. +
  89. + def status_from_sync_data(item)
  90. + item["delivered_quantity"], item["quantity"] = [item["delivered_quantity"], item["quantity"]].map(&:to_i)
  91. +
  92. + return "Exception" if (item["delivered_quantity"] != item["quantity"])
  93. + return "Picked up" if (item["quantity"] < 0) && (item["delivered_quantity"] == item["quantity"])
  94. +
  95. + "Delivered"
  96. + end
  97. +
  98. def readable_date
  99. return "" if eta.blank?
  100. "#{eta.strftime("%A")}, #{eta.strftime("%B")} #{eta.day.ordinalize}"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement