@JwServicePublish
 public JwList<AcItemMovementVo> getExpectedVsActualItemMovementReportForCollection(
     AcActionTypeEnum flightItemActionType,
     String expectedReceiveAirportFilterType,
     String expectedReceiveAirportCode,
     String expectedDeliverAirportFilterType,
     String expectedDeliverAirportCode,
     String actualReceiveAirportFilterType,
     String actualReceiveAirportCode,
     String actualDeliverAirportFilterType,
     String actualDeliverAirportCode,
     Integer collectionId) {
   JwList<Integer> itemIds =
       getAccess().getUserCollectionItemDb().getAllIdsByUserCollectionId(collectionId);
   AcImrItemMovementReport r = new AcImrItemMovementReport(getAccess());
   JwList<AcItemMovementVo> v = r.runExpected(flightItemActionType, itemIds);
   filter(
       v,
       new ExpectedReceiveAirportCodeFilter(
           expectedReceiveAirportFilterType, expectedReceiveAirportCode),
       new ExpectedDeliverAirportCodeFilter(
           expectedDeliverAirportFilterType, expectedDeliverAirportCode),
       new ReceiveAirportCodeFilter(actualReceiveAirportFilterType, actualReceiveAirportCode),
       new DeliverAirportCodeFilter(actualDeliverAirportFilterType, actualDeliverAirportCode));
   return v;
 }
 @JwServicePublish
 public JwList<AcItemMovementVo> getItemMovementReport(
     AcActionTypeEnum flightItemActionType,
     String receiveAirportFilterType,
     String receiveAirportCode,
     String deliverAirportFilterType,
     String deliverAirportCode,
     JwList<Integer> itemIds) {
   AcImrItemMovementReport r = new AcImrItemMovementReport(getAccess());
   JwList<AcItemMovementVo> v = r.run(flightItemActionType, itemIds);
   filter(
       v,
       new ReceiveAirportCodeFilter(receiveAirportFilterType, receiveAirportCode),
       new DeliverAirportCodeFilter(deliverAirportFilterType, deliverAirportCode));
   return v;
 }
 @JwServicePublish
 public JwList<Integer> getItemMovementItemIds(
     AcActionTypeEnum flightItemActionType,
     Integer type,
     JwTimestamp startEffectiveUtcTs,
     JwTimestamp endEffectiveUtcTs,
     String receiveAirportFilterType,
     String receiveAirportCode,
     String deliverAirportFilterType,
     String deliverAirportCode,
     String itemMovementHashKey) {
   AcImrMovementType movementType = AcItemMovementVo.getMovementType(type);
   AcImrItemMovementReport r = new AcImrItemMovementReport(getAccess());
   return r.runItems(
       flightItemActionType,
       movementType,
       itemMovementHashKey,
       startEffectiveUtcTs,
       endEffectiveUtcTs);
 }
 @JwServicePublish
 public JwList<AcItemMovementVo> getItemMovementReport(
     AcActionTypeEnum flightItemActionType,
     Integer type,
     JwTimestamp startEffectiveUtcTs,
     JwTimestamp endEffectiveUtcTs,
     String receiveAirportFilterType,
     String receiveAirportCode,
     String deliverAirportFilterType,
     String deliverAirportCode) {
   AcImrMovementType movementType = AcItemMovementVo.getMovementType(type);
   AcImrItemMovementReport r = new AcImrItemMovementReport(getAccess());
   JwList<AcItemMovementVo> v =
       r.run(flightItemActionType, movementType, startEffectiveUtcTs, endEffectiveUtcTs);
   filter(
       v,
       new ReceiveAirportCodeFilter(receiveAirportFilterType, receiveAirportCode),
       new DeliverAirportCodeFilter(deliverAirportFilterType, deliverAirportCode));
   return v;
 }
 @JwServicePublish
 public JwList<Integer> getConsignmentItemMovementItemIds(
     AcActionTypeEnum flightItemActionType, Integer consignmentId, String itemMovementHashKey) {
   AcImrItemMovementReport r = new AcImrItemMovementReport(getAccess());
   return r.runItems(flightItemActionType, consignmentId, itemMovementHashKey);
 }
 @JwServicePublish
 public JwList<AcItemMovementVo> getConsignmentItemMovementReport(
     AcActionTypeEnum flightItemActionType, Integer consignmentId) {
   AcImrItemMovementReport r = new AcImrItemMovementReport(getAccess());
   return r.run(flightItemActionType, consignmentId);
 }