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;
     }
 }
Example #2
0
        public OrderTypeVM(string name, string ordertype, OrdersHistory parent)
        {
            _name      = name;
            _ordertype = ordertype;
            _parent    = parent;

            SetIcon(this);
        }
Example #3
0
        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);
        }
Example #8
0
        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;
            }
        }