Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/app/models/concerns/sync_dtd_order.rb b/app/models/concerns/sync_dtd_order.rb
- index 8858293..db0fc79 100644
- --- a/app/models/concerns/sync_dtd_order.rb
- +++ b/app/models/concerns/sync_dtd_order.rb
- @@ -63,8 +63,8 @@ module SyncDtdOrder
- item_ids = items.map{|i| i["id"]}
- if item_ids.present?
- - order.order_items.where("ext_id not in(?)", item_ids).delete_all
- - order.order_exceptions.where("ext_item_id not in(?) and ext_item_id is not null", item_ids).delete_all
- + order.order_items.where("ext_id not in(?)", item_ids).delete_all
- + order.order_exceptions.where("ext_item_id not in(?) and ext_item_id is not null", item_ids).delete_all
- end
- has_undelivered = false
- @@ -80,9 +80,9 @@ module SyncDtdOrder
- order_item.delivered = !item["has_undelivered"]
- if Order::DTD_FINAL_STATUSES.include?(service_order["status"].to_s)
- if item["has_undelivered"]
- - order_item.status = "Refused"
- + order_item.status = "Exception"
- else
- - order_item.status = "Delivered"
- + order_item.status = order_item.status_from_sync_data(item)
- end
- elsif order.status == "New"
- order_item.status = "New"
- @@ -112,7 +112,7 @@ module SyncDtdOrder
- attachment.thumb_image = image["thumbnail_filename"]
- attachment.save(validate: false)
- end
- -
- +
- notes.each do |note|
- order_note = order.order_notes.where(description: note["content"]).where(note_by: note["commenter_name"]).where(dtd_note: true).first || order.order_notes.new
- order_note.dtd_note = true
- @@ -121,7 +121,7 @@ module SyncDtdOrder
- order_note.note_by = note["commenter_name"]
- order_note.save(validate: false)
- end
- -
- +
- histories.each do |h|
- history = order.order_histories.where(ext_history_id: h["id"]).first||order.order_histories.new
- history.event = h["event"]
- @@ -134,7 +134,7 @@ module SyncDtdOrder
- shipment_events.each do |event|
- shipment_event = order.shipment_events.find_by_ext_id(event["id"])||order.shipment_events.new
- - shipment_event.ext_id = event["id"]
- + shipment_event.ext_id = event["id"]
- shipment_event.location = event["event_location"]
- shipment_event.description = event["event_description"]
- shipment_event.event_datetime = event["event_datetime"]
- @@ -229,7 +229,7 @@ MESSAGE_END
- puts "Failed to download delivery receipt from #{receipt_url}",
- "*"*100, e.message, e.backtrace.join("\n")
- end
- -
- +
- end
- end
- diff --git a/app/models/order_item.rb b/app/models/order_item.rb
- index 9313252..952a76a 100644
- --- a/app/models/order_item.rb
- +++ b/app/models/order_item.rb
- @@ -21,7 +21,8 @@ class OrderItem < ActiveRecord::Base
- "New",
- "Scheduled",
- "Delivered",
- - "Refused"
- + "Picked up",
- + "Exception"
- ].freeze
- EXCEPTION = [ "Canceled",
- @@ -39,6 +40,22 @@ class OrderItem < ActiveRecord::Base
- self[:updated_at].strftime("%B %d,%Y %I:%M %p")
- end
- + def status
- + return "Exception" if (super == "Refused") || (delivered_quantity != quantity)
- + return "Picked up" if (quantity < 0) && (delivered_quantity == quantity)
- +
- + super
- + end
- +
- + def status_from_sync_data(item)
- + item["delivered_quantity"], item["quantity"] = [item["delivered_quantity"], item["quantity"]].map(&:to_i)
- +
- + return "Exception" if (item["delivered_quantity"] != item["quantity"])
- + return "Picked up" if (item["quantity"] < 0) && (item["delivered_quantity"] == item["quantity"])
- +
- + "Delivered"
- + end
- +
- def readable_date
- return "" if eta.blank?
- "#{eta.strftime("%A")}, #{eta.strftime("%B")} #{eta.day.ordinalize}"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement