Exemple #1
0
        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;
        }
Exemple #2
0
        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>();
        }
Exemple #3
0
        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();
        }