private static void AtualizarR2098(decimal oid, string numRecibo)
        {
            var proxy     = new R2098Proxy();
            var registro  = proxy.BuscarPorChave(oid);
            var dataEnvio = registro.DTA_ENVIO ?? DateTime.Now;

            proxy.UpdateReciboPorOidArquivoUpload(numRecibo, dataEnvio, registro.OID_ARQUIVO_UPLOAD);
        }
Пример #2
0
        public void GerarR2098(decimal oidUsuario, decimal oidContribuinte, string tipoAmbiente, int ano, int mes, string baseCaminhoArquivo)
        {
            // Busca contribuinte
            var contribuinte        = new ContribuinteProxy().BuscarPorChave(oidContribuinte);
            var usuarioContribuinte = new UsuarioContribuinteProxy().BuscarPorOidUsuarioOidContribuinte(oidUsuario, oidContribuinte);
            var dtaPeriodoApuracao  = new DateTime(ano, mes, 1);

            // Monta nome do arquivo
            var nomeArquivoZip     = "XML_R2098_" + Guid.NewGuid().ToString() + ".zip";
            var arquivoUploadProxy = new ArquivoUploadProxy();

            var oidArquivoUpload = arquivoUploadProxy.Inserir(new ArquivoUploadEntidade
            {
                DTA_UPLOAD               = DateTime.Now,
                IND_STATUS               = DMN_STATUS_EFD_UPLOAD.NAO_PROCESSADO,
                NOM_ARQUIVO_LOCAL        = "Upload/" + nomeArquivoZip,
                NOM_EXT_ARQUIVO          = ".zip",
                NOM_ARQUIVO_ORIGINAL     = nomeArquivoZip,
                NOM_DIRETORIO_LOCAL      = "Upload",
                OID_USUARIO_CONTRIBUINTE = usuarioContribuinte.OID_USUARIO_CONTRIBUINTE
            });

            //Inserinfo na R2098
            var r2098Proxy = new R2098Proxy();
            var oidR2098   = r2098Proxy.Inserir(new R2098Entidade
            {
                OID_CONTRIBUINTE            = oidContribuinte,
                OID_USUARIO_ENVIO           = oidUsuario,
                DTA_PERIODO_APURACAO        = dtaPeriodoApuracao,
                IND_AMBIENTE_ENVIO          = tipoAmbiente,
                NUM_RECIBO_ENVIO            = null,
                DTA_ENVIO                   = null,
                IND_SITUACAO_PROCESSAMENTO_ = DMN_SITUACAO_PROCESSAMENTO.PROCESSADO,
                OID_ARQUIVO_UPLOAD          = oidArquivoUpload
            });

            // Monta XML
            var templateFile = Path.Combine(baseCaminhoArquivo, "../TemplatesXml", "R2098.liquid");
            var template     = Template.Parse(File.OpenText(templateFile).ReadToEnd());
            var xmlR2098     = template.Render(new
            {
                id = string.Format("ID{0}{1}{2:yyyyMMddHHmmss}{3}", contribuinte.IND_TIPO_INSCRICAO, contribuinte.COD_CNPJ_CPF.Substring(0, 8).PadRight(14, '0'), DateTime.Now, oidR2098.ToString().PadLeft(5, '0')),
                dta_periodo_Apuracao = dtaPeriodoApuracao.ToString("yyyy-MM"),
                ind_ambiente_envio   = tipoAmbiente,
                versao             = Assembly.GetExecutingAssembly().GetName().Version.ToString(3),
                ind_tipo_inscricao = contribuinte.IND_TIPO_INSCRICAO,
                cod_cnpj_cpf       = contribuinte.COD_CNPJ_CPF.Substring(0, 8)
            });

            var caminhoArquivo = GerarArquivo("R2098_", baseCaminhoArquivo, xmlR2098);

            CompactarArquivo(caminhoArquivo, baseCaminhoArquivo, nomeArquivoZip);
        }
        public IActionResult BuscarArquivos(decimal oidContribuinte)
        {
            try
            {
                var R1000 = new ContribuinteEnvioProxy().BuscarPorOidContribuinte(oidContribuinte);
                var R1070 = new ArquivoUploadProxy().BuscarR1070PorOidContribuinteNaoEnviado(oidContribuinte);
                var R2098 = new R2098Proxy().BuscarPorOidContribuinte(oidContribuinte);
                var R2099 = new R2099Proxy().BuscarPorOidContribuinte(oidContribuinte);

                var R2010 = new ArquivoUploadProxy().BuscarR2010PorOidContribuinteNaoEnviado(oidContribuinte)
                            .Where(x => x.IND_SITUACAO_PROCESSAMENTO == DMN_SITUACAO_PROCESSAMENTO.PROCESSADO ||
                                   x.IND_SITUACAO_PROCESSAMENTO == DMN_SITUACAO_PROCESSAMENTO.ENVIADO ||
                                   x.IND_SITUACAO_PROCESSAMENTO == DMN_SITUACAO_PROCESSAMENTO.RETIFICADO)
                            .ToList();

                var listaArquivos = new List <ArquivoGerado>();

                // R-1000
                foreach (var item in R1000)
                {
                    listaArquivos.Add(new ArquivoGerado
                    {
                        Tipo             = "R-1000",
                        DataGeracao      = item.DTA_UPLOAD.Value,
                        Ambiente         = item.IND_TIPO_AMBIENTE == DMN_TIPO_AMBIENTE_EFD.PRODUCAO ? "Produção" : "Produção Restrita",
                        Status           = item.IND_STATUS == DMN_STATUS_EFD_UPLOAD.PROCESSADO ? "Processado" : "Gerado",
                        Usuario          = new UsuarioProxy().BuscarPorChave(item.OID_USUARIO_ENVIO).NOM_USUARIO,
                        OidArquivoUpload = item.OID_ARQUIVO_UPLOAD
                    });
                }

                // R-1070
                foreach (var item in R1070)
                {
                    listaArquivos.Add(new ArquivoGerado
                    {
                        Tipo             = "R-1070",
                        DataGeracao      = item.DTA_UPLOAD,
                        Ambiente         = item.IND_AMBIENTE_ENVIO == DMN_TIPO_AMBIENTE_EFD.PRODUCAO ? "Produção" : "Produção Restrita",
                        Status           = item.IND_STATUS == DMN_STATUS_EFD_UPLOAD.PROCESSADO ? "Processado" : "Gerado",
                        Usuario          = new UsuarioProxy().BuscarPorChave(item.OID_USUARIO_ENVIO).NOM_USUARIO,
                        OidArquivoUpload = item.OID_ARQUIVO_UPLOAD
                    });
                }

                // R-2010
                foreach (var item in R2010)
                {
                    listaArquivos.Add(new ArquivoGerado
                    {
                        Tipo             = "R-2010",
                        DataGeracao      = item.DTA_UPLOAD,
                        Ambiente         = item.IND_AMBIENTE_ENVIO == DMN_TIPO_AMBIENTE_EFD.PRODUCAO ? "Produção" : "Produção Restrita",
                        Status           = item.IND_STATUS == DMN_STATUS_EFD_UPLOAD.PROCESSADO ? "Processado" : "Gerado",
                        Usuario          = new UsuarioProxy().BuscarPorChave(item.OID_USUARIO_ENVIO).NOM_USUARIO,
                        OidArquivoUpload = item.OID_ARQUIVO_UPLOAD
                    });
                }

                // R-2098
                foreach (var item in R2098)
                {
                    listaArquivos.Add(new ArquivoGerado
                    {
                        Tipo             = "R-2098",
                        DataGeracao      = item.DTA_UPLOAD.Value,
                        Ambiente         = item.IND_AMBIENTE_ENVIO == DMN_TIPO_AMBIENTE_EFD.PRODUCAO ? "Produção" : "Produção Restrita",
                        Status           = item.IND_STATUS == DMN_STATUS_EFD_UPLOAD.PROCESSADO ? "Processado" : "Gerado",
                        Usuario          = new UsuarioProxy().BuscarPorChave(item.OID_USUARIO_ENVIO).NOM_USUARIO,
                        OidArquivoUpload = item.OID_ARQUIVO_UPLOAD
                    });
                }

                // R-2099
                foreach (var item in R2099)
                {
                    listaArquivos.Add(new ArquivoGerado
                    {
                        Tipo             = "R-2099",
                        DataGeracao      = item.DTA_UPLOAD.Value,
                        Ambiente         = item.IND_AMBIENTE_ENVIO == DMN_TIPO_AMBIENTE_EFD.PRODUCAO ? "Produção" : "Produção Restrita",
                        Status           = item.IND_STATUS == DMN_STATUS_EFD_UPLOAD.PROCESSADO ? "Processado" : "Gerado",
                        Usuario          = new UsuarioProxy().BuscarPorChave(item.OID_USUARIO_ENVIO).NOM_USUARIO,
                        OidArquivoUpload = item.OID_ARQUIVO_UPLOAD
                    });
                }

                listaArquivos = listaArquivos.OrderByDescending(x => x.DataGeracao).ToList();

                return(Json(listaArquivos));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }