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_STDCALLpara as extensões.DLLou.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 AtivarSATativar_sat()6.1.2 ComunicarCertificadoICPBRASILcomunicar_certificado_icpbrasil()6.1.3 EnviarDadosVendaenviar_dados_venda()6.1.4 CancelarUltimaVendacancelar_ultima_venda()6.1.5 ConsultarSATconsultar_sat()6.1.6 TesteFimAFimteste_fim_a_fim()6.1.7 ConsultarStatusOperacionalconsultar_status_operacional()6.1.8 ConsultarNumeroSessaoconsultar_numero_sessao()6.1.9 ConfigurarInterfaceDeRedeconfigurar_interface_de_rede()6.1.10 AssociarAssinaturaassociar_assinatura()6.1.11 AtualizarSoftwareSATatualizar_software_sat()6.1.12 ExtrairLogsextrair_logs()6.1.13 BloquearSATbloquear_sat()6.1.14 DesbloquearSATdesbloquear_sat()6.1.15 TrocarCodigoDeAtivacaotrocar_codigo_de_ativacao()6.1.16 ConsultarUltimaSessaoFiscalconsultar_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
callablecapaz 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
AssociarAssinaturaconforme 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_cnpjcodificada em base64.
Retorna: Retorna verbatim a resposta da função SAT.
Tipo de retorno: string
-
ativar_sat(tipo_certificado, cnpj, codigo_uf)¶ Função
AtivarSATconforme 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_ICPBRASILousatcomum.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.
35para 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
AtualizarSoftwareSATconforme 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
BloquearSATconforme 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
CancelarUltimaVendaconforme 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
CFeCancelamentoou 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
ComunicarCertificadoICPBRASILconforme 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
ConfigurarInterfaceDeRedeconforme ER SAT, item 6.1.9. Configuração da interface de comunicação do equipamento SAT.Parâmetros: configuracao – Um objeto ConfiguracaoRedeou 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
ConsultarNumeroSessaoconforme 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
ConsultarSATconforme 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
ConsultarStatusOperacionalconforme 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
ConsultarUltimaSessaoFiscalconforme ER SAT, item 6.1.16. Retorna a resposta da última sessão fiscal, isto é, do último comando fiscal (EnviarDadosVendaouCancelarUltimaVenda) executado pelo equipamento SAT.Retorna: Retorna verbatim a resposta da função SAT. Tipo de retorno: string
-
desbloquear_sat()¶ Função
DesbloquearSATconforme 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
EnviarDadosVendaconforme 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 CFeVendaou 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
ExtrairLogsconforme 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
TesteFimAFimconforme 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 CFeVendaou 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
TrocarCodigoDeAtivacaoconforme 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_emergenciaserá 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
opcaodeverá ser informado com o valorsatcomum.constantes.CODIGO_ATIVACAO_EMERGENCIApara 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
TrocarCodigoDeAtivacaorequer 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 últimos100números.