Пример #1
0
        //Insert Expense
        public ActionResult InsertExpense([Bind(Include = "STId,TradeType,TradeDate,UserName")] SummaryTable summaryTable, [Bind(Include = "ExCashID,UserName,ExCashType,ExAmount,ExDate,ExNote")] CashExpense cashExpense)
        {
            if (Session["User"] == null)
            {
                return(RedirectToRoute("Default", new { Controller = "Home", Action = "Index" }));
            }

            summaryTable.TradeType = cashExpense.ExCashType;
            summaryTable.TradeDate = cashExpense.ExDate;
            summaryTable.UserName  = cashExpense.UserName;
            db.SummaryTable.Add(summaryTable);
            if (ModelState.IsValid)
            {
                db.CashExpense.Add(cashExpense);
                try
                {
                    db.SaveChanges();
                }
                catch (Exception er)
                {
                    throw er;
                }
                return(RedirectToAction("Index"));
            }

            return(View(cashExpense));
        }
Пример #2
0
        //Insert Income
        public ActionResult InsertIncome([Bind(Include = "STId,TradeType,TradeDate,UserName")] SummaryTable summaryTable, [Bind(Include = "InCashID,UserName,InCashType,InAmount,InDate,InNote")] CashIncome cashIncome)
        {
            if (Session["User"] == null)
            {
                return(RedirectToRoute("Default", new { Controller = "Home", Action = "Index" }));
            }

            if (ModelState.IsValid)
            {
                var username = Convert.ToString(Session["User"]);
                var Esum     = db.CashExpense.Sum(c => c.ExAmount).HasValue? db.CashExpense.Sum(c => c.ExAmount):0;
                var Isum     = (db.CashIncome.Sum(c => c.InAmount) + Convert.ToInt32(cashIncome.InAmount)).HasValue? db.CashIncome.Sum(c => c.InAmount) + Convert.ToInt32(cashIncome.InAmount):0;
                var net      = Isum - Esum;
                //算出現金淨值,更新至userdata的cashvalue
                var userdata = db.UsersData.Where(c => c.UserName == username).Select(c => c).SingleOrDefault();
                userdata.CashValue       = (double)net;
                db.Entry(userdata).State = EntityState.Modified;

                //新增總表資料
                summaryTable.TradeType = cashIncome.InCashType;
                summaryTable.TradeDate = cashIncome.InDate;
                summaryTable.UserName  = cashIncome.UserName;
                db.SummaryTable.Add(summaryTable);
                db.SaveChanges();

                //新增現金資產
                cashIncome.OID = summaryTable.STId;
                db.CashIncome.Add(cashIncome);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(cashIncome));
        }
Пример #3
0
        public ActionResult Withdraw(Insurances insurances)
        {
            if (Session["User"] == null)
            {
                return(RedirectToRoute("Default", new { Controller = "Home", Action = "Index" }));
            }

            Insurances olddata = db.Insurances.Find(insurances.SerialNumber);

            olddata.Withdrawed = true;
            db.SaveChanges();

            insurances.CashFlow           = insurances.Withdrawal;
            insurances.PurchaseOrWithdraw = false;
            insurances.Withdrawed         = true;
            insurances.RelateCash         = true;
            insurances.UserID             = Session["User"].ToString();
            SummaryTable ST = new SummaryTable {
                TradeType = "保險", TradeDate = insurances.WithdrawDate, UserName = insurances.UserID
            };

            db.SummaryTable.Add(ST);
            db.SaveChanges();
            var id = db.SummaryTable.Select(c => c.STId).ToList().LastOrDefault();

            insurances.STID = id;
            db.Insurances.Add(insurances);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Пример #4
0
        public ActionResult Withdraw(Insurances insurances)
        {
            insurances.CashFlow           = insurances.Withdrawal;
            insurances.PurchaseOrWithdraw = false;
            //insurances.UserID = Session["User"].ToString();

            db.Insurances.Add(insurances);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Пример #5
0
        //Insert Income
        public ActionResult InsertExpense([Bind(Include = "ExCashID,UserID,ExCashType,ExAmount,ExDate,ExNote")] CashExpense cashExpense)
        {
            if (ModelState.IsValid)
            {
                db.CashExpense.Add(cashExpense);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(cashExpense));
        }
Пример #6
0
        public ActionResult Create([Bind(Include = "SerialNumber,UserID,FundName,BuyOrSell,Fee,Units,Date,NAV,CashFlow")] Fund fund)
        {
            if (ModelState.IsValid)
            {
                db.Fund.Add(fund);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(fund));
        }
Пример #7
0
        //Insert Expense
        public ActionResult InsertExpense([Bind(Include = "STId,TradeType,TradeDate,UserName")] SummaryTable summaryTable, [Bind(Include = "ExCashID,UserName,ExCashType,ExAmount,ExDate,ExNote")] CashExpense cashExpense)
        {
            if (Session["User"] == null)
            {
                return(RedirectToRoute("Default", new { Controller = "Home", Action = "Index" }));
            }

            if (ModelState.IsValid)
            {
                var username = Convert.ToString(Session["User"]);
                var Esum     = (db.CashExpense.Sum(c => c.ExAmount) + Convert.ToInt32(cashExpense.ExAmount)).HasValue? db.CashExpense.Sum(c => c.ExAmount) + Convert.ToInt32(cashExpense.ExAmount):0;
                var Isum     = db.CashIncome.Sum(c => c.InAmount).HasValue? db.CashIncome.Sum(c => c.InAmount):0;
                var net      = Isum - Esum;
                //如果淨資產小於零,不給新增支出項目
                if (net - cashExpense.ExAmount < 0)
                {
                    return(Json(net - cashExpense.ExAmount, JsonRequestBehavior.AllowGet));
                }
                else
                {
                    //更新userdata的cashvalue
                    var userdata = db.UsersData.Where(c => c.UserName == username).Select(c => c).SingleOrDefault();
                    userdata.CashValue       = (double)net;
                    db.Entry(userdata).State = EntityState.Modified;
                    //新增總表資料
                    summaryTable.TradeType = cashExpense.ExCashType;
                    summaryTable.TradeDate = cashExpense.ExDate;
                    summaryTable.UserName  = cashExpense.UserName;
                    db.SummaryTable.Add(summaryTable);
                    //新增支出表資料
                    cashExpense.OID = summaryTable.STId;
                    db.CashExpense.Add(cashExpense);
                    try
                    {
                        db.SaveChanges();
                    }
                    catch (Exception er)
                    {
                        throw er;
                    }
                    return(RedirectToAction("Index"));
                }
            }
            return(View(cashExpense));
        }
        //Insert Income
        public ActionResult InsertIncome([Bind(Include = "STId,TradeType,TradeDate,UserName")] SummaryTable summaryTable, [Bind(Include = "InCashID,UserName,InCashType,InAmount,InDate,InNote")] CashIncome cashIncome)
        {
            summaryTable.TradeType = cashIncome.InCashType;
            summaryTable.TradeDate = cashIncome.InDate;
            summaryTable.UserName  = cashIncome.UserName;
            db.SummaryTable.Add(summaryTable);
            db.SaveChanges();

            cashIncome.OID = summaryTable.STId;
            if (ModelState.IsValid)
            {
                db.CashIncome.Add(cashIncome);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(cashIncome));
        }
Пример #9
0
        //[ValidateAntiForgeryToken]
        public ActionResult Create(FXtradeTable tradeTable, SummaryTable summaryTable)
        {
            if (ModelState.IsValid)
            {
                //var x = Session["User"].ToString();
                //var x = "5566";
                //summaryTable.UserName = x;
                db.SummaryTable.Add(summaryTable);
                db.SaveChanges();

                //summaryTable.UserName = "******";
                var uid = db.SummaryTable.Select(c => c.STId).ToList().LastOrDefault();
                tradeTable.SummaryId = uid;
                db.FXtradeTable.Add(tradeTable);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            return(View(tradeTable));
        }
Пример #10
0
        public ActionResult Create([Bind(Include = "TradeType,date,userID")] SummaryTable summaryTable, [Bind(Include = "stockID,stockPrice,stockAmount,stockTP,stockFee,stockTax,stockNetincome,stockNote")] StockHistory stockHistory)
        // public ActionResult Create([Bind(Include = "TradeType,userID,date")]SummaryTable summaryTable)
        {
            MyInvestEntities db = new MyInvestEntities();

            if (ModelState.IsValid)
            {
                summaryTable.UserName = Session["User"].ToString();

                db.SummaryTable.Add(summaryTable);
                db.SaveChanges();

                var id = db.SummaryTable.Select(c => c.STId).ToList().LastOrDefault();
                stockHistory.STId = id;
                db.StockHistory.Add(stockHistory);
                db.SaveChanges();
                ViewBag.state = "ok";
                return(RedirectToAction("Index"));
            }
            return(RedirectToAction("Index"));
        }
Пример #11
0
        //Insert Income
        public ActionResult InsertIncome([Bind(Include = "STId,TradeType,TradeDate,UserName")] SummaryTable summaryTable, [Bind(Include = "InCashID,UserName,InCashType,InAmount,InDate,InNote")] CashIncome cashIncome)
        {
            if (Session["User"] == null)
            {
                return(RedirectToRoute("Default", new { Controller = "Home", Action = "Index" }));
            }

            summaryTable.TradeType = cashIncome.InCashType;
            summaryTable.TradeDate = cashIncome.InDate;
            summaryTable.UserName  = cashIncome.UserName;
            db.SummaryTable.Add(summaryTable);
            db.SaveChanges();

            cashIncome.OID = summaryTable.STId;
            if (ModelState.IsValid)
            {
                db.CashIncome.Add(cashIncome);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(cashIncome));
        }
Пример #12
0
        public ActionResult Register(UsersData model)
        {
            MyInvestEntities db = new MyInvestEntities();

            var member = db.UsersData.Where(c => c.UserName == model.UserName || c.Email == model.Email).FirstOrDefault();

            //if (member == null)
            //{
            //雜湊
            byte[]        enc = System.Text.Encoding.Default.GetBytes(model.Password);
            HashAlgorithm ha  = HashAlgorithm.Create("SHA256");

            byte[] ans = ha.ComputeHash(enc);

            model.Password = BitConverter.ToString(ans);

            model.CashValue      = 0;
            model.StockValue     = 0;
            model.FXValue        = 0;
            model.InsuranceValue = 0;
            model.FundValue      = 0;

            //將會員記錄新增到Users資料表
            db.UsersData.Add(model);

            //儲存資料庫變更
            try
            {
                db.SaveChanges();
            }
            catch (System.Data.Entity.Validation.DbEntityValidationException ex)
            {
                throw ex;
            }

            Session["User"] = model.UserName;

            if (Session["User"].ToString() == "msit119")
            {
                return(RedirectToRoute("BStage_default", new { Controller = "BS", Action = "Index" }));
            }

            //執行Home控制器的Login動作方法
            return(RedirectToRoute("Main_default", new { Controller = "Home", Action = "Index" }));
        }
Пример #13
0
        public ActionResult ChangePasswordAdmin(ChangePasswordViewModel model)
        {
            //if (ModelState.IsValid)
            //{
            MyInvestEntities db = new MyInvestEntities();

            byte[]        enc = System.Text.Encoding.Default.GetBytes(model.OPassword);
            HashAlgorithm ha  = HashAlgorithm.Create("SHA256");

            byte[] ans = ha.ComputeHash(enc);

            model.OPassword = BitConverter.ToString(ans);

            var item = db.UsersData.Where(c => c.Password == model.OPassword).FirstOrDefault();


            if (item != null)
            {
                byte[] nenc = System.Text.Encoding.Default.GetBytes(model.Password);
                byte[] nans = ha.ComputeHash(nenc);

                model.Password = BitConverter.ToString(nans);

                item.Password   = model.Password;
                item.RememberMe = true;

                try
                {
                    db.SaveChanges();
                }
                catch (System.Data.Entity.Validation.DbEntityValidationException ex)
                {
                    throw ex;
                }

                return(RedirectToAction("Admin", "Account"));
            }
            else
            {
                ViewBag.Message = "原密碼錯誤";
                return(View("Index2"));
            }
        }
Пример #14
0
        // GET: Funds
        public ActionResult Index()
        {
            if (Session["User"] == null)
            {
                return(RedirectToRoute("Default", new { Controller = "Home", Action = "Index" }));
            }

            var UID   = Session["User"].ToString();
            var query = db.Fund.Where(F => F.UserID == UID);

            foreach (var item in query)
            {
                Fund   fund          = db.Fund.Find(item.SerialNumber);
                string FundName      = item.FundName;
                var    CurrentNAVstr = db.fund_data.Where(D => D.FundName == FundName).Select(D => D.FundNAV).ToArray();
                double CurrentNAV    = Convert.ToDouble(CurrentNAVstr[0]);
                fund.CurrentNAV = CurrentNAV;
            }
            db.SaveChanges();
            return(View(db.Fund.ToList()));
        }
Пример #15
0
        public ActionResult ForgotPassword(ForgotPasswordViewModel model)
        {
            //if (ModelState.IsValid)
            //{
            MyInvestEntities db = new MyInvestEntities();

            var item = db.UsersData.Where(c => (c.UserName == model.UserName && c.Email == model.Email)).FirstOrDefault();

            if (item != null)
            {
                Random r = new Random();

                string code = "";

                for (int i = 0; i < 10; ++i)
                {
                    switch (r.Next(0, 3))
                    {
                    //數字0~9
                    case 0: code += r.Next(0, 10); break;

                    //小寫a-z
                    case 1: code += (char)r.Next(65, 91); break;

                    //大寫A-Z
                    case 2: code += (char)r.Next(97, 122); break;
                    }
                }

                System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
                msg.To.Add(model.Email);
                //msg.CC.Add("*****@*****.**");可以抄送副本給多人
                //這裡可以隨便填,不是很重要
                msg.From = new MailAddress("*****@*****.**", "$$$", System.Text.Encoding.UTF8);
                /* 上面3個參數分別是發件人地址(可以隨便寫),發件人姓名,編碼*/
                msg.Subject         = "測試標題";                    //郵件標題
                msg.SubjectEncoding = System.Text.Encoding.UTF8; //郵件標題編碼
                msg.Body            = $"新密碼為:<span style='color:red'>{code}</span><br> 請依此登入重新設定密碼!";
                //郵件內容
                msg.BodyEncoding = System.Text.Encoding.UTF8; //郵件內容編碼
                                                              //msg.Attachments.Add(new Attachment(@"D:\test2.docx"));  //附件
                msg.IsBodyHtml = true;                        //是否是HTML郵件
                                                              //msg.Priority = MailPriority.High;//郵件優先級

                SmtpClient client = new SmtpClient();
                client.Credentials = new System.Net.NetworkCredential("*****@*****.**", "msit1199"); //這裡要填正確的帳號跟密碼
                client.Host        = "smtp.gmail.com";                                                            //設定smtp Server
                client.Port        = 25;                                                                          //設定Port
                client.EnableSsl   = true;                                                                        //gmail預設開啟驗證
                client.Send(msg);                                                                                 //寄出信件
                client.Dispose();
                msg.Dispose();

                //System.Timers.Timer timer = new System.Timers.Timer();

                //timer.Enabled = true;
                //timer.Interval = 3000000; // 5分鐘後驗證碼失效
                //timer.Start();
                //timer.Elapsed += Timer_Elapsed;
                //timer.AutoReset = false;

                //return RedirectToAction("ConfirmEmail","Account");

                byte[]        enc = System.Text.Encoding.Default.GetBytes(code);
                HashAlgorithm ha  = HashAlgorithm.Create("SHA256");
                byte[]        ans = ha.ComputeHash(enc);

                item.Password = BitConverter.ToString(ans);

                //item.Password = code;

                try
                {
                    db.SaveChanges();
                }
                catch (System.Data.Entity.Validation.DbEntityValidationException ex)
                {
                    throw ex;
                }
                TempData["Request"]  = "已於Email寄出新密碼";
                TempData["Request2"] = "請以新密碼登入並修改密碼";
                return(RedirectToAction("Index", "Home"));
            }
            else
            {
                ViewBag.Message = "查無此人,請確認使用者名稱或Email正確";
                //return View("Index2");
                return(View());
            }
        }
Пример #16
0
        public ActionResult CreateStockBuy([Bind(Include = "TradeType,TradeDate,UserName")] SummaryTable summaryTable, [Bind(Include = "stockID,stockPrice,stockAmount,stockFee,stockTax,stockTP,stockNetincome,stockNote,CashAccount")] StockHistory stockHistory, UsersData userdata)
        {
            if (Session["User"] == null)
            {
                return(RedirectToRoute("Default", new { Controller = "Home", Action = "Index" }));
            }

            if (ModelState.IsValid)
            {
                //存入總表獲得交易序號
                db.SummaryTable.Add(summaryTable);
                db.SaveChanges();
                var  id       = db.SummaryTable.Select(c => c.STId).ToList().LastOrDefault();
                bool cashflag = false;
                if (stockHistory.CashAccount)
                {
                    CashExpense expense = new CashExpense();
                    expense.OID        = id;
                    expense.UserName   = summaryTable.UserName;
                    expense.ExCashType = summaryTable.TradeType;
                    expense.ExAmount   = (stockHistory.stockNetincome) * (-1);
                    expense.ExDate     = summaryTable.TradeDate;
                    expense.ExNote     = "買進股票";
                    cashflag           = true;
                    db.CashExpense.Add(expense);
                    db.SaveChanges();
                }
                //存入股票交易紀錄表
                stockHistory.STId        = id;
                stockHistory.stockAmount = stockHistory.stockAmount * 1000;
                AVGCalculator calculator = new AVGCalculator();
                string        _username  = Session["User"].ToString();
                string        _searchid  = stockHistory.stockID.ToString();
                int           _invchange = (int)stockHistory.stockAmount;
                int           _cashflow  = (int)stockHistory.stockNetincome;
                stockHistory.stockLastAVG = calculator.GetAvg(_username, _searchid, _invchange, _cashflow);
                db.StockHistory.Add(stockHistory);
                db.SaveChanges();

                //計算股票現值
                var     name  = summaryTable.UserName;
                decimal pvsum = calculator.getPVsum(name);
                var     ud    = calculator.GetUserdata(name);

                userdata.StockValue      = (double)pvsum;
                userdata.UserName        = ud[0].UserName;
                userdata.CashValue       = (cashflag)? (ud[0].CashValue + Math.Abs((double)stockHistory.stockNetincome)): ud[0].CashValue;
                userdata.Password        = ud[0].Password;
                userdata.Email           = ud[0].Email;
                userdata.FXValue         = ud[0].FXValue;
                userdata.InsuranceValue  = ud[0].InsuranceValue;
                userdata.FundValue       = ud[0].FundValue;
                db.Entry(userdata).State = EntityState.Modified;
                db.SaveChanges();

                return(RedirectToAction("Index"));
            }

            return(RedirectToAction("Index"));
        }
Пример #17
0
 public void Post([FromBody] FXtradeTable tt)
 {
     dc.FXtradeTable.Add(tt);
     dc.SaveChanges();
 }
Пример #18
0
        public ActionResult Withdraw(Insurances insurances)
        {
            if (Session["User"] == null)
            {
                return(RedirectToRoute("Default", new { Controller = "Home", Action = "Index" }));
            }

            if (ModelState.IsValid)
            {
                SummaryTable ST = new SummaryTable
                {
                    TradeType = "保險",
                    TradeDate = insurances.WithdrawDate,
                    UserName  = Session["User"].ToString()
                };



                Insurances olddata = db.Insurances.Find(insurances.SerialNumber);
                olddata.Withdrawed = true;
                db.SaveChanges();

                insurances.PurchaseOrWithdraw = false;
                insurances.Withdrawed         = true;

                insurances.UserID = Session["User"].ToString();
                if (insurances.RelateCash == true)
                {
                    insurances.CashFlow = insurances.Withdrawal;
                    db.SummaryTable.Add(ST);
                    db.SaveChanges();

                    var id = db.SummaryTable.Select(c => c.STId).ToList().LastOrDefault();
                    insurances.STID = id;
                    db.Insurances.Add(insurances);
                    db.SaveChanges();

                    var User = db.UsersData.Where(U => U.UserName == insurances.UserID).Select(U => U).SingleOrDefault();
                    User.InsuranceValue -= insurances.Withdrawal;
                    User.CashValue      += insurances.Withdrawal;
                    db.SaveChanges();

                    CashIncome CI = new CashIncome
                    {
                        OID        = id,
                        UserName   = insurances.UserID,
                        InCashType = "保險",
                        InAmount   = insurances.CashFlow,
                        InDate     = insurances.WithdrawDate,
                        InNote     = insurances.InsuranceName + "解約金"
                    };

                    db.CashIncome.Add(CI);
                    db.SaveChanges();
                    return(RedirectToAction("Index"));
                }
                else
                {
                    insurances.CashFlow = 0;
                    db.SummaryTable.Add(ST);
                    db.SaveChanges();

                    var id = db.SummaryTable.Select(c => c.STId).ToList().LastOrDefault();
                    insurances.STID = id;
                    db.Insurances.Add(insurances);
                    db.SaveChanges();

                    var User = db.UsersData.Where(U => U.UserName == insurances.UserID).Select(U => U).SingleOrDefault();
                    User.InsuranceValue -= insurances.Withdrawal;
                    User.CashValue      += insurances.Withdrawal;
                    db.SaveChanges();

                    return(RedirectToAction("Index"));
                }
            }
            return(View(insurances));
        }
Пример #19
0
        public ActionResult CreateStockBuy([Bind(Include = "TradeType,TradeDate,UserName")] SummaryTable summaryTable, [Bind(Include = "stockID,stockPrice,stockAmount,stockFee,stockTax,stockNetincome,stockNote,CashAccount")] StockHistory stockHistory)
        {
            if (ModelState.IsValid)
            {
                //存入總表獲得交易序號
                db.SummaryTable.Add(summaryTable);
                db.SaveChanges();
                var id = db.SummaryTable.Select(c => c.STId).ToList().LastOrDefault();
                if (stockHistory.CashAccount)
                {
                    CashExpense expense = new CashExpense();
                    expense.OID        = id;
                    expense.UserName   = summaryTable.UserName;
                    expense.ExCashType = summaryTable.TradeType;
                    expense.ExAmount   = (stockHistory.stockNetincome) * (-1);
                    expense.ExDate     = summaryTable.TradeDate;
                    expense.ExNote     = "買進股票";
                    db.CashExpense.Add(expense);
                    db.SaveChanges();
                }
                //存入股票交易紀錄表
                stockHistory.STId        = id;
                stockHistory.stockAmount = stockHistory.stockAmount * 1000;
                db.StockHistory.Add(stockHistory);
                db.SaveChanges();
                ViewBag.Alert = "alert('新增成功')";
                return(RedirectToAction("Index"));
            }

            return(RedirectToAction("Index"));
        }
Пример #20
0
        //[ValidateAntiForgeryToken]
        public ActionResult Create(FXtradeTable tradeTable, SummaryTable summaryTable, UsersData usersData)
        {
            if (ModelState.IsValid)
            {
                //存總表
                db.SummaryTable.Add(summaryTable);
                db.SaveChanges();

                //存外匯交易表
                var uid = db.SummaryTable.Select(c => c.STId).ToList().LastOrDefault();
                tradeTable.SummaryId = uid;
                db.FXtradeTable.Add(tradeTable);
                db.SaveChanges();
                if (tradeTable.TradeClass == "賣出")
                {
                    CashIncome cashincome = new CashIncome();
                    cashincome.UserName   = Session["User"].ToString();
                    cashincome.OID        = uid;
                    cashincome.InCashType = summaryTable.TradeType;
                    cashincome.InDate     = summaryTable.TradeDate;
                    cashincome.InNote     = tradeTable.TradeClass;
                    var change = tradeTable.NTD * -1;
                    cashincome.InAmount = Convert.ToInt32(change);
                    db.CashIncome.Add(cashincome);
                    db.SaveChanges();
                    //更新個人資產表
                    TestHomeController th = new TestHomeController();
                    var name = summaryTable.UserName;
                    var ud   = th.GetUsersData(name);

                    usersData.FXValue  = th.SaveUserdata(name);
                    usersData.UserName = ud[0].UserName;
                    var cv = Math.Abs(tradeTable.NTD.Value);
                    usersData.CashValue       = ud[0].CashValue + tradeTable.NTD;
                    usersData.InsuranceValue  = ud[0].InsuranceValue;
                    usersData.StockValue      = ud[0].StockValue;
                    usersData.FundValue       = ud[0].FundValue;
                    usersData.Email           = ud[0].Email;
                    usersData.Password        = ud[0].Password;
                    db.Entry(usersData).State = EntityState.Modified;
                    db.SaveChanges();
                }
                else
                {
                    CashExpense cashexpense = new CashExpense();
                    cashexpense.UserName   = Session["User"].ToString();
                    cashexpense.OID        = uid;
                    cashexpense.ExCashType = summaryTable.TradeType;
                    cashexpense.ExDate     = summaryTable.TradeDate;
                    cashexpense.ExNote     = tradeTable.TradeClass;
                    if (tradeTable.TradeClass == "買入(不要連動新臺幣帳戶)")
                    {
                        cashexpense.ExAmount = 0;
                    }
                    else
                    {
                        cashexpense.ExAmount = Convert.ToInt32(tradeTable.NTD);
                    }
                    db.CashExpense.Add(cashexpense);
                    db.SaveChanges();
                    //更新個人資產表
                    TestHomeController th = new TestHomeController();
                    var name = summaryTable.UserName;
                    var ud   = th.GetUsersData(name);

                    usersData.FXValue  = th.SaveUserdata(name);
                    usersData.UserName = ud[0].UserName;
                    var cv = Math.Abs(tradeTable.NTD.Value);
                    if (tradeTable.TradeClass == "買入(不要連動新臺幣帳戶)")
                    {
                        usersData.CashValue = ud[0].CashValue;
                    }
                    else
                    {
                        usersData.CashValue = ud[0].CashValue - tradeTable.NTD;
                    }
                    usersData.InsuranceValue  = ud[0].InsuranceValue;
                    usersData.StockValue      = ud[0].StockValue;
                    usersData.FundValue       = ud[0].FundValue;
                    usersData.Email           = ud[0].Email;
                    usersData.Password        = ud[0].Password;
                    db.Entry(usersData).State = EntityState.Modified;
                    db.SaveChanges();
                }

                return(RedirectToAction("Index"));
            }
            return(View(tradeTable));
        }
Пример #21
0
        public ActionResult CreateStockBuy([Bind(Include = "TradeType,TradeDate,UserName")] SummaryTable summaryTable, [Bind(Include = "stockID,stockPrice,stockAmount,stockFee,stockTax,stockNetincome,stockNote,CashAccount")] StockHistory stockHistory)
        {
            if (Session["User"] == null)
            {
                return(RedirectToRoute("Default", new { Controller = "Home", Action = "Index" }));
            }

            if (ModelState.IsValid)
            {
                //存入總表獲得交易序號
                db.SummaryTable.Add(summaryTable);
                db.SaveChanges();
                var id = db.SummaryTable.Select(c => c.STId).ToList().LastOrDefault();
                if (stockHistory.CashAccount)
                {
                    CashExpense expense = new CashExpense();
                    expense.OID        = id;
                    expense.UserName   = summaryTable.UserName;
                    expense.ExCashType = summaryTable.TradeType;
                    expense.ExAmount   = (stockHistory.stockNetincome) * (-1);
                    expense.ExDate     = summaryTable.TradeDate;
                    expense.ExNote     = "買進股票";
                    db.CashExpense.Add(expense);
                    db.SaveChanges();
                }
                //存入股票交易紀錄表
                stockHistory.STId        = id;
                stockHistory.stockAmount = stockHistory.stockAmount * 1000;
                AVGCalculator calculator = new AVGCalculator();
                string        _username  = Session["User"].ToString();
                string        _searchid  = stockHistory.stockID.ToString();
                int           _invchange = (int)stockHistory.stockAmount;
                int           _cashflow  = (int)stockHistory.stockNetincome;
                stockHistory.stockLastAVG = calculator.GetAvg(_username, _searchid, _invchange, _cashflow);
                db.StockHistory.Add(stockHistory);
                db.SaveChanges();
                ViewBag.Alert = "alert('新增成功')";
                return(RedirectToAction("Index"));
            }

            return(RedirectToAction("Index"));
        }