Módulo satcfe.base
¶
-
class
satcfe.base.
BibliotecaSAT
(caminho, convencao=None)¶ Configura a localização da biblioteca que efetivamente acessará o equipamento SAT. A biblioteca deverá ser uma DLL (dynamic linked library, em sistemas Microsoft Windows) ou uma shared library em sistemas baseados no UNIX ou GNU/Linux.
Parâmetros: - caminho (string) – Caminho completo para a biblioteca SAT.
- convencao (integer) – Opcional. Indica a convenção de chamada da
biblioteca, devendo ser uma das constantes definidas em
CONVENCOES_CHAMADA
. Se não for informado, a convenção de chamada será decidida conforme a extensão do nome do arquivo, assumindoWINDOWS_STDCALL
para as extensões.DLL
ou.dll
. Quaisquer outras extensões, assume a convenção de chamadaSTANDARD_C
.
-
caminho
¶ Caminho completo para a biblioteca SAT.
-
convencao
¶ Convenção de chamada para a biblioteca SAT. Deverá ser um dos valores disponíveis na contante
CONVENCOES_CHAMADA
.
-
ref
¶ Uma referência para a biblioteca SAT carregada.
-
class
satcfe.base.
FuncoesSAT
(biblioteca, codigo_ativacao=None, numerador_sessao=None, encoding='utf-8', encoding_errors='strict')¶ Estabelece a interface básica para acesso às funções da biblioteca SAT.
A intenção é que esta classe seja a base para classes mais especializadas capazes de trabalhar as respostas, resultando em objetos mais úteis, já que os métodos desta classe invocam as funções da biblioteca SAT e retornam o resultado verbatim.
As funções implementadas estão descritas na ER SAT, item 6.1.
Item ER Função Método 6.1.1 AtivarSAT
ativar_sat()
6.1.2 ComunicarCertificadoICPBRASIL
comunicar_certificado_icpbrasil()
6.1.3 EnviarDadosVenda
enviar_dados_venda()
6.1.4 CancelarUltimaVenda
cancelar_ultima_venda()
6.1.5 ConsultarSAT
consultar_sat()
6.1.6 TesteFimAFim
teste_fim_a_fim()
6.1.7 ConsultarStatusOperacional
consultar_status_operacional()
6.1.8 ConsultarNumeroSessao
consultar_numero_sessao()
6.1.9 ConfigurarInterfaceDeRede
configurar_interface_de_rede()
6.1.10 AssociarAssinatura
associar_assinatura()
6.1.11 AtualizarSoftwareSAT
atualizar_software_sat()
6.1.12 ExtrairLogs
extrair_logs()
6.1.13 BloquearSAT
bloquear_sat()
6.1.14 DesbloquearSAT
desbloquear_sat()
6.1.15 TrocarCodigoDeAtivacao
trocar_codigo_de_ativacao()
6.1.16 ConsultarUltimaSessaoFiscal
consultar_ultima_sessao_fiscal()
Parâmetros: - biblioteca – Uma instância de
BibliotecaSAT
. - codigo_ativacao (string) – Código de ativação. Senha definida pelo contribuinte no software de ativação, conforme item 2.1.1 da ER SAT.
- numerador_sessao – Opcional. Um
callable
capaz de gerar um número de sessão conforme descrito no item 6, alínea “a”, “Funções do Equipamento SAT”, da ER SAT. Se não for especificado, será utilizado umNumeroSessaoMemoria
.
-
associar_assinatura
(sequencia_cnpj, assinatura_ac)¶ Função
AssociarAssinatura
conforme ER SAT, item 6.1.10. Associação da assinatura do aplicativo comercial.Parâmetros: - sequencia_cnpj – Sequência string de 28 dígitos composta do CNPJ do desenvolvedor da AC e do CNPJ do estabelecimento comercial contribuinte, conforme ER SAT, item 2.1.3.
- assinatura_ac – Sequência string contendo a assinatura digital do
parâmetro
sequencia_cnpj
codificada em base64.
Retorna: Retorna verbatim a resposta da função SAT.
Tipo de retorno: string
-
ativar_sat
(tipo_certificado, cnpj, codigo_uf)¶ Função
AtivarSAT
conforme ER SAT, item 6.1.1. Ativação do equipamento SAT. Dependendo do tipo do certificado, o procedimento de ativação é complementado enviando-se o certificado emitido pela ICP-Brasil (comunicar_certificado_icpbrasil()
).Parâmetros: - tipo_certificado (int) – Deverá ser um dos valores
satcomum.constantes.CERTIFICADO_ACSAT_SEFAZ
,satcomum.constantes.CERTIFICADO_ICPBRASIL
ousatcomum.constantes.CERTIFICADO_ICPBRASIL_RENOVACAO
, mas nenhuma validação será realizada antes que a função de ativação seja efetivamente invocada. - cnpj (str) – Número do CNPJ do estabelecimento contribuinte, contendo apenas os dígitos. Nenhuma validação do número do CNPJ será realizada antes que a função de ativação seja efetivamente invocada.
- codigo_uf (int) – Código da unidade federativa onde o equipamento
SAT será ativado (eg.
35
para o Estado de São Paulo). Nenhuma validação do código da UF será realizada antes que a função de ativação seja efetivamente invocada.
Retorna: Retorna verbatim a resposta da função SAT.
Tipo de retorno: string
- tipo_certificado (int) – Deverá ser um dos valores
-
atualizar_software_sat
()¶ Função
AtualizarSoftwareSAT
conforme ER SAT, item 6.1.11, Atualização do software do equipamento SAT.Retorna: Retorna verbatim a resposta da função SAT. Tipo de retorno: string
-
bloquear_sat
()¶ Função
BloquearSAT
conforme ER SAT, item 6.1.13. Bloqueio operacional do equipamento SAT.Retorna: Retorna verbatim a resposta da função SAT. Tipo de retorno: string
-
cancelar_ultima_venda
(chave_cfe, dados_cancelamento, *args, **kwargs)¶ Função
CancelarUltimaVenda
conforme ER SAT, item 6.1.4. Envia o CF-e de cancelamento para o equipamento SAT, que o enviará para autorização e cancelamento do CF-e pela SEFAZ.Parâmetros: - chave_cfe – String contendo a chave do CF-e de venda que será
cancelado (deve possuir o prefixo
"CFe"
seguido dos dígitos da chave do CF-e-SAT autorizado anteriormente). - dados_cancelamento – Uma instância
de
CFeCancelamento
ou uma string contendo o XML do CF-e de cancelamento.
Retorna: Retorna verbatim a resposta da função SAT.
Tipo de retorno: string
- chave_cfe – String contendo a chave do CF-e de venda que será
cancelado (deve possuir o prefixo
-
comunicar_certificado_icpbrasil
(certificado)¶ Função
ComunicarCertificadoICPBRASIL
conforme ER SAT, item 6.1.2. Envio do certificado criado pela ICP-Brasil.Parâmetros: certificado (str) – Conteúdo do certificado digital criado pela autoridade certificadora ICP-Brasil. Retorna: Retorna verbatim a resposta da função SAT. Tipo de retorno: string
-
configurar_interface_de_rede
(configuracao, *args, **kwargs)¶ Função
ConfigurarInterfaceDeRede
conforme ER SAT, item 6.1.9. Configuração da interface de comunicação do equipamento SAT.Parâmetros: configuracao – Um objeto ConfiguracaoRede
ou uma string contendo o XML com as configurações de rede.Retorna: Retorna verbatim a resposta da função SAT. Tipo de retorno: string
-
consultar_numero_sessao
(numero_sessao)¶ Função
ConsultarNumeroSessao
conforme ER SAT, item 6.1.8. Consulta o equipamento SAT por um número de sessão específico.Parâmetros: numero_sessao (int) – Número da sessão que se quer consultar. Retorna: Retorna verbatim a resposta da função SAT. Tipo de retorno: string
-
consultar_sat
()¶ Função
ConsultarSAT
conforme ER SAT, item 6.1.5. Usada para testes de comunicação entre a AC e o equipamento SAT.Retorna: Retorna verbatim a resposta da função SAT. Tipo de retorno: str
-
consultar_status_operacional
()¶ Função
ConsultarStatusOperacional
conforme ER SAT, item 6.1.7. Consulta do status operacional do equipamento SAT.Retorna: Retorna verbatim a resposta da função SAT. Tipo de retorno: string
-
consultar_ultima_sessao_fiscal
()¶ Função
ConsultarUltimaSessaoFiscal
conforme ER SAT, item 6.1.16. Retorna a resposta da última sessão fiscal, isto é, do último comando fiscal (EnviarDadosVenda
ouCancelarUltimaVenda
) executado pelo equipamento SAT.Retorna: Retorna verbatim a resposta da função SAT. Tipo de retorno: string
-
desbloquear_sat
()¶ Função
DesbloquearSAT
conforme ER SAT, item 6.1.14. Desbloqueio operacional do equipamento SAT.Retorna: Retorna verbatim a resposta da função SAT. Tipo de retorno: string
-
enviar_dados_venda
(dados_venda, *args, **kwargs)¶ Função
EnviarDadosVenda
conforme ER SAT, item 6.1.3. Envia o CF-e de venda para o equipamento SAT, que o enviará para autorização pela SEFAZ.Parâmetros: dados_venda – Instância de CFeVenda
ou uma string contendo o XML do CF-e de venda.Retorna: Retorna verbatim a resposta da função SAT. Tipo de retorno: string
-
extrair_logs
()¶ Função
ExtrairLogs
conforme ER SAT, item 6.1.12. Extração dos registros de log do equipamento SAT.Retorna: Retorna verbatim a resposta da função SAT. Tipo de retorno: string
-
gerar_numero_sessao
()¶ Gera o número de sessão para a próxima invocação de função SAT.
-
teste_fim_a_fim
(dados_venda, *args, **kwargs)¶ Função
TesteFimAFim
conforme ER SAT, item 6.1.6. Teste de comunicação entre a AC, o equipamento SAT e a SEFAZ.Parâmetros: dados_venda – Instância de CFeVenda
ou uma string contendo o XML do CF-e de venda de teste.Retorna: Retorna verbatim a resposta da função SAT. Tipo de retorno: string
-
trocar_codigo_de_ativacao
(novo_codigo_ativacao, opcao=1, codigo_emergencia=None)¶ Função
TrocarCodigoDeAtivacao
conforme ER SAT, item 6.1.15. Troca do código de ativação do equipamento SAT. YouX.Parâmetros: - novo_codigo_ativacao (str) – O novo código de ativação escolhido pelo contribuinte.
- opcao (int) – Indica se deverá ser utilizado o código de ativação
atualmente configurado, que é um código de ativação regular,
definido pelo contribuinte, ou se deverá ser usado um código de
emergência. Deverá ser o valor de uma das constantes
satcomum.constantes.CODIGO_ATIVACAO_REGULAR
(padrão) ousatcomum.constantes.CODIGO_ATIVACAO_EMERGENCIA
. Nenhuma validação será realizada antes que a função seja efetivamente invocada. Entretanto, se opção de código de ativação indicada forCODIGO_ATIVACAO_EMERGENCIA
, então o argumento que informa ocodigo_emergencia
será checado e deverá avaliar como verdadeiro. - codigo_emergencia (str) – O código de ativação de emergência, que
é definido pelo fabricante do equipamento SAT. Este código deverá
ser usado quando o usuário perder o código de ativação regular, e
precisar definir um novo código de ativação. Note que, o argumento
opcao
deverá ser informado com o valorsatcomum.constantes.CODIGO_ATIVACAO_EMERGENCIA
para que este código de emergência seja considerado.
Retorna: Retorna verbatim a resposta da função SAT.
Tipo de retorno: string
Levanta: ValueError – Se o novo código de ativação avaliar como falso (possuir uma string nula por exemplo) ou se o código de emergencia avaliar como falso quando a opção for pelo código de ativação de emergência.
Aviso
De acordo com a ER SAT, a função
TrocarCodigoDeAtivacao
requer que o novo código de ativação seja especificado duas vezes.Este método ignora isso e apenas informa o mesmo código de ativação duas vezes na chamada da função. O entendimento é de que a confirmação do código de ativação é responsabilidade de outras camadas da aplicação (eg. interface com o usuário) e, portanto, fora do escopo desta biblioteca.
- biblioteca – Uma instância de
-
class
satcfe.base.
NumeroSessaoMemoria
(tamanho=100)¶ Implementa um numerador de sessão simples, baseado em memória, não persistente, que irá gerar um número de sessão (seis dígitos) diferente entre os
n
últimos números de sessão gerados. Conforme a ER SAT, um número de sessão não poderá ser igual aos últimos100
números.