getPOHistoryDeliveries method
Future<List<Delivery> >
getPOHistoryDeliveries({
- required String material,
- required String? poNumber,
- required String? batch,
- required HuRepo huRepo,
- String acceptableType = 'L',
- String? mainDeliveryNumber,
- Options? getPurchaseConfirmationOptions,
- Options? getHUDetailsReferenceOptions,
- Options? getUnitsOfMeasureOptions,
- Options? getDeliveriesOptions,
- Options? getMaterialByBatchOptions,
Implementation
Future<List<Delivery>> getPOHistoryDeliveries({
required String material,
required String? poNumber,
required String? batch,
required HuRepo huRepo,
String acceptableType = 'L',
String? mainDeliveryNumber,
Options? getPurchaseConfirmationOptions,
Options? getHUDetailsReferenceOptions,
Options? getUnitsOfMeasureOptions,
Options? getDeliveriesOptions,
Options? getMaterialByBatchOptions,
}) async {
if (poNumber == null) return [];
final poHistoryList = await getPurchaseOrderHistory(
poNumber: poNumber,
getPurchaseConfirmationOptions: getPurchaseConfirmationOptions,
acceptableType: acceptableType,
);
final deliveries = await Future.wait(
poHistoryList.map(
(poHistory) async => await getDelivery(
deliveryNumber: poHistory.matDoc,
getDeliveriesOptions: getDeliveriesOptions,
),
),
);
List<Delivery> filteredDeliveries = deliveries
.whereType<Delivery>()
.toList();
List<UnitOfMeasuresDto> recalculationUOMs =
await UOMService(
client: _deliveryApiProvider.client,
).loadUnitOfMeasures(
material: material,
getUnitsOfMeasureOptions: getUnitsOfMeasureOptions,
);
List<HuDetails> deliveryDetails = [];
if (mainDeliveryNumber != null) {
deliveryDetails = await huRepo.getAssignedHUDetails(
deliveryNumber: mainDeliveryNumber,
material: material,
batch: batch,
getHUDetailsReferenceOptions: getHUDetailsReferenceOptions,
getMaterialByBatchOptions: getMaterialByBatchOptions,
);
}
filteredDeliveries = filteredDeliveries
.map((del) {
return del.copyWith(
toItemList: del.toItemList.map((item) {
return item.copyWith(
recalculationUOMs: recalculationUOMs,
deliveryHUs: deliveryDetails.getDeliveryHUS(del.deliveryNumber),
);
}).toList(),
);
})
.toList(growable: true);
return filteredDeliveries;
}