Exemple #1
0
        ////////////////////////////////////////////////////////////
        /// <summary>
        /// 釣り銭を出す
        /// </summary>
        /// <param name="moneyInfo"></param>
        ////////////////////////////////////////////////////////////
        internal void GiveChange(ref MoneyInfoList moneyInfo)
        {
            // 釣り銭を設定する
            this.SetChange(ref moneyInfo);

            return;
        }
Exemple #2
0
        ////////////////////////////////////////////////////////////
        /// <summary>
        /// 釣り銭を計算する
        /// </summary>
        /// <param name="moneyInfo"></param>
        ////////////////////////////////////////////////////////////
        private void SetChange(ref MoneyInfoList moneyInfo)
        {
            // 釣り銭情報を計算する
            this.ClacChange(ref moneyInfo);

            return;
        }
Exemple #3
0
        ////////////////////////////////////////////////////////////
        /// <summary>
        /// お金を投入する
        /// </summary>
        ////////////////////////////////////////////////////////////
        private void InputMoney()
        {
            uint   number = 0;
            string name   = string.Empty;
            string input  = string.Empty;

            Console.WriteLine("投入金額を入力してください");

            MoneyInfoList moneyInfoList = new MoneyInfoList();

            foreach (SalesInfoBase info in m_salesParameter.MoneyInfo.m_salesInfoList)
            {
                Console.Write($"{info.Name} :");
                input = Console.ReadLine();

                // 入力値を数値に変換する
                number = Convert.ToUInt32(input);

                // お金情報を生成する
                MoneyInfo moneyInfo = new MoneyInfo(info.Name, info.Price, number);

                moneyInfoList.m_salesInfoList.Add(moneyInfo);
            }

            // 投入金額を更新する
            if (InputMoneyEvent != null)
            {
                // 通知する
                this.InputMoneyEvent(this, moneyInfoList);
            }

            return;
        }
Exemple #4
0
        ////////////////////////////////////////////////////////////
        /// <summary>
        /// 釣り銭をだす
        /// </summary>
        ////////////////////////////////////////////////////////////
        internal void GiveChange(MoneyInfoList infoList)
        {
            Console.WriteLine($"返金します");

            this.Aggregate(infoList);

            if (this.EndControlEvent != null)
            {
                this.EndControlEvent(this, null);
            }

            return;
        }
Exemple #5
0
        ////////////////////////////////////////////////////////////
        /// <summary>
        /// 投入金額を更新する
        /// </summary>
        /// <param name="moneyInfoList"></param>
        ////////////////////////////////////////////////////////////
        internal void UpdateInputMoney(MoneyInfoList moneyInfoList)
        {
            m_inputInfo = moneyInfoList;

            m_inputPrice = m_inputInfo.GetSumPrice();

            // 在庫数と投入金額の情報マージする
            for (int index = 0; index < m_stockInfo.m_salesInfoList.Count; index++)
            {
                m_stockInfo.m_salesInfoList[index].Stock += m_inputInfo.m_salesInfoList[index].Stock;
            }

            return;
        }
Exemple #6
0
        ////////////////////////////////////////////////////////////
        /// <summary>
        /// お金投入イベント
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="moneyInfoList"></param>
        ////////////////////////////////////////////////////////////
        private void InputMoneyEvent(object sender, MoneyInfoList moneyInfoList)
        {
            try {
                // 投入金額を更新する
                m_salesManager.UpdateInputMoney(moneyInfoList);

                // 購入を受け付ける
                m_mainForm.AcceptPurchace();
            }
            catch (Exception) {
            }

            return;
        }
Exemple #7
0
        ////////////////////////////////////////////////////////////
        /// <summary>
        /// 釣り銭を設定する
        /// </summary>
        /// <param name="moneyInfo"></param>
        /// <param name="sumDiff"></param>
        ////////////////////////////////////////////////////////////
        private void ClacChange(ref MoneyInfoList moneyInfo)
        {
            // 情報から最小数の釣り銭を計算する
            for (int index = 0; index < m_stockInfo.m_salesInfoList.Count; index++)
            {
                SalesInfoBase changeData = new SalesInfoBase();

                uint          chargeCount    = 0;
                uint          tmpChargeCount = 0;
                SalesInfoBase stockData      = null;

                stockData = m_stockInfo.m_salesInfoList[index];

                string name  = stockData.Name;
                uint   stock = stockData.Stock;
                uint   price = stockData.Price;

                // 紙幣枚数 = 合計金額 / 紙幣価値
                tmpChargeCount = m_inputPrice / stockData.Price;
                if (tmpChargeCount > stockData.Stock)
                {
                    chargeCount = stockData.Stock;
                }
                else
                {
                    chargeCount = tmpChargeCount;
                }

                // 在庫の紙幣枚数を減らす
                m_stockInfo.m_salesInfoList[index].Stock -= chargeCount;

                // (合計金額 - 返金額)
                m_inputPrice -= chargeCount * price;

                // 釣り銭情報を設定する
                changeData.Name  = name;
                changeData.Price = price;
                changeData.Stock = chargeCount;

                // 情報を追加する
                moneyInfo.m_salesInfoList.Add(changeData);
            }

            return;
        }
Exemple #8
0
        ////////////////////////////////////////////////////////////
        /// <summary>
        /// 釣り銭イベント
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="moneyInfoList"></param>
        ////////////////////////////////////////////////////////////
        private void GiveChangeEvent(object sender, EventArgs e)
        {
            MoneyInfoList moneyInfo = null;

            try {
                moneyInfo = new MoneyInfoList();

                // 釣り銭情報を取得する
                m_salesManager.GiveChange(ref moneyInfo);

                // 釣り銭を出す
                m_mainForm.GiveChange(moneyInfo);

                //
                m_mainForm.Start();
            }
            catch (Exception) {
                return;
            }

            return;
        }
Exemple #9
0
 ////////////////////////////////////////////////////////////
 /// <summary>
 /// コンストラクタ
 /// </summary>
 ////////////////////////////////////////////////////////////
 internal MoneyManager(MoneyInfoList infoList) : base(infoList)
 {
     m_inputPrice = 0;
     m_stockInfo  = infoList;
 }
 ////////////////////////////////////////////////////////////
 /// <summary>
 /// コンストラクタ
 /// </summary>
 ////////////////////////////////////////////////////////////
 internal SalesParameter()
 {
     m_moneyInfo   = new MoneyInfoList();
     m_productInfo = new ProductInfoList();
 }
Exemple #11
0
        ////////////////////////////////////////////////////////////
        /// <summary>
        /// 釣り銭をだす
        /// </summary>
        /// <param name="moneyInfo"></param>
        ////////////////////////////////////////////////////////////
        internal void GiveChange(ref MoneyInfoList moneyInfo)
        {
            m_moneyManger.GiveChange(ref moneyInfo);

            return;
        }
Exemple #12
0
        ////////////////////////////////////////////////////////////
        /// <summary>
        /// 投入金額を更新する
        /// </summary>
        /// <param name="moneyInfoList"></param>
        ////////////////////////////////////////////////////////////
        internal void UpdateInputMoney(MoneyInfoList moneyInfoList)
        {
            m_moneyManger.UpdateInputMoney(moneyInfoList);

            return;
        }