Esempio n. 1
0
        private string geraChaveCanc(string sEmp, string sSeq)
        {
            belConnection cx = new belConnection();
            try
            {
                StringBuilder sSql = new StringBuilder();
                sSql.Append("Select ");
                sSql.Append("uf.nr_ufnfe, ");
                sSql.Append("coalesce(nf.cd_serie, 1) serie, ");
                sSql.Append("nf.cd_notafis nNF, ");
                sSql.Append("nf.dt_emi dEmi, ");
                sSql.Append("empresa.cd_cgc CNPJ, ");
                sSql.Append("nf.cd_nfseq cNF ");
                sSql.Append(" From ");
                sSql.Append("NF ");
                sSql.Append("inner join empresa on (empresa.cd_empresa = nf.cd_empresa) ");
                sSql.Append("left join uf on (uf.cd_uf = empresa.cd_ufnor) ");
                sSql.Append("where ");
                sSql.Append("(nf.cd_empresa ='");
                sSql.Append(sEmp);
                sSql.Append("')");
                sSql.Append(" and ");
                sSql.Append("(nf.cd_nfseq = '");
                sSql.Append(sSeq);
                sSql.Append("')");

                FbCommand sqlConsulta = new FbCommand(sSql.ToString(), cx.get_Conexao());
                cx.Open_Conexao();
                sqlConsulta.ExecuteNonQuery();
                FbDataReader drChave = sqlConsulta.ExecuteReader();
                drChave.Read();

                GeraXMLExp objgeraxmlexp = new GeraXMLExp();

                string scUF, sAAmM, sCNPJ, sMod, sSerie, snNF, scNF;
                scUF = drChave["nr_ufnfe"].ToString().PadLeft(2, '0');
                sAAmM = drChave["demi"].ToString().Replace("/", "").Substring(6, 2).ToString() +
                        drChave["demi"].ToString().Replace("/", "").Substring(2, 2).ToString();
                sCNPJ = belUtil.TiraSimbolo(drChave["cnpj"].ToString(), "");
                sCNPJ = sCNPJ.PadLeft(14, '0');
                sMod = "55";

                if (IsNumeric(drChave["serie"].ToString()))
                {
                    sSerie = drChave["serie"].ToString().PadLeft(3, '0');
                }
                else
                {
                    sSerie = "001";
                }
                snNF = drChave["nNF"].ToString().PadLeft(9, '0');
                scNF = drChave["cNF"].ToString().PadLeft(9, '0');

                string sChaveantDig = "";
                string sChave = "";
                string sDig = "";

                sChaveantDig = scUF.Trim() + sAAmM.Trim() + sCNPJ.Trim() + sMod.Trim() + sSerie.Trim() + snNF.Trim() + scNF.Trim();
                sDig = objgeraxmlexp.CalculaDig11(sChaveantDig).ToString();

                sChave = sChaveantDig + sDig;
                return sChave;
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                cx.Close_Conexao();
            }
        }