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")); }
//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)); }
public ActionResult Edit([Bind(Include = "SerialNumber,UserID,InsuranceName,PurchaseDate,WithdrawDate,PaymentPerYear,PayYear,PurchaseOrWithdraw,CashFlow,Withdrawal")] Insurances insurances) { if (ModelState.IsValid) { db.Entry(insurances).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(insurances)); }
public ActionResult Edit([Bind(Include = "SerialNumber,UserID,FundName,BuyOrSell,Fee,Units,Date,NAV,CashFlow")] Fund fund) { if (Session["User"] == null) { return(RedirectToRoute("Default", new { Controller = "Home", Action = "Index" })); } if (ModelState.IsValid) { db.Entry(fund).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(fund)); }
//Edit public ActionResult EditIinsurance(Insurances insurance) { if (ModelState.IsValid) { db.Entry(insurance).State = EntityState.Modified; var stdata = db.SummaryTable.Find(insurance.STID); if (insurance.PurchaseOrWithdraw == true) { stdata.TradeDate = insurance.PurchaseDate; var arr = db.CashExpense.Where(C => C.OID == insurance.STID).Select(C => C).SingleOrDefault(); arr.ExAmount = insurance.CashFlow; arr.ExDate = insurance.PurchaseDate; } else { stdata.TradeDate = insurance.WithdrawDate; var arr = db.CashIncome.Where(C => C.OID == insurance.STID).Select(C => C).SingleOrDefault(); arr.InAmount = -insurance.CashFlow; arr.InDate = insurance.PurchaseDate; } db.SaveChanges(); return(RedirectToAction("Index")); } return(View(insurance)); }
//Edit public ActionResult EditIinsurance(Fund fund) { if (ModelState.IsValid) { db.Entry(fund).State = EntityState.Modified; var stdata = db.SummaryTable.Find(fund.STID); if (fund.BuyOrSell == true) { stdata.TradeDate = fund.Date; var arr = db.CashExpense.Where(C => C.OID == fund.STID).Select(C => C).SingleOrDefault(); arr.ExAmount = Convert.ToInt32(fund.CashFlow); arr.ExDate = fund.Date; } else { stdata.TradeDate = fund.Date; var arr = db.CashIncome.Where(C => C.OID == fund.STID).Select(C => C).SingleOrDefault(); arr.InAmount = -Convert.ToInt32(fund.CashFlow); arr.InDate = fund.Date; } db.SaveChanges(); return(RedirectToAction("Index")); } return(View(fund)); }
//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)); }
//Edit Income public ActionResult EditExpense([Bind(Include = "ExCashID,UserID,ExCashType,ExAmount,ExDate,ExNote")] CashExpense cashExpense) { if (ModelState.IsValid) { db.Entry(cashExpense).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(cashExpense)); }
//Edit Income public ActionResult EditIncome([Bind(Include = "InCashID,UserName,InCashType,InAmount,InDate,InNote")] CashIncome cashIncome) { if (ModelState.IsValid) { db.Entry(cashIncome).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(cashIncome)); }
public ActionResult Edit([Bind(Include = "SerialNumber,UserID,FundName,BuyOrSell,Fee,Units,Date,NAV,CashFlow")] Fund fund) { if (ModelState.IsValid) { db.Entry(fund).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(fund)); }
public async Task <ActionResult> Edit([Bind(Include = "Id,UserName,MClass,NTD,USD,FX,tax,Ttime,TClass")] FXtradeTable tradeTable) { if (ModelState.IsValid) { db.Entry(tradeTable).State = EntityState.Modified; await db.SaveChangesAsync(); return(RedirectToAction("Index")); } return(View(tradeTable)); }
//Edit Expense public ActionResult EditExpense([Bind(Include = "ExCashID,UserID,ExCashType,ExAmount,ExDate,ExNote")] CashExpense cashExpense) { if (Session["User"] == null) { return(RedirectToRoute("Default", new { Controller = "Home", Action = "Index" })); } if (ModelState.IsValid) { db.Entry(cashExpense).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(cashExpense)); }
//[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)); }
public void Delete(int id) { FXtradeTable tt = dc.FXtradeTable.Find(id); if (tt == null) { return; } var name = Session["User"].ToString(); CashIncome cashincome = new CashIncome(); if (tt.TradeClass == "賣出") { CashExpense cashexpense = new CashExpense(); cashexpense.UserName = Session["User"].ToString(); var summary = dc.SummaryTable.Where(c => c.UserName == name).ToList(); cashexpense.OID = summary[0].STId; cashexpense.ExCashType = summary[0].TradeType; cashexpense.ExDate = summary[0].TradeDate; cashexpense.ExNote = "資料表刪除"; cashexpense.ExAmount = Convert.ToInt32(Math.Abs(tt.NTD.Value)); dc.CashExpense.Add(cashexpense); dc.FXtradeTable.Remove(tt); dc.SaveChanges(); UsersData usersData = new UsersData(); TestHomeController th = new TestHomeController(); var ud = th.GetUsersData(name); usersData.FXValue = th.SaveUserdata(name); usersData.UserName = ud[0].UserName; var cv = Math.Abs(tt.NTD.Value); usersData.CashValue = ud[0].CashValue - cv; 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; dc.Entry(usersData).State = EntityState.Modified; dc.SaveChanges(); } else { var summary = dc.SummaryTable.Where(c => c.UserName == name).ToList(); cashincome.UserName = name; cashincome.OID = summary[0].STId; cashincome.InCashType = summary[0].TradeType; cashincome.InDate = summary[0].TradeDate; cashincome.InNote = "資料表刪除"; var cv = Math.Abs(tt.NTD.Value); if (tt.TradeClass == "買入(不要連動新臺幣帳戶)") { cashincome.InAmount = 0; } else { cashincome.InAmount = Convert.ToInt32(cv); } dc.CashIncome.Add(cashincome); dc.FXtradeTable.Remove(tt); dc.SaveChanges(); UsersData usersData = new UsersData(); TestHomeController th = new TestHomeController(); var ud = th.GetUsersData(name); usersData.FXValue = th.SaveUserdata(name); usersData.UserName = ud[0].UserName; if (tt.TradeClass == "買入(不要連動新臺幣帳戶)") { usersData.CashValue = ud[0].CashValue; } else { usersData.CashValue = ud[0].CashValue + cv; } 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; dc.Entry(usersData).State = EntityState.Modified; dc.SaveChanges(); } }