private bool CreateSpareInSpareOutgo() { if (dgIncomes.SelectedItem != null) { SpareInOutgoEditView v = new SpareInOutgoEditView(); v._SpareName = (dgIncomes.SelectedItem as SpareInSpareIncomeView).SpareName; v._SpareInSpareIncomeID = (dgIncomes.SelectedItem as SpareInSpareIncomeView).id; v._AvailableQuantity = (int)(dgIncomes.SelectedItem as SpareInSpareIncomeView).QRest.Value; da = new DataAccess(); // получаем ID текущей открытой накладной spare_outgo CurrentOutgo = da.SpareOutgoOpened(); if (CurrentOutgo == null) { MessageBox.Show("Не указана текущая открытая накладная!"); return false; } v._SpareOutgoID = CurrentOutgo.id; CurrentOutgo.currencyReference.Load(); v.CurrentCurrencyCode = CurrentOutgo.currency.code; decimal BasicPrice = (dgIncomes.SelectedItem as SpareInSpareIncomeView).POutBasic.Value; decimal Price = CurrencyHelper.GetPrice(v.CurrentCurrencyCode, BasicPrice); v._Price = Price; v.ShowDialog(); } return true; }
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>(); }
private void AddIncomeToBasket(SpareInSpareIncomeView income) { int SpareID = income.SpareID.Value; // если такой товар в корзине есть if (BasketItems.Where(x => x.SpareID == SpareID).Count() > 0) { if ((decimal)SpareContainer.Instance.Remains.FirstOrDefault(i => i.id == SpareID).QRest.Value > BasketItems.FirstOrDefault(x => x.SpareID == SpareID).Q) BasketItems.FirstOrDefault(x => x.SpareID == SpareID).Q++; } else { // если такого товара в корзине нет BasketView item = new BasketView(); item.ID = BasketItems.Count + 1; // [CreatedOn] item.CreatedOn = DateTime.Now; // [SpareID] item.SpareID = SpareID; // [Q] item.Q = 1; // [OfferingID] = income //item.OfferingInID = (dgIncomes.SelectedItem as SpareInSpareIncomeView).id; // [OfferingID] = outgo //TODO item.OfferingOutID decimal POutBasic = income.POutBasic.Value; DataAccess db = new DataAccess(); spare_outgo outgo = db.SpareOutgoOpened(); if (outgo == null) { MessageBox.Show("Сначала укажите текущую открытую накладную!"); return; } if (outgo.currency == null) outgo.currencyReference.Load(); if (outgo.currency.code == CurrencyHelper.BasicCurrencyCode) POutBasic = income.POut.Value; // [Pusd] item.Pusd = CurrencyHelper.GetPrice("USD", POutBasic); // [Peur] item.Peur = CurrencyHelper.GetPrice("EUR", POutBasic); // [Pbyr] item.Pbyr = CurrencyHelper.GetPrice("BYR", POutBasic); // [Prur] item.Prur = CurrencyHelper.GetPrice("RUR", POutBasic); // [SpareName] item.SpareName = income.SpareName; // [UnitID] item.UnitID = 1; // [SpareCode] item.SpareCode = income.SpareCode; // [SpareCodeShatem] item.SpareCodeShatem = income.SpareCodeShatem; BasketItems.Add(item); } // обновим грид LoadBasket(); }