public OrdenEntity CreateOrder() { bool existeOrden = OrdenHelper.CheckOrdenActivaEnMercadoByIdProducto(IdProducto); if (Tasa != 0 && !existeOrden) { OrdenEntity orden = new OrdenEntity(); ProductoEntity p = CachingManager.Instance.GetProductoById(IdProducto); orden.CompraVenta = "V"; orden.FechaConcertacion = DateTime.Now.ToUniversalTime(); orden.IdMercado = 1; orden.IdProducto = IdProducto; orden.IdMoneda = p.IdMoneda; orden.IdPersona = IdEmpresa; orden.IdEnNombreDe = null; orden.Cantidad = (decimal)PrecioReferencia; orden.IdSourceApplication = (byte)SourceEnum.Web; orden.PrecioLimite = Tasa; orden.IdTipoOrden = 1; orden.Plazo = (byte)PlazoOrdenEnum.ContadoInmediato; orden.IdEstado = (int)EstadoOrden.Ingresada; orden.IdTipoVigencia = TipoVigencia.NoAplica; orden.Rueda = p.Rueda; orden.Tasa = Tasa; orden.IdUsuario = MAEUserSession.InstanciaCargada ? (int?)MAEUserSession.Instancia.IdUsuario : null; if (p.IdTipoProducto == (byte)TiposProducto.FACTURAS) { orden.OperoPorTasa = true; orden.CantidadMinima = orden.Cantidad; } try { OrdenHelper.AltaOrdenDMA(orden); string key = orden.GetProductKey(); OrdenHelper.NotificarAsociacionProductoPortfolio(p, orden.Valorizacion, key, IdPersonas, IdEmpresa, portfolio, orden.IdMercado); } catch (Exception e) { throw new M4TraderApplicationException(e.Message); } return(orden); } return(null); }