Пример #1
0
        /// <summary>
        /// Busca Retorno do Web Service SCAN
        /// </summary>
        /// <returns></returns>
        public string buscaRetornoSCAN(string UF_Empresa)
        {
            string sCabec = NfeCabecMsg();
            string sDados = consultaNFe();
            AssinaNFeXml bc = new AssinaNFeXml();
            string xret = string.Empty;
            try
            {
                if (_tpamb == 2)
                {
                    HLP.WebService.v2_SCAN_Homologacao_NFeConsulta.NfeConsulta2 ws2 = new HLP.WebService.v2_SCAN_Homologacao_NFeConsulta.NfeConsulta2();
                    HLP.WebService.v2_SCAN_Homologacao_NFeConsulta.nfeCabecMsg cabec = new HLP.WebService.v2_SCAN_Homologacao_NFeConsulta.nfeCabecMsg();

                    cabec.versaoDados = _versaodados;
                    belUF objUf = new belUF();
                    cabec.cUF = objUf.RetornaCUF(UF_Empresa);
                    ws2.nfeCabecMsgValue = cabec;
                    ws2.ClientCertificates.Add(bc.BuscaNome(""));

                    XmlDataDocument xmlConsulta = new XmlDataDocument();
                    xmlConsulta.LoadXml(sDados);
                    XmlNode xNodeConsulta = xmlConsulta.DocumentElement;

                    xret = ws2.nfeConsultaNF2(xNodeConsulta).OuterXml;
                }
                else
                {
                    HLP.WebService.v2_SCAN_Producao_NFeConsulta.NfeConsulta2 ws2 = new HLP.WebService.v2_SCAN_Producao_NFeConsulta.NfeConsulta2();
                    HLP.WebService.v2_SCAN_Producao_NFeConsulta.nfeCabecMsg cabec = new HLP.WebService.v2_SCAN_Producao_NFeConsulta.nfeCabecMsg();

                    cabec.versaoDados = _versaodados;
                    belUF objUf = new belUF();
                    cabec.cUF = objUf.RetornaCUF(UF_Empresa);
                    ws2.nfeCabecMsgValue = cabec;
                    ws2.ClientCertificates.Add(bc.BuscaNome(""));

                    XmlDataDocument xmlConsulta = new XmlDataDocument();
                    xmlConsulta.LoadXml(sDados);
                    XmlNode xNodeConsulta = xmlConsulta.DocumentElement;

                    xret = ws2.nfeConsultaNF2(xNodeConsulta).OuterXml;
                }
                return xret;
            }
            catch (Exception)
            {
                throw;
            }
        }
Пример #2
0
        private void btnInutilizar_Click(object sender, EventArgs e)
        {
            XmlDocument xmldoc = new XmlDocument();
            try
            {


                if (txtNNFini.Text == "")
                {
                    KryptonMessageBox.Show("Número Inicial Não Preenchido!", "A T E N Ç Ã O", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);

                }
                else if (txtNNFfim.Text == "")
                {
                    KryptonMessageBox.Show("Número Final Não Preenchido!", "A T E N Ç Ã O", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                }
                else if (txtXjust.Text == "")
                {
                    KryptonMessageBox.Show("Justificativa Não Preenchido!", "A T E N Ç Ã O", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);

                }
                else if (txtXjust.Text.Length < 15)
                {
                    KryptonMessageBox.Show("Justificativa Não Preenchido!", "A T E N Ç Ã O", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                }
                else
                {
                    retInfempresa();
                    AssinaNFeXml assina = new AssinaNFeXml();
                    X509Certificate2 cert = assina.BuscaNome("");
                    belNfeInutilizacao objinutilizacao = new belNfeInutilizacao(_tpamp, _cuf, _cnpj, _mod, cbxSerie.Text, txtXjust.Text,
                                                                                txtNNFini.Text, txtNNFfim.Text, cert, _uf_empresa, belStatic.bModoSCAN, belStatic.iStatusAtualSistema);


                    xmldoc.LoadXml(objinutilizacao.RetWs);
                    Globais LeRegWin = new Globais();

                    if (xmldoc.GetElementsByTagName("cStat")[0].InnerText == "102")
                    {
                        KryptonMessageBox.Show(null, "Tipo Ambiente: " + xmldoc.GetElementsByTagName("tpAmb")[0].InnerText + Environment.NewLine +
                                              "Status: " + xmldoc.GetElementsByTagName("cStat")[0].InnerText + Environment.NewLine +
                                              "Descrição: " + xmldoc.GetElementsByTagName("xMotivo")[0].InnerText + Environment.NewLine +
                                              "Ano: " + xmldoc.GetElementsByTagName("ano")[0].InnerText + Environment.NewLine +
                                              "Modelo da NF-e: " + xmldoc.GetElementsByTagName("mod")[0].InnerText + Environment.NewLine +
                                              "Serie da NF-e: " + xmldoc.GetElementsByTagName("serie")[0].InnerText + Environment.NewLine +
                                              "Número Inicial: " + xmldoc.GetElementsByTagName("nNFIni")[0].InnerText + Environment.NewLine +
                                              "Número Final: " + xmldoc.GetElementsByTagName("nNFFin")[0].InnerText + Environment.NewLine +
                                              "Data do Recbto: " + xmldoc.GetElementsByTagName("dhRecbto")[0].InnerText.Replace('T', ' ') + Environment.NewLine +
                                              "Número do Protocolo: " + xmldoc.GetElementsByTagName("nProt")[0].InnerText, "INUTILIZAÇÃO DE NUMERACAO",
                                              MessageBoxButtons.OK,
                                              MessageBoxIcon.Information);
                        xmldoc.Save(belStaticPastas.PROTOCOLOS + "\\" + xmldoc.GetElementsByTagName("nProt")[0].InnerText + "_inu.xml");
                    }
                    else
                    {
                        KryptonMessageBox.Show(null, "Tipo Ambiente: " + xmldoc.GetElementsByTagName("tpAmb")[0].InnerText + Environment.NewLine +
                                              "Status: " + xmldoc.GetElementsByTagName("cStat")[0].InnerText + Environment.NewLine +
                                              "Descrição: " + xmldoc.GetElementsByTagName("xMotivo")[0].InnerText,
                                              "INUTILIZAÇÃO DE NUMERACAO",
                                              MessageBoxButtons.OK,
                                              MessageBoxIcon.Information);
                    }
                    this.Close();
                }
            }
            catch (Exception ex)
            {

                KryptonMessageBox.Show(ex.Message);
            }

        }
Пример #3
0
        /// <summary>
        /// Método que transmite para o WebService Estadual
        /// </summary>
        /// <param name="UF_Empresa"></param>
        private void TransmitirLote(string UF_Empresa)
        {
            string sRet = string.Empty;

            try
            {
                AssinaNFeXml BC = new AssinaNFeXml();
                XNamespace xname = "http://www.portalfiscal.inf.br/nfe";
                // Diego - O.S 24489 - 26/05/2010
                switch (UF_Empresa)
                {
                    case "SP":
                        {
                            #region Regiao_SP
                            if (_ptpamb == 2)
                            {
                                HLP.WebService.v2_Homologacao_NFeRecepcao_SP.nfeCabecMsg cabec = new HLP.WebService.v2_Homologacao_NFeRecepcao_SP.nfeCabecMsg();
                                HLP.WebService.v2_Homologacao_NFeRecepcao_SP.NfeRecepcao2 ws2 = new HLP.WebService.v2_Homologacao_NFeRecepcao_SP.NfeRecepcao2();
                                belUF objbelUf = new belUF();
                                cabec.cUF = objbelUf.RetornaCUF(UF_Empresa);
                                cabec.versaoDados = _pversaoaDados;
                                ws2.nfeCabecMsgValue = cabec;
                                ws2.ClientCertificates.Add(_cert);

                                XmlDocument _xmlxelem = new XmlDocument();
                                _xmlxelem.PreserveWhitespace = true;
                                _xmlxelem.LoadXml(_xelem);

                                XmlNode xNelem = null;
                                xNelem = _xmlxelem.DocumentElement;

                                sRet = ws2.nfeRecepcaoLote2(xNelem).OuterXml;

                                int lugar = sRet.IndexOf("<nRec>");

                                string pRec = sRet.Substring(lugar + 6, 15);

                                Recibo = pRec;

                                XElement Elemento = XElement.Parse(sRet);

                                // Busca do status da conexao
                                XContainer container = new XElement("infRec");

                                var Status =
                                    from b in Elemento.Elements(xname + "cStat")

                                    select new  // Depois da query adicionamos propriedades ao var Filme para estarem acessiveis no foreach
                                    {
                                        Status = (string)b.Value
                                    };
                                foreach (var Stat in Status)
                                {
                                    this.Cstat = Convert.ToInt16(Stat.Status);
                                }
                                //

                                // Busca do Descricao do Motivo do status                
                                var Motivo =
                                    from b in Elemento.Elements(xname + "xMotivo")

                                    select new  // Depois da query adicionamos propriedades ao var Filme para estarem acessiveis no foreach
                                    {
                                        Motivo = (string)b.Value
                                    };
                                foreach (var xMotivo in Motivo)
                                {
                                    this.Xmotivo = xMotivo.Motivo;
                                }

                                this.Nrec = sRet.Substring(sRet.IndexOf("<nRec>") + 6, ((sRet.IndexOf("</nRec>") - (sRet.IndexOf("<nRec>"))) - 6));
                                this.Dhrecbto = Convert.ToDateTime(sRet.Substring(sRet.IndexOf("<dhRecbto>") + 10, ((sRet.IndexOf("</dhRecbto>") - (sRet.IndexOf("<dhRecbto>"))) - 10)));
                                this.Tmed = Convert.ToInt16(sRet.Substring(sRet.IndexOf("<tMed>") + 6, ((sRet.IndexOf("</tMed>") - (sRet.IndexOf("<tMed>"))) - 6)));
                            }
                            else
                            {
                                if (_ptpamb == 1)
                                {
                                    HLP.WebService.v2_Producao_NFeRecepcao_SP.nfeCabecMsg cabec = new HLP.WebService.v2_Producao_NFeRecepcao_SP.nfeCabecMsg();
                                    HLP.WebService.v2_Producao_NFeRecepcao_SP.NfeRecepcao2 ws2 = new HLP.WebService.v2_Producao_NFeRecepcao_SP.NfeRecepcao2();
                                    belUF objbelUf = new belUF();
                                    cabec.cUF = objbelUf.RetornaCUF(UF_Empresa);
                                    cabec.versaoDados = _pversaoaDados;
                                    ws2.nfeCabecMsgValue = cabec;
                                    ws2.ClientCertificates.Add(_cert);

                                    XmlDocument _xmlxelem = new XmlDocument();
                                    _xmlxelem.PreserveWhitespace = true;
                                    _xmlxelem.LoadXml(_xelem);

                                    XmlNode xNelem = null;
                                    xNelem = _xmlxelem.DocumentElement;

                                    sRet = ws2.nfeRecepcaoLote2(xNelem).OuterXml;

                                    int lugar = sRet.IndexOf("<nRec>");

                                    string pRec = sRet.Substring(lugar + 6, 15);

                                    Recibo = pRec;

                                }
                                else
                                {
                                    throw new Exception("tpamb com valor incorreto");
                                }
                            }
                            #endregion
                        }
                        break;
                    case "MS":
                        {
                            #region Regiao_MS
                            if (_ptpamb == 2)
                            {
                                HLP.WebService.v2_Homologacao_NFeRecepcao_MS.nfeCabecMsg cabec = new HLP.WebService.v2_Homologacao_NFeRecepcao_MS.nfeCabecMsg();
                                HLP.WebService.v2_Homologacao_NFeRecepcao_MS.NfeRecepcao2 ws2 = new HLP.WebService.v2_Homologacao_NFeRecepcao_MS.NfeRecepcao2();
                                belUF objbelUf = new belUF();
                                cabec.cUF = objbelUf.RetornaCUF(UF_Empresa);
                                cabec.versaoDados = _pversaoaDados;
                                ws2.nfeCabecMsgValue = cabec;
                                ws2.ClientCertificates.Add(_cert);

                                XmlDocument _xmlxelem = new XmlDocument();
                                _xmlxelem.PreserveWhitespace = true;
                                _xmlxelem.LoadXml(_xelem);

                                XmlNode xNelem = null;
                                xNelem = _xmlxelem.DocumentElement;

                                sRet = ws2.nfeRecepcaoLote2(xNelem).OuterXml;

                                int lugar = sRet.IndexOf("<nRec>");

                                string pRec = sRet.Substring(lugar + 6, 15);

                                Recibo = pRec;

                                XElement Elemento = XElement.Parse(sRet);

                                // Busca do status da conexao
                                XContainer container = new XElement("infRec");

                                var Status =
                                    from b in Elemento.Elements(xname + "cStat")

                                    select new  // Depois da query adicionamos propriedades ao var Filme para estarem acessiveis no foreach
                                    {
                                        Status = (string)b.Value
                                    };
                                foreach (var Stat in Status)
                                {
                                    this.Cstat = Convert.ToInt16(Stat.Status);
                                }
                                //

                                // Busca do Descricao do Motivo do status                
                                var Motivo =
                                    from b in Elemento.Elements(xname + "xMotivo")

                                    select new  // Depois da query adicionamos propriedades ao var Filme para estarem acessiveis no foreach
                                    {
                                        Motivo = (string)b.Value
                                    };
                                foreach (var xMotivo in Motivo)
                                {
                                    this.Xmotivo = xMotivo.Motivo;
                                }

                                this.Nrec = sRet.Substring(sRet.IndexOf("<nRec>") + 6, ((sRet.IndexOf("</nRec>") - (sRet.IndexOf("<nRec>"))) - 6));
                                this.Dhrecbto = Convert.ToDateTime(sRet.Substring(sRet.IndexOf("<dhRecbto>") + 10, ((sRet.IndexOf("</dhRecbto>") - (sRet.IndexOf("<dhRecbto>"))) - 10)));
                                this.Tmed = Convert.ToInt16(sRet.Substring(sRet.IndexOf("<tMed>") + 6, ((sRet.IndexOf("</tMed>") - (sRet.IndexOf("<tMed>"))) - 6)));
                            }
                            else
                            {
                                if (_ptpamb == 1)
                                {
                                    HLP.WebService.v2_Producao_NFeRecepcao_MS.nfeCabecMsg cabec = new HLP.WebService.v2_Producao_NFeRecepcao_MS.nfeCabecMsg();
                                    HLP.WebService.v2_Producao_NFeRecepcao_MS.NfeRecepcao2 ws2 = new HLP.WebService.v2_Producao_NFeRecepcao_MS.NfeRecepcao2();
                                    belUF objbelUf = new belUF();
                                    cabec.cUF = objbelUf.RetornaCUF(UF_Empresa);
                                    cabec.versaoDados = _pversaoaDados;
                                    ws2.nfeCabecMsgValue = cabec;
                                    ws2.ClientCertificates.Add(_cert);

                                    XmlDocument _xmlxelem = new XmlDocument();
                                    _xmlxelem.PreserveWhitespace = true;
                                    _xmlxelem.LoadXml(_xelem);

                                    XmlNode xNelem = null;
                                    xNelem = _xmlxelem.DocumentElement;

                                    sRet = ws2.nfeRecepcaoLote2(xNelem).OuterXml;

                                    int lugar = sRet.IndexOf("<nRec>");

                                    string pRec = sRet.Substring(lugar + 6, 15);

                                    Recibo = pRec;
                                }
                                else
                                {
                                    throw new Exception("tpamb com valor incorreto");
                                }
                            }
                            #endregion
                        }
                        break;
                    case "RS":
                        {
                            #region Regiao_RS
                            if (_ptpamb == 2)
                            {
                                HLP.WebService.v2_Homologacao_NFeRecepcao_RS.nfeCabecMsg cabec = new HLP.WebService.v2_Homologacao_NFeRecepcao_RS.nfeCabecMsg();
                                HLP.WebService.v2_Homologacao_NFeRecepcao_RS.NfeRecepcao2 ws2 = new HLP.WebService.v2_Homologacao_NFeRecepcao_RS.NfeRecepcao2();
                                belUF objbelUf = new belUF();
                                cabec.cUF = objbelUf.RetornaCUF(UF_Empresa);
                                cabec.versaoDados = _pversaoaDados;
                                ws2.nfeCabecMsgValue = cabec;
                                ws2.ClientCertificates.Add(_cert);

                                XmlDocument _xmlxelem = new XmlDocument();
                                _xmlxelem.PreserveWhitespace = true;
                                _xmlxelem.LoadXml(_xelem);

                                XmlNode xNelem = null;
                                xNelem = _xmlxelem.DocumentElement;

                                sRet = ws2.nfeRecepcaoLote2(xNelem).OuterXml;

                                int lugar = sRet.IndexOf("<nRec>");

                                string pRec = sRet.Substring(lugar + 6, 15);

                                Recibo = pRec;

                                XElement Elemento = XElement.Parse(sRet);

                                //Elemento.Save(@"C:\Clientes\NAVETHERM\NFe\testerec.xml");

                                // Busca do status da conexao
                                XContainer container = new XElement("infRec");

                                var Status =
                                    from b in Elemento.Elements(xname + "cStat")

                                    select new  // Depois da query adicionamos propriedades ao var Filme para estarem acessiveis no foreach
                                    {
                                        Status = (string)b.Value
                                    };
                                foreach (var Stat in Status)
                                {
                                    this.Cstat = Convert.ToInt16(Stat.Status);
                                }
                                //

                                // Busca do Descricao do Motivo do status                
                                var Motivo =
                                    from b in Elemento.Elements(xname + "xMotivo")

                                    select new  // Depois da query adicionamos propriedades ao var Filme para estarem acessiveis no foreach
                                    {
                                        Motivo = (string)b.Value
                                    };
                                foreach (var xMotivo in Motivo)
                                {
                                    this.Xmotivo = xMotivo.Motivo;
                                }

                                this.Nrec = sRet.Substring(sRet.IndexOf("<nRec>") + 6, ((sRet.IndexOf("</nRec>") - (sRet.IndexOf("<nRec>"))) - 6));
                                this.Dhrecbto = Convert.ToDateTime(sRet.Substring(sRet.IndexOf("<dhRecbto>") + 10, ((sRet.IndexOf("</dhRecbto>") - (sRet.IndexOf("<dhRecbto>"))) - 10)));
                                this.Tmed = Convert.ToInt16(sRet.Substring(sRet.IndexOf("<tMed>") + 6, ((sRet.IndexOf("</tMed>") - (sRet.IndexOf("<tMed>"))) - 6)));
                            }
                            else
                            {
                                if (_ptpamb == 1)
                                {
                                    HLP.WebService.v2_Producao_NFeRecepcao_RS.nfeCabecMsg cabec = new HLP.WebService.v2_Producao_NFeRecepcao_RS.nfeCabecMsg();
                                    HLP.WebService.v2_Producao_NFeRecepcao_RS.NfeRecepcao2 ws2 = new HLP.WebService.v2_Producao_NFeRecepcao_RS.NfeRecepcao2();
                                    belUF objbelUf = new belUF();
                                    cabec.cUF = objbelUf.RetornaCUF(UF_Empresa);
                                    cabec.versaoDados = _pversaoaDados;
                                    ws2.nfeCabecMsgValue = cabec;
                                    ws2.ClientCertificates.Add(_cert);

                                    XmlDocument _xmlxelem = new XmlDocument();
                                    _xmlxelem.PreserveWhitespace = true;
                                    _xmlxelem.LoadXml(_xelem);

                                    XmlNode xNelem = null;
                                    xNelem = _xmlxelem.DocumentElement;

                                    sRet = ws2.nfeRecepcaoLote2(xNelem).OuterXml;

                                    int lugar = sRet.IndexOf("<nRec>");

                                    string pRec = sRet.Substring(lugar + 6, 15);

                                    Recibo = pRec;

                                }
                                else
                                {
                                    throw new Exception("tpamb com valor incorreto");
                                }
                            }
                            #endregion
                        }
                        break;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #4
0
        /// <summary>
        /// BUSCA RETORNO WEB SERVICE ESTADUAL
        /// </summary>
        /// <param name="UF_Empresa"></param>
        private void BuscaRetorno(string UF_Empresa)
        {
            try
            {
                string snfeDadosMsg = NfeDadosMsg();

                AssinaNFeXml BC = new AssinaNFeXml();
                string sRet = string.Empty;


                if (belStatic.bModoSCAN)
                {
                    #region SCAN
                    if (_tpamb == 1)
                    {
                        HLP.WebService.v2_SCAN_Producao_NFeRetRecepcao.NfeRetRecepcao2 ws2 = new HLP.WebService.v2_SCAN_Producao_NFeRetRecepcao.NfeRetRecepcao2();
                        HLP.WebService.v2_SCAN_Producao_NFeRetRecepcao.nfeCabecMsg cabec = new HLP.WebService.v2_SCAN_Producao_NFeRetRecepcao.nfeCabecMsg();

                        belUF objbelUf = new belUF();
                        cabec.cUF = objbelUf.RetornaCUF(UF_Empresa);
                        cabec.versaoDados = _pversaoaplic;
                        ws2.nfeCabecMsgValue = cabec;
                        ws2.ClientCertificates.Add(_cert);

                        XmlDocument xmlNfeDadosMsg = new XmlDocument();
                        xmlNfeDadosMsg.LoadXml(snfeDadosMsg);
                        XmlNode xNodeRet = xmlNfeDadosMsg.DocumentElement;

                        _xmlRet = ws2.nfeRetRecepcao2(xNodeRet).OuterXml;
                    }
                    else if (_tpamb == 2)
                    {
                        HLP.WebService.v2_SCAN_Homologacao_NFeRetRecepcao.NfeRetRecepcao2 ws2 = new HLP.WebService.v2_SCAN_Homologacao_NFeRetRecepcao.NfeRetRecepcao2();
                        HLP.WebService.v2_SCAN_Homologacao_NFeRetRecepcao.nfeCabecMsg cabec = new HLP.WebService.v2_SCAN_Homologacao_NFeRetRecepcao.nfeCabecMsg();

                        belUF objbelUf = new belUF();
                        cabec.cUF = objbelUf.RetornaCUF(UF_Empresa);
                        cabec.versaoDados = _pversaoaplic;
                        ws2.nfeCabecMsgValue = cabec;
                        ws2.ClientCertificates.Add(_cert);

                        XmlDocument xmlNfeDadosMsg = new XmlDocument();
                        xmlNfeDadosMsg.LoadXml(snfeDadosMsg);
                        XmlNode xNodeRet = xmlNfeDadosMsg.DocumentElement;

                        _xmlRet = ws2.nfeRetRecepcao2(xNodeRet).OuterXml;

                    }
                    else
                    {
                        throw new Exception("tpamb com valor incorreto");
                    }
                    #endregion

                }
                else
                {

                    // Diego - O.S 24489 - 26/05/2010
                    switch (UF_Empresa)
                    {
                        case "SP":
                            {
                                #region Regiao_SP
                                if (_tpamb == 1)
                                {
                                    HLP.WebService.v2_Producao_NFeRetRecepcao_SP.NfeRetRecepcao2 ws2 = new HLP.WebService.v2_Producao_NFeRetRecepcao_SP.NfeRetRecepcao2();
                                    HLP.WebService.v2_Producao_NFeRetRecepcao_SP.nfeCabecMsg cabec = new HLP.WebService.v2_Producao_NFeRetRecepcao_SP.nfeCabecMsg();

                                    belUF objbelUf = new belUF();
                                    cabec.cUF = objbelUf.RetornaCUF(UF_Empresa);
                                    cabec.versaoDados = _pversaoaplic;
                                    ws2.nfeCabecMsgValue = cabec;
                                    ws2.ClientCertificates.Add(_cert);

                                    XmlDocument xmlNfeDadosMsg = new XmlDocument();
                                    xmlNfeDadosMsg.LoadXml(snfeDadosMsg);
                                    XmlNode xNodeRet = xmlNfeDadosMsg.DocumentElement;

                                    _xmlRet = ws2.nfeRetRecepcao2(xNodeRet).OuterXml;
                                }
                                else if (_tpamb == 2)
                                {
                                    HLP.WebService.v2_Homologacao_NfeRetRecepcao_SP.NfeRetRecepcao2 ws2 = new HLP.WebService.v2_Homologacao_NfeRetRecepcao_SP.NfeRetRecepcao2();
                                    HLP.WebService.v2_Homologacao_NfeRetRecepcao_SP.nfeCabecMsg cabec = new HLP.WebService.v2_Homologacao_NfeRetRecepcao_SP.nfeCabecMsg();

                                    belUF objbelUf = new belUF();
                                    cabec.cUF = objbelUf.RetornaCUF(UF_Empresa);
                                    cabec.versaoDados = _pversaoaplic;
                                    ws2.nfeCabecMsgValue = cabec;
                                    ws2.ClientCertificates.Add(_cert);

                                    XmlDocument xmlNfeDadosMsg = new XmlDocument();
                                    xmlNfeDadosMsg.LoadXml(snfeDadosMsg);
                                    XmlNode xNodeRet = xmlNfeDadosMsg.DocumentElement;

                                    _xmlRet = ws2.nfeRetRecepcao2(xNodeRet).OuterXml;

                                }
                                else
                                {
                                    throw new Exception("tpamb com valor incorreto");
                                }
                                #endregion
                            }
                            break;
                        case "MS":
                            {
                                #region Regiao_MS
                                if (_tpamb == 1)
                                {
                                    HLP.WebService.v2_Producao_NFeRetRecepcao_MS.NfeRetRecepcao2 ws2 = new HLP.WebService.v2_Producao_NFeRetRecepcao_MS.NfeRetRecepcao2();
                                    HLP.WebService.v2_Producao_NFeRetRecepcao_MS.nfeCabecMsg cabec = new HLP.WebService.v2_Producao_NFeRetRecepcao_MS.nfeCabecMsg();

                                    belUF objbelUf = new belUF();
                                    cabec.cUF = objbelUf.RetornaCUF(UF_Empresa);
                                    cabec.versaoDados = _pversaoaplic;
                                    ws2.nfeCabecMsgValue = cabec;
                                    ws2.ClientCertificates.Add(_cert);
                                    XmlDocument xmlNfeDadosMsg = new XmlDocument();
                                    xmlNfeDadosMsg.LoadXml(snfeDadosMsg);
                                    XmlNode xNodeRet = xmlNfeDadosMsg.DocumentElement;
                                    _xmlRet = ws2.nfeRetRecepcao2(xNodeRet).OuterXml;
                                }
                                else if (_tpamb == 2)
                                {
                                    HLP.WebService.v2_Homologacao_NFeRetRecepacao_RS.NfeRetRecepcao2 ws2 = new HLP.WebService.v2_Homologacao_NFeRetRecepacao_RS.NfeRetRecepcao2();
                                    HLP.WebService.v2_Homologacao_NFeRetRecepacao_RS.nfeCabecMsg cabec = new HLP.WebService.v2_Homologacao_NFeRetRecepacao_RS.nfeCabecMsg();

                                    belUF objbelUf = new belUF();
                                    cabec.cUF = objbelUf.RetornaCUF(UF_Empresa);
                                    cabec.versaoDados = _pversaoaplic;
                                    ws2.nfeCabecMsgValue = cabec;
                                    ws2.ClientCertificates.Add(_cert);
                                    XmlDocument xmlNfeDadosMsg = new XmlDocument();
                                    xmlNfeDadosMsg.LoadXml(snfeDadosMsg);
                                    XmlNode xNodeRet = xmlNfeDadosMsg.DocumentElement;
                                    _xmlRet = ws2.nfeRetRecepcao2(xNodeRet).OuterXml;
                                }
                                else
                                {
                                    throw new Exception("tpamb com valor incorreto");
                                }
                                #endregion
                            }
                            break;
                        case "RS":
                            {
                                #region Regiao_RS
                                if (_tpamb == 1)
                                {
                                    HLP.WebService.v2_Producao_NFeRetRecepcao_RS.NfeRetRecepcao2 ws2 = new HLP.WebService.v2_Producao_NFeRetRecepcao_RS.NfeRetRecepcao2();
                                    HLP.WebService.v2_Producao_NFeRetRecepcao_RS.nfeCabecMsg cabec = new HLP.WebService.v2_Producao_NFeRetRecepcao_RS.nfeCabecMsg();

                                    belUF objbelUf = new belUF();
                                    cabec.cUF = objbelUf.RetornaCUF(UF_Empresa);
                                    cabec.versaoDados = _pversaoaplic;
                                    ws2.nfeCabecMsgValue = cabec;
                                    ws2.ClientCertificates.Add(_cert);

                                    XmlDocument xmlNfeDadosMsg = new XmlDocument();
                                    xmlNfeDadosMsg.LoadXml(snfeDadosMsg);
                                    XmlNode xNodeRet = xmlNfeDadosMsg.DocumentElement;

                                    _xmlRet = ws2.nfeRetRecepcao2(xNodeRet).OuterXml;

                                }
                                else if (_tpamb == 2)
                                {
                                    HLP.WebService.v2_Homologacao_NFeRetRecepacao_RS.NfeRetRecepcao2 ws2 = new HLP.WebService.v2_Homologacao_NFeRetRecepacao_RS.NfeRetRecepcao2();
                                    HLP.WebService.v2_Homologacao_NFeRetRecepacao_RS.nfeCabecMsg cabec = new HLP.WebService.v2_Homologacao_NFeRetRecepacao_RS.nfeCabecMsg();

                                    belUF objbelUf = new belUF();
                                    cabec.cUF = objbelUf.RetornaCUF(UF_Empresa);
                                    cabec.versaoDados = _pversaoaplic;
                                    ws2.nfeCabecMsgValue = cabec;
                                    ws2.ClientCertificates.Add(_cert);

                                    XmlDocument xmlNfeDadosMsg = new XmlDocument();
                                    xmlNfeDadosMsg.LoadXml(snfeDadosMsg);
                                    XmlNode xNodeRet = xmlNfeDadosMsg.DocumentElement;

                                    _xmlRet = ws2.nfeRetRecepcao2(xNodeRet).OuterXml;
                                }
                                else
                                {
                                    throw new Exception("tpamb com valor incorreto");
                                }
                                #endregion
                            }
                            break;
                    }
                }
            }
            catch (XmlException x)
            {

                throw new Exception(x.Message.ToString());
            }
            catch (XmlSchemaException x)
            {
                throw new Exception(x.Message.ToString());
            }

        }
Пример #5
0
        private void btnCancelamento_Click(object sender, EventArgs e)
        {
            try
            {
                List<string> sNotacanc = new List<string>();
                frmCancelamentoNfs objfrmCanc = new frmCancelamentoNfs();
                daoCancelamento objdaoCanc = new daoCancelamento();
                belCancelamentoNFse objbelCance = new belCancelamentoNFse();
                cx.Open_Conexao();

                for (int i = 0; i < dgvNF.RowCount; i++)
                {
                    if ((((dgvNF["cd_recibocanc", i].Value.ToString() == "") && (dgvNF["ASSINANF", i].Value != null) && dgvNF["ASSINANF", i].Value.ToString().Equals("True")) && (dgvNF["ST_NFE", i].Value.ToString() != "0")))//&& (dgvNF["CANCELADA", i].Value.ToString() != "0")))
                    {
                        sNotacanc.Add((string)dgvNF["CD_NFSEQ", i].Value);
                    }
                }
                if (sNotacanc.Count == 1)
                {
                    objfrmCanc.ShowDialog();
                    AssinaNFeXml Assinatura = new AssinaNFeXml();
                    X509Certificate2 cert = Assinatura.BuscaNome("");
                    if (!ValidaCertificado(cert))
                    {
                        throw new Exception("Certificado não Selecionado!!");
                    }

                    TcPedidoCancelamento objTcPediCanc = objdaoCanc.BuscaDadosParaCancelamento(cx.get_Conexao(), objfrmCanc.sErro, sNotacanc[0]);
                    string sXmlRet = objbelCance.CancelaNfes(objTcPediCanc, cert); //Cancela a Nota
                    string sMsgRet = objbelCance.ConfiguraMsgRetornoCancelamento(sXmlRet); // Configura Msg e verifica se a nota foi cancelada
                    if (objbelCance.bNotaCancelada)
                    {
                        objdaoCanc.CancelarNFseSistema(objTcPediCanc.InfPedidoCancelamento.IdentificacaoNfse.Numero, cx.get_Conexao()); //Update no cd_recibocanc
                    }
                    KryptonMessageBox.Show(null, sMsgRet, "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else if (sNotacanc.Count > 1)
                {
                    KryptonMessageBox.Show(null, "Não é possível cancelar varias notas de uma só vez.!", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    KryptonMessageBox.Show(null, "Nenhuma Nota válida foi selecionada para o Cancelamento.", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            catch (Exception ex)
            {
                KryptonMessageBox.Show(null, string.Format(Msg_Padrao.CException, Environment.NewLine) + (ex.InnerException != null ? ex.InnerException.Message : ex.Message).ToString(), "AVISO ", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            finally { cx.Close_Conexao(); }
        }
Пример #6
0
        private void btnCanc_Click(object sender, EventArgs e)
        {
            Globais pega = new Globais();
            //Danner - o.s. 23851 - 19/11/2009
            AssinaNFeXml bc = new AssinaNFeXml();
            X509Certificate2 cert = new X509Certificate2();
            cert = bc.BuscaNome("");
            //Fim - Danner - o.s. 23851 - 19/11/2009
            try
            {

                if (txtJust.Text.Length < 15)
                {
                    KryptonMessageBox.Show(null, "Justificativa Insuficiente, Mínimo de 15 Caracteres", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                    txtJust.Focus();
                }
                else
                {
                    belNfeCancelamento nfecanc = new belNfeCancelamento("1.02", "2", "CANCELAR", txtJust.Text, "1.07", _emp, _snotacanc[0].ToString(), cert, UF_Empresa, belStatic.bModoSCAN, belStatic.iStatusAtualSistema);//Danner - o.s. 23984 - 07/01/2010
                    XmlDocument xmlret = new XmlDocument();
                    xmlret.LoadXml(nfecanc.Sret);
                    string cstat = xmlret.GetElementsByTagName("cStat")[0].InnerText;
                    string xmotivo = xmlret.GetElementsByTagName("xMotivo")[0].InnerText;
                    if (cstat != "101")
                    {
                        throw new Exception("Erro " + cstat + ": " + xmotivo);
                    }
                    else
                    {
                        string nprot = xmlret.GetElementsByTagName("nProt")[0].InnerText;
                        string chnfe = xmlret.GetElementsByTagName("chNFe")[0].InnerText;


                        StringBuilder sSql = new StringBuilder();

                        sSql.Append("update nf ");
                        sSql.Append("set cd_recibocanc = '");
                        sSql.Append(nprot);
                        sSql.Append("' ");
                        sSql.Append("where ");
                        sSql.Append("cd_empresa = '");
                        sSql.Append(_emp);
                        sSql.Append("' ");
                        sSql.Append("and ");
                        sSql.Append("cd_nfseq = '");
                        sSql.Append(_snotacanc[0]);
                        sSql.Append("'");

                        using (FbCommand cmdUpdate = new FbCommand(sSql.ToString(), cx.get_Conexao()))
                        {
                            cx.Open_Conexao();
                            cmdUpdate.ExecuteNonQuery();
                        }

                        geraNFeCanc(chnfe, pega);
                        KryptonMessageBox.Show(null, "Nota Cancelada com Sucesso", "Cancelamento", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
            }
            catch (Exception x)
            {
                throw new Exception(x.Message + " - Nota não foi cancelada com sucesso!");
            }
            finally { cx.Close_Conexao(); }

        }
Пример #7
0
        private void btnEnviar_Click(object sender, EventArgs e)
        {
            frmStatusEnvioNfs objfrmStatus = null;
            try
            {
                Globais objGlobais = new Globais();
                if (objGlobais.LeRegConfig("GrupoServico").Equals(""))
                {
                    throw new Exception("Parametrize o Grupo Padrão de Faturamento (Serviço) no Config do Sistema antes de Enviar Notas");
                }

                for (int i = 0; i < dgvNF.RowCount; i++)
                {
                    if (dgvNF["ASSINANF", i].Value != null)
                    {
                        if (dgvNF["ASSINANF", i].Value.ToString().Equals("True"))
                        {
                            if (VerificaCampoReciboPreenchido(belStatic.codEmpresaNFe, dgvNF["CD_NFSEQ", i].Value.ToString()) != "")
                            {
                                throw new Exception("A Nota de Sequencia = " + dgvNF["CD_NFSEQ", i].Value.ToString() + " Já tem um retorno Salvo no Banco de Dados, tente Buscar Retorno");
                            }
                        }
                    }
                }
                #region Busca Notas Selecionadas na Grid
                string sNfCancelada = string.Empty;
                sListaNotas = new List<string>();
                for (int i = 0; i < dgvNF.RowCount; i++)
                {
                    if (((dgvNF["ASSINANF", i].Value != null) && (dgvNF["ASSINANF", i].Value.ToString().Equals("True"))) && ((dgvNF["CANCELADA", i].Value == null) || (dgvNF["CANCELADA", i].Value.ToString() == "0"))) //Danner - o.s. SEM - 17/12/2009
                    {
                        sListaNotas.Add((string)dgvNF["CD_NFSEQ", i].Value);
                    }
                    if ((dgvNF["CANCELADA", i].Value != null) && (dgvNF["CANCELADA", i].Value.ToString() == "1"))
                    {
                        sNfCancelada += "Nota Fiscal " + dgvNF["CD_NOTAFIS", i].Value.ToString() + " - Esta Cancelada e não é Permitido o Reenvio da mesma Nota!" + Environment.NewLine + Environment.NewLine;
                    }
                }

                if (sListaNotas.Count == 0)
                {
                    KryptonMessageBox.Show("Nenhuma nota Valida foi Selecionada!", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    if (sNfCancelada != "")
                    {
                        KryptonMessageBox.Show(sNfCancelada, "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    return;
                }

                #endregion
                daoLoteRps objdaoLoteRps = new daoLoteRps();

                if (ValidaSeqNoBanco())
                {
                    tcLoteRps objLoteRps = objdaoLoteRps.BuscaDadosNFes(sListaNotas);
                    //Chamar Form para visualizar;
                    frmVisualizaNfs objFrmVisualiza = new frmVisualizaNfs(objLoteRps);
                    objFrmVisualiza.ShowDialog();
                    if (objFrmVisualiza.bCancela)
                    {
                        MessageBoxIcon _msgIcon = MessageBoxIcon.Information;
                        throw new Exception("Envio da(s) Nota(s) Cancelado");
                    }

                    AssinaNFeXml Assinatura = new AssinaNFeXml();
                    X509Certificate2 cert = Assinatura.BuscaNome("");
                    if (!ValidaCertificado(cert))
                    {
                        throw new Exception("Certificado não Selecionado!!");
                    }
                    objfrmStatus = new frmStatusEnvioNfs();
                    objfrmStatus.Show();
                    objfrmStatus.lblMsg.Text = "Montando XML de Acordo com os dados inseridos!!";
                    objfrmStatus.lblMsg.Refresh();
                    objfrmStatus.Refresh();

                    HLP.bel.NFes.belCreateXml objCreateXml = new belCreateXml(cert);
                    objCreateXml.GerarAqruivoXml(objFrmVisualiza.objLoteRpsAlter);

                    objfrmStatus.lblMsg.Text = "Enviando Lote para o Webservice!!";
                    objfrmStatus.lblMsg.Refresh();

                    //Envia Lote
                    belRecepcao objBelRecepcao = new belRecepcao(objCreateXml.sXmlLote, cert, objFrmVisualiza.objLoteRpsAlter);
                    if (objBelRecepcao.sMsgTransmissao != "")
                    {
                        throw new Exception(objBelRecepcao.sMsgTransmissao);
                    }
                    daoRecepcao objdaoRecepcao = new daoRecepcao(objBelRecepcao.Protocolo, objFrmVisualiza.objLoteRpsAlter);
                    objfrmStatus.lblMsg.Text = "Gravando recibo na base de dados!!";
                    objfrmStatus.lblMsg.Refresh();
                    objdaoRecepcao.GravaRecibo();
                    string sMsgErro = objBelRecepcao.BuscaRetorno(objFrmVisualiza.objLoteRpsAlter.Rps[0].InfRps.Prestador, objfrmStatus.lblMsg, objfrmStatus.progressBarStatus);

                    if (objBelRecepcao.sCodigoRetorno.Equals("E4"))
                    {
                        objfrmStatus.Close();
                        KryptonMessageBox.Show(null, sMsgErro + Environment.NewLine + Environment.NewLine + "IMPORTANTE: Tente Buscar Retorno da NFse pois o serviço do Web service está demorando para responder; ", "MENSAGEM DE RETORNO", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else if (objBelRecepcao.objListaNfseRetorno.Count > 0) //Lote Enviado
                    {
                        objfrmStatus.lblMsg.Text = "Alterando Status da Nota para Enviada!!";
                        objfrmStatus.lblMsg.Refresh();
                        objdaoRecepcao.AlteraStatusDaNota(objBelRecepcao.objListaNfseRetorno);
                        objfrmStatus.Close();
                        objdaoRecepcao.VerificaNotasParaCancelar(objBelRecepcao.objListaNfseRetorno);

                        for (int i = 0; i < dgvNF.RowCount; i++)
                        {
                            //CD_NFSEQ
                            int ienviado = objBelRecepcao.objListaNfseRetorno.Count(lote => lote.IdentificacaoRps.Nfseq == dgvNF["CD_NFSEQ", i].Value.ToString());
                            if (ienviado > 0)
                            {
                                dgvNF["ST_NFE", i].Value = true;
                            }
                        }
                        KryptonMessageBox.Show(null, objBelRecepcao.MontaMsgDeRetornoParaCliente(), "MENSAGEM DE RETORNO", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        EnviaEmail(objBelRecepcao.objListaNfseRetorno);
                    }
                    else
                    {
                        objdaoRecepcao.LimpaRecibo(objFrmVisualiza.objLoteRpsAlter);
                        objfrmStatus.Close();
                        KryptonMessageBox.Show(null, sMsgErro + Environment.NewLine, "MENSAGEM DE RETORNO", MessageBoxButtons.OK, MessageBoxIcon.Information);

                    }
                }

                VerificaGeneratorLote();
                PopulaDataGridView();
            }
            catch (Exception ex)
            {
                if (objfrmStatus != null)
                {
                    objfrmStatus.Close();
                }
                VerificaGeneratorLote();
                KryptonMessageBox.Show(null, string.Format(Msg_Padrao.CException, Environment.NewLine) + (ex.InnerException != null ? ex.InnerException.Message + Environment.NewLine + ex.Message : ex.Message).ToString(), "AVISO ", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            finally { cx.Close_Conexao(); }
        }
Пример #8
0
        private void btnBuscaRetorno_Click(object sender, EventArgs e)
        {
            frmStatusEnvioNfs objfrmStatus = null;
            try
            {
                #region Busca Notas Selecionadas na Grid
                string sNfCancelada = string.Empty;
                sListaNotas = new List<string>();
                for (int i = 0; i < dgvNF.RowCount; i++)
                {
                    if (((dgvNF["ASSINANF", i].Value != null) && (dgvNF["ASSINANF", i].Value.ToString().Equals("True"))) && ((dgvNF["CANCELADA", i].Value == null) || (dgvNF["CANCELADA", i].Value.ToString() == "0"))) //Danner - o.s. SEM - 17/12/2009
                    {
                        sListaNotas.Add((string)dgvNF["CD_NFSEQ", i].Value);
                    }
                    if ((dgvNF["CANCELADA", i].Value != null) && (dgvNF["CANCELADA", i].Value.ToString() == "1"))
                    {
                        sNfCancelada += "Nota Fiscal " + dgvNF["CD_NOTAFIS", i].Value.ToString() + " - Esta Cancelada e não é Permitido o Reenvio da mesma Nota!" + Environment.NewLine + Environment.NewLine;
                    }
                }

                if (sListaNotas.Count == 0)
                {
                    KryptonMessageBox.Show("Nenhuma nota Valida foi Selecionada!", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    if (sNfCancelada != "")
                    {
                        KryptonMessageBox.Show(sNfCancelada, "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    return;
                }

                #endregion

                if (sListaNotas.Count == 1)
                {
                    belRecepcao objBelRecepcao = new belRecepcao();
                    daoPrestador objdaoPrestador = new daoPrestador();
                    daoRecepcao objdaoRecepcao = new daoRecepcao();
                    //Buscar Protocolo no banco
                    objBelRecepcao.Protocolo = objdaoRecepcao.BuscaNumProtocolo(sListaNotas[0]);

                    //Busca Retorno do lote
                    AssinaNFeXml Assinatura = new AssinaNFeXml();
                    X509Certificate2 cert = Assinatura.BuscaNome("");
                    if (!ValidaCertificado(cert))
                    {
                        throw new Exception("Certificado não Selecionado!!");
                    }
                    else
                    {
                        objBelRecepcao.cert = cert;
                    }

                    objfrmStatus = new frmStatusEnvioNfs();
                    objfrmStatus.Show();
                    objfrmStatus.Refresh();
                    string sMsgErro = objBelRecepcao.BuscaRetorno(objdaoPrestador.RettcIdentificacaoPrestador(cx.get_Conexao(), sListaNotas[0]), objfrmStatus.lblMsg, objfrmStatus.progressBarStatus);

                    if (objBelRecepcao.sCodigoRetorno.Equals("E4"))
                    {
                        objfrmStatus.Close();
                        KryptonMessageBox.Show(null, sMsgErro + Environment.NewLine + Environment.NewLine + "IMPORTANTE: Tente Buscar Retorno da NFse pois o serviço do Web service está demorando para responder; ", "MENSAGEM DE RETORNO", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else if (objBelRecepcao.objListaNfseRetorno.Count > 0) //Lote Enviado
                    {
                        objfrmStatus.lblMsg.Text = "Alterando Status da Nota para Enviada!!";
                        objfrmStatus.lblMsg.Refresh();
                        objdaoRecepcao.AlteraStatusDaNota(objBelRecepcao.objListaNfseRetorno);
                        objdaoRecepcao.VerificaNotasParaCancelar(objBelRecepcao.objListaNfseRetorno);
                        for (int i = 0; i < dgvNF.RowCount; i++)
                        {
                            //CD_NFSEQ
                            int ienviado = objBelRecepcao.objListaNfseRetorno.Count(lote => lote.IdentificacaoRps.Nfseq == dgvNF["CD_NFSEQ", i].Value.ToString());
                            if (ienviado > 0)
                            {
                                dgvNF["ST_NFE", i].Value = true;
                            }
                        }
                        KryptonMessageBox.Show(null, objBelRecepcao.MontaMsgDeRetornoParaCliente(), "MENSAGEM DE RETORNO", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        EnviaEmail(objBelRecepcao.objListaNfseRetorno);
                    }
                    else
                    {
                        objdaoRecepcao.LimpaRecibo();
                        objfrmStatus.Close();
                        KryptonMessageBox.Show(null, sMsgErro + Environment.NewLine, "MENSAGEM DE RETORNO", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    objfrmStatus.Close();
                }
                else
                {
                    throw new Exception("Selecione apenas uma Nota e o lote ref. a éssa nota será consultado!!");
                }
                VerificaGeneratorLote();
                PopulaDataGridView();
            }
            catch (Exception ex)
            {
                if (objfrmStatus != null)
                {
                    objfrmStatus.Close();
                }
                KryptonMessageBox.Show(null, string.Format(Msg_Padrao.CException, Environment.NewLine) + (ex.InnerException != null ? ex.InnerException.Message : ex.Message).ToString(), "AVISO ", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            finally { cx.Close_Conexao(); }
        }
Пример #9
0
 private void btnEnvio_Click(object sender, EventArgs e)
 {
     try
     {
         AssinaNFeXml objbuscanome = new AssinaNFeXml();
         cert = new X509Certificate2();
         cert = objbuscanome.BuscaNome("");
         belUtil.ValidaCertificado(cert);
         if ((bsGrid.DataSource as List<belPesquisaCCe>).Where(c => c.bSeleciona).Count() > 0)
         {
             belPesquisaCCe objbelPesqEnvio = (bsGrid.DataSource as List<belPesquisaCCe>).FirstOrDefault(c => c.bSeleciona);
             List<belPesquisaCCe> objListaSelect = (bsGrid.DataSource as List<belPesquisaCCe>).Where(c => c.bSeleciona).ToList();
             daoGeraCCe objDaoGeraCCe = new daoGeraCCe(objListaSelect, cert);
             objDaoGeraCCe.GeraXmlEnvio();
             string sRetorno = daoEnviaCCe.TransmiteLoteCCe(objDaoGeraCCe.sXMLfinal, cert);
             string sMessage = objDaoGeraCCe.AnalisaRetornoEnvio(sRetorno);
             hlpMessageBox.ShowAviso(sMessage);
             CarregaGridView();
         }
     }
     catch (Exception ex)
     {
         new HLPexception(ex.Message, ex);
     }
 }
Пример #10
0
        private void ConsultaServico_MS()
        {
            string snfeCabecMsg = NfeCabecMsg();
            XmlDocument xdDadosMsg = NfeDadosMsg();
            AssinaNFeXml BC = new AssinaNFeXml();
            try
            {
                if (Tpamb == 2)
                {
                    HLP.WebService.v2_Homologacao_NFeStatusServico_MS.NfeStatusServico2 ws2 = new HLP.WebService.v2_Homologacao_NFeStatusServico_MS.NfeStatusServico2();
                    HLP.WebService.v2_Homologacao_NFeStatusServico_MS.nfeCabecMsg cabec = new HLP.WebService.v2_Homologacao_NFeStatusServico_MS.nfeCabecMsg();
                    cabec.cUF = Cuf;
                    cabec.versaoDados = _versao;
                    ws2.nfeCabecMsgValue = cabec;
                    ws2.ClientCertificates.Add(Cert);

                    XmlNode xmlDados = null;
                    xmlDados = xdDadosMsg.DocumentElement;

                    string resp = ws2.nfeStatusServicoNF2(xmlDados).OuterXml;

                    XElement Elemento = XElement.Parse(resp);

                    XNamespace xname = "http://www.portalfiscal.inf.br/nfe";

                    // Busca do status da conexao
                    var Status =
                        from b in Elemento.Elements(xname + "cStat")

                        select new  // Depois da query adicionamos propriedades ao var Filme para estarem acessiveis no foreach
                        {
                            Status = (string)b.Value
                        };
                    foreach (var Stat in Status)
                    {
                        this.Cstat = Convert.ToInt16(Stat.Status);
                    }
                    //

                    // Busca do Descricao do Motivo do status                
                    var Motivo =
                        from b in Elemento.Elements(xname + "xMotivo")

                        select new  // Depois da query adicionamos propriedades ao var Filme para estarem acessiveis no foreach
                        {
                            Motivo = (string)b.Value
                        };
                    foreach (var xMotivo in Motivo)
                    {
                        this.Xmotivo = xMotivo.Motivo;
                    }
                    //

                    //Mostra o tempo medio de resposta do site.                
                    var tMed =
                        from b in Elemento.Elements(xname + "tMed")

                        select new  // Depois da query adicionamos propriedades ao var Filme para estarem acessiveis no foreach
                        {
                            TempoMedio = (string)b.Value
                        };
                    foreach (var TempoMedio in tMed)
                    {
                        this.Tmed = Convert.ToInt32(TempoMedio.TempoMedio);
                    }
                    //

                    //Mostra o data e hora do recibo.                
                    var dhRecibo =
                        from b in Elemento.Elements(xname + "dhRecbto")

                        select new  // Depois da query adicionamos propriedades ao var Filme para estarem acessiveis no foreach
                        {
                            datahoraRecibo = (string)b.Value
                        };
                    foreach (var dhrec in dhRecibo)
                    {
                        this.Dhrecibo = Convert.ToDateTime(dhrec.datahoraRecibo);
                    }
                    //

                    //Mostra o data e hora do recibo.                
                    var dhRetorno =
                        from b in Elemento.Elements(xname + "dhRetorno")

                        select new  // Depois da query adicionamos propriedades ao var Filme para estarem acessiveis no foreach
                        {
                            datahoraRetorno = (string)b.Value
                        };
                    foreach (var dhret in dhRetorno)
                    {
                        this.Dhretorno = Convert.ToDateTime(dhret.datahoraRetorno);
                    }
                    // Versão do Aplicativo que processou a consulta
                    var verAplic =
                       from b in Elemento.Elements(xname + "dhRetorno")

                       select new  // Depois da query adicionamos propriedades ao var Filme para estarem acessiveis no foreach
                       {
                           verAplicativo = (string)b.Value
                       };
                    foreach (var v in verAplic)
                    {
                        this.Versao = Convert.ToString(v.verAplicativo);
                    }
                }
                else
                {
                    XNamespace xname = "http://www.portalfiscal.inf.br/nfe";

                    HLP.WebService.v2_Producao_NFeStatusServico_MS.NfeStatusServico2 ws2 = new HLP.WebService.v2_Producao_NFeStatusServico_MS.NfeStatusServico2();
                    HLP.WebService.v2_Producao_NFeStatusServico_MS.nfeCabecMsg cabec = new HLP.WebService.v2_Producao_NFeStatusServico_MS.nfeCabecMsg();
                    cabec.cUF = Cuf;
                    cabec.versaoDados = _versao;
                    ws2.nfeCabecMsgValue = cabec;
                    ws2.ClientCertificates.Add(Cert);

                    XmlNode xmlDados = null;
                    xmlDados = xdDadosMsg.DocumentElement;

                    string resp = ws2.nfeStatusServicoNF2(xmlDados).OuterXml;

                    XElement Elemento = XElement.Parse(resp);


                    // Busca do status da conexao
                    var Status =
                        from b in Elemento.Elements(xname + "cStat")

                        select new  // Depois da query adicionamos propriedades ao var Filme para estarem acessiveis no foreach
                        {
                            Status = (string)b.Value
                        };
                    foreach (var Stat in Status)
                    {
                        this.Cstat = Convert.ToInt16(Stat.Status);
                    }
                    //

                    // Busca do Descricao do Motivo do status                
                    var Motivo =
                        from b in Elemento.Elements(xname + "xMotivo")

                        select new  // Depois da query adicionamos propriedades ao var Filme para estarem acessiveis no foreach
                        {
                            Motivo = (string)b.Value
                        };
                    foreach (var xMotivo in Motivo)
                    {
                        this.Xmotivo = xMotivo.Motivo;
                    }
                    //

                    //Mostra o tempo medio de resposta do site.                
                    var tMed =
                        from b in Elemento.Elements(xname + "tMed")

                        select new  // Depois da query adicionamos propriedades ao var Filme para estarem acessiveis no foreach
                        {
                            TempoMedio = (string)b.Value
                        };
                    foreach (var TempoMedio in tMed)
                    {
                        this.Tmed = Convert.ToInt32(TempoMedio.TempoMedio);
                    }
                    //

                    //Mostra o data e hora do recibo.                
                    var dhRecibo =
                        from b in Elemento.Elements(xname + "dhRecbto")

                        select new  // Depois da query adicionamos propriedades ao var Filme para estarem acessiveis no foreach
                        {
                            datahoraRecibo = (string)b.Value
                        };
                    foreach (var dhrec in dhRecibo)
                    {
                        this.Dhrecibo = Convert.ToDateTime(dhrec.datahoraRecibo);
                    }
                    //

                    //Mostra o data e hora do recibo.                
                    var dhRetorno =
                        from b in Elemento.Elements(xname + "dhRetorno")

                        select new  // Depois da query adicionamos propriedades ao var Filme para estarem acessiveis no foreach
                        {
                            datahoraRetorno = (string)b.Value
                        };
                    foreach (var dhret in dhRetorno)
                    {
                        this.Dhretorno = Convert.ToDateTime(dhret.datahoraRetorno);
                    }
                    //              

                }
            }
            catch (Exception x)
            {
                throw new Exception("Erro no Teste de Conexão - " + x.Message);
            }
        }
Пример #11
0
        /// <summary>
        /// Busca Retorno no Web Service SCAN
        /// </summary>
        private void buscaRetornoSCAN(string UF_Empresa)
        {
            AssinaNFeXml BC = new AssinaNFeXml();
            NfeDadosMsg();
            string sDados = File.OpenText(_spath + "\\" + _seq + "_ped-can.xml").ReadToEnd();

            string sRet = string.Empty;

            if (_tpamb == "1")
            {
                HLP.WebService.v2_SCAN_Producao_NFeCancelamento.NfeCancelamento2 ws2 = new HLP.WebService.v2_SCAN_Producao_NFeCancelamento.NfeCancelamento2();
                HLP.WebService.v2_SCAN_Producao_NFeCancelamento.nfeCabecMsg cabec = new HLP.WebService.v2_SCAN_Producao_NFeCancelamento.nfeCabecMsg();

                cabec.versaoDados = _versaodados;
                belUF objbelUf = new belUF();
                cabec.cUF = objbelUf.RetornaCUF(UF_Empresa);
                ws2.ClientCertificates.Add(_cert);
                ws2.nfeCabecMsgValue = cabec;
                XmlDocument xmlCanc = new XmlDocument();
                xmlCanc.LoadXml(sDados);
                XmlNode xNodeCanc = xmlCanc.DocumentElement;
                _sret = ws2.nfeCancelamentoNF2(xNodeCanc).OuterXml;
            }
            if (_tpamb == "2")
            {
                HLP.WebService.v2_SCAN_Homologacao_NFeCancelamento.NfeCancelamento2 ws2 = new HLP.WebService.v2_SCAN_Homologacao_NFeCancelamento.NfeCancelamento2();
                HLP.WebService.v2_SCAN_Homologacao_NFeCancelamento.nfeCabecMsg cabec = new HLP.WebService.v2_SCAN_Homologacao_NFeCancelamento.nfeCabecMsg();

                cabec.versaoDados = _versaodados;
                belUF objbelUf = new belUF();
                cabec.cUF = objbelUf.RetornaCUF(UF_Empresa);
                ws2.ClientCertificates.Add(_cert);
                ws2.nfeCabecMsgValue = cabec;
                XmlDocument xmlCanc = new XmlDocument();
                xmlCanc.LoadXml(sDados);
                XmlNode xNodeCanc = xmlCanc.DocumentElement;
                _sret = ws2.nfeCancelamentoNF2(xNodeCanc).OuterXml;
            }
        }
Пример #12
0
        public void GeraXmlEnvio()
        {
            try
            {
                AssinaNFeXml Assinatura = new AssinaNFeXml();
                XDocument xdoc = new XDocument();
                XNamespace pf = "http://www.portalfiscal.inf.br/nfe";
                XContainer xContEnvEvento = new XElement(pf + "envEvento", new XAttribute("xmlns", "http://www.portalfiscal.inf.br/nfe"),
                                                                    new XAttribute("versao", objEnvEvento.versao),
                                                                    new XElement(pf + "idLote", objEnvEvento.id));

                //List<string> ListaEventos = new List<string>();
                objXmlsSeparados = new Dictionary<string, string>();
                foreach (var obj in objEnvEvento.evento)
                {
                    XContainer xConEvento = new XElement(pf + "evento", new XAttribute("xmlns", "http://www.portalfiscal.inf.br/nfe"),
                                                                   new XAttribute("versao", obj.versao),
                                                                   new XElement(pf + "infEvento", new XAttribute("Id", obj.idLote),
                                                                       new XElement(pf + "cOrgao", obj.infEvento.cOrgao),
                                                                       new XElement(pf + "tpAmb", obj.infEvento.tpAmb),
                                                                       new XElement(pf + (obj.infEvento.CNPJ != "" ? "CNPJ" : "CPF"), (obj.infEvento.CNPJ != "" ? obj.infEvento.CNPJ : obj.infEvento.CPF)),
                                                                       new XElement(pf + "chNFe", obj.infEvento.chNFe),
                                                                       new XElement(pf + "dhEvento", obj.infEvento.dhEvento),//-02:00
                                                                       new XElement(pf + "tpEvento", obj.infEvento.tpEvento),
                                                                       new XElement(pf + "nSeqEvento", obj.infEvento.nSeqEvento),
                                                                       new XElement(pf + "verEvento", obj.infEvento.verEvento),
                                                                       new XElement(pf + "detEvento", new XAttribute("versao", obj.versao),
                                                                                    new XElement(pf + "descEvento", obj.infEvento.detEvento.descEvento),
                                                                                    new XElement(pf + "xCorrecao", obj.infEvento.detEvento.xCorrecao),
                                                                                    new XElement(pf + "xCondUso", obj.infEvento.detEvento.xCondUso))));

                    //   ListaEventos.Add(Assinatura.ConfigurarArquivo(xConEvento.ToString(), "infEvento", cert));

                    objXmlsSeparados.Add(obj.infEvento.chNFe, Assinatura.ConfigurarArquivo(xConEvento.ToString(), "infEvento", cert));
                }


                string sEventos = "";
                foreach (KeyValuePair<string, string> sInfEvento in objXmlsSeparados)
                {
                    sEventos += sInfEvento.Value;
                    //xContEnvEvento.Add(XElement.Parse(sInfEvento, LoadOptions.PreserveWhitespace));
                }

                sXMLfinal = "<?xml version=\"1.0\" encoding=\"utf-8\"?><envEvento xmlns=\"http://www.portalfiscal.inf.br/nfe\" versao=\"1.00\"><idLote>" + objEnvEvento.id.ToString()
                                + "</idLote>" + sEventos + "</envEvento>";

                #region Valida_Xml|

                HLP.bel.NFe.GeraXml.Globais getschema = new bel.NFe.GeraXml.Globais();

                XmlValidatingReader reader;
                try
                {
                    XmlSchemaCollection myschema = new XmlSchemaCollection();
                    myschema.Add("http://www.portalfiscal.inf.br/nfe", belStaticPastas.SCHEMA_CCE + "\\envCCe_v1.00.xsd");

                    XmlParserContext context = new XmlParserContext(null, null, "", XmlSpace.None);
                    reader = new XmlValidatingReader(sXMLfinal, XmlNodeType.Element, context);
                    reader.ValidationType = ValidationType.Schema;
                    reader.Schemas.Add(myschema);
                    while (reader.Read())
                    {

                    }
                }
                catch (XmlException x)
                {
                    // File.Delete(sPathLote);
                    throw new Exception(x.Message);
                }
                catch (XmlSchemaException x)
                {
                    // File.Delete(sPathLote);
                    throw new Exception(x.Message);
                }
                #endregion




            }
            catch (Exception ex)
            {
                throw ex;
            }

        }
Пример #13
0
        private void Inicializacao()
        {
            try
            {
                belStatic.bNotaServico = false;
                version = objfrmPrincipal.GetType().Assembly.GetName().Version;
                HabilitaBotoes(true);
                AssinaNFeXml objbuscanome = new AssinaNFeXml();
                cert = new X509Certificate2();
                cert = objbuscanome.BuscaNome("");

                if (belUtil.ValidaCertificado(cert))
                {

                    belStatic.bModoContingencia = Convert.ToBoolean(LeRegWin.LeRegConfig("AtivaModuloContingencia"));
                    belStatic.bModoSCAN = Convert.ToBoolean(LeRegWin.LeRegConfig("AtivaModuloScan"));
                    belStatic.iSerieSCAN = (belStatic.bModoSCAN == true ? Convert.ToInt32(LeRegWin.LeRegConfig("SerieScan")) : 0);

                    DirectoryInfo info = new DirectoryInfo(belStaticPastas.CBARRAS);
                    LimparPasta(info);
                    if (belUtil.VerificaSeEstaNaHLP())
                    {
                        belStatic.bDentroHlp = true;
                        KryptonMessageBox.Show(null, "VOCÊ ESTÁ TRABALHANDO NA HLP, VERIFIQUE O AMBIENTE DO SISTEMA DA NFE", "CUIDADO, ATENÇÃO", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        belRegras objbelRegras = new belRegras();
                        objbelRegras.AlteraEmpresaParaHomologacao();
                    }
                    nmEmpresa.Text = belStatic.sNomeEmpresa + " - " + belStatic.codEmpresaNFe;
                    nmStatus.Text = (belStatic.TpAmb == 1 ? "Produção" : "Homologação");

                    this.sVersao = LeRegWin.LeRegConfig("Empresa");
                    CarregaConfiguracoesIniciais(belStatic.codEmpresaNFe);
                    string sTipoImpressao = LeRegWin.LeRegConfig("TipoImpressao");
                    cbxFormDanfe.SelectedIndex = 0;
                    if (sTipoImpressao != "")
                    {
                        cbxFormDanfe.Text = sTipoImpressao;
                    }
                    dtpIni.Text = HLP.Util.Util.GetDateServidor().ToString("dd/MM/yyyy");
                    dtpFim.Text = HLP.Util.Util.GetDateServidor().ToString("dd/MM/yyyy");
                    rbtNaoEnviadas.Checked = true;
                    belStatic.iStatusAtualSistema = 0; // Passa o zero para entrar no método novamente!
                    VerificaStatusSefaz();
                    timerWebServices.Enabled = true; // Ativa a Verificação do Web Service do Estado.                
                    if ((belStatic.iStatusAtualSistema == 1))
                    {
                        VerificaNotasPendentesEnvio();
                    }
                }
                else
                {
                    timerInicializacao.Start();
                }

            }
            catch (Exception ex)
            {
                throw ex;
            }

        }