From be8fa1f4e4e93a04da8c08fe2927bc371ffd364a Mon Sep 17 00:00:00 2001 From: Rob Harrington Date: Mon, 12 Dec 2016 11:35:06 +1100 Subject: [PATCH] WIP: ProxyOrders don't require an order, calculating total for serialized proxy orders from standing order where order does not exist --- app/models/standing_line_item.rb | 4 ++++ app/serializers/api/admin/proxy_order_serializer.rb | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/app/models/standing_line_item.rb b/app/models/standing_line_item.rb index dbc1ab5ccc..e1d260e7bf 100644 --- a/app/models/standing_line_item.rb +++ b/app/models/standing_line_item.rb @@ -12,5 +12,9 @@ class StandingLineItem < ActiveRecord::Base .any? end + def total_estimate + (price_estimate || 0) * (quantity || 0) + end + default_scope order('id ASC') end diff --git a/app/serializers/api/admin/proxy_order_serializer.rb b/app/serializers/api/admin/proxy_order_serializer.rb index 678b517eed..7dcbb4b383 100644 --- a/app/serializers/api/admin/proxy_order_serializer.rb +++ b/app/serializers/api/admin/proxy_order_serializer.rb @@ -2,7 +2,11 @@ class Api::Admin::ProxyOrderSerializer < ActiveModel::Serializer attributes :id, :state, :edit_path, :number, :completed_at, :order_cycle_id, :total def total - object.total.to_money.to_s + if object.total.present? + object.total.to_money.to_s + else + object.standing_order.standing_line_items.sum(&:total_estimate) + end end def completed_at