Example #1
0
        public void CriarEnviarCTeConsultaReciboAutomatico2e3()
        {
            var config = new ConfiguracaoDao().BuscarConfiguracao();

            CarregarConfiguracoes(config);

            var cteEletronico = new CteEletronico();

            #region infCte

            cteEletronico.infCte        = new infCte();
            cteEletronico.infCte.versao = config.ConfigWebService.Versao;

            #endregion

            #region ide

            cteEletronico.infCte.ide       = new ide();
            cteEletronico.infCte.ide.cUF   = config.Empresa.SiglaUf;
            cteEletronico.infCte.ide.cCT   = GetRandom();
            cteEletronico.infCte.ide.CFOP  = 5353;
            cteEletronico.infCte.ide.natOp = "PRESTAÇÃO DE SERVICO DE TRANSPORTE CT-E EXEMPLO";

            if (config.ConfigWebService.Versao == versao.ve200)
            {
                cteEletronico.infCte.ide.forPag = forPag.Pago;
            }
            cteEletronico.infCte.ide.mod     = ModeloDocumento.CTe;
            cteEletronico.infCte.ide.serie   = config.ConfigWebService.Serie;
            cteEletronico.infCte.ide.nCT     = config.ConfigWebService.Numeracao;
            cteEletronico.infCte.ide.dhEmi   = DateTime.Now;
            cteEletronico.infCte.ide.tpImp   = tpImp.Retrado;
            cteEletronico.infCte.ide.tpEmis  = tpEmis.teNormal;
            cteEletronico.infCte.ide.tpAmb   = config.ConfigWebService.Ambiente; // o serviço adicionara automaticamente isso para você
            cteEletronico.infCte.ide.tpCTe   = tpCTe.Normal;
            cteEletronico.infCte.ide.procEmi = procEmi.AplicativoContribuinte;
            cteEletronico.infCte.ide.verProc = "0.0.0.1";
            cteEletronico.infCte.ide.cMunEnv = config.Empresa.CodigoIbgeMunicipio;
            cteEletronico.infCte.ide.xMunEnv = config.Empresa.NomeMunicipio;
            cteEletronico.infCte.ide.UFEnv   = config.Empresa.SiglaUf;
            cteEletronico.infCte.ide.modal   = modal.rodoviario;
            cteEletronico.infCte.ide.tpServ  = tpServ.normal;
            cteEletronico.infCte.ide.cMunIni = config.Empresa.CodigoIbgeMunicipio;
            cteEletronico.infCte.ide.xMunIni = config.Empresa.NomeMunicipio;
            cteEletronico.infCte.ide.UFIni   = config.Empresa.SiglaUf;
            cteEletronico.infCte.ide.cMunFim = config.Empresa.CodigoIbgeMunicipio;
            cteEletronico.infCte.ide.xMunFim = config.Empresa.NomeMunicipio;
            cteEletronico.infCte.ide.UFFim   = config.Empresa.SiglaUf;
            cteEletronico.infCte.ide.retira  = retira.Nao;

            if (config.ConfigWebService.Versao == versao.ve300)
            {
                cteEletronico.infCte.ide.indIEToma = indIEToma.ContribuinteIcms;
            }

            if (config.ConfigWebService.Versao == versao.ve200)
            {
                cteEletronico.infCte.ide.tomaBase3 = new toma03
                {
                    toma = toma.Remetente
                };
            }

            if (config.ConfigWebService.Versao == versao.ve300)
            {
                cteEletronico.infCte.ide.tomaBase3 = new toma3
                {
                    toma = toma.Remetente
                };
            }


            #endregion

            #region emit

            cteEletronico.infCte.emit       = new emit();
            cteEletronico.infCte.emit.CNPJ  = config.Empresa.Cnpj;
            cteEletronico.infCte.emit.IE    = config.Empresa.InscricaoEstadual;
            cteEletronico.infCte.emit.xNome = config.Empresa.Nome;
            cteEletronico.infCte.emit.xFant = config.Empresa.NomeFantasia;

            cteEletronico.infCte.emit.enderEmit         = new enderEmit();
            cteEletronico.infCte.emit.enderEmit.xLgr    = config.Empresa.Logradouro;
            cteEletronico.infCte.emit.enderEmit.nro     = config.Empresa.Numero;
            cteEletronico.infCte.emit.enderEmit.xCpl    = config.Empresa.Complemento;
            cteEletronico.infCte.emit.enderEmit.xBairro = config.Empresa.Bairro;
            cteEletronico.infCte.emit.enderEmit.cMun    = config.Empresa.CodigoIbgeMunicipio;
            cteEletronico.infCte.emit.enderEmit.xMun    = config.Empresa.NomeMunicipio;
            cteEletronico.infCte.emit.enderEmit.CEP     = long.Parse(config.Empresa.Cep);
            cteEletronico.infCte.emit.enderEmit.UF      = config.Empresa.SiglaUf;
            cteEletronico.infCte.emit.enderEmit.fone    = config.Empresa.Telefone;

            #endregion

            // Remetente , no caso adicionei os mesmos dados do emitente.. mas seriam o do remente.
            #region rem
            cteEletronico.infCte.rem       = new rem();
            cteEletronico.infCte.rem.CNPJ  = config.Empresa.Cnpj;
            cteEletronico.infCte.rem.IE    = config.Empresa.InscricaoEstadual;
            cteEletronico.infCte.rem.xNome = config.Empresa.Nome;
            cteEletronico.infCte.rem.xFant = config.Empresa.NomeFantasia;
            cteEletronico.infCte.rem.fone  = config.Empresa.Telefone;

            cteEletronico.infCte.rem.enderReme         = new enderReme();
            cteEletronico.infCte.rem.enderReme.xLgr    = config.Empresa.Logradouro;
            cteEletronico.infCte.rem.enderReme.nro     = config.Empresa.Numero;
            cteEletronico.infCte.rem.enderReme.xCpl    = config.Empresa.Complemento;
            cteEletronico.infCte.rem.enderReme.xBairro = config.Empresa.Bairro;
            cteEletronico.infCte.rem.enderReme.cMun    = config.Empresa.CodigoIbgeMunicipio;
            cteEletronico.infCte.rem.enderReme.xMun    = config.Empresa.NomeMunicipio;
            cteEletronico.infCte.rem.enderReme.CEP     = long.Parse(config.Empresa.Cep);
            cteEletronico.infCte.rem.enderReme.UF      = config.Empresa.SiglaUf;
            #endregion

            // Destinatário
            #region dest

            cteEletronico.infCte.dest       = new dest();
            cteEletronico.infCte.dest.CNPJ  = config.Empresa.Cnpj;
            cteEletronico.infCte.dest.IE    = config.Empresa.InscricaoEstadual;
            cteEletronico.infCte.dest.xNome = config.Empresa.Nome;
            cteEletronico.infCte.dest.fone  = config.Empresa.Telefone;

            cteEletronico.infCte.dest.enderDest         = new enderDest();
            cteEletronico.infCte.dest.enderDest.xLgr    = config.Empresa.Logradouro;
            cteEletronico.infCte.dest.enderDest.nro     = config.Empresa.Numero;
            cteEletronico.infCte.dest.enderDest.xCpl    = config.Empresa.Complemento;
            cteEletronico.infCte.dest.enderDest.xBairro = config.Empresa.Bairro;
            cteEletronico.infCte.dest.enderDest.cMun    = config.Empresa.CodigoIbgeMunicipio;
            cteEletronico.infCte.dest.enderDest.xMun    = config.Empresa.NomeMunicipio;
            cteEletronico.infCte.dest.enderDest.CEP     = long.Parse(config.Empresa.Cep);
            cteEletronico.infCte.dest.enderDest.UF      = config.Empresa.SiglaUf;

            #endregion

            #region vPrest

            cteEletronico.infCte.vPrest         = new vPrest();
            cteEletronico.infCte.vPrest.vTPrest = 100m;
            cteEletronico.infCte.vPrest.vRec    = 100m;

            #endregion

            #region imp

            cteEletronico.infCte.imp      = new imp();
            cteEletronico.infCte.imp.ICMS = new ICMS();

            var icmsSimplesNacional = new ICMSSN();

            cteEletronico.infCte.imp.ICMS.TipoICMS = icmsSimplesNacional;

            if (config.ConfigWebService.Versao == versao.ve300)
            {
                icmsSimplesNacional.CST = CST.ICMS90;
            }

            #endregion

            #region infCTeNorm

            cteEletronico.infCte.infCTeNorm                  = new infCTeNorm();
            cteEletronico.infCte.infCTeNorm.infCarga         = new infCarga();
            cteEletronico.infCte.infCTeNorm.infCarga.vCarga  = 1000m;
            cteEletronico.infCte.infCTeNorm.infCarga.proPred = "Linguiça com piqui";

            cteEletronico.infCte.infCTeNorm.infCarga.infQ = new List <infQ>();
            cteEletronico.infCte.infCTeNorm.infCarga.infQ.Add(new infQ
            {
                cUnid  = cUnid.KG,
                qCarga = 10000,
                tpMed  = "quilos gramas"
            });

            cteEletronico.infCte.infCTeNorm.infDoc        = new infDoc();
            cteEletronico.infCte.infCTeNorm.infDoc.infNFe = new List <infNFe>();
            cteEletronico.infCte.infCTeNorm.infDoc.infNFe.Add(new infNFe
            {
                chave = "52161021025760000123550010000087341557247948"
            });

            if (config.ConfigWebService.Versao == versao.ve200)
            {
                cteEletronico.infCte.infCTeNorm.seg = new List <seg>();
                cteEletronico.infCte.infCTeNorm.seg.Add(new seg
                {
                    respSeg = respSeg.Destinatario
                });
            }

            cteEletronico.infCte.infCTeNorm.infModal = new infModal();

            if (config.ConfigWebService.Versao == versao.ve200)
            {
                cteEletronico.infCte.infCTeNorm.infModal.versaoModal = versaoModal.veM200;
            }

            if (config.ConfigWebService.Versao == versao.ve300)
            {
                cteEletronico.infCte.infCTeNorm.infModal.versaoModal = versaoModal.veM300;
            }

            var rodoviario = new rodo();
            rodoviario.RNTRC = config.Empresa.RNTRC;

            if (config.ConfigWebService.Versao == versao.ve200)
            {
                rodoviario.dPrev = DateTime.Now;
                rodoviario.lota  = lota.Nao;
            }


            cteEletronico.infCte.infCTeNorm.infModal.ContainerModal = rodoviario;
            #endregion


            var numeroLote = InputBoxTuche("Número Lote");


            var servico = new ServicoEnviarCte();


            var retorno = servico.Enviar(Convert.ToInt32(numeroLote), cteEletronico);


            string xmlRetorno = string.Empty;

            if (retorno.CteProc != null)
            {
                xmlRetorno = retorno.CteProc.ObterXmlString();
            }

            if (retorno.RetConsReciCTe.protCTe[0].infProt.cStat != 100)
            {
                xmlRetorno = retorno.RetConsReciCTe.RetornoXmlString;
            }

            OnSucessoSync(new RetornoEEnvio(retorno.RetEnviCte.EnvioXmlString, xmlRetorno));

            config.ConfigWebService.Numeracao++;
            new ConfiguracaoDao().SalvarConfiguracao(config);
        }
Example #2
0
        private static async Task CriarEnviarCTeConsultaReciboAutomatico2e3()
        {
            var config = new ConfiguracaoDao().BuscarConfiguracao();
            //CarregarConfiguracoes(config);
            var configuracaoServico = MontarConfiguracoes(config);

            #region infCte

            var cteEletronico = new CteEletronico
            {
                infCte = new infCte
                {
                    versao = config.ConfigWebService.Versao,
                    ide    = new ide(configuracaoServico)
                    {
                        cUF   = config.Empresa.SiglaUf,
                        cCT   = GetRandom(),
                        CFOP  = 5353,
                        natOp = "PRESTAÇÃO DE SERVICO DE TRANSPORTE CT-E EXEMPLO"
                    }
                }
            };

            #endregion

            #region ide

            if (config.ConfigWebService.Versao == versao.ve200)
            {
                cteEletronico.infCte.ide.forPag = forPag.Pago;
            }
            cteEletronico.infCte.ide.mod     = ModeloDocumento.CTe;
            cteEletronico.infCte.ide.serie   = config.ConfigWebService.Serie;
            cteEletronico.infCte.ide.nCT     = config.ConfigWebService.Numeracao;
            cteEletronico.infCte.ide.dhEmi   = DateTimeOffset.Now;
            cteEletronico.infCte.ide.tpImp   = tpImp.Retrado;
            cteEletronico.infCte.ide.tpEmis  = tpEmis.teNormal;
            cteEletronico.infCte.ide.tpAmb   = config.ConfigWebService.Ambiente; // o serviço adicionara automaticamente isso para você
            cteEletronico.infCte.ide.tpCTe   = tpCTe.Normal;
            cteEletronico.infCte.ide.procEmi = procEmi.AplicativoContribuinte;
            cteEletronico.infCte.ide.verProc = "0.0.0.1";
            cteEletronico.infCte.ide.cMunEnv = config.Empresa.CodigoIbgeMunicipio;
            cteEletronico.infCte.ide.xMunEnv = config.Empresa.NomeMunicipio;
            cteEletronico.infCte.ide.UFEnv   = config.Empresa.SiglaUf;
            cteEletronico.infCte.ide.modal   = modal.rodoviario;
            cteEletronico.infCte.ide.tpServ  = tpServ.normal;
            cteEletronico.infCte.ide.cMunIni = config.Empresa.CodigoIbgeMunicipio;
            cteEletronico.infCte.ide.xMunIni = config.Empresa.NomeMunicipio;
            cteEletronico.infCte.ide.UFIni   = config.Empresa.SiglaUf;
            cteEletronico.infCte.ide.cMunFim = config.Empresa.CodigoIbgeMunicipio;
            cteEletronico.infCte.ide.xMunFim = config.Empresa.NomeMunicipio;
            cteEletronico.infCte.ide.UFFim   = config.Empresa.SiglaUf;
            cteEletronico.infCte.ide.retira  = retira.Nao;

            switch (config.ConfigWebService.Versao)
            {
            case versao.ve300:
                cteEletronico.infCte.ide.indIEToma = indIEToma.ContribuinteIcms;
                cteEletronico.infCte.ide.tomaBase3 = new toma3
                {
                    toma = toma.Remetente
                };
                break;

            case versao.ve200:
                cteEletronico.infCte.ide.tomaBase3 = new toma03
                {
                    toma = toma.Remetente
                };
                break;
            }

            #endregion

            #region emit

            cteEletronico.infCte.emit = new emit
            {
                CNPJ      = config.Empresa.Cnpj,
                IE        = config.Empresa.InscricaoEstadual,
                xNome     = config.Empresa.Nome,
                xFant     = config.Empresa.NomeFantasia,
                enderEmit = new enderEmit
                {
                    xLgr    = config.Empresa.Logradouro,
                    nro     = config.Empresa.Numero,
                    xCpl    = config.Empresa.Complemento,
                    xBairro = config.Empresa.Bairro,
                    cMun    = config.Empresa.CodigoIbgeMunicipio,
                    xMun    = config.Empresa.NomeMunicipio,
                    CEP     = long.Parse(config.Empresa.Cep),
                    UF      = config.Empresa.SiglaUf,
                    fone    = config.Empresa.Telefone
                }
            };

            #endregion

            // Remetente , no caso adicionei os mesmos dados do emitente.. mas seriam o do remente.

            #region rem

            cteEletronico.infCte.rem = new rem
            {
                CNPJ      = config.Empresa.Cnpj,
                IE        = config.Empresa.InscricaoEstadual,
                xNome     = config.Empresa.Nome,
                xFant     = config.Empresa.NomeFantasia,
                fone      = config.Empresa.Telefone,
                enderReme = new enderReme
                {
                    xLgr    = config.Empresa.Logradouro,
                    nro     = config.Empresa.Numero,
                    xCpl    = config.Empresa.Complemento,
                    xBairro = config.Empresa.Bairro,
                    cMun    = config.Empresa.CodigoIbgeMunicipio,
                    xMun    = config.Empresa.NomeMunicipio,
                    CEP     = long.Parse(config.Empresa.Cep),
                    UF      = config.Empresa.SiglaUf
                }
            };

            #endregion

            // Destinatário

            #region dest

            cteEletronico.infCte.dest = new dest
            {
                CNPJ      = config.Empresa.Cnpj,
                IE        = config.Empresa.InscricaoEstadual,
                xNome     = config.Empresa.Nome,
                fone      = config.Empresa.Telefone,
                enderDest = new enderDest
                {
                    xLgr    = config.Empresa.Logradouro,
                    nro     = config.Empresa.Numero,
                    xCpl    = config.Empresa.Complemento,
                    xBairro = config.Empresa.Bairro,
                    cMun    = config.Empresa.CodigoIbgeMunicipio,
                    xMun    = config.Empresa.NomeMunicipio,
                    CEP     = long.Parse(config.Empresa.Cep),
                    UF      = config.Empresa.SiglaUf
                }
            };

            #endregion

            #region vPrest

            cteEletronico.infCte.vPrest = new vPrest {
                vTPrest = 100m, vRec = 100m
            };

            #endregion

            #region imp

            cteEletronico.infCte.imp = new imp {
                ICMS = new ICMS()
            };

            var icmsSimplesNacional = new ICMSSN();

            cteEletronico.infCte.imp.ICMS.TipoICMS = icmsSimplesNacional;

            if (config.ConfigWebService.Versao == versao.ve300)
            {
                icmsSimplesNacional.CST = CST.ICMS90;
            }

            #endregion

            #region infCTeNorm

            cteEletronico.infCte.infCTeNorm = new infCTeNorm
            {
                infCarga = new infCarga
                {
                    vCarga  = 1000m,
                    proPred = "Linguiça com piqui",
                    infQ    = new List <infQ> {
                        new infQ {
                            cUnid = cUnid.KG, qCarga = 10000, tpMed = "quilos gramas"
                        }
                    }
                }
            };


            cteEletronico.infCte.infCTeNorm.infDoc = new infDoc
            {
                infNFe = new List <infNFe> {
                    new infNFe {
                        chave = "52161021025760000123550010000087341557247948"
                    }
                }
            };

            if (config.ConfigWebService.Versao == versao.ve200)
            {
                cteEletronico.infCte.infCTeNorm.seg = new List <seg> {
                    new seg {
                        respSeg = respSeg.Destinatario
                    }
                }
            }
            ;

            cteEletronico.infCte.infCTeNorm.infModal = new infModal();

            switch (config.ConfigWebService.Versao)
            {
            case versao.ve200:
                cteEletronico.infCte.infCTeNorm.infModal.versaoModal = versaoModal.veM200;
                break;

            case versao.ve300:
                cteEletronico.infCte.infCTeNorm.infModal.versaoModal = versaoModal.veM300;
                break;
            }

            var rodoviario = new rodo {
                RNTRC = config.Empresa.RNTRC
            };

            if (config.ConfigWebService.Versao == versao.ve200)
            {
                rodoviario.dPrev = DateTime.Now;
                rodoviario.lota  = lota.Nao;
            }


            cteEletronico.infCte.infCTeNorm.infModal.ContainerModal = rodoviario;

            #endregion


            var numeroLote = RequisitarInput("Número Lote");

            var servico = new ServicoEnviarCte();

            var retorno = await servico.EnviarAsync(Convert.ToInt32(numeroLote), cteEletronico, configuracaoServico);

            var xmlRetorno = string.Empty;

            if (retorno.CteProc != null)
            {
                xmlRetorno = retorno.CteProc.ObterXmlString();
            }

            if (retorno.RetConsReciCTe.protCTe[0].infProt.cStat != 100)
            {
                xmlRetorno = retorno.RetConsReciCTe.RetornoXmlString;
            }

            OnSucessoSync(new RetornoEEnvio(retorno.RetEnviCte.EnvioXmlString, xmlRetorno));

            config.ConfigWebService.Numeracao++;
            new ConfiguracaoDao().SalvarConfiguracao(config);
        }