Find enterprises participating in an order cycle

This commit is contained in:
Rohan Mitchell
2013-08-13 16:29:27 +10:00
parent 0293942816
commit 8ff749d0eb
2 changed files with 40 additions and 0 deletions

View File

@@ -21,6 +21,9 @@ angular.module('order_cycle', ['ngResource'])
$scope.incomingExchangesVariants = ->
OrderCycle.incomingExchangesVariants()
$scope.participatingEnterprises = ->
$scope.enterprises[id] for id in OrderCycle.participatingEnterpriseIds()
$scope.toggleProducts = ($event, exchange) ->
$event.preventDefault()
OrderCycle.toggleProducts(exchange)
@@ -79,6 +82,9 @@ angular.module('order_cycle', ['ngResource'])
$scope.incomingExchangesVariants = ->
OrderCycle.incomingExchangesVariants()
$scope.participatingEnterprises = ->
$scope.enterprises[id] for id in OrderCycle.participatingEnterpriseIds()
$scope.toggleProducts = ($event, exchange) ->
$event.preventDefault()
OrderCycle.toggleProducts(exchange)
@@ -178,6 +184,11 @@ angular.module('order_cycle', ['ngResource'])
variant_ids.push(parseInt(id)) for id, active of exchange.variants when active
variant_ids
participatingEnterpriseIds: ->
suppliers = (exchange.enterprise_id for exchange in this.order_cycle.incoming_exchanges)
distributors = (exchange.enterprise_id for exchange in this.order_cycle.outgoing_exchanges)
jQuery.unique(suppliers.concat(distributors)).sort()
load: (order_cycle_id) ->
service = this

View File

@@ -66,6 +66,15 @@ describe 'OrderCycle controllers', ->
expect(scope.variantSuppliedToOrderCycle('variant')).toEqual('variant supplied')
expect(OrderCycle.variantSuppliedToOrderCycle).toHaveBeenCalledWith('variant')
it 'Finds enterprises participating in the order cycle', ->
scope.enterprises =
1: {id: 1, name: 'Eaterprises'}
2: {id: 2, name: 'Pepper Tree Place'}
OrderCycle.participatingEnterpriseIds = jasmine.createSpy('participatingEnterpriseIds').andReturn([2])
expect(scope.participatingEnterprises()).toEqual([
{id: 2, name: 'Pepper Tree Place'}
])
it 'Delegates toggleProducts to OrderCycle', ->
scope.toggleProducts(event, 'exchange')
expect(event.preventDefault).toHaveBeenCalled()
@@ -180,6 +189,15 @@ describe 'OrderCycle controllers', ->
expect(scope.variantSuppliedToOrderCycle('variant')).toEqual('variant supplied')
expect(OrderCycle.variantSuppliedToOrderCycle).toHaveBeenCalledWith('variant')
it 'Finds enterprises participating in the order cycle', ->
scope.enterprises =
1: {id: 1, name: 'Eaterprises'}
2: {id: 2, name: 'Pepper Tree Place'}
OrderCycle.participatingEnterpriseIds = jasmine.createSpy('participatingEnterpriseIds').andReturn([2])
expect(scope.participatingEnterprises()).toEqual([
{id: 2, name: 'Pepper Tree Place'}
])
it 'Delegates toggleProducts to OrderCycle', ->
scope.toggleProducts(event, 'exchange')
expect(event.preventDefault).toHaveBeenCalled()
@@ -406,6 +424,17 @@ describe 'OrderCycle services', ->
{id: 3}
]
it 'finds participating enterprise ids', ->
OrderCycle.order_cycle.incoming_exchanges = [
{enterprise_id: 1}
{enterprise_id: 2}
]
OrderCycle.order_cycle.outgoing_exchanges = [
{enterprise_id: 2}
{enterprise_id: 3}
]
expect(OrderCycle.participatingEnterpriseIds()).toEqual [1, 2, 3]
describe 'fetching all variants supplied on incoming exchanges', ->
it 'collects variants from incoming exchanges', ->
OrderCycle.order_cycle.incoming_exchanges = [