public void SetPreferencia(TipoDocumentoImpresion tipoDocumento, Guid usuario,TipoPrivacidadDocumento tipoprivacidad,TipoReport tiporeport, string name, byte[] report,bool defecto=false) { using (var tran = Marfil.Inf.Genericos.Helper.TransactionScopeBuilder.CreateTransactionObject()) { var item = _db.DocumentosUsuario.SingleOrDefault(f => f.fkusuario == usuario && f.tipo == (int)tipoDocumento && f.nombre == name) ?? _db.DocumentosUsuario.Create(); item.fkusuario = usuario; item.tipo = (int)tipoDocumento; item.nombre = name; item.datos = report; item.tipoprivacidad = (int)tipoprivacidad; item.tiporeport = (int)tiporeport; _db.DocumentosUsuario.AddOrUpdate(item); _db.SaveChanges(); if (defecto && tiporeport==TipoReport.Report) { var service = new PreferenciasUsuarioService(_db); service.SetPreferencia(TiposPreferencias.DocumentoImpresionDefecto, usuario, tipoDocumento.ToString(), "Defecto", new PreferenciaDocumentoImpresionDefecto() { Name = name, Tipodocumento = tipoDocumento, Usuario = usuario }); } tran.Complete(); } }
public IEnumerable<DocumentosModel> GetDocumentosParaImprimir(TipoDocumentoImpresion tipoDocumento, Guid usuario) { var servicePreferencias = new PreferenciasUsuarioService(_db); var doc = servicePreferencias.GePreferencia(TiposPreferencias.DocumentoImpresionDefecto, usuario, tipoDocumento.ToString(), "Defecto") as PreferenciaDocumentoImpresionDefecto; var defectoName = doc != null ? doc.Name : string.Empty; return _db.DocumentosUsuario.Where(f => (f.fkusuario == usuario || f.fkusuario==Guid.Empty) && f.tipo == (int)tipoDocumento).ToList().Select(f => new DocumentosModel() { Defecto = defectoName == f.nombre, Tipo = tipoDocumento, CustomId = CreateCustomId(tipoDocumento, f.fkusuario, f.nombre), Nombre = f.nombre, Usuario = f.fkusuario == Guid.Empty ? "Admin" : _db.Usuarios.Single(j => j.id == f.fkusuario).usuario, Tipoprivacidad = (TipoPrivacidadDocumento)f.tipoprivacidad, Tiporeport = (TipoReport)f.tiporeport }).ToList().OrderByDescending(f => f.Defecto); }
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)); }
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); }
public DocumentosModel GetDocumentoParaImprimir(TipoDocumentoImpresion tipoDocumento, Guid usuario, string name) { var documento = _db.DocumentosUsuario.SingleOrDefault(f =>( f.fkusuario == usuario ||f.fkusuario==Guid.Empty )&& f.tipo == (int)tipoDocumento && f.nombre == name); if (documento != null) { return new DocumentosModel() { Tipo = tipoDocumento, CustomId = CreateCustomId(tipoDocumento, documento.fkusuario, documento.nombre), Nombre = documento.nombre, Usuario = documento.fkusuario == Guid.Empty ? "Admin" : _db.Usuarios.Single(j => j.id == documento.fkusuario).usuario, Datos = documento.datos, Tipoprivacidad = (TipoPrivacidadDocumento)documento.tipoprivacidad, Tiporeport = (TipoReport)documento.tiporeport }; } return null; }
public static void GetFromCustomId(string customId, out TipoDocumentoImpresion tipo, out Guid usuario, out string name) { var vector = customId.Split(Separator); var nombre = ""; //este truño es por si el nombre tiene guiones var flag = false; for(var i=2;i< vector.Length;i++) { if (flag) nombre += Separator; nombre += vector[i]; flag = true; } tipo = (TipoDocumentoImpresion)Enum.Parse(typeof (TipoDocumentoImpresion), vector[0]); usuario = new Guid(vector[1]); name = nombre; }
public DocumentosModel GetDocumento(TipoDocumentoImpresion tipoDocumento, Guid usuario, string name) { var servicePreferencias = new PreferenciasUsuarioService(_db); var doc = servicePreferencias.GePreferencia(TiposPreferencias.DocumentoImpresionDefecto, usuario, tipoDocumento.ToString(), "Defecto") as PreferenciaDocumentoImpresionDefecto; var defectoName = doc != null ? doc.Name : string.Empty; var documento = _db.DocumentosUsuario.SingleOrDefault(f => (f.fkusuario == usuario || f.fkusuario == Guid.Empty) && f.tipo == (int)tipoDocumento && f.nombre == name); if (documento != null) { return new DocumentosModel() { Defecto = defectoName == documento.nombre, Tipo = tipoDocumento, CustomId = CreateCustomId(tipoDocumento, documento.fkusuario, documento.nombre), Nombre = documento.nombre, Usuario = documento.fkusuario == Guid.Empty ? "Admin" : _db.Usuarios.Single(j => j.id == documento.fkusuario).usuario, Datos = documento.datos, Tipoprivacidad = (TipoPrivacidadDocumento)documento.tipoprivacidad, Tiporeport = (TipoReport)documento.tiporeport }; } return null; }
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 void RemovePreferencia(TipoDocumentoImpresion tipoDocumento, Guid usuario, string name) { var documento = _db.DocumentosUsuario.SingleOrDefault( f => f.fkusuario == usuario && f.tipo == (int) tipoDocumento && f.nombre == name); var service = new PreferenciasUsuarioService(_db); var doc=service.GePreferencia(TiposPreferencias.DocumentoImpresionDefecto, usuario, tipoDocumento.ToString(), "Defecto"); if (doc != null) { if (documento != null) { var docObj = doc as PreferenciaDocumentoImpresionDefecto; if (docObj.Name == documento.nombre) { throw new ValidationException("No se puede eliminar el documento por defecto"); } _db.DocumentosUsuario.Remove(documento); _db.SaveChanges(); } } }
public bool ExisteDocumento(TipoDocumentoImpresion tipoDocumento, Guid usuario, string name, TipoPrivacidadDocumento privacidad = TipoPrivacidadDocumento.Publico) { return _db.DocumentosUsuario.Any(f => f.fkusuario == usuario && f.tipo == (int) tipoDocumento && f.nombre == name && f.tipoprivacidad == (int)privacidad); }
public static string CreateCustomId(TipoDocumentoImpresion tipoDocumento, Guid usuario, string name) { return string.Format("{0}{3}{1}{3}{2}", (int) tipoDocumento, usuario, name, Separator); }
public static IReport CreateReport(TipoDocumentoImpresion tipo, IContextService user, string primarykey = "") { if (tipo == TipoDocumentoImpresion.PresupuestosVentas) { return(new PresupuestosReport(user, primarykey)); } else if (tipo == TipoDocumentoImpresion.PedidosVentas) { return(new PedidosReport(user, primarykey)); } else if (tipo == TipoDocumentoImpresion.AlbaranesVentas) { return(new AlbaranesReport(user, primarykey)); } else if (tipo == TipoDocumentoImpresion.FacturasVentas) { return(new FacturasReport(user, primarykey)); } else if (tipo == TipoDocumentoImpresion.PresupuestosCompras) { return(new PresupuestosComprasReport(user, primarykey)); } else if (tipo == TipoDocumentoImpresion.PedidosCompras) { return(new PedidosComprasReport(user, primarykey)); } else if (tipo == TipoDocumentoImpresion.AlbaranesCompras) { return(new AlbaranesComprasReport(user, primarykey)); } else if (tipo == TipoDocumentoImpresion.FacturasCompras) { return(new FacturasComprasReport(user, primarykey)); } else if (tipo == TipoDocumentoImpresion.Kit) { return(new KitReport(user, primarykey)); } else if (tipo == TipoDocumentoImpresion.Bundle) { return(new BundleReport(user, primarykey)); } else if (tipo == TipoDocumentoImpresion.Reservasstock) { return(new ReservasstockReport(user, primarykey)); } else if (tipo == TipoDocumentoImpresion.Traspasosalmacen) { return(new TraspasosalmacenReport(user, primarykey)); } else if (tipo == TipoDocumentoImpresion.Inventarios) { return(new InventariosReport(user, primarykey)); } else if (tipo == TipoDocumentoImpresion.Transformaciones) { return(new TransformacionesReport(user, primarykey)); } else if (tipo == TipoDocumentoImpresion.Transformacioneslotes) { return(new TransformacioneslotesReport(user, primarykey)); } else if (tipo == TipoDocumentoImpresion.CarteraVencimientos) { return(new CarteraVencimientosReport(user, primarykey)); } else if (tipo == TipoDocumentoImpresion.Asientos) { Dictionary <string, object> dictionary = null; if (primarykey.IsValidJson()) { dictionary = JsonConvert.DeserializeObject <Dictionary <string, object> >(primarykey); } return(new DiarioReport(user, dictionary)); } else if (tipo == TipoDocumentoImpresion.Mayor) { Dictionary <string, object> dictionary = null; if (primarykey.IsValidJson()) { dictionary = JsonConvert.DeserializeObject <Dictionary <string, object> >(primarykey); } return(new MayorReport(user, dictionary)); } else if (tipo == TipoDocumentoImpresion.SumasYSaldos) { Dictionary <string, object> dictionary = null; if (primarykey.IsValidJson()) { dictionary = JsonConvert.DeserializeObject <Dictionary <string, object> >(primarykey); } return(new SumasYSaldosReport(user, dictionary)); } else if (tipo == TipoDocumentoImpresion.BalancePedidos) { Dictionary <string, object> dictionary = null; if (primarykey.IsValidJson()) { dictionary = JsonConvert.DeserializeObject <Dictionary <string, object> >(primarykey); } return(new BalancePedidosPe(user, dictionary)); } else if (tipo == TipoDocumentoImpresion.ListadoMargen) { Dictionary <string, object> dictionary = null; if (primarykey.IsValidJson()) { dictionary = JsonConvert.DeserializeObject <Dictionary <string, object> >(primarykey); } return(new ListadoMargenQuery(user, dictionary)); } throw new NotImplementedException(string.Format("Tipo de documento {0} no implementado", tipo)); }