예제 #1
0
        public override ResultadoOperacionDto EjecutarDistribucion(Viewer.Application.Dto.DocumentoInstanciaXbrlDto instancia, IDictionary <string, object> parametros)
        {
            var resultadoExportacion = new ResultadoOperacionDto();

            resultadoExportacion.Resultado = false;
            try{
                LogUtil.Info("Ejecutando Distribución EXCEL para documento: " + instancia.IdDocumentoInstancia + ", archivo: " + instancia.Titulo);
                resultadoExportacion = ExportadorDocumentoInstancia.ExportarDocumentoExcel(instancia, "es");
                if (resultadoExportacion.Resultado)
                {
                    if (resultadoExportacion.InformacionExtra != null)
                    {
                        var infoExtra = ((IDictionary <string, object>)resultadoExportacion.InformacionExtra);
                        if (infoExtra.ContainsKey("errores") && ((List <InformeErrorImportacion>)infoExtra["errores"]).Count > 0)
                        {
                            resultadoExportacion.Resultado = false;
                            resultadoExportacion.Mensaje   = "";
                            foreach (var informeError in (List <InformeErrorImportacion>)infoExtra["errores"])
                            {
                                resultadoExportacion.Mensaje = resultadoExportacion.Mensaje + informeError.Mensaje + " ";
                            }
                        }
                    }
                    ArchivoDocumentoInstancia archivo = new ArchivoDocumentoInstancia();
                    archivo.Archivo = (byte[])((IDictionary <string, object>)resultadoExportacion.InformacionExtra)["archivo"];
                    archivo.IdDocumentoInstancia = (long)instancia.IdDocumentoInstancia;
                    archivo.IdTipoArchivo        = TipoArchivoConstants.ArchivoXls;

                    ArchivoDocumentoInstanciaRepository.AgregaDistribucion(archivo);

                    resultadoExportacion.Resultado = true;
                }
            }
            catch (Exception ex)
            {
                resultadoExportacion.Resultado = false;
                resultadoExportacion.Mensaje   = "Ocurrió un error al escribir el archivo excel:" + ex.Message;
                resultadoExportacion.Excepcion = ex.StackTrace;
                LogUtil.Info("Falló Distribución EXCEL para documento: " + instancia.IdDocumentoInstancia + ", archivo: " + instancia.Titulo + ":" + ex.Message);
            }
            return(resultadoExportacion);
        }
        public override ResultadoOperacionDto EjecutarDistribucion(DocumentoInstanciaXbrlDto instancia, IDictionary <string, object> parametros)
        {
            var resultado = new ResultadoOperacionDto();

            LogUtil.Info("Ejecutando Distribución JSON para documento: " + instancia.IdDocumentoInstancia + ", archivo: " + instancia.Titulo);

            try
            {
                string objJson = JsonConvert.SerializeObject(instancia, Formatting.Indented, new JsonSerializerSettings
                {
                    ReferenceLoopHandling = ReferenceLoopHandling.Ignore
                });


                byte[] zipBytes = ZipUtil.GZip(objJson);
                //AgregarArchivoAListaJson(instancia);
                resultado.Resultado = true;

                ArchivoDocumentoInstancia archivo = new ArchivoDocumentoInstancia();
                archivo.Archivo = zipBytes;
                archivo.IdDocumentoInstancia = (long)instancia.IdDocumentoInstancia;
                archivo.IdTipoArchivo        = TipoArchivoConstants.ArchivoJson;

                ArchivoDocumentoInstanciaRepository.AgregaDistribucion(archivo);
                objJson = null;
            }
            catch (Exception ex)
            {
                var detalleError = new Dictionary <string, object>()
                {
                    { "Error", "Error ejecutando Distribución JSON para documento: " + instancia.IdDocumentoInstancia + ", archivo: " + instancia.Titulo + ":" + ex.Message },
                    { "Excepsion", ex }
                };
                LogUtil.Error(detalleError);
                resultado.Resultado = false;
                resultado.Mensaje   = "Ocurrió un error al ejecutar la Distribución JSON para el archivo:" + instancia.IdDocumentoInstancia + ", archivo" + instancia.Titulo + ": " + ex.Message;
                resultado.Excepcion = ex.StackTrace;
            }
            return(resultado);
        }
예제 #3
0
        public override ResultadoOperacionDto EjecutarDistribucion(Viewer.Application.Dto.DocumentoInstanciaXbrlDto instancia, IDictionary <string, object> parametros)
        {
            var resultadoExportacion = new ResultadoOperacionDto();

            resultadoExportacion.Resultado = false;
            try
            {
                LogUtil.Info("Ejecutando Distribución PDF para documento: " + instancia.IdDocumentoInstancia + ", archivo: " + instancia.Titulo);
                var plantilla = ObtenDefinicionPlantilla(instancia);
                var builder   = ReporteBuilderFactoryService.obtenerReporteBuilder(instancia, plantilla, "es");
                var exporter  = ExportadorDocumentoInstanciaFactoryService.ObtenerExportadorParaDocumento(instancia);
                builder.crearReporteXBRLDTO(instancia);
                var archivoBytes = exporter.exportarDocumentoAPDF(instancia, builder.ReporteXBRLDTO);

                if (archivoBytes != null)
                {
                    ArchivoDocumentoInstancia archivo = new ArchivoDocumentoInstancia();
                    archivo.Archivo = archivoBytes;
                    archivo.IdDocumentoInstancia = (long)instancia.IdDocumentoInstancia;
                    archivo.IdTipoArchivo        = TipoArchivoConstants.ArchivoPdf;

                    ArchivoDocumentoInstanciaRepository.AgregaDistribucion(archivo);
                    resultadoExportacion.Resultado = true;

                    //EscribirArchivo(archivoBytes, instancia.Titulo);
                }
            }
            catch (Exception ex)
            {
                resultadoExportacion.Resultado = false;
                resultadoExportacion.Mensaje   = "Ocurrió un error al escribir el archivo PDF:" + ex.Message;
                resultadoExportacion.Excepcion = ex.StackTrace;
                LogUtil.Info("Falló Distribución PDF para documento: " + instancia.IdDocumentoInstancia + ", archivo: " + instancia.Titulo + ":" + ex.Message);
                LogUtil.Error(ex);
            }
            return(resultadoExportacion);
        }