예제 #1
0
        public static string AdicionarNotaFiscalRemessa(
            string tipo,
            string item,
            string chaveNF,
            string chaveReferenciada,
            string numero,
            string cnpj,
            string quantidade,
            string unidade,
            string ncm,
            string dueId)
        {
            var documentoUnicoExportacaoDAO = new DocumentoUnicoExportacaoDAO();
            var notaFiscalDAO = new NotaFiscalDAO();

            if (!documentoUnicoExportacaoDAO.JaExisteNotaRemessaCadastrada(chaveNF, item.ToInt(), dueId.ToInt(), chaveReferenciada))
            {
                notaFiscalDAO.Cadastrar(new NotaFiscal
                {
                    TipoNF            = tipo,
                    Item              = item.ToInt() == 0 ? 1 : item.ToInt(),
                    ChaveNF           = chaveNF,
                    ChaveNFReferencia = chaveReferenciada,
                    NumeroNF          = numero,
                    CnpjNF            = cnpj,
                    QuantidadeNF      = quantidade.ToDecimal(),
                    UnidadeNF         = unidade,
                    NCM     = ncm,
                    Usuario = Convert.ToInt32(HttpContext.Current.Session["UsuarioId"].ToString()),
                    OBS     = "DUE MANUAL",
                    DueId   = dueId.ToInt()
                });
            }

            var notas = documentoUnicoExportacaoDAO.ObterNotasFiscaisRemessaDUE(chaveReferenciada, dueId.ToInt());

            return(Newtonsoft.Json.JsonConvert.SerializeObject(notas));
        }
        //importar arquivos
        protected void btnImportar_Click(object sender, EventArgs e)
        {
            try
            {
                if (this.txtUpload.PostedFile == null)
                {
                    ModelState.AddModelError(string.Empty, "Nenhum arquivo informado");
                }

                if (this.txtUpload.PostedFile.ContentLength == 0)
                {
                    ModelState.AddModelError(string.Empty, "Arquivo inválido");
                }

                if (this.txtNCM_Default.Text != string.Empty)
                {
                    if (this.txtNCM_Default.Text.Replace(".", "").Length != 8)
                    {
                        ModelState.AddModelError(string.Empty, "NCM inválido. Informe um NCM de 8 dígitos");
                    }
                }


                //if (!this.txtUpload.PostedFile.FileName.ToUpper().EndsWith("TXT") && !this.txtUpload.PostedFile.FileName.ToUpper().EndsWith("CSV"))
                //ModelState.AddModelError(string.Empty, "É permitido apenas importação de arquivos .txt");

                if (_notaFiscalDAO.ExisteNotaFiscalPorNomeArquivo(this.txtUpload.PostedFile.FileName))
                {
                    ModelState.AddModelError(string.Empty, string.Format("O arquivo {0} já foi importado.", this.txtUpload.PostedFile.FileName));
                }

                if (this.chkCriarItensDUE.Checked)
                {
                    if (this.cbCondicaoVenda_Default.SelectedValue == string.Empty)
                    {
                        ModelState.AddModelError(string.Empty, "Selecione a Condição de Venda");
                        this.chkCriarItensDUE.Checked = false;
                    }
                }

                if (!ModelState.IsValid)
                {
                    return;
                }

                if (!UploadArquivo(this.txtUpload))
                {
                    throw new Exception("O arquivo não pode ser processado. Certifique-se que já não esteja aberto em outro programa");
                }

                int quantidadeImportada = 0;

                var notasFiscais = ProcessarArquivo(this.txtUpload.PostedFile.InputStream, ";");

                ExcluirNotasReferenciadas(notasFiscais);

                foreach (var nf in notasFiscais)
                {
                    nf.Arquivo = this.txtUpload.FileName;
                    nf.Usuario = Convert.ToInt32(Session["UsuarioId"].ToString());
                    nf.VMLE    = this.txtValorUnitVMLE_Default.Text.ToDecimal();
                    nf.VMCV    = this.txtValorUnitVMCV_Default.Text.ToDecimal();

                    var existeNf = _notaFiscalDAO.ExisteNotaFiscal(nf);

                    if (existeNf > 0)
                    {
                        _notaFiscalDAO.ExcluirNotaFiscal(existeNf);
                    }

                    nf.Id = _notaFiscalDAO.Cadastrar(nf);

                    quantidadeImportada++;
                }

                int dueId = 0;

                if (this.chkCriarItensDUE.Checked)
                {
                    dueId = CriarItensDUEAutomaticamente(notasFiscais);
                    _documentoUnicoExportacaoDAO.MarcarComoAutomatica(dueId);
                    ViewState["DueId"]        = dueId;
                    this.pnlDueCriada.Visible = true;
                }

                ValidarNotasSiscomex(quantidadeImportada, notasFiscais);

                ViewState["Sucesso"]             = true;
                ViewState["TotalNotasFiscais"]   = notasFiscais.Count;
                ViewState["QuantidadeImportada"] = quantidadeImportada;
            }
            catch (Exception ex)
            {
                DeletarArquivo(this.txtUpload);
                LogsService.Logar("CadastrarDUE.aspx", ex.ToString());
                ModelState.AddModelError(string.Empty, ex.Message);
            }
        }
예제 #3
0
        public static string AdicionarNotaFiscal(
            string chaveNF,
            string numero,
            string cnpj,
            string quantidade,
            string unidade,
            string ncm,
            string dueId,
            string vmcv,
            string vmle)
        {
            if (!string.IsNullOrEmpty(chaveNF))
            {
                chaveNF = chaveNF.Replace(" ", "");
            }

            var documentoUnicoExportacaoDAO = new DocumentoUnicoExportacaoDAO();
            var notaFiscalDAO = new NotaFiscalDAO();

            var dueBusca = documentoUnicoExportacaoDAO.ObterDUEPorId(dueId.ToInt());

            var atributosCafe = dueBusca.Attr_Padrao_Qualidade_Default + dueBusca.Attr_Tipo_Default + dueBusca.Attr_Embarque_Em_Default +
                                dueBusca.Attr_Caracteristica_Especial_Default + dueBusca.Attr_Outra_Caracteristica_Especial_Default + dueBusca.Attr_Metodo_Processamento_Default;

            if (ncm != "09011110" && ncm != "09011190" && ncm != "09011200" && ncm != "09012100" && ncm != "09012200" && ncm != "21011110" && ncm != "21011190" && ncm != "21011200")
            {
                if (!string.IsNullOrEmpty(atributosCafe))
                {
                    return(@"<strong>Alerta:</strong> Você informou atributos de café nas informações default, mas o NCM da nota que está sendo cadastrada é diferente de NCMs para exportação de café.");
                }
            }

            if (dueBusca != null)
            {
                var itensDue = documentoUnicoExportacaoDAO
                               .ObterItensDUE(dueId.ToInt())
                               .Where(c => !string.IsNullOrEmpty(c.NF))
                               .ToList();

                if (itensDue.Any() && (dueBusca.Completa == 0 || dueBusca.CriadoPorNF == 0))
                {
                    return(@"<strong>Alerta: Não é possível cadastrar Notas de forma manual para uma DUE que já contém itens ou que não foi criada de forma automática.</strong> <br /><br/>
                            Opção 1: Caso necessite vincular uma Nota Fiscal para um item já existente, utilize a opção do menu 'Vincular DUE com NF' ou importe o arquivo de notas.<br /><br/>
                            Opção 2: Caso necessite cadastrar as Notas Fiscais manualmente, exclua os itens já existentes nesta DUE (o sistema irá recria-los de forma automática).");
                }

                if (!documentoUnicoExportacaoDAO.JaExisteNotaCadastrada(chaveNF, dueId.ToInt()))
                {
                    notaFiscalDAO.Cadastrar(new NotaFiscal
                    {
                        TipoNF       = "EXP",
                        Item         = 1,
                        ChaveNF      = chaveNF,
                        NumeroNF     = numero,
                        CnpjNF       = cnpj,
                        QuantidadeNF = quantidade.ToDecimal(),
                        UnidadeNF    = unidade,
                        NCM          = ncm,
                        Usuario      = Convert.ToInt32(HttpContext.Current.Session["UsuarioId"].ToString()),
                        OBS          = "DUE MANUAL",
                        DueId        = dueId.ToInt()
                    });
                }

                var id = documentoUnicoExportacaoDAO.RegistrarItemDUE(new DUEItem
                {
                    DueId         = dueId.ToInt(),
                    NF            = chaveNF,
                    ValorUnitVMLE = vmle.ToDecimal(),
                    ValorUnitVMCV = vmcv.ToDecimal(),
                    CondicaoVenda = dueBusca.CondicaoVenda_Default
                });

                if (id > 0)
                {
                    documentoUnicoExportacaoDAO.MarcarComoAutomatica(dueBusca.Id);

                    decimal resultadoVMLE   = 0;
                    decimal resultadoVMCV   = 0;
                    decimal quantidadeTotal = 0;

                    if (unidade == "TON")
                    {
                        resultadoVMLE   = (((quantidade.ToDecimal() * 1000) * (dueBusca.ValorUnitVMLE_Default / 1000)));
                        resultadoVMCV   = (((quantidade.ToDecimal() * 1000) * (dueBusca.ValorUnitVMCV_Default / 1000)));
                        quantidadeTotal = (quantidade.ToDecimal() * 1000);
                    }
                    else
                    {
                        resultadoVMLE   = (((quantidade.ToDecimal()) * (dueBusca.ValorUnitVMLE_Default / 1000)));
                        resultadoVMCV   = (((quantidade.ToDecimal()) * (dueBusca.ValorUnitVMCV_Default / 1000)));
                        quantidadeTotal = quantidade.ToDecimal();
                    }

                    var dueDetalhe = new DUEItemDetalhes(
                        id,
                        1,
                        resultadoVMLE,
                        dueBusca.PaisDestino_Default,
                        quantidade.ToDecimal(),
                        ncm,
                        resultadoVMCV,
                        quantidade.ToDecimal(),
                        quantidadeTotal,
                        dueBusca.Enquadramento1_Default,
                        dueBusca.Enquadramento2_Default,
                        dueBusca.Enquadramento3_Default,
                        dueBusca.Enquadramento4_Default,
                        dueBusca.DescricaoComplementar_Default,
                        dueBusca.Attr_Padrao_Qualidade_Default,
                        dueBusca.Attr_Embarque_Em_Default,
                        dueBusca.Attr_Tipo_Default,
                        dueBusca.Attr_Metodo_Processamento_Default,
                        dueBusca.Attr_Caracteristica_Especial_Default,
                        dueBusca.Attr_Outra_Caracteristica_Especial_Default,
                        dueBusca.Attr_Embalagem_Final_Default);

                    var itemDetalheId = documentoUnicoExportacaoDAO.RegistrarDUEItemDetalhe(dueDetalhe);

                    if (itemDetalheId > 0)
                    {
                        if (!string.IsNullOrEmpty(dueBusca.LPCO_Default))
                        {
                            if (dueBusca.Enquadramento1_Default == 80380 || dueBusca.Enquadramento2_Default == 80380 || dueBusca.Enquadramento3_Default == 80380 || dueBusca.Enquadramento4_Default == 80380)
                            {
                                var lpcos = dueBusca.LPCO_Default.Split(',');

                                foreach (var lpco in lpcos)
                                {
                                    documentoUnicoExportacaoDAO.RegistrarLPCO(new DUEItemDetalhesLPCO(itemDetalheId, lpco));
                                }
                            }
                        }
                    }
                }
            }

            var notas = documentoUnicoExportacaoDAO.ObterNotasFiscaisDUE(dueId.ToInt());

            return(Newtonsoft.Json.JsonConvert.SerializeObject(notas));
        }
예제 #4
0
        protected void btnImportar_Click(object sender, EventArgs e)
        {
            try
            {
                if (this.txtUpload.PostedFile == null)
                {
                    ModelState.AddModelError(string.Empty, "Nenhum arquivo informado");
                }

                if (this.txtUpload.PostedFile.ContentLength == 0)
                {
                    ModelState.AddModelError(string.Empty, "Arquivo inválido");
                }

                var extensao = new FileInfo(this.txtUpload.PostedFile.FileName)?.Extension?.ToUpper() ?? string.Empty;

                if (string.IsNullOrWhiteSpace(extensao))
                {
                    ModelState.AddModelError(string.Empty, "Arquivo inválido");
                }

                if (!extensao.Equals(".XML") && !extensao.Equals(".TXT") && !extensao.Equals(".CSV"))
                {
                    ModelState.AddModelError(string.Empty, "É permitido apenas importação de arquivos .txt, .csv ou .xml");
                }

                if (!ModelState.IsValid)
                {
                    return;
                }

                if (!UploadArquivo(this.txtUpload))
                {
                    throw new Exception("O arquivo não pode ser processado. Certifique-se que já não esteja aberto em outro programa");
                }

                if (extensao == ".XML")
                {
                    try
                    {
                        var dueBusca = _documentoUnicoExportacaoDAO.ObterDUEPorId(this.txtDueID.Value.ToInt());

                        if (dueBusca == null)
                        {
                            throw new Exception("DUE não encontrada");
                        }

                        if (this.txtUpload.HasFiles)
                        {
                            int xmlsImportados = 1;

                            foreach (HttpPostedFile uploadedFile in this.txtUpload.PostedFiles)
                            {
                                string nomeArquivo = Path.Combine(Server.MapPath("Uploads"), uploadedFile.FileName);

                                XmlDocument doc = new XmlDocument();
                                doc.Load(nomeArquivo);

                                XmlNamespaceManager ns = new XmlNamespaceManager(doc.NameTable);
                                ns.AddNamespace("nfe", "http://www.portalfiscal.inf.br/nfe");

                                var cnpjEmitente        = "";
                                var razaoSocialEmitente = "";
                                var enderecoEmitente    = "";
                                var estadoEmitente      = "";

                                var informacoesEmitente = doc.SelectNodes("//nfe:emit", ns);

                                foreach (XmlNode dadoEmit in informacoesEmitente)
                                {
                                    foreach (XmlNode childNode in dadoEmit.ChildNodes)
                                    {
                                        if (childNode.Name == "CNPJ")
                                        {
                                            cnpjEmitente = childNode.InnerText;
                                        }

                                        if (childNode.Name == "xNome")
                                        {
                                            razaoSocialEmitente = childNode.InnerText;
                                        }

                                        if (childNode.Name == "enderEmit")
                                        {
                                            foreach (XmlNode emitEndereco in childNode.ChildNodes)
                                            {
                                                if (emitEndereco.Name == "xLgr")
                                                {
                                                    enderecoEmitente = emitEndereco.InnerText;
                                                }

                                                if (emitEndereco.Name == "nro")
                                                {
                                                    enderecoEmitente += ", " + emitEndereco.InnerText;
                                                }

                                                if (emitEndereco.Name == "UF")
                                                {
                                                    estadoEmitente = emitEndereco.InnerText;
                                                }
                                            }
                                        }
                                    }
                                }

                                var dadosNfe = doc.SelectNodes("//nfe:ide", ns);

                                var numeroNf = "";

                                foreach (XmlNode dadoNfe in dadosNfe)
                                {
                                    foreach (XmlNode childNode in dadoNfe.ChildNodes)
                                    {
                                        if (childNode.Name == "nNF")
                                        {
                                            numeroNf = childNode.InnerText;
                                        }
                                    }
                                }

                                var paisesDanfe = PaisesDAO.ObterPaisesDanfe();

                                var nomeDestinatario             = string.Empty;
                                var paisDestinatario             = string.Empty;
                                var logradouroDestinatario       = string.Empty;
                                var logradouroNumeroDestinatario = string.Empty;

                                var dadosDestinatario = doc.SelectNodes("//nfe:dest", ns);

                                foreach (XmlNode dadoDest in dadosDestinatario)
                                {
                                    foreach (XmlNode childNode in dadoDest.ChildNodes)
                                    {
                                        if (childNode.Name == "xNome")
                                        {
                                            nomeDestinatario = childNode.InnerText;
                                        }

                                        if (childNode.Name == "enderDest")
                                        {
                                            foreach (XmlNode childNodeDest in childNode.ChildNodes)
                                            {
                                                if (childNodeDest.Name == "xLgr")
                                                {
                                                    logradouroDestinatario = childNodeDest.InnerText;
                                                }

                                                if (childNodeDest.Name == "nro")
                                                {
                                                    logradouroNumeroDestinatario = childNodeDest.InnerText;
                                                }

                                                if (childNodeDest.Name == "cPais")
                                                {
                                                    var paisSped = paisesDanfe
                                                                   .Where(c => c.CodigoSPED == childNodeDest.InnerText)
                                                                   .FirstOrDefault();

                                                    if (paisSped != null)
                                                    {
                                                        if (!string.IsNullOrEmpty(paisSped.Sigla1))
                                                        {
                                                            paisDestinatario = paisSped.Sigla1;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }

                                var enderecoDestinatario = $"{logradouroDestinatario}, {logradouroNumeroDestinatario}";

                                var informacoesChaveNfe = doc.SelectSingleNode("//nfe:infProt", ns);
                                var chaveNfe            = informacoesChaveNfe.ChildNodes[2].InnerText;

                                var item = doc.SelectSingleNode("//nfe:det", ns)?.FirstChild;

                                var listaProdutos = new List <ProdutoNfe>();

                                int contaItem = 1;
                                if (item != null)
                                {
                                    var produtos = doc.SelectNodes("//nfe:prod", ns);

                                    foreach (XmlNode produto in produtos)
                                    {
                                        var descricaoProduto         = "";
                                        var unidadeComercializada    = "";
                                        var quantidadeEstatistica    = "";
                                        var quantidadeComercializada = "";
                                        var valorProduto             = "";
                                        var ncm = "";

                                        foreach (XmlNode childNode in produto.ChildNodes)
                                        {
                                            if (childNode.Name == "xProd")
                                            {
                                                descricaoProduto = childNode.InnerText;
                                            }

                                            if (childNode.Name == "uTrib")
                                            {
                                                unidadeComercializada = childNode.InnerText;
                                            }

                                            if (childNode.Name == "qCom")
                                            {
                                                quantidadeComercializada = childNode.InnerText.Replace(".", ",");
                                            }

                                            if (childNode.Name == "qTrib")
                                            {
                                                quantidadeEstatistica = childNode.InnerText.Replace(".", ",");
                                            }

                                            if (childNode.Name == "vProd")
                                            {
                                                valorProduto = childNode.InnerText.Replace(".", ",");
                                            }

                                            if (childNode.Name == "NCM")
                                            {
                                                ncm = childNode.InnerText;
                                            }
                                        }

                                        var produtoNfe = new ProdutoNfe(
                                            contaItem,
                                            descricaoProduto,
                                            unidadeComercializada,
                                            quantidadeComercializada.ToDecimal(),
                                            quantidadeEstatistica.ToDecimal(),
                                            valorProduto.ToDecimal(),
                                            chaveNfe,
                                            ncm,
                                            cnpjEmitente,
                                            razaoSocialEmitente,
                                            numeroNf.ToInt());

                                        listaProdutos.Add(produtoNfe);
                                        contaItem++;
                                    }

                                    contaItem = 1;

                                    ExcluirItensSemVinculoDeNotaFiscal(dueBusca.Id);

                                    if (listaProdutos.Any())
                                    {
                                        foreach (var produtoNFE in listaProdutos)
                                        {
                                            var notaFiscal = new NotaFiscal();

                                            notaFiscal.TipoNF        = "EXP";
                                            notaFiscal.Item          = produtoNFE.Item;
                                            notaFiscal.ChaveNF       = chaveNfe;
                                            notaFiscal.NumeroNF      = numeroNf;
                                            notaFiscal.CnpjNF        = cnpjEmitente;
                                            notaFiscal.QuantidadeNF  = produtoNFE.QuantidadeComercializada;
                                            notaFiscal.UnidadeNF     = produtoNFE.UnidadeComercializada;
                                            notaFiscal.NCM           = produtoNFE.NCM;
                                            notaFiscal.Arquivo       = this.txtUpload.FileName;
                                            notaFiscal.Usuario       = Convert.ToInt32(Session["UsuarioId"].ToString());
                                            notaFiscal.DueId         = this.txtDueID.Value.ToInt();
                                            notaFiscal.VMLE          = this.txtVMLE.Text.ToDecimal();
                                            notaFiscal.VMCV          = this.txtVMCV.Text.ToDecimal();
                                            notaFiscal.Enquadramento = this.cbEnquadramento.SelectedValue.ToInt();

                                            var existeNf = _notaFiscalDAO.ExisteNotaFiscalNaDUEFromXML(notaFiscal);

                                            if (existeNf > 0)
                                            {
                                                _notaFiscalDAO.ExcluirNotaFiscaiDuePorId(existeNf);
                                            }

                                            _notaFiscalDAO.Cadastrar(notaFiscal);

                                            string  enquadramento = string.Empty;
                                            decimal vmle          = notaFiscal.VMLE;
                                            decimal vmcv          = notaFiscal.VMCV;

                                            if (this.cbEnquadramento.SelectedValue.ToInt() > 0)
                                            {
                                                enquadramento = this.cbEnquadramento.SelectedValue;
                                            }
                                            else
                                            {
                                                enquadramento = dueBusca.Enquadramento1_Default.ToString();
                                            }

                                            //Para cada item da nota fiscal, criar um item na DUE com a mesma chave

                                            var dueId = _documentoUnicoExportacaoDAO.CriarItensDUEFromXML(
                                                dueBusca.Id,
                                                Convert.ToInt32(Session["UsuarioId"].ToString()),
                                                cnpjEmitente,
                                                razaoSocialEmitente,
                                                enderecoEmitente,
                                                estadoEmitente,
                                                nomeDestinatario,
                                                enderecoDestinatario,
                                                paisDestinatario,
                                                produtoNFE.ChaveNFE,
                                                produtoNFE.Item,
                                                produtoNFE.NCM,
                                                produtoNFE.DescricaoProduto,
                                                produtoNFE.UnidadeComercializada,
                                                produtoNFE.QuantidadeEstatistica,
                                                produtoNFE.QuantidadeComercializada,
                                                vmle,
                                                vmcv,
                                                enquadramento,
                                                dueBusca);

                                            _documentoUnicoExportacaoDAO.MarcarComoAutomatica(this.txtDueID.Value.ToInt());
                                        }
                                    }
                                }

                                xmlsImportados++;
                            }

                            ViewState["Sucesso"]             = true;
                            ViewState["TotalNotasFiscais"]   = this.txtUpload.PostedFiles.Count;
                            ViewState["QuantidadeImportada"] = xmlsImportados;
                        }
                    }
                    catch (Exception ex)
                    {
                        throw new Exception("Ocorreu um problema ao processar o XML - Detalhes:" + ex.ToString());
                    }
                }
                else
                {
                    int quantidadeImportada = 0;

                    var notasFiscais = ProcessarArquivo(this.txtUpload.PostedFile.InputStream, ";");

                    var dueBusca = _documentoUnicoExportacaoDAO.ObterDUEPorId(this.txtDueID.Value.ToInt());

                    if (dueBusca != null)
                    {
                        ExcluirItensSemVinculoDeNotaFiscal(dueBusca.Id);

                        var notasValidas = new List <NotaFiscal>();

                        foreach (var nf in notasFiscais)
                        {
                            nf.Arquivo       = this.txtUpload.FileName;
                            nf.Usuario       = Convert.ToInt32(Session["UsuarioId"].ToString());
                            nf.DueId         = this.txtDueID.Value.ToInt();
                            nf.VMCV          = this.txtVMCV.Text.ToDecimal();
                            nf.VMLE          = this.txtVMLE.Text.ToDecimal();
                            nf.Enquadramento = this.cbEnquadramento.SelectedValue.ToInt();

                            if (nf.TipoNF == "EXP")
                            {
                            }
                            var existeNf = _notaFiscalDAO.ExisteNotaFiscalNaDUE(nf);

                            if (existeNf > 0)
                            {
                                _notaFiscalDAO.ExcluirNotaFiscaiDuePorId(existeNf);
                            }

                            _notaFiscalDAO.Cadastrar(nf);
                            notasValidas.Add(nf);
                            quantidadeImportada++;
                        }

                        var atributosCafe = dueBusca.Attr_Padrao_Qualidade_Default + dueBusca.Attr_Tipo_Default + dueBusca.Attr_Embarque_Em_Default +
                                            dueBusca.Attr_Caracteristica_Especial_Default + dueBusca.Attr_Outra_Caracteristica_Especial_Default + dueBusca.Attr_Metodo_Processamento_Default;

                        foreach (var notaNcm in notasFiscais)
                        {
                            if (notaNcm.NCM != "09011110" && notaNcm.NCM != "09011190" && notaNcm.NCM != "09011200" && notaNcm.NCM != "09012100" && notaNcm.NCM != "09012200" && notaNcm.NCM != "21011110" && notaNcm.NCM != "21011190" && notaNcm.NCM != "21011200")
                            {
                                if (!string.IsNullOrEmpty(atributosCafe))
                                {
                                    ModelState.AddModelError(string.Empty, "Você informou atributos de café nas informações default, mas o NCM da nota que está sendo cadastrada é diferente de NCMs para exportação de café.");
                                    return;
                                }
                            }
                        }


                        CriarItensDUEAutomaticamente(notasValidas);

                        _documentoUnicoExportacaoDAO.MarcarComoAutomatica(this.txtDueID.Value.ToInt());

                        ViewState["Sucesso"]             = true;
                        ViewState["TotalNotasFiscais"]   = notasFiscais.Count;
                        ViewState["QuantidadeImportada"] = quantidadeImportada;
                    }
                }
            }
            catch (Exception ex)
            {
                DeletarArquivo(this.txtUpload);
                LogsService.Logar("CadastrarDUE.aspx", ex.ToString());
                ModelState.AddModelError(string.Empty, ex.Message);
            }
        }