Exemple #1
0
        public void GerarR2099(decimal oidUsuario, decimal oidContribuinte, R2099Entidade r2099, string baseCaminhoArquivo)
        {
            // Busca contribuinte
            var contribuinte        = new ContribuinteProxy().BuscarPorChave(oidContribuinte);
            var usuarioContribuinte = new UsuarioContribuinteProxy().BuscarPorOidUsuarioOidContribuinte(oidUsuario, oidContribuinte);

            // Monta nome do arquivo
            var nomeArquivoZip     = "XML_R2099_" + 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
            });

            // Cria novo registro na R2099
            var R2099Proxy = new R2099Proxy();

            r2099.IND_SITUACAO_PROCESSAMENTO = DMN_SITUACAO_PROCESSAMENTO.PROCESSADO;
            r2099.IND_CPRB           = contribuinte.IND_DESONERACAO_CPRB;
            r2099.OID_USUARIO_ENVIO  = oidUsuario;
            r2099.OID_ARQUIVO_UPLOAD = oidArquivoUpload;
            var oidR2099 = R2099Proxy.Inserir(r2099);

            // Monta XML
            var templateFile = Path.Combine(baseCaminhoArquivo, "../TemplatesXml", "R2099.liquid");
            var template     = Template.Parse(File.OpenText(templateFile).ReadToEnd());
            var xmlR2099     = 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, r2099.OID_R2099.ToString().PadLeft(5, '0')),
                dta_periodo_apuracao = r2099.DTA_PERIODO_APURACAO.ToString("yyyy-MM"),
                ind_ambiente_envio   = r2099.IND_AMBIENTE_ENVIO,
                versao                    = Assembly.GetExecutingAssembly().GetName().Version.ToString(3),
                ind_tipo_inscricao        = contribuinte.IND_TIPO_INSCRICAO,
                cod_cnpj_cpf              = contribuinte.COD_CNPJ_CPF.Substring(0, 8),
                nom_contato               = contribuinte.NOM_CONTATO,
                cod_cpf_contato           = contribuinte.COD_CPF_CONTATO,
                cod_fone_celular_contato  = contribuinte.COD_FONE_CELULAR_CONTATO,
                txt_email_contato         = contribuinte.TXT_EMAIL_CONTATO,
                ind_contratacao_serv      = r2099.IND_CONTRATACAO_SERV.Substring(0, 1),
                ind_prestacao_serv        = r2099.IND_PRESTACAO_SERV.Substring(0, 1),
                ind_associacao_desportiva = r2099.IND_ASSOCIACAO_DESPORTIVA.Substring(0, 1),
                ind_repasse_assoc_desport = r2099.IND_REPASSE_ASSOC_DESPORT.Substring(0, 1),
                ind_producao_rural        = r2099.IND_PRODUCAO_RURAL.Substring(0, 1),
                ind_aquisicao_rural       = r2099.IND_AQUISICAO_RURAL.Substring(0, 1),
                ind_desoneracao_cprb      = contribuinte.IND_DESONERACAO_CPRB == "0" ? "N" : "S",
                ind_pagamentos_diversos   = r2099.IND_PAGAMENTOS_DIVERSOS.Substring(0, 1),
                dta_competencia_sem_mov   = r2099.DTA_COMPETENCIA_SEM_MOV == null ? null : Convert.ToDateTime(r2099.DTA_COMPETENCIA_SEM_MOV).ToString("yyyy-MM")
            });

            var caminhoArquivo = GerarArquivo("R2099_", baseCaminhoArquivo, xmlR2099);

            CompactarArquivo(caminhoArquivo, baseCaminhoArquivo, nomeArquivoZip);
        }
        private static void AtualizarR2099(decimal oid, string numRecibo)
        {
            var proxy     = new R2099Proxy();
            var registro  = proxy.BuscarPorChave(oid);
            var dataEnvio = registro.DTA_ENVIO ?? DateTime.Now;

            proxy.UpdateReciboPorOidArquivoUpload(numRecibo, dataEnvio, registro.OID_ARQUIVO_UPLOAD);
        }
        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));
            }
        }