예제 #1
0
        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);
        }