getConfirmedDeliveries method

Future<List<Delivery>> getConfirmedDeliveries({
  1. required String poNumber,
  2. required DeliveryRepo deliveryRepo,
  3. Options? getPurchaseConfirmationOptions,
  4. Options? getDeliveriesOptions,
})

Implementation

Future<List<Delivery>> getConfirmedDeliveries({
  required String poNumber,
  required DeliveryRepo deliveryRepo,
  Options? getPurchaseConfirmationOptions,
  Options? getDeliveriesOptions,
}) async {
  List<PurchaseOrderConfirmation> poConfirmations =
      await getPurchaseOrderConfirmations(
        poNumber: poNumber,
        getPurchaseConfirmationOptions: getPurchaseConfirmationOptions,
      );

  List<String> deliveryNumbersLA = [
    for (final confirmation in poConfirmations)
      if (confirmation.confType == 'LA' && confirmation.delivNumb != null)
        confirmation.delivNumb!,
  ];

  final deliveries = await Future.wait(
    deliveryNumbersLA.map(
      (deliveryNumb) async => await deliveryRepo.getDelivery(
        deliveryNumber: deliveryNumb,
        getDeliveriesOptions: getDeliveriesOptions,
      ),
    ),
  );

  return deliveries.whereType<Delivery>().toList();
}