Example #1
0
        public void CriarNotaApartirDoXml()
        {
            var xml  = XElement.Parse(Properties.Resources.NFe24111208403578000109550010000415051001727279);
            var nota = FabricaNotaFiscal.Criar(xml);

            Assert.AreEqual("NFe24110604385909000166550010000000521001535245", nota.ChaveAcesso);
        }
Example #2
0
        public void CriarNotaApartirDoXmlSemDataSaidaHoraSaida()
        {
            var xml  = XElement.Parse(Properties.Resources.NFe24110604385909000166550010000000531001542290);
            var nota = FabricaNotaFiscal.Criar(xml);

            Assert.AreEqual("NFe24110604385909000166550010000000531001542290", nota.ChaveAcesso);
        }
Example #3
0
        public ResponseServicosNotaFiscal GravarNotaFiscalNoBancoDeDados(XElement xml, string chaveUsuario)
        {
            ResponseServicosNotaFiscal response;

            try
            {
                var usuario = RepositorioUsuario.BuscarUsuarioPorChave(chaveUsuario);
                ValidarUsuario(usuario);

                ValidarXmlDaNota(xml, usuario);

                var nota = FabricaNotaFiscal.Criar(xml, usuario);
                ValidarNotaFiscal(nota);
                SalvarXmlNaPastaDoEmitente(nota, xml);
                RepositorioNota.Incluir(nota);

                var emitente = FabricaParticipante.CriarEmitente(xml);
                RepositorioParticipante.Incluir(emitente);

                var destinatario = FabricaParticipante.CriarDestinatario(xml);
                if (RepositorioParticipante.SelecionarPorCnpjCpf(destinatario.CnpjCpf) == null)
                {
                    RepositorioParticipante.Incluir(destinatario);
                }

                response = new ResponseServicosNotaFiscal(100, "Nota recebida com sucesso");
                return(response);
            }
            catch (ServicosException ex)
            {
                return(ex.Response);
            }
            catch (Exception ex)
            {
                return(response = new ResponseServicosNotaFiscal(501, "erro no servidor " + ex.Message));
            }
        }