private void btnGeraPdf_Click(object sender, EventArgs e)
        {
            try
            {
                List<DadosImpressao> objListDados = new List<DadosImpressao>();
                FileInfo[] fArquivoImprimir = null;
                DirectoryInfo dPasta = null;

                if (Acesso.TP_EMIS == 1)
                {
                    #region Verifica Selecionadas

                    for (int i = 0; i < dgvArquivos.RowCount; i++)
                    {
                        if (dgvArquivos["cl_assina", i].Value != null)
                        {
                            if (dgvArquivos["cl_assina", i].Value.ToString().Equals("True"))
                            {
                                string sProtEnvio = objGerais.VerificaCampoProtocoloEnvio(dgvArquivos["cd_conheci", i].Value.ToString());
                                if (sProtEnvio == "")
                                {
                                    sProtEnvio = objGerais.VerificaCampoProtocoloEnvioByChave(dgvArquivos["cd_conheci", i].Value.ToString()
                                        , (dgvArquivos["ds_cancelamento", i].Value.ToString() == "0" ? false : true));
                                }
                                DadosImpressao objDados = new DadosImpressao();
                                objDados.sNumeroCte = dgvArquivos["cd_conheci", i].Value.ToString();
                                objDados.sProtocolo = sProtEnvio;
                                if (Convert.ToBoolean(dgvArquivos["ds_cancelamento", i].Value).ToString().Equals("True"))
                                {
                                    objDados.Cancelado = true;
                                }
                                objListDados.Add(objDados);

                            }
                        }
                    }

                    #endregion
                }
                else
                {
                    #region Verifica Notas em Contingencia

                    for (int i = 0; i < dgvArquivos.RowCount; i++)
                    {
                        if (dgvArquivos["cl_imprime", i].Value != null)
                        {
                            if (dgvArquivos["cl_imprime", i].Value.ToString().Equals("True") && Convert.ToBoolean(dgvArquivos["st_cte", i].Value) == false && Convert.ToBoolean(dgvArquivos["st_contingencia", i].Value) == true)
                            {
                                DadosImpressao objDados = new DadosImpressao();
                                objDados.sNumeroCte = dgvArquivos["cd_conheci", i].Value.ToString();
                                objListDados.Add(objDados);
                            }
                        }
                    }

                    #endregion
                }
                if (objListDados.Count() > 0)
                {
                    if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
                    {
                        #region Busca Arquivos XML
                        for (int i = 0; i < objListDados.Count; i++)
                        {
                            if (Acesso.TP_EMIS == 1)
                            {
                                string sChaveCteRet = objGerais.BuscaChaveRetornoCte(objListDados[i].sNumeroCte);
                                string sPasta = sChaveCteRet.Substring(4, 2) + "-" + sChaveCteRet.Substring(2, 2);

                                if (!objListDados[i].Cancelado)
                                {
                                    dPasta = new DirectoryInfo(Pastas.ENVIADOS + @"\\" + sPasta);
                                }
                                else
                                {
                                    dPasta = new DirectoryInfo(Pastas.CANCELADOS + @"\\" + sPasta);
                                }
                                if (dPasta.Exists)
                                {
                                    fArquivoImprimir = dPasta.GetFiles("Cte_" + sChaveCteRet + ".xml");
                                    if (fArquivoImprimir.Count() == 1)
                                    {
                                        objListDados[i].bArquivoEncontrado = true;
                                        objListDados[i].sCaminhoXml = dPasta.ToString() + "\\Cte_" + sChaveCteRet + ".xml";
                                    }
                                    else
                                    {
                                        throw new Exception("Arquivo Xml não Encontrado");
                                    }
                                }
                            }
                            else
                            {
                                XmlDocument doc = new XmlDocument();

                                string sChaveCteRet = objGerais.BuscaChaveRetornoCte(objListDados[i].sNumeroCte);
                                string sPasta = sChaveCteRet.Substring(4, 2) + "-" + sChaveCteRet.Substring(2, 2);

                                dPasta = new DirectoryInfo(Pastas.CONTINGENCIA + @"\\" + sPasta);
                                fArquivoImprimir = dPasta.GetFiles("*.xml", SearchOption.AllDirectories);

                                foreach (FileInfo arq in fArquivoImprimir)
                                {
                                    doc.Load(@arq.FullName);
                                    if (doc.GetElementsByTagName("infCte")[0].Attributes["Id"].Value.ToString().Replace("CTe", "").Equals(sChaveCteRet))
                                    {
                                        objListDados[i].bArquivoEncontrado = true;
                                        objListDados[i].sCaminhoXml = arq.FullName;
                                        break;
                                    }
                                }

                            }
                        }
                        #endregion

                        belPopulaDataSet objDataSet = new belPopulaDataSet();

                        dsCTe dsPadrao = new dsCTe();
                        dsCTe dsLotacao = new dsCTe();
                        dsCTe dsPadraoCancelado = new dsCTe();
                        dsCTe dsLotacaoCancelado = new dsCTe();

                        int iCount = 0;
                        for (int i = 0; i < objListDados.Count; i++)
                        {
                            if (objListDados[i].bArquivoEncontrado == true)
                            {
                                if (objDataSet.VerificaLotacao(objListDados[i].sCaminhoXml))
                                {
                                    if (!objListDados[i].Cancelado)
                                    {
                                        objDataSet.PopulaDataSet(dsLotacao, objListDados[i].sCaminhoXml, i + 1, objListDados[i].sProtocolo);
                                        GeraPDF(dsLotacao, TipoPDF.LOTACAO, objListDados[i].sNumeroCte, folderBrowserDialog1.SelectedPath);
                                        iCount++;
                                    }
                                    else
                                    {
                                        objDataSet.PopulaDataSet(dsLotacaoCancelado, objListDados[i].sCaminhoXml, i + 1, objListDados[i].sProtocolo);
                                        GeraPDF(dsLotacaoCancelado, TipoPDF.LOTACAO_CANCELADO, objListDados[i].sNumeroCte, folderBrowserDialog1.SelectedPath);
                                        iCount++;
                                    }
                                }
                                else
                                {
                                    if (!objListDados[i].Cancelado)
                                    {
                                        objDataSet.PopulaDataSet(dsPadrao, objListDados[i].sCaminhoXml, i + 1, objListDados[i].sProtocolo);
                                        GeraPDF(dsPadrao, TipoPDF.PADRAO, objListDados[i].sNumeroCte, folderBrowserDialog1.SelectedPath);
                                        iCount++;
                                    }
                                    else
                                    {
                                        objDataSet.PopulaDataSet(dsPadraoCancelado, objListDados[i].sCaminhoXml, i + 1, objListDados[i].sProtocolo);
                                        GeraPDF(dsPadraoCancelado, TipoPDF.PADRAO_CANCELADO, objListDados[i].sNumeroCte, folderBrowserDialog1.SelectedPath);
                                        iCount++;
                                    }
                                }
                            }
                            else
                            {
                                KryptonMessageBox.Show("Arquivo Xml do Conhecimento " + objListDados[i].sNumeroCte + " não foi Encontrado.", Mensagens.MSG_Alerta, MessageBoxButtons.OK, MessageBoxIcon.Information);
                            }
                        }
                        if (iCount > 0)
                        {
                            KryptonMessageBox.Show("Arquivos PDF gerados com sucesso!", Mensagens.CHeader, MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                    }
                }
                else
                {
                    KryptonMessageBox.Show("Nenhum CT-e válido foi Selecionado para gerar PDF.", Mensagens.MSG_Aviso, MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            catch (Exception ex)
            {
                new HLPexception(ex);
            }
        }
        private void btnImpressao_Click(object sender, EventArgs e)
        {
            try
            {
                List<DadosImpressao> objListDados = new List<DadosImpressao>();

                DirectoryInfo dPasta = null;
                FileInfo[] fArquivoImprimir = null;

                if (Acesso.TP_EMIS == 1)
                {
                    #region Verifica Selecionadas

                    for (int i = 0; i < dgvArquivos.RowCount; i++)
                    {
                        if (dgvArquivos["cl_assina", i].Value != null)
                        {
                            if (dgvArquivos["cl_assina", i].Value.ToString().Equals("True"))
                            {
                                string sProtEnvio = objGerais.VerificaCampoProtocoloEnvio(dgvArquivos["cd_conheci", i].Value.ToString());

                                if (sProtEnvio == "")
                                {
                                    sProtEnvio = objGerais.VerificaCampoProtocoloEnvioByChave(dgvArquivos["cd_conheci", i].Value.ToString()
                                        , (dgvArquivos["ds_cancelamento", i].Value.ToString() == "0" ? false : true));
                                }

                                DadosImpressao objDados = new DadosImpressao();
                                objDados.sNumeroCte = dgvArquivos["cd_conheci", i].Value.ToString();
                                objDados.sProtocolo = sProtEnvio;
                                if (Convert.ToBoolean(dgvArquivos["ds_cancelamento", i].Value).ToString().Equals("True"))
                                {
                                    objDados.Cancelado = true;
                                }
                                objListDados.Add(objDados);

                            }
                        }
                    }

                    #endregion
                }
                else
                {
                    #region Verifica Notas em Contingencia

                    for (int i = 0; i < dgvArquivos.RowCount; i++)
                    {
                        if (dgvArquivos["cl_imprime", i].Value != null)
                        {
                            if (dgvArquivos["cl_imprime", i].Value.ToString().Equals("True") && Convert.ToBoolean(dgvArquivos["st_cte", i].Value) == false && Convert.ToBoolean(dgvArquivos["st_contingencia", i].Value) == true)
                            {
                                DadosImpressao objDados = new DadosImpressao();
                                objDados.sNumeroCte = dgvArquivos["cd_conheci", i].Value.ToString();
                                objListDados.Add(objDados);
                            }
                        }
                    }

                    #endregion
                }

                #region Popula Dataset com Cte Validos

                if (objListDados.Count > 0)
                {
                    for (int i = 0; i < objListDados.Count; i++)
                    {
                        if (Acesso.TP_EMIS == 1)
                        {
                            string sChaveCteRet = objGerais.BuscaChaveRetornoCte(objListDados[i].sNumeroCte);
                            string sPasta = sChaveCteRet.Substring(4, 2) + "-" + sChaveCteRet.Substring(2, 2);

                            if (!objListDados[i].Cancelado)
                            {
                                dPasta = new DirectoryInfo(Pastas.ENVIADOS + @"\\" + sPasta);
                            }
                            else
                            {
                                dPasta = new DirectoryInfo(Pastas.CANCELADOS + @"\\" + sPasta);
                            }
                            if (dPasta.Exists)
                            {
                                fArquivoImprimir = dPasta.GetFiles("Cte_" + sChaveCteRet + ".xml");
                                if (fArquivoImprimir.Count() == 1)
                                {
                                    objListDados[i].bArquivoEncontrado = true;
                                    objListDados[i].sCaminhoXml = dPasta.ToString() + "\\Cte_" + sChaveCteRet + ".xml";
                                }
                                else
                                {
                                    throw new Exception("Arquivo Xml do Conhecimento " + objListDados[i].sNumeroCte + " não Encontrado");
                                }
                            }
                            else
                            {
                                throw new Exception("A pasta do Mês " + sPasta + " não existe.");
                            }
                        }
                        else
                        {
                            XmlDocument doc = new XmlDocument();

                            string sChaveCteRet = objGerais.BuscaChaveRetornoCte(objListDados[i].sNumeroCte);
                            string sPasta = sChaveCteRet.Substring(4, 2) + "-" + sChaveCteRet.Substring(2, 2);

                            dPasta = new DirectoryInfo(Pastas.CONTINGENCIA + @"\\" + sPasta);
                            fArquivoImprimir = dPasta.GetFiles("*.xml", SearchOption.AllDirectories);

                            foreach (FileInfo arq in fArquivoImprimir)
                            {
                                doc.Load(@arq.FullName);
                                if (doc.GetElementsByTagName("infCte")[0].Attributes["Id"].Value.ToString().Replace("CTe", "").Equals(sChaveCteRet))
                                {
                                    objListDados[i].bArquivoEncontrado = true;
                                    objListDados[i].sCaminhoXml = arq.FullName;
                                    break;
                                }
                            }

                        }
                    }

                    belPopulaDataSet objDataSet = new belPopulaDataSet();

                    dsCTe dsPadrao = new dsCTe();
                    dsCTe dsPadraoPDF = new dsCTe();
                    dsCTe dsLotacao = new dsCTe();
                    dsCTe dsPadraoCancelado = new dsCTe();
                    dsCTe dsLotacaoCancelado = new dsCTe();

                    for (int i = 0; i < objListDados.Count; i++)
                    {
                        if (objListDados[i].bArquivoEncontrado == true)
                        {
                            if (objDataSet.VerificaLotacao(objListDados[i].sCaminhoXml))
                            {
                                if (!objListDados[i].Cancelado)
                                {
                                    objDataSet.PopulaDataSet(dsLotacao, objListDados[i].sCaminhoXml, i + 1, objListDados[i].sProtocolo);
                                    dsPadraoPDF = new dsCTe();
                                    objDataSet.PopulaDataSet(dsPadraoPDF, objListDados[i].sCaminhoXml, 1, objListDados[i].sProtocolo);
                                    GeraPDF(dsPadraoPDF, TipoPDF.LOTACAO, objListDados[i]);
                                    //GeraPDF(dsLotacao, TipoPDF.LOTACAO, objListDados[i]);

                                }
                                else
                                {
                                    objDataSet.PopulaDataSet(dsLotacaoCancelado, objListDados[i].sCaminhoXml, i + 1, objListDados[i].sProtocolo);
                                    dsPadraoPDF = new dsCTe();
                                    objDataSet.PopulaDataSet(dsPadraoPDF, objListDados[i].sCaminhoXml, 1, objListDados[i].sProtocolo);
                                    GeraPDF(dsPadraoPDF, TipoPDF.LOTACAO_CANCELADO, objListDados[i]);

                                    //GeraPDF(dsLotacaoCancelado, TipoPDF.LOTACAO_CANCELADO, objListDados[i]);
                                }
                            }
                            else
                            {
                                if (!objListDados[i].Cancelado)
                                {
                                    objDataSet.PopulaDataSet(dsPadrao, objListDados[i].sCaminhoXml, i + 1, objListDados[i].sProtocolo);
                                    dsPadraoPDF = new dsCTe();
                                    objDataSet.PopulaDataSet(dsPadraoPDF, objListDados[i].sCaminhoXml,1, objListDados[i].sProtocolo);
                                    GeraPDF(dsPadraoPDF, TipoPDF.PADRAO, objListDados[i]);
                                }
                                else
                                {
                                    objDataSet.PopulaDataSet(dsPadraoCancelado, objListDados[i].sCaminhoXml, i + 1, objListDados[i].sProtocolo);
                                    dsPadraoPDF = new dsCTe();
                                    objDataSet.PopulaDataSet(dsPadraoPDF, objListDados[i].sCaminhoXml, 1, objListDados[i].sProtocolo);
                                    GeraPDF(dsPadraoPDF, TipoPDF.PADRAO_CANCELADO, objListDados[i]);

                                    //GeraPDF(dsPadraoCancelado, TipoPDF.PADRAO_CANCELADO, objListDados[i]);
                                }
                            }
                        }
                    }

                    if (Convert.ToBoolean(Acesso.EMAIL_AUTOMATICO))
                    {
                        EnviaEmail(objListDados);
                    }
                    if (dsPadrao.infCte.Count() > 0)
                    {
                        ReportDocument rpt = new ReportDocument();
                        rpt.Load(Util.GetPathRelatorio("rptCtePadrao.rpt"));
                        rpt.SetDataSource(dsPadrao);
                        rpt.Refresh();

                        frmRelatorio frm = new frmRelatorio(rpt, "Impressão de DACTE - Carga Fracionada");
                        frm.Show();
                    }
                    if (dsPadraoCancelado.infCte.Count() > 0)
                    {
                        ReportDocument rpt = new ReportDocument();
                        rpt.Load(Util.GetPathRelatorio("rptCtePadraoCancelado.rpt"));
                        rpt.SetDataSource(dsPadraoCancelado);
                        rpt.Refresh();

                        frmRelatorio frm = new frmRelatorio(rpt, "Impressão de DACTE - Carga Fracionada(Cancelados)");
                        frm.Show();
                    }
                    if (dsLotacao.infCte.Count() > 0)
                    {
                        ReportDocument rpt = new ReportDocument();
                        rpt.Load(Util.GetPathRelatorio("rptCteLotacao.rpt"));
                        rpt.SetDataSource(dsLotacao);
                        rpt.Refresh();

                        frmRelatorio frm = new frmRelatorio(rpt, "Impressão de DACTE - Lotação");
                        frm.Show();
                    }
                    if (dsLotacaoCancelado.infCte.Count() > 0)
                    {
                        ReportDocument rpt = new ReportDocument();
                        rpt.Load(Util.GetPathRelatorio("rptCteLotacaoCancelado.rpt"));
                        rpt.SetDataSource(dsLotacaoCancelado);
                        rpt.Refresh();

                        frmRelatorio frm = new frmRelatorio(rpt, "Impressão de DACTE - Lotação(Cancelados)");
                        frm.Show();
                    }
                }
                else
                {
                    KryptonMessageBox.Show("Nenhum CT-e válido foi Selecionado para Impressão.", Mensagens.MSG_Aviso, MessageBoxButtons.OK, MessageBoxIcon.Information);
                }



                #endregion
            }
            catch (Exception ex)
            {
                new HLPexception(ex);
            }
        }
        private void GeraPDF(dsCTe ds, TipoPDF tpPdf, DadosImpressao objDados)
        {
            try
            {

                ReportDocument rpt = new ReportDocument();
                DirectoryInfo dinfo = null;

                if (tpPdf == TipoPDF.PADRAO)
                {
                    rpt.Load(Util.GetPathRelatorio("rptCtePadrao.rpt"));
                    dinfo = new DirectoryInfo(Pastas.ENVIADOS + "\\PDF");
                }
                else if (tpPdf == TipoPDF.PADRAO_CANCELADO)
                {
                    rpt.Load(Util.GetPathRelatorio("rptCtePadraoCancelado.rpt"));
                    dinfo = new DirectoryInfo(Pastas.CANCELADOS + "\\PDF");
                }
                else if (tpPdf == TipoPDF.LOTACAO)
                {
                    rpt.Load(Util.GetPathRelatorio("Relatorios\\rptCteLotacao.rpt"));
                    dinfo = new DirectoryInfo(Pastas.ENVIADOS + "\\PDF");
                }
                else if (tpPdf == TipoPDF.LOTACAO_CANCELADO)
                {
                    rpt.Load(Util.GetPathRelatorio("rptCteLotacaoCancelado.rpt"));
                    dinfo = new DirectoryInfo(Pastas.CANCELADOS + "\\PDF");
                }
                rpt.SetDataSource(ds);
                rpt.Refresh();

                if (!dinfo.Exists)
                {
                    dinfo.Create();
                }

                string sCaminhoPDF = dinfo.FullName + "\\Cte_" + objDados.sNumeroCte + ".pdf";
                objDados.sCaminhoPDF = sCaminhoPDF;
                Util.ExportPDF(rpt, sCaminhoPDF);

            }
            catch (Exception ex)
            {
                new HLPexception(ex);
            }


        }
Example #4
0
        private void btnImpressao2_Click(object sender, EventArgs e)
        {
            try
            {
                List <DadosImpressao> objListDadosImpressao = new List <DadosImpressao>();
                string sPastaMes = "";
                List <belPesquisaNotas> objSelecionadas = belPesq.lResultPesquisa.Where(c => c.bSeleciona).ToList <belPesquisaNotas>();
                List <belPesquisaNotas> objSelect       = objSelecionadas.Where(c =>
                                                                                c.bEnviado == true ||
                                                                                c.bCancelado == true ||
                                                                                c.bContingencia == true).ToList <belPesquisaNotas>();

                if (objSelect.Count() > 0)
                {
                    if (Acesso.NM_EMPRESA == "MASTERFEW")
                    {
                        int iCountNotaNETSHOES = objSelect.Where(C => C.sNM_GUERRA.ToUpper().Contains("NETSHOES")).Count();

                        if (iCountNotaNETSHOES > 0)
                        {
                            if (iCountNotaNETSHOES != objSelect.Count())
                            {
                                throw new Exception("Notas para o cliente NETSHOES devem ser impressas individualmente.");
                            }
                        }
                    }

                    foreach (belPesquisaNotas nota in objSelect)
                    {
                        DadosImpressao objDados = new DadosImpressao();
                        objDados.sCD_NFSEQ   = nota.sCD_NFSEQ;
                        objDados.sCD_NOTAFIS = nota.sCD_NOTAFIS;
                        objDados.sNUM_GRUPO  = nota.sCD_GRUPONF;

                        #region Busca os Arquivos selecionados

                        sPastaMes = nota.sCHAVENFE.Substring(2, 4);
                        string sCaminho = "";
                        if (nota.bContingencia)
                        {
                            sCaminho      = Pastas.CONTINGENCIA + "\\" + nota.sCHAVENFE + "-nfe.xml";
                            objDados.tipo = TipoPDF.CONTINGENCIA;
                        }
                        else
                        {
                            if (nota.bCancelado)
                            {
                                sCaminho           = Pastas.CANCELADOS + "\\" + sPastaMes + "\\" + nota.sCHAVENFE + "-can.xml.xml";
                                objDados.Cancelado = true;
                                objDados.tipo      = TipoPDF.CANCELADO;
                            }
                            else
                            {
                                sCaminho      = Pastas.ENVIADOS + sPastaMes + "\\" + nota.sCHAVENFE + "-nfe.xml";
                                objDados.tipo = TipoPDF.ENVIADO;
                            }
                        }
                        if (File.Exists(sCaminho))
                        {
                            objDados.sCaminhoXml = sCaminho;
                            objListDadosImpressao.Add(objDados);
                        }
                        else
                        {
                            throw new Exception("Arquivo Xml da NF-e nº " + nota.sCD_NOTAFIS + " não foi encontrado.");
                        }

                        #endregion
                    }



                    if (objListDadosImpressao.Count() > 0)
                    {
                        frmCarregaDadosParaVisualizarDanfe objfrmCarregar = new frmCarregaDadosParaVisualizarDanfe(objListDadosImpressao);
                        objfrmCarregar.ShowDialog();
                    }
                }
                else
                {
                    KryptonMessageBox.Show("Nenhuma nota Válida foi Selecionada", Mensagens.MSG_Aviso, MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            catch (Exception ex)
            {
                new HLPexception(ex);
            }
        }
        private void btnImpressao_Click(object sender, EventArgs e)
        {
            try
            {
                List<DadosImpressao> objListDados = new List<DadosImpressao>();

                belGlobais objGlobais = new belGlobais();
                DirectoryInfo dPasta = null;
                FileInfo[] fArquivoImprimir = null;

                if (!belStatic.bModoContingencia)
                {
                    #region Verifica Selecionadas

                    for (int i = 0; i < dgvArquivos.RowCount; i++)
                    {
                        if (dgvArquivos["cl_imprime", i].Value != null)
                        {
                            if (dgvArquivos["cl_imprime", i].Value.ToString().Equals("True"))
                            {
                                //string sProtEnvio = objGerais.VerificaCampoProtocoloEnvio(dgvArquivos["cd_conheci", i].Value.ToString());
                                //if (sProtEnvio != "")
                                //{
                                DadosImpressao objDados = new DadosImpressao();
                                objDados.sNumeroCte = dgvArquivos["cd_conheci", i].Value.ToString();
                                objDados.sProtocolo = "";// sProtEnvio;
                                if (!dgvArquivos["ds_cancelamento", i].Value.ToString().Equals(""))
                                {
                                    objDados.Cancelado = true;
                                }
                                objListDados.Add(objDados);
                                //}

                            }
                        }
                    }

                    #endregion
                }
                else
                {
                    #region Verifica Notas em Contingencia

                    for (int i = 0; i < dgvArquivos.RowCount; i++)
                    {
                        if (dgvArquivos["cl_imprime", i].Value != null)
                        {
                            if (dgvArquivos["cl_imprime", i].Value.ToString().Equals("True") && Convert.ToBoolean(dgvArquivos["st_cte", i].Value) == false && Convert.ToBoolean(dgvArquivos["st_contingencia", i].Value) == true)
                            {
                                DadosImpressao objDados = new DadosImpressao();
                                objDados.sNumeroCte = dgvArquivos["cd_conheci", i].Value.ToString();
                                objListDados.Add(objDados);
                            }
                        }
                    }

                    #endregion
                }

                #region Popula Dataset com Cte Validos

                if (objListDados.Count > 0)
                {
                    for (int i = 0; i < objListDados.Count; i++)
                    {
                        if (!belStatic.bModoContingencia)
                        {
                            string sChaveCteRet = objGerais.BuscaChaveRetornoCte(objListDados[i].sNumeroCte);
                            string sPasta = sChaveCteRet.Substring(4, 2) + "-" + sChaveCteRet.Substring(2, 2);

                            if (!objListDados[i].Cancelado)
                            {
                                dPasta = new DirectoryInfo(belStaticPastas.ENVIADOS + @"\\" + sPasta);
                            }
                            else
                            {
                                dPasta = new DirectoryInfo(belStaticPastas.CANCELADOS + @"\\" + sPasta);
                            }
                            if (dPasta.Exists)
                            {
                                fArquivoImprimir = dPasta.GetFiles("Cte_" + sChaveCteRet + ".xml");
                                if (fArquivoImprimir.Count() == 1)
                                {
                                    objListDados[i].bArquivoEncontrado = true;
                                    objListDados[i].sCaminhoXml = dPasta.ToString() + "\\Cte_" + sChaveCteRet + ".xml";
                                }
                                else
                                {
                                    throw new Exception("Arquivo Xml não Encontrado");
                                }
                            }
                        }
                        else
                        {
                            XmlDocument doc = new XmlDocument();

                            string sChaveCteRet = objGerais.BuscaChaveRetornoCte(objListDados[i].sNumeroCte);
                            string sPasta = sChaveCteRet.Substring(4, 2) + "-" + sChaveCteRet.Substring(2, 2);

                            dPasta = new DirectoryInfo(belStaticPastas.CONTINGENCIA + @"\\" + sPasta);
                            fArquivoImprimir = dPasta.GetFiles("*.xml", SearchOption.AllDirectories);

                            foreach (FileInfo arq in fArquivoImprimir)
                            {
                                doc.Load(@arq.FullName);
                                if (doc.GetElementsByTagName("infCte")[0].Attributes["Id"].Value.ToString().Replace("CTe", "").Equals(sChaveCteRet))
                                {
                                    objListDados[i].bArquivoEncontrado = true;
                                    objListDados[i].sCaminhoXml = arq.FullName;
                                    break;
                                }
                            }

                        }
                    }

                    belPopulaDataSet objDataSet = new belPopulaDataSet();

                    dsCTe dsPadrao = new dsCTe();
                    dsCTe dsLotacao = new dsCTe();
                    dsCTe dsPadraoCancelado = new dsCTe();
                    dsCTe dsLotacaoCancelado = new dsCTe();

                    for (int i = 0; i < objListDados.Count; i++)
                    {
                        dsCTe dsPDF = new dsCTe();
                        if (objListDados[i].bArquivoEncontrado == true)
                        {
                            if (objDataSet.VerificaLotacao(objListDados[i].sCaminhoXml))
                            {
                                if (!objListDados[i].Cancelado)
                                {
                                    objDataSet.PopulaDataSet(dsLotacao, objListDados[i].sCaminhoXml, i + 1, objListDados[i].sProtocolo);
                                    objDataSet.PopulaDataSet(dsPDF, objListDados[i].sCaminhoXml, 1, objListDados[i].sProtocolo);
                                    GeraPDF(dsPDF, TipoPDF.LOTACAO, objListDados[i].sNumeroCte);

                                }
                                else
                                {
                                    objDataSet.PopulaDataSet(dsLotacaoCancelado, objListDados[i].sCaminhoXml, i + 1, objListDados[i].sProtocolo);
                                    objDataSet.PopulaDataSet(dsPDF, objListDados[i].sCaminhoXml, 1, objListDados[i].sProtocolo);
                                    GeraPDF(dsPDF, TipoPDF.LOTACAO_CANCELADO, objListDados[i].sNumeroCte);
                                }
                            }
                            else
                            {
                                if (!objListDados[i].Cancelado)
                                {
                                    objDataSet.PopulaDataSet(dsPadrao, objListDados[i].sCaminhoXml, i + 1, objListDados[i].sProtocolo);
                                    objDataSet.PopulaDataSet(dsPDF, objListDados[i].sCaminhoXml, 1, objListDados[i].sProtocolo);
                                    GeraPDF(dsPDF, TipoPDF.PADRAO, objListDados[i].sNumeroCte);
                                }
                                else
                                {
                                    objDataSet.PopulaDataSet(dsPadraoCancelado, objListDados[i].sCaminhoXml, i + 1, objListDados[i].sProtocolo);
                                    objDataSet.PopulaDataSet(dsPDF, objListDados[i].sCaminhoXml, 1, objListDados[i].sProtocolo);
                                    GeraPDF(dsPDF, TipoPDF.PADRAO_CANCELADO, objListDados[i].sNumeroCte);
                                }
                            }
                        }
                    }

                    if (objbelGlobais.LeRegWin("EmailAutomatico").ToString() == "True")
                    {
                        EnviaEmail(objListDados);
                    }
                    if (dsPadrao.infCte.Count() > 0)
                    {
                        ReportDocument rpt = new ReportDocument();
                        rpt.Load(Application.StartupPath + "\\Relatorios\\rptCtePadrao.rpt");
                        rpt.SetDataSource(dsPadrao);
                        rpt.Refresh();

                        frmRelatorioCte frm = new frmRelatorioCte(rpt, "Impressão de DACTE - Carga Fracionada");
                        frm.Show();
                    }
                    if (dsPadraoCancelado.infCte.Count() > 0)
                    {
                        ReportDocument rpt = new ReportDocument();
                        rpt.Load(Application.StartupPath + "\\Relatorios\\rptCtePadraoCancelado.rpt");
                        rpt.SetDataSource(dsPadraoCancelado);
                        rpt.Refresh();

                        frmRelatorioCte frm = new frmRelatorioCte(rpt, "Impressão de DACTE - Carga Fracionada(Cancelados)");
                        frm.Show();
                    }
                    if (dsLotacao.infCte.Count() > 0)
                    {
                        ReportDocument rpt = new ReportDocument();
                        rpt.Load(Application.StartupPath + "\\Relatorios\\rptCteLotacao.rpt");
                        rpt.SetDataSource(dsLotacao);
                        rpt.Refresh();

                        frmRelatorioCte frm = new frmRelatorioCte(rpt, "Impressão de DACTE - Lotação");
                        frm.Show();
                    }
                    if (dsLotacaoCancelado.infCte.Count() > 0)
                    {
                        ReportDocument rpt = new ReportDocument();
                        rpt.Load(Application.StartupPath + "\\Relatorios\\rptCteLotacaoCancelado.rpt");
                        rpt.SetDataSource(dsLotacaoCancelado);
                        rpt.Refresh();

                        frmRelatorioCte frm = new frmRelatorioCte(rpt, "Impressão de DACTE - Lotação(Cancelados)");
                        frm.Show();
                    }


                }
                else
                {
                    KryptonMessageBox.Show("Nenhum Conhecimento Válido foi Selecionado para Impressão", "CT-e - AVISO", MessageBoxButtons.OK, MessageBoxIcon.Information); ;
                }

            }
            catch (Exception ex)
            {
                KryptonMessageBox.Show(null, _sMessageException + (ex.InnerException != null ? ex.InnerException.Message : ex.Message).ToString(), "CT-e - AVISO", MessageBoxButtons.OK, MessageBoxIcon.Information); ;
            }


                #endregion

            CarregaGrid();
        }
        private void btnImpressao2_Click(object sender, EventArgs e)
        {
            try
            {
                List<DadosImpressao> objListDadosImpressao = new List<DadosImpressao>();
                string sPastaMes = "";
                List<belPesquisaNotas> objSelecionadas = belPesq.lResultPesquisa.Where(c => c.bSeleciona).ToList<belPesquisaNotas>();
                List<belPesquisaNotas> objSelect = objSelecionadas.Where(c =>
                                                                   c.bEnviado == true ||
                                                                   c.bCancelado == true ||
                                                                   c.bContingencia == true).ToList<belPesquisaNotas>();

                if (objSelect.Count() > 0)
                {
                    if (Acesso.NM_EMPRESA == "MASTERFEW")
                    {
                        int iCountNotaNETSHOES = objSelect.Where(C => C.sNM_GUERRA.ToUpper().Contains("NETSHOES")).Count();

                        if (iCountNotaNETSHOES > 0)
                        {
                            if (iCountNotaNETSHOES != objSelect.Count())
                            {
                                throw new Exception("Notas para o cliente NETSHOES devem ser impressas individualmente.");
                            }

                        }
                    }

                    foreach (belPesquisaNotas nota in objSelect)
                    {
                        DadosImpressao objDados = new DadosImpressao();
                        objDados.sCD_NFSEQ = nota.sCD_NFSEQ;
                        objDados.sCD_NOTAFIS = nota.sCD_NOTAFIS;
                        objDados.sNUM_GRUPO = nota.sCD_GRUPONF;

                        #region Busca os Arquivos selecionados

                        sPastaMes = nota.sCHAVENFE.Substring(2, 4);
                        string sCaminho = "";
                        if (nota.bContingencia)
                        {
                            sCaminho = Pastas.CONTINGENCIA + "\\" + nota.sCHAVENFE + "-nfe.xml";
                            objDados.tipo = TipoPDF.CONTINGENCIA;
                        }
                        else
                        {
                            if (nota.bCancelado)
                            {
                                sCaminho = Pastas.CANCELADOS + "\\" + sPastaMes + "\\" + nota.sCHAVENFE + "-can.xml.xml";
                                objDados.Cancelado = true;
                                objDados.tipo = TipoPDF.CANCELADO;
                            }
                            else
                            {
                                sCaminho = Pastas.ENVIADOS + sPastaMes + "\\" + nota.sCHAVENFE + "-nfe.xml";
                                objDados.tipo = TipoPDF.ENVIADO;
                            }
                        }
                        if (File.Exists(sCaminho))
                        {
                            objDados.sCaminhoXml = sCaminho;
                            objListDadosImpressao.Add(objDados);
                        }
                        else
                        {
                            throw new Exception("Arquivo Xml da NF-e nº " + nota.sCD_NOTAFIS + " não foi encontrado.");
                        }

                        #endregion
                    }



                    if (objListDadosImpressao.Count() > 0)
                    {
                        frmCarregaDadosParaVisualizarDanfe objfrmCarregar = new frmCarregaDadosParaVisualizarDanfe(objListDadosImpressao);
                        objfrmCarregar.ShowDialog();
                    }
                }
                else
                {
                    KryptonMessageBox.Show("Nenhuma nota Válida foi Selecionada", Mensagens.MSG_Aviso, MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            catch (Exception ex)
            {
                new HLPexception(ex);
            }
        }