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

        :return: Uma resposta SAT especializada em ``EnviarDadosVenda``.
        :rtype: satcfe.resposta.enviardadosvenda.RespostaEnviarDadosVenda
359376
def enviar_dados_venda(self, dados_venda):
        
        resp = self._http_post('enviardadosvenda',
                dados_venda=dados_venda.documento())
        conteudo = resp.json()
        return RespostaEnviarDadosVenda.analisar(conteudo.get('retorno'))
1101066
def to_request
      item_pedido = {
        codigo_produto:           self.codigo_produto,
        codigo_categoria:         self.codigo_categoria,
        nome_produto:             self.nome_produto,
        quantidade_produto:       self.quantidade_produto,
        valor_unitario_produto:   self.valor_unitario_produto,
        nome_categoria:           self.nome_categoria,
      }
      return item_pedido
    end
1252671
def ConsultarConstanciaCTGPDF(self, numero_ctg=None, 
                                        archivo="constancia.pdf"):
        ""
        ret = self.client.consultarConstanciaCTGPDF(request=dict(
                        auth={
                            'token': self.Token, 'sign': self.Sign,
                            'cuitRepresentado': self.Cuit, },
                        ctg=numero_ctg, 
                        ))['response']
        self.__analizar_errores(ret)
        datos = base64.b64decode(ret.get('archivo', ""))
        f = open(archivo, "wb")
        f.write(datos)
        f.close()
        return True
739149
def ConsultarPuntosVentas(self, sep="||"):
        ""
        ret = self.client.consultarPuntosVenta(
                        auth={
                            'token': self.Token, 'sign': self.Sign,
                            'cuit': self.Cuit, },
                            )['respuesta']
        self.__analizar_errores(ret)
        array = ret.get('puntoVenta', [])
        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]
1077045
def ConsultarTiposContingencia(self, sep="||"):
        ""
        ret = self.client.consultarTiposContingencia(
                            authRequest={
                                'token': self.Token, 'sign': self.Sign,
                                'cuitRepresentada': self.Cuit, },
                                )['consultarTiposContingenciaReturn']
        self.__analizar_errores(ret)
        array = ret.get('arrayTiposContingencia', [])
        lista = [it['codigoDescripcion'] for it in array]
        return [(u"%s {codigo} %s {descripcion} %s" % (sep, sep, sep)).format(**it) if sep else it for it in lista]
47492
public function getCodigoNome()
    {
        $codigo = (int) $this->getCodigo();

        $table = array(
             2 => 'Entrada Confirmada',
             3 => 'Entrada Rejeitada',
             4 => 'Transferência de Carteira/Entrada',
             5 => 'Transferência de Carteira/Baixa',
             6 => 'Liquidação',
             9 => 'Baixa',
            12 => 'Confirmação Recebimento Instrução de Abatimento',
            13 => 'Confirmação Recebimento Instrução de Cancelamento Abatimento',
            14 => 'Confirmação Recebimento Instrução Alteração de Vencimento',
            17 => 'Liquidação Após Baixa ou Liquidação Título Não Registrado',
            19 => 'Confirmação Recebimento Instrução de Protesto',
            20 => 'Confirmação Recebimento Instrução de Sustação/Cancelamento de Protesto',
            23 => 'Remessa a Cartório (Aponte em Cartório)',
            24 => 'Retirada de Cartório e Manutenção em Carteira',
            25 => 'Protestado e Baixado (Baixa por Ter Sido Protestado)',
            26 => 'Instrução Rejeitada',
            27 => 'Confirmação do Pedido de Alteração de Outros Dados',
            28 => 'Débito de Tarifas/Custas',
            30 => 'Alteração de Dados Rejeitada',
            36 => 'Confirmação de envio de e-mail/SMS',
            37 => 'Envio de e-mail/SMS rejeitado',
            43 => 'Estorno de Protesto/Sustação',
            44 => 'Estorno de Baixa/Liquidação',
            45 => 'Alteração de dados',
            51 => 'Título DDA reconhecido pelo sacado',
            52 => 'Título DDA não reconhecido pelo sacado',
            53 => 'Título DDA recusado pela CIP',
        );

        if (array_key_exists($codigo, $table)) {
            return $table[$codigo];
        } else {
            return 'Desconhecido';
        }
    }
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]
1082388
def atualizar_software_sat(retorno):
        
        resposta = analisar_retorno(forcar_unicode(retorno),
                funcao='AtualizarSoftwareSAT')
        if resposta.EEEEE not in ('14000',):
            raise ExcecaoRespostaSAT(resposta)
        return resposta
234169
def desbloquear_sat(self):
        
        retorno = super(ClienteSATLocal, self).desbloquear_sat()
        return RespostaSAT.desbloquear_sat(retorno)
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
1284823
def configurar_interface_de_rede(self, configuracao):
        
        resp = self._http_post('configurarinterfacederede',
                configuracao=configuracao.documento())
        conteudo = resp.json()
        return RespostaSAT.configurar_interface_de_rede(conteudo.get('retorno'))
67623
def busca_cep_correios(cep):
    '''  '''

    if cep is None or not isinstance(cep, str):
        raise AttributeError("O CEP deve ser do tipo string!")
    elif not cep.isdigit() or len(cep) != 8:
        raise AttributeError("O CEP deve conter apenas 8 dígitos!")

    url = 'http://www.buscacep.correios.com.br/sistemas/buscacep/resultadoBuscaCepEndereco.cfm'
    payload = {'relaxation': cep, 'tipoCEP': 'ALL', 'semelhante': 'N'}

    resp = requests.post(url, data=payload)

    if resp.status_code != 200:
        raise Exception("Erro acessando site dos correios!", resp.status_code)

    from bs4 import BeautifulSoup
    soup = BeautifulSoup(resp.text, "html.parser")
    value_cells = soup.find('table', attrs={'class': 'tmptabela'})
    values = list(value_cells.findAll('tr'))

    texto_clean = []
    for value in values[1].findAll('td'):
        texto_clean.append(value.get_text().strip())

    logradouro = Logradouro(texto_clean)

    return logradouro
577514
def AgregarCampoPDF(self, nombre, tipo, x1, y1, x2, y2, 
                           font="Arial", size=12,
                           bold=False, italic=False, underline=False, 
                           foreground= 0x000000, background=0xFFFFFF,
                           align="L", text="", priority=0, **kwargs):
        ""
        # convierto colores de string (en hexadecimal)
        if isinstance(foreground, basestring): foreground = int(foreground, 16)
        if isinstance(background, basestring): background = int(background, 16)
        if isinstance(text, unicode): text = text.encode("latin1")
        field = {
                'name': nombre, 
                'type': tipo, 
                'x1': x1, 'y1': y1, 'x2': x2, 'y2': y2, 
                'font': font, 'size': size,
                'bold': bold, 'italic': italic, 'underline': underline, 
                'foreground': foreground, 'background': background,
                'align': align, 'text': text, 'priority': priority}
        field.update(kwargs)
        self.elements.append(field)
        return True
685901
def consultar_sat(self):
        
        retorno = super(ClienteSATLocal, self).consultar_sat()
        return RespostaSAT.consultar_sat(retorno)
243887
def AgregarConceptosBasicosMercadoInterno(self, kg_produccion_gb, precio_por_kg_produccion_gb, 
                                              kg_produccion_pr, precio_por_kg_produccion_pr,
                                              kg_crecimiento_gb, precio_por_kg_crecimiento_gb,
                                              kg_crecimiento_pr, precio_por_kg_crecimiento_pr,
                                               **kwargs):
        ""
        d = {'kgProduccionGB': kg_produccion_gb, 
             'precioPorKgProduccionGB': precio_por_kg_produccion_gb, 
             'kgProduccionPR': kg_produccion_pr, 
             'precioPorKgProduccionPR': precio_por_kg_produccion_pr, 
             'kgCrecimientoGB': kg_crecimiento_gb, 
             'precioPorKgCrecimientoGB': precio_por_kg_crecimiento_gb, 
             'kgCrecimientoPR':kg_crecimiento_pr, 
             'precioPorKgCrecimientoPR': precio_por_kg_crecimiento_pr}
        self.solicitud['conceptosBasicosMercadoInterno'] = d
        return True
247887
def build_request_estorno_de_transacao numero_transacao, valor_estorno
      # Montar os parâmetros para consulta
      params = {
        codigo_estabelecimento: SuperpayApi.estabelecimento,
        numero_transacao: numero_transacao,
        valor_estorno: valor_estorno,
      }
    end
732722
def ativar_sat(self, tipo_certificado, cnpj, codigo_uf):
        
        resp = self._http_post('ativarsat',
                tipo_certificado=tipo_certificado,
                cnpj=cnpj,
                codigo_uf=codigo_uf)
        conteudo = resp.json()
        return RespostaAtivarSAT.analisar(conteudo.get('retorno'))