private void multipleDealersOrder(List <Dealers.DealerInfo> dealersCandidates, PharmacyOrders.PharmacyOrders pharmacyOrder) { double price = double.MaxValue; Dealers.DealerInfo dealersInfoMin = null; int drugInfoIndex = -1; foreach (Dealers.DealerInfo dealerInfo in dealersCandidates) { for (int i = 0; i < dealerInfo.drugsList.Count; i++) { if (dealerInfo.drugsList[i].Name == pharmacyOrder.DrugName) { for (int j = 0; j < dealerInfo.drugsInfoList.Count; j++) { if (dealerInfo.drugsInfoList[j].DrugID == dealerInfo.drugsList[i].ID) { if (dealerInfo.drugsInfoList[j].Price <= price) { price = dealerInfo.drugsInfoList[j].Price; dealersInfoMin = new Dealers.DealerInfo(); dealersInfoMin = dealerInfo; drugInfoIndex = j; } } } } } } if (dealersInfoMin != null) { price = dealersInfoMin.drugsInfoList[drugInfoIndex].Price * pharmacyOrder.NumberOrders; MessageBoxResult result = MessageBox.Show("Минимална цена на поръчка - " + price + " лв. Желаете ли да изпълните поръчката?", "Поръчка", MessageBoxButton.OKCancel, MessageBoxImage.Information); if (result == MessageBoxResult.OK) { dealersInfoMin.drugsInfoList[drugInfoIndex].Number -= pharmacyOrder.NumberOrders; MessageBoxes.ShowInfo("Поръчката е изпълнена успешно!"); if (dealersInfoMin.drugsInfoList[drugInfoIndex].Number == 0) { drugsInfoData.DeleteWhereID(dealersInfoMin.drugsInfoList[drugInfoIndex].ID); } else { dealersData.UpdateWhereID(dealersInfoMin.dealer.ID, dealersInfoMin); } if (!pharmacyOrdersData.DeleteWhereID(pharmacyOrder.ID)) { MessageBoxes.ShowError(MessageBoxes.DeleteErrorMessage); return; } pharmacyOrdersView.itemsSource.RemoveAt(pharmacyOrdersView.SelectedIndex); } } }
private void findDealer_Click(object sender, RoutedEventArgs e) { List <Dealers.DealerInfo> dealersInfoList = new List <Dealers.DealerInfo>(); PharmacyOrders.PharmacyOrders pharmacyOrder = (PharmacyOrders.PharmacyOrders)pharmacyOrdersView.GetSelectedItem(); if (pharmacyOrder == null) { MessageBoxes.ShowError("Моля изберете поръчка!"); return; } List <Dealers.Dealers> dealersList = new List <Dealers.Dealers>(); if (!dealersData.SelectAll(dealersList)) { MessageBoxes.ShowError(MessageBoxes.LoadDataErrorMessage); return; } foreach (Dealers.Dealers dealer in dealersList) { Dealers.DealerInfo dealerInfo = new Dealers.DealerInfo(); dealerInfo.dealer = dealer; List <DrugsInfo.DrugsInfo> drugsInfoList = new List <DrugsInfo.DrugsInfo>(); if (!dealersData.SelectAllDrugsInfo(drugsInfoList, dealer.ID)) { MessageBoxes.ShowError(MessageBoxes.LoadDataErrorMessage); return; } dealerInfo.drugsInfoList = drugsInfoList; List <Drugs.Drugs> drugsList = new List <Drugs.Drugs>(); Drugs.Drugs drug = new Drugs.Drugs(); foreach (DrugsInfo.DrugsInfo drugInfo in dealerInfo.drugsInfoList) { if (!dealersData.SelectDrugWhereID(out drug, drugInfo.DrugID)) { MessageBoxes.ShowError(MessageBoxes.LoadDataErrorMessage); return; } drugsList.Add(drug); } dealerInfo.drugsList = drugsList; dealersInfoList.Add(dealerInfo); } findDealerMethod(pharmacyOrder, dealersInfoList); }
private void oneDealerOrder(Dealers.DealerInfo dealersCandidates, PharmacyOrders.PharmacyOrders pharmacyOrder) { for (int i = 0; i < dealersCandidates.drugsList.Count; i++) { if (dealersCandidates.drugsList[i].Name == pharmacyOrder.DrugName) { for (int j = 0; j < dealersCandidates.drugsInfoList.Count; j++) { if (dealersCandidates.drugsInfoList[j].DrugID == dealersCandidates.drugsList[i].ID) { double price = dealersCandidates.drugsInfoList[j].Price * pharmacyOrder.NumberOrders; MessageBoxResult result = MessageBox.Show("Цена на поръчка - " + price + " лв. Желаете ли да изпълните поръчката?", "Поръчка", MessageBoxButton.OKCancel, MessageBoxImage.Information); if (result == MessageBoxResult.OK) { dealersCandidates.drugsInfoList[j].Number -= pharmacyOrder.NumberOrders; MessageBoxes.ShowInfo("Поръчката е изпълнена успешно!"); if (dealersCandidates.drugsInfoList[j].Number == 0) { drugsInfoData.DeleteWhereID(dealersCandidates.drugsInfoList[j].ID); } else { dealersData.UpdateWhereID(dealersCandidates.dealer.ID, dealersCandidates); } if (!pharmacyOrdersData.DeleteWhereID(pharmacyOrder.ID)) { MessageBoxes.ShowError(MessageBoxes.DeleteErrorMessage); return; } pharmacyOrdersView.itemsSource.RemoveAt(pharmacyOrdersView.SelectedIndex); } return; } } } } }