Exemple #1
0
        private void btnTakeAway_Click(object sender, EventArgs e)
        {
            orderInfo infoOrder = new orderInfo();

            infoOrder.txtWaiterName.Text = this.statGetUser.Text;
            infoOrder.txtTableNo.Text    = "0";
            //infoOrder.txtAdultNo.Text = "1";
            //infoOrder.txtChild.Text = "0";
            infoOrder.txtReceiptType.Text = "Take Away";
            infoOrder.orderType           = "Take Away";
            infoOrder.ShowDialog();
        }
        public async Task <ActionResult <orderInfo> > PostOrder(orderInfo orderBody)
        {
            var userInfo = await _userManager.FindByIdAsync(User.FindFirstValue(ClaimTypes.NameIdentifier));

            // var formationInfo = await _context.formations.FindAsync(orderBody.formationId);

            new InvoiceGenerator("./InvoiceGenerator/invoice_template.docx")
            .SetData(new
            {
                envoyeur              = "Mediwatch",
                envoyeur_addresse_1   = "24 rue Pasteur",
                envoyeur_addresse_2   = "94270 Le Kremlin-Bicêtre",
                envoyeur_addresse_3   = "France",
                destinataire          = userInfo.UserName,
                destinataire_addresse = orderBody.billingAdress,
                numéro_facture        = orderBody.invoiceId,
                date_facture          = DateTime.Now.ToString("dd/MM/yyyy"),
                description           = "Formation",
                // description = formationInfo.Name,
                quantité         = "1",
                unité            = "pce.",
                prix_unitaire_HT = orderBody.price.ToString(),
                // prix_unitaire_HT = formationInfo.Price,
                total_TTC = "-1.00",
                // total_TTC = formationInfo.Price,
                téléphone = "+33 X XX XX XX XX",
                email     = "*****@*****.**",
                IBAN      = "XXXXXXXXXX"
            })
            .SetOuput("./InvoiceGenerator/" + orderBody.invoiceId)
            .SetOverwrite(true)
            .Run();

            // EmailForm email = new EmailForm
            // {
            //     EmailAddress = userInfo.Email,
            //     Content = "Vous avez payé"
            // };

            // EmailUtils.SendMail(email, _configuration);

            new InvoiceArchiver(_configuration)
            .ArchiveInvoice("./InvoiceGenerator/" + orderBody.invoiceId, orderBody.invoiceId, userInfo.UserName);

            // orderInfo info = new orderInfo();
            orderBody.createAt = DateTime.Now;
            _context.orderInfos.Add(orderBody);
            await _context.SaveChangesAsync();

            return(CreatedAtAction(nameof(GetOrder), new { id = orderBody.id }, orderBody));
        }
Exemple #3
0
        /// <summary>
        /// 根据id查找订单
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public orderInfo GetOrderById(int id)
        {
            string sql = $"select orderId,cName,cNumber,orderDate,orderAddress from OrderList where orderId={id}";

            DataSet   ds    = SqlServer.Query(sql);
            orderInfo order = new orderInfo();

            if (ds.Tables.Count > 0)
            {
                DataTable dt = ds.Tables[0];
                if (dt.Rows.Count > 0)
                {
                    order = orderInfo.TableToList(dt)[0];
                }
            }
            return(order);
        }
Exemple #4
0
        public void ProcessRequest(HttpContext context)
        {
            string   cName        = context.Request.Form["cName"];
            string   cNumber      = context.Request.Form["cNumber"];
            DateTime orderDate    = Convert.ToDateTime(context.Request.Form["orderDate"]);
            string   orderAddress = context.Request.Form["orderAddress"];

            orderInfo order = new orderInfo();

            order.cName        = cName;
            order.cNumber      = Convert.ToInt32(cNumber);
            order.orderDate    = Convert.ToDateTime(orderDate);
            order.orderAddress = orderAddress;
            if (orderBll.AddOrder(order))
            {
                context.Response.Write("<script>alert('添加成功!');window.location='orderQuery.aspx'</script>");
            }
        }
Exemple #5
0
        private void button2_Click(object sender, EventArgs e)
        {
            _entities = new KBBQEntities();

            orderInfo infoOrder = new orderInfo();

            infoOrder.txtWaiterName.Text = this.statGetUser.Text;
            infoOrder.txtTableNo.Text    = "0";
            infoOrder.hiddFashCash       = 1;
            //infoOrder.txtAdultNo.Text = "1";
            //infoOrder.txtChild.Text = "0";
            infoOrder.txtReceiptType.Text = "Fast Cash";
            infoOrder.orderType           = button2.Text;

            var empIDD = selectClass.getEmployeeByID(statGetUser.Text.ToString());

            infoOrder.cmbWaiter.SelectedText = this.statGetUser.Text;
            infoOrder.ShowDialog();
        }
        /// <summary>
        /// 获取成交量
        /// </summary>
        /// <returns></returns>
        protected int[] GetGoodsNum()
        {
            List <orderInfo> orders  = orderBLL.GetOrderList();
            List <int>       numList = new List <int>();
            orderInfo        old     = null;

            for (int i = 0; i < orders.Count(); i++)
            {
                if (old != null && old.orderDate == orders[i].orderDate)
                {
                    numList[i - 1] = orders[i].cNumber;
                    old            = orders[i];
                    i--;
                }
                else
                {
                    numList.Add(orders[i].cNumber);
                }
            }
            return(numList.ToArray());
        }
        //функция отправки заявки на добавление на биржу
        public bool sendOrderAdd(orderInfo ord)
        {
            try
            {

                this.parent.parent.logMsg("Opt Expiration: Выставление заявки Id:" + ord.id.ToString());

                this.m_msg.set_Field("P2_Type", 4);
                this.m_msg.set_Field("P2_From", "ukrnt");// parent.sender);

                this.m_msg.set_Field("broker_code", this.parent.parent.mainAccount);

                // если Установить лимиты денежных средств, залоговых средств и лимит на покупки спотов
                this.m_msg.set_Field("mode", ord.mode);
                this.m_msg.set_Field("order_id", ord.order_id);
                this.m_msg.set_Field("isin", ord.isin);
                this.m_msg.set_Field("amount", ord.amount);
                this.m_msg.set_Field("code", ord.code);

                this.parent.parent.logMsg("Opt Expiration: Отправка асинхронной заявки Id:" + ord.id.ToString() + " mode:" + ord.mode + "");
                // отправляем асинхронно заявку и подключаем callback функцию
                // ,????? сдесь я поставил ожидание 2000 милисекунд (2 сек), но достаточно ли такое значение
                this.m_msg.SendAsync2(this.parent.m_con, 10000, this.asyncReceiver, ord.id);
                return true;
            }
            catch (Exception e)
            {
                //если ошибка, то удаляем заявку с очереди и обновляем статус
                this.parent.parent.logMsg("Opt Expiration: Ошибка выставления заявки на добавление id: " + ord.id.ToString());
                return false;
            }
        }
        // функция выборки с таблици fut_orders_add записей для отправки
        public bool getOrders()
        {
            bool res = true;

            NpgsqlDataReader rd;
            try
            {
                rd = cmdOrders_Select.ExecuteReader();

                //на всякий случай блокируем очередь
                lock (this.parent.xQueueMsgLock)
                {
                    while (rd.Read())
                    {
                        try
                        {
                            long rowId = Convert.ToInt64(rd["_id"]);
                            string rowType = "cm";
                            //если очередь не содержит такую заявку
                            if (!this.parent.queueMsg.Contains(rowId))
                            {
                                try
                                {

                                    //если очередь не содержит такую заявку
                                    if (!this.mQueue.Contains(Convert.ToInt64(rd["_id"])))
                                    {
                                        this.parent.parent.logMsg("Change Money: Выставление заявки на изменения лимитов Id:" + rd["_id"].ToString());

                                        orderInfo order = new orderInfo(rowId, rowType);

                                        order.code = rd["_code"].ToString();
                                        if (rd["_broker_code"].ToString() != "")
                                            order.broker_code = rd["_broker_code"].ToString();
                                        else
                                            order.broker_code = this.parent.parent.mainAccount;

                                        order.mode = rd["_mode"].ToString();
                                        if (order.mode == "12")
                                        {
                                            order.limit_money = rd["_limit_money"].ToString().Replace(",", ".");
                                            order.limit_pledge = rd["_limit_pledge"].ToString().Replace(",", ".");
                                            order.coeff_go = rd["_coeff_go"].ToString().Replace(",", ".");
                                        }
                                        else if (order.mode == "13")
                                        {
                                            order.limit_money = "0";
                                            order.limit_pledge = "0";
                                            order.coeff_go = rd["_coeff_go"].ToString().Replace(",", ".");
                                        }

                                        this.parent.queueMsg.Add(rowId, order);
                                    }
                                }
                                catch (Exception e)
                                {
                                    this.parent.parent.logMsg("Change Money: Ошибка при добавлении в очередь отправки на биржу заявки  с id " + rowId.ToString() + "." + e.Message + e.HelpLink + "  " + e.TargetSite + "   " + e.Data, 1);
                                    this.parent.addNotifyToQueue("uxf_change_client_money");
                                    res = false;
                                }
                            }

                        }
                        catch (Exception ee)
                        {
                            this.parent.parent.logMsg("Change Money (Reader next): Ошибка при добавлении в очередь отправки на биржу заявки ." + ee.Message + ee.HelpLink + "  " + ee.TargetSite + "   " + ee.Data, 1);
                            this.parent.addNotifyToQueue("uxf_change_client_money");
                            res = false;
                        }
                    }
                }
                try
                {
                    rd.Close();
                }
                catch { }
            }
            catch (Exception e)
            {
                this.parent.parent.logMsg("Change Money (Reader):  Ошибка выборки заявок для добавлениия в очередь отправки." + e.Message + e.HelpLink + "  " + e.TargetSite + "   " + e.Data, 1);
                this.parent.addNotifyToQueue("uxf_change_client_money");
                res = false;
            }

            return res;
        }
        //функция отправки заявки на добавление на биржу
        public bool sendOrderAdd(orderInfo ord)
        {
            try
            {
                string t = ord.isin + " " + ord.client_code + " " + ord.type + "  " + ord.dir + " " + ord.amount + " " + ord.price + " " + ord.comment + " " + ord.ext_id;

                this.parent.parent.logMsg("FUT Add: Выставление заявки на биржу Id:" + ord.id.ToString()+"  "+t);

                this.m_futOrderAdd.set_Field("P2_Type", 1);
                this.m_futOrderAdd.set_Field("broker_code", ord.broker_code);
                this.m_futOrderAdd.set_Field("isin", ord.isin);
                this.m_futOrderAdd.set_Field("client_code", ord.client_code);
                this.m_futOrderAdd.set_Field("type", ord.type);
                this.m_futOrderAdd.set_Field("dir", ord.dir);

                this.m_futOrderAdd.set_Field("amount",ord.amount);
                this.m_futOrderAdd.set_Field("price", ord.price);
                this.m_futOrderAdd.set_Field("P2_From", "ukrnt");// parent.sender);
                this.m_futOrderAdd.set_Field("comment", ord.comment);
                this.m_futOrderAdd.set_Field("ext_id", ord.ext_id);

                // отправляем асинхронно заявку и подключаем callback функцию
                // ,????? сдесь я поставил ожидание 10000 милисекунд 10 сек), но достаточно ли такое значение
                this.m_futOrderAdd.SendAsync2(this.parent.m_con, 10000, this.asyncReceiverAdd, ord.id);
                return true;
            }
            catch (Exception e)
            {
                //если ошибка, то удаляем заявку с очереди и обновляем статус
                this.parent.parent.logMsg("FUT Add:Ошибка выставления заявки на добавление id: " + ord.id.ToString(),1);
                return false;
            }
        }
        // функция выборки с таблици fut_orders записей для отправки
        public bool getOrders()
        {
            bool res = true;

            NpgsqlDataReader rd;
            try
            {
                this.parent.parent.logMsg("Начало выборки фьючерсных заявок с таблицы");
                rd = cmdOrders_Select.ExecuteReader();
                try
                {
                    //на всякий случай блокируем очередь
                    lock (this.parent.xQueueMsgLock)
                    {

                        while (rd.Read())
                        {
                            long rowId=Convert.ToInt64(rd["id"]);
                            string rowType=rd["tp"].ToString();
                            bool inHist=false;
                            //проверим нет ли заявки с таким ід в списке недавно отправленных
                            lock (this.parent.xQueueMsgHistLock)
                            {
                                if (this.parent.queueMsgHist.Contains(rowId))
                                    inHist = true;
                            }
                            //если заявки нет в списке отправленных
                            if (!inHist){
                                //если очередь не содержит такую заявку
                                if (!this.parent.queueMsg.Contains(rowId))
                                {
                                    try
                                    {
                                        this.parent.parent.logMsg("Fut добавление заявки в очередь id " + rowId.ToString());
                                        orderInfo ord = new orderInfo(rowId, rowType);
                                        switch (rowType)
                                        {
                                            case "1":
                                                ord.isin = rd["isin"].ToString();
                                                ord.amount = rd["amount"].ToString().Replace(",", ".");
                                                ord.client_code = rd["client_code"].ToString();
                                                if (rd["broker_code"].ToString() != "")
                                                    ord.broker_code = rd["broker_code"].ToString();
                                                else
                                                    ord.broker_code = this.parent.parent.mainAccount;

                                                ord.comment = rd["comment"].ToString();
                                                ord.type = Convert.ToInt32(rd["type"]);
                                                ord.date_exp = rd["date_exp"].ToString();
                                                ord.dir = Convert.ToInt32(rd["dir"]);
                                                ord.ext_id = Convert.ToInt32(rd["ext_id"]);
                                                ord.price = rd["price"].ToString().Replace(",", ".");
                                                ord.date_exp = rd["date_exp"].ToString();
                                                this.parent.queueMsg.Add(rowId, ord);
                                                break;
                                            case "3":
                                                if (rd["broker_code"].ToString() != "")
                                                    ord.broker_code = rd["broker_code"].ToString();
                                                else
                                                    ord.broker_code = this.parent.parent.mainAccount;

                                                ord.order_id = Convert.ToInt32(rd["order_id"]);
                                                this.parent.queueMsg.Add(rowId, ord);
                                                break;
                                        }
                                    }

                                    catch (Exception e)
                                    {
                                        this.parent.parent.logMsg("FUT: Ошибка при добавлении в очередь отправки на биржу заявки  с id " + rowId.ToString() + "." + e.Message + e.HelpLink + "  " + e.TargetSite + "   " + e.Data, 1);
                                        res = false;
                                    }
                                }
                            }
                        }
                    }
                }
                catch (Exception ee)
                {
                    this.parent.parent.logMsg("FUT : (Reader next) Ошибка выборки заявок для добавлениия в очередь отправки." + ee.Message + ee.HelpLink + "  " + ee.TargetSite + "   " + ee.Data,1);
                    //добавляем в очередь сообщение
                    this.parent.addNotifyToQueue("uxf_fut_orders");
                    res = false;
                }
                rd.Close();

            }
            catch (Exception e)
            {
                this.parent.parent.logMsg("FUT : (Reader) Ошибка выборки заявок для добавлениия в очередь отправки." + e.Message + e.HelpLink + "  " + e.TargetSite + "   " + e.Data,1);
                //добавляем в очередь сообщение
                this.parent.addNotifyToQueue("uxf_fut_orders");
                res = false;
            }

            return res;
        }
        protected void Submit_Click(object sender, EventArgs e)
        {
            string    id    = Request["HotelId"];//接收来自酒店信息页面a链接传递过来的酒店编号
            DataTable table = room.searchHotelRoomById(id);

            if (table != null && table.Rows.Count > 0) //当前表里有数据时
            {
                if (RoomType.Text == "")               //没有选择客房类型
                {
                    Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('请选择您要预订的客房!');</script>");
                }
                else
                {
                    int oldVacantNum = Int32.Parse(Session["vacantNum"].ToString()); //原先空房数
                    if (CheckInDate.Text == "")                                      //没有选择入住日期
                    {
                        Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('请选择您要入住的日期!');</script>");
                    }
                    else if (Int32.Parse(OrderNumber.Text.Trim()) <= 0 || Int32.Parse(OrderNumber.Text.Trim()) > oldVacantNum)//预订数量小等于0或预订数量大于空房数
                    {
                        Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('当前空房数无法满足您的需求!');</script>");
                    }
                    else if (Int32.Parse(StayDuration.Text.Trim()) <= 0)//入住时长小等于0
                    {
                        Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('入住时长需大于0!');</script>");
                    }
                    else
                    {
                        orderInfo d    = new orderInfo();
                        DateTime  date = Convert.ToDateTime(OrderDate.Text);     //预订日期
                        d.OorderDate    = date;
                        d.Uid           = CardId.Text.Trim();                    //身份证号
                        d.Hid           = Request["HotelId"];                    //接收来自在线订房页面a链接传递过来的酒店编号
                        d.Tid           = room.searchRoomTypeId(RoomType.Text);  //根据客房类型查询客房类型编号
                        d.Onumber       = Int32.Parse(OrderNumber.Text.Trim());  //预订数量
                        d.OcheckInDate  = Convert.ToDateTime(CheckInDate.Text);  //入住日期
                        d.OstayDuration = Int32.Parse(StayDuration.Text.Trim()); //入住时长
                        d.Oprice        = Double.Parse(Monetary.Text);           //预订总金额

                        //订单编号设置为=身份证后四位+选择的酒店编号后三位+客房编号+预约的月日时分
                        String month       = date.ToString("MM");                               //取月
                        String day         = date.Day.ToString();                               //取日
                        string hour        = DateTime.Now.Hour.ToString();                      //获取当前小时
                        string minute      = DateTime.Now.Minute.ToString();                    //获取当前分钟
                        string lastHotelId = d.Hid.Remove(0, d.Hid.Length - 3);                 //酒店编号后三位
                        string lastCardId  = d.Uid.Remove(0, d.Uid.Length - 4);                 //客户身份证后四位
                        d.Oid = lastCardId + lastHotelId + d.Tid + month + day + hour + minute; //订单编号

                        order.addOrderInfo(d);                                                  //增加订单记录
                        Response.Write("<script>alert('预订成功!');</script>");

                        int currentVacantNum = oldVacantNum - d.Onumber;                               //当前空房数=原先空房数-客户预订数量
                        if (currentVacantNum > 0)                                                      //还有空房
                        {
                            room.updateVacantNum(currentVacantNum, Session["hotelRoomId"].ToString()); //修改空房数
                        }
                        else
                        {
                            room.deleteHotelRoomInfo(Session["hotelRoomId"].ToString());//删除该客房信息
                        }
                        RoomType.Text     = "";
                        CheckInDate.Text  = "";
                        OrderNumber.Text  = "1";
                        StayDuration.Text = "1";
                        Monetary.Text     = "";
                        InitGridView();//重新加载
                        this.GridView1.SelectedIndex = -1;
                    }
                }
            }
            else
            {
                Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('当前没有酒店客房信息,无法预订!');</script>");
            }
        }
        public bool getOrders()
        {
            bool res = true;

            NpgsqlDataReader rd;
            try
            {
                this.parent.parent.toLog(2,"Начало выборки спотовых заявок с таблицы");
                rd = cmdOrders_Select.ExecuteReader();
                try
                {
                    //на всякий случай блокируем очередь
                    lock (this.parent.xQueueMsgLock)
                    {

                        while (rd.Read())
                        {
                            long rowId = Convert.ToInt64(rd["id"]);
                            string rowType = rd["tp"].ToString();
                            bool inHist = false;
                            //проверим нет ли заявки с таким ід в списке недавно отправленных
                            lock (this.parent.xQueueMsgHistLock)
                            {
                                if (this.parent.queueMsgHist.Contains(rowId))
                                    inHist = true;
                            }
                            //если заявки нет в списке отправленных
                            if (!inHist)
                            {
                                //если очередь не содержит такую заявку
                                if (!this.parent.queueMsg.Contains(rowId))
                                {
                                    try
                                    {
                                        this.parent.parent.toLog(2,"SPOT добавление заявки в очередь id " + rowId.ToString());
                                        orderInfo ord = new orderInfo(rowId, rowType);
                                        switch (rowType)
                                        {
                                            case "1":
                                            case "3":
                                                ord.type = rd["type"].ToString();
                                                ord.issueId = Convert.ToInt32(rd["issueid"]);
                                                ord.issueName = rd["issue_name"].ToString();
                                                ord.i_code = rd["i_code"].ToString();
                                                ord.price = rd["price"].ToString().Replace(",", ".");
                                                ord.qty = rd["qty"].ToString().Replace(",", ".");
                                                ord.memo = rd["memo"].ToString();
                                                ord.ext_id =Convert.ToInt32( rd["ext_id"]);
                                                ord.settl_pair = rd["settl_pair"].ToString();
                                                ord.paycond = rd["pay_condition"].ToString();
                                                ord.quote_order = Convert.ToInt32(rd["quote_order"]);
                                                ord.order_type = Convert.ToInt32(rd["order_type"]);
                                                ord.action = rd["action"].ToString();
                                                ord.firmId = parent.parent.firmId;
                                                ord.firmName = parent.parent.firmName;
                                                if (rowType=="1")
                                                    ord.order_id=0;
                                                else
                                                    ord.order_id = Convert.ToInt32(rd["order_id"]);

                                                ord.aon = Convert.ToInt32(rd["aon"]);
                                                ord.leave = Convert.ToInt32(rd["leave"]);
                                                ord.max_asset = rd["max_asset"].ToString();

                                                this.parent.queueMsg.Add(rowId, ord);
                                                break;
                                            case "2":
                                                //this.parent.queueMsg.Add(rowId, ord);
                                                break;
                                        }
                                    }

                                    catch (Exception e)
                                    {
                                        this.parent.parent.toLog(2,"SPOT: Ошибка при добавлении в очередь отправки на биржу заявки  с id " + rowId.ToString() + "." + e.Message + e.HelpLink + "  " + e.TargetSite + "   " + e.Data, 1);
                                        res = false;
                                    }
                                }
                            }
                        }
                    }
                }
                catch (Exception ee)
                {
                    this.parent.parent.toLog(2,"SPOT : (Reader next) Ошибка выборки заявок для добавлениия в очередь отправки." + ee.Message + ee.HelpLink + "  " + ee.TargetSite + "   " + ee.Data, 1);
                    //добавляем в очередь сообщение
                    this.parent.addNotifyToQueue("uxs_spot_orders");
                    res = false;
                }
                rd.Close();

            }
            catch (Exception e)
            {
                this.parent.parent.toLog(2,"SPOT : (Reader) Ошибка выборки заявок для добавлениия в очередь отправки." + e.Message + e.HelpLink + "  " + e.TargetSite + "   " + e.Data, 1);
                //добавляем в очередь сообщение
                this.parent.addNotifyToQueue("uxf_spot_orders");
                res = false;
            }

            return res;
        }
        public bool sendOrderEdit(orderInfo ord)
        {
            DSSERVERLib.GMsgOrder msg = new DSSERVERLib.GMsgOrder();

            return true;
        }
        public bool sendOrderAdd(orderInfo ord)
        {
            try
            {
                DSSERVERLib.GMsgOrder msg = new DSSERVERLib.GMsgOrder();
                msg.Msg_action = Asc(Convert.ToChar(ord.action));
                msg.Id = Convert.ToInt32(ord.order_id);
                msg.type = Asc(Convert.ToChar(ord.type));
                msg.IssueID = ord.issueId;
                msg.Issue_name = ord.issueName;
                msg.I_code = ord.i_code;
                msg.Price = ord.price;
                msg.Qty = ord.qty;
                msg.FirmID = ord.firmId;
                msg.Firm_name = ord.firmName;// ord.firmName;
                msg.Ext_id = ord.ext_id;
                msg.Settl_pair = ord.settl_pair;
                msg.Quote_order = ord.quote_order;
                msg.Order_type = ord.order_type;
                msg.Catalyst = 1;
                msg.All_non = ord.aon;
                msg.Act_price = ord.price;
                msg.Max_asset = ord.max_asset;
                msg.Mm = 0;
                msg.Leave = ord.leave;
                msg.Paycond = Asc(Convert.ToChar(ord.paycond));
                msg.Visible = 0;

                this.parent.parent.toLog(2,"Попытка добавления заявки id: "+ord.id.ToString()+"  ext_id: "+ord.ext_id.ToString()+" issueName: "+ord.issueName+" amount: "+ord.qty+" price: "+ord.price+" type: "+ord.type+ " settlPair:"+ord.settl_pair);

                bool res;
                string pDesc;
                int pSeverity, pId;
                object pTime;
                int pCodePage;
                int pCryptoRes;
                object pUID;
                res = msg.SendSignedXML(out pDesc, out pSeverity, out pId, out pTime, out pCodePage, out pCryptoRes, out pUID);

                int rCode = 0;
                string rDesc = String.Empty;
                bool result = false;
                if (res)
                {
                    rCode = pSeverity;
                    rDesc = pDesc;
                    result = true;

                }
                else
                {
                    rCode = 1;
                    rDesc=pDesc;
                }

                ord.sended = 1;

                if (result)
                {
                    this.parent.parent.toLog(2, "Заявка успешно добавлена на биржу. Id: " + ord.id.ToString() + " pCode: " + pSeverity.ToString() + " pDesc: " + pDesc + " res: " + res.ToString());
                }
                else
                    this.parent.parent.toLog(2, "Ошибка добавления заявки на биржу. Id: " + ord.id.ToString() + " pCode: " + pSeverity.ToString() + " pDesc: " + pDesc + " res: " + res.ToString());

                try
                {
                    this.cmdOrders_Update.Parameters["p_id"].Value = ord.id;
                    this.cmdOrders_Update.Parameters["p_code"].Value = rCode;
                    this.cmdOrders_Update.Parameters["p_message"].Value = rDesc;

                    this.parent.parent.toLog(2, "Обновление в таблице заявки на добавление id " + ord.id.ToString() + ", p_code" + rCode.ToString());
                    this.cmdOrders_Update.ExecuteNonQuery();
                    this.parent.parent.toLog(2, "Заявка на добавление id " + ord.id.ToString() + " удачно обновлена ");
                }
                catch (Exception exp2)
                {
                    this.parent.parent.toLog(2, "Ошибка при обновлении заявки в базе. Id: " + ord.id.ToString() + " Error: " + exp2.Message, 1);
                }

                try
                {
                    this.parent.parent.toLog(2, "Удалени с таблици заявки на добавление id " + ord.id.ToString() );
                    this.cmdOrders_Delete.Parameters["p_id"].Value = ord.id;
                    this.cmdOrders_Delete.ExecuteNonQuery();
                    this.parent.parent.toLog(2, "Заявка на добавление id " + ord.id.ToString() + " удачно удалена с таблицы заявок");
                }
                catch (Exception exp3)
                {
                    this.parent.parent.toLog(2, "Ошибка при удалении заявки в базе. Id: " + ord.id.ToString() + " Error: " + exp3.Message, 1);

                }
                return true;
            }
            catch (Exception exp)
            {
                this.parent.parent.toLog(2, "Ошибка отправки " + exp.Message);
                return false;
            }
        }
Exemple #15
0
        /// <summary>
        /// 添加订单
        /// </summary>
        /// <returns></returns>
        public int AddOrder(orderInfo order)
        {
            string sqlStr = $"insert into OrderList ( cName,cNumber,orderDate,orderAddress) values ('{order.cName}', '{order.cNumber}', '{order.orderDate.ToString("yyyy-MM-dd")}', '{order.orderAddress}')";

            return(SqlServer.NotQuery(sqlStr));
        }
 public bool AddOrder(orderInfo vip)
 {
     return(orderDal.AddOrder(vip) > 0);
 }
        //функция отправки заявки на удаление на биржу
        public bool sendOrderDel(orderInfo ord)
        {
            try
            {

                this.parent.parent.logMsg("FUT Del: Отправка заявки на удаление id " + ord.id.ToString() + " №:" + ord.order_id.ToString());

                this.m_futOrderDel.set_Field("P2_Type", 2);
                ////////////////////
                this.m_futOrderDel.set_Field("broker_code", ord.broker_code);
                //////////////
                this.m_futOrderDel.set_Field("order_id", ord.order_id);
                this.m_futOrderDel.set_Field("P2_From", "ukrnt");

                // отправляем асинхронно заявку и подключаем callback функцию
                // ,????? сдесь я поставил ожидание 2000 милисекунд (2 сек), но достаточно ли такое значение
                this.m_futOrderDel.SendAsync2(this.parent.m_con, 10000, this.asyncReceiverDel, ord.id);
                return true;
            }
            catch (Exception e)
            {
                this.parent.parent.logMsg("FUT Del: Ошибка выставления заявки на удаление id: " + ord.id.ToString() + "  №:" + ord.order_id.ToString() + "  Err: " + e.Message,1);
                return false;
            }
        }
        //функция отправки заявки на добавление на биржу
        public bool sendOrderAdd(orderInfo ord)
        {
            try
            {

                this.parent.parent.logMsg("Change Money: Выставление заявки Id:" + ord.id.ToString());

                this.m_futChangeClientMoney.set_Field("P2_Type", 4);
                this.m_futChangeClientMoney.set_Field("P2_From", "ukrnt");// parent.sender);

                this.m_futChangeClientMoney.set_Field("broker_code", ord.broker_code);

                // если Установить лимиты денежных средств, залоговых средств и лимит на покупки спотов
                this.m_futChangeClientMoney.set_Field("mode", ord.mode);
                this.m_futChangeClientMoney.set_Field("code", ord.code);
                if (ord.mode == "12")
                {
                    this.m_futChangeClientMoney.set_Field("limit_money", ord.limit_money);
                    this.m_futChangeClientMoney.set_Field("limit_pledge",ord.limit_pledge);
                    this.m_futChangeClientMoney.set_Field("coeff_go", ord.coeff_go);
                }
                else if (ord.mode == "13")
                {
                    this.m_futChangeClientMoney.set_Field("limit_money", "0");
                    this.m_futChangeClientMoney.set_Field("limit_pledge", "0");
                    this.m_futChangeClientMoney.set_Field("coeff_go", ord.coeff_go);
                }

                this.parent.parent.logMsg("Change Money: Отправка асинхронной заявки Id:" + ord.id.ToString()+" mode:"+ord.mode+"");
                // отправляем асинхронно заявку и подключаем callback функцию
                // ,????? сдесь я поставил ожидание 2000 милисекунд (2 сек), но достаточно ли такое значение
                this.m_futChangeClientMoney.SendAsync2(this.parent.m_con, 10000, this.asyncReceiver, ord.id);
                return true;
            }
            catch (Exception e)
            {
                //если ошибка, то удаляем заявку с очереди и обновляем статус
                this.parent.parent.logMsg("Change Money: Ошибка выставления заявки на добавление id: " +ord.id.ToString(),1);
                return false;
            }
        }
        // функция выборки с таблици fut_orders_add записей для отправки
        public bool getOrders()
        {
            bool res = true;

            NpgsqlDataReader rd;
            try
            {
                this.parent.parent.logMsg("Начало получения заявок по ордерам на експирацию опциона");
                rd = cmdOrders_Select.ExecuteReader();
                this.parent.parent.logMsg("ExecutedReader");
                //на всякий случай блокируем очередь
                lock (this.parent.xQueueMsgLock)
                {
                    while (rd.Read())
                    {
                        try
                        {
                            long rowId = Convert.ToInt64(rd["_id"]);
                            string rowType = "cm";
                            //если очередь не содержит такую заявку
                            if (!this.parent.queueMsg.Contains(rowId))
                            {
                                try
                                {

                                    //если очередь не содержит такую заявку
                                    if (!this.mQueue.Contains(Convert.ToInt64(rd["_id"])))
                                    {
                                        this.parent.parent.logMsg("Opt Expiration: Выставление заявки на экспирацию опциона Id:" + rd["_id"].ToString());

                                        orderInfo ord = new orderInfo(rowId, rowType);
                                        if ((Convert.ToInt32(rd["type"])==7) ||(Convert.ToInt32(rd["type"])==8))
                                            ord.mode="12";
                                        else
                                            ord.mode="11";

                                        ord.isin = rd["isin"].ToString();
                                        ord.amount = rd["amount"].ToString().Replace(",", ".");
                                        ord.client_code = rd["client_code"].ToString();
                                        ord.type = Convert.ToInt32(rd["type"]);
                                        ord.ext_id = Convert.ToInt32(rd["ext_id"]);
                                        ord.order_id = Convert.ToInt32(rd["order_id"]);

                                        this.parent.queueMsg.Add(rowId, ord);
                                    }
                                }
                                catch (Exception e)
                                {
                                    this.parent.parent.logMsg("Opt Expiration (Reader next): Ошибка при добавлении в очередь отправки на биржу заявки  с id " + rowId.ToString() + "." + e.Message + e.HelpLink + "  " + e.TargetSite + "   " + e.Data);
                                    res = false;
                                }
                            }

                        }
                        catch (Exception ee)
                        {
                            this.parent.parent.logMsg("Opt Expiration (Reader): Ошибка при добавлении в очередь отправки на биржу заявки ." + ee.Message + ee.HelpLink + "  " + ee.TargetSite + "   " + ee.Data);
                            res = false;
                        }
                    }
                }

                rd.Close();

            }
            catch (Exception e)
            {
                this.parent.parent.logMsg("Opt Expiration: Ошибка выборки заявок для добавлениия в очередь отправки." + e.Message + e.HelpLink + "  " + e.TargetSite + "   " + e.Data);
                res = false;
            }

            return res;
        }