public ActionResult Index(string reportId, string returnUrl, bool nuevo)
        {
            var service     = new DocumentosUsuarioService(MarfilEntities.ConnectToSqlServer(ContextService.BaseDatos));
            var userService = FService.Instance.GetService(typeof(UsuariosModel), ContextService) as UsuariosService;

            TipoDocumentoImpresion tipoDocumento;
            Guid   usuario;
            string name;

            DocumentosUsuarioService.GetFromCustomId(reportId, out tipoDocumento, out usuario, out name);
            ViewBag.Tipo    = (int)tipoDocumento;
            ViewBag.Usuario = usuario.ToString();
            var usuarioObj     = usuario == Guid.Empty ? "Admin" : ((UsuariosModel)userService.get(usuario.ToString())).Usuario;
            var documentoModel = service.GetDocumento(tipoDocumento, usuario, name);

            return(View(new DesignModel
            {
                Nuevo = nuevo,
                Tiporeport = documentoModel?.Tiporeport ?? TipoReport.Report,
                Tipodocumento = tipoDocumento,
                Tipoprivacidad = documentoModel?.Tipoprivacidad ?? TipoPrivacidadDocumento.Publico,
                UsuarioId = usuario,
                Usuarionombre = usuarioObj,
                ReturnUrl = returnUrl,
                Url = reportId,
                Report = documentoModel?.Datos,
                DataSource = FDocumentosDatasourceReport.CreateReport(tipoDocumento, ContextService).DataSource,
                Name = name
            }));
        }
        public ActionResult Delete(string id)
        {
            if (TempData["errors"] != null)
            {
                ModelState.AddModelError("", TempData["errors"].ToString());
            }

            using (var db = MarfilEntities.ConnectToSqlServer(ContextService.BaseDatos))
                using (var service = new DocumentosUsuarioService(db))
                {
                    TipoDocumentoImpresion tipoDocumento;
                    Guid   usuario;
                    string name;
                    DocumentosUsuarioService.GetFromCustomId(id, out tipoDocumento, out usuario, out name);

                    ViewBag.TituloMantenimiento = string.Format(General.ConfiguradorDocumentos, Funciones.GetEnumByStringValueAttribute(tipoDocumento));
                    var model = new DocumentosDeleteModel()
                    {
                        CustomId = id,
                        Nombre   = name,
                        Tipo     = tipoDocumento,
                        Titulo   = string.Format(General.ConfiguradorDocumentos, Funciones.GetEnumByStringValueAttribute(tipoDocumento)),
                        Toolbar  = new ToolbarModel()
                        {
                            Titulo    = string.Format(General.ConfiguradorDocumentos, Funciones.GetEnumByStringValueAttribute(tipoDocumento)),
                            Operacion = TipoOperacion.Baja,
                            Acciones  = new IToolbaritem[] {}
                        }
                    };

                    return(View(model));
                }
        }
示例#3
0
        public override Dictionary <string, string> GetUrls()
        {
            _user    = GetCustomPrincipal();
            _service = new DocumentosUsuarioService(MarfilEntities.ConnectToSqlServer(_user.BaseDatos));
            // Get URLs and display names for all reports available in the storage.
            var result = new Dictionary <string, string>();

            try
            {
                var reportId = HttpUtility.ParseQueryString(HttpContext.Current.Request.UrlReferrer.PathAndQuery).GetValues("reportId")[0];
                TipoDocumentoImpresion TipoDocumentoImpresion;
                Guid   usuario;
                string name;
                DocumentosUsuarioService.GetFromCustomId(reportId, out TipoDocumentoImpresion, out usuario, out name);
                var items = _service.GetDocumentos(TipoDocumentoImpresion, _user.Id);
                foreach (var item in items)
                {
                    result.Add(item.CustomId, item.Nombre);
                }
            }
            catch (Exception ex)
            {
                string errores = ex.Message;
            }


            return(result);
        }
        public JsonResult SaveReport()
        {
            //string usuario,string tipodocumento,string tiporeport,string tipoprivacidad,string nombre
            var     jsonSerializer = new JavaScriptSerializer();
            dynamic parametros     = jsonSerializer.DeserializeObject(Request.Params["args"]);


            var reportByteVector = ReportDesignerExtension.GetReportXml("Reportdesigner");
            var service          = new DocumentosUsuarioService(MarfilEntities.ConnectToSqlServer(ContextService.BaseDatos));
            var tipoDocumento    = (TipoDocumentoImpresion)Enum.Parse(typeof(TipoDocumentoImpresion), parametros["tipodocumento"]);
            var tipoprivacidad   = (TipoPrivacidadDocumento)Enum.Parse(typeof(TipoPrivacidadDocumento), parametros["tipoprivacidad"]);
            var tiporeport       = (TipoReport)Enum.Parse(typeof(TipoReport), parametros["tiporeport"]);
            var defecto          = Funciones.Qbool(parametros["defecto"]);

            // Write a report to the storage under the specified URL.
            using (var stream = new MemoryStream(reportByteVector))
            {
                using (var streamReportToSave = new MemoryStream())
                {
                    var url    = DocumentosUsuarioService.CreateCustomId(tipoDocumento, new Guid(parametros["usuario"]), parametros["nombre"]);
                    var report = XtraReport.FromStream(stream, true);
                    report.Name        = url;
                    report.DisplayName = parametros["nombre"];
                    report.SaveLayout(streamReportToSave);
                    service.SetPreferencia(tipoDocumento, new Guid(parametros["usuario"]), tipoprivacidad, tiporeport, parametros["nombre"], streamReportToSave.ToArray(), defecto);
                }
            }
            return(Json(new { success = true, error = "none", Result = string.Format("{0}", DocumentosUsuarioService.CreateCustomId(tipoDocumento, new Guid(parametros["usuario"]), parametros["nombre"])) }));
        }
        public ActionResult Descargar(string tipo, string reportId, string primarykey)
        {
            var service = new DocumentosUsuarioService(MarfilEntities.ConnectToSqlServer(ContextService.BaseDatos));

            var    tipoDocumento = (TipoDocumentoImpresion)Enum.Parse(typeof(TipoDocumentoImpresion), tipo);
            Guid   usuario       = ContextService.Id;
            string name          = reportId;


            ViewBag.Tipo    = (int)tipoDocumento;
            ViewBag.Usuario = usuario.ToString();


            var model = new DesignModel
            {
                Url        = reportId,
                Report     = service.GetDocumentoParaImprimir(tipoDocumento, usuario, name)?.Datos,
                DataSource = FDocumentosDatasourceReport.CreateReport(tipoDocumento, ContextService, primarykey).DataSource,
                Name       = name
            };

            var report = new XtraReport();

            using (var ms = new MemoryStream(model.Report))
            {
                report.LoadLayout(ms);
                report.DataSource = model.DataSource;
                report.Name       = model.Name;
                using (var stream = new MemoryStream())
                {
                    report.ExportToPdf(stream);
                    return(File(stream.GetBuffer(), "application/pdf"));
                }
            }
        }
        public ActionResult Visualizar(string tipo, string reportId, string primarykey)
        {
            var service = new DocumentosUsuarioService(MarfilEntities.ConnectToSqlServer(ContextService.BaseDatos));

            TipoDocumentoImpresion tipoDocumento = (TipoDocumentoImpresion)Enum.Parse(typeof(TipoDocumentoImpresion), tipo);
            Guid   usuario = ContextService.Id;
            string name    = reportId;

            Dictionary <string, object> dictionary = null;

            if (primarykey.IsValidJson())
            {
                dictionary = JsonConvert.DeserializeObject <Dictionary <string, object> >(primarykey);
            }

            ViewBag.Tipo    = (int)tipoDocumento;
            ViewBag.Usuario = usuario.ToString();
            var model = new DesignModel
            {
                Url        = reportId,
                Report     = service.GetDocumentoParaImprimir(tipoDocumento, usuario, name)?.Datos,
                DataSource = FDocumentosDatasourceReport.CreateReport(tipoDocumento, ContextService, primarykey).DataSource,
                Parameters = dictionary,
                Name       = name
            };

            Session["ReportViewer"] = model;
            return(View(model));
        }
示例#7
0
        public override byte[] GetData(string url)
        {
            _user    = GetCustomPrincipal();
            _service = new DocumentosUsuarioService(MarfilEntities.ConnectToSqlServer(_user.BaseDatos));
            // Get the report data from the storage.
            TipoDocumentoImpresion TipoDocumentoImpresion;
            Guid   usuario;
            string name;

            DocumentosUsuarioService.GetFromCustomId(url, out TipoDocumentoImpresion, out usuario, out name);
            var obj = _service.GetDocumento(TipoDocumentoImpresion, usuario, name);

            return(obj.Datos);
        }
示例#8
0
        public override bool CanSetData(string url)
        {
            if (!_reportIdRegex.IsMatch(url))
            {
                return(false);
            }

            _user    = GetCustomPrincipal();
            _service = new DocumentosUsuarioService(MarfilEntities.ConnectToSqlServer(_user.BaseDatos));
            // Check if the URL is available in the report storage.
            TipoDocumentoImpresion tipoDocumentoImpresion;
            Guid   usuario;
            string name;

            DocumentosUsuarioService.GetFromCustomId(url, out tipoDocumentoImpresion, out usuario, out name);
            return(_service.ExisteDocumento(tipoDocumentoImpresion, usuario, name));
        }
        public ActionResult Import()
        {
            var Tipodocumento = Request.Params["Tipodocumento"];
            var Returnurl     = Request.Params["Returnurl"];

            if (Request.Files.Count > 0)
            {
                var file = Request.Files[0];

                if (file != null && file.ContentLength > 0)
                {
                    byte[] data;
                    using (Stream inputStream = file.InputStream)
                    {
                        MemoryStream memoryStream = inputStream as MemoryStream;
                        if (memoryStream == null)
                        {
                            memoryStream = new MemoryStream();
                            inputStream.CopyTo(memoryStream);
                        }
                        data = memoryStream.ToArray();
                    }

                    var tipodocumento = (TipoDocumentoImpresion)Enum.Parse(typeof(TipoDocumentoImpresion), Tipodocumento);
                    return(View("Index", new DesignModel
                    {
                        Nuevo = true,
                        Tiporeport = TipoReport.Report,
                        Tipodocumento = tipodocumento,
                        Tipoprivacidad = TipoPrivacidadDocumento.Publico,
                        UsuarioId = ContextService.Id,
                        Usuarionombre = ContextService.Usuario,
                        ReturnUrl = Returnurl,
                        Url = DocumentosUsuarioService.CreateCustomId(tipodocumento, ContextService.Id, "Nuevo documento"),
                        Report = data,
                        DataSource = FDocumentosDatasourceReport.CreateReport(tipodocumento, ContextService).DataSource,
                        Name = "Nuevo documento"
                    }));
                }
            }

            return(Redirect(Returnurl));
        }
示例#10
0
        private byte[] UrlFile(FicherosEmailModel item)
        {
            var mierror = "";
            var result  = new  byte[0];

            try
            {
                using (var service = new DocumentosUsuarioService(MarfilEntities.ConnectToSqlServer(ContextService.BaseDatos)))
                {
                    var vector                 = item.Url.Split(';');
                    var primarykey             = vector[0];
                    var TipoDocumentoImpresion = (TipoDocumentoImpresion)Enum.Parse(typeof(TipoDocumentoImpresion), vector[1]);
                    var reportId               = vector[2];
                    var model = new DesignModel
                    {
                        Url        = reportId,
                        Report     = service.GetDocumento(TipoDocumentoImpresion, ContextService.Id, reportId)?.Datos,
                        DataSource = FDocumentosDatasourceReport.CreateReport(TipoDocumentoImpresion, ContextService, primarykey).DataSource,
                        Name       = string.Format("{0}", item.Nombre)
                    };

                    var report = new XtraReport();
                    using (var ms = new MemoryStream(model.Report))
                    {
                        report.LoadLayout(ms);
                        report.DataSource = model.DataSource;
                        report.Name       = model.Name;
                        using (var stream = new MemoryStream())
                        {
                            report.ExportToPdf(stream);
                            result = stream.GetBuffer();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                mierror = ex.Message;
            }

            return(result);
        }
        // GET: Documentos
        public ActionResult Index(string id)
        {
            using (var db = MarfilEntities.ConnectToSqlServer(ContextService.BaseDatos))
                using (var service = new DocumentosUsuarioService(db))
                {
                    var model         = new DocumentosWrapperModel();
                    var tipoDocumento = (TipoDocumentoImpresion)Enum.Parse(typeof(TipoDocumentoImpresion), id);

                    model.Titulo = string.Format(General.ConfiguradorDocumentos, Funciones.GetEnumByStringValueAttribute(tipoDocumento));
                    model.Tipo   = tipoDocumento;
                    model.Lineas = service.GetDocumentos(tipoDocumento, ContextService.Id);
                    ((IToolbar)model).Toolbar = new ToolbarModel()
                    {
                        Titulo    = model.Titulo,
                        Operacion = TipoOperacion.Index,
                        Acciones  = IndexToolbar(tipoDocumento, ContextService.Id)
                    };
                    Session[id] = model;
                    return(View(model));
                }
        }
示例#12
0
        public static DocumentosBotonImprimirModel GetListFormatos(TipoDocumentoImpresion tipo, string referencia)
        {
            var user = HttpContext.Current.User as ICustomPrincipal;

            using (var db = MarfilEntities.ConnectToSqlServer(user.BaseDatos))
            {
                var servicePreferencias = new PreferenciasUsuarioService(db);
                var doc     = servicePreferencias.GePreferencia(TiposPreferencias.DocumentoImpresionDefecto, user.Id, tipo.ToString(), "Defecto") as PreferenciaDocumentoImpresionDefecto;
                var service = new DocumentosUsuarioService(db);
                {
                    var lst =
                        service.GetDocumentos(tipo, user.Id)
                        .Where(f => f.Tiporeport == TipoReport.Report);
                    return(new DocumentosBotonImprimirModel()
                    {
                        Tipo = tipo,
                        Lineas = lst.Select(f => f.Nombre),
                        Primarykey = referencia,
                        Defecto = doc?.Name
                    });
                }
            }
        }
        public ActionResult Export(string id)
        {
            var service = new DocumentosUsuarioService(MarfilEntities.ConnectToSqlServer(ContextService.BaseDatos));
            TipoDocumentoImpresion tipoDocumento;
            Guid   usuario;
            string name;

            DocumentosUsuarioService.GetFromCustomId(id, out tipoDocumento, out usuario, out name);
            var model    = service.GetDocumento(tipoDocumento, usuario, name);
            var document = model.Datos;
            var cd       = new System.Net.Mime.ContentDisposition
            {
                // for example foo.bak
                FileName = string.Format("{0}.repx", model.Nombre),

                // always prompt the user for downloading, set to true if you want
                // the browser to try to show the file inline
                Inline = false,
            };

            Response.AppendHeader("Content-Disposition", cd.ToString());
            return(File(document, "rpt"));
        }
示例#14
0
        public override void SetData(XtraReport report, string url)
        {
            if (!_reportIdRegex.IsMatch(url))
            {
                return;
            }

            _user    = GetCustomPrincipal();
            _service = new DocumentosUsuarioService(MarfilEntities.ConnectToSqlServer(_user.BaseDatos));
            // Write a report to the storage under the specified URL.
            using (var stream = new MemoryStream())
            {
                TipoDocumentoImpresion TipoDocumentoImpresion;
                Guid   usuario;
                string name;

                DocumentosUsuarioService.GetFromCustomId(url, out TipoDocumentoImpresion, out usuario, out name);
                report.Name        = url;
                report.DisplayName = name;
                report.SaveLayout(stream);
                //_service.SetPreferencia(TipoDocumentoImpresion, usuario, name, stream.ToArray());
            }
        }
示例#15
0
        public override string SetNewData(XtraReport report, string defaultUrl)
        {
            if (_reportIdRegex.IsMatch(defaultUrl))
            {
                throw new Exception("No se pude guardar el nuevo report");
            }

            _user    = GetCustomPrincipal();
            _service = new DocumentosUsuarioService(MarfilEntities.ConnectToSqlServer(_user.BaseDatos));
            using (var stream = new MemoryStream())
            {
                var objTag = report.Name;
                var vector = objTag.Split(';');
                var TipoDocumentoImpresion = (TipoDocumentoImpresion)Enum.Parse(typeof(TipoDocumentoImpresion), vector[1]);
                var usuario  = new Guid(vector[0]);
                var idReport = DocumentosUsuarioService.CreateCustomId(TipoDocumentoImpresion, usuario, defaultUrl);
                report.Name        = idReport;
                report.DisplayName = defaultUrl;
                report.SaveLayout(stream);
                //_service.SetPreferencia(TipoDocumentoImpresion, usuario, defaultUrl, stream.ToArray());
                return(idReport);
            }
        }
示例#16
0
        //public DocumentosBotonImprimirModel GetListFormatos()
        //{
        //    var user = Context;
        //    using (var db = MarfilEntities.ConnectToSqlServer(user.BaseDatos))
        //    {
        //        var servicePreferencias = new PreferenciasUsuarioService(db);
        //        var doc = servicePreferencias.GetDocumentosImpresionMantenimiento
        //            (user.Id,
        //                TipoAsientoImpresion.Normal.ToString(), "Defecto") as PreferenciaDocumentoImpresionDefecto;

        //        var service = new DocumentosUsuarioService(db);
        //        {
        //            var lst =
        //                service.GetDocumentos(TipoDocumentoImpresion.FacturasVentas, user.Id)
        //                    .Where(f => f.Tiporeport == TipoReport.Report);
        //            return new DocumentosBotonImprimirModel()
        //            {
        //                Tipo = TipoDocumentoImpresion.FacturasVentas,
        //                Lineas = lst.Select(f => f.Nombre),
        //                Primarykey = Referencia,
        //                Defecto = doc?.Name
        //            };
        //        }
        //    }

        //}



        public DocumentosBotonImprimirModel GetListFormatos()
        {
            var user = Context;

            using (var db = MarfilEntities.ConnectToSqlServer(user.BaseDatos))
            {
                var servicePreferencias = new PreferenciasUsuarioService(db);
                var doc     = servicePreferencias.GetDocumentosImpresionMantenimiento(user.Id, TipoDocumentoImpresion.Asientos.ToString(), "Defecto") as PreferenciaDocumentoImpresionDefecto;
                var service = new DocumentosUsuarioService(db);
                {
                    var lst =
                        service.GetDocumentos(TipoDocumentoImpresion.Asientos, user.Id)
                        .Where(f => f.Tiporeport == TipoReport.Report);
                    return(new DocumentosBotonImprimirModel()
                    {
                        Tipo = TipoDocumentoImpresion.Asientos,
                        Lineas = lst.Select(f => f.Nombre),
                        Primarykey = Referencia,
                        Defecto = doc?.Name
                    });
                }
            }
        }
        public virtual ActionResult DeleteConfirmed(DocumentosModel model)
        {
            try
            {
                using (var db = MarfilEntities.ConnectToSqlServer(ContextService.BaseDatos))
                    using (var service = new DocumentosUsuarioService(db))
                    {
                        TipoDocumentoImpresion tipoDocumento;
                        Guid   usuario;
                        string name;
                        DocumentosUsuarioService.GetFromCustomId(model.CustomId, out tipoDocumento, out usuario, out name);
                        ViewBag.TituloMantenimiento = string.Format(General.ConfiguradorDocumentos, Funciones.GetEnumByStringValueAttribute(tipoDocumento));
                        service.RemovePreferencia(tipoDocumento, usuario, name);

                        return(RedirectToAction("Index", new { id = (int)tipoDocumento }));
                    }
            }
            catch (Exception ex)
            {
                TempData["errors"] = ex.Message;
            }

            return(RedirectToAction("Delete", new { id = model.CustomId }));
        }
示例#18
0
 public DocumentosStartup(IContextService context, MarfilEntities db)
 {
     _context           = context;
     _documentosService = new DocumentosUsuarioService(db);
 }
        protected virtual IEnumerable <IToolbaritem> IndexToolbar(TipoDocumentoImpresion tipo, Guid usuario)
        {
            var result = new List <IToolbaritem>();

            result.Add(new ToolbarActionModel()
            {
                Icono = "fa fa-plus",
                Texto = General.BtnNuevoRegistro,
                Url   = Url.Action("Index", "Designer", new { nuevo = true, reportId = DocumentosUsuarioService.CreateCustomId(tipo, usuario, "Nuevo"), returnUrl = Url.Action("Index", "Documentos", new { id = (int)tipo }) })
            });

            return(result);
        }