コード例 #1
0
ファイル: Form1.cs プロジェクト: zlkjj/StockAssistant
        private void InsertDealRecord(DealRecordData data)
        {
            ListViewItem item = new ListViewItem(DateTime.Now.ToString("yyyy-MM-dd"));

            item.SubItems.Add(data.Name);
            item.SubItems.Add(data.Type);
            item.SubItems.Add(data.Price);
            item.SubItems.Add(data.Count);
            item.SubItems.Add(data.Pool);
            item.SubItems.Add(data.Profit);

            listView1.Items.Add(item);
        }
コード例 #2
0
ファイル: Form1.cs プロジェクト: zlkjj/StockAssistant
        private void closePositionToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (this.tabControl1.SelectedIndex != 1)
            {
                return;
            }

            PositionDlg dlg = new PositionDlg();

            string name = dataGridViewLongTerm.SelectedRows[0].Cells["Name"].Value.ToString();

            StockPool.TacticalTableDataTable dt = (StockPool.TacticalTableDataTable)dataGridViewTactical.DataSource;
            if (dt.Select("Name=" + name).Length != 0)
            {
                MessageBox.Show("please underweight stock in tactical pool first");
                return;
            }

            dlg.textBoxName.Text   = dataGridViewLongTerm.SelectedRows[0].Cells["Name"].Value.ToString();
            dlg.textBoxNumber.Text = dataGridViewLongTerm.SelectedRows[0].Cells["Code"].Value.ToString();
            dlg.textBoxType.Text   = "ClosePosition";
            dlg.textBoxCount.Text  = dataGridViewLongTerm.SelectedRows[0].Cells["Amount"].Value.ToString();
            if (dlg.ShowDialog() == DialogResult.OK)
            {
                //update statistic data
                StockPool.LongTermTableDataTable longtermdt = (StockPool.LongTermTableDataTable)dataGridViewLongTerm.DataSource;
                StockPool.LongTermTableRow       row        = (StockPool.LongTermTableRow)longtermdt.Rows[dataGridViewLongTerm.SelectedRows[0].Index];
                decimal sellprice = Convert.ToDecimal(dlg.textBoxPrice.Text);
                decimal profit    = (sellprice - row.CostPrice) * row.Amount;
                m_statData.LongTermProfit        += profit;
                m_statData.LongTermLeftCash      += sellprice * row.Amount;
                m_statData.LongTermAvailableCash += sellprice * row.Amount + row.AvailableCash;
                //insertDealRecord
                DealRecordData data = new DealRecordData();
                data.Name   = dlg.textBoxName.Text;
                data.Type   = dlg.textBoxType.Text;
                data.Price  = dlg.textBoxPrice.Text;
                data.Count  = dlg.textBoxCount.Text;
                data.Pool   = "LongTermPool";
                data.Profit = profit.ToString();
                InsertDealRecord(data);
                //delete longterm record
                DeleteFromStockPool(dataGridViewLongTerm, dataGridViewLongTerm.SelectedRows[0].Index);
            }
        }
コード例 #3
0
ファイル: Form1.cs プロジェクト: zlkjj/StockAssistant
        private void underwweightToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (this.tabControl1.SelectedIndex != 2)
            {
                return;
            }

            DealDlg dlg = new DealDlg();

            dlg.textBoxName.Text   = dataGridViewTactical.SelectedRows[0].Cells["Name"].Value.ToString();
            dlg.textBoxNumber.Text = dataGridViewTactical.SelectedRows[0].Cells["Code"].Value.ToString();
            dlg.textBoxCount.Text  = dataGridViewTactical.SelectedRows[0].Cells["DealCount"].Value.ToString();
            dlg.textBoxType.Text   = "UnderWeight";
            if (dlg.ShowDialog() == DialogResult.OK)
            {
                decimal price = Convert.ToDecimal(dlg.textBoxPrice.Text);
                uint    count = Convert.ToUInt16(dlg.textBoxCount.Text);
                StockPool.LongTermTableDataTable dt  = (StockPool.LongTermTableDataTable)dataGridViewLongTerm.DataSource;
                StockPool.LongTermTableRow       row = (StockPool.LongTermTableRow)dt.Select("Name=" + dlg.textBoxName.Text)[0];
                decimal profit = (price - row.CostPrice) * count;
                row.AvailableCash           += price * count;
                m_statData.TacticalProfit   += profit;
                m_statData.LongTermLeftCash += price * count; //real left cash

                //delete tactical record
                DeleteFromStockPool(dataGridViewTactical, dataGridViewTactical.SelectedRows[0].Index);

                //insert deal record
                DealRecordData data = new DealRecordData();
                data.Name   = dlg.textBoxName.Text;
                data.Type   = dlg.textBoxType.Text;
                data.Price  = dlg.textBoxPrice.Text;
                data.Count  = dlg.textBoxCount.Text;
                data.Pool   = "TacticalPool";
                data.Profit = dlg.sellprofit.ToString();
                InsertDealRecord(data);
            }
        }
コード例 #4
0
ファイル: Form1.cs プロジェクト: zlkjj/StockAssistant
        private void BuyToolStripMenuItem_Click(object sender, EventArgs e)
        {
            DealDlg dlg = new DealDlg();

            if (this.tabControl1.SelectedIndex == 3)
            {//ShortTermPool
                if (dataGridViewShortTerm.SelectedRows.Count == 1)
                {
                    dlg.textBoxName.Text   = dataGridViewShortTerm.SelectedRows[0].Cells["Name"].Value.ToString();
                    dlg.textBoxNumber.Text = dataGridViewShortTerm.SelectedRows[0].Cells["Code"].Value.ToString();
                }
                dlg.textBoxType.Text = "Buy";

                if (dlg.ShowDialog() == DialogResult.OK)
                {
                    InsertShortTermPool(dlg, dataGridViewShortTerm);
                    DealRecordData data = new DealRecordData();
                    data.Name   = dlg.textBoxName.Text;
                    data.Type   = dlg.textBoxType.Text;
                    data.Price  = dlg.textBoxPrice.Text;
                    data.Count  = dlg.textBoxCount.Text;
                    data.Pool   = "ShortTermPool";
                    data.Profit = dlg.sellprofit.ToString();
                    InsertDealRecord(data);

                    //update Stastistic data
                    decimal price = Convert.ToDecimal(dlg.textBoxPrice.Text);
                    int     count = Convert.ToInt32(dlg.textBoxCount.Text);
                    decimal cash  = price * count;
                    m_statData.ShortTermLeftCash -= cash;
                }
            }
            else
            {
                return;
            }
        }
コード例 #5
0
ファイル: Form1.cs プロジェクト: zlkjj/StockAssistant
        private void overweightToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            if (this.tabControl1.SelectedIndex != 1)
            {
                return;
            }

            DealDlg dlg = new DealDlg();

            dlg.textBoxName.Text   = dataGridViewLongTerm.SelectedRows[0].Cells["Name"].Value.ToString();
            dlg.textBoxNumber.Text = dataGridViewLongTerm.SelectedRows[0].Cells["Code"].Value.ToString();
            dlg.textBoxType.Text   = "OverWeight";
            if (dlg.ShowDialog() == DialogResult.OK)
            {
                //update stock available cash in long term pool
                decimal price = Convert.ToDecimal(dlg.textBoxPrice.Text);
                uint    count = Convert.ToUInt16(dlg.textBoxCount.Text);
                StockPool.LongTermTableDataTable dt  = (StockPool.LongTermTableDataTable)dataGridViewLongTerm.DataSource;
                StockPool.LongTermTableRow       row = (StockPool.LongTermTableRow)dt.Rows[dataGridViewLongTerm.SelectedRows[0].Index];
                row.AvailableCash           -= price * count;
                m_statData.LongTermLeftCash -= price * count;

                //insert tactical record
                InsertTacticalPool(dlg, -1);

                //insert deal record
                DealRecordData data = new DealRecordData();
                data.Name   = dlg.textBoxName.Text;
                data.Type   = dlg.textBoxType.Text;
                data.Price  = dlg.textBoxPrice.Text;
                data.Count  = dlg.textBoxCount.Text;
                data.Pool   = "TacticalPool";
                data.Profit = dlg.sellprofit.ToString();
                InsertDealRecord(data);
            }
        }
コード例 #6
0
ファイル: Form1.cs プロジェクト: zlkjj/StockAssistant
        private void overweightToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            if (this.tabControl1.SelectedIndex != 1)
                return;

            DealDlg dlg = new DealDlg();
            dlg.textBoxName.Text = dataGridViewLongTerm.SelectedRows[0].Cells["Name"].Value.ToString();
            dlg.textBoxNumber.Text = dataGridViewLongTerm.SelectedRows[0].Cells["Code"].Value.ToString();
            dlg.textBoxType.Text = "OverWeight";
            if (dlg.ShowDialog() == DialogResult.OK)
            {
                //update stock available cash in long term pool
                decimal price = Convert.ToDecimal(dlg.textBoxPrice.Text);
                uint count = Convert.ToUInt16(dlg.textBoxCount.Text);
                StockPool.LongTermTableDataTable dt = (StockPool.LongTermTableDataTable)dataGridViewLongTerm.DataSource;
                StockPool.LongTermTableRow row = (StockPool.LongTermTableRow)dt.Rows[dataGridViewLongTerm.SelectedRows[0].Index];
                row.AvailableCash -= price * count;
                m_statData.LongTermLeftCash -= price * count;

                //insert tactical record
                InsertTacticalPool(dlg,-1);

                //insert deal record
                DealRecordData data = new DealRecordData();
                data.Name = dlg.textBoxName.Text;
                data.Type = dlg.textBoxType.Text;
                data.Price = dlg.textBoxPrice.Text;
                data.Count = dlg.textBoxCount.Text;
                data.Pool = "TacticalPool";
                data.Profit = dlg.sellprofit.ToString();
                InsertDealRecord(data);
            }
        }
コード例 #7
0
ファイル: Form1.cs プロジェクト: zlkjj/StockAssistant
        private void underwweightToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (this.tabControl1.SelectedIndex != 2)
                return;

            DealDlg dlg = new DealDlg();
            dlg.textBoxName.Text = dataGridViewTactical.SelectedRows[0].Cells["Name"].Value.ToString();
            dlg.textBoxNumber.Text = dataGridViewTactical.SelectedRows[0].Cells["Code"].Value.ToString();
            dlg.textBoxCount.Text = dataGridViewTactical.SelectedRows[0].Cells["DealCount"].Value.ToString();
            dlg.textBoxType.Text = "UnderWeight";
            if (dlg.ShowDialog() == DialogResult.OK)
            {
                decimal price = Convert.ToDecimal(dlg.textBoxPrice.Text);
                uint count = Convert.ToUInt16(dlg.textBoxCount.Text);
                StockPool.LongTermTableDataTable dt = (StockPool.LongTermTableDataTable)dataGridViewLongTerm.DataSource;
                StockPool.LongTermTableRow row = (StockPool.LongTermTableRow)dt.Select("Name=" + dlg.textBoxName.Text)[0];
                decimal profit = (price - row.CostPrice) * count;
                row.AvailableCash += price * count;
                m_statData.TacticalProfit += profit;                
                m_statData.LongTermLeftCash += price * count; //real left cash

                //delete tactical record
                DeleteFromStockPool(dataGridViewTactical, dataGridViewTactical.SelectedRows[0].Index);

                //insert deal record
                DealRecordData data = new DealRecordData();
                data.Name = dlg.textBoxName.Text;
                data.Type = dlg.textBoxType.Text;
                data.Price = dlg.textBoxPrice.Text;
                data.Count = dlg.textBoxCount.Text;
                data.Pool = "TacticalPool";
                data.Profit = dlg.sellprofit.ToString();
                InsertDealRecord(data);
            }
        }
コード例 #8
0
ファイル: Form1.cs プロジェクト: zlkjj/StockAssistant
        private void closePositionToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (this.tabControl1.SelectedIndex != 1)
                return;

            PositionDlg dlg = new PositionDlg();

            string name = dataGridViewLongTerm.SelectedRows[0].Cells["Name"].Value.ToString();
            StockPool.TacticalTableDataTable dt = (StockPool.TacticalTableDataTable)dataGridViewTactical.DataSource;
            if (dt.Select("Name=" + name).Length != 0)
            {
                MessageBox.Show("please underweight stock in tactical pool first");
                return;
            }           

            dlg.textBoxName.Text = dataGridViewLongTerm.SelectedRows[0].Cells["Name"].Value.ToString();
            dlg.textBoxNumber.Text = dataGridViewLongTerm.SelectedRows[0].Cells["Code"].Value.ToString();
            dlg.textBoxType.Text = "ClosePosition";
            dlg.textBoxCount.Text = dataGridViewLongTerm.SelectedRows[0].Cells["Amount"].Value.ToString();
            if (dlg.ShowDialog() == DialogResult.OK)
            {
                //update statistic data
                StockPool.LongTermTableDataTable longtermdt = (StockPool.LongTermTableDataTable)dataGridViewLongTerm.DataSource;
                StockPool.LongTermTableRow row = (StockPool.LongTermTableRow)longtermdt.Rows[dataGridViewLongTerm.SelectedRows[0].Index];
                decimal sellprice = Convert.ToDecimal(dlg.textBoxPrice.Text);
                decimal profit = (sellprice - row.CostPrice) * row.Amount;
                m_statData.LongTermProfit += profit;
                m_statData.LongTermLeftCash += sellprice * row.Amount;
                m_statData.LongTermAvailableCash += sellprice * row.Amount + row.AvailableCash;
                //insertDealRecord
                DealRecordData data = new DealRecordData();
                data.Name = dlg.textBoxName.Text;
                data.Type = dlg.textBoxType.Text;
                data.Price = dlg.textBoxPrice.Text;
                data.Count = dlg.textBoxCount.Text;
                data.Pool = "LongTermPool";
                data.Profit = profit.ToString() ;
                InsertDealRecord(data);
                //delete longterm record
                DeleteFromStockPool(dataGridViewLongTerm, dataGridViewLongTerm.SelectedRows[0].Index);
            }
            
        }
コード例 #9
0
ファイル: Form1.cs プロジェクト: zlkjj/StockAssistant
        //For ObservedPool and LongTerm pool
        private void openPosittionToolStripMenuItem_Click(object sender, EventArgs e)
        {
            PositionDlg dlg = new PositionDlg();

            switch (this.tabControl1.SelectedIndex)
            {
                case 0:
                    {
                        if (dataGridViewObserved.SelectedRows.Count != 1)
                            return;

                        dlg.textBoxName.Text = dataGridViewObserved.SelectedRows[0].Cells["Name"].Value.ToString();
                        dlg.textBoxNumber.Text = dataGridViewObserved.SelectedRows[0].Cells["Code"].Value.ToString();
                        dlg.textBoxType.Text = "OpenPosition";
                        if (dlg.ShowDialog() == DialogResult.OK)
                        {
                            InsertLongTermPool(dlg);
                            //InsertTacticalPool(dlg);
                            DealRecordData data = new DealRecordData();
                            data.Name = dlg.textBoxName.Text;
                            data.Type = dlg.textBoxType.Text;
                            data.Price = dlg.textBoxPrice.Text;
                            data.Count = dlg.textBoxCount.Text;
                            data.Pool = "LongTermPool";
                            data.Profit = dlg.sellprofit.ToString();
                            InsertDealRecord(data);
                            DeleteFromStockPool(dataGridViewObserved, dataGridViewObserved.SelectedRows[0].Index);
                            //update statistic data
                            decimal price = Convert.ToDecimal(dlg.textBoxPrice.Text);
                            uint count = Convert.ToUInt32(dlg.textBoxCount.Text);
                            if (dlg.comboBoxClassType.SelectedText == "High potential")
                                m_statData.LongTermAvailableCash -= price*count*2;
                            else
                                m_statData.LongTermAvailableCash -= price*count*5/3;
                            m_statData.LongTermLeftCash -= price * count;
                        }
                    }
                    break;
                case 1:
                    {
                        if (dataGridViewObserved.SelectedRows.Count != 0)
                            return;
                       
                        dlg.textBoxType.Text = "OpenPosition";
                        if (dlg.ShowDialog() == DialogResult.OK)
                        {
                            InsertLongTermPool(dlg);
                            //InsertTacticalPool(dlg);
                            DealRecordData data = new DealRecordData();
                            data.Name = dlg.textBoxName.Text;
                            data.Type = dlg.textBoxType.Text;
                            data.Price = dlg.textBoxPrice.Text;
                            data.Count = dlg.textBoxCount.Text;
                            data.Pool = "LongTermPool";
                            data.Profit = dlg.sellprofit.ToString();
                            InsertDealRecord(data);
                            
                            //update statistic data
                            decimal price = Convert.ToDecimal(dlg.textBoxPrice.Text);
                            uint count = Convert.ToUInt32(dlg.textBoxCount.Text);
                            if (dlg.comboBoxClassType.SelectedText == "High potential")
                                m_statData.LongTermAvailableCash -= price * count * 2;
                            else
                                m_statData.LongTermAvailableCash -= price * count * 5 / 3;
                            m_statData.LongTermLeftCash -= price * count;
                        }
                    }
                    break;
                default:
                    return;
            }
        }
コード例 #10
0
ファイル: Form1.cs プロジェクト: zlkjj/StockAssistant
        private void sellToolStripMenuItem_Click(object sender, EventArgs e)
        {
            DealDlg dlg = new DealDlg();

            if (this.tabControl1.SelectedIndex == 3)
            {//ShortTermPool
                if (dataGridViewShortTerm.SelectedRows.Count != 1)
                    return;

                dlg.textBoxName.Text = dataGridViewShortTerm.SelectedRows[0].Cells["Name"].Value.ToString();
                dlg.textBoxNumber.Text = dataGridViewShortTerm.SelectedRows[0].Cells["Code"].Value.ToString();
                dlg.textBoxType.Text = "Sell";

                if (dlg.ShowDialog() == DialogResult.OK)
                {
                    //decrese count from specific stockpool, if left count is 0, then delete item
                    decimal oriPrice = Convert.ToDecimal(dataGridViewShortTerm.SelectedRows[0].Cells["CostPrice"].Value.ToString());
                    decimal sellPrice = Convert.ToDecimal(dlg.textBoxPrice.Text);
                    dlg.sellprofit = (sellPrice - oriPrice) / oriPrice;
                    int count = Convert.ToInt32(dlg.textBoxCount.Text);
                    int current = Convert.ToInt32(dataGridViewShortTerm.SelectedRows[0].Cells["Amount"].Value.ToString());
                    int left = current - count;
                    if (left < 0)
                    {
                        MessageBox.Show("Count is more than the holding number.");
                        return;
                    }
                    else if (left == 0)
                    {
                        //delete item from gridview
                        //DataRowView view = gridview.SelectedRows[0].DataBoundItem as DataRowView;
                        //int index = view.Row.
                        DeleteFromStockPool(dataGridViewShortTerm, dataGridViewShortTerm.SelectedRows[0].Index);
                    }
                    else
                    {
                        dataGridViewShortTerm.SelectedRows[0].Cells["Amount"].Value = left;
                    }

                    //insert DealRecord
                    DealRecordData data = new DealRecordData();
                    data.Name = dlg.textBoxName.Text;
                    data.Type = dlg.textBoxType.Text;
                    data.Price = dlg.textBoxPrice.Text;
                    data.Count = dlg.textBoxCount.Text;
                    data.Pool = "ShortTermPool";
                    data.Profit = dlg.sellprofit.ToString();
                    InsertDealRecord(data);

                    //update Stastistic data      
                    m_statData.ShortTermProfit += dlg.sellprofit;
                    decimal cash = sellPrice * count;
                    m_statData.ShortTermLeftCash += cash;
                }                   
            }           
            else
                return;
        }       
コード例 #11
0
ファイル: Form1.cs プロジェクト: zlkjj/StockAssistant
 private void InsertDealRecord(DealRecordData data)
 {
     ListViewItem item = new ListViewItem(DateTime.Now.ToString("yyyy-MM-dd"));
     item.SubItems.Add(data.Name);
     item.SubItems.Add(data.Type);
     item.SubItems.Add(data.Price);
     item.SubItems.Add(data.Count);
     item.SubItems.Add(data.Pool);
     item.SubItems.Add(data.Profit);
     
     listView1.Items.Add(item);           
 }
コード例 #12
0
ファイル: Form1.cs プロジェクト: zlkjj/StockAssistant
        private void BuyToolStripMenuItem_Click(object sender, EventArgs e)
        {
            DealDlg dlg = new DealDlg();

            if (this.tabControl1.SelectedIndex == 3)
            {//ShortTermPool
                if (dataGridViewShortTerm.SelectedRows.Count == 1)
                {
                    dlg.textBoxName.Text = dataGridViewShortTerm.SelectedRows[0].Cells["Name"].Value.ToString();
                    dlg.textBoxNumber.Text = dataGridViewShortTerm.SelectedRows[0].Cells["Code"].Value.ToString();
                }
                dlg.textBoxType.Text = "Buy";                   
                        
                if (dlg.ShowDialog() == DialogResult.OK)
                {
                    InsertShortTermPool(dlg, dataGridViewShortTerm);
                    DealRecordData data = new DealRecordData();
                    data.Name = dlg.textBoxName.Text;
                    data.Type = dlg.textBoxType.Text;
                    data.Price = dlg.textBoxPrice.Text;
                    data.Count = dlg.textBoxCount.Text;
                    data.Pool = "ShortTermPool";
                    data.Profit = dlg.sellprofit.ToString();
                    InsertDealRecord(data);

                    //update Stastistic data
                    decimal price = Convert.ToDecimal(dlg.textBoxPrice.Text);
                    int count = Convert.ToInt32(dlg.textBoxCount.Text);
                    decimal cash = price * count;
                    m_statData.ShortTermLeftCash -= cash; 
                }                   
            }           
            else
                return;
        } 
コード例 #13
0
ファイル: Form1.cs プロジェクト: zlkjj/StockAssistant
        //For ObservedPool and LongTerm pool
        private void openPosittionToolStripMenuItem_Click(object sender, EventArgs e)
        {
            PositionDlg dlg = new PositionDlg();

            switch (this.tabControl1.SelectedIndex)
            {
            case 0:
            {
                if (dataGridViewObserved.SelectedRows.Count != 1)
                {
                    return;
                }

                dlg.textBoxName.Text   = dataGridViewObserved.SelectedRows[0].Cells["Name"].Value.ToString();
                dlg.textBoxNumber.Text = dataGridViewObserved.SelectedRows[0].Cells["Code"].Value.ToString();
                dlg.textBoxType.Text   = "OpenPosition";
                if (dlg.ShowDialog() == DialogResult.OK)
                {
                    InsertLongTermPool(dlg);
                    //InsertTacticalPool(dlg);
                    DealRecordData data = new DealRecordData();
                    data.Name   = dlg.textBoxName.Text;
                    data.Type   = dlg.textBoxType.Text;
                    data.Price  = dlg.textBoxPrice.Text;
                    data.Count  = dlg.textBoxCount.Text;
                    data.Pool   = "LongTermPool";
                    data.Profit = dlg.sellprofit.ToString();
                    InsertDealRecord(data);
                    DeleteFromStockPool(dataGridViewObserved, dataGridViewObserved.SelectedRows[0].Index);
                    //update statistic data
                    decimal price = Convert.ToDecimal(dlg.textBoxPrice.Text);
                    uint    count = Convert.ToUInt32(dlg.textBoxCount.Text);
                    if (dlg.comboBoxClassType.SelectedText == "High potential")
                    {
                        m_statData.LongTermAvailableCash -= price * count * 2;
                    }
                    else
                    {
                        m_statData.LongTermAvailableCash -= price * count * 5 / 3;
                    }
                    m_statData.LongTermLeftCash -= price * count;
                }
            }
            break;

            case 1:
            {
                if (dataGridViewObserved.SelectedRows.Count != 0)
                {
                    return;
                }

                dlg.textBoxType.Text = "OpenPosition";
                if (dlg.ShowDialog() == DialogResult.OK)
                {
                    InsertLongTermPool(dlg);
                    //InsertTacticalPool(dlg);
                    DealRecordData data = new DealRecordData();
                    data.Name   = dlg.textBoxName.Text;
                    data.Type   = dlg.textBoxType.Text;
                    data.Price  = dlg.textBoxPrice.Text;
                    data.Count  = dlg.textBoxCount.Text;
                    data.Pool   = "LongTermPool";
                    data.Profit = dlg.sellprofit.ToString();
                    InsertDealRecord(data);

                    //update statistic data
                    decimal price = Convert.ToDecimal(dlg.textBoxPrice.Text);
                    uint    count = Convert.ToUInt32(dlg.textBoxCount.Text);
                    if (dlg.comboBoxClassType.SelectedText == "High potential")
                    {
                        m_statData.LongTermAvailableCash -= price * count * 2;
                    }
                    else
                    {
                        m_statData.LongTermAvailableCash -= price * count * 5 / 3;
                    }
                    m_statData.LongTermLeftCash -= price * count;
                }
            }
            break;

            default:
                return;
            }
        }
コード例 #14
0
ファイル: Form1.cs プロジェクト: zlkjj/StockAssistant
        private void sellToolStripMenuItem_Click(object sender, EventArgs e)
        {
            DealDlg dlg = new DealDlg();

            if (this.tabControl1.SelectedIndex == 3)
            {//ShortTermPool
                if (dataGridViewShortTerm.SelectedRows.Count != 1)
                {
                    return;
                }

                dlg.textBoxName.Text   = dataGridViewShortTerm.SelectedRows[0].Cells["Name"].Value.ToString();
                dlg.textBoxNumber.Text = dataGridViewShortTerm.SelectedRows[0].Cells["Code"].Value.ToString();
                dlg.textBoxType.Text   = "Sell";

                if (dlg.ShowDialog() == DialogResult.OK)
                {
                    //decrese count from specific stockpool, if left count is 0, then delete item
                    decimal oriPrice  = Convert.ToDecimal(dataGridViewShortTerm.SelectedRows[0].Cells["CostPrice"].Value.ToString());
                    decimal sellPrice = Convert.ToDecimal(dlg.textBoxPrice.Text);
                    dlg.sellprofit = (sellPrice - oriPrice) / oriPrice;
                    int count   = Convert.ToInt32(dlg.textBoxCount.Text);
                    int current = Convert.ToInt32(dataGridViewShortTerm.SelectedRows[0].Cells["Amount"].Value.ToString());
                    int left    = current - count;
                    if (left < 0)
                    {
                        MessageBox.Show("Count is more than the holding number.");
                        return;
                    }
                    else if (left == 0)
                    {
                        //delete item from gridview
                        //DataRowView view = gridview.SelectedRows[0].DataBoundItem as DataRowView;
                        //int index = view.Row.
                        DeleteFromStockPool(dataGridViewShortTerm, dataGridViewShortTerm.SelectedRows[0].Index);
                    }
                    else
                    {
                        dataGridViewShortTerm.SelectedRows[0].Cells["Amount"].Value = left;
                    }

                    //insert DealRecord
                    DealRecordData data = new DealRecordData();
                    data.Name   = dlg.textBoxName.Text;
                    data.Type   = dlg.textBoxType.Text;
                    data.Price  = dlg.textBoxPrice.Text;
                    data.Count  = dlg.textBoxCount.Text;
                    data.Pool   = "ShortTermPool";
                    data.Profit = dlg.sellprofit.ToString();
                    InsertDealRecord(data);

                    //update Stastistic data
                    m_statData.ShortTermProfit += dlg.sellprofit;
                    decimal cash = sellPrice * count;
                    m_statData.ShortTermLeftCash += cash;
                }
            }
            else
            {
                return;
            }
        }