private void SaveBasket() { DataAccess db = new DataAccess(); // получить ID накладной, в которую будет включена корзина spare_outgo outgo = db.SpareOutgoOpened(); // - если есть открытая накладная // - если нет открытой накладной if (outgo == null) { MessageBox.Show("Не указана текущая открытая накладная!"); return; } int OutgoID = outgo.id; // создадим Sale // посчитаем сумму корзины в разных валютах decimal Prur = 0; decimal Pbyr = 0; decimal Peur = 0; decimal Pusd = 0; foreach (BasketView item in BasketItems) { Prur += item.Prur.Value * item.Q.Value; Pbyr += item.Pbyr.Value * item.Q.Value; Pusd += item.Pusd.Value * item.Q.Value; Peur += item.Peur.Value * item.Q.Value; } // сохранить запись о корзине Sale sale = new Sale(); sale.Pbyr = Pbyr; sale.Prur = Prur; sale.Pusd = Pusd; sale.Peur = Peur; Sale s = db.SaleCreate(sale); // CreateBasketItem foreach (BasketView item in BasketItems) { // здесь же внутри // - уменшается остаток по приходу // - идёт связывание с отгрузками item.SaleID = s.ID; db.BasketCreate(item); // обновляем остаток товара в кэше SpareContainer.Instance.Update(item.SpareID.Value); } // Закрыть корзину, очистить список grBasket.Visibility = System.Windows.Visibility.Collapsed; treeSpareGroups.Visibility = System.Windows.Visibility.Visible; BasketItems = new List<BasketView>(); }