Hi
I'l developing my own VAT tax module based in teh area current one to
handle some territory exceptions.
I'm creating a custom templatetag to sumarize the total tax amount and
base amount for products in the same taxClass (this is a legal
requirement), so I extended the TaxRate model by adding a tax name and
some extra field.
THe issue is that I'm receiving an anoying "Caught TypeError while
rendering: int() argument must be a string or a number, not
'get_tax_details'" error and I do not understand where the problem is.
Do you see any obvious Type unaligment in the following code? I'm
calling the template tag as {% order_tax_detail order as valor %}
from django.template import
Library,Node,VariableDoesNotExist,TemplateSyntaxError,resolve_variable
from django.utils import translation
from decimal import Decimal
from satchmo_store.shop.models import OrderItem
from livesettings import config_value
from django.db.models import Sum
from tax.utils import get_tax_processor
import logging
log = logging.getLogger('montapp.TAXDetails')
register = Library()
class get_tax_details(Node):
def __init__(self, order,varname):
self.order,self.varname = order,varname
def render(self,context):
orderid = resolve_variable(self.order, context)
taxer = get_tax_processor(self)
valores =
list(OrderItem.objects.filter(order=orderid).values('product__taxClass').annotate(total_tax=Sum('tax'),total_price=Sum('line_item_price')))
try:
for valor in valores:
taxClass = valor['product__taxClass']
context[taxClass]= {
'TaxName' : taxer.get_name(self,taxClass),
'TaxRate' : taxer.get_name(self,taxClass),
'TotalTax' : valor.total_tax,
'TotalPrice' : valor.total_price,
}
varname = context
except VariableDoesNotExist:
raise TemplateSyntaxError("Invalid order %s for
order_tax_details",self.order)
return ''
def order_tax_detail (parser,token):
"""Return the Tax amount grouped by Tax class"""
bits = token.contents.split()
if len(bits) != 4:
raise TemplateSyntaxError("Invalid number of arguments for
order_tax_details")
if bits[2] != 'as':
raise TemplateSyntaxError, "third argument to get_latest tag
must be 'as'"
return get_tax_details(bits[1],bits[3])
register.tag('order_tax_detail',order_tax_detail)
--
You received this message because you are subscribed to the Google Groups
"Satchmo users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/satchmo-users?hl=en.