BOM: Fixed bug causing Order Cycles filter to break in some cases

This commit is contained in:
Rob H
2014-03-27 13:32:26 +11:00
parent cd1086ce05
commit a260a3fa56
2 changed files with 3 additions and 38 deletions

View File

@@ -157,7 +157,6 @@ orderManagementModule.controller "AdminOrderMgmtCtrl", [
$scope.distributorFilter = $scope.distributors[0]
dataFetcher("/api/order_cycles/managed").then (data) ->
$scope.orderCycles = data
$scope.matchOrderCycleEnterprises orderCycle for orderCycle in $scope.orderCycles
$scope.orderCycles.unshift blankOption()
$scope.orderCycleFilter = $scope.orderCycles[0]
$scope.fetchOrders()
@@ -194,17 +193,10 @@ orderManagementModule.controller "AdminOrderMgmtCtrl", [
lineItemOrder.order_cycle = $scope.matchObject $scope.orderCycles, order.order_cycle, null
lineItemOrder
$scope.matchOrderCycleEnterprises = (orderCycle) ->
for i,distributor of orderCycle.distributors
orderCycle.distributors[i] = $scope.matchObject $scope.distributors, distributor, null
for i,supplier of orderCycle.suppliers
orderCycle.suppliers[i] = $scope.matchObject $scope.suppliers, supplier, null
$scope.matchObject = (list, testObject, noMatch) ->
for i, object of list
if angular.equals(object, testObject)
return object
else
return noMatch
$scope.deleteLineItem = (lineItem) ->
@@ -288,9 +280,9 @@ orderManagementModule.controller "AdminOrderMgmtCtrl", [
orderManagementModule.filter "selectFilter", (blankOption) ->
return (lineItems,selectedSupplier,selectedDistributor,selectedOrderCycle) ->
filtered = []
filtered.push lineItem for lineItem in lineItems when (angular.equals(selectedSupplier,blankOption()) || lineItem.supplier == selectedSupplier) &&
(angular.equals(selectedDistributor,blankOption()) || lineItem.order.distributor == selectedDistributor) &&
(angular.equals(selectedOrderCycle,blankOption()) || lineItem.order.order_cycle == selectedOrderCycle)
filtered.push lineItem for lineItem in lineItems when (angular.equals(selectedSupplier,blankOption()) || lineItem.supplier.id == selectedSupplier.id) &&
(angular.equals(selectedDistributor,blankOption()) || lineItem.order.distributor.id == selectedDistributor.id) &&
(angular.equals(selectedOrderCycle,blankOption()) || lineItem.order.order_cycle.id == selectedOrderCycle.id)
filtered
orderManagementModule.filter "variantFilter", ->

View File

@@ -26,7 +26,6 @@ describe "AdminOrderMgmtCtrl", ->
spyOn(returnedSuppliers, "unshift")
spyOn(returnedDistributors, "unshift")
spyOn(returnedOrderCycles, "unshift")
spyOn(scope, "matchOrderCycleEnterprises")
scope.initialise "api_key"
httpBackend.flush()
expect(scope.suppliers).toEqual ["list of suppliers"]
@@ -37,7 +36,6 @@ describe "AdminOrderMgmtCtrl", ->
expect(returnedSuppliers.unshift.calls.length).toEqual 1
expect(returnedDistributors.unshift.calls.length).toEqual 1
expect(returnedOrderCycles.unshift.calls.length).toEqual 1
expect(scope.matchOrderCycleEnterprises.calls.length).toEqual returnedOrderCycles.length
expect(scope.spree_api_key_ok).toEqual true
describe "fetching orders", ->
@@ -161,31 +159,6 @@ describe "AdminOrderMgmtCtrl", ->
returned_item = scope.matchObject list, test_item, null
expect(returned_item is null).toEqual true
describe "matching order cycles enterprises", ->
it "calls matchDistributor once for each distributor associated with an order cycle", ->
spyOn(scope, "matchObject")
distributors = [
"distributor1"
"distributor2"
"distributor3"
]
suppliers = []
orderCycle = { distributors: distributors }
scope.matchOrderCycleEnterprises orderCycle
expect(scope.matchObject.calls.length).toEqual 3
it "calls matchSupplier once for each distributor associated with an order cycle", ->
spyOn(scope, "matchObject")
distributors = []
suppliers = [
"supplier1"
"supplier2"
"supplier3"
]
orderCycle = { suppliers: suppliers }
scope.matchOrderCycleEnterprises orderCycle
expect(scope.matchObject.calls.length).toEqual 3
describe "deleting a line item", ->
order = line_item1 = line_item2 = null