Example #1
0
        /// <summary>
        /// 同步下载
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public IHttpActionResult GetMyStocks()
        {
            var user_id = this.User.Identity.Name;
            var list    = service.GetMyStock(user_id);

            //IList<string> codeList = list.Select(p => p.).ToList();

            var query = from t in list
                        select new Stock
            {
                code   = t.stock_code,
                symbol = t.stock.symbol,
                name   = t.stock.name,
                sort   = t.sort,
                inhand = t.inhand ?? true
            };
            decimal version = versionService.GetUserDataVersion(user_id, dm.DataVersionCode.my_stock.ToString());

            var myStock = new MyStock()
            {
                user_id = user_id,
                stocks  = query.ToList(),
                version = version
            };

            return(Ok <MyStock>(myStock));
        }
        /*
         * Method used to show Sell options on tap; created for TappedCommand
         *
         * @arg
         *  argument
         */
        private async void TappedStock(object arg)
        {
            IList <Stock> stocks  = new List <Stock>();
            MyStock       myStock = (MyStock)arg;

            // Change IsVisible property based on the last tapped item
            if (myStock == LastTappedStock)
            {
                LastTappedStock.IsVisible = !LastTappedStock.IsVisible;
            }
            else
            {
                myStock.IsVisible         = true;
                LastTappedStock.IsVisible = false;
                LastTappedStock           = myStock;
            }
            if (LastTappedStock.IsVisible)
            {
                // Show current price when stock is tapped
                stocks = await FirestoreDatabase.RetrieveStock(LastTappedStock.ShortName);

                NowPrice = stocks[0].NowPrice;
            }
            OnPropertyChanged("IsVisible");
            OnPropertyChanged("NowPrice");
            UpdateList();
        }
Example #3
0
        // Method used to notify the app that the response from the server was received and how to handle the response
        public void OnComplete(Android.Gms.Tasks.Task task)
        {
            if (task.IsSuccessful)
            {
                var documents = (QuerySnapshot)task.Result;
                MyStocks.Clear();
                foreach (var doc in documents.Documents)
                {
                    MyStock stock = new MyStock()
                    {
                        MyStockId = doc.Id,
                        ShortName = (string)doc.Get("shortname"),
                        LongName  = (string)doc.Get("longname"),
                        BuyPrice  = (double)doc.Get("buyprice"),
                        Quantity  = (int)doc.Get("quantity"),
                        RonRate   = (double)doc.Get("ronrate"),
                        ImageUri  = ImageSource.FromUri(new Uri((string)doc.Get("imageuri")))
                    };

                    // Convert the BuyPrice to the rate at which the stock was bought
                    if (CrossMultilingual.Current.CurrentCultureInfo.TwoLetterISOLanguageName.Equals("ro"))
                    {
                        stock.BuyPrice = stock.BuyPrice * stock.RonRate;
                    }
                    MyStocks.Add(stock);
                }
            }
            else
            {
                MyStocks.Clear();
            }
            hasReadStocks = true;
        }
Example #4
0
 //나의 주식함수를 불러서 내가 소유중인 주식 스크립트 배열을 사용한다
 //기본적인 초기화 실시
 void Start()
 {
     mystockOnOff             = FindObjectOfType <MyStock>();
     sellStockCountPanel.text = "0";
     buyStockCountPanel.text  = "0";
     theStat = FindObjectOfType <PlayerStatManager>();
 }
Example #5
0
 /*
  * Method used to delete a stock owned by a user
  * @mystock
  *  The stock to be deleted
  */
 public bool DeleteMyStock(MyStock mystock)
 {
     try
     {
         var collection = Firebase.Firestore.FirebaseFirestore.Instance.Collection("mystocks");
         collection.Document(mystock.MyStockId).Delete();
         return(true);
     }
     catch (Exception)
     {
         return(false);
     }
 }
Example #6
0
 /*
  * Method used to update the quantity of a stock owned, after selling
  * @mystock
  *  The stock to be updated
  * @quantity
  *  The quantity with which the owned stock's quantity will be updated
  */
 public bool UpdateMyStock(MyStock mystock, int quantity)
 {
     try
     {
         var collection = Firebase.Firestore.FirebaseFirestore.Instance.Collection("mystocks");
         collection.Document(mystock.MyStockId).Update("quantity", mystock.Quantity + quantity);
         return(true);
     }
     catch (Exception)
     {
         return(false);
     }
 }
    private void BindData()
    {
        MyStock stock1 = new MyStock {
            Product_Id = 1, Stock = "Stock 1"
        };
        MyStock stock2 = new MyStock {
            Product_Id = 2, Stock = "Stock 2"
        };

        dListProduct.DataSource = new List <MyStock> {
            stock1, stock2
        };
        dListProduct.DataBind();
    }
Example #8
0
        private static void Time_Tick(object source, System.Timers.ElapsedEventArgs e)
        {
            if (DataChangedEvent.GetInvocationList().Count() <= 0)
            {
                return;
            }

            RefreshStockPriceFromWeb(MyStock.Where(r => !r.IsSilver).ToList());
            RefreshSilverPrice(MyStock.Where(r => r.IsSilver).FirstOrDefault());

            OnDataChanged(new DataEventArgs()
            {
                Stocks = MyStock
            });
        }
        public ActionResult Remove_Order(int?id)
        {
            if (id == null)
            {
                return(HttpNotFound());
            }
            MyStock mt = db.MyStocks.Find(id);

            db.MyStocks.Remove(mt);
            int r = db.SaveChanges();

            if (r > 0)
            {
                return(RedirectToAction("PurchaseItems"));
            }
            return(RedirectToAction("PurchaseItems"));
        }
Example #10
0
        public IHttpActionResult PostMyStocks(MyStock myStock)
        {
            IList <dm.stock_user_map> list = (from t in myStock.stocks
                                              select new dm.stock_user_map
            {
                group_name = "default",
                user_id = myStock.user_id,
                stock_code = t.code,
                inhand = t.inhand,
                sort = t.sort
            }).ToList();

            service.SyncMyStock(myStock.user_id, list);
            versionService.UpdateUserDataVersion(myStock.user_id, dm.DataVersionCode.my_stock.ToString(), myStock.version);

            return(Ok <Message>(new Message {
                success = true
            }));
        }
Example #11
0
        /*
         * Method used to insert a stock into the user's portofolio (buying operation)
         * @mystock
         *  The stock to be inserted
         */
        public async Task <bool> InsertMyStock(Stock mystock, string UserId, int quantity)
        {
            try
            {
                // If budget does not allow, user cannot buy the stock
                bool canBuy = App.myUser.UpdateBudget(UserId, quantity, mystock.NowPrice);
                if (!canBuy)
                {
                    return(false);
                }
                var collection = Firebase.Firestore.FirebaseFirestore.Instance.Collection("mystocks");

                // Verify that the stock is already owned or not
                MyQuery myQuery     = new MyQuery();
                MyStock UpdateStock = await myQuery.UpdateQuery(mystock, UserId);

                if (UpdateStock != null)
                {
                    UpdateMyStock(UpdateStock, quantity);
                    return(true);
                }

                var stock = new Dictionary <string, Java.Lang.Object>
                {
                    { "userid", UserId },
                    { "shortname", mystock.ShortName },
                    { "longname", mystock.LongName },
                    { "quantity", quantity },
                    // has Uri: in front of the actual Uri
                    { "imageuri", mystock.ImageUri.ToString().Remove(0, 5) },
                    { "ronrate", (double)App.Current.Properties["rate"] },
                    { "buyprice", Math.Round(CrossMultilingual.Current.CurrentCultureInfo.TwoLetterISOLanguageName.Equals("ro") ?
                                             mystock.NowPrice / (double)App.Current.Properties["rate"] : mystock.NowPrice, 2) }
                };
                collection.Add(stock);
                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
Example #12
0
        public ActionResult Delete_Item(int id, int invoice, int quantity, int item_id_in_sell)
        {
            //MyStock mm = db.MyStocks.Find(id);
            //db.MyStocks.Remove(mm);
            //db.SaveChanges();



            ViewBag.preQuantity = from TotalItemsQuantity in db.TotalItemsQuantitys.Where(z => z.id == id) select TotalItemsQuantity;
            foreach (var mm in ViewBag.preQuantity)
            {
                ViewBag.c = mm.quantity;
            }
            int pp     = Convert.ToInt32(ViewBag.c);
            int total  = pp - quantity;
            var itemid = db.TotalItemsQuantitys.Where(x => x.id == id).ToList();

            foreach (var vm in itemid)
            {
                vm.quantity = total;
                db.SaveChanges();
            }


            MyStock mdd = db.MyStocks.Find(item_id_in_sell);

            db.MyStocks.Remove(mdd);
            //db.SaveChanges();
            //here i am deleting order item if user dont want to confirm that order
            //MyStock md = db.MyStocks.Find(item_id_in_sell);
            //db.MyStocks.Remove(md);
            int res = db.SaveChanges();

            if (res > 0)
            {
                var query = from v in db.MyStocks.Where(x => x.invoice == invoice) select v;
                return(View(query));
            }


            return(RedirectToAction("Item_Stock"));
        }
Example #13
0
 // Method used to notify the app that the response from the server was received and how to handle the response
 public void OnComplete(Android.Gms.Tasks.Task task)
 {
     if (task.IsSuccessful)
     {
         var document = (QuerySnapshot)task.Result;
         foreach (var doc in document.Documents)
         {
             myStock = new MyStock
             {
                 MyStockId = doc.Id,
                 ShortName = (string)doc.Get("shortname"),
                 LongName  = (string)doc.Get("longname"),
                 BuyPrice  = (double)doc.Get("buyprice"),
                 Quantity  = (int)doc.Get("quantity"),
                 ImageUri  = (string)doc.Get("imageuri"),
             };
         }
         hasFoundDoc = true;
     }
 }
 // Deletes a stock owned by the user
 public static bool DeleteMyStock(MyStock mystock)
 {
     return(Myfirestore.DeleteMyStock(mystock));
 }
Example #15
0
        public override void ReceivedData(AxKHOpenAPILib.AxKHOpenAPI axKHOpenAPI, AxKHOpenAPILib._DKHOpenAPIEvents_OnReceiveTrDataEvent e)
        {
            FileLog.PrintF("ReceivedData OPT10085");
            //try {

            /*
             * sScrNo – 화면번호
             * sRQName – 사용자구분 명
             * sTrCode – Tran 명
             * sRecordName – Record 명
             * sPreNext – 연속조회 유무
             */
            String 계좌번호 = "XXXXXXXXXX";
            int    nCnt = axKHOpenAPI.GetRepeatCnt(e.sTrCode, e.sRQName);
            String keyStockCodeLayout = "sRQName:{0}|sTrCode:{1}|sScreenNo:{2}";
            String keyStockCode       = String.Format(keyStockCodeLayout
                                                      , e.sRQName
                                                      , e.sTrCode
                                                      , e.sScrNo
                                                      );

            계좌번호 = AppLib.getClass1Instance().getStockCode(keyStockCode);

            String keyLayout = "sRQName:{0}|sTrCode:{1}|sScreenNo:{2}|accountNum:{3}";
            String key       = String.Format(keyLayout
                                             , e.sRQName
                                             , e.sTrCode
                                             , e.sScrNo
                                             , 계좌번호
                                             );

            List <OPT10085_Data> opt10085_DataList = new List <OPT10085_Data>();


            if (nCnt > 0)
            {
                for (int i = 0; i < nCnt; i++)
                {
                    FileLog.PrintF("OPT10085 ReceivedData 구매일자 =>" + axKHOpenAPI.CommGetData(e.sTrCode, "", e.sRQName, i, "일자").Trim());         //[0]
                    FileLog.PrintF("OPT10085 ReceivedData 종목코드 =>" + axKHOpenAPI.CommGetData(e.sTrCode, "", e.sRQName, i, "종목코드").Trim());       //[1]
                    FileLog.PrintF("OPT10085 ReceivedData 종목명 =>" + axKHOpenAPI.CommGetData(e.sTrCode, "", e.sRQName, i, "종목명").Trim());         //[2]
                    FileLog.PrintF("OPT10085 ReceivedData 현재가 =>" + axKHOpenAPI.CommGetData(e.sTrCode, "", e.sRQName, i, "현재가").Trim());         //[3]
                    FileLog.PrintF("OPT10085 ReceivedData 매입가 =>" + axKHOpenAPI.CommGetData(e.sTrCode, "", e.sRQName, i, "매입가").Trim());         //[4]
                    FileLog.PrintF("OPT10085 ReceivedData 매입금액 =>" + axKHOpenAPI.CommGetData(e.sTrCode, "", e.sRQName, i, "매입금액").Trim());       //[5]
                    FileLog.PrintF("OPT10085 ReceivedData 보유수량 =>" + axKHOpenAPI.CommGetData(e.sTrCode, "", e.sRQName, i, "보유수량").Trim());       //[6]
                    FileLog.PrintF("OPT10085 ReceivedData 당일매도손익 =>" + axKHOpenAPI.CommGetData(e.sTrCode, "", e.sRQName, i, "당일매도손익").Trim());   //[7]
                    FileLog.PrintF("OPT10085 ReceivedData 당일매매수수료 =>" + axKHOpenAPI.CommGetData(e.sTrCode, "", e.sRQName, i, "당일매매수수료").Trim()); //[8]
                    FileLog.PrintF("OPT10085 ReceivedData 당일매매세금 =>" + axKHOpenAPI.CommGetData(e.sTrCode, "", e.sRQName, i, "당일매매세금").Trim());   //[9]
                    FileLog.PrintF("OPT10085 ReceivedData 신용구분 =>" + axKHOpenAPI.CommGetData(e.sTrCode, "", e.sRQName, i, "신용구분").Trim());       //[10]
                    FileLog.PrintF("OPT10085 ReceivedData 대출일 =>" + axKHOpenAPI.CommGetData(e.sTrCode, "", e.sRQName, i, "대출일").Trim());         //[11]
                    FileLog.PrintF("OPT10085 ReceivedData 결제잔고 =>" + axKHOpenAPI.CommGetData(e.sTrCode, "", e.sRQName, i, "결제잔고").Trim());       //[12]
                    FileLog.PrintF("OPT10085 ReceivedData 청산가능수량 =>" + axKHOpenAPI.CommGetData(e.sTrCode, "", e.sRQName, i, "청산가능수량").Trim());   //[13]
                    FileLog.PrintF("OPT10085 ReceivedData 신용금액 =>" + axKHOpenAPI.CommGetData(e.sTrCode, "", e.sRQName, i, "신용금액").Trim());       //[14]
                    FileLog.PrintF("OPT10085 ReceivedData 신용이자 =>" + axKHOpenAPI.CommGetData(e.sTrCode, "", e.sRQName, i, "신용이자").Trim());       //[15]
                    FileLog.PrintF("OPT10085 ReceivedData 만기일 =>" + axKHOpenAPI.CommGetData(e.sTrCode, "", e.sRQName, i, "만기일").Trim());         //[16]



                    OPT10085_Data opt10085_Data = new OPT10085_Data();
                    opt10085_Data.구매일자 = axKHOpenAPI.CommGetData(e.sTrCode, "", e.sRQName, i, "일자").Trim();                    //[0]
                    opt10085_Data.종목코드 = axKHOpenAPI.CommGetData(e.sTrCode, "", e.sRQName, i, "종목코드").Trim();                  //[1]
                    opt10085_Data.종목명  = axKHOpenAPI.CommGetData(e.sTrCode, "", e.sRQName, i, "종목명").Trim();                   //[2]
                    int 현재가 = Int32.Parse(axKHOpenAPI.CommGetData(e.sTrCode, "", e.sRQName, i, "현재가").Trim());                 //[3]
                    opt10085_Data.현재가 = 현재가;
                    opt10085_Data.매입가 = Int32.Parse(axKHOpenAPI.CommGetData(e.sTrCode, "", e.sRQName, i, "매입가").Trim());       //[4]
                    int 매입금액 = Int32.Parse(axKHOpenAPI.CommGetData(e.sTrCode, "", e.sRQName, i, "매입금액").Trim());               //[5]
                    opt10085_Data.매입금액 = 매입금액;
                    int 보유수량 = Int32.Parse(axKHOpenAPI.CommGetData(e.sTrCode, "", e.sRQName, i, "보유수량").Trim());               //[6]
                    opt10085_Data.보유수량   = 보유수량;
                    opt10085_Data.당일매도손익 = Int32.Parse(axKHOpenAPI.CommGetData(e.sTrCode, "", e.sRQName, i, "당일매도손익").Trim()); //[7]
                    String str당일매매수수료 = axKHOpenAPI.CommGetData(e.sTrCode, "", e.sRQName, i, "당일매매수수료");
                    opt10085_Data.당일매매수수료 = 0;
                    if (isNotNull(str당일매매수수료) == true)
                    {
                        opt10085_Data.당일매매수수료 = Int32.Parse(str당일매매수수료.Trim());                                                //[8]
                    }
                    opt10085_Data.당일매매세금 = Int32.Parse(axKHOpenAPI.CommGetData(e.sTrCode, "", e.sRQName, i, "당일매매세금").Trim()); //[9]
                    opt10085_Data.신용구분   = axKHOpenAPI.CommGetData(e.sTrCode, "", e.sRQName, i, "신용구분").Trim();                //[10]
                    opt10085_Data.대출일    = axKHOpenAPI.CommGetData(e.sTrCode, "", e.sRQName, i, "대출일").Trim();                 //[11]
                    opt10085_Data.결제잔고   = Int32.Parse(axKHOpenAPI.CommGetData(e.sTrCode, "", e.sRQName, i, "결제잔고").Trim());   //[12]
                    opt10085_Data.청산가능수량 = Int32.Parse(axKHOpenAPI.CommGetData(e.sTrCode, "", e.sRQName, i, "청산가능수량").Trim()); //[13]
                    opt10085_Data.신용금액   = Int32.Parse(axKHOpenAPI.CommGetData(e.sTrCode, "", e.sRQName, i, "신용금액").Trim());   //[14]
                    opt10085_Data.신용이자   = Int32.Parse(axKHOpenAPI.CommGetData(e.sTrCode, "", e.sRQName, i, "신용이자").Trim());   //[15]
                    opt10085_Data.만기일    = axKHOpenAPI.CommGetData(e.sTrCode, "", e.sRQName, i, "만기일").Trim();                 //[16]

                    /*내가 만들 데이터*/

                    /*매입가에는 수수료가 포함안되어있다. 매입당시 수수료가 통장에서 빠져나가지만 내가 얼마나 수익이 났는지 확인하기 위해
                     * 매입수수료와 매도 수수료를 합쳐서 수수료로 표시해준다.
                     * 수수료는 10원 미만 절삭 86원이면 80원임
                     */
                    //System.Math.Truncate()
                    int 평가금액    = Math.Abs(현재가) * 보유수량;
                    int 매입수수료   = Commission.GetKiwoomCommissionBuy(매입금액);
                    int 매도수수료   = Commission.GetKiwoomCommissionSell(평가금액);
                    int 수수료     = 매입수수료 + 매도수수료;
                    int 매도세금    = Commission.GetTaxSell(평가금액);
                    int 손익분기매입가 = 0;
                    if (보유수량 != 0)                                      //이게 0일경우가 있다 매도를 한상태일경우 보유수량이 0으로 리스트에 계속 존재한다.
                    {
                        손익분기매입가 = (매입수수료 + 매도수수료 + 매도세금 + 매입금액) / 보유수량; // 무조건오림
                    }
                    int 평가손익 = 평가금액 - (매입금액 + 수수료 + 매도세금);
                    // float 수익률 = (평가손익 / 매입금액) * 100;   //int끼리 나눠서... 소수점을 버리는구나.. 이런..
                    float 수익률 = 0;
                    if (매입금액 != 0)
                    {
                        수익률 = ((float)평가손익 / (float)매입금액) * 100;
                    }
                    int 손익금액 = (평가금액 - 매입금액);

                    float 손익율 = 0;
                    if (매입금액 != 0)
                    {
                        손익율 = ((float)손익금액 / (float)매입금액) * 100;
                    }



                    opt10085_Data.평가금액    = 평가금액;
                    opt10085_Data.매입수수료   = 매입수수료;
                    opt10085_Data.매도수수료   = 매도수수료;
                    opt10085_Data.수수료     = 수수료;
                    opt10085_Data.매도세금    = 매도세금;
                    opt10085_Data.손익분기매입가 = 손익분기매입가;
                    opt10085_Data.평가손익    = 평가손익;
                    opt10085_Data.수익률     = 수익률;
                    opt10085_Data.손익금액    = 손익금액;
                    opt10085_Data.손익율     = 손익율;
                    opt10085_Data.계좌번호    = 계좌번호;


                    FileLog.PrintF("OPT10085 ReceivedData 평가손익=>" + 평가손익);
                    FileLog.PrintF("OPT10085 ReceivedData 손익금액=>" + 손익금액);
                    FileLog.PrintF("OPT10085 ReceivedData 매입금액=>" + 매입금액);
                    FileLog.PrintF("OPT10085 ReceivedData 평가손익=>" + 평가손익);
                    FileLog.PrintF("OPT10085 ReceivedData 수익률=>" + 수익률);
                    FileLog.PrintF("OPT10085 ReceivedData 손익율=>" + 손익율);


                    //(8025-8089)/8089*100
                    //24005=23775+160+70
                    //24005-24575=-570
                    //24805
                    opt10085_DataList.Add(opt10085_Data);
                }
            }
            //axKHOpenAPI.DisconnectRealData(e.sScrNo); 계좌 수익률 정보는  실시간 데이터간 데이터로 들어온다면... 실시간으로 처리하는것이 이익이다..
            //화면번호도 고정이면 좋을것 같다...
            FileLog.PrintF("ReceivedData OPT10085 opt10085_DataList.Count()=>" + opt10085_DataList.Count());
            AppLib.getClass1Instance().removeStockCodeDictionary(keyStockCode);
            AppLib.getClass1Instance().removeSpellDictionary(key);
            MyStock.getClass1Instance().reLoad(opt10085_DataList); //보내는처리 무엇이든.
                                                                   //}
                                                                   //catch(Exception ex)
                                                                   //{
                                                                   //    FileLog.PrintF("[ALERT-ReceivedData-OPT10085]Exception ex=" + ex.Message);
                                                                   //}
        }
Example #16
0
        public override void ReceivedData(AxKHOpenAPILib.AxKHOpenAPI axKHOpenAPI, AxKHOpenAPILib._DKHOpenAPIEvents_OnReceiveRealDataEvent e)
        {
            /*
             *
             *  [20] = 체결시간            //(0)
             *  [10] = 현재가              //(1)
             *      [11] = 전일대비            //(2)
             *      [12] = 등락율              //(3)
             *      [27] = (최우선)매도호가    //(4)
             *      [28] = (최우선)매수호가    //(5)
             *  [15] = 거래량              //(6)
             *      [13] = 누적거래량          //(7)
             *      [14] = 누적거래대금        //(8)
             *      [16] = 시가                //(9)
             *      [17] = 고가                //(10)
             *      [18] = 저가                //(11)
             *      [25] = 전일대비기호        //(12)
             *      [26] = 전일거래량대비(계약,주)   //(13)
             *      [29] = 거래대금증감              //(14)
             *      [30] = 전일거래량대비(비율)      //(15)
             *      [31] = 거래회전율                //(16)
             *      [32] = 거래비용                  //(17)
             *  [228] = 체결강도                 //(18)
             *      [311] = 시가총액(억)             //(19)
             *  [290] = 장구분                   //(20)
             *  [691] = KO접근도                 //(21)
             *      [567] = 상한가발생시간           //(22)
             *      [568] = 하한가발생시간           //(23)
             *
             */
            /*
             * FileLog.PrintF(String.Format("체결시간=> {0} ", axKHOpenAPI.GetCommRealData(e.sRealType, 20).Trim()));   //[0]
             * FileLog.PrintF(String.Format("현재가=> {0} ", axKHOpenAPI.GetCommRealData(e.sRealType, 10).Trim()));     //[1]
             * FileLog.PrintF(String.Format("전일대비=> {0} ", axKHOpenAPI.GetCommRealData(e.sRealType, 11).Trim()));   //[2]
             * FileLog.PrintF(String.Format("등락율=> {0} ", axKHOpenAPI.GetCommRealData(e.sRealType, 12).Trim()));     //[3]
             * FileLog.PrintF(String.Format("(최우선)매도호가=> {0} ", axKHOpenAPI.GetCommRealData(e.sRealType, 27).Trim()));   //[4]
             * FileLog.PrintF(String.Format("(최우선)매수호가=> {0} ", axKHOpenAPI.GetCommRealData(e.sRealType, 28).Trim()));   //[5]
             * FileLog.PrintF(String.Format("거래량=> {0} ", axKHOpenAPI.GetCommRealData(e.sRealType, 15).Trim()));      //[6]
             * FileLog.PrintF(String.Format("누적거래량=> {0} ", axKHOpenAPI.GetCommRealData(e.sRealType, 13).Trim()));   //[7]
             * FileLog.PrintF(String.Format("누적거래대금=> {0} ", axKHOpenAPI.GetCommRealData(e.sRealType, 14).Trim())); //[8]
             * FileLog.PrintF(String.Format("시가=> {0} ", axKHOpenAPI.GetCommRealData(e.sRealType, 16).Trim()));          //[9]
             * FileLog.PrintF(String.Format("고가=> {0} ", axKHOpenAPI.GetCommRealData(e.sRealType, 17).Trim()));          //[10]
             * FileLog.PrintF(String.Format("저가=>{0} ", axKHOpenAPI.GetCommRealData(e.sRealType, 18).Trim()));         //[11]
             * FileLog.PrintF(String.Format("전일대비기호=> {0} ", axKHOpenAPI.GetCommRealData(e.sRealType, 25).Trim()));  //[12]
             * FileLog.PrintF(String.Format("전일거래량대비_계약_주=> {0} ", axKHOpenAPI.GetCommRealData(e.sRealType, 26).Trim()));  //[13]
             * FileLog.PrintF(String.Format("거래대금증감=> {0} ", axKHOpenAPI.GetCommRealData(e.sRealType, 29).Trim()));             //[14]
             * FileLog.PrintF(String.Format("전일거래량대비_비율=> {0} ", axKHOpenAPI.GetCommRealData(e.sRealType, 30).Trim()));      //[15]
             * FileLog.PrintF(String.Format("거래회전율=> {0} ", axKHOpenAPI.GetCommRealData(e.sRealType, 31).Trim()));               //[16]
             * FileLog.PrintF(String.Format("거래비용=> {0} ", axKHOpenAPI.GetCommRealData(e.sRealType, 32).Trim()));               //[17]
             * FileLog.PrintF(String.Format("체결강도=> {0} ", axKHOpenAPI.GetCommRealData(e.sRealType, 228).Trim()));               //[18]
             * FileLog.PrintF(String.Format("시가총액_억=> {0} ", axKHOpenAPI.GetCommRealData(e.sRealType, 311).Trim()));               //[19]
             * FileLog.PrintF(String.Format("장구분=> {0} ", axKHOpenAPI.GetCommRealData(e.sRealType, 290).Trim()));               //[20]
             * FileLog.PrintF(String.Format("KO접근도=> {0} ", axKHOpenAPI.GetCommRealData(e.sRealType, 691).Trim()));               //[21]
             * FileLog.PrintF(String.Format("상한가발생시간=> {0} ", axKHOpenAPI.GetCommRealData(e.sRealType, 567).Trim()));         //[22]
             * FileLog.PrintF(String.Format("하한가발생시간=> {0} ", axKHOpenAPI.GetCommRealData(e.sRealType, 568).Trim()));         //[23]
             * FileLog.PrintF(String.Format("종목코드=> {0} ", e.sRealKey.ToString().Trim()));
             * FileLog.PrintF(String.Format("RealName=> {0} ", e.sRealType.ToString().Trim()));
             * FileLog.PrintF(String.Format("sRealData=> {0} ", e.sRealData.ToString().Trim()));
             */
            String 현재일자    = DateTime.Now.ToString("yyyy-MM-dd");
            String 체결시간TMP = axKHOpenAPI.GetCommRealData(e.sRealType, 20).Trim();           //[0]
            //체결시간이 6자리이므로 HHMMSS ==> HH:MM:SS로 바꿔야한다.
            String 체결시간 = 체결시간TMP.Substring(0, 2) + ":" + 체결시간TMP.Substring(2, 2) + ":" + 체결시간TMP.Substring(4, 2);

            체결시간 = 현재일자 + " " + 체결시간;

            REAL10002_Data real10002_data = new REAL10002_Data();

            //String 현재시간 = DateTime.Now.ToString("yyyyMMdd HH:mm:ss:fff");
            real10002_data.체결시간         = 체결시간;
            real10002_data.현재가          = Int32.Parse(axKHOpenAPI.GetCommRealData(e.sRealType, 10).Trim());   //[1]
            real10002_data.전일대비         = Int32.Parse(axKHOpenAPI.GetCommRealData(e.sRealType, 11).Trim());   //[2]
            real10002_data.등락율          = float.Parse(axKHOpenAPI.GetCommRealData(e.sRealType, 12).Trim());   //[3]
            real10002_data.매도호가         = Int32.Parse(axKHOpenAPI.GetCommRealData(e.sRealType, 27).Trim());   //[4]
            real10002_data.매수호가         = Int32.Parse(axKHOpenAPI.GetCommRealData(e.sRealType, 28).Trim());   //[5]
            real10002_data.거래량          = Int32.Parse(axKHOpenAPI.GetCommRealData(e.sRealType, 15).Trim());   //[6]
            real10002_data.누적거래량        = Int32.Parse(axKHOpenAPI.GetCommRealData(e.sRealType, 13).Trim());   //[7]
            real10002_data.누적거래대금       = Int32.Parse(axKHOpenAPI.GetCommRealData(e.sRealType, 14).Trim());   //[8]
            real10002_data.시가           = Int32.Parse(axKHOpenAPI.GetCommRealData(e.sRealType, 16).Trim());   //[9]
            real10002_data.고가           = Int32.Parse(axKHOpenAPI.GetCommRealData(e.sRealType, 17).Trim());   //[10]
            real10002_data.저가           = Int32.Parse(axKHOpenAPI.GetCommRealData(e.sRealType, 18).Trim());   //[11]
            real10002_data.전일대비기호       = Int32.Parse(axKHOpenAPI.GetCommRealData(e.sRealType, 25).Trim());   //[12]
            real10002_data.전일거래량대비_계약_주 = Int32.Parse(axKHOpenAPI.GetCommRealData(e.sRealType, 26).Trim());   //[13]
            real10002_data.거래대금증감       = decimal.Parse(axKHOpenAPI.GetCommRealData(e.sRealType, 29).Trim()); //[14]
            real10002_data.전일거래량대비_비율   = float.Parse(axKHOpenAPI.GetCommRealData(e.sRealType, 30).Trim());   //[15]
            real10002_data.거래회전율        = float.Parse(axKHOpenAPI.GetCommRealData(e.sRealType, 31).Trim());   //[16]
            real10002_data.거래비용         = Int32.Parse(axKHOpenAPI.GetCommRealData(e.sRealType, 32).Trim());   //[17]
            real10002_data.체결강도         = float.Parse(axKHOpenAPI.GetCommRealData(e.sRealType, 228).Trim());  //[18]
            real10002_data.시가총액_억       = Int32.Parse(axKHOpenAPI.GetCommRealData(e.sRealType, 311).Trim());  //[19]
            real10002_data.장구분          = Int32.Parse(axKHOpenAPI.GetCommRealData(e.sRealType, 290).Trim());  //[20]
            real10002_data.KO접근도        = Int32.Parse(axKHOpenAPI.GetCommRealData(e.sRealType, 691).Trim());  //[21]
            real10002_data.상한가발생시간      = axKHOpenAPI.GetCommRealData(e.sRealType, 567).Trim();               //[22]
            real10002_data.하한가발생시간      = axKHOpenAPI.GetCommRealData(e.sRealType, 568).Trim();               //[23]
            real10002_data.종목코드         = e.sRealKey.ToString().Trim();                                       //[24]
            real10002_data.RealName     = e.sRealType.ToString().Trim();

            MyStock.getClass1Instance().UpdateStockList(real10002_data);

            //   SendDirectFile(real10002_data);
            SendDirectDb(real10002_data);
        }
Example #17
0
        public ActionResult Save_New_Order(int id, int invoice_no, DateTime bill_date, string supplier_name, DateTime receiveing_date, int carrying_charge, string item_name, int quantity, int price, int total_price_per_item, int total_amount)
        {
            ApplicationDbContext db = new ApplicationDbContext();

            ViewBag.preQuantity = from TotalItemsQuantity in db.TotalItemsQuantitys.Where(z => z.item_name == item_name) select TotalItemsQuantity;
            foreach (var mm in ViewBag.preQuantity)
            {
                ViewBag.c = mm.quantity;
            }
            int pp    = Convert.ToInt32(ViewBag.c);
            int total = quantity + pp;

            var itemid = db.TotalItemsQuantitys.Where(x => x.item_name == item_name).ToList();

            foreach (var vm in itemid)
            {
                vm.quantity = total;
                db.SaveChanges();
            }

            MyStockNotification md = new MyStockNotification();

            md.id                   = id;
            md.invoice              = invoice_no;
            md.bill_date            = bill_date;
            md.supplier_name        = supplier_name;
            md.receive_date         = receiveing_date;
            md.carrying_charge      = carrying_charge;
            md.item_name            = item_name;
            md.quantity             = quantity;
            md.price                = price;
            md.total_price_per_item = total_price_per_item;
            md.total_amount         = total_amount;
            db.MyStockNotifications.Add(md);
            //db.SaveChanges();


            MyStock ms = new MyStock();

            ms.id                   = id;
            ms.invoice              = invoice_no;
            ms.bill_date            = bill_date;
            ms.supplier_name        = supplier_name;
            ms.receive_date         = receiveing_date;
            ms.carrying_charge      = carrying_charge;
            ms.item_name            = item_name;
            ms.quantity             = quantity;
            ms.price                = price;
            ms.total_price_per_item = total_price_per_item;
            ms.total_amount         = total_amount;

            db.MyStocks.Add(ms);

            int res = db.SaveChanges();

            if (res > 0)
            {
                List <MyStock> myst = db.MyStocks.Where(x => x.invoice == invoice_no).ToList();
                return(View(myst));
                //return RedirectToAction("Index");
            }
            else
            {
                ViewBag.notstored = "value not stored";
                return(View());
            }
        }
 // Updates the quantity of a stock owned, after selling
 public static bool UpdateMyStock(MyStock mystock, int quantity)
 {
     return(Myfirestore.UpdateMyStock(mystock, quantity));
 }