mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-02-05 22:26:07 +00:00
Merge pull request #5429 from mkllnk/5400-orders-distributors-report
5400 List each order only once in Orders And Distributors report
This commit is contained in:
@@ -226,7 +226,6 @@ Layout/LineLength:
|
||||
- spec/lib/open_food_network/group_buy_report_spec.rb
|
||||
- spec/lib/open_food_network/lettuce_share_report_spec.rb
|
||||
- spec/lib/open_food_network/option_value_namer_spec.rb
|
||||
- spec/lib/open_food_network/order_and_distributor_report_spec.rb
|
||||
- spec/lib/open_food_network/order_cycle_form_applicator_spec.rb
|
||||
- spec/lib/open_food_network/order_cycle_permissions_spec.rb
|
||||
- spec/lib/open_food_network/order_grouper_spec.rb
|
||||
|
||||
@@ -34,7 +34,9 @@ module OpenFoodNetwork
|
||||
end
|
||||
|
||||
def search
|
||||
@permissions.visible_orders.complete.not_state(:canceled).search(@params[:q])
|
||||
@permissions.visible_orders.select("DISTINCT spree_orders.*").
|
||||
complete.not_state(:canceled).
|
||||
search(@params[:q])
|
||||
end
|
||||
|
||||
def table
|
||||
|
||||
@@ -8,11 +8,16 @@ module OpenFoodNetwork
|
||||
subject = OrderAndDistributorReport.new nil
|
||||
|
||||
header = subject.header
|
||||
expect(header).to eq(['Order date', 'Order Id',
|
||||
'Customer Name', 'Customer Email', 'Customer Phone', 'Customer City',
|
||||
'SKU', 'Item name', 'Variant', 'Quantity', 'Max Quantity', 'Cost', 'Shipping Cost',
|
||||
'Payment Method',
|
||||
'Distributor', 'Distributor address', 'Distributor city', 'Distributor postcode', 'Shipping Method', 'Shipping instructions'])
|
||||
expect(header).to eq(
|
||||
[
|
||||
'Order date', 'Order Id',
|
||||
'Customer Name', 'Customer Email', 'Customer Phone', 'Customer City',
|
||||
'SKU', 'Item name', 'Variant', 'Quantity', 'Max Quantity', 'Cost', 'Shipping Cost',
|
||||
'Payment Method',
|
||||
'Distributor', 'Distributor address', 'Distributor city', 'Distributor postcode',
|
||||
'Shipping Method', 'Shipping instructions'
|
||||
]
|
||||
)
|
||||
end
|
||||
|
||||
context 'with completed order' do
|
||||
@@ -21,7 +26,12 @@ module OpenFoodNetwork
|
||||
let(:product) { create(:product) }
|
||||
let(:shipping_method) { create(:shipping_method) }
|
||||
let(:shipping_instructions) { 'pick up on thursday please!' }
|
||||
let(:order) { create(:order, state: 'complete', completed_at: Time.zone.now, distributor: distributor, bill_address: bill_address, special_instructions: shipping_instructions) }
|
||||
let(:order) {
|
||||
create(:order,
|
||||
state: 'complete', completed_at: Time.zone.now,
|
||||
distributor: distributor, bill_address: bill_address,
|
||||
special_instructions: shipping_instructions)
|
||||
}
|
||||
let(:payment_method) { create(:payment_method, distributors: [distributor]) }
|
||||
let(:payment) { create(:payment, payment_method: payment_method, order: order) }
|
||||
let(:line_item) { create(:line_item_with_shipment, product: product, order: order) }
|
||||
@@ -37,6 +47,7 @@ module OpenFoodNetwork
|
||||
|
||||
table = subject.table
|
||||
|
||||
expect(table.size).to eq 1
|
||||
expect(table[0]).to eq([
|
||||
order.reload.completed_at.strftime("%F %T"),
|
||||
order.id,
|
||||
@@ -60,6 +71,15 @@ module OpenFoodNetwork
|
||||
shipping_instructions
|
||||
])
|
||||
end
|
||||
|
||||
it "prints one row per line item" do
|
||||
create(:line_item_with_shipment, order: order)
|
||||
|
||||
subject = OrderAndDistributorReport.new(create(:admin_user), {}, true)
|
||||
|
||||
table = subject.table
|
||||
expect(table.size).to eq 2
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user