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.




#478987 - 08/01/2018 21:42:08

ANGELOATA
ARACATUBA
Cadast. em:Junho/2009


Citação:
:
ANGELO,
Você tem as classes para disponibilizar ?


Nilson... eu coloquei o webservice direto no VStudio  no adicionar referencia de servicos...



  Option Strict Off
Option Explicit On

Imports System
Imports System.ComponentModel
Imports System.Diagnostics
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.Xml.Serialization

'
'Este código-fonte foi gerado automaticamente por Microsoft.VSDesigner, Versão 4.0.30319.42000.
'
Namespace ConsultaLotesSATSEFAZ
    
    '''<remarks/>
    <System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.2053.0"),  _
     System.Diagnostics.DebuggerStepThroughAttribute(),  _
     System.ComponentModel.DesignerCategoryAttribute("code"),  _
     System.Web.Services.WebServiceBindingAttribute(Name:="CfeConsultaLotesSoap", [Namespace]:="http://www.fazenda.sp.gov.br/sat/wsdl/CfeConsultaLotes")>  _
    Partial Public Class CfeConsultaLotes
        Inherits System.Web.Services.Protocols.SoapHttpClientProtocol
        
        Private cfeCabecMsgField As CfeCabecMsgSoapEntity
        
        Private ConsultarLotesEnviadosOperationCompleted As System.Threading.SendOrPostCallback
        
        Private useDefaultCredentialsSetExplicitly As Boolean
        
        '''<remarks/>
        Public Sub New()
            MyBase.New
            Me.Url = Global.BLL.My.MySettings.Default.BLL_ConsultaLotesSATSEFAZ_CfeConsultaLotes
            If (Me.IsLocalFileSystemWebService(Me.Url) = true) Then
                Me.UseDefaultCredentials = true
                Me.useDefaultCredentialsSetExplicitly = false
            Else
                Me.useDefaultCredentialsSetExplicitly = true
            End If
        End Sub
        
        Public Property cfeCabecMsg() As CfeCabecMsgSoapEntity
            Get
                Return Me.cfeCabecMsgField
            End Get
            Set
                Me.cfeCabecMsgField = value
            End Set
        End Property
        
        Public Shadows Property Url() As String
            Get
                Return MyBase.Url
            End Get
            Set
                If (((Me.IsLocalFileSystemWebService(MyBase.Url) = true)  _
                            AndAlso (Me.useDefaultCredentialsSetExplicitly = false))  _
                            AndAlso (Me.IsLocalFileSystemWebService(value) = false)) Then
                    MyBase.UseDefaultCredentials = false
                End If
                MyBase.Url = value
            End Set
        End Property
        
        Public Shadows Property UseDefaultCredentials() As Boolean
            Get
                Return MyBase.UseDefaultCredentials
            End Get
            Set
                MyBase.UseDefaultCredentials = value
                Me.useDefaultCredentialsSetExplicitly = true
            End Set
        End Property
        
        '''<remarks/>
        Public Event ConsultarLotesEnviadosCompleted As ConsultarLotesEnviadosCompletedEventHandler
        
        '''<remarks/>
        <System.Web.Services.Protocols.SoapHeaderAttribute("cfeCabecMsg", Direction:=System.Web.Services.Protocols.SoapHeaderDirection.InOut),  _
         System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://www.fazenda.sp.gov.br/sat/wsdl/CfeConsultar", RequestElementName:="CfeConsultarLotes", RequestNamespace:="http://www.fazenda.sp.gov.br/sat/wsdl/CfeConsultaLotes", ResponseElementName:="CfeConsultarLotesResponse", ResponseNamespace:="http://www.fazenda.sp.gov.br/sat/wsdl/CfeConsultaLotes", Use:=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle:=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)>  _
        Public Function ConsultarLotesEnviados(ByVal cfeDadosMsg As String) As <System.Xml.Serialization.XmlElementAttribute("CfeConsultarLotesResult")> String
            Dim results() As Object = Me.Invoke("ConsultarLotesEnviados", New Object() {cfeDadosMsg})
            Return CType(results(0),String)
        End Function
        
        '''<remarks/>
        Public Overloads Sub ConsultarLotesEnviadosAsync(ByVal cfeDadosMsg As String)
            Me.ConsultarLotesEnviadosAsync(cfeDadosMsg, Nothing)
        End Sub
        
        '''<remarks/>
        Public Overloads Sub ConsultarLotesEnviadosAsync(ByVal cfeDadosMsg As String, ByVal userState As Object)
            If (Me.ConsultarLotesEnviadosOperationCompleted Is Nothing) Then
                Me.ConsultarLotesEnviadosOperationCompleted = AddressOf Me.OnConsultarLotesEnviadosOperationCompleted
            End If
            Me.InvokeAsync("ConsultarLotesEnviados", New Object() {cfeDadosMsg}, Me.ConsultarLotesEnviadosOperationCompleted, userState)
        End Sub
        
        Private Sub OnConsultarLotesEnviadosOperationCompleted(ByVal arg As Object)
            If (Not (Me.ConsultarLotesEnviadosCompletedEvent) Is Nothing) Then
                Dim invokeArgs As System.Web.Services.Protocols.InvokeCompletedEventArgs = CType(arg,System.Web.Services.Protocols.InvokeCompletedEventArgs)
                RaiseEvent ConsultarLotesEnviadosCompleted(Me, New ConsultarLotesEnviadosCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState))
            End If
        End Sub
        
        '''<remarks/>
        Public Shadows Sub CancelAsync(ByVal userState As Object)
            MyBase.CancelAsync(userState)
        End Sub
        
        Private Function IsLocalFileSystemWebService(ByVal url As String) As Boolean
            If ((url Is Nothing)  _
                        OrElse (url Is String.Empty)) Then
                Return false
            End If
            Dim wsUri As System.Uri = New System.Uri(url)
            If ((wsUri.Port >= 1024)  _
                        AndAlso (String.Compare(wsUri.Host, "localHost", System.StringComparison.OrdinalIgnoreCase) = 0)) Then
                Return true
            End If
            Return false
        End Function
    End Class
    
    '''<remarks/>
    <System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.2117.0"),  _
     System.SerializableAttribute(),  _
     System.Diagnostics.DebuggerStepThroughAttribute(),  _
     System.ComponentModel.DesignerCategoryAttribute("code"),  _
     System.Xml.Serialization.XmlTypeAttribute([Namespace]:="http://www.fazenda.sp.gov.br/sat/wsdl/CfeConsultaLotes"),  _
     System.Xml.Serialization.XmlRootAttribute("cfeCabecMsg", [Namespace]:="http://www.fazenda.sp.gov.br/sat/wsdl/CfeConsultaLotes", IsNullable:=false)>  _
    Partial Public Class CfeCabecMsgSoapEntity
        Inherits System.Web.Services.Protocols.SoapHeader
        
        Private cUFField As String
        
        Private versaoDadosField As String
        
        Private anyAttrField() As System.Xml.XmlAttribute
        
        '''<remarks/>
        Public Property cUF() As String
            Get
                Return Me.cUFField
            End Get
            Set
                Me.cUFField = value
            End Set
        End Property
        
        '''<remarks/>
        Public Property versaoDados() As String
            Get
                Return Me.versaoDadosField
            End Get
            Set
                Me.versaoDadosField = value
            End Set
        End Property
        
        '''<remarks/>
        <System.Xml.Serialization.XmlAnyAttributeAttribute()>  _
        Public Property AnyAttr() As System.Xml.XmlAttribute()
            Get
                Return Me.anyAttrField
            End Get
            Set
                Me.anyAttrField = value
            End Set
        End Property
    End Class
    
    '''<remarks/>
    <System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.2053.0")>  _
    Public Delegate Sub ConsultarLotesEnviadosCompletedEventHandler(ByVal sender As Object, ByVal e As ConsultarLotesEnviadosCompletedEventArgs)
    
    '''<remarks/>
    <System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.7.2053.0"),  _
     System.Diagnostics.DebuggerStepThroughAttribute(),  _
     System.ComponentModel.DesignerCategoryAttribute("code")>  _
    Partial Public Class ConsultarLotesEnviadosCompletedEventArgs
        Inherits System.ComponentModel.AsyncCompletedEventArgs
        
        Private results() As Object
        
        Friend Sub New(ByVal results() As Object, ByVal exception As System.Exception, ByVal cancelled As Boolean, ByVal userState As Object)
            MyBase.New(exception, cancelled, userState)
            Me.results = results
        End Sub
        
        '''<remarks/>
        Public ReadOnly Property Result() As String
            Get
                Me.RaiseExceptionIfNecessary
                Return CType(Me.results(0),String)
            End Get
        End Property
    End Class
End Namespace




#479307 - 26/01/2018 09:11:53

MFLAVIO
CAMPINAS
Cadast. em:Maio/2009


Pessoal alguém esta conseguindo Ativar SAT no Estado de SP?

desde ontem que não consigo ativar só da erro 04099

Deus e o maior dos Programadores, ele criou tudo em liguagem visual
                                           .... e viu Deus que era bom


#479308 - 26/01/2018 09:15:04

FUTURA
.
Cadast. em:Maio/2004


MFLAVIO,  a ativação esta suspensa entre 23/01 até 02/02. eu recebi um email da dimep, informando...



#479310 - 26/01/2018 10:00:28

FUTURA
.
Cadast. em:Maio/2004


Citação:
:
MFLAVIO,  a ativação esta suspensa entre 23/01 até 02/02. eu recebi um email da dimep, informando...


acessei agora pouco e vi que ja não esta mais com o período que informei, ja estaria normalizado.



 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