public IActionResult Deletar(decimal oidArquivoUpload)
 {
     try
     {
         var proxy         = new ArquivoUploadProxy();
         var arquivoUpload = proxy.BuscarPorChave(oidArquivoUpload);
         proxy.Deletar(arquivoUpload);
         return(Ok());
     }
     catch (Exception ex)
     {
         return(BadRequest(ex.Message));
     }
 }
示例#2
0
        public ActionResult ImportarCsv(decimal oidArquivoUpload, decimal oidContribuinte)
        {
            try
            {
                _oidArquivoUpload = oidArquivoUpload;
                _oidContribuinte  = oidContribuinte;

                //Excluindo as críticas anteriores do arquivo na tabela EFD_IMPORTACAO_CRITICA.
                _proxyImportacaoCritica.ExcluirPorOidArquivoUpload(_oidArquivoUpload);

                var rowArquivoUpload = _proxyArquivoUpload.BuscarPorChave(_oidArquivoUpload);

                if (rowArquivoUpload == null)
                {
                    throw new Exception("Arquivo não encontrado.");
                }

                if (rowArquivoUpload.IND_STATUS == DMN_STATUS_EFD_UPLOAD.PROCESSADO)
                {
                    throw new Exception("O arquivo já foi processado.");
                }

                var linhas = System.IO.File.ReadAllLines(rowArquivoUpload.NOM_ARQUIVO_LOCAL, Encoding.Default);
                _quantidadeLinhas = linhas.Length - 1;

                if (_quantidadeLinhas == 0)
                {
                    throw new Exception("O arquivo está em branco.");
                }

                _listImportacaoCritica = new List <ImportacaoCriticaEntidade>();

                string indRegistro = linhas[1].Split(';')[0];

                //Chamando o Layout correspondente ao arquivo
                switch (indRegistro)
                {
                case DMN_REGISTRO_EFD.R_1070:
                    ImportarCsv1070(linhas);
                    break;

                case DMN_REGISTRO_EFD.R_2010:
                    ImportarCsv2010(linhas);
                    break;

                default:
                    break;
                }

                //Gravando as críticas na tabela EFD_IMPORTACAO_CRITICA.
                GravarImportacaoCritica();

                if (_listImportacaoCritica.Count <= 0)
                {
                    //Atualizando o status do arquivo na tabela EFD_ARQUIVO_UPLOAD.
                    AtualizarArquivoUpload(rowArquivoUpload);
                }
                else
                {
                    return(BadRequest("Arquivo não importado. Existe(m) erro(s) no layout do arquivo."));
                }

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