PROJETO S@T-FISCAL

 Tópico anterior Próximo tópico Novo tópico

PROJETO S@T-FISCAL

VB / VBA

 Compartilhe  Compartilhe  Compartilhe
#478306 - 06/12/2017 13:57:55

ANGELOATA
ARACATUBA
Cadast. em:Junho/2009


Citação:
:
Pessoal alguem implementou o webservice:  https://wssathomolog.fazenda.sp.gov.br/CFeConsultarLotes/CfeConsultarLotes.asmx para a consulta de os cupons foram integrados com o SEFAZ?

Se sim alguem tem o exemplo:


Consegui fazer aqui... se alguem quiser o codigo....



     Public Shared Function CfeConsultaLotes() As String()

        Dim tDadosMsg As New XmlDocument,
            tXMLretorno As New XDocument,
            pxmlnscfe As XNamespace = "http://www.fazenda.sp.gov.br/sat",
            tVersaoLeiaute As String = "0.07"

        Dim CFeServico As New ConsultaLotesSATSEFAZ.CfeConsultaLotes,
            CFeCabecMsg As New ConsultaLotesSATSEFAZ.CfeCabecMsgSoapEntity

        '*** Comunicação com o WebService ***
        Try


            '*** Inicia o XML
            Dim xdoc As New XDocument(New XDeclaration("1.0", "UTF-8", String.Empty),
                                      New XElement(pxmlnscfe + "consLote",
                                                   New XAttribute("xmlns", pxmlnscfe.NamespaceName),
                                                   New XAttribute("versao", tVersaoLeiaute),
                                                   New XElement(pxmlnscfe + "nserieSAT", "999999999"),
                                                   New XElement(pxmlnscfe + "dhInicial", "01042015000000"),
                                                   New XElement(pxmlnscfe + "dhFinal", "30042015004400"),
                                                   New XElement(pxmlnscfe + "chaveSeguranca", "24bb6087-3a03-4581-9b1f-4e8332879369")
                                                  ))

            '*** Monta a Mensagem de Envio para o WebService ***
            CFeCabecMsg.versaoDados = tVersaoLeiaute
            CFeCabecMsg.cUF = "35"

            CFeServico.cfeCabecMsg = CFeCabecMsg
            CFeServico.Timeout = 100000
            CFeServico.SoapVersion = SoapProtocolVersion.Soap12
            CFeServico.Url = "https://wssatsp.fazenda.sp.gov.br/CfeConsultarLotes/CfeConsultarLotes.asmx"

            
            tDadosMsg.LoadXml(Funcoes.RemoveQuebraXML(xdoc.ToString))


            '*** Recebe o Retorno do WebService ***
            tXMLretorno = XDocument.Parse(CFeServico.ConsultarLotesEnviados(tDadosMsg.OuterXml))


            '*** Verifica o Retorno do WebService ***
            Dim tMotivoSEFAZ As String = ""

            Dim t_qretConsStatServ = From c In tXMLretorno.Descendants("resLote")
                                            Select c

            For Each tRegProtocolo In t_qretConsStatServ


                Try

                    tMotivoSEFAZ = tRegProtocolo.Element("Mensagem")

                Catch ex As Exception

                    tMotivoSEFAZ = ""

                End Try

                If tMotivoSEFAZ.Trim <> "" Then

                    Return {"999", tMotivoSEFAZ, "", ""}

                End If

                '*** Tratamento dos CF-e´s ***

            Next

        Catch ex As Exception

            Return {"999", ex.Message.Trim, "", ""}

        End Try

        Return {"000", "", "", ""}

    End Function




#478317 - 07/12/2017 09:57:55

NILSONTRES
SAO PAULO
Cadast. em:Março/2012


ANGELO,
Você tem as classes para disponibilizar ?



#478348 - 08/12/2017 10:36:20

FUTURA
.
Cadast. em:Maio/2004


Pessoal, existe uma maneira de testar se o SAT esta ativo ?, em alguns casos, da conflito de portas no windows, ou perde a instalação do driver... qual comando eu poderia executar para gerar um aviso ao usuário ?, teria como, ou só no tratamento de erro mesmo ?




#478355 - 08/12/2017 14:07:48

NILSONTRES
SAO PAULO
Cadast. em:Março/2012


Última edição em 08/12/2017 14:10:17 por NILSONTRES

FUTURA,
Citação:
  Pessoal, existe uma maneira de testar se o SAT esta ativo ?, em alguns casos, da conflito de portas no windows, ou perde a instalação do driver... qual comando eu poderia executar para gerar um aviso ao usuário ?, teria como, ou só no tratamento de erro mesmo ?

Utilize a função:ConsultarSAT da dll.

Select Case RetornodaConsulta
            Case "08098"
                Inativo
               ' RichTextBox1.ForeColor = Color.Red
               ' RichTextBox1.Text = "Inativo ou Fora de Operação"
            Case "08000"
                SatAtivo
                'RichTextBox1.Text = "OPERANTE"
            
        End Select




#478356 - 08/12/2017 15:39:02

FUTURA
.
Cadast. em:Maio/2004


Nilson, eu tenho programado no sistema, todas as funções, mas pelo menos no meu micro que é windows 10, se eu desligar o sat, e tentar uma consulta, não entra nem no tratamento de erro, derruba o sistema direto... vou testar em um micro com win7.



#478357 - 08/12/2017 15:51:14

NILSONTRES
SAO PAULO
Cadast. em:Março/2012


Última edição em 08/12/2017 15:52:28 por NILSONTRES

Sim, se vc desligar o Sat, ira retornar um erro de porta não acessível, algo assim, dai vc tem que tratar o erro.
No meu sistema, ao iniciar, de cara ele já faz a consulta da ultima comunicação com a sefaz, isso para alertar o cliente que ele não esta se comunicando com a sefaz, alertando que ele não pode ficar mais de 10 dias, a mensagem começa a aparecer com sete dias, e fica até o cliente resolver o problema. Caso esteja desligado eu passo essa etapa ignorando os erros, nesse caso o cliente entra na tela de caixa, já no load da tela de caixa faço uma consulta Sat, se não estiver operante, bloqueio as vendas. Isso tanto faz o Sistema operacional.




 Tópico anterior Próximo tópico Novo tópico


Para responder este tópico o login é requerido
Se você já possui uma conta de usuário por favor faça seu login
Se você não possui uma conta de usuário use a opção Criar usuário