Beispiel #1
0
        public TRetInutNFe Inutilizar(int inicio, int final, int serie, string justificativa)
        {
            if (Configuracao == null)
            {
                return(null);
            }

            if (String.IsNullOrEmpty(Configuracao.CodUF.ToString()))
            {
                return(null);
            }

            if (String.IsNullOrEmpty(Configuracao.Versao))
            {
                return(null);
            }

            var inutilizacao = new TInutNFe
            {
                infInut =
                {
                    ano    = DateTime.Now.Year.ToString(_ptBr),
                    CNPJ   = Configuracao.Emitente.Item,
                    mod    = ModeloDocumento.NFe,
                    serie  = serie.ToString(_ptBr),
                    nNFIni = inicio.ToString(_ptBr),
                    nNFFin = final.ToString(_ptBr)
                }
            };


            var chave = new StringBuilder();

            chave.Append(Configuracao.CodUF);
            chave.Append(inutilizacao.infInut.ano);
            chave.Append(inutilizacao.infInut.CNPJ);
            chave.Append(inutilizacao.infInut.mod);
            chave.Append(string.Format("{0:000}", Convert.ToInt32(inutilizacao.infInut.serie)));
            chave.Append(string.Format("{0:000000000}", Convert.ToInt32(inutilizacao.infInut.nNFIni)));
            chave.Append(string.Format("{0:000000000}", Convert.ToInt32(inutilizacao.infInut.nNFFin)));


            inutilizacao.infInut.Id    = string.Format("ID{0}", chave);
            inutilizacao.infInut.xServ = TInutNFeInfInutXServ.INUTILIZAR;
            inutilizacao.infInut.xJust = justificativa;

            return(Inutilizar(inutilizacao));
        }
Beispiel #2
0
        public TRetInutNFe InutilizaNumeracao(TInutNFe InutNFe, X509Certificate2 pCertificado, TAmb ambiente)
        {
            C_WebService.ListaUrl listaURL = default(C_WebService.ListaUrl);
            string arqRetInut = _PastaLog + InutNFe.infInut.ano + InutNFe.infInut.CNPJ + InutNFe.infInut.mod + InutNFe.infInut.serie + InutNFe.infInut.nNFIni + InutNFe.infInut.nNFFin + "-inu.xml";
            string arqPedInut = _PastaLog + InutNFe.infInut.cUF + InutNFe.infInut.ano + InutNFe.infInut.CNPJ + InutNFe.infInut.mod + InutNFe.infInut.serie + InutNFe.infInut.nNFIni + InutNFe.infInut.nNFFin + "-ped-inu.xml";

            listaURL = WsUrls.BuscaURL(InutNFe.infInut.cUF, ambiente);

            XmlDocument xmldoc = new XmlDocument();

            xmldoc.LoadXml(Funcoes.RemoveNameSpaceFromXml(InutNFe.Serialize()));
            xmldoc = CertificadoDigital.Assinar(xmldoc, "infInut", pCertificado);
            xmldoc.Save(arqPedInut);

            try
            {
                Inutilizacao2.nfeCabecMsg      cab   = new Inutilizacao2.nfeCabecMsg();
                Inutilizacao2.NfeInutilizacao2 wsMsg = default(Inutilizacao2.NfeInutilizacao2);

                // UF E VERSÃO DO CABEÇALHO
                cab.cUF         = PegarCodigoUF(InutNFe.infInut.cUF);
                cab.versaoDados = InutNFe.versao;

                //CABEÇALHO USADA PARA ENVIO DE LOTE
                wsMsg = new Inutilizacao2.NfeInutilizacao2(listaURL.UrlNfeInutilizacao);
                wsMsg.nfeCabecMsgValue = cab;
                wsMsg.Timeout          = 100000;
                wsMsg.ClientCertificates.Add(pCertificado);
                wsMsg.SoapVersion = SoapProtocolVersion.Soap12;

                //RETORNO DA SEFAZ
                XmlNode     strRetorno = wsMsg.nfeInutilizacaoNF2(xmldoc);
                XmlDocument xmlRetorno = new XmlDocument();
                xmlRetorno.LoadXml(strRetorno.OuterXml);
                xmlRetorno.Save(arqRetInut);

                TRetInutNFe retInutNFe = new TRetInutNFe();
                retInutNFe = TRetInutNFe.LoadFromFile(arqRetInut);

                return(retInutNFe);
            }
            catch (Exception ex)
            {
                throw new System.InvalidOperationException("Erro ao inutilizar numeração. Erro: " + ex.Message);
            }
        }
Beispiel #3
0
        private TRetInutNFe Inutilizar(TInutNFe inutilizacao)
        {
            var ws = new C_WebService(Configuracao.PastaLog);

            return(ws.InutilizaNumeracao(inutilizacao, Certificado, Configuracao.Ambiente));
        }
Beispiel #4
0
        private XmlDocument GerarXml(string v, X509Certificate2 certificado)
        {
            XmlDocument xmlInutNFe = new XmlDocument();

            xmlInutNFe.LoadXml(SOAP_Envelopes.NFE_Inutirilizacao);

            TInutNFe        inutNFe  = new TInutNFe();
            TInutNFeInfInut infInput = inutNFe.infInut = new TInutNFeInfInut();


            string cUF = string.Format("Item{0}", "43");

            infInput.cUF = (TCodUfIBGE)Enum.Parse(typeof(TCodUfIBGE), cUF);
            infInput.ano = DateTime.Now.ToString("yy");
            string chave = "43" + DateTime.Now.ToString("yy") + textCNPJ.Text + "55" + textSerie.Text
                           + text1.Text.PadLeft(9, '0') + text2.Text.PadLeft(9, '0');

            //Identificador da TAG a ser assinada formada com
            //Código da UF + Ano (2 posições) + CNPJ + modelo + série + nro inicial e nro final precedida do literal “ID”
            string id = string.Format("ID{0}", chave);

            infInput.Id = id;

            string cnpj = textCNPJ.Text;

            infInput.CNPJ = cnpj.PadLeft(14, '0'); //PadLeft é desnecessário, mas por segurança estou usando.

            string mod = string.Format("Item{0}", "55");

            infInput.mod = (TMod)Enum.Parse(typeof(TMod), mod);

            //infInput.mod = TMod.Item55;

            infInput.nNFFin = text2.Text;
            infInput.nNFIni = text1.Text;

            string serie = textSerie.Text;

            int serieNum = Convert.ToInt32(serie);

            infInput.serie = serieNum.ToString();

            string tpAmb = string.Format("Item{0}", "1");

            infInput.tpAmb = (TAmb)Enum.Parse(typeof(TAmb), tpAmb);


            infInput.xJust = textJust.Text;
            infInput.xServ = TInutNFeInfInutXServ.INUTILIZAR;
            XmlDocument xmlNFE = Serializacao.Serializar <TInutNFe>(inutNFe);

            XmlElement xmlAssinatura = AssinarXML.AssinarXmlNfe(xmlNFE, "infInut", certificado);
            XmlNode    nodeInutNFe   = xmlInutNFe.GetElementsByTagName("inutNFe")[0];

            if (nodeInutNFe != null)
            {
                nodeInutNFe.InnerXml  = xmlNFE.GetElementsByTagName("infInut")[0].OuterXml;
                nodeInutNFe.InnerXml += xmlAssinatura.OuterXml;
            }

            return(xmlInutNFe);
        }