Código fonte para l10n_br_account.sped.ibpt.deolhonoimposto
# -*- coding: utf-8 -*-
# Copyright (C) 2015 Luis Felipe Miléo - KMEE
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
import urllib
import urllib2
import json
from collections import namedtuple
WS_SERVICOS = 0
WS_PRODUTOS = 1
WS_IBPT = {
WS_SERVICOS: 'http://iws.ibpt.org.br/api/deolhonoimposto/Servicos/?',
WS_PRODUTOS: 'http://iws.ibpt.org.br/api/deolhonoimposto/Produtos/?',
}
DeOlhoNoImposto = namedtuple('Config', 'token cnpj uf')
def _convert(dictionary):
return namedtuple('Result', dictionary.keys())(**dictionary)
def _response_to_dict(response):
json_acceptable_string = response.replace("'", "\"").lower()
return json.loads(json_acceptable_string)
def _request(req):
try:
response = urllib2.urlopen(req)
data = _response_to_dict(response.read())
return _convert(data)
except urllib2.HTTPError, e:
from openerp import _
from openerp.exceptions import Warning as UserError
raise UserError(_('Error in the request: {0}'.format(e)))
[documentos]def get_ibpt_product(config, ncm, ex='0', reference=None, description=None,
uom=None, amount=None, gtin=None):
data = urllib.urlencode({
'token': config.token,
'cnpj': config.cnpj,
'uf': config.uf,
'codigo': ncm,
'ex': ex,
'codigoInterno': reference,
'descricao': description,
'unidadeMedida': uom,
'valor': amount,
'gtin': gtin,
})
req = urllib2.Request(WS_IBPT[WS_PRODUTOS] + data)
return _request(req)
[documentos]def get_ibpt_service(config, nbs, description=None, uom=None, amount=None):
data = urllib.urlencode({
'token': config.token,
'cnpj': config.cnpj,
'uf': config.uf,
'codigo': nbs,
'descricao': description,
'unidadeMedida': uom,
'valor': amount,
})
req = urllib2.Request(WS_IBPT[WS_SERVICOS] + data)
return _request(req)