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;
 }
Beispiel #8
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 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);
 }
Beispiel #12
0
        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));
        }