Sobrepõe :meth:`~satcfe.base.FuncoesSAT.consultar_numero_sessao`.

        :return: Uma resposta SAT que irá depender da sessão consultada.
        :rtype: satcfe.resposta.padrao.RespostaSAT
542108
def consultar_numero_sessao(self, numero_sessao):
        
        resp = self._http_post('consultarnumerosessao',
                numero_sessao=numero_sessao)
        conteudo = resp.json()
        return RespostaConsultarNumeroSessao.analisar(conteudo.get('retorno'))
255655
def consultar_status_operacional(self):
        
        retorno = super(ClienteSATLocal, self).consultar_status_operacional()
        return RespostaConsultarStatusOperacional.analisar(retorno)
29367
def ConsultarOtrosImpuestos(self, sep="||"):
        ""
        ret = self.client.consultarOtrosImpuestos(
                        auth={
                            'token': self.Token, 'sign': self.Sign,
                            'cuit': self.Cuit, },
                            )['respuesta']
        self.__analizar_errores(ret)
        array = ret.get('otroImpuesto', [])
        if sep is None:
            return dict([(it['codigo'], it['descripcion']) for it in array])
        else:
            return [("%s %%s %s %%s %s" % (sep, sep, sep)) %
                    (it['codigo'], it['descripcion']) for it in array]
902940
private function calcularDvNossoNumero($nossoNumero)
    {
        $produto = 2;
        $soma = 0;

        //Separação dos números
        for ($i = 0; $i < strlen($nossoNumero); $i++) {
            //Isolando cada número
            $digito = substr(strrev($nossoNumero), $i, 1);

            //Efetuando a multiplicação do dígito isolado pelo produto
            $soma += (int) $digito * $produto;
            $produto++;
            //Se o valor do produto for maior que 9
            //O produto tem seu valor resetado, ou seja, volta para 2
            $produto = $produto > 9 ? 2 : $produto;
        }

        //Retorna o valor arredondado do resto da soma dividida por 11
        $resto = round(($soma % 11));
        $dv = 0 == $resto || 1 == $resto ? 0 : round(11 - $resto);

        return $dv;
    }
39485
def __numero_tres_cifras(self, number, indice=None, sing=False):
        """"""
        number = int(number)

        if number < 30:
            if sing:
                return especiales_apocopado[number]
            else:
                return especiales_masculino[number]

        elif number < 100:
            texto = decenas[number // 10]
            resto = number % 10
            if resto:
                texto += ' y %s' % self.__numero_tres_cifras(resto, None, sing)
            return texto

        if number == 100:
            return 'cien'

        if number < 1000:
            texto = centena_masculino[number // 100]
            resto = number % 100
            if resto:
                texto += ' %s' % self.__numero_tres_cifras(resto, None, sing)
            return texto
645334
def ConsultarRazas(self, sep="||"):
        ""
        ret = self.client.consultarRazas(
                        auth={
                            'token': self.Token, 'sign': self.Sign,
                            'cuit': self.Cuit, },
                            )['respuesta']
        self.__analizar_errores(ret)
        array = ret.get('raza', []) + ret.get('razaPorcina', [])
        if sep is None:
            return dict([(it['codigo'], it['descripcion']) for it in array])
        else:
            return [("%s %%s %s %%s %s" % (sep, sep, sep)) %
                    (it['codigo'], it['descripcion']) for it in array]
783787
def ConsultarCaracteres(self, sep="||"):
        ""
        ret = self.client.consultarCaracteresParticipante(
                        auth={
                            'token': self.Token, 'sign': self.Sign,
                            'cuit': self.Cuit, },
                            )['respuesta']
        self.__analizar_errores(ret)
        array = ret.get('caracter', []) + ret.get('caracterPorcino', [])
        if sep is None:
            return dict([(it['codigo'], it['descripcion']) for it in array])
        else:
            return [("%s %%s %s %%s %s" % (sep, sep, sep)) %
                    (it['codigo'], it['descripcion']) for it in array]
817070
public static function fatorVencimento($vencimento)
    {
        // Quando o vencimento for vazio ou não informado deve retornar o fator ZERO, para os casos de cartão de credito...
        if (($vencimento === null) || ($vencimento === '')) {
            return 0;
        }

        $base = Carbon::createFromFormat('d.m.Y', '07.10.1997');
        if (! ($vencimento instanceof \DateTime)) {
            $vencimento = Carbon::createFromTimestamp($vencimento);
        }

        return $base->diffInDays() - $vencimento->diffInDays();
    }
872028
def consulta_transacao_completa(numero_transacao)
      # Monta os parâmetros
      params = helper.build_request_consulta_transacao_completa(numero_transacao)

      # Faz a requisição para o wsdl
      begin
        retorno = @savon_client.call(:consulta_transacao_completa, message: params)
      rescue Savon::SOAPFault => error
        return helper.build_response_error(error)
      end

      # Verifica se a retorno veio correta ou se deu problema
      if retorno.blank?
        retorno = SuperpayApi::Retorno.new
        retorno.errors.add(:mensagem, "Resposta vazia")
        return retorno
      else
        return helper.build_response_retorno(retorno)
      end
    end
756167
def ConsultarTipoRetencion(self, sep="||"):
        ""
        ret = self.client.tipoRetencionConsultar(
                        auth={
                            'token': self.Token, 'sign': self.Sign,
                            'cuit': self.Cuit, },
                            )['tipoRetencionReturn']
        self.__analizar_errores(ret)
        array = ret.get('tiposRetencion', [])
        return [("%s %%s %s %%s %s" % (sep, sep, sep)) %
                    (it['codigoDescripcion']['codigo'], 
                     it['codigoDescripcion']['descripcion']) 
               for it in array]
1045237
def ConsultarDetalleCTG(self, numero_ctg=None):
        ""
        ret = self.client.consultarDetalleCTG(request=dict(
                        auth={
                            'token': self.Token, 'sign': self.Sign,
                            'cuitRepresentado': self.Cuit, },
                        ctg=numero_ctg, 
                        ))['response']
        self.__analizar_errores(ret)
        datos = ret.get('consultarDetalleCTGDatos')
        if datos:
            self.NumeroCTG = str(datos['ctg'])
            self.CartaPorte = str(datos['cartaPorte'])
            self.Estado = unicode(datos['estado'])
            self.FechaHora = str(datos['fechaEmision'])
            self.VigenciaDesde = str(datos['fechaVigenciaDesde'])
            self.VigenciaHasta = str(datos['fechaVigenciaHasta'])
            self.TarifaReferencia = str(datos['tarifaReferencia'])
            self.Detalle = str(datos.get('detalle', ""))
        return True
1297288
def ConsultarTributos(self, sep="||"):
        ""
        ret = self.client.consultarTributos(
                        auth={
                            'token': self.Token, 'sign': self.Sign,
                            'cuit': self.Cuit, },
                            )['respuesta']
        self.__analizar_errores(ret)
        array = ret.get('tributo', [])
        if sep is None:
            return dict([(it['codigo'], it['descripcion']) for it in array])
        else:
            return [("%s %%s %s %%s %s" % (sep, sep, sep)) %
                    (it['codigo'], it['descripcion']) for it in array]
1060444
public static function modulo10($num)
    {
        $numtotal10 = 0;
        $fator = 2;
        $numeros = array();
        $parcial10 = array();

        // Separacao dos numeros
        for ($i = strlen($num); $i > 0; $i--) {
            // pega cada numero isoladamente
            $numeros[$i] = substr($num, $i - 1, 1);
            // Efetua multiplicacao do numero pelo (falor 10)
            // 2002-07-07 01:33:34 Macete para adequar ao Mod10 do Itau
            $temp = $numeros[$i] * $fator;
            $temp0 = 0;
            foreach (preg_split('//', $temp, -1, PREG_SPLIT_NO_EMPTY) as $k => $v) {
                $temp0 += $v;
            }
            $parcial10[$i] = $temp0;
            // monta sequencia para soma dos digitos no (modulo 10)
            $numtotal10 += $parcial10[$i];
            if ($fator == 2) {
                $fator = 1;
            } else {
                $fator = 2; // intercala fator de multiplicacao (modulo 10)
            }
        }

        // varias linhas removidas, vide funcoes original
        // Calculo do modulo 10
        $resto = $numtotal10 % 10;
        $digito = 10 - $resto;
        if ($resto == 0) {
            $digito = 0;
        }

        return $digito;
    }
718864
def build_request_consulta_transacao_completa numero_transacao
      # Montar os parâmetros para consulta
      params = {
        consulta_transacao_w_s: {
          codigo_estabelecimento: SuperpayApi.estabelecimento,
          numero_transacao: numero_transacao,
        }
      }
      # Adiciona as configurações de login
      params.merge! SuperpayApi.login
    end
953459
def Consultar(self, nro_doc):
        ""
        n = 0
        while n <= 4:
            n += 1                          # reintentar 3 veces
            try:
                if not self.client:
                    if DEBUG:
                        warnings.warn("reconectando intento [%d]..." % n)
                    self.Conectar()
                self.response = self.client("sr-padron", "v2", "persona", str(nro_doc))
            except Exception as e:
                self.client = None
                ex = exception_info()
                self.Traceback = ex.get("tb", "")
                try:
                    self.Excepcion = norm(ex.get("msg", "").replace("\n", ""))
                except:
                    self.Excepcion = "<no disponible>"
                if DEBUG:
                    warnings.warn("Error %s [%d]" % (self.Excepcion, n))
            else:
                break
        else:
            return False
        result = json.loads(self.response)
        if result['success']:
            data = result['data']
            # extraigo datos generales del contribuyente:
            self.cuit = data["idPersona"]
            self.tipo_persona = data["tipoPersona"]
            self.tipo_doc = TIPO_CLAVE.get(data["tipoClave"])
            self.dni = data.get("numeroDocumento")
            self.estado = data.get("estadoClave")
            self.denominacion = data.get("nombre")
            # analizo el domicilio
            domicilio = data.get("domicilioFiscal")
            if domicilio:
                self.direccion = domicilio.get("direccion", "")
                self.localidad = domicilio.get("localidad", "")  # no usado en CABA
                self.provincia = PROVINCIAS.get(domicilio.get("idProvincia"), "")
                self.cod_postal = domicilio.get("codPostal")
            else:
                self.direccion = self.localidad = self.provincia = ""
                self.cod_postal = ""
            # retrocompatibilidad:
            self.domicilios = ["%s - %s (%s) - %s" % (
                                    self.direccion, self.localidad, 
                                    self.cod_postal, self.provincia,) ]
            # analizo impuestos:
            self.impuestos = data.get("impuestos", [])
            self.actividades = data.get("actividades", [])
            if 32 in self.impuestos:
                self.imp_iva = "EX"
            elif 33 in self.impuestos:
                self.imp_iva = "NI"
            elif 34 in self.impuestos:
                self.imp_iva = "NA"
            else:
                self.imp_iva = "S" if 30 in self.impuestos else "N"
            mt = data.get("categoriasMonotributo", {})
            self.monotributo = "S" if mt else "N"
            self.actividad_monotributo = "" # TODO: mt[0].get("idCategoria")
            self.integrante_soc = ""
            self.empleador = "S" if 301 in self.impuestos else "N"
            self.cat_iva = ""
            self.data = data
        else:
            error = result['error']
            self.Excepcion = error['mensaje']
        return True
316092
def ConfirmarDefinitivo(self, numero_carta_de_porte, numero_ctg, 
                            establecimiento=None, codigo_cosecha=None, peso_neto_carga=None, 
                            **kwargs):
        ""
        ret = self.client.confirmarDefinitivo(request=dict(
                        auth={
                            'token': self.Token, 'sign': self.Sign,
                            'cuitRepresentado': self.Cuit, },
                        datosConfirmarDefinitivo=dict(
                            cartaPorte=numero_carta_de_porte, 
                            ctg=numero_ctg,
                            establecimiento=establecimiento,
                            codigoCosecha=codigo_cosecha,
                            pesoNeto=peso_neto_carga,
                            )))['response']
        self.__analizar_errores(ret)
        datos = ret.get('datosResponse')
        if datos:
            self.CartaPorte = str(datos['cartaPorte'])
            self.NumeroCTG = str(datos['ctg'])
            self.FechaHora = str(datos['fechaHora'])
            self.CodigoTransaccion = str(datos.get('codigoOperacion', ""))
            self.Observaciones = ""
        return self.CodigoTransaccion
244689
def analisar(retorno):
        
        resposta = analisar_retorno(forcar_unicode(retorno),
                funcao='AtivarSAT',
                classe_resposta=RespostaAtivarSAT,
                campos=(
                        ('numeroSessao', int),
                        ('EEEEE', unicode),
                        ('mensagem', unicode),
                        ('cod', unicode),
                        ('mensagemSEFAZ', unicode),
                        ('CSR', unicode),
                    ),
                campos_alternativos=[
                        # se a ativação falhar espera-se o padrão de campos
                        # no retorno...
                        RespostaSAT.CAMPOS,
                    ]
            )
        if resposta.EEEEE not in (
                ATIVADO_CORRETAMENTE,
                CSR_ICPBRASIL_CRIADO_SUCESSO,):
            raise ExcecaoRespostaSAT(resposta)
        return resposta