public bool AprobarTransferencia(Transferencia transferencia) { using (LealtadEntities db = new LealtadEntities()) { db.Database.Connection.ConnectionString = AppModule.ConnectionString("SumaLealtad"); Order orden = db.Orders.Find(transferencia.id); List<OrdersDetail> ordersdetails = db.OrdersDetails.Where(x => x.orderid == orden.id).ToList(); foreach (OrdersDetail od in ordersdetails) { OrdersDetail od2 = db.OrdersDetails.Find(od.id, od.orderid); od2.sumastatusid = db.SumaStatuses.FirstOrDefault(s => (s.value == Globals.ID_ESTATUS_DETALLEORDEN_APROBADO) && (s.tablename == "OrdersDetail")).id; } //Actualizar estatus y monto de la Orden orden.sumastatusid = db.SumaStatuses.FirstOrDefault(s => (s.value == Globals.ID_ESTATUS_ORDEN_APROBADA) && (s.tablename == "Orders")).id; orden.totalamount = 0; orden.processdate = DateTime.Now; //Entidad OrderHistory int idOrderHistory = repOrden.OrdersHistoryId(); OrdersHistory orderhistory = new OrdersHistory() { id = idOrderHistory, orderid = orden.id, estatusid = orden.sumastatusid, userid = (int)HttpContext.Current.Session["userid"], creationdate = orden.processdate, comments = "orden aprobada" }; db.OrdersHistories.Add(orderhistory); db.SaveChanges(); return true; } }
public OrderTypeVM(string name, string ordertype, OrdersHistory parent) { _name = name; _ordertype = ordertype; _parent = parent; SetIcon(this); }
public void SaveLogOrder(int orderId, string statusOrder) { OrdersHistory orderH = new OrdersHistory(); orderH.orderId = orderId; orderH.statusId = statusOrder; orderH.creationDate = DateTime.Now; _dbContext.OrdersHistory.Add(orderH); _dbContext.SaveChanges(); }
protected virtual OpenPositionInfo OpenShortPosition(Ticker ticker, string mark, double value, double amount, bool allowTrailing, bool checkForMinValue, double trailingStopLossPc, double minProfitPc) { double spent = ticker.SpentInBaseCurrency(value, amount); if (1.05 * spent > GetMaxAllowedShortDeposit()) { return(null); } if (checkForMinValue && spent < MinDepositForOpenPosition) { return(null); } TradingResult res = MarketSell(ticker, value, amount); if (res == null) { return(null); } OpenPositionInfo info = new OpenPositionInfo() { Ticker = ticker, DataItemIndex = StrategyData.Count - 1, Time = DataProvider.CurrentTime, Type = OrderType.Sell, Spent = spent + CalcFee(res.Total), AllowTrailing = allowTrailing, StopLossPercent = trailingStopLossPc, OpenValue = res.Value, OpenAmount = res.Amount, Amount = res.Amount, Mark = mark, AllowHistory = (DataProvider is SimulationStrategyDataProvider), Total = res.Total, MinProfitPercent = minProfitPc, CloseValue = value * (1 + minProfitPc * 0.01), }; info.UpdateCurrentValue(DataProvider.CurrentTime, res.Value); OpenedOrders.Add(info); OrdersHistory.Add(info); OnOpenShortPosition(info); UpdateMaxAllowedShortDeposit(-info.Spent); IOpenedPositionsProvider provider = (IOpenedPositionsProvider)StrategyData.Last(); provider.OpenedPositions.Add(info); provider.AddMark(mark); Save(); return(info); }
public IActionResult Index() { OrdersHistory ordersHistory = _context.OrdersHistory.Include("Orders.Cart.ProductsInCart.Product").FirstOrDefault((x => x.Id == _context.GetCurrentOrdersHistoryId())); List <Order> ordersInHistory = ordersHistory.Orders.OrderByDescending(o => o.OrderDate).ToList(); if (ordersInHistory.Count == 0) { return(View("EmptyOrdersHistory")); } return(View("Index", ordersInHistory)); }
protected virtual OpenPositionInfo OpenLongPosition(string mark, double value, double amount, bool allowTrailing, bool checkForMinValue, double trailingStopLossPc, double minProfitPc) { if (1.05 * value * amount > MaxAllowedDeposit) { return(null); } if (checkForMinValue && value * amount < MinDepositForOpenPosition) { return(null); } TradingResult res = MarketBuy(value, amount); if (res == null) { return(null); } OpenPositionInfo info = new OpenPositionInfo() { DataItemIndex = StrategyData.Count - 1, Time = DataProvider.CurrentTime, Type = OrderType.Buy, Spent = res.Total + CalcFee(res.Total), AllowTrailing = allowTrailing, StopLossPercent = trailingStopLossPc, OpenValue = res.Value, OpenAmount = res.Amount, Amount = res.Amount, Mark = mark, AllowHistory = (DataProvider is SimulationStrategyDataProvider), Total = res.Total, MinProfitPercent = minProfitPc, CloseValue = value * (1 + minProfitPc * 0.01), }; info.UpdateCurrentValue(DataProvider.CurrentTime, res.Value); OpenedOrders.Add(info); OrdersHistory.Add(info); OnOpenLongPosition(info); MaxAllowedDeposit -= info.Spent; IOpenedPositionsProvider provider = (CombinedStrategyDataItem)StrategyData.Last(); provider.OpenedPositions.Add(info); provider.AddMark(mark); Save(); return(info); }
public async Task <List <OrdersHistory> > GetOrderDetailsAsync() { var uname = Preferences.Get("Username", "Guest"); var orders = (await client.Child("Orders") .OnceAsync <Order>()) .Where(o => o.Object.Username.Equals(uname)) .Select(o => new Order() { OrderId = o.Object.OrderId, TotalCost = o.Object.TotalCost, }).ToList(); foreach (var order in orders) { OrdersHistory oh = new OrdersHistory(); oh.OrderId = order.OrderId; oh.TotalCost = order.TotalCost; var orderDetails = (await client.Child("OrderDetails") .OnceAsync <OrderDetails>()) .Where(o => o.Object.OrderId.Equals(order.OrderId)) .Select(o => new OrderDetails() { OrderId = o.Object.OrderId, OrderDetailId = o.Object.OrderDetailId, ProductId = o.Object.ProductId, ProductName = o.Object.ProductName, Quantity = o.Object.Quantity, Price = o.Object.Price }).ToList(); oh.AddRange(orderDetails); UserOrder.Add(oh); } return(UserOrder); }
public int GetCurrentOrdersHistoryId() { var currentOrdersHistory = OrdersHistory.OrderByDescending(c => c.Id).FirstOrDefault(); return(currentOrdersHistory.Id); }
public int CrearTransferencia(int idCliente, List<DetalleOrdenRecargaPrepago> detalleOrden) { int idOrden = 0; using (LealtadEntities db = new LealtadEntities()) { db.Database.Connection.ConnectionString = AppModule.ConnectionString("SumaLealtad"); //ENTIDAD Order Order Order = new Order() { id = repOrden.OrderId(), prepaidcustomerid = idCliente, totalamount = 0, paymenttype = "", creationdate = DateTime.Now, creationuserid = (int)HttpContext.Current.Session["userid"], processdate = DateTime.Now, comments = detalleOrden.First().tipoOrden, sumastatusid = db.SumaStatuses.FirstOrDefault(s => (s.value == Globals.ID_ESTATUS_ORDEN_NUEVA) && (s.tablename == "Orders")).id }; db.Orders.Add(Order); idOrden = Order.id; int idbase = repOrden.OrdersDetailId(); foreach (DetalleOrdenRecargaPrepago item in detalleOrden) { idbase = idbase + 1; //ENTIDAD OrderDetail OrdersDetail OrderDetail = new OrdersDetail() { id = idbase, orderid = Order.id, customerid = item.idAfiliado, amount = item.montoRecarga, sumastatusid = db.SumaStatuses.FirstOrDefault(s => (s.value == Globals.ID_ESTATUS_DETALLEORDEN_INCLUIDO) && (s.tablename == "OrdersDetail")).id }; if (detalleOrden.First().tipoOrden == "Orden de Anulación de Transferencia") { long number1 = 0; bool canConvert = long.TryParse(item.batchid, out number1); //si la transferencia no fue exitosa, creo el renglon de la orden con monto 0 if (canConvert == false) { OrderDetail.amount = 0; } else { OrderDetail.amount = item.montoRecarga; OrderDetail.comments = item.batchid; } } db.OrdersDetails.Add(OrderDetail); } //Entidad OrderHistory int idOrderHistory = repOrden.OrdersHistoryId(); OrdersHistory orderhistory = new OrdersHistory() { id = idOrderHistory, orderid = idOrden, estatusid = Order.sumastatusid, userid = (int)HttpContext.Current.Session["userid"], creationdate = DateTime.Now, comments = "orden creada" }; db.OrdersHistories.Add(orderhistory); db.SaveChanges(); return idOrden; } }
public bool RechazarTransferencia(int id) { using (LealtadEntities db = new LealtadEntities()) { db.Database.Connection.ConnectionString = AppModule.ConnectionString("SumaLealtad"); Order orden = db.Orders.FirstOrDefault(o => o.id.Equals(id)); orden.sumastatusid = db.SumaStatuses.FirstOrDefault(s => (s.value == Globals.ID_ESTATUS_ORDEN_RECHAZADA) && (s.tablename == "Orders")).id; orden.processdate = DateTime.Now; //Entidad OrderHistory int idOrderHistory = repOrden.OrdersHistoryId(); OrdersHistory orderhistory = new OrdersHistory() { id = idOrderHistory, orderid = orden.id, estatusid = orden.sumastatusid, userid = (int)HttpContext.Current.Session["userid"], creationdate = orden.processdate, comments = "orden rechazada" }; db.OrdersHistories.Add(orderhistory); db.SaveChanges(); return true; } }
public bool ProcesarTransferencia(int id) { Transferencia transferencia = FindTransferencia(id); string respuestaSuma = ""; string respuestaPrepago = ""; string mensaje = ""; using (LealtadEntities db = new LealtadEntities()) { db.Database.Connection.ConnectionString = AppModule.ConnectionString("SumaLealtad"); Order orden = db.Orders.Find(transferencia.id); List<OrdersDetail> ordersdetails = db.OrdersDetails.Where(x => x.orderid == orden.id).ToList(); if (orden.comments.Contains("Orden de Transferencia")) { //realizar transferencias if (transferencia.ResumenTransferenciaSuma != "0") { respuestaSuma = Transferir(transferencia.docnumberAfiliadoOrigen, transferencia.docnumberAfiliadoDestino, Globals.TIPO_CUENTA_SUMA, transferencia.ResumenTransferenciaSuma); long number1 = 0; bool canConvert = long.TryParse(respuestaSuma, out number1); if (canConvert == false) { mensaje = "Falló transferencia Suma (" + respuestaSuma + "). "; ordersdetails.First().comments = "Transferencia Suma fallida"; ordersdetails.First().cardsresponse = respuestaSuma; ordersdetails.First().sumastatusid = db.SumaStatuses.FirstOrDefault(s => (s.value == Globals.ID_ESTATUS_DETALLEORDEN_PROCESADO) && (s.tablename == "OrdersDetail")).id; ordersdetails.Skip(2).First().comments = "Transferencia Suma fallida"; ordersdetails.Skip(2).First().cardsresponse = respuestaSuma; ordersdetails.Skip(2).First().sumastatusid = db.SumaStatuses.FirstOrDefault(s => (s.value == Globals.ID_ESTATUS_DETALLEORDEN_PROCESADO) && (s.tablename == "OrdersDetail")).id; } else { mensaje = "Transferencia Suma efectiva con clave " + respuestaSuma + ". "; ordersdetails.First().comments = "Transferencia Suma efectiva"; ordersdetails.First().cardsresponse = respuestaSuma; ordersdetails.First().sumastatusid = db.SumaStatuses.FirstOrDefault(s => (s.value == Globals.ID_ESTATUS_DETALLEORDEN_PROCESADO) && (s.tablename == "OrdersDetail")).id; ordersdetails.Skip(2).First().comments = "Transferencia Suma efectiva"; ordersdetails.Skip(2).First().cardsresponse = (Convert.ToInt32(respuestaSuma) + 1).ToString(); ordersdetails.Skip(2).First().sumastatusid = db.SumaStatuses.FirstOrDefault(s => (s.value == Globals.ID_ESTATUS_DETALLEORDEN_PROCESADO) && (s.tablename == "OrdersDetail")).id; } } else { ordersdetails.First().sumastatusid = db.SumaStatuses.FirstOrDefault(s => (s.value == Globals.ID_ESTATUS_DETALLEORDEN_PROCESADO) && (s.tablename == "OrdersDetail")).id; ordersdetails.First().comments = ""; ordersdetails.First().cardsresponse = ""; ordersdetails.Skip(2).First().comments = ""; ordersdetails.Skip(2).First().cardsresponse = ""; ordersdetails.Skip(2).First().sumastatusid = db.SumaStatuses.FirstOrDefault(s => (s.value == Globals.ID_ESTATUS_DETALLEORDEN_PROCESADO) && (s.tablename == "OrdersDetail")).id; } if (transferencia.ResumenTransferenciaPrepago != "0,00") { respuestaPrepago = Transferir(transferencia.docnumberAfiliadoOrigen, transferencia.docnumberAfiliadoDestino, Globals.TIPO_CUENTA_PREPAGO, transferencia.ResumenTransferenciaPrepago); long number1 = 0; bool canConvert = long.TryParse(respuestaPrepago, out number1); if (canConvert == false) { mensaje = mensaje + "Falló transferencia Prepago (" + respuestaPrepago + ")."; ordersdetails.Skip(1).First().comments = "Transferencia Prepago fallida"; ordersdetails.Skip(1).First().cardsresponse = respuestaPrepago; ordersdetails.Skip(1).First().sumastatusid = db.SumaStatuses.FirstOrDefault(s => (s.value == Globals.ID_ESTATUS_DETALLEORDEN_PROCESADO) && (s.tablename == "OrdersDetail")).id; ordersdetails.Skip(3).First().comments = "Transferencia Prepago fallida"; ordersdetails.Skip(3).First().cardsresponse = respuestaPrepago; ordersdetails.Skip(3).First().sumastatusid = db.SumaStatuses.FirstOrDefault(s => (s.value == Globals.ID_ESTATUS_DETALLEORDEN_PROCESADO) && (s.tablename == "OrdersDetail")).id; } else { mensaje = mensaje + "Transferencia Prepago efectiva con clave " + respuestaPrepago + "."; ordersdetails.Skip(1).First().comments = "Transferencia Prepago efectiva"; ordersdetails.Skip(1).First().cardsresponse = respuestaPrepago; ordersdetails.Skip(1).First().sumastatusid = db.SumaStatuses.FirstOrDefault(s => (s.value == Globals.ID_ESTATUS_DETALLEORDEN_PROCESADO) && (s.tablename == "OrdersDetail")).id; ordersdetails.Skip(3).First().comments = "Transferencia Prepago efectiva"; ordersdetails.Skip(3).First().cardsresponse = (Convert.ToInt32(respuestaPrepago) + 1).ToString(); ordersdetails.Skip(3).First().sumastatusid = db.SumaStatuses.FirstOrDefault(s => (s.value == Globals.ID_ESTATUS_DETALLEORDEN_PROCESADO) && (s.tablename == "OrdersDetail")).id; } } else { ordersdetails.Skip(1).First().comments = ""; ordersdetails.Skip(1).First().cardsresponse = ""; ordersdetails.Skip(1).First().sumastatusid = db.SumaStatuses.FirstOrDefault(s => (s.value == Globals.ID_ESTATUS_DETALLEORDEN_PROCESADO) && (s.tablename == "OrdersDetail")).id; ordersdetails.Skip(3).First().comments = ""; ordersdetails.Skip(3).First().sumastatusid = db.SumaStatuses.FirstOrDefault(s => (s.value == Globals.ID_ESTATUS_DETALLEORDEN_PROCESADO) && (s.tablename == "OrdersDetail")).id; ordersdetails.Skip(3).First().cardsresponse = ""; } db.SaveChanges(); } else { //Anular Transferencias y Actualizar estatus detalleorden if (transferencia.ResumenTransferenciaSuma != "0") { //ANULO DEBITO SUMA respuestaSuma = Anular(transferencia.docnumberAfiliadoOrigen, ordersdetails.First().comments, Globals.TRANSCODE_ANULACION); long number1 = 0; bool canConvert = long.TryParse(respuestaSuma, out number1); if (canConvert == false) { mensaje = "Falló Anulación de transferencia Suma (" + respuestaSuma + "). "; ordersdetails.First().comments = "Anulación fallida " + ordersdetails.First().comments; ordersdetails.First().cardsresponse = respuestaSuma; ordersdetails.First().sumastatusid = db.SumaStatuses.FirstOrDefault(s => (s.value == Globals.ID_ESTATUS_DETALLEORDEN_PROCESADO) && (s.tablename == "OrdersDetail")).id; } else { mensaje = "Anulación de Transferencia Suma efectiva con clave " + respuestaSuma + ". "; ordersdetails.First().comments = "Anulación efectiva " + ordersdetails.First().comments; ordersdetails.First().cardsresponse = respuestaSuma; ordersdetails.First().sumastatusid = db.SumaStatuses.FirstOrDefault(s => (s.value == Globals.ID_ESTATUS_DETALLEORDEN_PROCESADO) && (s.tablename == "OrdersDetail")).id; } //ANULO CREDITO SUMA respuestaSuma = Anular(transferencia.docnumberAfiliadoDestino, ordersdetails.Skip(2).First().comments, Globals.TRANSCODE_ANULACION); number1 = 0; canConvert = long.TryParse(respuestaSuma, out number1); if (canConvert == false) { mensaje = "Falló Anulación de transferencia Suma (" + respuestaSuma + "). "; ordersdetails.Skip(2).First().comments = "Anulación fallida " + ordersdetails.Skip(2).First().comments; ordersdetails.Skip(2).First().cardsresponse = respuestaSuma; ordersdetails.Skip(2).First().sumastatusid = db.SumaStatuses.FirstOrDefault(s => (s.value == Globals.ID_ESTATUS_DETALLEORDEN_PROCESADO) && (s.tablename == "OrdersDetail")).id; } else { mensaje = "Anulación de Transferencia Suma efectiva con clave " + respuestaSuma + ". "; ordersdetails.Skip(2).First().comments = "Anulación efectiva " + ordersdetails.Skip(2).First().comments; ordersdetails.Skip(2).First().cardsresponse = respuestaSuma; ordersdetails.Skip(2).First().sumastatusid = db.SumaStatuses.FirstOrDefault(s => (s.value == Globals.ID_ESTATUS_DETALLEORDEN_PROCESADO) && (s.tablename == "OrdersDetail")).id; } } else { ordersdetails.First().sumastatusid = db.SumaStatuses.FirstOrDefault(s => (s.value == Globals.ID_ESTATUS_DETALLEORDEN_PROCESADO) && (s.tablename == "OrdersDetail")).id; ordersdetails.First().comments = ""; ordersdetails.First().cardsresponse = ""; ordersdetails.Skip(2).First().comments = ""; ordersdetails.Skip(2).First().cardsresponse = ""; ordersdetails.Skip(2).First().sumastatusid = db.SumaStatuses.FirstOrDefault(s => (s.value == Globals.ID_ESTATUS_DETALLEORDEN_PROCESADO) && (s.tablename == "OrdersDetail")).id; } if (transferencia.ResumenTransferenciaPrepago != "0,00") { //ANULO DEBITO PREPAGO respuestaPrepago = Anular(transferencia.docnumberAfiliadoOrigen, ordersdetails.Skip(1).First().comments, Globals.TRANSCODE_ANULACION); long number1 = 0; bool canConvert = long.TryParse(respuestaPrepago, out number1); if (canConvert == false) { mensaje = "Falló Anulación de transferencia Prepago (" + respuestaPrepago + "). "; ordersdetails.Skip(1).First().comments = "Anulación fallida " + ordersdetails.Skip(1).First().comments; ordersdetails.Skip(1).First().cardsresponse = respuestaPrepago; ordersdetails.Skip(1).First().sumastatusid = db.SumaStatuses.FirstOrDefault(s => (s.value == Globals.ID_ESTATUS_DETALLEORDEN_PROCESADO) && (s.tablename == "OrdersDetail")).id; } else { mensaje = "Anulación de Transferencia Prepago efectiva con clave " + respuestaPrepago + ". "; ordersdetails.Skip(1).First().comments = "Anulación efectiva " + ordersdetails.Skip(1).First().comments; ordersdetails.Skip(1).First().cardsresponse = respuestaPrepago; ordersdetails.Skip(1).First().sumastatusid = db.SumaStatuses.FirstOrDefault(s => (s.value == Globals.ID_ESTATUS_DETALLEORDEN_PROCESADO) && (s.tablename == "OrdersDetail")).id; } //ANULO CREDITO PREPAGO respuestaPrepago = Anular(transferencia.docnumberAfiliadoDestino, ordersdetails.Skip(3).First().comments, Globals.TRANSCODE_ANULACION); number1 = 0; canConvert = long.TryParse(respuestaPrepago, out number1); if (canConvert == false) { mensaje = "Falló Anulación de transferencia Prepago (" + respuestaPrepago + "). "; ordersdetails.Skip(3).First().comments = "Anulación fallida " + ordersdetails.Skip(3).First().comments; ordersdetails.Skip(3).First().cardsresponse = respuestaPrepago; ordersdetails.Skip(3).First().sumastatusid = db.SumaStatuses.FirstOrDefault(s => (s.value == Globals.ID_ESTATUS_DETALLEORDEN_PROCESADO) && (s.tablename == "OrdersDetail")).id; } else { mensaje = "Anulación de Transferencia Prepago efectiva con clave " + respuestaPrepago + ". "; ordersdetails.Skip(3).First().comments = "Anulación efectiva " + ordersdetails.Skip(3).First().comments; ordersdetails.Skip(3).First().cardsresponse = respuestaPrepago; ordersdetails.Skip(3).First().sumastatusid = db.SumaStatuses.FirstOrDefault(s => (s.value == Globals.ID_ESTATUS_DETALLEORDEN_PROCESADO) && (s.tablename == "OrdersDetail")).id; } } else { ordersdetails.Skip(1).First().comments = ""; ordersdetails.Skip(1).First().cardsresponse = ""; ordersdetails.Skip(1).First().sumastatusid = db.SumaStatuses.FirstOrDefault(s => (s.value == Globals.ID_ESTATUS_DETALLEORDEN_PROCESADO) && (s.tablename == "OrdersDetail")).id; ordersdetails.Skip(3).First().comments = ""; ordersdetails.Skip(3).First().sumastatusid = db.SumaStatuses.FirstOrDefault(s => (s.value == Globals.ID_ESTATUS_DETALLEORDEN_PROCESADO) && (s.tablename == "OrdersDetail")).id; ordersdetails.Skip(3).First().cardsresponse = ""; } db.SaveChanges(); } //Actualizar estatus de la Orden orden.sumastatusid = db.SumaStatuses.FirstOrDefault(s => (s.value == Globals.ID_ESTATUS_ORDEN_PROCESADA) && (s.tablename == "Orders")).id; orden.processdate = DateTime.Now; //Entidad OrderHistory int idOrderHistory = repOrden.OrdersHistoryId(); OrdersHistory orderhistory = new OrdersHistory() { id = idOrderHistory, orderid = orden.id, estatusid = orden.sumastatusid, userid = (int)HttpContext.Current.Session["userid"], creationdate = orden.processdate, comments = "orden procesada" }; db.OrdersHistories.Add(orderhistory); db.SaveChanges(); return true; } }